ubuntu16.04 lio_sam算法 录制自己的数据集构建地图

本文档详细介绍了在Ubuntu16.04环境下,使用LIO-SAM算法进行激光雷达(Velodyne16线)和IMU(XSENS 400Hz)的联合标定,包括环境搭建、数据录制、IMU内参标定、修改LIO-SAM参数以及测试自己的数据集。重点讲述了lidar_align方法的原理和步骤,强调了标定质量对建图效果的影响,并提供了错误与正确录制数据方式的对比。
摘要由CSDN通过智能技术生成

实现环境:

  • 系统环境: Ubuntu16.04
  • 激光雷达: velodyne16线
  • imu品牌 :  xsens (频率400hz)

先放下效果图:

rviz建图中:

 建图完保存的pcd:

 作者使用的是500HZ的IMU,我这里使用的是XSENS 400hz的,基本没有踩过坑(看过有的博主用的100hz的出来也还是有效果的).激光雷达使用的是velodyne16,和作者使用的也一样,因此整个过程都很顺利.下面详细说一下流程.后面有空的话看下如何加入gps信息.

一 激光雷达和imu的联合标定

1.1 简介

联合标定使用的是lidar_align方法.dar-imu标定方法为瑞士苏黎世理工大学-自动驾驶实验室开源的一种校准 3D 激光雷达和 6 自由度位姿传感器外参的方法。该方法需要大量非平面的运动,因此不适合校准安装在汽车上的传感器标定。

lidar_align工程代码实现了以下功能:
1、读取lidar和位姿传感器的数据
2、通过时间戳匹配lidar每帧里面的每个点和位姿传感器的坐标变换
2、通过上面的变换矩阵将利用位姿信息将lidar的每帧拼接成点云
3、每个点和它最近邻点的距离总和求出,在优化中就是不断的迭代找到坐标变换使这个距离最小

算法的整体思想:
1、为每帧lidar的每个点通过时间戳去匹配一个位姿数据,并通过插值的方式得到更准确的位姿值,每个点的时间偏移也是优化因素之一
2、利用NLopt的库的非线性优化方法
3、目标函数:让拼接后的点云的每个点的最近邻点最小
4、优化向量:x、y 、z、roll、pitch、yaw、time_offset
总体来说就是不断的迭代,找到一个合适的优化向量(也就是lidar到里程计的坐标变换)使得拼在一起的点云每个点的最近邻点距离最小。

可以离线计算,录一个rosbag,然后跑一下就可以求的外参,它只会读取一个bag ,所以 lidar和位姿都要在里面。

1.2 环境搭建

(1)安装依赖

sudo apt-get install libnlopt-dev

(2)编译

mkdir -p lidar_align_ws/src
cd lidar_align_ws/src
git clone https://github.com/ethz-sl/lidar_align
cd ..
catkin_make

若报错:

解决办法:
将 lidar_align 文件夹下的 NLOPTConfig.cmake 复制到 ROS工作空间lidar_align_ws/src路径下面,再次编译

编译完成:

(3)改写imu接口

这一工具原本不是用来标定激光雷达和IMU的而是用来标定激光雷达和里程计的。所以需要改写IMU接口来替换掉里程计接口。所以这一工具一定程度上并不是精确标定上述两种传感器的,但不精确不代表不可用。

找到以下odom部分注释删掉都可
/*  types.push_back(std::string("geometry_msgs/TransformStamped"));
  rosbag::View view(bag, rosbag::TypeQuery(types));

  size_t tform_num = 0;
  for (const rosbag::MessageInstance& m : view) {
    std::cout << " Loading transform: \e[1m" << tform_num++
              << "\e[0m from ros bag" << '\r' << std::flush;

    geometry_msgs::TransformStamped transform_msg =
        *(m.instantiate<geome
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值