ROS命令行

@TOC
ROS常用命令:
• rostopic
• rosservice
• rosnode
• rosparam
• rosmsg
• rossrv

一、启动小海龟

在一个终端启动ROS Master

$ roscore

再打开一个终端启动小海龟仿真器

$ rosrun turtlesim turtlesim_node

再打开一个终端启动海龟控制节点(以使得键盘上下左右键控制小海龟)

$ rosrun turtlesim turtle_teleop_key

此时按键盘上下左右键即可控制小海龟的移动!
在这里插入图片描述

二、rqt_graph

此命令的作用是显示上述小海龟的节点关系,如下图所示。
/teleop_turtle是键盘控制节点,/turtlesim是仿真器节点。
在这里插入图片描述

三、rosnode list

列出节点。其中/rosout不用管它。
在这里插入图片描述

四、rosnode info 节点名称

显示出节点信息。
在这里插入图片描述

五、rostopic和rostopic list

rostopic list显示活动的话题。其中/turtle1/cmd_vel是控制小海龟移动的话题,其实我们可以不使用键盘而是使用命令的形式来控制小海龟的移动,见第六节。
在这里插入图片描述

六、不使用键盘而是使用命令的形式来控制小海龟的移动

命令如下,其中pub是发布话题的意思,-r 10是以10赫兹的频率循环的意思。注意:你在键盘上输入到“rostopic pub -r 10 /turtle1/cmd_vel”时可以按两次Tab键来自动补全后面的内容(即消息)。linear:为移动速度,单位为m,angular:为旋转速度,单位为弧度。

$ 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"

在这里插入图片描述

七、查看六中的消息(即命令)的数据类型

在这里插入图片描述

八、rosservice

rosservice list。其中/spawn是产生一个心新海龟,我们在第九节中来操作,产生一个新海龟。
在这里插入图片描述

九、产生一个新海龟

输入如下命令。call是指调用一个服务的意思,即调用/spawn服务。x、y和theta是指新海龟诞生的坐标和角度。name是需要你命名的新海龟的名称。

$ rosservice call /spawn "x: 5.0
y: 5.0
theta: 0.0
name: 'haha'"

在左下角出现了一只新海龟。
并且我们终端输入rostopic list命令就会出现名为"haha"的海龟。这里说一下,你现在把第六节的命令的turtle1改成haha然后执行,那么你控制的就是名为"haha"的新海龟。
在这里插入图片描述

十、话题记录与话题复现

话题记录与话题复现是指,你可以记录下海龟的运动轨迹到一个文件里,以后你可以随时运行此文件以复现此海龟的运动轨迹。

第一步,输入如下命令:
roscord是记录的意思,-a是把所有的数据都记录,-O是保存为的打包的意思,cmd_record我们自己命名的打包的文件的名称。

$ rosbag record -a -O cmd_record

第二步,按上下左右让小海龟运动出现运动轨迹,然后按Ctrl+C结束
你会发现在home目录下出现名为“cmd_record.bag”的文件
第三步,复现小海龟运动轨迹

$ rosbag play cmd_record.bag

猜你喜欢

转载自blog.csdn.net/weixin_45519751/article/details/112546745
今日推荐