Nuscenes数据转换工具 – bin2bag
一. 工具地址
二. 下载安装
- 下载
git clone https://github.com/kinggreat24/nuscene2kitti.git
- 编译(按照普通ros package的方式)
未采用docker方式构建镜像,直接编译。
catkin_make -DCATKIN_WHITELIST_PACKAGES="nuscenes2bag"
source devel/setup.bash
注意:
编译工程中,可能出现的错误/home/cui/catkin_ws/src/nuscene2kitti/src/SceneConverter.cpp:254:73: error: call of overloaded ‘abs(nuscenes2bag::TimeStamp)’ is ambiguous
解决办法:
将/home/cui/catkin_ws/src/nuscene2kitti/src/SceneConverter.cpp:254 中abs改为fabs ,再重新编译
三. 使用流程
3.1 单一场景(scene)转换,结果以文件形式保存。命令如下:
rosrun nuscenes2bag nuscenes2bag --scene_number $1 --dataroot /media/kinggreat24/T7/data/nu_scenes/nuscenes_test --out /media/kinggreat24/T7/data/nuscenes_bags_test/ --version v1.0-test
eg.
rosrun nuscenes2bag nuscenes2bag --scene_number 61 --dataroot /home/cui/data/nuscenes/v1.0-mini --out /home/cui/data/nuscenes/v1.0-mini/nuscenes_kitti_single --version v1.0-mini
注意:
v1.0-mini数据集包含的场景id主要有以下这些。
可通过在MetaDataReader.cpp:367行添加打印场景id语句:std::cout << "scene.sceneId: " << scene.sceneId << std::endl;
scene.sceneId: 61
scene.sceneId: 103
scene.sceneId: 553
scene.sceneId: 655
scene.sceneId: 757
scene.sceneId: 796
scene.sceneId: 916
scene.sceneId: 1077
scene.sceneId: 1094
scene.sceneId: 1100
文件结果:
3.2 多场景全部转换,结果以文件形式保存。命令如下:
rosrun nuscenes2bag nuscenes2bag --dataroot /media/kinggreat24/T7/data/nu_scenes/nuscenes_test --out /media/kinggreat24/T7/data/nuscenes_bags_test/ --version v1.0-test
eg.
rosrun nuscenes2bag nuscenes2bag --dataroot /home/cui/data/nuscenes/v1.0-mini --out /home/cui/data/nuscenes/v1.0-mini/nuscenes_kitti_multi --version v1.0-mini
文件结果:
3.3 生成bag包,指令如下
修改
:NuScenes2Bag.cpp:152行,false改为true, 重新编译执行3.1或者3.2操作
sceneConverters.back()->run(
inDatasetPath, outputRosbagPath, fileProgress,true);
rviz可视化结果:
lidar_topic: /lidar_top
frame: lidar_top