小编采访

从“流浪者”到“火星2020”,浅谈火星“自动驾驶”技术的变革

随着算力的提高,火星探测器自动驾驶技术发展有多迅猛?

文︱Steven Leibson

译︱编辑部

图︱NASA/JPL

现在好几家公司都在投入大量的资源和精力,来开发地球上的乘用车、卡车和公共汽车的自动驾驶系统,但美国JPL(喷气推进实验室)中的一个由专业科学家和工程师组成的小组,却一直在研究一个另类的课题:给火星探测车赋予自动驾驶能力。

很显然,火星探测器与我们的距离很远,根据地球和火星各自轨道上的位置来看,其相距5500万到4亿公里之间。光速大约为30万公里/秒,因此无线电通讯需要三到二十二分钟才能完成单程“旅行”。如果再提供远程驾驶所需的视觉反馈,那么往返通讯时间就会增加一倍。由于较大的时延,我们没有办法在地球上远程驾驶火星探测器。在马斯克或其他人去那里之前(大概是驾驶着特斯拉电动车),拥有真正自主意识的自动驾驶机器人是必需的。

我们不需要担心在火星上会有车祸发生,至少在看到《疯狂麦克斯》越野车呼啸而过之前我们是这么认为的。如果真的发生交通事故,我们会有更多的问题要处理,这比设置火星的道路规则更难。道路规则理解本就有很多问题,比如理解车道标志、停车标志、限速标志、红绿灯等等,不过这些问题到了火星之后就会变得毫无意义。

流浪者

到目前为止,美国宇航局已经在火星上投放了四个探测器,自动驾驶能力也在不断提高,第五个探测器也会计划在不久的未来发射。探路者号于1996年12月4日发射,搭载了第一个成功登陆火星的探测器。1997年7月4日,探路者号使用了一种独特的安全气囊着陆系统在火星上的阿瑞斯谷安全着陆,这个系统看起来像一个装满足球的袋子,它会在火星表面最不稳定的地方进行弹跳,最后滚到一个地方停下。

着陆后的两个火星日,流浪者探测车驶离探路者号来到火星表面。然而在三个月后,通讯中断了,它的总行程仅为100米多一点,也就是一个足球场的长度。很可能是电池坏了,也可能是火星的寒冷造成的。当任务结束时,流浪者已经将计划中的7天运行周期延长了12倍,并将550张火星景观的照片发回了地球。

探路者号使用的是基于PowerPC架构的并具有抗辐射能力的RAD6000 CPU,而流浪者号的CPU是2MHz 80C85,内存为64 Kb。(这是一个上世纪70年代的8位旧CPU)。因此,流浪者号拥有Radio Shack(睿侠牌) TRS-80 Model 100便携式电脑的所有计算能力。

图1:火星上的流浪者号太阳能火星车。

(图片来源:NASA / JPL)

流浪者号与地球的通信微弱的。它通过一个9600波特的射频调制解调器与探路者着陆器通信,该调制解调器提供的有效数据速率仅为2600波特,理论最大射程约为500米。显然,流浪者探测车的“驾驶员”极具耐心,“他”坐在地球上的驾驶座上,戴着3D护目镜,向其发出明确的移动指令。

勇气号与机遇号

接下来两辆火星探测器分别是“勇气号”和“机遇号”,两者是火星探测漫游者号的一部分。与流浪者一样,都是太阳能的。两辆火星车配有20MHz RAD6000 CPU,其提供了22 MIPS原始处理能力。“勇气号”、“机遇号”于2003年发射,前后相隔不到一个月。勇气号首先于2004年1月4日在Gusev陨石坑着陆,机遇号于2004年1月25日在Meridiani平原着陆。两个着陆点分别位于火星两侧,相距约1万公里。显然两者此生不会在相遇,所以不需要考虑车辆躲避算法。

图2:火星上的勇气号探测器。

(图片来源:NASA / JPL)

