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

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 MoreniaUbuntu 18.04(Bionic)/Ubuntu 17.04 Artful
ROS Lunar LoggerheadUbuntu 17.04 (Zesty)/Ubuntu 16.10 Yakkety, Ubuntu LTS 16.04 Xenial
ROS Kinetic KameUbuntu 16.04 (Xenial) / Ubuntu 15.10 (Wily)
ROS Jade TurtleUbuntu 15.04 (Wily) / Ubuntu LTS 14.04 (Trusty)
ROS Indigo IglooUbuntu 14.04 (Trusty)
ROS Hydro MedusaUbuntu 12.04 LTS (Precise)
ROS Groovy GalapagosUbuntu 12.04

#2 概述

四大步 :

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

#3 创建工作空间

在根目录创建工作空间, 我创建的工作空间命名为 myworkspace

trunk@trunk-ThinkPad-X270-W10DG:~$ mkdir -p ~/myworkspace/src
trunk@trunk-ThinkPad-X270-W10DG:~$ cd ~/myworkspace/
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make

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

trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ source devel/setup.bash
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ echo $ROS_PACKAGE_PATH      

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

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

#4 创建程序包

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

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系统环境配置文件:

# 因为我的是kinetic版本, 所以是在kinetic路径下
source /opt/ros/kinetic/setup.bash

返回 myworkspace目录并编译

trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src$ cd ~/myworkspace
trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make 

程序包部分完成

#5 编写节点

GitHub :

https://github.com/Coxhuang/ros_pub_sub
# 索引位置
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内容, 也可以自己编写发布器文件

https://github.com/Coxhuang/ros_pub_sub/blob/master/talker.py

给文件权限

trunk@trunk-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

给文件权限

trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ chmod +x listener.py 

退回工作空间目录

trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace/src/mypackage/scripts$ cd ~/myworkspace 

编译

trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ catkin_make 

#6 运行

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

进入工作空间目录

trunk@trunk-ThinkPad-X270-W10DG:~$ cd myworkspace/

source 配置文件

trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ source ./devel/setup.bash 

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

trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ rosrun mypackage talker.py
  1. 新开第三个终端

进入工作空间目录

trunk@trunk-ThinkPad-X270-W10DG:~$ cd myworkspace/

source 配置文件

trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ source ./devel/setup.bash 

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

trunk@trunk-ThinkPad-X270-W10DG:~/myworkspace$ rosrun mypackage listener.py

效果 :

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我无法找到与"Rospython for ()"相关的具体信息。但是,我可以为您提供一些关于ROSPython的基本知识。 ROS(Robot Operating System)是一个灵活的框架,用于编写机器人软件。它提供了一系列工具、库和约定,用于帮助开发人员创建机器人应用程序。Python是一种流行的编程语言,也是ROS中常用的编程语言之一。 在ROS中,可以使用Python编写ROS节点(ROS nodes),这些节点可以通过ROS通信机制进行交互。您可以使用Python编写ROS节点来控制机器人的各个方面,例如传感器数据的处理、运动控制和路径规划等。 要使用Python编写ROS节点,您需要安装ROSPython的相关库。然后,您可以使用rospy库来编写Python脚本,以与ROS系统进行交互。您可以使用rospy库来发布订阅ROS主题(ROS topics)、调用ROS服务(ROS services)和访问ROS参数服务器(ROS parameter server)等。 以下是一个简单的示例,演示了如何使用Python编写一个ROS节点来发布一个ROS主题: ```python import rospy from std_msgs.msg import String def talker(): pub = rospy.Publisher('chatter', String, queue_size=10) rospy.init_node('talker', anonymous=True) rate = rospy.Rate(10) # 10hz while not rospy.is_shutdown(): hello_str = "Hello ROS! %s" % rospy.get_time() rospy.loginfo(hello_str) pub.publish(hello_str) rate.sleep() if __name__ == '__main__': try: talker() except rospy.ROSInterruptException: pass ``` 这个示例中的ROS节点会以10Hz的频率发布一个名为"chatter"的ROS主题,其中包含一个字符串消息。您可以根据自己的需求修改和扩展这个示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值