ROS基本通信方法——话题

先上导图:
在这里插入图片描述然后是总结的一些小知识点

1.话题定义:一个定义了类型的消息流
通信机制:发布/订阅(publish/subscribe)
发布实现:声明(advertise)话题名和发送到该话题的消息类型,发布数据到话题
订阅实现:节点向roscore发出请求来订阅话题

2.ROS中,在同一个话题的所有消息必需是同一类型的

3.shebang符号(#!):指明了执行这个脚本文件的解释程序
具体使用方式:shebang具体

4.linux添加可执行权限命令:$chmod u+x topic_publisher.py

5.使用一个其他包的消息时需要告知ROS的构建系统:在package.xml文件中添加依赖:<depend package="std_msgs"/>

6.rospy.init_node('节点名')初始化节点

7.声明节点
pub = rospy.Publisher('话题名',消息类型)

sub = rospy.Subscriber('话题名',消息类型,回调函数名)

8.rate = rospy.Rate(2) 设置速率,单位赫兹,表示发布消息的速率

9.pub.publish(话题名)发布话题内容

10.rate.sleep()按循环频率延时,让程序休眠一段时间,使得程序运行时间与发布消息的速率相近。

11.rospy.spin()这个函数只有在节点准备结束时才会返回,避免使用高层while循环的捷径。

12.定义一个新消息步骤:
a.消息文件编写
b.告知构建系统新消息的定义:在package.xml文件添加

  <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

c.告诉catkin去哪里找message_generation包:在CMakeLists.txt文件中添加:
find_package(catkin REQUIRED COMPONENTS rospy std_msgs message_generation )
d.告知catkin我们将在运行时使用消息:

catkin_package(
   CATKIN_DEPENDS message_runtime
)

e.告知catkin我们想编译他:

add_message_files(
    FILES
    Complex.msg
)

f.添加消息所依赖的所有依赖项:

generate_messages(
    DEPENDENCIES
    std_msgs
)

g.消息使用
h.编译

13.尽量不要创造新的消息类型,会加大移植难度
rosmsg:查看已有消息类型

以上是我学习时记下的一些笔记,若有误请大家能帮忙指出,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值