注:本文转载自--    博主:虾米一代       博客:《科普“智能导航”--整理自大疆工程师》

1.飞行器想要稳定飞行,需要15个状态量:三维角度,三维角度对应的三维速度、三维加速度、三维角速度,三维位置。

传感器的测量如下:

2.传感器自身的限制:

(1)惯性测量元件:会受到温度、制造工艺的限制,产生一些测量的偏差。这类测量的偏差需要比较仔细的算法进行修正,而且往往不能单靠惯性测量元件自己的测量完全消除。

(2)地磁指南针:地磁线的强度非常弱,很容易受到干扰。

(3)气压计:会受到温度、湿度、空气流速、光照、振动等因素的影响

(4)GPS:只有在开阔的空间内才能给出比较好的测量值,因为GPS接收机需要从天上的卫星获得信号,这些信号要从太空传入大气层,这么远的距离,信号已经相对来说很微弱,所以必须要求接收机和卫星之间的连线上没有遮挡,一旦有建筑甚至是树木的遮挡,卫星发下来的信号就有噪声,GPS接收机就不能给出很好的位置和速度观测。在室内环境中,GPS甚至完全不能使用。

(5)光流:只能测量维平面,离测量物体不能超过5米左右。

(6)视觉里程计:也就是单目和双目视觉,离测量物体不能超过5米左右。

3.组合导航技术

克劳德-香农总结归纳出:信息可以用来估计状态,越多的信息可以把状态量估计得越准。

控制论的奠基人诺伯特-维纳与其他一大批工程师和科学家完善了通过信息进行状态估计的线性估计理论,进一步提出了传感器之间“互补滤波”,共同减小误差的理论。在此基础上鲁道夫-卡尔曼提出了卡尔曼滤波器,在通信、控制工程和飞行器状态估计领域广泛使用。

因此,结合GPS、惯性测量元件、地磁指南针和气压计各自的优缺点,使用电子信号处理领域的很多技术,融合多种传感器的测量值,获得较为准确的飞行器十五个状态量的测量。

4.控制过程

拿“悬停”这件看起来是多旋翼飞行器最基本的能力来说,实际上飞行器的控制器在背后做了一系列“串级控制”:在知道自己三维位置的基础上,控制自己的位置始终锁定在悬停位置,这里的控制量是一个目标的悬停速度,当飞行器的位置等于悬停位置时,这个目标悬停速度为0,当飞行器的位置偏离了悬停位置时,飞行器就需要产生一个让自己趋向悬停位置的速度,也就是一个不为零的目标悬停速度;飞行器要想控制自己产生目标悬停速度,就需要根据自己当前的三维速度,产生一个目标加速度;为了实现这个目标加速度,飞机需要知道自己的三维角度,进而调整自己的姿态;为了调整自己的姿态,就需要知道自己的三维角速度,进而调整电机的转速。

5.视觉感知

GPS可以令发散的IMU等传感器通过组合导航技术收敛,但在感知系统中没有GPS的的情况下需要另一个传感器替代GPS组成新的感知系统感知十五个状态量。

(1)光流:只可以测三维速度,不能直接测量三维位置。同样可以通过把光流测速模块测出的三维速度积分获得三维位置,但是就像惯性测量元件积分会发散一样,光流测速模块积分得到的位置也会发散。好在它不会天马行空地失去控制。和组合导航技术中除了GPS之外的传感器妥善融合之后,它可以做到悬停时测量的位置不发散。

(2)视觉里程计:相比光流测速模块,增加了直接测量位置的能力,所以才叫“里程计”。视觉里程计比光流测速模块能力更强,性能更好。视觉里程计算法复杂很多,它不仅要通过图像反推出视野中物体的平面运动,还要反推出这些物体的三维位置,并且基于这些物体的三维位置做很多次的优化计算,算法复杂度成倍于光流测速模块。有些视觉里程计的算法甚至包含完整的光流追踪的算法,但是仅仅把计算光流作为预处理图像的步骤。

视觉里程计能够直接测量位置,测量值也比较准确,不会像光流测速模块那样发散。通常比较优秀的视觉里程计飞100米之后只会积累十几厘米到几十厘米的误差。

