本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅2016年《程序员》
记者:徐威龙
提到无人机,有人也许会想到巡航在海上的大型的军用武器,而近年来,随着消费级无人机的技术革新和价格优势,这类无人机开始被大众所熟悉。无论是摄影还是送货,只要一提起无人机,人们马上会联想到大疆(DJI)、Parrot(一家总部位于法国巴黎的无人机及无线产品制造商)、3D Robotics(由前《连线》杂志主编Chris Anderson和时年20岁的Jordi Munoz创建,主打北美市场)、AscTec(德国Ascending公司旗下的无人机品牌)这些生产商。
然而,在美国宾夕法尼亚大学有这样一间实验室,早在2006年就开始了无人机相关技术的探索,至今他们的无人机算法和技术在农业、救灾、建筑、娱乐等方面有着广泛的尝试。相对于常见的摄影或物流类的无人机,他们所研究的无人机应用的场景更多样、处理的问题更复杂、涉及的技术领域和更为宽泛。可以说,他们的每一个新进展,都引领着整个无人机领域的技术变革,同时也是推动无人机和人工智能领域发展的杠杆。
近日,《程序员》杂志在CCF–GAIR全球人工智能和机器人峰会上专访了美国宾夕法尼亚大学工程学院院长,IEEE、ASME Fellow,美国国家工程院院士,Vijay Kumar。他就自己实验室最新的研究成果与我们进行了交谈。
除了摄影,无人机还能干什么?
Vijay Kumar是位印度裔机器人科学家,1983年毕业于印度理工学院坎普尔分校(IIT),后进修于美国俄亥俄州立大学,1987年获得机械工程博士学位。Vijay是世界上第一批研究无人机的科学家之一,早在2006年,Vijay和他的团队便第一次成功开发出了四轴飞行器原型,并积极推广无人机在多个实用场景下的应用。十年后的今天,无人机产业早已变的炙手可热,市场规模实现了百亿美元的增长,有人估计,到2020年,无人机市场将达到250亿美元。尽管市场越来越热,但学术界和产业界之间,依然存在一定的距离。这也让Vijay坦言,他并不关心无人机市场,眼下自己的重点,依然放在无人机的四个核心研发问题上:体型、安全、智能、速度。虽然这四点看似简单,但要是一一展开,无疑会让我们看到一幅关于无人机的更大的画卷。Vijay的最新研究成果,就是对这四点最好的诠释。
这些成果包括以下几类。
通过上述研究,无人机可以被应用在很多场景,例如可以放进大楼作为报警器,一旦有入侵者,马上报警;在建筑内寻找生化/煤气泄漏,或者把飞行器送进倒塌的楼房或核反应堆,来探测放射强度;室内建模,在陌生的空间内构建实时地图,甚至连一些室内细节都可以反映出来;搬运重物;搭建建筑龙骨(目前,根据Vijay一位学生开发的算法,飞行器矩阵可以自己建造矩形的龙骨),飞行器根据对周围飞行器的探测,可以自行选择用什么材料、用在哪里、什么时候用。
除此之外,Vijay研究的飞行器还有很多实际用途,例如精细农作,通过热感摄像机和普通摄像头捕捉的数据,分析每株作物的特定需求,并且将结果反馈给农户,比如作物A需要浇水、作物B需要施肥、作物C需要除虫等。通过这一方式,无人机还可以计算每株作物的果实数量,从而帮助农户对收成进行预估,以及找出染上疾病的作物。
仿生学在无人机领域的应用
对仿生学的应用是Vijay研究中最重要的思想之一,也是很多创新技术诞生的基石。在上面提到的无人机四个要素中,体型大小会对其他因素造成不同程度的影响。通过对蜜蜂的观察,Vijay发现,这种小型飞行生物可以很好地跟环境互动,即使相撞也不会受伤。同时小体型意味着惯性更小,速度更快,受到撞击时也可以很快恢复。但小体型的代价却是搭载的传感器更少,单个飞行器能做的事情也有限。
为了弥补这一缺憾,Vijay和他的团队发明了飞行器矩阵,即通过一组飞行器来配合完成某项任务,这也是Vijay团队无人机研究中最重要的概念。为了让一组飞行器更有机地配合,他们再次借鉴了仿生学规则。通过对切叶蚁亚科的盘腹蚁属(Aphaenogaster)进行观察(如图1所示),Vijay总结了三个重要的自然生物协同工作的原则。
受到上述自然规则的启发,Vijay设计了原理类似的飞行器矩阵,这种矩阵被称为Swarm(如图2所示)。在Swarm中,每台飞行器都装有本地传感器,并且拥有本地通信和计算能力。两台相邻的飞行器通过传感器控制彼此的距离,传感器以100次/s的频率将数据发送到处理器,并由处理器将解决方案传送给电机。在图2的示例中,Swarm利用邻近感知原则,可以在障碍物前转换阵型(Formation),由于匿名原则,在一个Swarm中,即使抽掉(或增加)了几台飞行器,阵型依然可以保持原样。
而由于每台飞行器都是独立运算行动的,在另一个例子中,飞行器通过自身对环境的探测,完成了一系列高难度的动作,比如在狭窄的通道前转体,钻过通道后迅速恢复原样;以及钻过向上抛出的铁圈等(如图3所示)。这两个例子的原理在于,人们先为飞行器预先编入飞行轨迹,但飞行器需要在预设的轨迹上加一个动作,这需要它们先积聚动能再改变方向,再回到预设的轨迹上来。它们知道怎样完成每段独立的轨迹,然后把每一小段的轨迹组合起来。
为了更好地理解Swarm,Vijay通过一个理论来进一步说明,他称这个理论为Consensus,Consensus解决的是在Swarm中到底该怎样形成阵型(Formation),哪台飞行器该飞到哪,矩阵如何保持一致性的问题。Vijay举了一个例子。假设你身处一个5个人的房间,每个人脑子里都想一个数字(事先不能交流),这时5个人都想到同一个数字的概率小到可以忽略不计,而这时你把你想到的数字告诉“邻居”,“邻居”再把自己听到的数字相加再除以人数。比如A说1、B说4、C说10,当你问C的数字是几的时候,C会说5(1+4+10=15,3/15)。如果你们重复这一步骤,那么几轮之后,你们就会得到相同的数字了。这就是为什么每台无人机都有自己的飞行路线,但最终却能协同起来的原因。
尽管在充分训练的情况下,Swarm已经拥有良好的表现,但Vijay也坦言,随着飞行器的数量增多,Swarm的组织也越难,原因有二。其一是随着飞行器数量的增加,单个飞行器对“邻居”动态的感知更难,需要掌握的数据也更多;其二在于,当不同特征(Traits)的飞行器同时加入编队后,对阵型的优化影响很大。
Vijay团队曾做过一项实验。实验中,他们为不同的飞行器赋予不同的特征(Traits),使具备相同特征的飞行器成为一个“种群”(Species),让不同“种群”的飞行器组成一个阵列,去完成某项任务。结果发现,种群的基数越大阵型就越难被优化。
无人机,走出实验室要面临更多的挑战
今天,无人机在现实世界中的真实应用案例还相当有限,尽管2011年,Vijay的无人机曾被用来日本地震灾后的探测工作(如图4所示),但要想让无人机在更多的任务中发挥作用,依然面临着不小的技术挑战,外部世界的复杂性远远超过实验室的模拟,除了上文提到的Swarm之外,无人机在室外甚至是灾难现场工作,还面临着风速、无GPS定位、悬停电量消耗、陡坡降落等难题。由于Vijay研究的无人机是“独立”且完全“自动”的(Autonomic),即使要完成从A点到B点这样简单的动作,都要穿过一个12维的空间。
Vijay的方法是把这个12维空间翘曲成一个4维空间(如图5所示),这个4维空间由横轴、纵轴、竖轴、旋转轴组成。飞行器在这个4维空间中以10~100次/s的频率规划“最小化加速轨道”(Minimum Snap Trajectory),同时通过对位置向量、导数、速度和加速度的推导,创造一个优雅的飞行曲线,并且绕开障碍物。
然而当飞行速度达到一定的量级之后,上面的方法就不利于避障了。由于无人机上的传感器无法探测20米外的范围,这时如果无人机以20m/s的速度运行,一秒钟后就会飞到一个完全陌生的环境或撞上障碍物。这时就需要建立一个二维地图,在二维地图中找到安全轨迹作为矢量集合,飞行器可以在这个矢量集合中去调整“最小化加速度轨道”。
下面我们来看看Vijay团队在实际应用方面的一些关键技术研究。
【地图构建】
地图的构建分为两种,一种是在未知环境,且传感器数量和信号都不好(尤其是无法使用GPS)的情况下创建拓扑地图;另一种是构建SLAM(Simultaneous Localization And Mapping)。关于第一种,Vijay和他的团队开发了一套创建拓扑地图的算法工具,通过ROS呈现(机器人操作系统)。这一算法需要先对自由空间进行覆盖,然后建立起该覆盖环境的基本维诺图(Voronoi Graph,如图6所示)。
而SLAM的构建则要复杂一点,在讲解技术原理之前,我们不妨简单地看一看这个近几年在机器人、VR/AR领域经常用到的技术。简单来说,SLAM是指当某种设备(如机器人、VR设备等)来到一个完全陌生的环境时,它需要精准地建立时间和空间的对应关系,并能完美地回答以下一系列问题:我刚才在哪里,现在在哪里?我看到了什么?现在看到的和之前看到的有哪些异同?我过去的行走轨迹是什么?我现在看到的环境是什么样子,和过去相比有怎样的变化?我的轨迹抖吗?我的位置飘吗?我还能跟踪到自己的轨迹吗,如果我丢了应该怎么办?我过去建立的对环境的认识还有用吗?我能在已有环境的抽象里快速对现在的位置进行定位吗?
在Vijay的实践中,他们采用了一种叫做“直接视觉SLAM”(Direct Visual SLAM) 的方法。与传统的用来构建“稀疏重建”(Sparse Reconstructions)的功能性算法相比,直接视觉SLAM更适合建立“半密集重建”(Semi-Dense Reconstruction)和“全密集重建”( Fully-Dense Reconstruction),如图7所示。Vijay告诉我们,他们目标是在一个标准CPU环境下,将视觉数据和惯导数据连接起来。整个过程被拆分为三个线程,第一个线程利用视觉数据和惯导数据做非线性优化,对摄像头的移动做出判断,这一过程以帧速率运行,然后构建出半密集地图(Semi-Dense Map)。第二线程则需要构建出一个拥有高梯度区域(High-Gradient Area)的半密集地图,目的依然是对摄像头位置进行追踪。第三线程则以较低的帧速率构建出该场景的全密集重建。
【无GPS环境下,微型无人机矩阵部署系统】
只装有少量传感器的微型无人机矩阵,是否可以在恶劣的环境下工作(比如无法使用GPS等)?为了解答这一问题,Vijay团队在矿井和大风的户外进行了试验,他们开发了一套叫做“基于视觉的稳定系统”(Visual-Based Stabilization),这套系统被部署到了多个应用模式中,包括:主从无人机矩阵(Leader Follower)、Swarm矩阵在监控环境下的部署与稳定、合作无人感知测量等。实验中,这些飞机的控制、运动规划、稳定性和轨道规划都有不俗的表现。
【高速无人机在陡坡的降落】
救援型无人机需要在灾难现场长时间实时传输信息或构建地图,然而续航时间短仍然是个重要的短板。为了解决这一问题,Vijay和他的团队,希望通过让无人机随时降落来“保存体力”,包括降落在各种质地和各种角度的平面。Vijay为微型无人机设计了“抓器”,它可以牢牢“抓住”不同的平面,还可以抓取重物。下图展示了高速飞行的无人机在陡坡降落的情况,目前Vijay的无人机可以在90度的陡坡实现高速降落(如图8所示)。
这个“抓器”不是一般的“爪子”,而是一个真空吸盘,通过微型真空泵来驱动。他们对吸盘的设计和它与放气、激活力度、最大抓举力之间的关系作了很多次测试,最终这一吸盘做到了既可以抓取各种物体,又可以在陡坡上降落。
为了节省“体力”,Vijay和他的团队还做过其他尝试。比如2011年他们让一台机器人背着无人机进入一栋坍塌的大楼,进到大楼呢,无人机才开始工作,用了两个半小时绘制出了大楼内部的地图。
【近景遥感技术在农业上的应用】
通过近景遥感(Close-Range Remote Sensing)技术对柑橘属果树进行检测,并对患青果病的果树进行识别。在佛罗里达,青果病是威胁果树健康的主要因素。在同一景深下,通过测量黄色偏振光的反射比,可以找出患病的果树。此外,他们还制定了一套标准用来测量患病果树树叶中的淀粉沉积。在获得这些信息之后,他们再加上一个景深维度,和机器学习算法,识别的准确率达到93%。不仅能识别患病的果树,连青果病的传染和早期受到感染的果树也能分辨。
与Vijay Kumar对话实录
程序员:你最近的研究并不太依靠外部设施,飞行器是完全“自动”(Autonomic)的,而用到的技术却谈不上创新,你怎么看?
Vijay:目前我们所用到的技术,比如动作捕捉等确实称不上新技术,这类技术我们早在2008年就有所尝试。但技术背后的算法却是新的,理论也是新的,比如上面提到的陡坡降落等。新的理论让“旧”的技术发挥新的作用。
程序员:你用手机作为传感器集成,比起载有等量传感器的无人机,具体可以减重多少?
Vijay:一般一个载有等量传感器的飞行器大约重3千克,悬停的时候会更重,电缆、传感器、外壁的重量占45%~50%,要240瓦才能带动。而一台iPhone6只有129克,只相当于原来十分之一的重量。
程序员:既然无人机对重量的要求如此苛刻,那么执行救灾任务时很难载人离开?
Vijay:的确。悬停是最大的问题,悬停时每千克消耗200瓦电力,要是载一个50公斤的人,每次悬停就要消耗一万瓦以上的电力,这不是个小数字。但也不是没有解决办法,我们可以看看客机,无人机也可以像客机那样用飞机燃料、汽油或柴油当作燃料。
程序员:你认为无人机要想真正普及,技术是最大的门槛吗?
Vijay:我不这么认为。技术创新固然重要,但很多需求我们已经知道该如何实现了。但商业创新现在依然处于摸索的阶段。无人机要想实现普及,需要由商业创新来推动,这是我不擅长的。你看Uber和滴滴出行这两家公司,他们的崛起并非因为他们在技术上有很大突破,而是因为商业创新。
订阅2016年程序员(含iOS、Android及印刷版)请访问 http://dingyue.programmer.com.cn
订阅咨询:
• 在线咨询(QQ):2251809102
• 电话咨询:010-64351436
• 更多消息,欢迎关注“程序员编辑部”