LIO-SAM-自采数据运行踩坑

2023-05-16

一直觉得LIO-SAM还是一个比较不错的激光雷达惯性里程计框架,最近在使用自己的数据进行测试过程中出现了很多坑,花费了一周多的时间才填平,在此记录一下。

前言

  • Ouster-128激光雷达数据
  • Ouster内部IMU(六轴100Hz)/ Xsens MTi 3(九轴100Hz)/ Xsens MTi-G-700(九轴400Hz)
  • 手持平台,正常行走速度,相对于无人车来说晃动较大
  • 室内、室外均进行了测试

问题

在测试过程中无人车平台以及无人机平台(飞行较稳)的状态下,能够使用LIO-SAM成功建图。但是使用手持平台会出现:行走直线或者较为缓慢的转弯正常,急转弯失败。

推测原因

时间同步

IMU与Lidar没有时间同步:对于 Ouster-128使用其内部IMU,1)尝试修改其驱动为电脑时间rostime::Now(),2)尝试修改为激光雷达内部时间(上电计时)。两种方式修改时间后,均能排除时间的问题。但是,在转弯出处仍然容易出现失败。

修改参考链接:
Ouster官方驱动中的ISSUE

六轴/九轴/IMU数据质量

尝试更换为外部的Xsens MTi 3(九轴100Hz)IMU进行使用,仍未解决。

IMU与激光雷达外参

作者使用的Microstrain 3DM-GX5-25 型号的IMU中,其加速度计与陀螺仪坐标系相同,但是磁力计的数据与另外两者的坐标轴不一致。所以作者在参数文件中定义了两个不同的旋转矩阵:extrinsicRot(加速度计、陀螺仪),extrinsicRPY(磁力计)。注意:如果你使用的IMU三者在同一个坐标系中,则extrinsicRot与extrinsicRPY的参数设置应该是一样的。
IMU alignment. LIO-SAM transforms IMU raw data from the IMU frame to the Lidar frame, which follows the ROS REP-105 convention (x - forward, y - left, z - upward). To make the system function properly, the correct extrinsic transformation needs to be provided in “params.yaml” file. The reason why there are two extrinsics is that my IMU (Microstrain 3DM-GX5-25) acceleration and attitude have different cooridinates. Depend on your IMU manufacturer, the two extrinsics for your IMU may or may not be the same. Using our setup as an example:

  • we need to set the readings of x-z acceleration and gyro negative to transform the IMU data in the lidar frame, which is indicated by “extrinsicRot” in “params.yaml.”
  • The transformation of attitude readings might be slightly different. IMU’s attitude measurement q_wb usually means the rotation of points in the IMU coordinate system to the world coordinate system (e.g. ENU). However, the algorithm requires q_wl, the rotation from lidar to world. So we need a rotation from lidar to IMU q_bl, where q_wl = q_wb * q_bl. For convenience, the user only needs to provide q_lb as “extrinsicRPY” in “params.yaml” (same as the “extrinsicRot” if acceleration and attitude have the same coordinate).

我在实验过程中已经注意到这个问题,并进行了相应的修改,但是仍然出现转弯处失败的问题。

IMU数据频率

更换为外部的/Xsens MTi-G-700(九轴400Hz)成功解决。

作者建议最低使用200Hz的IMU。当然六轴IMU也是可以使用的,只不过要换成对应的六轴版本,Ouster内部的IMU最大的问题其实不是六轴,而是只有100Hz。
The performance of the system largely depends on the quality of the IMU measurements. The higher the IMU data rate, the better the system accuracy. We use Microstrain 3DM-GX5-25, which outputs data at 500Hz. We recommend using an IMU that gives at least a 200Hz output rate. Note that the internal IMU of Ouster lidar is an 6-axis IMU.

取消imageProjection.cpp文件中的注释,能够查看IMU数据是否与传感器的移动相对应。(检验外参是否标定成功)
IMU debug. It’s strongly recommended that the user uncomment the debug lines in “imuHandler()” of “imageProjection.cpp” and test the output of the transformed IMU data. The user can rotate the sensor suite to check whether the readings correspond to the sensor’s movement. A YouTube video that shows the corrected IMU data can be found here (link to YouTube).

LIO-SAM中需要注意的地方

总结

LIO-SAM预积分部分还是比较敏感的,针对无人车平台,行驶速度较慢,平台稳定,晃动幅度小,IMU频率可以设置的较低一些。但是,针对晃动较大的平台,还是要使用较高频率的IMU数据,否则容易在角度变化较大的时刻给出一个错误的IMU姿态数据,这个错误的数据进而引发Lidar点云的错误匹配。整个系统就直接飘飞了。

有几个Issue写的很详细,供大家参考:
https://github.com/TixiaoShan/LIO-SAM/issues/94

https://github.com/TixiaoShan/LIO-SAM/issues/209

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LIO-SAM-自采数据运行踩坑 的相关文章