视觉里程计有几个不同层次的难度,最简单的是两个相机构成的双目立体视觉系统加惯性测量元件,最难的是一个相机构成的单目视觉系统加惯性测量元件。单目视觉系统和双目立体视觉系统两者对比起来,他们的算法难度差别很大。视觉里程计的算法关键点是前面说的“通过连续的图像反推出视野中物体的三维位置”。对于和人眼结构类似的双目立体视觉系统,这一点比较容易,因为一个物体同时出现在左右两个相机的视野中时左右视野有视差,视差可以帮助解算物体的位置,只需要用简单的几何关系就可以实现,这已经是非常成熟的技术。但是对于单目视觉系统,只有一个相机就没有视差,没法做简单的几何关系的解算,所以算法必须能智能地在局部范围内同时估计很多个物体的位置,然后在自身移动过程中通过位置移动产生视差,然后进行多个物体的位置的最大似然估计,从而推算出这些物体比较准确的位置。这个过程包括很多个环节,大部分环节在学术界都没有公认最优的方案,因此还没有成熟的技术。

6.大疆的领先技术

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

两套双目立体视觉系统还带来了视觉里程计之外的两个好处:1.向下看的一套双目立体视觉系统可以探测下方地面上物体的三维位置,从而知道地面的距离;2.向前看的一套双目立体视觉系统可以用来探测前方场景中物体的深度,产生深度图进行障碍感知。深度图还可以用于重建一个飞行器周围的局部地图,以进行精细的运动规划,这就是精灵4指点飞行的基础,在这篇文章中不详细介绍了。

智能导航技术极大拓展了飞行器可以活动的空间,当有GPS的时候,系统可以通过GPS为主进行十五个状态量的测量,视觉里程计依然可以继续运作,提供额外的速度和位置的测量值进一步提高精度;GPS信号不好的时候,视觉里程计可以接替GPS为整个系统提供稳定的观测。智能导航系统中有三种确定高度的传感器:超声波、气压计、双目立体视觉,这三种传感器几乎可以覆盖所有让传统多旋翼飞行器头疼的定高场景:树丛上方、室内、靠近建筑的位置、大风环境等等。

地磁指南针的冗余设计可以很大程度上减小外部磁干扰带来的指南针故障。另外视觉里程计也能给出航向的观测,两者互补能够提高航向的观测精度。在以前的飞行器上,因为地磁指南针受到干扰造成的炸机问题比较多,在精灵4上因为有了多重保护措施,地磁指南针被干扰导致问题的概率大大降低。

有了智能导航系统之后,还需要有一套强有力的软件系统去组织导航算法和飞行控制算法。精灵4的飞控和最新推出的A3飞控类似,都是大疆第三代飞行控制器。2016年初开发完成的第三代飞控里加入了冗余传感器、双目立体视觉支持、避障功能和智能返航等功能。2014年底推出的第二代飞控里加入了光流测速模块支持、SDK、限飞区和新手模式等功能。大疆第一代飞控是汪滔自己写的,性能很不错,然后飞控组在过去的几年里做了两次比较大的飞控软件系统的重构,以支持更多的传感器和功能。

智能导航系统让精灵4在任何状态下都可以准确测量自身的三维位置和三维速度,这对实现多种功能都有非常重要的意义。

(2)避障:近年来,业界有很多关于避障应该使用双目立体视觉还是激光雷达传感器等传感器的争论。大疆选择了双目立体视觉的方案。相信随着科技的发展,在未来会不断有更多更好的新传感器诞生,很可能会有其他传感器代替双目立体视觉,但是实现稳定避障的关键不在于避障所使用的传感器。避障这个事件发生前后,飞行器机体一定会发生急刹车,整体会经历很大的姿态变化和加速度,在这种状态下,飞行器是否还能稳定地测量出自己的十五个状态量,才是最影响安全性的问题。

如果系统急刹车之后,整体的位置观测甚至速度观测都发散了,这时候飞行器有可能左右飘出去,还是会发生炸机。就算不炸机,避障之后飞机前后左右摇晃,也会给用户心理上造成不安全的感受,带来很差的用户体验。精灵4在很多严苛的情况下发生避障动作时,飞行器会自动锁定位置、速度迅速减为0的状态,很快就可以从高速机动恢复到完全不动,非常稳定地悬停,避免了在障碍附近不稳定活动引起炸机。

