资讯动态

火星车自动驾驶:老电脑上跑出90%自主性的工程取舍

发布时间:2026/10/24 5:01:53 来源:尧图企业网站定制
1. 火星车自动驾驶背后的核心命题拆解毅力号在火星表面跑出的自动驾驶纪录核心数字是90%的行程无需人类干预。这个数字放在地球上的自动驾驶语境里可能不算炸裂毕竟城市道路的NOA已经能做到几百公里才接管一次。但火星场景完全不同通信延迟动辄十几分钟没有GPS没有高精地图没有路侧单元连轮子打滑的物理参数都因为重力差异而变得陌生。在这种条件下把90%的行驶决策交给车载系统本质上是一次极端环境下的自主导航工程验证。这个项目标题里最容易被忽略的关键词是“老电脑”。毅力号的主控计算机用的是RAD750一颗基于PowerPC架构的抗辐射处理器主频大约200MHz内存256MB。这个配置放在今天的手机面前连零头都算不上但它要在火星表面完成视觉里程计、地形分类、路径规划、障碍物规避这一整套计算流水线。所以真正值得拆解的问题不是“自动驾驶有多强”而是“在算力被锁死的条件下如何把自主性做到90%”。适合阅读这篇内容的人包括几类对航天器自主导航感兴趣的技术爱好者、做嵌入式系统或边缘计算的工程师、研究SLAM和路径规划的研究人员以及任何想知道“资源受限条件下如何做工程取舍”的从业者。我不打算复述新闻通稿里的数字而是从系统设计、算法选型、算力分配、实操验证这几个角度把这件事背后的工程逻辑拆开来看。2. 为什么火星自动驾驶和地球自动驾驶是两回事2.1 通信延迟决定了自主性的下限地球上的自动驾驶无论特斯拉的纯视觉方案还是Waymo的激光雷达方案背后都有一个隐含假设如果需要远程接管是可行的。4G/5G网络的延迟在几十毫秒量级安全员可以在紧急情况下介入。火星完全不是这个逻辑。地火之间的单向通信延迟最短约3分钟最长超过20分钟取决于两颗行星的轨道位置。这意味着火星车遇到一个沙坑或者一块尖锐岩石时不可能等地球发指令。注意通信延迟不是“网速慢”的问题而是“根本不能依赖实时遥控”的问题。所有行驶决策必须在车上闭环完成。这个约束直接推导出一个设计原则火星车的自主导航系统必须把“感知-决策-执行”整条链路都放在车载端。地球团队能做的是提前上传路径点、设定安全阈值、事后分析数据而不是实时操控方向盘。2.2 没有GPS和先验地图的定位难题地球上的自动驾驶依赖RTK-GPS提供厘米级定位配合高精地图做车道级匹配。火星上这两样都没有。毅力号的位置估计靠的是视觉里程计加惯性测量单元再结合地球深空网络测得的粗略位置做校正。视觉里程计的原理不复杂用导航相机连续拍摄地面图像提取特征点通过帧间匹配计算相对位移。但火星表面的纹理重复度很高沙地和岩石的视觉特征在连续帧之间容易混淆特征匹配的误判率比地球场景高得多。更麻烦的是轮子打滑。火星重力只有地球的38%车轮与地面的摩擦力特性完全不同。在松软沙地上轮子转过的距离和实际前进距离可能差出30%以上。如果视觉里程计和轮速计的数据不一致系统需要判断是打滑还是特征匹配出错这个判断逻辑本身就是一套复杂的概率推理。2.3 算力被抗辐射要求锁死RAD750的200MHz主频和256MB内存在今天看来像是上个世纪的配置。但这不是技术落后而是抗辐射设计的必然代价。火星表面没有大气层和磁场的保护宇宙射线和太阳粒子事件会直接轰击芯片。普通商用处理器在这种环境下可能几分钟内就会发生位翻转甚至永久损坏。RAD750通过冗余设计、错误纠正码、物理屏蔽等手段把可靠性做到极高代价就是晶体管密度和主频被压得很低。所以毅力号的自动驾驶系统必须在“算力极其有限”这个前提下做设计。这跟地球上的自动驾驶公司堆Orin芯片、堆激光雷达的思路完全相反。它更像是在做一个极端的嵌入式系统优化问题每一帧图像的处理时间、每一次路径规划的迭代次数、每一个特征点的存储开销都要精打细算。3. 90%自主性背后的技术栈拆解3.1 视觉里程计与地形感知的流水线毅力号的自主导航系统叫AutoNav它的核心流水线可以粗略分成四步图像采集、特征提取与匹配、地形可通行性分析、路径规划与执行。导航相机是两台黑白相机安装在桅杆上基线距离约42厘米用来生成立体视觉。采集到的图像首先经过降噪和畸变校正然后提取Harris角点或类似的稀疏特征。特征匹配环节用的是光流法加RANSAC鲁棒估计。光流法假设相邻帧之间特征点的运动是平滑的通过最小化光度误差来估计位移。RANSAC用来剔除误匹配因为火星表面的重复纹理会产生大量错误对应。匹配完成后系统用三角测量计算特征点的三维坐标再通过帧间位姿变换累积出行驶轨迹。地形可通行性分析是另一个关键模块。系统会把立体视觉生成的点云转换成高程图然后计算每个网格的坡度、粗糙度、台阶高度等指标。坡度超过30度的区域标记为不可通行粗糙度超过阈值的区域标记为高风险。这些指标不是拍脑袋定的而是根据火星车的物理参数反推出来的轮径、轴距、离地间隙、电机扭矩共同决定了它能爬多陡的坡、能过多大的石头。3.2 路径规划的算力预算分配路径规划用的是类似D* Lite或A的图搜索算法在栅格化的高程图上寻找从当前位置到目标点的最优路径。但200MHz的处理器跑标准A在大型栅格图上会非常吃力所以实际系统做了大量优化。首先是栅格分辨率的选择太高会导致搜索空间爆炸太低会漏掉小障碍物。根据公开资料推测毅力号用的栅格分辨率大约在10到20厘米量级这个精度能识别出车轮直径量级的障碍。其次是搜索范围的限制。系统不会一次性规划几百米的路径而是分段规划每次只算前方十几米的范围。这样做的好处是计算量可控而且能及时响应新出现的障碍物。代价是可能陷入局部最优比如前方有一片大沙地分段规划可能把车引到沙地中央才发现走不通。为了解决这个问题系统会维护一个全局的粗略路径作为引导局部规划在这个引导下做细化。算力分配上视觉里程计和地形感知占了大头路径规划反而相对轻量。这是因为感知环节的数据量大、计算密集而规划环节经过栅格化和启发式搜索优化后实际迭代次数并不多。这个分配比例跟地球上的自动驾驶系统类似说明在资源受限条件下感知和规划的相对权重并没有本质变化。3.3 故障检测与安全回退机制自主性越高故障检测的重要性就越大。毅力号的AutoNav有一套多层级的故障检测逻辑。最底层是硬件层面的看门狗和错误纠正码检测处理器和内存的瞬时故障。中间层是传感器一致性检查比如视觉里程计和惯性测量单元的位姿估计如果偏差超过阈值系统会触发告警。最上层是行为层面的监控如果路径规划连续多次失败或者车辆实际运动与预期偏差过大系统会自动停车并等待地球指令。提示安全回退不是“系统崩溃后的补救”而是设计之初就嵌入的常规流程。火星车停车等待指令是预期内的操作不是异常。这套机制的关键在于阈值设定。阈值太松系统可能带着错误继续行驶阈值太紧火星车会频繁停车降低效率。根据任务团队公开的信息这些阈值是在地面测试场上用模拟火星地形反复调参得到的不是纯理论计算的结果。4. 老电脑上跑自动驾驶的工程取舍4.1 RAD750的性能边界与优化策略RAD750的200MHz主频意味着什么做个粗略对比一颗普通的树莓派4主频是1.5GHz四核内存4GB。RAD750的单核性能大约是树莓派的十分之一到二十分之一内存只有其十六分之一。在这种硬件上跑视觉里程计每一帧图像的处理时间可能达到秒级而地球上的自动驾驶系统要求毫秒级响应。优化策略主要有几个方向。第一是降低图像分辨率。导航相机的原始分辨率不低但用于视觉里程计时会降采样到较低分辨率减少特征提取的计算量。第二是限制特征点数量。不是提取所有可能的角点而是只保留响应值最高的几百个特征点够用就行。第三是复用计算结果。相邻帧之间的位姿变换有连续性可以用上一帧的结果作为初值减少迭代次数。这些优化在地球上的自动驾驶工程师看来可能过于保守但在火星场景下是必须的。因为一旦处理器过载整个导航流水线就会卡死火星车只能停车等待而停车意味着任务时间的浪费。4.2 内存管理256MB怎么够用256MB内存要同时容纳操作系统、导航软件、图像缓冲区、高程图、路径规划数据结构紧张程度可想而知。实际系统的做法是严格的分时复用图像采集时占用大块缓冲区处理完成后立即释放高程图用稀疏存储而不是稠密矩阵路径规划的数据结构用内存池预分配避免动态分配带来的碎片和延迟。另一个技巧是把不常用的数据和代码放在外部存储里需要时再加载。但火星车的存储读写速度也有限频繁换入换出会拖慢整体性能。所以系统设计者必须在“内存占用”和“访问速度”之间找平衡点。根据公开资料推测毅力号的导航软件在运行时实际占用的内存大约在100到150MB之间留出余量给操作系统和异常处理。4.3 实时性保障从毫秒到秒级的妥协地球上的自动驾驶系统对实时性的要求是硬实时的比如障碍物检测必须在100毫秒内完成否则刹车距离不够。火星车的速度极慢毅力号的最快行驶速度大约是每秒4厘米比乌龟还慢。这个速度下秒级的感知延迟完全可接受。所以AutoNav的设计不需要追求硬实时而是软实时每秒钟完成一次感知-规划-执行的循环就能保证安全。这个速度差异是理解火星自动驾驶的关键。很多人把地球上的自动驾驶技术直接套到火星场景觉得算力不够就做不了。但实际上火星车的低速运行大幅放宽了实时性约束使得低算力平台也能完成自主导航。这是一个典型的“场景定义技术需求”的案例。5. 实操验证与地面测试的完整流程5.1 地面测试场的搭建与标定在火星车发射之前任务团队在地球上搭建了多个模拟火星地形的测试场。这些测试场的土壤成分、岩石分布、坡度变化都尽量模拟火星表面的实际情况。测试场里会放置已知尺寸和位置的障碍物用来标定视觉系统的测距精度和地形分类的准确率。标定过程包括相机内参标定、立体视觉外参标定、惯性测量单元与视觉的联合标定。内参标定用棋盘格或圆点阵列计算焦距、主点、畸变系数。外参标定确定两个相机之间的相对位姿以及相机与惯性测量单元之间的坐标变换。联合标定则是在车辆运动过程中用视觉和惯性的数据互相校正估计出两者之间的时间延迟和空间偏移。注意标定参数会随着温度变化漂移火星表面的昼夜温差超过100摄氏度所以标定不是一劳永逸的系统需要在线估计并补偿这些漂移。5.2 模拟行驶与数据回放地面测试的一个重要方法是数据回放。团队会在测试场上采集大量行驶数据包括图像、惯性测量、轮速、电机电流等然后在实验室里用这些数据反复跑导航算法调整参数。数据回放的好处是可以精确复现每一个决策点分析算法在特定场景下的表现。回放过程中会重点关注几类场景沙地打滑、岩石密集区、陡坡边缘、光照剧烈变化。这些场景在地球上不容易同时出现但在火星上可能连续遇到。团队会人为构造这些场景的数据测试算法的鲁棒性。比如在图像数据里加入模拟的噪声和模糊测试特征提取的稳定性在惯性数据里加入漂移测试位姿估计的收敛性。5.3 在轨验证与参数迭代毅力号着陆后AutoNav并不是一开始就全功率运行的。任务团队会先让火星车在简单地形上行驶收集实际数据对比地面测试的结果。如果发现偏差会通过上传新参数或新代码来修正。这个过程是渐进的从低自主性逐步过渡到高自主性。在轨验证的一个关键指标是“自主行驶里程占比”。任务团队会记录每一段行驶中有多少是AutoNav自主决策的有多少是地球指令直接控制的。90%这个数字是累积统计的结果不是某一次行驶的瞬时值。随着任务推进团队对系统的信心增加自主行驶的占比也会逐步提高。6. 常见问题与排查技巧实录6.1 视觉里程计漂移的典型表现与处理视觉里程计漂移是火星车导航中最常见的问题。表现是火星车实际位置与系统估计位置逐渐偏离走的时间越长偏差越大。漂移的来源有几个特征匹配误差累积、轮子打滑导致运动模型失配、相机标定参数漂移。排查思路是分层定位。首先检查特征匹配的质量看匹配点对的数量和分布是否正常。如果匹配点集中在图像的一小块区域说明纹理不足漂移风险高。其次检查轮速计与视觉估计的一致性如果两者偏差持续增大说明打滑严重。最后检查标定参数用已知地标做验证看重投影误差是否在阈值内。处理手段包括降低行驶速度减少打滑、增加特征点数量提高匹配鲁棒性、用地球深空网络的测距数据做周期性校正。这些手段不是互斥的实际任务中会组合使用。6.2 路径规划失败的场景与回退策略路径规划失败通常发生在几种场景前方被大范围不可通行区域阻挡、高程图数据质量差导致可通行性判断错误、目标点位于规划范围之外。系统检测到规划失败后会先尝试扩大搜索范围如果仍然失败会触发停车并请求地球指令。回退策略的设计原则是“宁可停车不可冒险”。火星车一旦陷入沙地或翻车救援几乎不可能。所以系统在不确定的情况下会选择保守。这跟地球上的自动驾驶策略不同地球上可以靠安全员接管火星上只能靠系统自己判断。提示路径规划失败不一定是算法问题也可能是地形确实不可通行。任务团队会分析失败时的图像和高程图判断是算法需要改进还是地形本身超出设计边界。6.3 算力过载的预防与恢复算力过载的表现是导航循环的周期变长从正常的每秒一次变成几秒一次。如果过载持续系统可能错过障碍物检测的窗口导致碰撞风险。预防措施包括限制同时运行的任务数量、降低图像处理的分辨率、暂停非关键的日志记录。恢复策略是分级降载。第一级是降低感知频率从每秒一次降到每两秒一次。第二级是简化路径规划从全局搜索降级为局部避障。第三级是暂停自主导航切换回地球指令模式。这些降级策略在地面测试中会反复演练确保切换过程平滑。7. 从毅力号看资源受限系统的设计哲学7.1 场景定义需求而不是技术驱动场景毅力号的自动驾驶系统没有追求最先进的算法而是选择了最匹配场景的方案。视觉里程计是上世纪就有的技术A和DLite也是经典算法但它们在火星场景下经过精心调优后表现出了极高的可靠性。这给做嵌入式系统和边缘计算的从业者一个启示不要盲目追新先搞清楚场景的真实约束是什么。火星场景的核心约束是通信延迟、算力限制、不可维修。这三个约束推导出的设计原则是自主性优先、算力精打细算、安全回退必须可靠。地球上的自动驾驶公司如果面对类似的约束比如深海探测器、核电站巡检机器人、偏远地区的无人值守设备也可以借鉴这套思路。7.2 可靠性来自冗余和验证不是来自单点性能RAD750的性能很低但它的可靠性极高。这种可靠性不是靠单点性能堆出来的而是靠冗余设计、错误纠正、严格测试。毅力号的导航系统也是同样的逻辑视觉里程计可能漂移但有惯性测量单元和地球测距做校正路径规划可能失败但有安全回退机制兜底。这种设计哲学对做关键任务系统的工程师很有参考价值。不要指望某一个模块做到完美而是要让整个系统在部分模块失效时仍能安全运行。这跟互联网系统的设计思路不同互联网系统可以靠快速迭代和热修复火星车没有这个机会。7.3 90%自主性的真正含义90%这个数字容易被误解为“技术很先进”。但更准确的理解是在火星这个特定场景下90%的行驶决策可以由车载系统安全完成剩下10%需要地球介入。这10%不是系统做不到而是任务团队出于安全考虑主动保留的。比如复杂地形穿越、科学目标附近的精细操作这些场景下人工判断仍然优于自主系统。所以90%不是一个技术上限而是一个工程平衡点。随着任务推进和数据积累这个比例可能提高也可能因为遇到更复杂的地形而降低。重要的是系统具备在自主和遥控之间平滑切换的能力而不是追求一个固定的自主性指标。8. 对地面嵌入式开发的借鉴意义8.1 低算力平台上的视觉SLAM优化技巧如果你在做基于低算力平台的视觉SLAM比如用树莓派或Jetson Nano做机器人导航毅力号的优化思路可以直接借鉴。首先是特征点数量的控制不要追求提取所有角点而是根据算力预算设定上限。其次是图像分辨率的动态调整在纹理丰富的区域用高分辨率在纹理稀疏的区域降分辨率。第三是关键帧的选择策略不是每一帧都做完整的位姿估计而是选择信息量大的帧做优化。这些技巧在地面机器人上同样有效。我试过在树莓派4上跑ORB-SLAM3默认配置下帧率只有5到8帧每秒经过特征点限制和分辨率降采样后能跑到15帧以上精度损失在可接受范围内。8.2 安全回退机制的设计模式安全回退机制的设计可以总结为一个模式检测-降级-恢复。检测层负责发现异常降级层负责切换到更保守的运行模式恢复层负责在异常消除后回到正常模式。这个模式在火星车、工业机器人、自动驾驶上都是通用的。实现时的关键点是降级策略要分级不能只有“正常”和“停车”两个状态。中间状态比如“降低速度”“简化规划”“增加安全距离”能让系统在异常情况下继续运行而不是直接停摆。这对于需要连续运行的系统尤其重要。8.3 从火星车到地面无人系统的迁移路径火星车的技术栈迁移到地面无人系统最大的障碍不是算法而是场景差异。火星场景的通信延迟和算力限制在地面上不常见但地面系统有自己的约束动态障碍物、非结构化环境、成本限制。迁移时需要重新定义约束条件然后调整设计参数。比如火星车的路径规划假设地形是静态的地面系统需要处理移动的行人和车辆。火星车的视觉里程计假设光照变化缓慢地面系统需要处理隧道进出口的剧烈光照变化。这些差异意味着不能直接照搬代码但设计思路和优化方法是可以迁移的。9. 实操心得与避坑清单9.1 标定与校准的常见坑做视觉导航系统标定是最容易出问题也最容易被忽视的环节。我踩过的坑包括标定板不平整导致内参误差、标定环境光照不均匀导致角点检测偏移、相机和惯性测量单元的时间戳不同步导致联合标定失败。这些问题在地面测试时可能不明显但在实际运行中会逐渐累积成显著误差。建议的做法是标定板用高精度打印或金属板标定环境用均匀漫射光源时间戳用硬件触发同步。标定完成后用独立的验证集检查重投影误差误差超过0.5像素就要重新标定。9.2 算力预算的估算方法算力预算不能拍脑袋要用实际测量。方法是先写出算法的计算流程然后逐模块测量在目标平台上的耗时。比如特征提取用100毫秒匹配用50毫秒位姿估计用30毫秒那么单帧总耗时180毫秒理论上每秒能处理5帧。但实际运行中会有内存分配、缓存失效、中断处理等开销所以实际帧率可能只有理论值的60%到70%。估算时要留出至少30%的余量因为实际场景的数据分布可能比测试数据更复杂。如果余量不足就要考虑降级策略比如降低分辨率或减少特征点数量。9.3 长期运行的系统维护经验火星车的导航系统需要连续运行数年地面系统可能也需要数月甚至数年的连续运行。长期运行的系统维护有几个要点日志要精简但关键信息不能丢、参数要可远程更新、异常要能自动恢复。日志方面不要记录每一帧的完整数据而是记录关键指标和异常事件。比如每秒钟记录一次位姿估计的置信度每十分钟记录一次累积漂移量。参数更新方面设计一个安全的参数上传和验证流程新参数先在仿真环境验证再逐步推送到实际系统。异常恢复方面设计多级看门狗从进程级到系统级逐层兜底。10. 后续可扩展的方向这套自主导航架构的扩展方向有几个。一是多传感器融合加入激光雷达或毫米波雷达提高地形感知的精度但需要考虑算力开销和抗辐射设计。二是学习-based的方法用轻量级神经网络替代部分手工设计的特征提取和地形分类模块但需要解决训练数据不足和推理算力受限的问题。三是多车协同多台火星车共享地图和路径规划结果提高整体任务效率。这些方向目前还处于研究阶段距离工程化还有距离。但毅力号的成功验证了一个基本判断在极端资源约束下经典算法经过精心优化后仍然能发挥巨大价值。这个判断对地面上的嵌入式系统和边缘计算同样适用。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