多旋翼无人机干货来袭,这次是传感器技术
可能会问,为什么听起来视觉里程计和光流测速模块参与的传感器数量差不多(光流测速模块甚至还多一个超声波模块),但是视觉里程计能力反而更强呢。这里的原因不在于传感器硬件,而在软件算法上。前面已经说到光流追踪算法有很多简化的假设,只能测量平面运动,增加其他传感器硬件一定程度上是为了把那些为了计算方便而简化掉的因素重新弥补起来。
而视觉里程计算法则复杂得多,它不仅要通过图像反推出视野中物体的平面运动,还要反推出这些物体的三维位置,并且基于这些物体的三维位置做很多次的优化计算,算法复杂度成倍于光流测速模块。有些视觉里程计的算法甚至包含完整的光流追踪的算法,但是仅仅把计算光流作为预处理图像的步骤。
视觉里程计能够直接测量位置,测量值也比较准确,不会像光流测速模块那样发散。通常比较优秀的视觉里程计飞100米之后只会积累十几厘米到几十厘米的误差,这个测量水平比起导弹上几百万的惯性测量元件还是差了不少,但是考虑到视觉里程计的价格极其低廉,对比起来它的性价比非常高。
视觉里程计有几个不同层次的难度,最简单的是两个相机构成的双目立体视觉系统加惯性测量元件,最难的是一个相机构成的单目视觉系统加惯性测量元件。如果视觉里程计和光流测速模块硬件一致,那么这里的视觉里程计采用的是单目视觉系统。目前,双目立体视觉系统加惯性测量元件实现自身状态观测已经是比较完善的技术,而单目视觉系统则是活跃的研究方向,世界上做这个研究方向较好的大学有美国的宾西法尼亚大学、瑞士的苏黎世联邦理工学院、英国的牛津大学、我国的香港科技大学和其他一些欧美院校。
单目视觉系统和双目立体视觉系统两者对比起来,他们的算法难度差别很大。视觉里程计的算法关键点是前面说的"通过连续的图像反推出视野中物体的三维位置"。对于和人眼结构类似的双目立体视觉系统,这一点比较容易,因为一个物体同时出现在左右两个相机的视野中时左右视野有视差,视差可以帮助解算物体的位置,只需要用简单的几何关系就可以实现,这已经是非常成熟的技术。
但是对于单目视觉系统,只有一个相机就没有视差,没法做简单的几何关系的解算,所以算法必须能智能地在局部范围内同时估计很多个物体的位置,然后在自身移动过程中通过位置移动产生视差,然后进行多个物体的位置的最大似然估计,从而推算出这些物体比较准确的位置。这个过程包括很多个环节,大部分环节在学术界都没有公认最优的方案,因此还没有成熟的技术。
因为原理相对简单,所以双目立体视觉系统构成的视觉里程计在三十年前就开始被研究了。1980年代早期,NASA工程师、著名机器人学家汉斯-莫拉维克就已经制造出了这种状态测量系统。关于汉斯-莫拉维克的另一个故事,我在知乎问题中"有哪些与控制、机器人等相关的 quotes? - YY硕的回答"也有提到。
(上图致敬汉斯-莫拉维克)
在经年累月的优化之后,2004年,NASA成功把视觉里程计和惯性测量元件构成的视觉定位系统装在"机遇号"和"勇气号"火星车主频仅有20MHz的特制芯片上,送上了火星,它可以帮助火星车通过一对双目相机非常准确地记录自己走过的路线。2007年,参与火星探测任务的计算机科学家和工程师们把这个激动人心的过程写成了一篇论文《计算机视觉在火星》(Computer Vision on Mars),这篇文章吸引了很多计算机视觉研究人员投身视觉里程计的研究,也极大推动了视觉里程计在机器人学中的应用。
- 让AI前往广袤宇宙,NASA为人类寻找下一个家园(07-31)
- 大热的四轴飞行器设计,提供软硬件参考方案(09-20)
- 传感器和致动器正成为元器件市场新热(03-12)
- 图像传感器市场突破60亿美元,CMOS将占主导地位(05-22)
- 超低功率“智能尘埃”创新无限,无线传感器技术继续高歌猛进(05-22)
- 电化学气体传感器核心技术见突破(05-26)