概述
首先我们重新温习一下ROS术语。
命令 | 详细说明 |
rostopic list | 显示活动的话题目录 |
rostopic echo [话题名称] | 实时显示指定话题的消息内容 |
rostopic find [类型名称] | 显示使用指定类型的消息的话题 |
rostopic type [话题名称] | 显示指定话题的消息类型 |
rostopic bw [话题名称] | 显示指定话题的消息带宽(bandwidth) |
rostopic hz [话题名称] | 显示指定话题的消息数据发布周期 |
rostopic info [话题名称] | 显示指定话题的信息 |
rostopic pub [话题名称] [消息类型] [参数] | 用指定的话题名称发布消息 |
在运行ROS话题示例之前,请先关闭所有节点。通过在不同的终端窗口中分别运行以下命令来运行turtlesim_node和turtle_teleop_key。
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
rostopic list:列出活动话题
rostopic list命令显示当前正在发送和接收的所有话题的列表。
rostopic list
通过将“-v”选项添加到rostopic list命令,可以分开发布话题和订阅话题,并将每个话题的消息类型一起显示。
rostopic list -v
rostopic echo [话题名称]:实时显示指定话题的消息内容
以下示例实时显示组成/turtle1/pose话题的x、y、theta、linear_velocity和angular_velocity的数据。
rostopic echo /turtle1/pose
rostopic find [类型名称]:显示使用指定类型的消息的话题
rostopic find turtlesim/Pose
rostopic type [话题名称]:显示指定话题的消息类型
rostopic type /turtle1/pose
rostopic bw [话题名称]:显示指定话题的消息数据带宽(bandwidth)
在以下示例中,用于/turtle1/pose话题的数据带宽平均为每秒1.25 KB。
rostopic bw /turtle1/pose
rostopic hz [话题名称]:显示指定话题的消息数据发布周期
在以下示例中,用户可以检查/turtle1/pose数据的发布周期。从结果可以看出,该消息以大约62.5Hz(0.016秒= 16毫秒)的频率被发布。
rostopic hz /turtle1/pose
rostopic info [话题名称]:显示指定话题的信息
在以下示例中,用户可以看到/turtle1/pose话题使用turtlesim/Pose消息类型,发布到/turtlesim节点,并且没有实际订阅的话题。
rostopic info /turtle1/pose
rostopic pub [话题名称] [消息类型] [参数]:使用指定的话题名称发布消息
以下是使用/turtle1/cmd_vel话题名称发布类型为geometry_msgs/Twist的消息的示例。
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’
每个选项的描述如下。
- -1只发布一次消息(实际上只运行一次,但会像以前的结果一样运行3秒)。
- /turtle1/cmd_vel 指定的话题名称
- geometry_msgs/Twist 要发布的消息类型名称
- -- ‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’ 在x轴坐标上以每秒2.0 m的速度移动,以z轴为中心,每秒旋转1.8rad
反映了发布的消息的画面(忽略横线那条)