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-自采数据运行踩坑 的相关文章

  • 用rs_lidar雷达跑lio_sam

    1 准备工作 imu绑定串口有线连接雷达并能用rviz显示雷达点云用两个imu标定包标定imu在完成第二步必要的工作后 xff0c 配置LIO SAM config 下的params yaml参数 xff0c 更改之前建议备份在旁边复制粘贴
  • Fast-lio个人总结

    Lidar第一帧作为基坐标 1 lidar原始数据预处理默认不提取特征 xff0c 对原始数据间隔式 xff08 间隔3个点 xff09 降采样提取 2 imu初始化 惯性解算 误差分析 状态 协方差预测 3 Lidar与imu时间状态对齐
  • SAM-Segment Anything Model进行单张图片的检测记录

    一 代码和模型下载 下载链接 GitHub facebookresearch segment anything 将代码下载并解压到一个没有中文的路径下 页面往下滑找到需要下载的模型 nbsp 这里提供了三个模型 vit b的大小是358m
  • FAST-LIO论文翻译

    摘要 本文提出了一个计算效率较高和鲁棒的激光 惯性里程计框架 我们使用基于紧耦合的迭代扩展卡尔曼滤波器将LiDAR特征点与IMU数据融合在一起 xff0c 以便在发生退化的快速运动 xff0c 嘈杂或杂乱环境中实现稳健的导航 为了在存在大量
  • Ubuntu20.04部署编译LVI-SAM

    该动图来自LVI SAM开源地址 xff08 https github com TixiaoShan LVI SAM xff09 1 写在开头 1 1 为何诞生此文 近期在学习SLAM相关知识 xff0c 拜读了此篇经典论文LVI SAM
  • ROS-3DSLAM(二)lvi-sam项目认识

    2021SC 64 SDUSC xff08 二 xff09 lvi sam项目认识 一 SLAM简介 SLAM是Simultaneous Localization and Mapping xff08 同时定位 43 建图 xff09 独立的
  • lio-sam中雅克比推导

    lio sam做的是scan map xff0c 点变到世界系下 xff0c 优化本帧在是世界系下的位姿 xff0c 和loam有所不同 符号 xff1a 本帧特征点云 xff08 相对机体系 xff09 P s c a
  • fast lio测试

    fast lio2代码编译及运行 编译 fast lio2仓库地址 一 安装依赖 ubuntu18 43 ros环境下 xff0c pcl和eigen可默认使用ros自带版本 xff0c 所以只需安装 livox驱动包 livox ros
  • 视觉大模型 | SEEM:比SAM更强!

    作者 派派星 编辑 CVHub 点击下方卡片 xff0c 关注 自动驾驶之心 公众号 ADAS巨卷干货 xff0c 即可获取 点击进入 自动驾驶之心 语义分割 技术交流群 Title Segment Everything Everywher
  • 运行LIO-SAM,[lio_sam_imuPreintegration-2] process has died,[lio_sam_mapOptmization-5] process has died

    报错图例 解决办法 span class token builtin class name cd span usr local lib span class token function sudo span span class token
  • 记录编译测试LVI-SAM遇到的问题(附测试数据百度云下载链接)

    在测试开源的视觉 雷达 IMU紧耦合的工作LVI SAM时遇到一些问题 xff0c 在此记录 xff1a 参考博客 xff1a https blog csdn net learning tortosie article details 11
  • LIO-SAM中的mapOptmization

    前言 最近在学习LIO SAM源码的时候 xff0c 发现LIO SAM这套代码调用了比较多库的内置API xff0c 里面涉及的一些细节也比较多 xff0c 整个工程还是比较清晰的 xff0c 值得学习 xff01 LIO SAM这个框架
  • 万物分割SAM使用教程

    文章目录 安装 使用 全图分割 点 框 完整代码 原理篇 安装 创建虚拟环境 conda create n sam python 3 8 激活环境 conda activate sam 下载代码 git clone git github c
  • 一键分块,轻松拼图!使用Segment Anything让你的设计更加高效!

    目录 第一步 第二步 第三步 第四步 如果你是一名设计师或者摄影爱好者 那么你一定经常需要将图片分割成不同的块 以便在不同的场合下使用 例如 在网页设计中 你可能需要将图片分割成不同的块 以便在不同的区域中使用 而分块的难度不小 需要一定的
  • Linux-IO Target(LIO SCSI Target)介绍(二)

    使用targetcli创建loop Target和vhost Target 除了常见的SAN Target之外 Linux IO Target还支持两种特殊的Target loop和vhost 其中loop Target可以为本机模拟一个完
  • Segment Anything开源项目学习记录

    一 什么是Segment Anything开源项目 Introduction We introduce the Segment Anything SA project a new task model and dataset for ima
  • 【CV大模型SAM(Segment-Anything)】如何一键分割图片中所有对象?并对不同分割对象进行保存?

    之前的文章 CV大模型SAM Segment Anything 真是太强大了 分割一切的SAM大模型使用方法 可通过不同的提示得到想要的分割目标 中详细介绍了大模型SAM Segment Anything 根据不同的提示方式得到不同的目标分
  • 如何使用 localstack 部署 SAM 堆栈?

    我已经编写了一个 SAM 堆栈 并且可以在 AWS 上构建 打包和部署它 我还可以使用 start local 或 invoke 来测试 现在我需要测试其他 AWS 资源 我已将这些资源添加到我的 SAM 模板中 它在 AWS 上运行良好
  • 多功能 SAM 模板的推荐项目结构

    我有一个新项目 需要相对少量的服务 可能是 10 个或更少 因此将每个服务放在单独的项目存储库中并不经济 每项服务都将通过 SAM 模板定义为 AWS Serverless Function 我的问题是 组织或构建这样一个项目的推荐方法是什
  • Sam 在 intellij 中构建:错误:JavaMavenWorkflow:MavenBuild - 'utf-8' 编解码器无法解码位置 150889 中的字节 0xbb:无效的起始字节

    我正在使用带有 Spring Boot 应用程序的 aws 无服务器架构 当我在 intellij 中使用 sam build 构建项目时 出现以下错误 Building codeuri runtime java11 metadata fu

随机推荐

  • 使用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内