
- 本篇是 python 版本,如需 C++ 版本 👉 C++ 版本指路
ROS 通信机制:ROS是进程(也称为
Nodes)的分布式框架。 这些进程甚至还可分布于不同主机协同工作,所以结点之间如何通信非常重要!
⭐ 基本通信机制一:话题通信(发布订阅模式) 【用于不断更新的、少逻辑处理的数据传输场景】 👉话题通信理论图解必懂 指路
- ROS Master 负责保管 Talker 📢和 Listener 注册的信息,并匹配话题相同的 Talker📢 与 Listener 👂
- 帮助 Talker 📢与 Listener 👂 建立连接
- 连接建立后,Talker 📢 可以发布消息,发布的消息会被 Listener 👂订阅
实例化发布者对象:
名称= rospy.Publisher(参数1,参数2,参数3) ;pub = rospy.Publisher("chatter",String,queue_size=10)
- 名称:发布者对象名称,如
pub- 参数1: 要发布到的话题,如
"chatter"- 参数2: 发布的消息类型,如
String- 参数3: 队列中最大保存的消息数,如
10
- 超出此阀值时,先进的先销毁 (时间早的先销毁)
⭐ 完整发布方代码,包含详细注释,来啦 ~
不清楚如何配置、执行代码的友友建议先看下 👉快速体验 指路
#! /usr/bin/env python
"""
消息发布方: 循环发布信息: Hello!
"""
import rospy # --------------------------------- step 1: 导包
from std_msgs.msg import String
if __name__ == "__main__":
rospy.init_node("talker_p") # -------------- step 2: 初始化 ROS 节点
# ------------------------------------------- step 3: 实例化 发布者 对象
pub = rospy.Publisher("chatter",String,queue_size=10)
rate = rospy.Rate(1) # 发布频率
# ------------------------------------------- step 4: 组织被发布的数据,并编写逻辑发布数据
msg = String() # 消息
while not rospy.is_shutdown(): # 节点不死
msg = "Hello!" # 组织被发布的数据
pub.publish(msg) # 发布
rospy.loginfo("写出的数据:%s",msg.data)
rate.sleep() # 自动休眠 休眠时间 = 1/发布频率
⭐ 验证发布是否正常
- 运行发布方节点后,可以用 rostopic 命令快速验证 or 运行订阅方来验证
- 在新的终端利用
rostopic echo 话题名称快速验证$ rostopic echo /chatter # 执行后,可以看到以下输出 data: "Hello!" --- data: "Hello!" --- data: "Hello!"
- 在新的终端利用
- 运行订阅方来验证,代码参照 👉订阅方实现简单示例 指路
希望对你有帮助呀!!💜💜 如操作遇到任何问题,欢迎大家留言互助 ~ 一起加油叭 💦
欢迎关注、订阅专栏 【ROS 学习笔记】谢谢你的支持!
另外,使用ROS需要 C++ 或者Python的编程经验,我的博客主页也有相关的教程发布,需要的友友自取!
参考资料: ROS理论与实践在线文档, B站视频教程
3175

被折叠的 条评论
为什么被折叠?



