ROS大型工程学习(三) ROS常用命令行
1、rosbag
对ros包进行操作的命令。
(1)录制包:
rosbag record -a //录制数据包,所有topic都录制
rosbag record /topic_name1 /topic_name2 /topic_name3 //只录制需要的topic
rosbag record -O filename.bag /topic_name1 //录制并命名数据包名称
如果在 launch 文件中使用 rosbag record 命令,如下:
<node pkg="rosbag" type="record" name="bag_record" args="/topic1 /topic2"/>
默认存放路径是 ~/.ros 中。
(2)检查包
rosbag info filename.bag //显示数据包信息,比如录制时间、话题、版本等等
(3)回放包
rosbag play <bagfile> //播放过程中,空格可以暂停播放
2、roscd
直接切换到ros包的位置。
roscd 包名[/子文件夹]
3、rosrun
直接运行ros节点文件。
rosrun package名 executable文件
4、roslaunch
启动多个节点
roslaunch package_name file.launch
如果运行过程中系统发现没有开启roscore,会默认打开。
这个文件中可以写哪些东西?
官方文档写的非常清楚:
http://wiki.ros.org/roslaunch/Tutorials/Roslaunch%20tips%20for%20larger%20projects
5、rosmsg / rossrv
rosmsg 和 rossrv 用法完全一样。
(1)rosmsg show显示msg类型
rosmsg show sensor_msgs/CameraInfo
(2)rosmsg list 显示所有的msg文件
rosmsg list
(3)其他的不常用,想了解的话见官网 http://wiki.ros.org/rosmsg
6、rostopic
rostopic list //查看ROS正在发布的话题
rostopic info /brov/thruster_command //查看pub,sub,type
rostopic pub /brov/thruster_command sensor_msgs/JointState "header: /往话题发消息 //输出”header 后Tab键补全即可出现以下内容: seq: 0 stamp: {secs: 0, nsecs: 0} frame_id: ‘‘ name: [‘‘] position: [0] velocity: [0] effort: [0]" //在这里,我发布两个数据,position(位置)和velocity(力度),添加参数,回车即可,如下: seq: 0 stamp: {secs: 0, nsecs: 0} frame_id: ‘‘ name: [‘‘] position: [200] velocity: [12] effort: [0]"
rostopic echo /brov/thruster_command //打印话题发布的内容 //rostopic echo +话题
rostopic hz /topicname //获取话题发布频率