@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