论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信dianyunpcl@163.com。 mlcc介绍 本文主要实战应用这篇文章的代码,https://github.com/hku-mars/mlcc。我们知道目前大部分的开源方案要实现相机和激光雷达之间的外参标定需要两者有共同的视角。而本文则实现了即便相机与激光雷达在同一时刻没有共同视角的情况下,通过点云重建和位姿的优化不仅实现了多个激光雷达的外参标定,也完成了相机和激光雷达的外参标定。本文详细记录使用的流程和可能遇到的问题。 这篇文章的详细介绍在之前的内容中有更为详细的介绍: 绝了!多个激光雷达和相机的快速且鲁棒的外参标定方法(代码开源) 代码实现了一种基于自适应体素化的快速、准确、无目标的多激光雷达和相机外参标定,在理论层面上,我们将激光雷达外参校准与光束调整方法相结合,推导了成本函数的二阶导数w.r.t.作为加速优化的外参的优化方法,在实现层面,采用自适应体素化技术,将激光雷达点云动态分割成大小不等的体素,减少了特征匹配过程中的计算时间。 在多激光雷达和激光雷达与相机外参标定中,都采用自适应体素化来加速特征匹配过程,将点云贴图动态分割为大小不同的体素,以便每个体素中只包含一个平面特征,这个过程充分提高了整个标定流程。 编译过程 首先是准备ROS环境,本人使用的16.04对应的ros版本 需要的第三放库有
如果编译遇到的了问题,那么就需要按照github上安装对应的版本的第三方库 而我在编译的时候遇到了一些问题如下: (1)error: 'integer_sequence’ is not a member of 'std’ 解决方法: #set(CMAKE_CXX_FLAGS "-std=c++14") set(CMAKE_CXX_STANDARD 14) (2)error: 'ScalarBinaryOpTraits’ is not a class template struct ScalarBinaryOpTraits<ceres::jet, T, BinaryOp> { 解决方案:主要是ceres与eigen 版本不符合 这里我使用CMakeLists.txt直接指定eigen-3.3.7可解决。 mlcc运行 对整个工程的介绍,整个工程代码是比较清晰且代码还比较友好。 config文件下有相机的标定参数以及程序中需要用到的阈值 Voxel.down_sample_size: 0.02 下采样的体素的大小 Plane.min_points_size: 60 平面特征的最小数量 Ransac.dis_threshold: 0.03 RANSAC 的最小距离 Ransac.iter_num: 200 迭代次数 include 头文件其中common.h,mypcl.hpp是公共的头文件。 source为主程序cpp文件,实现了三部标定激光雷达外参的代码以及激光雷达和相机外参标定的代码。并提供了将点云转化为dat文件的功能。 scene1,scene2为作者提供的demo数据集,以及需要的初始位姿和外参。 launch文件下保存着为运行标定的launch文件。 激光雷达之间的外参标定步骤 Step 1: 基于激光雷达的点云位姿优化(需要提供初始位姿在 scene-x/original_pose) roslaunch mlcc pose_refine.launch Step 2: 激光雷达外参的优化 (需要提供初始的外参在config/init_extrinsic) roslaunch mlcc extrinsic_refine.launch Step 3: 位姿与外参的联合优化 roslaunch mlcc global_refine.launch 雷达与相机之间的外参标定 roslaunch mlcc calib_camera.launch 写在最后 如果要在自己的数据上进行测试,需要将点云转换为“.dat”格式,在source文件中tobinary.cpp可以查看详细的代码。这种标定方法需要从完整的rosbag中分割出合适的单帧点云和图像,同时还应提供激光雷达姿态和外参初始值,这些初始值可通用SLAM和手眼标定算法获得。 对于不同的激光雷达外参标定,在测试自己数据集的时候可能需要修改参数“adaptive_voxel_size, feat_eigen_limit 和 downsampling_size,以调整精度和速度。 目前,出于调试原因,作者将激光雷达外参标定过程分为三个步骤,在未来的版本中,将把它们结合在一起,使其使用更加方便。 资源 三维点云论文及相关应用分享 【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法 3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020) PCL中outofcore模块---基于核外八叉树的大规模点云的显示 更多文章可查看:点云学习历史文章大汇总 SLAM及AR相关分享 扫描下方微信视频号二维码可查看最新研究成果及相关开源方案的演示: |
|