欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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 概述

四大步 :

  1. 创建工作空间
  2. 创建程序包
  3. 编写节点
  4. 运行

#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 运行

  1. 打开一个终端
roscore
  1. 新开另一个终端

进入工作空间目录

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
  1. 新开第三个终端

进入工作空间目录

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

效果 :

ROS 发布消息和订阅消息 for Python

ROS 发布消息和订阅消息 for Python