VINS-MONO工程改造

这篇是接着前文主流VIO/VSLAM系统改造与工程化落地”和“关于VIO零速更新(ZUPT)与控制三种约束的工程实践”的,有时候想一出是一出,导致写的东西还是太分散了。

要做VINS改造首先要熟悉VSLAM数学基础那一堆的东西,前文“关于机器人状态估计(4)-成长路径与能力提升”和相关系列已经详述了,团队能力不足的话需要好好学习。深入掌握C++,了解多核体系如CPU+NPU, CPU+DSP, CPU+GPU+NPU,熟悉可见光相机所有特性,熟悉IMU特性(包括常用滤波方法等),熟悉Kalibr,了解部分深度相机特性,粗略了解CUDA。这些都是基础。如果已经有了这些基础,可以往下看。

VINS部分比较简单,前文也大概提到了,这个系统在硬件非常强势的情况下(全局快门+硬件MCU同步对时+室内)是很给力的,新工程也做到了极大鲁棒,收敛了绝大部分可以通过工程化和零速更新ZUPT解决的事项,现在已经做到除了常见的5-6类问题(见ZUPT前文),即使动态障碍物同步遮挡也能鲁棒一小段时间的水准。

 

第一个缺陷就是只能提供精确的位置姿态,不能建出直观和半稠密地图

另外一个更大的缺陷就是开销很重,前端Feature tracker的特征提取与匹配的开销很高,在稍微弱一些的嵌入式系统上运行算不过来,A76-4核以下跑640x480分辨率都无法及时跟踪。这样就会导致无法工程化,需要依赖i7后端或者高版本的Nividia-Jetson,算力平台成本很高。同时后端优化的Estimater开销也不小,尤其是在ARM系统上的表现较差。再加上闭环约束,基本在绝大部分嵌入式系统上运行的可能性就没有了。

因为VINS的基础架构正统,代码规范,也比较好维护,我们已经开始了更加深入的改造工作。如果要对其进行工程化,基础思路是对前后端进行大改:

1. 移除RVIZ和Pangolin, 在主系统上只保留位姿和点云数据输出,建立工程版的人机界面。(前文“主流VIO/VSLAM系统改造与工程化落地”已详述)

2. 完成编码输出和使用OSD硬件算子叠点。(前文“主流VIO/VSLAM系统改造与工程化落地”已详述)

3. 拆解所有代码,Review所有涉及重复内存搬运的部分,批量加入指针。这块工作比较繁重,我们也没有做完,基础思路就是这个。最近小组工作太忙,全部做完了再发。

4. VINS-MONO是很依赖传感端硬件的,如果使用的是卷帘快门需要精确掌握曝光时间,并完成MCU硬件同步对时。

5. 建图侧直接放弃依赖V相机建图,加入距离稍大的(0-8米)深度相机,通过位姿松耦合进行同步建图。这块的点云处理用CUDA结合GPU做即可。

6. 针对建图,如果不想按照5来实现有更简单的做法就是加入单点激光(室内),完成栅格矢量地图,建立二维地图的全局先验。室外的话用高德/百度/Google地图切片做全局先验。有能力的话可以和轮速计或者GPS/RTK耦合一下,或者用轮速计+IMU做个简单的DR(卡尔曼滤波),再耦合一下。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值