VIO/LIO 对 IMU“质量”的要求高,但不一定要求 IMU 是高精度战术级;它们对“量程、采样率、时间同步、噪声/偏置稳定性”往往比单纯的角度随机游走指标更敏感。
而且 VIO 和 LIO 对 IMU 的依赖方式不完全一样。对于现在的 AiBrainBox-V,目前的非对称双 IMU是比较合理的架构。
所以:
NavCore目前“双IMU”的价值,在VIO/LIO场景下甚至比单纯做INS更加明显。
为什么 VIO 需要 IMU?
VIO不是简单:
Camera → 算位置
而是:
Camera提供几何约束,IMU提供高频运动先验。
IMU的作用尤其是:
① 两帧之间发生了什么?
Camera可能只有30/60 FPS。
但是 UAV 在两帧之间已经发生了大量运动。
IMU可以告诉VIO:
这0.016秒/0.033秒里面,平台大概怎么转、怎么加速。
② 解决快速旋转
这对 UAV 非常重要。
如果 UAV 快速横滚:
Frame k
↓
快速旋转
↓
Frame k+1
视觉特征可能已经发生巨大位移。
IMU提供旋转先验之后:
VIO搜索空间会大幅缩小。
所以 IMU 对高动态 VIO 的价值非常明显。
VIO不是纯惯导。
不要求:
IMU单独积分10秒仍然非常准。
而是:
IMU预测几帧之间的运动,Camera不断纠正。
所以:
低动态
普通 MEMS IMU都可以做VIO。
中动态
需要比较好的 MEMS。
高动态
需要:
高采样率 足够量程 较低噪声 较小延迟 稳定bias 良好同步
而不一定非要战术级IMU。
VIO:
量程不足有时候比噪声稍微大一点更加致命。
这就是为什么:
Precision IMU + High-G IMU
非常有价值。
LIO对IMU的要求反而有一个不同的地方
LIO里面IMU还有一个非常重要的作用:
LiDAR Motion Compensation / Deskew
这点非常关键。
机械旋转 LiDAR 一个扫描周期可能是:
50ms / 100ms
但是 UAV在这100ms里面已经移动了。
因此一个点云实际上不是“同一时刻”采集的。
必须根据IMU估计:
每个点采集时刻 UAV 的姿态/运动
然后:
Deskew
LIO-SAM就明确使用IMU对一帧LiDAR扫描进行去畸变,并强调IMU频率越高,精度越好,推荐至少200 Hz。
所以:
高动态 LIO 对 IMU 的要求非常高。
例如 Point-LIO 明确强调可以处理:
IMU saturation severe vibration aggressive motion 75 rad/s级快速旋转
并且要求算法知道IMU的 acceleration / gyro saturation limits。
这说明一个趋势:
未来LIO并不是简单要求“IMU永远不能饱和”,而是算法开始具备对IMU饱和和高动态的鲁棒性。
低动态情况下是不是反而不需要那么好的IMU?
基本是。
例如 UAV:
悬停 / 缓慢飞行 / 缓慢转弯
此时:
Camera特征稳定 LiDAR几何稳定 IMU没有接近量程 VIO/LIO自身约束很强
所以:
IMU的高精度主要体现在“短时间预测”和“bias稳定性”,而不是必须达到极高的绝对精度。
因此:
低动态 → Precision IMU发挥优势
高动态 → High-G IMU发挥优势
这恰好与现在的双IMU架构匹配。
VIO/LIO 有一个比 IMU 精度更重要的问题:同步
例如:
Camera:
60 FPS
IMU:
400 Hz
LiDAR:
10 Hz
如果三者时间戳存在:
5 ms误差
对于高速 UAV:
5 ms × 200°/s = 1°
已经产生明显姿态误差。
而LIO更严重,因为它直接影响:
Point Cloud Deskew。
LIO-SAM明确要求正确的 IMU/LiDAR 外参和时间相关点云信息;IMU与LiDAR的时间和坐标关系是算法正确工作的基础。
所以对于 AiBrainBox-V:
时间同步优先级 ≥ IMU精度升级。
VIO 来说还有一个特殊问题:Rolling Shutter
你之前的 AiBrainBox-V 有:
Downward 4K Rolling Shutter
这个地方尤其值得注意。
Rolling shutter:
Row 1 t0
Row 2 t0+Δt
Row 3 t0+2Δt
...
Row N t1
如果 UAV在快速运动:
一张照片本身就不是同一时间拍出来的。
所以:
高动态 + Rolling Shutter
对VIO非常不友好。
研究也明确表明,忽略 rolling-shutter motion distortion 会显著降低 VIO 的准确性和鲁棒性。
这说明:
Front/Left/Right 使用 Global Shutter,是非常正确的。
VIO/LIO真正需要的是“与算法匹配的IMU”,而不是“最高级的IMU”。
对于 AiBrainBox-V:
Precision MEMS
解决:
低/中动态精度
High-G MEMS
解决:
高动态不饱和
VIO
解决:
视觉外部约束
LIO
解决:
LiDAR外部空间约束
Dual RTK
解决:
全球绝对位置 + True Heading
这套:
高精度低量程 MEMS + 低精度高量程 MEMS
不仅能满足传统 INS,实际上非常适合 AiBrainBox-V 后面做 VIO/LIO 的统一 Navigation Core。
尤其是:
高动态时,高量程 IMU并不是为了让“惯导本身还能精准导航”,而是为了让 VIO/LIO 的高频预测、旋转估计和 LiDAR Deskew 不因为 IMU 饱和而崩掉。
而低动态时:
高精度 IMU负责把 VIO/LIO 的短期状态估计做得更干净。
这就形成了一个很漂亮的分工:
低动态 → 精度
高动态 → 量程
长时间 → 视觉/LiDAR约束
绝对位置 → Dual RTK