【工作向】ros常用命令

1. 查看数据包信息

rosbag info xx.bag 	 // 查看数据包信息

2. 数据播包

rosbag play xx.bag  					// 播放xx数据包
rosbag play *.bag	 					// 播放目录下所有数据包
rosbag play bag1 bag2					// 播放多个bag包
rosbag play --bags=bag1 bag2			// 同上,播放多个bag包

rosbag play –s 10 –r 0.7 –l *.bag		// -s指定从几秒开始,-r指定播放速度,-l循环播放
rosbag play –s 10 –r 0.7 -u 60 *.bag	// 从10s开始0.7倍速播包,持续播60s

rosbag play --pause *.bag				// 以暂停方式启动
// 等播放到topic_1、topic_2相关话题的时候暂停播放,等待命令行输入空格时继续播放
rosbag play xxx.bag --pause-topics /topic_1 /topic_2

rosparam set /use_sim_time time			// 设置使用仿真时间,播包或者录包时间戳对不上时
rosbag play xx.bag --clock				// 系统以msg对应的仿真时间运行,而不是wall clock time(UTC);避免在做msg的tf转换时把更早时间的msg丢掉

rosbag play xxx.bag --topic /topic_name1 /topic_name2	// 只播放特定topic1/2
rosbag play xxx.bag --topics /topic_1 /topic_2			// 同上

3. 节点查看

rosnode list				// 获得正在运行的节点列表
rosnode info /node-name   	// 获得特定节点的信息
rosnode ping node-name		// 测试节点是否连通
rosnode kill node-name     	// 终止节点

4. 节点运行

roscore							// 启动master节点;启动ros

// 起单个节点
rosrun 功能包名称 节点名称		// 执行功能包中的一个节点

// 起多个节点
roslaunch 功能包名称 launch文件	// 执行功能包中一个或多个节点或设置执行选项
// 用来启动定义在launch文件中的多个节点,采用xml格式对要运行的节点进行描述

rospack find package_name		// 查找package
rospack depends package_name	// 查看package依赖
rospack depends1 package_name	// 查看package的直接依赖

5. 查看topic

rostopic –h					// 查看帮助
rostopic list				// 列出所有topic
rostopic info /topic		// 查看topic由谁发布和订阅
rostopic type topic_name	// 查看topic的message类型
rostopic hz topic_name		// 查看topic的频率
rostopic echo topic_name	// 显示topic上发布的message (python版本有要求)
// rostopic echo topic_name命令要在节点运行的情况下才能查看实时的消息输出

修改topic名字

rosbag play xxx.bag oldTopicName:=newTopicName
同时录包 rosbag record -o bagName.bag /newTopicName /otherTopicName

保存某个topic内容

rostopic echo -b xxx.bag -p /topic_name > xxx.csv
rostopic echo -b xxx.bag -p /topic_name > xxx.txt
/* csv格式
目标1消息字段... 目标2消息字段... 目标3消息字段...
 目标1 time1	 目标2 time1	 目标3 time1
 目标1 time2	 目标2 time2	 目标3 time2
 ...				...				...
*/	

6. 查看msg

rosmsg –h			// 查看帮助
rosmsg list			// 查看所有消息
rosmsg show msg		// 查看msg中有哪些字段

7. 日志清理

rosclean check		// 检查日志文件
rosclean purge		// 清理日志文件

8. 参数设置和加载

rosparam list		// 当前使用到的参数
rosparam get /		// 获取参数列表中所有参数的值
rosparam set param_name true	// 设置参数取值为true
rosparam set param_name 150		// 设置参数取值为150

rosparam load param_file.yaml	// 加载文件中的所有参数
rosparam dump params.yaml		// 将所有参数写到params.yaml文件
rosparam load params.yaml copy	// 参数从文件中导出
rosparam get copy/param_name	// 获取参数取值

9. 录包

// cd到目标文件夹下
rosbag record –a					// 录制所有topic的数据包,不光包括正在播的bag里有的
rosbag record /topic_a /topic_2			// 录制topic_1/topic_2的数据包
rosbag record -O bag_name.bag /topic1	// 录制topic_1,指定生成数据包的名字,否则都是 日期.bag
rosbag record -o bag_name.bag /topic1	// 录制topic_1,指定生成数据包的名字,格式会自动变成 bag_name_时间.bag
rosbag record -a -o bag_name.bag		// 录制所有topic

// 录包时间没对齐的话,需要设置rosparam set /use_sim_time true
// 然后播包时加 --clock

rosbag record --duration=30	/topic	// 录制topic,录制时长30s;还可设置为--duration=5m 或 --duration=2h
rosbag record --split --duration=30	/topic_1 /topic_2	// 录制topic_1和2,录制持续30s后分文件存储
rosbag record --split --duration=5m	/topic_1 /topic_2	// 录制topic_1和2,录制持续5m后分文件存储
rosbag record --split --duration=2h	/topic_1 /topic_2	// 录制topic_1和2,录制持续2h后分文件存储
rosbag record --split --size=1024	/topic	// 录制topic,录制大小1024M后分文件存储
rosbag record -l 1000	/topic				// 录制topic满1000个消息

10. 切割bag

  • 根据topic进行切割/过滤
// 根据topic过滤/切割
rosbag filter my.bag only-tf.bag "topic == '\tf'"

// 根据多个topics进行过滤/切割
rosbag filter my.bag output.bag "topic == '/velodyne_point_cloud' or topic =='/visensor/imu'"
  • 根据时间段进行切割/过滤
// 根据时间过滤/切割
rosbag filter my.bag output.bag "t.to_sec() <= 1659100376.473893"

// 根据某个时间段过滤/切割
rosbag filter my.bag output.bag "t.to_sec() >= 1659100335.039506 and t.to_sec() <= 1659100376.473893"
  • 切割/过滤某个时间段内的多个topics
// 根据topic和时间过滤/切割
rosbag filter my.bag output.bag "topic == '/odometry/gps' and t.to_sec() <= 1659100376.473893"

// 过滤/切割某个时间段内的多个topics
rosbag filter my.bag output.bag "(topic == '/velodyne_point_cloud' or topic =='/visensor/imu')
		and (t.to_sec() >= 1659100335.039506 and t.to_sec() <= 1659100376.473893)"

11. ros系统学习/topic关系

从零开始讲解ROS

ROS系统整体架构

12. ros新增节点

待补充


参考文章:
为什么要加–clock参数
rosrun和roslaunch的区别
ros重命名topicName
rosbag record命令
rosbag filter命令

created by shuaixio, 2021.11.14

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值