ROS命令行工具的使用

ROS学习笔记

学习古月居ros21讲笔记

第一章 ROS命令行工具的使用


目录

ROS学习笔记

一、各命令介绍

1.roscore

2.rosrun

3.rqt_graph

4.rosnode

5.rostopic

6.rosmsg 

7.rosservice

8.rosbug

二、训练

三、总结


一、各命令介绍

1.roscore

启动rosMaster(rosMaster是所有节点的管理器)

roscore

ROS命令行工具的使用_第1张图片


2.rosrun

运行一个节点  后面接两个参数  一个是功能包节点 一个是此功能包里的功能节点(在输入完  rosrun 功能包名  后按两下tab键将会显示这个包中的所有节点)

列:

rosrun turtlesim    //学习用功能包    此时双击tabtab可以获取此包中所有节点信息

rosrun turtlesim turtlesim_node        //仿真器节点
rosrun turtlesim turtle_teleop_key        //键盘控制节点

3.rqt_graph

ros中有许多以rqt开头的可视化工具

rqt_graph可以显示整个系统的全貌,可以显示所有节点间的话题

ROS命令行工具的使用_第2张图片

此时为键盘控制节点与仿真器节点的关系


4.rosnode

完成与节点相关的任务

(rosout为默认话题,会自动启动,此话题用来提取所有节点信息)


5.rostopic

完成与话题相关任务

ROS命令行工具的使用_第3张图片

//rostopic pub 话题名 按tab补全 会接上具体数据

rostopic pub    按tab补全

//根据提示找到想要运行的话题,一步步补全

完成自动运行小海龟:

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: 2.0" 

-r 10 为循环结构

 ROS命令行工具的使用_第4张图片

 慢慢按tab补全


6.rosmsg 

与消息相关任务


7.rosservice

完成服务相关任务

rosservice   按回车显示所有功能

rosservice list 此时服务的所有内容(此时服务端为海龟的仿真器,客户端为命令)

rosservice call 唤醒服务

rosservice call /spawn 按两下tab补全其余数据(生成一只海龟)

rosservice call /spawn "x: 3.0
y: 3.0
theta: 0.0
name: 'aaa'"     //按下回车
name: "aaa"        //生成成功

ROS命令行工具的使用_第5张图片


8.rosbug

记录话题并保存

记录:

rosbag recored -a-O 文件名    //-a为 -all保存所有数据  -O为保存文件


rosbag record -a -O ros_record    //开始记录数据,并将数据存在根目录的ros_record.bag里

 

复现:

rosbag play 文件名.bag


rosbag play ros_record.bag         复现之前对海龟的运动

二、训练

完成3只乌龟复现跑动形成三角形

roscore

rosrun turtlesim turtlesim_node    //生成仿真器,同时有一只位于(5.5,5.5)角度为0的小海龟

rosservice call /spawn "x: 7.5
y: 5.5
theta: 2.0943951023931954923084289221863
name: 'a'"     //生成位于(7.5,5.5)角度为120°的第二只海龟

rosservice call /spawn "x: 6.5
y: 7.2320508075688772935274463415059
theta: 4.1887902047863909846168578443727
name: 'b'"     //生成位于(6.5,5.5+根号3)角度为240°的第三只海龟

rosbag record -a -O sanjiaoxin    //开始记录话题

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0"        //自动生成的海龟默认名为turtle1


rostopic pub /a/cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0"


rostopic pub /b/cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0"

//在record界面按下ctrl c 结束记录
//关闭除roscore所有页面重新开始


rosrun turtlesim turtlesim_node    //生成仿真器,同时有一只位于(5.5,5.5)角度为0的小海龟

rosservice call /spawn "x: 7.5
y: 5.5
theta: 2.0943951023931954923084289221863
name: 'a'"     //生成位于(7.5,5.5)角度为120°的第二只海龟

rosservice call /spawn "x: 6.5
y: 7.2320508075688772935274463415059
theta: 4.1887902047863909846168578443727
name: 'b'"     //生成位于(6.5,5.5+根号3)角度为240°的第三只海龟

rosbag sanjiaoxin.bag    //复现


//由于生成小龟是用的服务不是话题,所以我不知道如何实现复现,只能再敲一遍

ROS命令行工具的使用_第6张图片

完成


三、总结

效率有点低

你可能感兴趣的:(ROS学习笔记,经验分享)