lio-初始化

IMU初始化是为了给局部BA和全局BA提供一个更好的初值从而减少IMU噪声积累。

IMU初始化

  1. 估计陀螺仪偏置

  2. 忽略加速度计偏置,估计重力矢量和速度

  3. 估计加速度计偏置,进一步优化重力

1.估计bg

实际上最小二乘问题

假设我们已经标定得到laser与imu的外参,如果外参没有标定,则可以通过构建imu预积分旋转与laser旋转之间的误差作为A,然后qbl作为x,利用SVD分解得到X。lio-sam中应该是先标定外参。

得到了外参,且一般把雷达坐标看作世界系,那么我们把imu结合外参旋转到雷达坐标系中,再利用陀螺旋转预积分和laser旋转之间的误差,最小化这个误差,就得到每帧的bg,

2.估计重力矢量和速度

首先明确:忽略加速度计偏置ba=0

  • 这里速度是imu坐标系的速度在imu坐标系下的表示。(不只是初始时刻的速度,还包括以后每帧时刻的速度)。
  • 重力矢量是在第0帧laser坐标系下的表示。

把重力矢量变换到imu坐标系下,写出imu坐标系下的位移预积分、速度预积分和旋转预积分。可见这几个预积分都带着待估计的量,构建最小二乘。

3.估计加速度计偏置,进一步优化重力向量

由于之前的估计中忽略了加速度计的偏置,导致我们计算的重力也混杂了偏置的影响,与实际的重力方向有偏差。

 

可是还是不懂lio-sam的初始化方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
lio-sam是一个开源项目,是LIO(Linux内核iSCSI target)模块的一个分支。它是专门为高性能和可扩展性而设计的iSCSI目标代码。 lio-sam项目的主要目标是提供一个高性能的iSCSI目标,同时保持Linux kernel的稳定性和可靠性。它在传输层使用Scst(SCSI target实现)和LIO(Linux iSCSI实现)的组合,并有一些优化以提高性能。它还支持各种iSCSI功能,如CHAP认证、数据压缩和IPsec等。 代码阅读lio-sam对Linux内核和iSCSI有一定的了解是很有帮助的。lio-sam使用了一些Linux内核的机制,如工作队列和内存管理。了解这些机制将有助于理解lio-sam的实现原理和性能优化技巧。 在阅读lio-sam代码时,可以关注以下几个方面: 1. LIO模块的初始化和配置:lio-sam在加载模块时进行一些初始化工作,包括创建Scst的实例和配置iSCSI target。了解这些步骤可以帮助理解lio-sam的工作流程和配置方式。 2. iSCSI连接管理:lio-sam负责管理iSCSI连接,包括连接的建立、维护和中断。了解连接管理的实现原理可以帮助理解lio-sam如何处理多个客户端的连接和请求。 3. SCSI命令处理:lio-sam的核心功能是处理SCSI命令。了解lio-sam如何解析SCSI命令、调用底层存储设备和返回响应可以帮助理解其工作原理和性能优化方法。 4. 性能优化技巧:lio-sam的设计目标之一是提高性能。代码中可能包含一些性能优化技巧,如批量处理、IO调度和缓存管理等。了解这些技巧可以帮助优化自己的应用程序。 需要注意的是,代码阅读是一项耗时耗力的工作,需要具备一定的编程和系统知识。在阅读代码时,可以结合官方文档、论坛和社区来获取更多的信息和帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值