ROS : 话题通信 (Python)

本文介绍了如何在ROS中创建工作区、添加环境变量、创建ROS包,并详细讲解了话题编程,包括话题通信模型、自定义话题消息的创建,以及一个发布者每100ms发布时间戳的话题编程Demo。此外,还涵盖了创建订阅者、运行可执行程序、编译代码以及制作和运行Launch文件的过程。
摘要由CSDN通过智能技术生成

Creating a workspace for catkin

链接: http://wiki.ros.org/catkin/Tutorials/create_a_workspace

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/
$ catkin_make

添加环境变量

链接:

$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc  
$ source ~/.bashrc 

Creating a ROS Package

链接: http://wiki.ros.org/ROS/Tutorials/CreatingPackage

# Creating a catkin Package
$ cd ~/catkin_ws/src
$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

# Building a catkin workspace and sourcing the setup file(上面已添加环境变量,此处无需重复添加)
$ cd ~/catkin_ws
$ catkin_make

话题编程

话题通信模型

在这里插入图片描述

自定义话题消息

1)新建 msg 消息目录,定义 msg 消息
2)在 package.xml 中添加功能包依赖
3)在 CMakeLists.txt 添加编译选项

话题编程流程

1)创建发布者

  • 初始化 ROS 节点
  • 向 ROS Master 注册节点信息,包括发布的话题名和话题中的消息类型
  • 按照一定频率循环发布消息

2)创建订阅者

  • 初始化 ROS 节点
  • 订阅需要的话题
  • 循环等待话题消息,接收到消息后进入回调函数
  • 在回调函数中完成消息处理

3)运行可执行程序

  • 打开终端一,启动 ros master
    $ roscore

  • 打开终端二,创建发布者
    $ rosrun beginner_tutorials talker.py

  • 打开终端三,创建订阅者
    $ rosrun beginner_tutorials listener.py

话题编程 Demo(发布者每 100ms 发布实时的时间戳,订阅者实时监听发布者发布的内容)

自定义话题消息

1)新建 msg 消息目录,定义 msg 消息

$ roscd beginner_tutorials/
$ mkdir msg
$ cd msg/
$ touch Num.msg
$ rosed beginner_tutorials Num.msg
$ cat Num.msg
int64 num

链接: vi/vim 使用(Linux)

2)在 package.xml 中添加功能包依赖

$ rosed beginner_tutorials package.xml
$ tail -n +62 ../package.xml | head -n 2
  <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

3)在 CMakeLists.txt 添加编译选项

$ rosed beginner_tutorials CMakeLists.txt
  • 在 CMakeLists.txt 文件中增加对 message_generation 的依赖
$ tail -n +10 ../CMakeLists.txt | head -n 6
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  message_generation
)
  • 增加消息文件
$ tail -n +50 ../CMakeLists.txt | head -n 7
## Generate messages in the 'msg' folder
add_message_files(
  FILES
  Num.msg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值