随机推荐

  • 使用prim算法生成随机迷宫

    文章目录 一 关于随机迷宫生成二 prim算法1 最小生成树2 prim算法简介3 正确性证明 三 prim算法和迷宫生成1 迷宫生成和最小生成树的联系2 prim迷宫生成算法3 可以参考这些文章 一 关于随机迷宫生成 1 我们将迷宫定义如
  • TM4C123G学习记录(4)--关于ROM前缀函数和HWREG函数

    为了准备电赛临时学一下TM4C123G xff0c 简单记录学习内容大家可以在这里下载我收集的资源 xff0c 非常全面 xff0c 花了很大功夫收集来的 xff0c 还有书籍 例程代码等还可以在TI官网下载相关文档TI官网 这两天学习TM
  • TM4C123G学习记录(6)--UART

    因为想申请 CSDN 博客认证需要一定的粉丝量 xff0c 而我写了五年博客才 700 多粉丝 xff0c 本文开启关注才可阅读全文 xff0c 很抱歉影响您的阅读体验 为了准备电赛临时学一下TM4C123G xff0c 简单记录学习内容大
  • TM4C123G学习记录(7)--输入捕获

    因为想申请 CSDN 博客认证需要一定的粉丝量 xff0c 而我写了五年博客才 700 多粉丝 xff0c 本文开启关注才可阅读全文 xff0c 很抱歉影响您的阅读体验 为了准备电赛临时学一下TM4C123G xff0c 简单记录学习内容大
  • ANO匿名飞控分析(1)— 遥控器解码

    准备电赛 xff0c 简单写一下匿名飞控的分析基于TM4C主控的匿名拓空者飞控 xff0c 介绍见匿名科创 匿名拓空者PRO TI版全开源飞控使用入门 TM4C123 文章目录 一 简介二 PWM信号模式1 介绍2 硬件连接 三 PPM信号
  • OLAP分析引擎Druid配置文件详解(五):MiddleManager配置文件

    摘要 xff1a 本文是Druid配置文件系列博文的第五篇 xff0c 我们将继续逐个介绍Druid的五大组件 xff0c 本文将开始介绍Data Server中的middle manager和peon组件 以下配置都在middleMana
  • ANO匿名飞控分析(2)— 任务调度

    准备电赛 xff0c 简单写一下匿名飞控的分析基于TM4C主控的匿名拓空者飞控 xff0c 介绍见匿名科创 匿名拓空者PRO TI版全开源飞控使用入门 TM4C123 一 简介 匿名飞控的任务调度还是比较简单的 xff0c 没有操作系统什么
  • 点云地面点滤波(Cloth Simulation Filter, CSF)“布料”滤波算法介绍

    本篇博客参考Wuming Zhang的文章 An Easy to Use Airborne LiDAR Data Filtering Method Based on Cloth Simulation 不方便的小伙伴可以在此 xff1a 资源
  • TSCAN + TMODEL处理点云数据生成DEM

    点云数据生成DEM流程 目录 点云数据生成DEM流程1 软件环境2 操作流程2 1 加载TSCAN TMODEL插件2 2 读取点云数据2 3 点云去噪 滤波2 4 构建tin模型2 5 生成格网DEM2 6 查看DEM数据 对基于商业软件
  • LeGO-LOAM算法详解

    LeGO LOAM算法详解 整体框架 LeGO LOAM算法的总体框架如下图所示 xff1a 图中新增加了绿框中的Segmentation环节 xff0c 同时对后续的特征提取 Odometry以及Mapping部分均有一定的修改 xff0
  • 最速下降法解析(理解笔记)

    我们在高中或本科时期就了解到 xff1a 当函数存在解析形式且容易进行求导 xff08 f x f x f x 在最优点
  • ROS学习-tf介绍

    tf简介 一个机器人系统一个时间段通常有多个3D坐标系在变化 xff0c 如世界全局坐标系 xff0c world frame base frame gripper frame xff08 手臂 夹子坐标框架 xff09 xff0c hea
  • Anaconda 与 ROS 冲突解决

    Anaconda默认使用Python 3 而 ROS默认使用Python2 xff0c 若同时使用二者则会在调用一些ros包时出现冲突 目前解决方案是先在 bashrc文件中注释掉Anaconda xff1a span class toke
  • TI AWR1843毫米波雷达采集三维点云数据(ROS)

    毫米波雷达以其稳定性 对不同环境的适应能力 价格等方面的优势逐步引起了科研人员的注意 xff0c 本文主要介绍利用了TI xff08 德州仪器 xff09 的AWR1843设备 xff0c 基于ROS系统进行采集点云数据的流程 供大家参考及
  • 毫米波雷达原理介绍

    毫米波雷达是指工作在波长为1 10mm的毫米波段 xff0c 频率为30 xff5e 300GHz 基于其工作模式可以分为 脉冲 和 连续波 两种 其中 xff0c 脉冲类型的毫米波雷达的原理与激光雷达相似都是采用TOF的方法 而连续波类型
  • Ubuntu18.04使用Xorg创建虚拟屏幕

    目标 xff1a 使用远程软件 xff0c 如向日葵 TeamViewer Nomachine等来控制远程的电脑 xff08 Ubuntu 18 04桌面版本 xff09 作为服务端 存在问题 xff1a 被远程电脑若不连接屏幕会出现错误
  • 数学符号大全

    虽然在 Mathtype 能输入绝大多数想要的数学字符 xff0c 但是有些在 Visio 中无法输入 xff0c 可以在这里找出 xff0c copy就好了 xff0c 嘻嘻 xff5e 1 几何符号 2 代数符号 xff5e 3 运算符
  • 8小时用HTML5打造VNCViewer

    8小时用HTML5打造VNCViewer http cnborn net blog 另一个话题是ThoughtWorks徐昊带来的 8小时用HTML5打造VNCViewer 这个分享非常精彩 xff0c 其实现过程中的思考方式 使用的新技术
  • 自制ST-Link V2.1,带串口,可自动更新固件,含全套资料下载

    自制ST Link V2 1 xff0c 带串口 xff0c 可自动更新固件 xff0c 含全套资料下载 最近自制了一个带串口的ST Link V2 1 xff0c 现将全部资料共享给大家 xff0c 支持最新版的Keil 和IAR xff
  • LIO-SAM-自采数据运行踩坑

    一直觉得LIO SAM还是一个比较不错的激光雷达惯性里程计框架 xff0c 最近在使用自己的数据进行测试过程中出现了很多坑 xff0c 花费了一周多的时间才填平 xff0c 在此记录一下 前言 Ouster 128激光雷达数据Ouster内