对激光雷达畸变去除的理解

最常见的是由机器人本体运动产生的畸变

如:机器人运动的比较快、机器人旋转的幅度比较大。

一、IMU对点云的运动畸变进行去除

IMU主要提供角速度信息(加速度信息积分发散,不够可靠)。

在一帧点云时间内(雷达转一圈)对所有的IMU角速度进行积分得到IMU的旋转角度,再转换到激光雷达上,对雷达的姿态进行姿态四元数球面线性插值,将对应点云转换到末状态的姿态上实现去点云运动畸变去除。

注意:

激光雷达的频率远低于IMU的频率;

话句话说:雷达的一个周期内(一帧点云),IMU会产生十几个或几十个周期。(具体看频率)

我们要做的是:

(1)对IMU的每一个周期计算它的角度变化(角度=角速度X时间);

(2)把这十几个周期的角度变化值进行累加,累加后的结果作为雷达一个周期内的角度变化。

1.对IMU进行角速度积分

                                            对激光雷达畸变去除的理解_第1张图片                   

2.使用四元数表示

  四元数概念:

四元数:只是用来表示机器人3D姿态的一种表达方式

第1种表示方法:一个四元数拥有一个实部和三个虚部(i、j、k):

第2种表示方法:一个标量(scalar)+ 一个向量(vector):

  用四元数表示旋转:

对激光雷达畸变去除的理解_第2张图片

原文链接:https://blog.csdn.net/weixin_41681988/article/details/124378390

 IMU中如下:

IMU测量x,y,z三个轴的变化角度,分别为αx, αy, αz;

qt为t时刻的姿态四元数,qt0为前一时刻姿态四元数,qdt为t——t0时间段内四元数变化值(IMU单个周期)

 二、相关概念

运动补偿的目的:把所有的点云补偿到某一时刻,这样就可以把本身在过去100ms内收集的点云统一到一个时间点上去 ,这个时间点可以是起始时刻,也可以是结束时刻,也可以是中间的任意时刻;常见的是补偿到起始时刻

畸变校准方法
因此运动补偿需要知道每个点时刻对应的位姿 T_start_current 通常有几种做法

1 如果有高频里程计,可以比较方便的获取每个点相对起始扫描时刻的位姿

2 如果有imu,可以方便的求出每个点相对起始点的旋转

3 如果没有其它传感器,可以使用匀速模型假设,使用上一帧间里程计的结果,作为当前两帧之间的运动,同时假设当前帧也是匀速运动,也可以估计出每个点相对起始时刻的位姿
k-1 到 k 帧 和 k到k+1帧的运动是一至的,用k-1到k帧的位姿变换当做k到k+1帧的位姿变换, 可以求到k到k+1帧的每个点的位姿变换
原文链接:https://blog.csdn.net/qq_32761549/article/details/120738568

对激光雷达畸变去除的理解_第3张图片

线性插值则意味这机器人在要插值的这一小段内直接做匀速运动

二次插值则意味这机器人在要插值的这一小段内直接做匀(加、减)速运动;图像为二次函数

你可能感兴趣的:(激光SLAM概念理解,机器人)