前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ROS 发布消息和订阅消息 for Python

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

作者头像
Autooooooo
发布2020-11-09 10:31:08
1K0
发布2020-11-09 10:31:08
举报
文章被收录于专栏:Coxhuang

ROS发布订阅 for Python

#1 环境

代码语言:javascript
复制
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

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~$ mkdir -p ~/myworkspace/src
trunk@trunk-ThinkPad-X270-W10DG:~$ cd ~/myworkspace/
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make

此时创建好工作空间及目录,并且编译好

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ source devel/setup.bash
代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ echo $ROS_PACKAGE_PATH      

输出结果 : /opt/ros/kinetic/share

此时名为myworkspace的工作空间已经创建完成

#4 创建程序包

创建名字为 mypackage 的程序包,并且依赖 std_msgs rospy roscpp 三个库

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ cd ~/myworkspace/src
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src$ catkin_create_pkg mypackage std_msgs rospy roscpp  

source系统环境配置文件:

代码语言:javascript
复制
# 因为我的是kinetic版本, 所以是在kinetic路径下
source /opt/ros/kinetic/setup.bash

返回 myworkspace目录并编译

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src$ cd ~/myworkspace
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make 

程序包部分完成

#5 编写节点

GitHub :

代码语言:javascript
复制
https://github.com/Coxhuang/ros_pub_sub
代码语言:javascript
复制
# 索引位置
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ cd src/mypackage/
# 创建文件夹
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage$ mkdir scripts 

发布器源文件:

  • 文件名 : talker.py
  • 路径 : /home/trunk/myworkspace/src/mypackage/scripts/talker.py
  • 内容 :

拷贝GitHub内容, 也可以自己编写发布器文件

代码语言:javascript
复制
https://github.com/Coxhuang/ros_pub_sub/blob/master/talker.py

给文件权限

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ chmod +x talker.py 

接收器(订阅)源文件 :

  • 文件名 : listener.py
  • 路径 : /home/trunk/myworkspace/src/mypackage/scripts/listener.py
  • 内容 :

拷贝GitHub内容, 也可以自己编写发布器文件

代码语言:javascript
复制
https://github.com/Coxhuang/ros_pub_sub/blob/master/listener.py

给文件权限

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ chmod +x listener.py 

退回工作空间目录

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ cd ~/myworkspace 

编译

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make 

#6 运行

  1. 打开一个终端
代码语言:javascript
复制
roscore
  1. 新开另一个终端

进入工作空间目录

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~$ cd myworkspace/

source 配置文件

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ source ./devel/setup.bash 

启动 talker节点 rosrun+包名+节点名

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ rosrun mypackage talker.py
  1. 新开第三个终端

进入工作空间目录

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~$ cd myworkspace/

source 配置文件

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ source ./devel/setup.bash 

启动 talker节点 rosrun+包名+节点名

代码语言:javascript
复制
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ rosrun mypackage listener.py

效果 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/06/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ROS发布订阅 for Python
  • #1 环境
  • #2 概述
  • #3 创建工作空间
  • #4 创建程序包
  • #5 编写节点
  • #6 运行
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档