FunnyWii
FunnyWii
Published on 2025-05-23 / 4 Visits
0
0

ROS1的bag录制

bag录制

录制所有话题,这里没有指定bag名,会在当前路径生成一个当前时间戳命名的bag

rosbag record -a

录制指定话题

rosbag record <topic_name1> <topic_name2> ...

录制指定话题,并指定bag名称,arg为大写的英文字母O

rosbag record  -O <bagname> <topic_name1> <topic_name2> <topic_name3> ...

查看bag信息

rosbag info <bagname>

该命令可以查看话题时长,消息数量,数据类型和话题名称等

rosbag_info.png

使用rqt_bag工具可以播放bag并可视化数据

rqt_bag <bagname>

rqt_bag.png

bag播放

播放的时候会产生一个对应的node和topic,node名称为/play_<timestamp> ,topic名称和bag中的相同。

rosbag play <bagname>  # 播放指定名称bag
rosbag play *          # 播放当前目录所有bag
rosbag play <bagname> --topic /topic1 /topic2 ...    # 播放指定topic
rosbag play -l <bagname> # 循环播放指定bag
rosbag play -r 2 <bagname> # 指定播放速度倍率,r后参数为速度倍率

bag修复

rosbag录制时,如果异常中断,会生成一个bag.active 为后缀的文件,不能正常播放。

先运行

rosbag reindex xxx.bag.active

会生成一个org.active后缀的中间文件,再运行

rosbag fix xxx.bag.active rename.bag

rename.bag 为修复后的bag

plotjuggler

推荐一个非常好用的ROS bag可视化工具。

安装命令:

sudo apt-get install ros-noetic-plotjuggler 
sudo apt-get install ros-noetic-plotjuggler-ros

第一个命令是安装本体,第二个命令是为了能够支持ROS bag导入,注意换成你的ROS版本。

安装完成后,使用命令启动:

rosrun plotjuggler plotjuggler  


Comment