文章目录
1. 学习资料
2. 小海龟实例
2.1 roscore
启动终端指令,也是ROS使用中第一步需要运行的指令
启动终端,使用roscore启动 ROS Master:
roscore
会出现如下界面:
这个终端是不可以关闭的。
2.2 rosrun
运行指令,运行ros功能包中的某个节点
接着打开另外一个终端,使用 ** rosrun ** 指令运行节点,节点属于功能包,因此运行该指令时,需要以 rosrun + 功能包名+节点名 的形式来进行,在小海龟实例中,运行小海龟的节点如下:
rosrun turtlesim turtlesim_node
在该指令中,turtlesim就是功能包名,turtlesim_node就是节点名。运行该节点之后,桌面上就会出现如下界面:
再打开一个终端,利用rosrun命令运行小乌龟功能包中的键盘控制节点,使用键盘实现小乌龟的运动控制,如下:
rosrun turtlesim turtle_teleop_key
运行该指令后,界面如下:
此时使用键盘中的方向键就可以控制小乌龟的移动,如下:
2.3 rqt_graph
图工具,查看仿真器中的计算图
我们可以使用qt工具来显示系统的计算图(节点之间通讯关系的图),打开新终端,使用 rqt_graph工具来获取图:
rqt_graph
结果如下,图中显示了两个节点,分别是 teleop_turtle(键盘) 和 turtlesim(乌龟),从图中可知,两个节点之间存在 话题通讯
2.4 rosnode
节点工具指令
还可以通过节点指令rosnode ,在终端中直接输入 rosnode,会自动列出rosnode指令的所有选项。
- (1)使用 rosnode list可以查看所有节点
rosnode list
运行结果如下:
- (2) 使用 rosnode info查看节点的具体信息,这里以**/turtlesim**节点为例,
rosnode info /turtlesim
终端中就会显示节点的详细信息, 如下:
2.5 rostopic
话题工具指令
使用rostopic可以使用系统中的topic工具,在终端中直接输入rostopic运行,可以查看rostopic的相关选项,如下:
使用rostopic list可以查看海龟仿真器中所有的话题:
rostopic list
结果如下:
还可以直接使用rostopic指令 直接控制海龟控制器中的小海龟,给出例子如下:
直接控制海龟移动。对上述指令简单修改,还可以让小海龟持续运动,
其中 -r 表示rate。
2.7 rosmsg
消息工具指令
使用rosmsg show指令查看消息的数据结构:
2.8 rosservice
服务工具指令
与rostopic、rosnode指令相似,直接输入rosservice也可以显示相关选项,后接list可以查看所有的服务,rosservice同样可以用来直接控制仿真器中的乌龟,需要特别说明的是,使用终端命令行,终端作为客户端的身份向海龟仿真器,即服务端,请求服务。
使用rosservice查看所有服务:
/spawn是用于创建一直新海龟的服务,使用rosservice call调用,如下有:
此时在界面中会多出一直小海龟。
2.9 rosbag
储存与读取话题数据,用于运动数据的复现。
- (1)使用rosbag储存运动信息
rosbag record -a -O record_name
其中record_name就是储存的包的名称,包被存放在当前目录下。
- (2)使用rosbag读取运动信息
打开新的海龟模拟器,使用:
rosbag play record_name
就可以复现记录中的运动。