ROS
文章平均质量分 58
Cc1924
这个作者很懒,什么都没留下…
展开
-
利用ROS中image_transport将sensor_msgs/CompressedImage转为sensor_msgs/Image
利用ROS中image_transport将sensor_msgs/CompressedImage转为sensor_msgs/Image原创 2022-12-03 16:49:46 · 1935 阅读 · 0 评论 -
rosbag工具plotjuggler无法打开rosbag的问题
这个仍然是从命令行安装,比较方便,测试也可以成功解决问题。从源码安装,没有测试,应该也是可以的,但是麻烦一点。支持的插件,因此只能打开一些比如。这个问题是因为只安装了。之类的基础格式的文件。...原创 2022-07-31 15:08:37 · 1929 阅读 · 0 评论 -
ROS中的时钟
参考:https://sychaichangkun.gitbooks.io/ros-tutorial-icourse163/content/chapter6/6.6.html1. Time 与 DurationROS里经常用到的一个功能就是时钟,比如计算机器人移动距离、设定一些程序的等待时间、设定计时器等等。roscpp同样给我们提供了时钟方面的操作。具体来说,roscpp里有两种时间的表示方法,一种是时刻(ros::Time),一种是时长(ros::Duration)。无论是Time还是Durat原创 2022-04-05 13:13:25 · 1952 阅读 · 0 评论 -
ROS句柄NodeHandle的命名空间
参考:https://sychaichangkun.gitbooks.io/ros-tutorial-icourse163/content/chapter6/6.5.html1.NodeHandleros::NodeHandle对象,也就是节点的句柄,它可以用来创建Publisher、Subscriber以及做其他事情。句柄(Handle)这个概念可以理解为一个“把手”,你握住了门把手,就可以很容易把整扇门拉开,而不必关心门是什么样子。NodeHandle就是对节点资源的描述,有了它你就可以操作这个原创 2022-04-05 12:47:57 · 1490 阅读 · 1 评论 -
ROS中的spin和spinOnce以及多线程回调
参考:https://sychaichangkun.gitbooks.io/ros-tutorial-icourse163/content/chapter6/6.3.html1.普通的spin和spinOnceros::spin()用于调用所有可触发的回调函数,将进入循环,不会返回,类似于在循环里反复调用spinOnce()而ros::spinOnce()只会去触发一次只有当有消息来时,回调函数才会被触发执行。具体去触发的命令就是ros::spin(),它会反复的查看有没有消息来,如果有就会让原创 2022-04-05 12:43:37 · 4791 阅读 · 0 评论 -
gdb调试 ROS节点启动失败:如[feature_tracker-2] process has died
1.简单分析失败后显示输出了log日志,此时可以打开log日志查看内容,然而这个日志基本没什么用。因为这个日志都是程序在刚加载的时候输出的,内容很少。而且既然ros可执行文件都已经编译成功了,这个时候运行出现错误,很大概率是链接库有问题,或者加载参数文件的时候有问题。2.添加GDB调试参考:ros项目调试:ROS项目使用GDB调试2.1.在rosrun命令中添加可以使用gdb进行调试,使用以下命令调试:rosrun --prefix 'gdb -ex run --args' feature_tr原创 2022-04-04 23:08:00 · 4538 阅读 · 0 评论 -
ROS中常见的msg消息类型
文章目录1.基本数据类型1.1.三维向量Vector3.msg1.2.标头Header.msg1.3.四元数Quaternion.msg1.4.空间中三维点Point.msg2.传感器数据类型2.1.Imu.msg3.机器人状态数据类型3.1.加速度Accel.msg3.2.线速度和角速度Twist.msg3.3.位姿Pose.msg3.4.有标头的位姿PoseStamped.msg3.5.里程计Odometry.msg1.基本数据类型1.1.三维向量Vector3.msg#定义三维向量#文件位置:原创 2022-04-04 16:37:54 · 5286 阅读 · 0 评论 -
ubuntu脚本启动多个ros launch文件
ubuntu编写启动多个.launch文件的脚本ubuntu脚本启动多个launch文件ubuntu使用bash脚本启动不同功能包下的多个launch文件#!/bin/bash表示什么意思gnome-terminal用法解析原创 2022-03-24 19:49:51 · 1729 阅读 · 0 评论 -
ros中的日志输出级别
0.参考资料ROS日志级别 DEBUG, INFO, WARN, ERROR,FATALROS代码中设置消息日志级别 :注意这篇文章中有一些错误1.ros中的日志级别如上图所示,输出的日志级别一共有五个,其严重程度(重要性)从上到下依次递增。ros可以通过以下语句设置ros输出的日志级别,这样就只会输出>=设置级别的日志。 ros::console::set_logger_level(ROSCONSOLE_DEFAULT_NAME, ros::console::levels::Debu原创 2022-03-01 10:33:05 · 3304 阅读 · 0 评论 -
ROS学习之TF坐标变换程序
文章目录1.静态坐标变换1.1.坐标变换发布者(broadcaster)1.2.坐标变换订阅者(listener)1.静态坐标变换1.1.坐标变换发布者(broadcaster)#include "ros/ros.h"#include "tf2_ros/static_transform_broadcaster.h" // 静态坐标发布的头文件#include "geometry_msgs/TransformStamped.h" // 发布者要发布的坐标变换消息,内部包含平移向量和旋转四元数原创 2021-12-22 18:32:48 · 284 阅读 · 0 评论 -
hy_interactive_tool学习笔记
1.环境搭建1.1.安装包ubuntu 安装 liblasubuntu18.04 安装octomap库CMakeLists.txt中还要求使用VTK库,这个好像是OpenCV显示用的库,搜了一下感觉安装比较麻烦,我没装也没有报错。1.2.ceres版本问题报错:‘integer_sequence’ is not a member of ‘std’视觉十四讲第六章:编译ceres时:error: ‘integer_sequence’ is not a member of ‘std‘错误注意看这原创 2021-11-23 16:49:23 · 1435 阅读 · 0 评论 -
安装ros报错:ros-melodic-desktop-full : 依赖: ros-melodic-desktop 但是它将不会被安装等
安装ros报错:ros-kinetic-desktop-full : 依赖: ros-kinetic-desktop 但是它将不会被安装等原创 2021-10-31 15:52:11 · 4680 阅读 · 0 评论 -
ROS问题小记
1.工程路径一定不可以存在中文名这个如果是自建工程一般不会犯这个错误,但是有的时候工程是拷贝别人的,比如某个问题的源码实现,为了方便表达可能别人把这个源码的工具包放在了一个中文文件夹下。此时如果拷贝过来直接在这个文件夹下建立工作空间catkin_make,工程可以正常编译。但是在运行功能包的时候,就会报如下错误:'ascii' codec can't decode byte 0xe6 in position 24其实这个就是编码错误,而工程可以正常编译说明程序是没问题的,问题就出在路径存在中文上。原创 2021-10-15 23:27:38 · 834 阅读 · 0 评论 -
ROS学习之TF变换的时间戳
文章目录1.TF坐标广播时的时间戳1.1.时间戳的作用1.2.TF坐标广播中的时间戳2.坐标点的时间戳2.1.坐标点进行坐标变换时的时间戳1.2.1.坐标点的时间戳的含义1.2.2.坐标点的时间戳的选择1.2.2.1.选择tf广播中的时间戳1.2.2.2.选择当前时刻ros::Time()::now()1.2.2.3.选择TF广播中最近的时刻ros::Time()或者os::Time(0)1.2.3.其他消息中的时间戳问题:参考1.TF坐标广播时的时间戳1.1.时间戳的作用先明确什么是TF的坐标变换原创 2021-10-02 18:02:51 · 4445 阅读 · 0 评论 -
ROS话题命令空间——全局、相对和私有
1.话题的命名空间介绍如下图所示,首先图中红色是节点的命名方式,注意节点的命名简单的情况(没有命名空间)是 /节点名,也就是所有节点都有一个/根目录。蓝色是话题的命名方式,话题可以直接参照/根目录,可以参考话题的/命名空间`,还可以参考节点名称。2.编程实现2.1. 全局名称全局名称在注册的时候以/开头,然后加上话题名,此时的话题和节点毫无关系/*************************************************************/示例1:直接在/后面加上原创 2021-09-27 21:49:27 · 694 阅读 · 0 评论 -
5.ROS学习之自定义头文件和源文件的调用
文章目录1.头文件2.源文件3.可执行文件4.配置文件(重要)参考需求:设计头文件与源文件,在可执行文件中包含头文件。注意这里的可执行文件可以就认为是main.cpp,而其他的源文件就是其他class.cpp流程:编写头文件;编写源文件;编写可执行文件;编辑配置文件并执行。1.头文件头文件设置于 3.2.1 类似,在功能包下的 include/功能包名 目录下新建头文件: haha.h,示例内容如下:#ifndef _HAHA_H#define _HAHA_Hnamespace原创 2021-09-25 16:06:09 · 1792 阅读 · 1 评论 -
4.ROS学习之主题与通信数据格式的获取
文章目录0.前言0.1.概念的区分0.1.1 通信的主题(theme)0.1.2.通信的数据格式(data type)0.1.3.总结1.主题theme与通信数据格式data type的获取1.1.运行功能包1.2.查看theme1.3.查看theme使用的data type1.4.查看data type的具体格式2.实例2.1.topic的话题与消息获取2.1.1话题获取2.1.2消息获取2.2.service服务名称与服务消息获取0.前言在ROS中,主要的两个通信机制就是话题topic和服务serv原创 2021-09-25 13:59:34 · 786 阅读 · 0 评论 -
3.ROS学习之服务通信
文章目录0.服务通信理论模型1.服务数据类型建立和编译配置1.1.srv数据类型建立1.2.CMakelists.txt配置编译生成srv实体文件2.服务通信编程实现2.1.server端实现2.1.1.注册server的函数2.1.2.回调函数的形参2.1.3.ros::spin回调2.1.4.命令行调用测试2.2.client端实现2.2.1.注册client2.2.2.等待服务启动成功2.2.3.将终端输入的字符转化为数字2.2.4.client请求server服务3.编译配置参考教程0.服务通信原创 2021-09-25 11:41:13 · 292 阅读 · 1 评论 -
2.ROS学习之话题通信
文章目录1.话题机制原理2.普通消息类型实现话题通信2.1.编程实现发布者2.1.1.ROS_INFO打印中文出错2.1.2.ros::NodeHandle初步理解2.1.3.字符串转换2.1.4.ros::Rate对象2.1.5.ros::spinOnce()2.1.6.发布的初始几包数据丢包的现象2.2.订阅者编程实现2.2.1.回调函数的形参写法2.2.1.1.解释2.2.1.2.报错2.2.2.ros::spin()2.3.CMakelists.txt文件2.3.1.生成可执行文件2.3.2.添加链原创 2021-09-24 22:35:16 · 718 阅读 · 0 评论