多传感器融合SLAM在自动驾驶方向的初步探索的记录
1. VIO的不可观问题
现有的VIO都是解决的六自由度的问题, 但是对于行驶在路面上的车来说, 通常情况下不会有roll与z方向的自由度, 而且车体模型限制了不可能有纯yaw的变换. 同时由于IMU在Z轴上与roll, pitch上激励不足, 会导致IMU在初始化过程中尺度不准以及重力方向估计错误, 这是很要命的. 所以我想通过融合车体上的其他传感器来解决这方面的问题.
2. 尝试1, 轮速计的加入
轮速计用来解决IMU+单目初始化尺度不确定的问题. 用阿克曼模型计算出车的速度向量和角速度向量, 也做一个预积分, 把轮速计预积分的结果放进ldlt中计算求出尺度. 在实验中, 如果不融入轮速计, 同样地图每次结果尺度都有差别, 即使标定了很多次IMU噪声和零偏都不行. 这里有个问题是, IMU的噪声会不会因为车发动机震动而变化, 有懂的老哥可以交流一下.
轮速计融入初始化可以解决尺度问题, 剩下的就是融进优化问题了, 这部分有很多论文都做过.
3. 平面约束的加入
在长时间的行驶中, 发现融入轮速计后还是会出现在Z轴上的变化, 初步分析应该是IMU导致的, 加入平面约束是想把Z轴上的跳动抹掉. 这块工作还在进行中, 现有的方法是把车体坐标与世界坐标的Z轴上的平移量加入优化, 优化目标是趋近于0. 但实测效果不好.
待补充…
以下是现有的室内测试结果, heading和尺度方面的问题似乎是解决了
对比没有加入平面约束和轮速计的结果
有平面与轮速计约束:
没有轮速与平面约束
灰色的是用纯轮速计推出来的, 绿的为vio或者viw推的, 可以看到差距还是挺大的