笔者根据 古月居 · ROS入门21讲 学习整理,并参考《ROS机器人开发实践》一书。
【注】该部分可参考 古月居 · ROS入门21讲 第8讲
$ roscore
启动 Ros Master$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
$ rqt_graph
:计算图可视化界面$ rosnode
:节点工具
$ rosnode ping node_name
:测试连接某节点$ rosnode list
:列出当前所有的节点$ rosnode info node_name
:查看某节点信息$ rosnode machine machine_name
:列出在特定机器或列表机器上运行的节点$ rosnode kill node_name
:杀死某节点$ rosnode cleanup
:清除不可到达节点的注册信息$ rosnode help
:查看帮助信息$ rostopic
:话题工具
$ rostopic bw topic_name
:查看某个topic的带宽$ rostopic delay topic_name
:在标题中通过时间戳显示话题延迟$ rostopic echo topic_name
:显示某个topic的内容$ rostopic find topic_type
:查找某个类型的topic$ rostopic hz topic_name
:查看某个topic的频率$ rostopic info topic_name
:显示某个topic的属性信息$ rostopic list
:列出当前所有的topic$ rostopic pub topic_name
:向某个topic发布内容
$ rostopic pub /turtle1/cmd_vel
后双击TAB键,补全的信息分别为Twist数据结构中的线速度linear和角速度angular,单位分别为米和弧度。-r rate_number
设置发布topic的频率,例如,输入 $ rostopic pub -r 10 /turtle1/cmd_vel
后双击TAB键补全信息,表示每秒钟发布10次该topic。$ rostopic type topic_name
:查看某个topic的类型(msg)$ rosmsg
:消息工具
$ rosmsg show message_name
:查看某个消息的数据结构$ rosmsg info message_name
:同上, show
的别名。$ rosmsg list
:列出当前所有的消息$ rosmsg md5 package_name
: _ 未知 _$ rosmsg package package_name
:列出某个包中的所有消息$ rosmsg packages message_name
:列出包含该消息的所有包$ rosservice
:服务工具
$ rosservice args
:查看某个服务的参数结构$ rosservice call sevice_name
:请求某个服务
$ rosservice call /spawn
后双击TAB键,补全的信息分别为新小海龟的x,y坐标,theta角度朝向,name名称。$ rosservice find service_type
:按照服务类型查找服务$ rosservice info sevice_name
:查看某个服务的详细信息$ rosservice list
:列出当前所有可请求的服务$ rosservice type sevice_name
:查看某个服务的类型$ rosservice uri sevice_name
:查看某个服务rosrpc所在的主机及端口$ rosbag
:话题记录工具
$ rosbag check
:判断一个bag文件在当前系统是否可执行,可移动$ rosbag compress
:压缩一个或多个bag文件$ rosbag decompress
:解压一个或多个bag文件$ rosbag decrypt
:解密一个或多个bag文件$ rosbag encrypt
:加密一个或多个bag文件$ rosbag filter
:过滤bag中的内容$ rosbag fix
:修复bag文件使其在当前系统可执行$ rosbag help
:查看帮助信息$ rosbag info
:总览一个或多个bag文件的内容$ rosbag play
:以时间同步的方式回放一个或多个包文件的内容$ rosbag record
:用指定主题的内容记录一个bag文件$ rosbag reindex
:重新索引一个或多个bag文件$ rosbag record -a -O record_file_name
$ rosbag play record_file_name.bag
$ roscore
: 启动 Ros Master$ rosrun turtlesim turtlesim_node
:启动小海龟仿真器$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.5708]'
:向左90°弧$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist '[2.5, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
:前行2.5$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist '[4.0, 0.0, 0.0]' '[0.0, 0.0, 3.1416]'
:向左180°弧$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist '[2.5, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
:前行2.5$ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.5708]'
:向左90°弧$ rosservice call /spawn 1.0 5.5 1.5708 "turtle2"
:创建新乌龟turtle2,坐标为(1.0, 5.5),头朝向北$ rostopic pub -1 /turtle2/cmd_vel geometry_msgs/Twist '[5.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
:前行5.0$ rostopic pub -1 /turtle2/cmd_vel geometry_msgs/Twist '[0.0, 0.0, 0.0]' '[0.0, 0.0, -1.5708]'
:原地右转90°$ rostopic pub -1 /turtle2/cmd_vel geometry_msgs/Twist '[1.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
:前行1.0$ rostopic pub -1 /turtle2/cmd_vel geometry_msgs/Twist '[4.0, 0.0, 0.0]' '[0.0, 0.0, -3.1416]'
:向右180°弧$ rostopic pub -1 /turtle2/cmd_vel geometry_msgs/Twist '[1.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
:前行1.0$ rostopic pub -1 /turtle2/cmd_vel geometry_msgs/Twist '[0.0, 0.0, 0.0]' '[0.0, 0.0, 2.3562]'
:原地左转135°$ rostopic pub -1 /turtle2/cmd_vel geometry_msgs/Twist '[3.5355, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
:前行3.5355$ rosservice call /spawn 8.0 5.5 0.0 "turtle3"
:创建新乌龟turtle3,坐标为(10.0, 5.5),头朝向东$ rostopic pub -1 /turtle3/cmd_vel geometry_msgs/Twist '[1.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
:前行1.0$ rostopic pub -1 /turtle3/cmd_vel geometry_msgs/Twist '[4.0, 0.0, 0.0]' '[0.0, 0.0, 3.1416]'
:向左180°弧$ rostopic pub -1 /turtle3/cmd_vel geometry_msgs/Twist '[4.0, 0.0, 0.0]' '[0.0, 0.0, -3.1416]'
:向右180°弧$ rostopic pub -1 /turtle3/cmd_vel geometry_msgs/Twist '[1.0, 0.0, 0.0]' '[0.0, 0.0, 0.0]'
:前行1.0