当我们谈到自主技术时,你可能首先想到Waymo自主驾驶汽车,宏达Asimo人形机器人,或是亚马逊的送货无人机。但你可曾认识到,自主技术正在拓展到越来越广泛的领域?比如New Holland的自主收割玉米喂养家畜的收割机,Baker Hughes开发的用于油气开采设备的预测性维护服务,或是Bigfoot的自主检测糖尿病人血糖值并供给胰岛素的糖尿病管理系统……

日前,在MATLAB EXPO 2017上,MathWorks公司首席咨询工程师Loren Shure博士发表了一篇题为“如何构建无处不在的自主技术(How to build an autonomous anything?)”的演讲,很是精彩。MathWorks公司给出了“自主技术”的精确定义,解析了其中包含的四个重要组成部分,并分享了自主技术衍生到汽车/机器人以外场景的各种案例。赶快看下吧!

001ednc20170728 MathWorks公司首席咨询工程师Loren Shure博士

首先,我们要搞清楚什么是“自主技术”?MathWorks公司是这样下定义的——系统提供在未经预演的情况下独立于人类直接控制的能力。自动控制技术出现已经有很多年了,但要实现真正的自主控制,还有一个要素,即未经预演的(unrehearsed)条件,因为我们不可能事先知道可能发生的任何情况。然而,我们希望设备能够正确工作。随着过去几年机器学习、人工智能等技术的迅速发展,自主技术正在成为可能。

自主技术的开发涉及哪些工作?以梅赛德斯奔驰的概念车为例,首先它需要安装摄像头来获取周围情况,需要有GPS来获取位置信息。此外,它还需要安装雷达用于测距和测量对象的相对速度,还需要有激光雷达来对周边环境和地形等进行3D建模。数据获取(即传感)只是系统开发的第一步。有了这些数据后,系统还需要去感知,即利用传感器产生的数据去教授汽车去观察其他汽车的位置、车道的位置、人的位置及移动……“因为我们无法预演每一种可能的情形,所以我们必须使汽车在没有人类的帮助下能自动明白。这就是自主控制系统和自动控制系统的区别。”Loren Shure女士解释说。

002ednc20170728

有了感知后,下一步便是决策和计划。比方说,车道前方有静止物体,这时汽车就需要去决定是停下还是转弯。我们需要利用深度学习/机器学习技术去为汽车应用制定策略,去对各种新的情况做出响应。例如谷歌Waymo现已行驶数百万英里,目的是要尽可能多地训练各种情况,以便获得足够好的模型来使用。此外,汽车还需要提供道路优化技术,以便在某条道路拥堵的时候去找另一条路。

换言之,汽车决策为的是控制系统,去做刹车、加速、变换车道等等相应动作。这就是Simulink®的用武之地——它将学习算法和控制系统相结合,这对开发的成功与否起到关键作用。自主技术即将控制权从人转移到计算机,最终我们将实现完全自主驾驶的汽车,Loren Shure说。

综上,自主系统包含四个部分,即传感、感知、决策和计划,以及执行。

003ednc20170728

下面我们来看几个自主系统的具体案例。首先来看Baker Hughes的油气开采系统。这套系统,一台泵车就价值150万美元。其上布满了许多的泵和阀,仅这些泵和阀的价值就达10万美元。如果某个泵坏了,就需要去更换泵车(150万美元)并对其进行维修(10万美元)。而泵坏的原因通常只是价格仅为200美元的某个阀损坏所引起。如果能在阀坏前予以替换就可以节省这些费用。然而由于情况千差万别,决定何时更换阀门并不容易。这套系统中有多台泵车同时工作,并且它们工作在不同的速度。由于油气种类不同,速度、温度、压力等参数也都不同,因此阀门的工作寿命也不相同(从额定寿命的一半到2倍额定寿命)。阀门的更换非常耗时而且需要按照计划进行,该公司也不希望过早进行更换。他们希望最好是在阀门失效前进行更换。因此,他们对每台泵车安装了25个传感器,去测量温度、压力、振动、正时等各种参数(不知道哪个参数重要)。这样,每台泵车上采集的数据量高达100GB。

004ednc20170728

MathWorks通过统计和频域分析,帮助他们确定了只有3个传感器起到关键作用,即正时、振动和压力。因此,他们可以取消其他传感器,并基于模型来预测阀门的未来情况。

因此,问题的关键是如何找到最优预测器,但这可能很难。Baker Hughes的案例是根据数据来得到最优预测器,而在有些案例中则是根据模型来获得。例如,SAFRAN(赛峰集团)就是根据基于模型的设计方法来设计喷气发动机。他们将基于数据的预测学和基于模型的预测学相结合,来对发动机进行分析。

另一个案例是数字画库的应用。人们把来自世界各地数个世纪的油画制作成数字格式挂到网上。你可曾注意到某个艺术家可能影响到另一个艺术家?下面这个案例中有两幅画,分别来自不同大陆(法国和美国)和不同年代(前后相差80年)。数字油画的数量如此之多,以至于我们不可能通过人工的方式把所有艺术家的所有作品一一比对。这两幅画里有许多共性,比如中间都有三个人,都有一把椅子、一个窗户、一个静止物、一根线条。这两幅画的结构也非常类似。

005ednc20170728

那么这是如何发现的?罗格斯大学的研究人员设计了一套系统,用来自主分类艺术风格。首先他们能够访问所有数据,然后他们需要感知。他们对每幅画测试了许多不同模型,使用了2种机器学习模型——无监督学习(发现例如在角落的东西)和监督学习(发现椅子和人等物体),然后用机器学习分类算法,根据视觉特征来对风格、体裁和艺术家等进行分类。他们使用支持矢量机器来进行判定,因此能够找到不同油画之间的关系。一旦这个项目找到某种联系的话,历史学家就可以据此做更多研究去了解其出现的原因。