(3)多种场景的适应:

场景一:在十几层楼的窗口把飞行器从室内飞到室外悬停

这种场景下,从窗口穿出时,向下看的传感器几乎马上全部失效,由于有建筑的遮挡,GPS也不会立刻生效,因此传感器系统不够稳健的飞行器有可能因为失去速度和位置的测量而飘到建筑上造成高空炸机。而精灵4则能够通过前视双目视觉系统的观测,在向下看的传感器都暂时失效时继续运行视觉里程计,及时提供辅助的速度和位置观测,避免造成无法控制速度和位置导致炸机的情况出现。

场景二:在航拍时,GPS被遮挡

比如在树木茂密的峡谷里航拍,经常出现的情况是飞行器放在地面上时接收不到GPS信号,如果稳定飞到几十米的高度就可以接收到了。在这些临界情况下起飞和降落非常危险,如果要保证飞行器在升降过程中都能保持稳定的状态,飞行器必须能够在GPS和视觉里程计之间无缝转换,这样才能让用户放心地起降。如果用户从高处下降到低处GPS突然没有了,而视觉里程计没有及时补上,飞机失去位置和速度观测之后就变得非常难操控,就有可能撞在树丛上。在这些情况下光流测速模块效果是不是也一样呢。我们前面说过光流测速模块的算法有很多简化的假设,尤其是被观测的物体必须处于同一个平面这样的假设,使得光流测速模块在树丛上方、地势变化较大的空间上方,都表现非常糟糕,并不能满足户外航拍的需求。虽然视觉里程计计算量庞大,但它是比光流测速模块更加实用有效的方案。

(4)遥控器杆量转化成飞行器的速度指令

第二代的大疆飞控使用的是遥控器杆量转化成飞行器的加速度指令,而第三代的大疆飞控在精灵4上变成了遥控器杆量转化成飞行器的速度指令。在精灵3、大疆的前代飞行器以及很多无人机产品上,如果你推遥控器满杆前进,飞行器会以一个固定的角度加速飞出去,直到加速度被空气阻力抵消,这样控制并不直观,所以新手很难操作飞行器;而在精灵4上,如果你推遥控器满杆前进,飞行器会自己调整到一个固定的速度上,直接操控速度显得非常直接,以往,让飞行器保持匀速飞行是只有专业飞手才能做到的事情,现在则真真正正地让普通人也能触手可得。遥控器杆量改动也显示了大疆对自己智能导航系统提供的稳定的三维速度测量的信心。(这点px4也已经实现)

7.一套完整、可靠的传感器系统是一点一滴积累起来的,新传感器必须和已有的组合导航系统在硬件和软件上仔细融合,才能真正发挥作用。

