ROS实践手册(二)命令行工具

笔者根据 古月居 · 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发布内容
      • 输入话题名后,双击TAB键补全默认结构,包括该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:请求某个服务
      • 输入服务名后,双击TAB键补全默认结构
      • 例如,请求生成新小海龟的服务,输入$ 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

实践练习

  • 启动ROS仿真器
    • $ roscore: 启动 Ros Master
    • $ rosrun turtlesim turtlesim_node :启动小海龟仿真器
  • 控制指令
    • turtle1 绘制 “O”
      • $ 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°弧
    • turtle2 绘制 “R”
      • $ 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
    • turtle3 绘制 “S”
      • $ 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
        在这里插入图片描述
发布了3 篇原创文章 · 获赞 1 · 访问量 1621

猜你喜欢

转载自blog.csdn.net/mashaocong/article/details/104073440