ROS 发布消息和订阅消息 for Python
程序员文章站
2022-06-04 15:45:10
...
ROS发布订阅 for Python
#1 环境
Ubuntu 16.04
ROS kinetic 1.12.14
GitHub代码 :
https://github.com/Coxhuang/ros_pub_sub/
从ROS发布以来,每版的Ubuntu系统版本都有与之对应ROS版本的
ROS版本 | Ubuntu版本 |
---|---|
ROS Melodic Morenia | Ubuntu 18.04(Bionic)/Ubuntu 17.04 Artful |
ROS Lunar Loggerhead | Ubuntu 17.04 (Zesty)/Ubuntu 16.10 Yakkety, Ubuntu LTS 16.04 Xenial |
ROS Kinetic Kame | Ubuntu 16.04 (Xenial) / Ubuntu 15.10 (Wily) |
ROS Jade Turtle | Ubuntu 15.04 (Wily) / Ubuntu LTS 14.04 (Trusty) |
ROS Indigo Igloo | Ubuntu 14.04 (Trusty) |
ROS Hydro Medusa | Ubuntu 12.04 LTS (Precise) |
ROS Groovy Galapagos | Ubuntu 12.04 |
#2 概述
四大步 :
- 创建工作空间
- 创建程序包
- 编写节点
- 运行
#3 创建工作空间
在根目录创建工作空间, 我创建的工作空间命名为 myworkspace
aaa@qq.com-ThinkPad-X270-W10DG:~$ mkdir -p ~/myworkspace/src
aaa@qq.com-ThinkPad-X270-W10DG:~$ cd ~/myworkspace/
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make
此时创建好工作空间及目录,并且编译好
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ source devel/setup.bash
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ echo $ROS_PACKAGE_PATH
输出结果 : /opt/ros/kinetic/share
此时名为myworkspace的工作空间已经创建完成
#4 创建程序包
创建名字为 mypackage 的程序包,并且依赖 std_msgs rospy roscpp 三个库
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ cd ~/myworkspace/src
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace/src$ catkin_create_pkg mypackage std_msgs rospy roscpp
source系统环境配置文件:
# 因为我的是kinetic版本, 所以是在kinetic路径下
source /opt/ros/kinetic/setup.bash
返回 myworkspace目录并编译
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace/src$ cd ~/myworkspace
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make
程序包部分完成
#5 编写节点
GitHub :
https://github.com/Coxhuang/ros_pub_sub
# 索引位置
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ cd src/mypackage/
# 创建文件夹
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage$ mkdir scripts
发布器源文件:
- 文件名 : talker.py
- 路径 : /home/trunk/myworkspace/src/mypackage/scripts/talker.py
- 内容 :
拷贝GitHub内容, 也可以自己编写发布器文件
https://github.com/Coxhuang/ros_pub_sub/blob/master/talker.py
给文件权限
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ chmod +x talker.py
接收器(订阅)源文件 :
- 文件名 : listener.py
- 路径 : /home/trunk/myworkspace/src/mypackage/scripts/listener.py
- 内容 :
拷贝GitHub内容, 也可以自己编写发布器文件
https://github.com/Coxhuang/ros_pub_sub/blob/master/listener.py
给文件权限
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ chmod +x listener.py
退回工作空间目录
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ cd ~/myworkspace
编译
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make
#6 运行
- 打开一个终端
roscore
- 新开另一个终端
进入工作空间目录
aaa@qq.com-ThinkPad-X270-W10DG:~$ cd myworkspace/
source 配置文件
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ source ./devel/setup.bash
启动 talker节点 rosrun+包名+节点名
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ rosrun mypackage talker.py
- 新开第三个终端
进入工作空间目录
aaa@qq.com-ThinkPad-X270-W10DG:~$ cd myworkspace/
source 配置文件
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ source ./devel/setup.bash
启动 talker节点 rosrun+包名+节点名
aaa@qq.com-ThinkPad-X270-W10DG:~/myworkspace$ rosrun mypackage listener.py
效果 :