我们可以运行一个例程,然后通过键盘遥控操作turtle运行:
rosrun turtlesim_teleop_key
然后就可以通过方向键来驱动小海龟运行了。下面来探究一下屏幕背后发生了什么。
ROS topics
上面例程中节点turtlesim_node和节点turtle_teleop_key通过一个ROS topic来互相通信。turtle_teleop_key节点在topic上面发布关键进程,turtlesim_node节点则订阅相同的进程来接收这些关键进程。可以利用rqt_graph工具来显示正在运行的节点和主题之间的关系。
使用rqt_graph
rqt_graph工具是rqt软件包的一部分,可以创建系统中正在运行的节点、主题之间的一个动态关系图。运行命令:
rosrun rqt_graph rqt_graph
然后就可以看到类似如下的关系图,可以看出节点turtle_teleop_key和节点turtlesim_node之间在turtle1/cmd_vel主题上进行通信。
使用rostopic
rostopic工具允许我们获取ROS topics的相关信息。rostopic -h可以知道有如下命令:
Commands:
rostopic bw display bandwidth used by topic
rostopic delay display delay of topic from timestamp in header
rostopic ech