006ednc20170728

研究人员使用计算机感知去为各种意想不到之处添加自主能力。“如果系统能够像人类一样好地去感知信息,但却能以更快的速度去处理更大量的数据的话,我们将产生很多机会。比如我们有一个客户,他们的音频工程师通过训练计算机去听测试数据,去测试扬声器的质量,而如果由人来做,每天测试的数量和可耗费的精力有限。而计算机去做则可以提高测试数量和质量。”Loren Shure表示,“另一个是ASML的晶圆生产线,他们需要确定芯片的好坏,从而对生产线的信息进行校准。他们过去需要人工判断,并反复停止装配线去重新校准,现在他们能够在线进行判断并重新校准。通过增加自主能力,他们节省了75%的停机时间,并因此提高了产量。”

007ednc20170728

再就是Bigfoot Biomedical葡萄糖水平自主管理系统。这个案例中可以看到自主系统所包含的所有四个部分。Bigfoot使用MATLAB®/Simulink®来开发自主系统,管理糖尿病人的葡萄糖水平。这是个典型的控制系统——测量葡萄糖水平,进而提供胰岛素。糖尿病人是这个系统的被控对象。该公司开发了一个手机app,用于管理病人起居饮食等各种活动,进而决定胰岛素注射量。但是系统电池损坏、胰岛素包更换、监视器脱落等情况也需要小心考虑。他们使用Simulink的Stateflow模型对这些系统进行建模,而无需去担忧系统之间的交互。此外,他们使用Polyspace Bug Finder和Polyspace Code Prover对代码进行分析,来确保覆盖到所有可能的场景,从而使病人使用安全。

此外,每个病人的病情、生理条件、年龄及患病时间等也各不相同,系统统统需要了解。而Bigfoot不可能等上数年再去推出系统,也不可能立马获得足够多的病例。因此,他们开发了一个虚拟诊所,并通过统计机器学习工具箱和系统识别工具箱,对所有不同情况和类型的病人进行仿真。但其获得的病人数量仍然有限。因此,他们将这套系统挂到了亚马逊的网络服务上,从而可以同时进行256例仿真,并且一天可以仿真5000万个病患。

008ednc20170728

那我们可以从哪里获得数据?——通过仿真、公共资源库、实验室、现场或物联网(IoT)获得。

再拿New Holland的收割机案例来看,系统的操作员不用花太多心思在太多事上。收割机对拖车进行装料。其上的传感器用于检测拖车是否装满,装满后移到下一个拖车进行装料。然而每个拖车尺寸和形状都不同,这需要通过摄像头检测,而且需要能够处理各种环境场景(如强光、黄昏和很多灰尘等),并且任何时候都不需要调整和校准。这对于操作员来说工作量太大。系统的首个挑战是检测拖车中的饲料散布及装满情况。该公司评估了许多不同的传感器,比如传统的摄像头、立体视觉、激光、GPS,但通通无效。他们最终选择了3D近红外摄像头,可以测量距离,检测拖车类型,并处理满是灰尘及不同光照的场景。

009ednc20170728

他们通过摄像头对饲料散布情况生成3D点云数据,并使用计算机视觉来获取关键参数,从而控制喷嘴的角度和方向。然而这还不够,因为收割时间往往非常短,而且收割作物没有时间可以浪费。他们也不可能通过实验室去仿真各种条件。因此该公司创建了一个三维场景仿真器(嵌入式平台),并将其放到闭环系统中来模拟现场情况。因此,他们能够快速开发并测试计算机视觉算法、状态机算法以及控制算法。通过CAN总线将该平台与发动机控制单元(ECU)相连,便实现了执行机构的控制,操作员也可以在显示器上查看。此外,其可以对算法进行微调,并通过MATLAB Embedded Coder来生成代码。并且该嵌入式控制软件与在笔记本电脑上工作如出一辙。因此,这套系统可以通过笔记本或嵌入式代码实现控制,并根据新的情况进行调整。

010ednc20170728

Loren Shure女士介绍的最后一个案例是DLR的Agile Justin机器人。他的皮肤由纺织品制成,具有触觉,他的眼睛则由立体视觉摄像头构成。他能够根据手上的标记进行视觉校准。因此,他能够通过视觉使用3D点云来了解房屋、桌椅和管道等物体,并实现物体放置和投接球等动作……

011ednc20170728

012ednc20170728

最后,Loren Shure女士在接受本刊专访时补充道,MATLAB/Simulink近年来已将计算应用扩展到任何地方,比如笔记本电脑、GPU、FPGA等等。MathWorks在机器学习和深度学习领域也进行了大量投入。从控制来讲,Simulink的功能增强主要是考虑用户在使用时能够有更清晰的思路去做验证、测试和模型管理,并更有效率地去做控制系统的开发。

MATLAB/Simulink涉及到多域物理建模,即可以将其应用到各个不同领域和各个不同产品的控制系统的开发中。现在的系统越来越复杂,技术领域融合的趋势越来越明显。工程师也不可能全面了解系统设计的方方面面。这种情况下,如果企业要建一个很大的团队,去做融合系统的话,其在成本和沟通效率上都不划算。他们需要有一种统一的工具,即使不是某个领域的专家,也可以借助这个工具进行建模和仿真。而MATLAB/Simulink现在提供对C和FPGA的自动代码生成支持,即便工程师在C语言和硬件描述语言设计上有所欠缺,也可以通过基于模型的方法生成C代码或硬件描述语言等,进而部署到微处理器或FPGA中运行。

20160630000123