消息Topic
ROS2官方文档
Topic官方介绍
是各节点之间的信息交流媒介,可以实现一对一,一对多,多对一,多对多的信息交流,如图所示
(一)使用工具打开消息流图
打开rqt_graph(注意其中:椭圆形框框是节点(node),方形框框是主题(topic)、动作(action)
通过命令:rqt_graph打开,也可以通过rqt打开后,选择Plugins>Introspection>Node Graph
(二)查看话题列表
ros2 topic list
通过运行:ros2 topic list查看主题列表,通过运行:ros2 topic list -t查看带有主题类型信息的主题列表
(三)监听话题信息
查看某个主题上发布的信息,可以使用命令:ros2 topic echo <topic_name> 如:ros2 topic echo /turtle1/cmd_vel
(四)查看话题信息
ros2 topic info 通过命令:ros2 topic info <topic_name>查看主题信息;
如运行:ros2 topic info /turtle1/cmd_vel 可得到主题/turtle1/cmd_vel的信息,其中可以看到从此主题(topic)订阅信息的账户(Subscription count)有2个,而向此主题发布信息的账户(Publisher count)有1个
(五)发布话题消息
ros2 topic pub
之前获取了信息的结构,就可以使用下述命令通过命令行将数据发布到主题(即不使用/teleop_turtle节点发布信息,而使用命令行直接输入信息):
ros2 topic pub <topic_name> <msg_type> '<args>'
功能包中监听和发布话题
官方教程
1、创建工作空间及创建功能包
2、参考官方文档:
话题发布节点
话题订阅节点
3、编译
colcon build
ros2 run <package name> <node name>
Micro-Python与ROS2 Topic
micro-python socket
micro-python socket + ros2 topic