从2004年运行到2010年,勇气号行驶了7.72公里(约为原计划的13倍),运行时间比原计划长约20倍。可惜的是,在2009年5月,勇气号通过特洛伊沙地时,车轮陷入软土,使其无法动弹,之后的观测数据一直被限制在原地,往后的几次解救行动都失败了。直到2010年NASA宣布放弃拯救计划,勇气号从此变为静止观测平台。2011年,NASA在最后一次尝试联络后结束勇气号的任务。

机遇号要比勇气号境遇好得多。截至2018年1月25日,“机遇号”已在火星漫游14年之多,行驶路程达到45.16公里,比计划的92天长约55倍。然而在2018年6月,火星上刮起了遮天蔽日的沙尘暴,美国宇航局与“机遇号”失去联系。在阳光充足的情况下,机遇号也许还会复活。但就像埃尔顿·约翰爵士在《火箭人》中唱的那样,“火星冷得像地狱”。没有电力,机遇号就无法让自己或电池保持适宜的温度。

由于计算能力有限,勇气号和机遇号的自主驾驶能力受到严重限制。操作员将一天的计划指令上传到漫游者上(在模拟器中验证之后),这两辆火星探测车会使用他们的立体成像功能和导航软件找出到达指定目的地的最佳和最安全的路线,同时避开立体摄像机识别出的地面障碍。

勇气号和机遇号的导航算法被称为格式塔(GESTALT)。格式塔负责立体视觉控制、可遍历性分析、路径选择和驱动。

好奇号

显然只依靠太阳能,三辆探测车前辈并不能走得太远。因此,下一个前往火星的探测车“好奇号”,用的是钚RTG(放射性同位素热电发电机),这种发电机可以日夜不停地通过核裂变产生100瓦以上的电力。此外,RTG的余热可以让“好奇号”的内部(电池和电子产品)保持温暖。好奇号于2011年11月26日发射升空,并于2012年8月6日登陆火星。通常情况下,RTG可以工作数十年(钚238的半衰期为87年),每年只会损失一点输出功率。因此,好奇号RTG的电力输出每年只下降一到两瓦特。

图3:火星上的好奇号探测车。

(图片来源:NASA / JPL)

本质上来说,一种取之不尽用之不竭的能源有效地增强了好奇号的传动系统,这意味着这款核动力探测车可以比它的前辈们走得更快更远,取得更多的科学研究。同时它也需要一个更强大的CPU来运行自动驾驶软件。

好奇号的CPU是一款较新的RAD750,可以在200MHz的时钟频率下工作,传输速度为400 MIPS。与勇气号和机遇号上的RAD6000 CPU一样,好奇号的RAD750 CPU也是基于PowerPC处理器架构。且经过了辐射硬化。

好奇号于2012年8月6日登陆火星,在整个好奇号登陆火星的过程中,最惊险的一段莫过于进入-下降-着陆过程了,该阶段缩写为EDL,指的是飞船以每秒5.9公里的速度撞击火星大气层顶,开始降落过程。EDL过程持续仅仅7分钟(被称为恐怖7分钟),以火星车平安降落于火星地表为结束标志。从接触火星大气层顶之前10分钟探测器抛掉巡航级开始,到有“天空起重机”之称的下降级切断连着好奇号的缆绳,飞船一共将经历6种不同的姿态,从而允许各阶段动作的展开。

好奇号目前在运行格式塔的改进版本,用于自主导航,这个版本在400 MIPS RAD750 CPU上的运行速度比在22 MIPS RAD6000 CPU上的快18倍。

美国航天局计划在2020年启动“Mars 2020”计划。为了尽可能降低任务成本和风险,“Mars 2020”计划中的设计基于NASA成功研发的火星科学实验室(Mars Science Laboratory)任务架构,该架构包括好奇号探测车和“天空起重机”着陆系统。用于“Mars 2020”任务的好奇号探测车进行了改进升级,比如为了更好地应对崎岖的地形,探测车安装了皮条带轮。经过6年多的时间,好奇号的铝轮正开发出额外的孔,如图4所示。

图4:“好奇号”探测车火星上滑行了六年多之后,其铝制车轮开始出现磨损。

(图片来源:NASA / JPL)

