ROS命令行工具的使用(二)

前言:ROS常用命令及其功能

rosnode 显示系统当中所有节点相关信息
rqt_graph 用来显示系统计算图
rostopic 话题相关的命令
rosservice 服务相关命令
rosbag 话题记录与复现

一、小海龟仿真器实例

1、在Ubuntu系统中打开一个终端,输入以下命令运行ROS的节点管理器——ROS Master,这是ROS必须运行的管理器节点。

roscore

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

2、然后打开一个新终端,使用rosrun命令启动turtlesim仿真器节点.

rosrun turtlesim turtlesim_node

ROS命令行工具的使用(二)_第2张图片
3、该例程会通过键盘控制小乌龟在界面中的移动,现在仿真界面已经出现了,我们还需要打开一个新终端,运行键盘控制的节点。

rosrun turtlesim turtle_teleop_key

ROS命令行工具的使用(二)_第3张图片
之后就可以通过键盘控制小海龟的移动了。下面最终运行的结果。

需要注意的是
使用rosrun命令来运行一个节点。
rosrun是用来运行我们在某个功能包里面某个节点的指令,后面要跟两个参数,一个是功能包名,一个是功能包里面的要运行的节点名。
turtle_teleop_key是键盘控制节点
在turtle_teleop_key的页面下按方向键海龟才会动

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

二、ROS中的常用命令

1、rosnode 显示系统当中所有节点相关信息

在rosnode 后面加入相应的参数可以实现不同的功能,在Ubuntu系统中打开一个终端,输入rosnode回车后,会有相应的参数信息,及其功能。
ROS命令行工具的使用(二)_第5张图片

(1)rosnode list 把系统中所有节点都列出来

在这里插入图片描述

(2)rosnode info + 节点 查看某一个节点的具体信息

ROS命令行工具的使用(二)_第6张图片
其他的命令,可自行进行验证查看。

2、rqt_graph 用来显示系统计算图

ROS命令行工具的使用(二)_第7张图片
其中
turtlesim仿真器节点

teleop_turtle键盘控制节点

两个节点之间有一个话题 turtle1/cmd_vel做通讯

3、rostopic 话题相关的命令

在rostopic后面加入相应的参数可以实现不同的功能,在Ubuntu系统中打开一个终端,输入rostopic回车后,会有相应的参数信息,及其功能。
ROS命令行工具的使用(二)_第8张图片

(1)rostopic list 打印出当前系统所有的话题列表

ROS命令行工具的使用(二)_第9张图片
我们的键盘控制节点和海龟仿真器节点之间是通过话题 /turtle1/cmd_vel 做通信的

我们同样也可以 通过指令给话题发布数据,让海龟运动。

(2)rostopic pub 话题名 消息结构 数据(发布消息)

ROS命令行工具的使用(二)_第10张图片
线速度,角速度 每个速度都有一个xyz的分量

单位是米/秒和弧度/秒
果我们修改为这样,海龟将会按照1.0米/秒的速度向前运动
ROS命令行工具的使用(二)_第11张图片

4、rosservice 服务相关命令

rosservice 后面加入相应的参数可以实现不同的功能,在Ubuntu系统中打开一个终端,输入rosservice 回车后,会有相应的参数信息,及其功能。

ROS命令行工具的使用(二)_第12张图片

(1)rosservice list 列出所有服务

ROS命令行工具的使用(二)_第13张图片
服务的服务端都是仿真器,终端都是作为客户端去请求某个服务的

(2)spawn 这个服务是用来产生一个新的海龟

ROS命令行工具的使用(二)_第14张图片

5、话题记录与复现rosbag

ROS命令行工具的使用(二)_第15张图片

记录当前系统中的所有话题数据,保存下来,下次用的时候再复现出来

这一般用在例如有一个无人机,想做调试,但是不可能每一次都让飞机飞起来做调试,这非常不方便。

一般会做一次飞行,飞行时把所有数据都保存下来,回到实验室再把数据复现出来,再做实验

rosbag record -a -O cmd_record

-a就是-all,把所有数据都保存下来

-O 是把数据保存成一个压缩包

cmd_record就是压缩包的名称

ROS命令行工具的使用(二)_第16张图片
然后通过键盘控制小海鬼,使其运动

之后输入:

rosbag play cmd_record123.bag

ROS命令行工具的使用(二)_第17张图片
小海龟就会按之前的路径进行运动。

你可能感兴趣的:(ROS)