微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 工程师谈多旋翼飞行器视觉感知系统

工程师谈多旋翼飞行器视觉感知系统

时间:05-02 来源:网站整理 点击:

量差不多(光流测速模块甚至还多一个超声波模块),但是视觉里程计能力反而更强呢。这里的原因不在于传感器硬件,而在软件算法上。前面已经说到光流追踪算法有很多简化的假设,只能测量平面运动,增加其他传感器硬件一定程度上是为了把那些为了计算方便而简化掉的因素重新弥补起来。

  而视觉里程计算法则复杂得多,它不仅要通过图像反推出视野中物体的平面运动,还要反推出这些物体的三维位置,并且基于这些物体的三维位置做很多次的优化计算,算法复杂度成倍于光流测速模块。有些视觉里程计的算法甚至包含完整的光流追踪的算法,但是仅仅把计算光流作为预处理图像的步骤。

  视觉里程计能够直接测量位置,测量值也比较准确,不会像光流测速模块那样发散。通常比较优秀的视觉里程计飞100米之后只会积累十几厘米到几十厘米的误差,这个测量水平比起导弹上几百万的惯性测量元件还是差了不少,但是考虑到视觉里程计的价格极其低廉,对比起来它的性价比非常高。

  视觉里程计有几个不同层次的难度,最简单的是两个相机构成的双目立体视觉系统加惯性测量元件,最难的是一个相机构成的单目视觉系统加惯性测量元件。如果视觉里程计和光流测速模块硬件一致,那么这里的视觉里程计采用的是单目视觉系统。目前,双目立体视觉系统加惯性测量元件实现自身状态观测已经是比较完善的技术,而单目视觉系统则是活跃的研究方向,世界上做这个研究方向较好的大学有美国的宾西法尼亚大学、瑞士的苏黎世联邦理工学院、英国的牛津大学、我国的香港科技大学和其他一些欧美院校。

  单目视觉系统和双目立体视觉系统两者对比起来,他们的算法难度差别很大。视觉里程计的算法关键点是前面说的"通过连续的图像反推出视野中物体的三维位置"。对于和人眼结构类似的双目立体视觉系统,这一点比较容易,因为一个物体同时出现在左右两个相机的视野中时左右视野有视差,视差可以帮助解算物体的位置,只需要用简单的几何关系就可以实现,这已经是非常成熟的技术。

  但是对于单目视觉系统,只有一个相机就没有视差,没法做简单的几何关系的解算,所以算法必须能智能地在局部范围内同时估计很多个物体的位置,然后在自身移动过程中通过位置移动产生视差,然后进行多个物体的位置的最大似然估计,从而推算出这些物体比较准确的位置。这个过程包括很多个环节,大部分环节在学术界都没有公认最优的方案,因此还没有成熟的技术。

  因为原理相对简单,所以双目立体视觉系统构成的视觉里程计在三十年前就开始被研究了。1980年代早期,NASA工程师、著名机器人学家汉斯-莫拉维克就已经制造出了这种状态测量系统。关于汉斯-莫拉维克的另一个故事,我在知乎问题中"有哪些与控制、机器人等相关的 quotes? - YY硕的回答"也有提到。

  在经年累月的优化之后,2004年,NASA成功把视觉里程计和惯性测量元件构成的视觉定位系统装在"机遇号"和"勇气号"火星车主频仅有20MHz的特制芯片上,送上了火星,它可以帮助火星车通过一对双目相机非常准确地记录自己走过的路线。2007年,参与火星探测任务的计算机科学家和工程师们把这个激动人心的过程写成了一篇论文《计算机视觉在火星》(Computer Vision on Mars),这篇文章吸引了很多计算机视觉研究人员投身视觉里程计的研究,也极大推动了视觉里程计在机器人学中的应用。

  4. 精灵4的传感器方案

  大疆在精灵4上实现了双目立体视觉系统加惯性测量元件构成的视觉里程计,飞机上装了两套双目立体视觉系统,一套向前看,一套向下看,一共是四个相机。

  两套双目立体视觉系统都参与视觉里程计的计算。通常情况下以向下看的双目立体视觉系统为主,如果向下看的相机对着一些特征不明显的环境(比如纯色的地板、海面等等),感受不到什么图像变化,视觉里程计会自动切换到向前看的立体视觉系统做测量计算。虽然精灵4采用的都是较为成熟的机器视觉技术,但是由于精灵4上机载的计算量非常有限,大疆还是下了相当久的苦功去优化算法,并使用了Movidius公司制作的图像算法处理专用芯片,结合Movidius公司的图像处理算法库优化四路图像处理的性能。值得一提的是,不久就会面世的Google Project Tango也使用了Movidius公司的这款芯片。不过因为Movidius公司的芯片不包含视觉里程计的算法,所以Google的这款产品中视觉里程计的算法应该与精灵4的算法有较大差别。

  两套双目立体视觉系统还带来了视觉里程计之外的两个好处:

1. 向下看的一套双目立体视觉系统可以探测下方地面上物体的三维

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top