![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS
文章平均质量分 73
Atarasin
这个作者很懒,什么都没留下…
展开
-
关于ROS常用的cmake语句
ROS提供了ROS功能包的查找功能,并提供了与变量。比如,以上cmake语句查找了my_package功能包,于是就会将my_package的头文件与库文件路径添加到与变量中。原创 2023-05-30 14:32:11 · 1178 阅读 · 0 评论 -
Ubuntu 16.04 + ROS Kinetic + opencv-4.2.0
Ubuntu 16.04 + ROS Kinetic + opencv4.2.0因为工作需要,要在Ubuntu 16.04 + ROS Kinetic配置下使用高版本的opencv。但是ROS Kinetic自带的opencv版本只有3.3.1,因此需要自行安装高版本的opencv,然后配置一下。配置过程比较艰难,搞了半天,因此记录一下这个过程。该过程主要分为以下3个步骤:下载安装opencv-4.2.0以及opencv_contrib-4.2.0(后者根据需要选择是否安装,因此我需要使用open原创 2021-07-02 00:19:31 · 729 阅读 · 1 评论 -
ROS:关于功能包下CMakeLists.txt和package.xml的修改
ROS:关于功能包下CMakeLists.txt和package.xml的修改当我们往ROS包中添加cpp文件时,往往需要修改功能包下的这两个文件。下面讨论一些常见情况下的这两个文件的修改。Sit1:没有添加任何依赖当cpp文件没有添加任何外部依赖时,或者在创建功能包时就已经添加了相关依赖时,我们仅需要编译创建的cpp文件即可,不需要做其他的操作。CMakeLists.txt修改如下:# 设置string_publisher.cppadd_executable(string_publisher s原创 2021-06-24 14:11:55 · 2950 阅读 · 0 评论 -
ROS:添加第三方库
ROS:添加第三方库参考资料:C++静态库和动态库;GCC参数详解;ROS添加第三方库;在ROS中调用外部链接库文件(.so)配置方法.编写C++程序时,为了方便,常常会使用一些已经编好的开源库。那么如何使用这些开源库就成了一个问题。之前我一直对这方面不太清楚,这次需要在ROS中使用第三方库,正好查查资料了解一下这方面的知识。1.C++库库是指已经写好的现有的,成熟的,可以复用的代码。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。一般会存在两种类型的库,它们的命名原创 2021-02-25 17:56:23 · 4533 阅读 · 0 评论 -
ROS:关于节点和节点句柄以及命名空间
ROS:关于节点和节点句柄以及命名空间参考资料:ROS官方文档首先,我们需要明确的是 节点 和 节点句柄 是不同的。一般而言,一个cpp文件只能启动一个ROS节点,但作为该节点的句柄却可以设置多个。The ros::NodeHandle class serves two purposes. First, it provides RAII-style startup and shutdown of the internal node inside a roscpp program. Second,原创 2021-02-22 19:12:36 · 8467 阅读 · 3 评论 -
ROS:回调函数处理与回调队列
ROS:回调函数处理与消息队列参考资料:roscpp官方文档在ROS节点的执行过程中,如果程序中存在订阅器和回调函数,就必然会面临两个问题:订阅器的队列长度选择多大?该使用spinOnce()还是spin()处理回调函数?1.话题回调机制我在查找相关资料时得知,ROS在处理回调函数时,并不是消息传来就立刻进行处理的,特别是在使用spinOnce()处理回调函数时。即便使用spin()处理时,若发布器的发布频率过快,同样会导致无法及时处理回调函数的问题。此时,就需要用到我们在定义订阅器时原创 2021-02-22 13:26:35 · 6557 阅读 · 2 评论 -
ROS之多个订阅数据同步
做传感器数据融合时,常常会需要用到多个数据,即需要同时订阅多个话题。那么,如何同步这些传感器数据的时间辍,并将它们放入一个回调函数中进行处理呢?参考文档:http://wiki.ros.org/message_filtersROS自带多传感器时间同步机制Time Synchronizer测试ros消息时间同步与回调有些消息类型会带有一个头部数据结构,如下所示。信息中带有时间辍数据,可以通过这个数据进行时间同步。std_msgs/Header header uint32 seq tim原创 2021-01-28 20:56:38 · 3683 阅读 · 8 评论 -
ROS:关于xacro模型在gazebo的加载
ROS:关于xacro模型在gazebo的加载这个模型加载问题折磨了我好几天,今天总算是找到问题所在。我还一直以为是新版本的问题,结果却是自己的问题——不够仔细。因此记录下来,引以为戒。1.问题描述:惯性矩阵没有正确加载虽然遇到了很多问题,但都可以归结为一个问题:在调用宏定义时,必须加上xacro:,这是新版本的noetic与旧版本的区别。若没有加上这句前缀,则在rviz和gazebo中都会遇到显示不全的问题。这个区别虽然我早就知道了,但还是花费了好几天才成功在gazebo中加载出完整的模型(原创 2021-01-23 19:57:43 · 2119 阅读 · 8 评论 -
关于订阅器无法接收发送器发送的第一个数据
关于订阅器无法接收发送器发送的第一个数据发布器最好在程序一开始就设置好,否则可能会出现数据无法准确被接收的情况。如以下程序所示,我把发布器的定义放在了server的回调函数中,会出现第一次发布的数据无法被订阅器接收到的情况,但接下来发布的数据却可以被准确接收到。可能的原因是在第一次发布数据时,该发布器还没有完成与master的交互(时间太快),因此master无法建立发布器与订阅器之间的正确连接。class TurtleControlService{private: ros::NodeHan原创 2021-01-08 22:38:52 · 146 阅读 · 0 评论 -
ROS向节点传递参数的方法
大致有以下几种方法可以传递参数:rosrun + 参数服务器传递;roslaunch + 参数服务器传递;rosrun + main参数传递;roslaunch + main参数传递.详细内容可看ROS向节点传递参数转载 2020-12-27 11:47:52 · 354 阅读 · 0 评论 -
ROS机器人开发第二章中遇到的问题
问题1:No transform from [right_wheel] to [map]原因是没有开启joint节点,但我查看错误发现,我两个节点(joint,robot)都没有开启。需要安装package,安装指令为:sudo apt-get install ros-noetic-robot-state-publishersudo apt-get install ros-noetic-joint-state-publisher-gui问题2:无法保存rviz配置文件在unbuntu系统中,h原创 2020-11-28 16:14:18 · 1826 阅读 · 1 评论