键盘远程控制turtle
1 | rosrun turtlesim turtlesim_node |
ROS Topics
使用rqt_graph
rqt_graph能够创建一个显示当前系统运行情况的动态图形。rqt_graph是rqt程序包中的一部分。如果你没有安装,请通过以下命令来安装:1
2sudo apt-get install ros-Indigo-rqt
sudo apt-get install ros-Indigo-rqt-common-plugins
在新终端运行:1
rosrun turtlesim turtle_teleop_key
rostopic介绍
rostopic命令工具能让你获取有关ROS话题的信息。1
rostopic -h
返回:1
2
3
4
5
6
7
8
9
10
11 rostopic bw display bandwidth used by topic
rostopic delay display delay of topic from timestamp in header
rostopic echo print messages to screen
rostopic find find topics by type
rostopic hz display publishing rate of topic
rostopic info print information about active topic
rostopic list list active topics
rostopic pub publish data to topic
rostopic type print topic type
Type rostopic <command> -h for more detailed usage, e.g. 'rostopic echo -h'
rostopic echo /turtle1/cmd_vel
rostopic echo可以显示在某个话题上发布的数据。1
rostopic echo /turtle1/cmd_vel
使用 rostopic list
rostopic list能够列出所有当前订阅和发布的话题。1
2rostopic list -h
rostopic list -v
ROS Messages
话题之间的通信是通过在节点之间发送ROS消息实现的。对于发布器(turtle_teleop_key)和订阅器(turtulesim_node)之间的通信,发布器和订阅器之间必须发送和接收相同类型的消息。这意味着话题的类型是由发布在它上面的消息类型决定的。
使用 rostopic type
使用rostopic type命令可以查看发布在某个话题上的消息类型。1
rostopic type /turtle1/cmd_vel
使用rosmsg命令来查看消息的详细情况1
rosmsg show geometry_msgs/Twist
或者直接:1
rostopic type /turtle1/cmd_vel | rosmsg show
继续学习rostopic
使用 rostopic pub
rostopic pub可以把数据发布到当前某个正在广播的话题上。
rostopic pub [topic] [msg_type] [args]1
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
rostopic pub这条命令将会发布消息到某个给定的话题。
-1(单个破折号)这个参数选项使rostopic发布一条消息后马上退出。
/turtle1/cmd_vel这是消息所发布到的话题名称。
geometry_msgs/Twist这是所发布消息的类型。
–(双破折号)这会告诉命令选项解析器接下来的参数部分都不是命令选项。这在参数里面包含有破折号-(比如负号)时是必须要添加的。
‘[2.0, 0.0, 0.0]’ ‘[0.0, 0.0, 1.8]’以2.0大小的线速度和1.8大小的角速度开始移动。
- 我们可以使用rostopic pub -r命令来发布一个稳定的10Hz命令流
1 | rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]' |
使用 rostopic hz
rostopic hz命令可以用来查看数据发布的频率。1
rostopic hz /turtle1/pose