使用ROS对Pandora进行数据获取,得到 .bag文件
1.解析到.jpg的图像数据
<launch>
<node pkg="rosbag" type="play" name="rosbag" required="true" args="/home/gxd-pc/Videos/2019-12-22-17-59-00.bag"/>
<node name="extract" pkg="image_view" type="extract_images" respawn="false" required="true" output="screen" cwd="ROS_HOME">
<param name="sec_per_frame" value="0.00001"/>
<remap from="image" to="/cam0/image_raw"/>
</node>
</launch>
其中:
(1)bag存放路径,自己修改自己bag的路径。
args="/home/gxd-pc/Videos/2019-12-22-17-59-00.bag"/>
(2)自己bag的topics可以用rosbag info bag名字来获取
<remap from="image" to="/cam0/image_raw"/>
(3)如果需要改变频率,可以在.launch文件中插入下面的代码行,这样提取出来的图片就和bag文件里的消息数量差不多了
<param name="sec_per_frame" value="0.0001"/>
(4)这时的图片名字是从0自动编号的,如果想要改变图像名称,可以再加一行:
<param name="file_format" value="frame%05d.jpg">
(5)image_view这个功能包挺好用的,例如可以用来重发bag录制的视频:
rosrun image_view image_view image:=[topic_name]
最后打开roscore,运行roslaunch extract.launch,图片就会保存在.ros中,.ros在Home下用Ctrl+H可以显示出.ros文件。
(6)用一条命令也可以实现(没试过,有兴趣的可以试一试):
rosrun image_view extra_images _sec_per_frame:=0.03 image:=<topic_name_in_bag>
运行rosrun没有问题,就可以用rosbag打开文件
rosbag play xxx.bag
2.解析.bag文件到.pcd点云数据文件,有两种方法:
(1)利用bag_to_pcd, 代码如下
rosrun pcl_ros bag_to_pcd <*.bag> <topic> <output_directory>
(2)用pointcloud_to_pcd, 代码如下
rosrun pcl_ros pointcloud_to_pcd input:=<topic>
方法2未运行成功,该命令行,需要在节点进行通信时,抓取话题信息,暂时无法测试.参考 1.http://wiki.ros.org/rosbag/Tutorials/Exporting image and video data 2.https://answers.ros.org/question/9102/how-to-extract-data-from-bag/
部分参考自:https://msd.misuland.com/pd/2884250171976192528