一、ROS中常用的命令行工具介绍
rqt_ 图形化界面相关
rosnode 节点相关
rostopic 话题相关
rosmeg 消息相关
rosservice 服务相关
rosbag 包相关操作
二、ROS中常用的命令行详细实现
1、rqt_graph查看ROS图
这里一共要打开四个终端(ctrl+alt+T)
第一个终端输入 roscore
第二个终端输入 rosrun turtlesim turtlesim_node
第三个终端输入 rosrun turtlesim turtle_teleop_key
第四个终端输入 rqt_graph
可以看到一个qt的弹窗,里面画出了两个节点,一个是键盘节点tuetleop_turtle,一个是海龟仿真器节点turtlesim,他们之间使用话题turtle1,传递消息cmd_vel。
不了解相关知识的这里放个传送门:7.ROS的核心概念_哔哩哔哩_bilibili
2、rosnode list 列出当前ROS系统中正在运行的节点。
rosnode list
3、rosnode info + /节点名 显示节点的详细信息
在海龟程序没关的情况下,我们可以使用
rosnode info /turtlesim
4、rostopic list 列出当前ROS系统中正在发布消息的话题
rostopic list
5、rostopic pub /turtle1/cmd_vel + 双击TAB 发布话题(修改y值)
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 0.0
y: 1.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
其中可以在pub后面加上-r 10参数,代表着发布10次。
同时linear代表着线速度单位为m/s,angle代表着角速度单位为rad/s
值得一提的是pub 后面的/turtle1/cmd_vel 是话题名,而geometry_msgs/Twist "linear:……是话题中的内容即消息。
6、rosmeg show + 消息 来查看消息的数据结构
rosmeg show geometry_msgs/Twist
7、rosservice list 列出当前ROS系统中的可用服务
rosservice list
其中可以看到rosservice中有一个叫做 /spawn 的服务,这个服务可以产生一个新的海龟。
8、rosservice call /spawn + 双击TAB 产生一个新海龟(修改参数可以修改出生位置和海龟名字)
rosservice call /spawn "x: 2.0
y: 0.0
theta: 0.0
name: 'turtle2'"
同时我们可以使用rostopic list来查看新生成海龟的话题。
9、rosbag record -a -O + 记录的名字 可以记录当前话题。
rosbag recode -a -O cmd_bag
10、rosbag play + 记录的名字 可以复现记录的动作
rosbag play cmd_record.bag
但因为起始的状态不同,会略有不同。如果想看到一样的,可以重新打开一个终端,记录一个没有使用过的海龟。