ROS学习笔记(一):ROS命令行工具的使用

ROS命令行工具的使用

几个重要概念:

  • 节点(NODE):一个节点就是一个可执行程序,它使用ROS可以和其他节点进行通信。

  • 消息(Message):当在一个话题上,发布或订阅时所使用的ROS的数据类型。

  • 话题(Topic):节点可以在一个话题上发布消息,同样也可以订阅一个话题来接收消息。

  • 主机(Master):是ROS的名字服务器。

一、常用命令

  • $ roscore 启动ROS Master(ROS的节点管理器,在执行其他指令之前必须先执行)

  • $ rosrun 运行某个节点

  • $ rosnode 查看ROS节点信息

  • $ rostopic

  • $ rosservice

  • $ rosparam

  • $ rosmsg

  • $ rossrv

  • $ rqt_graph 查看系统中运行的计算图

二、以小海龟仿真器为例

(一)、启动步骤

  1. $ roscore 启动ROS Master

  2. $ rosrun turtlesim turtlesim_node 启动小海龟仿真器节点

  3. $ rosrun turtlesim turtle_teleop_key (这一步需要新开一个终端) 启动海龟控制节点(用键盘上的方向键控制)

(二)、其他指令

  1. $ rosnode list 查看话题列表

回车,终端显示

lacyexsale@lacyexsale-KLV-WX9:~$ rosnode list
/rosout
/turtlesim

  1. $ rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist 发布话题消息

回车,终端显示

lacyexsale@lacyexsale-KLV-WX9:~$ rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
  x: 1.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0" 

其中:

  • -r 10表示以10Hz的速率执行下面的代码
  • linear表示线速度,默认单位m/s
  • angular表示角速度,默认单位rad/s
  • 让指令停止运行: ctal+alt+C
  • 用左右方向键可以移动光标来修改参数
  • 斜杠/之后的内容按tab可以自动补全
  1. $ rosservice call /spawn 接两下tab,可以在指定位置生成第二只海龟

  2. $ rostopic pub -r 10 /turtle2/cmd_vel geometry_msgs/Twist 发布第二只海龟的话题消息

  3. $ rosbag record -a -O cmd_record 话题记录

回车,终端显示

lacyexsale@lacyexsale-KLV-WX9:~$ rosbag record -a -O cmd_record
[ INFO] [1620646159.046640118]: Recording to 'cmd_record.bag'.
[ INFO] [1620646159.049065144]: Subscribing to /rosout_agg
[ INFO] [1620646159.051456605]: Subscribing to /rosout
[ INFO] [1620646159.053698522]: Subscribing to /turtle1/pose
[ INFO] [1620646159.055860707]: Subscribing to /turtle1/color_sensor
[ INFO] [1620646159.057686358]: Subscribing to /turtle1/cmd_vel
[ INFO] [1620646159.059708993]: Subscribing to /turtle2/pose
[ INFO] [1620646159.061294253]: Subscribing to /turtle2/color_sensor
[ INFO] [1620646159.063796728]: Subscribing to /turtle3/pose
[ INFO] [1620646159.066294434]: Subscribing to /turtle3/color_sensor

此后对小海龟执行的移动操作都会被记录在 /home/lacyexsale/cmd_record.bag 文件下

关闭键盘对小海龟的控制窗口,关闭小海龟仿真器,再重新运行一个小海龟仿真器,执行

  1. $ rosbag play cmd_record.bag

回车,终端显示

lacyexsale@lacyexsale-KLV-WX9:~$ rosbag play cmd_record.bag 
[ INFO] [1620646696.485302981]: Opening cmd_record.bag

Waiting 0.2 seconds after advertising topics... done.

Hit space to toggle paused, or 's' to step.
 [RUNNING]  Bag Time: 1620646159.067916   Duration: 0.000000 / 27.4 [RUNNING]  Bag Time: 1620646159.067965   Duration: 0.000048 / 27.4 [RUNNING]  Bag Time: 1620646159.068010   Duration: 0.000094 / 27.4 [RUNNING]  Bag Time: 1620646159.168353   Duration: 0.100436 / 27.4 [RUNNING]  Bag Time: 1620646159.268543   Duration: 0.200627 / 27.4 [RUNNING]  Bag Time: 1620646159.305973   Duration: 0.238056 / 27.4 
 *** #后面很长,省略一些代码

可以看到小海龟会自动复现上次被记录的轨迹

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值