大疆精灵4与双目视觉智能导航系统相关推荐

  1. 大疆精灵4航测输出正摄影和三维模型教程

    01 影像数据的获取 近年来消费级无人机使用越来越普遍,用来干测绘的门槛也越来越低.随便拿台大疆四旋翼无人机,配上免费的第三方航线规划软件,再用网上到处能下载的无人机影像处理软件,就能轻松生成正射影像 ...

  2. 已面世两年 大疆精灵4 Pro V2.0为什么仍是最受欢迎的无人机之一?

    大疆精灵4 Pro V2.0在经历一段时间无货后,于今年一月初重新上架,尽管现在无人机产品层出不穷,竞争日益激烈,但精灵4 Pro V2.0依然是很多飞手的最爱,那它受欢迎的原因是什么呢? 是的,我们 ...

  3. 【Pix4d精品教程】大疆精灵4A无人机航空摄影测量外业数据采集完整操作流程

    本项目我们采用大疆精灵4A无人机进行航空摄影测量外业数据采集,主要内容包括:航摄准备.像控点布设.航线规划.飞行.数据传输等. Pix4dmapper摄影测量内业数据处理.空三及4D产品生产部分,请参 ...

  4. 3详细参数_大疆精灵3值得入手吗?最详细的实测体验,各种参数应有尽有!

    要说起无人机,可能没有太多人了解过,而且无人机的价格也非常高,动不动就是两三部苹果手机,这个一点也不夸张.而无人机的领航者无疑是大疆精灵了,而且知名品牌仅仅有大疆精灵而已,虽然之后也有小米等企业也发展 ...

  5. 大疆精灵4多光谱无人机P4M影像辐射定标方法(二)

    前言 上一章<大疆精灵4多光谱无人机P4M影像辐射定标方法>重点给出了基于"光强校正法"的大疆P4M转换反射率的方法的代码(基于python),未对其原理和校正精度进行 ...

  6. 大疆精灵4多光谱无人机P4M影像辐射定标方法(三)

    前言 继大疆精灵4多光谱无人机P4M影像辐射定标方法和大疆精灵4多光谱无人机P4M影像辐射定标方法(二)后,不断有朋友加好友咨询,P4M 处理文档中 Pnir参数如何获取,如何能获取地表反射率.经了解 ...

  7. 大疆精灵4RTK的运用

    随着技术的沉淀,无人机曾经显现出其宏大的消费力功用.无人机使用范畴日渐普遍,扩展到了农业.应急救援.消防.动力.测绘与城市管理等多个垂直范畴,助力细分行业的晋级迭代. 大疆精灵 Phantom 4 R ...

  8. 大疆精灵4多光谱 辐射定标 Metashape(原photoscan)

    大疆精灵4多光谱 辐射定标 Metashape(原photoscan) 最近在处理大疆精灵4多光谱的数据,搜遍了全网的资料,都没有找到合适的. 大疆官方配套的软件(大疆智图),之前试用版可以用30天, ...

  9. 无人机PHP3,【无人机摄影-基础篇】大疆精灵3使用最全指南(官方出品)

    无人机摄影,首推大疆精灵3,对于大部分普通人而言,精灵3的性价比是最高的.当然,大疆还是咱国产品牌哈! 当然如果您的预算足够,那么大疆精灵4也是很好的选择,至于精灵4到底比精灵3好在哪里?您可以观看这 ...

最新文章

  1. 清华、北大教授同台激辩:脑科学是否真的能启发AI?
  2. 信息哲学给哲学带来根本性革命了吗
  3. golang import后带“_”下划线的意义
  4. c语言小学生算法,急求:C语言小学生算法练习软件实现的任务:面向小学生,随机选择两个整数进行加、减、乘、除,要求学生解答。设计内容:1、电...
  5. Oracle-SYSAUX表空间解读
  6. Windows下搭建PySpark环境
  7. tensorflow object detection API训练错误解决
  8. rust(43)-rust语言特点与版本发布
  9. WIFI配网方式(AP模式、Smartconfig等模式)
  10. 记录cocos2d-x3.0版本号更改内容官方说明
  11. NLP论文 -《Distributed Representations of Sentences and Documents》-句子和文档的分布式表示学习
  12. 记录一次客户Oracle启动不了的解决过程
  13. 概率图模型--马尔可夫随机场
  14. 大众点评全球吃货地图 五一海外游神器
  15. php抓取快照,PHP抓屏函数实现屏幕快照代码分享
  16. dns114.114.114..114
  17. 软件架构师:走钢索的人
  18. HBCTF第三场WP
  19. leetcode 组合总和(Java)
  20. 八年级下册册计算机计划,长春版八年级信息技术下册全册教案

热门文章

  1. 关于c语言中的exit()里面的意思
  2. linux命令查看开放哪些端口
  3. 个人总结--关于学习过程中的一些经验心得分享
  4. 配置服务器映射时提示接口地址不支持UNR
  5. 软件设计师考试重点知识点梳理
  6. CTF每日一题之ACII码编码
  7. java学了之后老忘_老程序员的建议,零基础学java,常见的误区和解决方法
  8. 《Java并发编程的艺术》——Java中的并发工具类、线程池、Execute框架(笔记)
  9. 能够1年涨薪2次的软件测试工程师,他到底强在哪里?
  10. 光纤通信系统组成总结及相干光通信基础