Livox laser simulation,使用ros+gazebo的激光雷达览沃(LIVOX)LIDAR数据仿真,一键获得海量点云数据用于深度学习网络训练

最近的一个项目需要做点云目标分类的任务,但是待分类的目标没有合适的数据集并且采集比较困难,师兄就给想到了仿真的方法,我为此 做了一些调研与尝试。

使用的传感器是Livox的激光雷达,官网如下:

Livox LiDAR Sensors - For massive industrial applications

1、Blensor:目前有一个开源的仿真软件叫blensor,这个软件可以拖CAD模型进去仿真一些型号的激光雷达采集数据。

Blensor链接:Blender Sensor Simulation - lidar

相关教程:点云仿真软件Blensor介绍 - JusticeZQ - 博客园

Blensor是一款开源的点云仿真软件,是国外的研究人员在三维动画软件Blender基础上进行开发的,整个安装包很小,只有80M左右,能够模拟Lidar(Velodyne 32/64线等)、TOF相机、Kinect等,而且可以根据自己的需求调整传感器参数,也可以加入噪声模拟实际点云,总之是一款很优秀的点云仿真软件。

2、Gazebo

我们要做的工作是基于livox雷达的,blensor没法设计这款雷达的参数,添加新的型号的雷达需要自己写一个新雷达的脚本放进去,比较复杂。

所以想到了gazebo的方法,搜了一下览沃官方是做过一个仿真工程的:

环境:Ubuntu16.04+ros kinetic+gazebo7+Livox-SDK

链接:https://github.com/Livox-SDK/livox_laser_simulation

另一个(kinetic):https://github.com/lvfengchi/livox_laser_simulation

关于ros和gazebo的环境配置参考网上文章,尽量安装all版本的。但是all版本里面附带的gazebo是不全面的,需要自己手动去安装全面的gazebo。

此外,环境需要Livox-SDK,需要自己配置

Livox-SDK:https://github.com/Livox-SDK/Livox-SDK

Livox激光雷达与ros的接口:https://github.com/Livox-SDK/livox_ros_driver

所有的工程都是在上述的livox_ros_driver的工作空间ws_livox里面运行,下载的仿真工程同样需要放到这个工作空间里面,catkin_make是需要的

之后就是运行这个工程的demo

在工作空间的src文件夹里

roslaunch livox_laser_simulation livox_simulation.launch

中间会遇到一些报错都可以上网搜到解决方式。需要注意的是,如果自己的.gazebo/models文件夹还没有下载官方的模型库的话,模型是打不开的。还需要git clone一下

然后这个工程里面一个会输出四种类型的点云

  • sensor_msg::pointcloud
  • sensor_msg::pointcloud2(pcl::Pointcloud)
  • sensor_msg::pointcloud2(pcl::Pointcloud)
  • livox_ros_driver::CustomMsg

.h头文件里面可以找到具体的数据格式的介绍

.world文件里修改调用自己的CAD模型。需要.dae的格式

.xacro文件里面可以修改输出数据格式一个LIDAR型号

通过监控rostopic /scan就可以获得想要的点云数据。

比如想在rviz中可视化仿真结果的话,需要输出·sensor_msg::pointcloud类型的点云。

想要保存成pcd格式,要选择在gazebo输出sensor_msg::pointcloud2(pcl::Pointcloud)格式的点云,然后在一个新终端里运行rosrun pcl_ros pointcloud_to_pcd :=/scan命令就会保存很多点云数据。

多次的手动采集相当于简单重复劳动,还可以把整个过程写成一个shell脚本,每次调用需要的模型编号和方位编号即可,脚本有需要的可以评论or私信。

Livox laser simulation,使用ros+gazebo的激光雷达览沃(LIVOX)LIDAR数据仿真,一键获得海量点云数据用于深度学习网络训练_第1张图片

你可能感兴趣的:(三维点云处理-学习笔记,深度学习,人工智能,计算机视觉,目标检测)