【ROS学习1】ROS命令行工具的使用(很形象!!)

ROS命令行工具的使用

以(小海龟仿真器)为例:

分别打开三个终端:

1.roscore :

#启动ROS Master
在这里插入图片描述

2.rosrun turtlesim turtlesim_node:

#启动 小海龟仿真器
turtlesim是ROS下的一个功能包名
双击tap以查看包中包含的节点:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

3.rosrun turtlesim turtle_teleop_key :

#启动海龟控制节点(键盘控制)
在这里插入图片描述
在这里插入图片描述
ROS下有很多基于Qt的可视化工具,rqt_graph可以用来显示系统的计算图:清晰的展现系统的全貌。
在这里插入图片描述其中turtlesim是仿真器节点,
teleop_turtle是键盘控制节点,

两个节点之间由一个topic:turtle1/cmd_vel做通讯。具体的内容便是键盘传输的速度指令。

常用命令行工具:

rosnode:

显示系统中所有节点相关信息
rosnode list:列出系统中所有节点在这里插入图片描述
其中rosout是一个默认的节点,该topic主要采集ros里所有节点的日志信息,提交给上面的界面做显示。

rosnode info:

查看某一节点的具体信息,
如rosnode info /turtlesim
在这里插入图片描述
我们可以直观的看到这个节点在发布(output)哪一些topic(Publications)以及订阅(input)哪一些topic(Subscriptions)。

rostopic:

在这里插入图片描述
rostopic list:打印当前系统的所有话题:在这里插入图片描述
那我们是否可以不依赖键盘操控给话题发布数据,让海龟运动呢?

可以的,使用rostopic pub(public)发布话题。

在这里插入图片描述
其中turtle1/cmd_vel是话题名,Twist 是发布的指令的消息结构(数据内容),“ ”里为具体数据,

其中linear为海龟运动的线速度,
angular为角速度。

使用pub -r (rate频率)来以一定的频率发布话题内容,

如pub -r 10(10Hz)
在这里插入图片描述

ctrl+C终止发布

使用rosmsg show可以查看话题的具体结构:

如rosmsg show geometry_msgs/Twist

在这里插入图片描述
这样我们便可以看到Twist消息的数据结构。

rosservice(服务)

rosservice list:打印服务内容,服务端为我们的海龟仿真器,终端就作为客户端以请求某个服务。

其中使用rosservice call /spawn可以产生一只新的小海龟。

在这里插入图片描述
x,y为小海龟诞生之初的坐标,theta为初始方向角,name为海龟这个节点名。

(出现了,三头龟!!)
在这里插入图片描述

再次使用rostopic list,发现新增了turtle2和turtle3
在这里插入图片描述

再次查看计算图:在这里插入图片描述

话题记录(录制rosbag)

rosbag record -a -O cmd_record
-a:保存所有数据
-O以压缩包形式,后面接文件名

录制完毕后生成.bag文件。

运行rosbag
rosbag play cmd_record.bag
在这里插入图片描述
在这里插入图片描述
如有不足,欢迎讨论!

Guess you like

Origin blog.csdn.net/SESESssss/article/details/105260264