Last updated
Last updated
turtlesim_node节点和turtle_teleop_key节点之间是通过一个ROS话题来互相通信的。
turtle_teleop_key在一个话题上发布按键输入消息,而turtlesim则订阅该话题以接收该消息。 下面让我们使用rqt_graph来显示当前运行的节点和话题。
rqt_graph能够创建一个显示当前系统运行情况的动态图形。 rqt_graph是rqt功能包中的一部分。 如果你没有安装,请通过以下命令来安装:
在一个新终端中运行:
你会看到类似下图所示的图形:
如果你将鼠标放在/turtle1/command_velocity上方,相应的ROS节点(蓝色和绿色)和话题(红色)就会高亮显示。
正如你所看到的turtlesim_node和turtle_teleop_key节点正通过一个名为/turtle1/command_velocity的话题来互相通信。
rostopic命令工具能让你获取有关ROS话题的信息。 你可以使用help选项查看rostopic的子命令:
或者在rostopic之后按Tab键打印可能的子命令:
接下来我们将使用其中的一些子命令来查看turtlesim。
rostopicecho可以显示在某个话题上发布的数据。 用法:
让我们在一个新终端中看一下turtle_teleop_key节点在/turtle1/command_velocit话题上发布的数据。
接下来我们通过按下方向键使turtle_teleop_key节点发布数据。
记住如果turtle没有动起来的话就需要你重新选中turtle_teleop_key节点运行时所在的终端窗口。
现在当你按下向上方向键时应该会看到下面的信息:
现在让我们再看一下rqt_graph(你可能需要刷新一下ROS graph)。
rostopic list能够列出所有当前订阅和发布的话题。 让我们查看一下list子命令需要的参数,在一个新终端中运行:
显示
在rostopic list中使用verbose选项:
这会显示出有关所发布和订阅的话题及其类型的详细信息。
正如你所看到的rostopic echo(红色显示部分)现在也订阅了turtle1/command_velocity话题。