五、ROS常用组件
2.rosbag
在ROS中关于数据的留存以及读取实现,提供了一个专门的工具:rosbag;
概念:
用于录制和回放ROS主题的一个工具集。
作用:
实现了数据的复用,方便调试、测试
本质:
rosbag本质也是ros的节点,当录制时,rosbag是一个订阅节点,可以订阅话题消息并将订阅的数据写入磁盘文件;当回放时,rosbag是一个发布节点,可以读取磁盘文件,发布文件中的话题消息;
2.1 rosbag使用——命令行
需求:ROS内置的乌龟,操作过程使用rosbag录制,录制结束后,实现重放。
实现:
1、创建目录保存录制的文件
mkdir ./bags
cd bags
2、开始录制
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
启动乌龟GUI以及键盘控制节点;
rosbag record -a -o bags/hello
操作小乌龟运行一段时间,结束录制使用ctrl+c,,在创建的目录中会生成bag后缀文件;
3、查看文件
rosbag info bags/hello_2022-11-16-21-32-41.bag
path: bags/hello_2022-11-16-21-32-41.bag
version: 2.0
duration: 21.3s
start: Nov 16 2022 21:32:41.60 (1668605561.60)
end: Nov 16 2022 21:33:02.89 (1668605582.89)
size: 216.7 KB
messages: 2902
compression: none [1/1 chunks]
types: geometry_msgs/Twist [9f195f881246fdfa2798d1d3eebca84a]
rosgraph_msgs/Log [acffd30cd6b6de30f120938c17c593fb]
turtlesim/Color [353891e354491c51aabe32df673fb446]
turtlesim/Pose [863b248d5016ca62ea2e895ae5265cf9]
topics: /rosout 3 msgs : rosgraph_msgs/Log
/turtle1/cmd_vel 265 msgs : geometry_msgs/Twist
/turtle1/color_sensor 1317 msgs : turtlesim/Color
/turtle1/pose 1317 msgs : turtlesim/Pose
4、回放文件
rosbag play bags/hello_2022-11-16-21-32-41.bag
重启乌龟节点,此时可以看见乌龟按照bag文件录制的轨迹运行
注:rosbag也是一个节点,因此也可使用rosrun操作。
2.2 rosbag使用——编码
命令行不够灵活,,因此使用编码的模式加强灵活性
1、写bag
实现流程:
初始化;
创建rosbag对象;
打开文件流;
写数据;
关闭文件流;
代码:

最低0.47元/天 解锁文章
2008

被折叠的 条评论
为什么被折叠?



