分别在三个控制台中运行一下三个命令:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
现在可以用方向键移动turtle了,如果不能,请选定打开turtle_teleop_key这个node的控制台再按方向键。
使用rqt_graph
rqt_graph可以显示节点和话题之间的关系,
安装rqt_graph:
sudo apt-get install ros-<distro>-rqt
sudo apt-get install ros-<distro>-rqt-common-plugins
distro为对应的ROS版本,我的是hydro
使用rostopic
查看rostopic帮助
rostopic -h
有以下6种用法:
rostopic bw display bandwidth used by topic
rostopic echo print messages toscreen
rostopic hz display publishing rate用oftopic
rostopic list print information about activetopics
rostopic pub publish data to topic
rostopic type printtopic type
rostopic echo
对于hydro版本
运行以下命令:
rostopic echo /turtle1/cmd_vel
将/turtle1/cmd_vel发布的信息打印到屏幕上
重新选定turtle_teleop_key控制台,使用方向键移动turtle可以看到发布的信息
在之前打开的rqt_graph中点击刷新按钮,可以看到多出了一个订阅者
rostopic list
显示当前运行中的topic
运行
rostopic list -v
结果
Published topics:
* /turtle1/color_sensor [turtlesim/Color] 1 publisher
*/turtle1/command_velocity [turtlesim/Velocity] 1 publisher
*/rosout [roslib/Log] 2 publishers
* /rosout_agg [roslib/Log] 1publisher
* /turtle1/pose [turtlesim/Pose] 1 publisher
Subscribed topics:
* /turtle1/command_velocity [turtlesim/Velocity] 1subscriber
* /rosout [roslib/Log] 1 subscriber
ROS的信息
发布者与话题和订阅者与话题之间的交流是通过信息进行的,发布者给话题的信息类型与订阅者接受的信息类型必须一致,这意味者话题定义了在上面发布的信息的类型。
rostopic type
rostopic type [topic]
查看topic的message类型
例如
rostopic type /turtle1/cmd_vel
显示
geometry_msgs/Twist
rosmsg show
查看message类型的具体信息
例如
rosmsg show geometry_msgs/Twist
得到
geometry_msgs/Vector3linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3angular
float64 x
float64 y
float64 z
rostopic pub
rostopic pub [topic] [msg_type] [args]
向一个具体的topic发布一个消息
例如
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]''[0.0, 0.0, 1.8]'
-1
表示只发布一条消息
/turtle1/cmd_vel
发布的topic对象
geometry_msgs/Twist
发布的消息类型
--
之后的arg不再是该命令的选项
rostopic hz
rostopic hz [topic]
数据的发布频率
rqt_plot
rosrunr qt_plot rqt_plot
在topic中输入
/turtle1/pose/x
就可以看到位置在x方向时间变化曲线
原文地址