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 查看当前话题的信息,该话题有两个在发布,两个在接收(多发多收)。
|