传感器对于智能产品来说就有如五官,让智能产品拥有听觉、视觉、触觉、嗅觉或味觉,接收传感器感知的状态并通过算法进行反馈控制的系统,就如人的大脑,它们的合作让智能产品越来越接近最高智能代表者、大自然亿万年演化的结晶:人类。
就多旋翼无人机而言,传感器要收集15个状态参数,即三维位置(XYZ三轴上的具体位置信息),三维速度(单位时间里XYZ三轴上位置的变化情况),三维角度(XYZ三轴上自身姿态的倾斜角),三维加速度(单位时间里三维速度的变化情况)和三维角速度(单位时间里三维角度的变化情况)。
拿目前多旋翼无人机最基本的“悬停”功能来说,多旋翼无人机的控制器做了一系列“串级控制”:知道自己的三维位置,控制自己始终锁定在悬停位置,当偏离了悬停位置,多旋翼无人机就需要产生一个让自己趋向悬停位置的速度;为了产生这个速度,就需要调整出一个目标加速度;由于四旋翼的动力特性,平行移动实际是通过改变无人机的平面倾斜度来完成的,所以多旋翼无人机需要知道自己的三维角度和三维角速度,从而可以控制电机的转速来完成这一系列动作。说起来好像很复杂,但实际上这些步骤都由多旋翼无人机的五官和大脑搞定了,你只需轻点几下而已。
我们的生活中有很多类似的复杂过程,只是你早已习以为常了。当你踩下汽车的油门之后,有传感器测量汽油的流速并进行控制;有传感器测量发动机的转速并加以控制……从踩油门到加速的过程中也有许许多多的传感器在测量汽车的各个状态量,并对这些状态量施加控制的。
前奏之后,咱们来说说用于测量无人机这15个状态的传感器。
GPS:美国NASA组建的全球卫星定位系统,类似的系统还有欧洲的伽利略,俄罗斯的Glonass,中国的北斗导航。通过卫星定位,物体能获得自己的经度、纬度和高度三维位置信息,还能通过多普勒效应测量自己的三维速度。GPS是最早民用的,成本低,而且尺寸小,所以实用范围最广。但卫星定位系统的信号容易受建筑、树木等遮挡物影响,在室内甚至接收不到信号。如果单纯使用卫星定位系统进行多旋翼无人机的飞行控制,当信号出现断续,结局就只有炸机了。
惯性测量元件:包括加速度计和陀螺仪,即角速度计。根据物理学原理,加速度的积分是速度,速度的积分是位置,角速度的积分是角度,所以理论上单靠惯性测量元件就可以感知这15个状态量。
实际上,在还没有GPS之前,导弹上通常装着价值几百万的高精度惯性测量元件,用以感知状态并控制飞行(如下图)。但是,惯性测量元件在测量过程中会累积误差,就算是用在导弹上的高精密元件,在几万公里的飞行中累积的误差可能高达几公里。
用在多旋翼无人机上的低成本MEMS惯性测量元件的精度就更差了,几秒钟就能发散到几十米外去,而且这种偏差基本不能通过算法修正,必须其它元件配合着来。
地磁指南针:用于测量航向,即飞行器的机头是朝南还是朝北。这是组合导航系统中非常重要的一个状态量。地磁指南针可以测量出穿过自身的地球地磁强度,从而指出相对于地球地磁线的偏转。但由于地磁线的强度非常弱,多旋翼无人机工作时,机内的无刷电机产生的磁场对地磁指南针的干扰极大。
气压计:由于地球表面海拔越高气压越低,因此气压计可用于测量海拔高度。不过,尺寸和重量都适用于多旋翼无人机的气压计,很容易受到温度、湿度、空气流速、光照、振动等诸多因素影响,所以单靠气压计基本无法实现对高度的稳定测量。
受益于信息论之父克劳德.香农的理论,我们知道:信息可以用来估计状态,越多的信息可以把状态量估计得越准。经过多年实践,人们研发出结合GPS、惯性测量元件、地磁指南针和气压计各自优缺点的组合导航系统。(致敬大师香农)
具体来说,GPS可以获得三维位置和三维速度,惯性测量元件也可以,在通过地磁指南针获得航向的基础上,两套系统对三维速度的观测就可以融合起来——通过GPS的测量值来发现并抑制惯性测量元件的发散,而被抑制住发散的惯性测量元件就可以更准地测量三维角度和三维加速度。
GPS和惯性测量元件可以相辅相成,而气压计和GPS的配合也提高了高度测量的精度,地磁指南针、GPS和惯性测量元件的协同合作又提高了航向测量的精度……整个系统的精度和稳定性得到极大地提高。这个系统很强大,但对GPS的依赖太大,反而局限了多旋翼无人机的应用场景。
这两年来,包括大疆在内,无人机业界都在寻找能够在GPS不能使用的环境中使用的技术。这些尝试包括超声波定位,以及近来很热门的视觉感知,比较成熟的系统有光流测速和视觉里程计。
超声波定位:有收、发两个探头,通过发出和接收超声波的时间差,计算导致超声波反弹的物体与探头的距离。这种模块成本很低,淘宝上10块钱就能买到一个能比较准确测量几米内物体距离的超声波模块,所以在很多大学生制作的小机器人身上都能见到。
但是,它发出的声波容易发散、反弹声波的物体不在探头正前方、容易被空气中的水雾和震动等影响,最终导致给出完全错误的观测,所以目前在用的超声波模块都在底部,用于测量多旋翼无人机自身和地面的距离。
视觉感知:利用一个或多个相机构成的视觉传感系统,通过二维的相机图像推算出视野中某些物体的相对运动信息,假定这些物体是静止的,就可以反推视觉传感器本身的运动信息。目前,有两种已经比较成熟的视觉感知系统:光流测速模块和视觉里程计。
光流测速模块顾名思义就是用来测速度的,通常由一个相机、一个惯性测量元件、一个超声波模块构成。基于1981年计算机科学家发明的Lucas-Kanade算法,通过计算出连续拍摄的图片上的光流可以反解相对运动的速度。
30多年来,Lucas-Kanade算法始终被公认为最好的“光流追踪”算法,但是它有几个局限:它包含很多假设,比如假设连续图片的平均亮度相同、图片中的物体只发生平面运动等等。
因为相机图像的单位是像素,所以光流算法只能给出“你现在的速度是10个像素每秒”,至于10个像素是1厘米还是1米就不知道了。恢复尺度的方式是增加一个超声波模块测量平面运动离相机的距离,这样就能够把像素运动转换成真实的运动。
要让光流测速模块在晃来晃去的无人机上也能使用,必须通过搭配惯性测量元件,找出图像所代表的平面。
光流测速模块通过三维速度积分得出三维位置的过程也会发散,必须和组合导航技术中除GPS之外的传感器妥善融合之后,才能做到悬停时测量的位置不发散。
光流测速模块已经形成了非常标准的解决方案。大疆悟以及精灵上都装载了自主研发的光流测速模块,而著名的开源飞控Pixhawk中也有光流测速模块,并且开源了所有的代码和硬件方案。所以光流测速模块目前已经广泛出现在了各大厂商的多旋翼飞行器产品上。
视觉里程计相比光流测速模块,虽然少了一个超声波模块,但从软件算法上进行了优化,通过图像反推出视野中物体的平面运动以及三维位置,并基于这些物体的三维位置做很多次的优化计算,增加了直接测量位置的能力。
目前比较优秀的视觉里程计飞行100米会积累十几厘米到几十厘米的误差,虽然比起导弹上几百万的惯性测量元件还是差了很多,但考虑到视觉里程计的价格以及应用场景,它的性价比非常高。
视觉里程计中最简单的是双目立体视觉系统加惯性测量元件, 1980年代NASA工程师、著名机器人学家汉斯-莫拉维克就已经制造出了这种状态测量系统。在经年累月的优化之后,2004年,NASA成功把视觉里程计和惯性测量元件构成的视觉定位系统装在“机遇号”和“勇气号”火星车上,让火星车通过一对双目相机非常准确地记录自己走过的路线。
最难的视觉里程计是单目视觉系统加惯性测量元件。单目视觉系统由于只有一个相机,没有视差,没法做简单的几何关系的解算,所以算法必须能智能地在局部范围内同时估计很多个物体的位置,然后在自身移动过程中通过位置移动产生视差,然后进行多个物体的位置的最大似然估计,从而推算出这些物体比较准确的位置。
这个过程包括很多个环节,大部分环节在学术界都没有公认最优的方案,因此还没有成熟的技术,是目前非常活跃的研究方向,美国的宾西法尼亚大学、瑞士的苏黎世联邦理工学院、英国的牛津大学、我国的香港科技大学等在这个领域是相对领先的。
而对于领先技术的探索应用,基本就代表了无人机的代际发展,所以可以看出,目前无人机已从能飞发展到了第四代,即能够比较智能地飞。