ROS学习——2编写简单的发布者和订阅者

ros官网教程:编写简单的发布者和订阅者

c++版

在新建好的catkin_ws工作空间下建立。
cd catkin_ws/src
在该目录下创建自己的功能包:catkin_creat_pkg wjl_tutorials std_msgs roscpp rospy其中wjl_tutorials为功能包名,std_msgs roscpp rospy为依赖项。
在该目录下生成:

在这里插入图片描述
在src目录下 cd src创建发布者文件:gedit talker.cpp创建订阅者文件:gedit listener.cpp。分别将官网教程中的对应内容复制进去。ros官网教程

更改上一级中的CMakeLists.txt文件,即:
在这里插入图片描述

在这里插入图片描述
然后在catkin_ws目录下重新:catkin_make
在这里插入图片描述
打开新终端,启动ros:roscore

打开新终端,查看现有rospack:rospack list
在这里插入图片描述

发布我们的功能包:rosrun wjl_tutorials talker
在这里插入图片描述
或者是直接找到编译好的文件直接运行(在devel/lib/wjl_tutorials/下):./talker
在这里插入图片描述

打开新终端,接收我们的功能包:rosrun wjl_tutorials listener
在这里插入图片描述
查看现有节点:rosnode list
在这里插入图片描述

python版

在当前wjl_tutorials目录下:mkdir scripts 用于存放python脚本。
cd scripts 然后新建talker和listener文件:gedit talker.py gedit listener.py官网文件内容各自复制进去。
python 相对于C++版本的文件,不需要编译,直接运行。
这里有几种运行方式:
1.python talker.py
在这里插入图片描述

2.增加该文件权限后用rosrun的方式运行
chmod +x talker.py
rosrun wjl_tutorials talker.py (其实这种方式的运行就是把talker文件的地址找出来运行)
在这里插入图片描述
3 直接./talker.py
在这里插入图片描述

注意

不同版本的文件的收发是可以互相调用的。
在这里插入图片描述只要是我们发布的参数与接收的参数设置的匹配,就可以接收到,可以同时接收多种话题一样的。
在终端用命令继续发布:rostopic pub -r 20 /chatter std_msgs/String ''data: 'hello wjl'"
在这里插入图片描述
接收到多个:
在这里插入图片描述

也可以使用rostopic echo /chatter接收
在这里插入图片描述
在上述过程中,使用py和rostopic pub发布,C++和rostopic echo接收。

用:rostopic info /chatter查看当前话题的信息,该话题有两个在发布,两个在接收(多发多收)。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48994268/article/details/120134336
今日推荐