1 基础命令行语句
从大二四旋翼无人机编队后就没再接触过ROS了,最近由于科研任务需要重新捡起来,打算系统学一下!学习过程参考古月居老师的视频,有兴趣的同学可以去[BliBli]学习。
- 学习平台:Ubuntu 18.04
- 硬件支持:Redme G
1.1 roscore
启动Ros Master 即Ros节点控制器(几乎所有的Ros工作都需要输入这条命令)
首先启动小海龟仿真程序,输入如下指令:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
结果如图所示:
此时,可以在第三个命令行窗口下,通过方向键控制小乌龟移动。活用Tab键可以自动补全代码。
1.2 rqt_graph(显示系统计算图)
1.3 rosnode(显示所有节点相关信息)
可以输入rosnode,并双击Tab查看相关帮助信息
- rosnode list 展示所有节点信息
- rosnode info /turtlesim 展示特定节点的工作进程
1.4 rostopic(和话题相关)
可以直接通过此命令控制小龟移动: rostopic+话题名称+消息结构,如下命令:
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: 2.0"
从图中可以看出,此指令只发布一次,小龟只会移动一小段,接下来尝试循环操作。
尝试以10Hz的频率持续发布命令:
rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 2.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 2.0"
查看一下上述命令 geometry_msgs/Twist的格式:
2 服务类型指令rosservice
同时存在两只海龟
rosservice call /spawn
"x: 2.0
y: 2.0
theta: 2.0
name: 'turtle2'" #定义海龟的初始位置和名字
此时,查看当前节点数,可以看到已经出现了第二只小海龟的节点(可以同时控制两只海龟了呦)
rostopic list
3 指令记录
rosbag record -a -O cmd_record #话题纪录 record= 纪录 -a =all -O=保存为什么形式
rosbag play cmd_record.bag #话题复现
[1] : https://www.bilibili.com/video/BV1zt411G7Vn?from=search&seid=16813335425953229316&spm_id_from=333.337.0.0