ROS入门(二)ROS命令行工具

写在最前:此系列为 古月居 课程笔记,非原创,具体视频内容请移步至某字母视频网站。

常用命令

rostopic    rosservice    rosnode    rosparam    rosmsg    rossrv

在海龟中首先运行,启动ROS

roscore

 

开启一个新的终端,然后打开海龟模拟器

rosrun turtlesim turtlesim_node

其中turtlesim是安装的功能包的名字,再运行里面的节点

 

开启一个新的终端,然后运行下一个节点

rosrun turtlesim turtle_teleop_key

 将最后一个终端置于顶端,就可以使用键盘的上下左右控制乌龟

1.rqt_graph

打开一个新的终端,运行第一个工具,rqt_graph是一个显示计算图的工具,通过计算图可以知道整个系统的全貌

rqt_graph

 其中/turtlesim是仿真器节点,/teleop——turtle是键盘控制节点

两个节点之间的通讯,/turtle1/cmd_vel是话题,话题里面的具体内容是速度指令内容

2.rosnode

rosnode是用来显示系统所有节点相关信息的指令

 

rosnode list是列出所有节点的指令

rosnode list

 rosnode info可以查看具体节点信息

rosnode info
rosnode info /turtlesim

 可以看到节点正在发布哪些话题、订阅了哪些话题、提供的服务、主机号、pid号等等

3.rostopic

rostopic是与话题相关的命令行工具,rostopic list可以打印出当先系统的全部话题列表

rostopic list

 

既然rostopic是对于话题的命令工具,那么我们也可以使用该工具使海龟运动

使用rostopic pub

z015@z015-System-Product-Name:~$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
  x: 0.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0" 

 /turtle1/cmd_vel是话题名,话题名输入完成之后双击tab就可补全后面的内容

其中Twist是数据结构,具体为双引号里面的内容,可以看到数据被分为两部分,一个是线速度,一个是角速度,在终端里可以对这两个数据进行更改,这里把x轴上线速度的分量改为1

 回车之后发现海龟只动了一小段后停下了,这是因为pub指令只会发布一次

为了让海龟一直运动,需要给pub加上一个循环

在pub后面加上-r,再加上循环次数

z015@z015-System-Product-Name:~$ 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" 

海龟开始持续运动,撞墙之后终端会发出提示

在pub的终端中ctrl+C中止pub指令

4.rosmsg

rosmsg是与消息相关的命令工具

rosmsg show可以查看消息的数据结构,rosmsg show geometry_msgs/Twist可以查看Twist的数据结构

rosmsg show geometry_msgs/Twist

 

5.rosservice

rosservice是与服务相关的命令工具

rosservice list可以查看仿真器提供的所有的服务内容

rosservice list

 其中/spawn是用来产生一个新的海龟,可以使用该指令生成新乌龟

输入rosservice call /spawn,双击tab进行补全

z015@z015-System-Product-Name:~$ rosservice call /spawn "x: 0.0
y: 0.0
theta: 0.0
name: ''" 

x,y代表产生新海龟的坐标,theta是角度,这两种数据都可以进行修改

name后面的单引号中要输入内容为新海龟命名

 因为是service,所以发出请求之后会返回一个respon

第一个name: 'turtle2'" 是我们输入的内容

第二个name: "turtle2"是返回的respon

这个时候输入

rostopic list

发现多了turtle2的相关内容

 

6.rosbag

rosbag是在ros中一个非常重要的话题记录工具,这个工具可以记录当前的全部话题数据并进行保存,在后续还可以将这些数据复现出来

运行指令

 rosbag record -a -O cmd_record

其中-a是all的缩写,指的是保存全部数据,-O指的是将数据保存为一个压缩包并命名,回车之后开始记录

停止记录数据可以直接ctrl+C,数据就会保存在终端默认的保存路径下

 随后只保留roscore终端,再重新启动仿真器节点

rosrun turtlesim turtlesim_node

然后输入指令

rosbag play cmd_record.bag 

就可以复现之前记录的所有数据进行运动

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值