上一篇谈到自动化与自主性的差别,自动化把不确定性从环境里移除,自主性需要系统在复杂环境中运作,两者最大的差异,是自主机器人得走进没有事先整理过的环境中完成工作,机器得知道自己在哪里、周围环境状况,还要在执行任务的同时,安全、有效率地在场域中移動。
背后的关键技术,是SLAM(Simultaneous Localization and Mapping),机器要一边定位,一边把环境画成地图。
自驾产业是最早把高精地图变成关键元件的产业之一。许多无人出租車进入一个新城市时,第一件事仍是先完成街道测绘,建立地区(高精)地图后才开始营运。
地图要多精细是一个成本问题。车辆定位,可以只保留道路曲率、车道线、路标、号志或路缘等少数稳定特征,让车辆拿眼前看到的特征与地图对位;也可以更细致地把车道线、路缘、号志、与街景都定位到厘米级。愈精细,定位愈准,维护成本也愈高。量产车开发实务中,图的更新频率是关键,而施工、标线重画、号志调整甚至车祸随时在发生,地图一旧反而会引发自驾导航风险。
另外是谁来更新。早期地图靠专用测绘车(配备昂贵定位设备),一条路一条路测绘,巷弄密集更费时,更新频率决定新鲜度,成本与涵盖范围、频率成正比。后来导入分散式(crowd-sourcing)的做法,让已经在路上跑的量产车顺手做,行驶中回传道路特征,每臺车每公里约几KB,1年约几百MB,后端把众多车辆的信息融合拼出道路结构。车愈多扫过,地图品质愈好。
那机器人呢?如何定位,如何动态建图,还有哪些全新应用?
问题是,要定位,得先有图;要画图,又得先知道自己在哪里(而且室内不能用卫星信號定位)。两件事互相依赖,像是鸡生蛋、蛋生鸡。SLAM针对这个问题,同时估算两者,边走边修,这个概念1980年代后期提出,1990年代中期定名,到现在40年。
机器先从连续的画面或点云估算自己移动了多少,这一步的误差会累积,走得愈远偏得愈多。所以还要能认出「我回到刚才来过的地方」,一旦认出来,累积的偏差就能一次修正,再把沿路所有位置和观测一起重新最佳化,让前面累积的误差重新分配;在视觉SLAM里,常见的做法就是bundle adjustment。重新开机或搬移之后,机器还得在既有地图里重新定位。这几件事分别叫做里程计(odometry)、回路闭合(loop closure)与重定位(relocalization),要长时间、大范围运作,通常得三者一起解决。
要多准,傳感器的信號也扮演关键角色。激光雷達直接量到距离,几何结构最明确,定位通常也较容易;鏡頭便宜且信息丰富,但深度需要额外估计。深度鏡頭每个像素都有距离,有效范围却多半在几米内,室外也容易受光线干扰。实际的系统几乎都是混用,再补上轮速。
高度是另一个长期被忽略的问题。早期室内SLAM常见的做法,是把环境简化成一张二维地图,只记录同一个平面上有没有障碍物,当成整个空间能不能走的依据,对轮式机器人够用,因为它只在同一个楼层的地面上移动。当机器人的移动自由度开展,上坡、跨门槛、爬楼梯、完成抓取任务之后,这个假设就不管用了,能不能踩、碰撞,都得从立体结构判断。地图因此得从二维变成3D,傳感器与运算也跟著加重,避障也得算进高度,毕竟真实环境不是干净、规整的,桌面上有杯子,地上散落著鞋子。
更大的变化是地图的表示方式正在改变。传统SLAM多半记录稀疏特征或几何结构,神经辐射场(NeRF)与3D Gaussian Splatting(3DGS)等新的场景表示方法,则让机器开始保存更完整的3D外观与空间信息;与SLAM结合后,一般鏡頭也能在移动过程中逐步建立细致的3D场景。我们在2023年就用单眼鏡頭做过这件事,而且不必为每个场景预先训练。
新一代SLAM纪录下的,不再只是2D照片或没有空间结构的视讯,而是數字化的3D环境。密集的3D图有很多非常有潜力的运用,特别是加上推理能力,但这些运算多半得放在机器人身上完成,边缘端的算力与储存还是限制,例如工地或产线的进度比对、资产盘点与异常侦测、生成训练數據,或是产生數字分身。因此,Physical AI时代重新看SLAM,重点已经不只是「怎么把图画准」,而是「怎么把真实世界变成AI可以持续读取、更新与推理的空间记忆」,这是下一篇要谈的重点。
图建好了,然后呢?传统SLAM的任务到这里差不多就完成,地图交给路径规划,机器人照著走。对Physical AI来说,这才是开始。导航、记忆,以及推理等各种自主效能力,都要从这张图长出来。