“Mars 2020”探测器的自动驾驶系统通过FPGA协处理器进行加速。“Mars 2020”探测器仍将运行格式塔 AutoNav算法,但当任务启动时,新的探测器将搭载一个基于FPGA的硬件加速器,名为Vision Compute Element (VCE,见图5)。这在好奇号上是不存在的。

图5:“Mars 2020”探测器视觉计算单元(VCE)中包含了一个新的基于FPGA的硬件加速器,有助于火星表面的着陆导航和自动驾驶。

(图片来源:NASA / JPL)

VCE包含三个插入Compact PCI背板的卡:一张拥有探测车RAD750处理器的CPU,一个CEPCU1(Compute Element Power Conditioning Unit #1),以及一张计算机视觉加速卡或CVAC。CVAC是为“Mars 2020”开发的一种新卡,它是基于FPGA的硬件加速器,用于视觉相关的应用程序。

在着陆初期,CVAC加速了着陆器视觉系统(LVS)的任务,该系统将着陆前的初始定位误差从3.2公里(仅基于惯性测量)减少到40米。当探测器从地球表面4200米下降到2000米的高度时,LVS将相机图像与存储的地图进行匹配,在10秒或更短的时间内,利用固定在探测器外部的一个额外摄像头来寻找地标。这个快速计算提供了足够的时间来将空中起重机定位在目标着陆区的无砾石区域。

如图5所示,“Mars 2020”探测器下降阶段与探测车共享VCE。当下降阶段准备完成时,利用天空起重机的操纵,VCE与下降阶段的连接被切断,探测器下降到火星表面。此时,VCE被重新用于格式塔自动驾驶算法。

格式塔算法采用图像采集、立体分析、视觉测距、可通行性分析、路径规划与执行。图像采集包括对安装在探测车相机上的图像进行捕获、采样、传输和存储。立体分析分为图像校正、滤波和视差处理。视觉测距包括识别和跟踪图像之间的特征,以估计位置变化。可通行性分析将立体数据转换为路径规划器使用的映射。路径规划和执行利用估计的位置和可通行性分析来确定和指挥探测车朝着总目标进行下一步行动。

FPGA

CVAC上的FPGA是可重新配置的Xilinx Virtex-5QVs,它是具有131,072个逻辑单元,320个DSP Slice和10.728 Mbits BRAM——是一款具有空间级抗辐射的FPGA。Virtex-5QV是一个可编程的视觉处理器,RTAX2000被永久配置为一个内务处理芯片。RTAX2000还负责配置和重新配置Virtex-5QV FPGA。

Xilinx早在2011年就宣布推出Virtex-5QV FPGA。它能抵抗单事件的干扰,对单事件锁存具有完全的免疫力,能够承受超过1个Mrad(Si)的总电离剂量,并提供数据通路保护,免受单事件瞬变。

CVAC使用Virtex-5QV FPGA加速某些立体分析和视觉里程测量任务。它实现了立体分析任务中大部分计算,包括图像校正、滤波和视差计算。它还实现了视觉测距任务的一部分,包括特征检测和匹配。特征检测采用角点检测,特征匹配采用序列中图像局部区域的绝对差和(SAD)算法。

CVAC上的Virtex-5QV FPGA为格式塔自动算法任务提供了显著的硬件加速。与20MHz RAD6000 CPU相比,256像素宽图像的立体声分析速度至少快了4800倍,而FPGA在不到十分之一秒的时间内就处理512P和1024P的图像。

在使用着20MHz RAD6000 CPU上的MER 探测车上,视觉里程测量算法需要160秒来估计一个相对的姿态变化。而在“Mars 2020”上,视觉测程任务由FPGA和RAD750 CPU分担,同样的算法只需要8.8秒。然而,视觉里程测量算法的FPGA部分,对于512P的图像需要0.016秒。

在火星上6年多的时间里,“好奇号”已经完成了大量的科学研究,而且它还将持续数年。当“Mars 2020”探测器在2021年登陆这颗红色星球时,好奇号也将继续执行大量的科学任务,而且由于喷气推进实验室将FPGA置于驾驶系统上,这辆探测车的速度将会更快。

《T访谈》往期回顾:

推荐新闻