ros2学习之教程-入门: CLI Tools(命令行工具)了解ROS 2主题(topics)

① 背景

ROS 2将复杂的系统分解为许多模块化 节点(node)。 主题(topic)是ROS图的重要元素,它充当节点(node)交换消息的总线。 节点(node)可以将数据发布到任意数量的主题(topic),并同时具有对任意数量的主题(topic)的订阅。 主题(topic)是数据在节点(node)之间以及因此在系统的不同部分之间移动的重要方式之一。
说面了就是通过topic来通讯,通过node 来发现互相

② 前提

  • 装ros2
  • 配置环境
  • 装小乌龟

③ 任务

Ⅰ 准备

启动小乌龟
命令:

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

Ⅱ rqt_graph

这个是个可是化的工具,命令:

rqt_graph

不像ros1 还要rosrun

在这里插入图片描述
这个是个自检工具

Ⅲ ros2 topic 命令

ros2 topic list

ros2 topic list 列出所有topic
ros2 topic list -t列出topic 顺便带上了消息类型,这个好
下面是帮助文档,

usage: ros2 topic list [-h] [--spin-time SPIN_TIME] [-t] [-c]
                       [--include-hidden-topics]

Output a list of available topics

optional arguments:
  -h, --help            show this help message and exit
  --spin-time SPIN_TIME
                        Spin time in seconds to wait for discovery (only
                        applies when not using an already running daemon)
  -t, --show-types      Additionally show the topic type
  -c, --count-topics    Only display the number of topics discovered
  --include-hidden-topics
                        Consider hidden topics as well

在这里插入图片描述
发现两个隐藏的,rqt_graph 去掉hide的勾选也能看到
在这里插入图片描述

ros2 topic echo

可以查看对应topic上 publish 的数据
命令:

ros2 topic echo <topic_name>

小乌龟的例子:

ros2 topic echo /turtle1/cmd_vel

这样会直观点
在这里插入图片描述

ros2 topic info

看topic的详细信息,命令:ros2 topic info /turtle1/cmd_vel
在这里插入图片描述

ros2 msg show (下个版本 ros2 interface show)

ros2 topic list -t看到了cmd_vel 的消息类型 是 geometry_msgs/msg/Twist这个

  • 我们可以用 ros2 msg show geometry_msgs/msg/Twist
    在这里插入图片描述

  • 也可以通过 ros2 topic echo /turtle1/cmd_vel 来看
    在这里插入图片描述

  • 可以通过rqt来看
    在这里插入图片描述

  • 也可以去官网查http://docs.ros.org/api/geometry_msgs/html/msg/Twist.html
    在这里插入图片描述

  • ide 配置好之后可以跳到头文件去看也行

  • 去msg文件看也行
    方法有点多

ros2 topic pub

可以通过命令行去发送消息

ros2 topic pub <topic_name> <msg_type> '<args>'

我们通过命令下发去控制小乌龟

ros2 topic pub  --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist '{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}'

选项 --rate 1 或者不加 是以1HZ的速度publish,--once 是只发一次
在这里插入图片描述

ros2 topic hz

实时统计topic的消息频率

ros2 topic hz topic_name

在这里插入图片描述

④ 总结

这个和ros1 区别不大

发布了90 篇原创文章 · 获赞 505 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_36628778/article/details/105277496