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 //获取话题发布频率

相关推荐