工业视觉AI

占据栅格网络:3D 体素感知如何解决通用避障难题

「具身智能落地实战」系列第 6 篇
前几篇我们拆解了具身机器人的硬件、VLA 大脑、SLAM 空间认知和控制架构。但机器人在真实环境中移动时,有一个最基本的需求:「别撞到东西」。传统的 2D 避障在复杂三维环境中捉襟见肘,而占据栅格网络(Occupancy Grid Network)提供了一种全新的 3D 空间感知范式。本文从基本原理、技术演进、工程挑战三个维度,拆解占据栅格网络如何让机器人「心中有一幅三维地图」,从而在复杂环境中灵活避障和导航。


引言:从「平面避障」到「三维感知」

如果你用过扫地机器人,可能会遇到这样的场景:机器人走到一个凳子旁边,明明凳子的腿很细,但机器人就是「看不到」,反复碰撞后才绕开。或者,机器人走到一个悬空的桌子下面,桌子上方是空的,但机器人以为整个区域都被占据了,不敢通过。

这些问题的根源在于:传统机器人的避障大多基于 2D 平面感知——把三维环境投影到一个平面上,只关心「这个平面位置有没有障碍物」。但真实环境是三维的,有高有低、有悬空有落地、有细腿有粗墙,2D 投影丢失了大量空间信息,导致避障能力有限。

要解决这个问题,机器人需要真正的「三维空间感知」——不仅知道「哪里有障碍物」,还知道「障碍物在什么高度、什么形状、占了多大体积」。这就是占据栅格网络(Occupancy Grid Network,也叫占据网络、神经辐射场占据等)要解决的问题。

占据栅格网络的核心思想很直观:把三维空间划分为一个个小立方体(体素,Voxel),然后预测每个体素是「被占据」还是「空闲」,从而构建一幅完整的三维占据地图。 有了这幅地图,机器人就知道空间中哪些地方可以走、哪些地方不能走,甚至可以从悬空的桌子下面、狭窄的缝隙中灵活通过。

近年来,随着 Tesla FSD、Figure 02、Unitree G1 等人形机器人和自动驾驶方案的采用,占据栅格网络已经从学术研究走向了工业落地,成为 3D 空间感知的新范式。


一、从 2D 栅格到 3D 占据:空间感知的演进

要理解占据栅格网络,先要理解它的「前身」——2D 占据栅格地图。

1.1 2D 占据栅格地图:传统机器人的「平面图」

2D 占据栅格地图(2D Occupancy Grid Map)是传统移动机器人最常用的环境表示方式。

基本原理:

  • 将机器人运动的平面(通常是地面)划分为均匀的网格(如 5cm × 5cm 的格子)
  • 每个格子有一个状态值,表示该位置被障碍物占据的概率(0 = 完全空闲,1 = 完全占据,0.5 = 未知)
  • 通过激光雷达或超声波传感器的数据,实时更新每个格子的占据概率

优点:

  • 简单直观,计算量小
  • 适合轮式机器人在平面上的导航和避障
  • 有成熟的算法和实现(如 GMapping、Hector SLAM、Cartographer 都输出 2D 栅格地图)

缺点:

  • 只关心平面,丢失了高度信息——不知道障碍物有多高,也不知道悬空区域是否可通过
  • 细腿障碍物(如凳子腿、桌子腿)在 2D 投影中占比很小,容易被忽略
  • 无法处理需要三维空间推理的场景(如从桌子下面通过、绕过悬空的障碍物、上下楼梯)

对于在平面上移动的轮式机器人(如扫地机器人、AGV),2D 栅格地图基本够用。但对于人形机器人、四足机器人、无人机等需要三维空间运动的机器人,2D 栅格地图就远远不够了。

1.2 3D 点云地图:「有形状但没语义」

比 2D 栅格更进一步的是 3D 点云地图——用大量三维点表示环境的几何形状(系列第 3 篇 SLAM 中提到过)。

基本原理:

  • 通过激光雷达或深度相机获取环境的 3D 点云
  • 将多帧点云根据机器人位姿拼接,形成完整的 3D 点云地图
  • 每个点有三维坐标,可能还有颜色、强度等属性

优点:

  • 保留了完整的三维几何信息,精度高
  • 可以表示任意形状的障碍物
  • 适合三维重建、数字孪生等应用

缺点:

  • 点云是「稀疏」的——只有传感器扫描到的表面有点,物体内部和未扫描到的区域没有点,无法判断是「占据」还是「空闲」
  • 点云数据量大,存储和计算成本高
  • 点云没有「占据/空闲」的明确状态,用于避障时需要额外处理(如将点云投影到 2D、或做距离查询)
  • 动态物体处理困难——移动的人或物会在点云中留下「残影」

点云地图适合做「三维重建」和「高精度定位」,但直接用于避障和导航并不高效——机器人需要知道的是「这个空间能不能走」,而不是「这个空间有哪些点」。

1.3 占据栅格网络:「每个体素都有状态」

占据栅格网络(Occupancy Grid Network)结合了 2D 栅格地图的「状态明确」和 3D 点云的「三维信息」,是一种更适合机器人避障和导航的 3D 空间表示。

基本原理:

  • 将三维空间划分为均匀的体素(Voxel,三维立方体,如 10cm × 10cm × 10cm)
  • 用神经网络预测每个体素的状态:被占据(Occupied)、空闲(Free)、未知(Unknown)
  • 可以进一步预测每个体素的语义类别(这是墙、这是桌子、这是人),即「语义占据」
  • 输入可以是单目图像、多目图像、点云、或多传感器融合,输出是 3D 占据栅格

与 2D 栅格地图的区别:

  • 2D 栅格是平面的,3D 占据栅格是立体的
  • 2D 栅格通常用经典概率方法更新,3D 占据栅格通常用神经网络预测
  • 2D 栅格只有占据概率,3D 占据栅格可以有语义信息

与 3D 点云的区别:

  • 点云是「表面表示」——只有物体表面有点,内部未知
  • 占据栅格是「体积表示」——每个体素都有明确的占据/空闲状态,物体内部也被标记为占据
  • 点云数据量随场景复杂度变化,占据栅格数据量固定(取决于体素分辨率和空间范围)

工程视角: 占据栅格网络的核心价值在于「把三维空间变成了机器人可以直接用于决策的状态表示」。有了 3D 占据栅格,机器人不需要再做「点云→2D投影→避障」的间接转换,而是直接查询「我要走的路径上,哪些体素被占据了」,从而快速判断是否可以通过。这对于人形机器人尤其重要——人形机器人需要判断「桌子下面能不能钻过去」「缝隙够不够宽」「头顶会不会撞到东西」,这些都需要三维空间信息,2D 栅格地图根本做不到。


二、占据栅格网络的核心技术

占据栅格网络不是一个单一算法,而是一类技术的统称。以下是几个核心技术方向。

2.1 体素化与占据预测

体素化(Voxelization) 是占据栅格网络的基础——把连续的三维空间离散化为均匀的体素网格。

关键参数:

  • 体素分辨率:每个体素的大小(如 5cm、10cm、20cm)。分辨率越高,地图越精细,但计算量和存储量越大
  • 空间范围:需要预测的三维空间大小(如以机器人为中心的 10m × 10m × 3m 范围)
  • 状态表示:每个体素的状态可以是二值(占据/空闲)、概率(0-1 的占据概率)、或语义类别(多分类)

占据预测网络通常采用编码器-解码器架构:

  • 编码器:提取输入传感器数据(图像、点云)的特征
  • 解码器:将 2D 特征「提升」到 3D 空间,预测每个体素的占据状态
  • 常见的 3D 解码器包括:3D 卷积、体素 Transformer、可微渲染、三平面(Tri-plane)表示等

2.2 从 2D 图像到 3D 占据:单目占据预测

最有挑战性也最有实用价值的方向是单目占据预测——只输入一张单目摄像头图像,预测三维空间的占据栅格。

为什么有价值?因为单目摄像头成本最低、安装最简单、体积最小,如果只用单目就能预测 3D 占据,将大幅降低机器人的感知成本。

为什么有挑战?因为单目图像丢失了深度信息,网络需要「想象」出三维空间的结构——这就像人类用一只眼睛也能大致判断空间结构,但需要大量的先验知识。

典型方法:

  • 2D 特征提升:先用 2D 卷积提取图像特征,然后通过「特征提升」模块(如 Lifting、Voxel Transformer)将 2D 特征映射到 3D 体素空间
  • 三平面表示(Tri-plane):不直接预测 3D 体素,而是预测三个正交平面的特征图,通过三平面插值查询任意 3D 点的特征,大幅减少计算量(特斯拉 FSD 采用的方案)
  • 神经辐射场(NeRF):用神经辐射场表示三维空间,通过可微渲染训练,预测空间中任意点的密度和颜色
  • 生成式模型:用扩散模型等生成式方法,从单目图像「生成」合理的 3D 占据结构

代表工作:

  • OccNet(特斯拉,2023):基于三平面表示的单目占据预测网络,用于自动驾驶
  • OpenOccupancy:开源的自动驾驶占据预测基准和方法
  • UniOcc:统一的单目和多目占据预测网络
  • SparseOcc:稀疏占据预测,减少计算量

2.3 多传感器融合占据预测

除了单目,还可以用多传感器融合来预测占据栅格,提升精度和鲁棒性。

常见的融合方案:

  • 多目摄像头:多个视角的图像提供更多几何约束,提升深度预测精度
  • 摄像头 + 激光雷达:摄像头提供语义和纹理,激光雷达提供精确深度,两者融合
  • 摄像头 + IMU + 轮速计:利用运动信息辅助三维结构预测
  • 多帧时序融合:融合连续多帧图像,利用运动视差提升深度估计,同时处理动态物体

多传感器融合的占据预测精度更高,但系统复杂度和成本也更高。在实际项目中,需要根据精度需求和成本预算选择合适的传感器配置。

2.4 语义占据:从「有没有」到「是什么」

基本的占据栅格只告诉机器人「这里有没有障碍物」,但机器人还需要知道「这是什么障碍物」——是墙、是桌子、是人、还是其他机器人?这就是语义占据(Semantic Occupancy)

语义占据在每个体素的占据状态基础上,增加了语义类别预测。输出的不再是「占据/空闲」二值,而是「墙/地板/天花板/桌子/椅子/人/车/未知」等多分类。

语义占据的价值:

  • 智能避障:不同类别的障碍物有不同的避障策略——人需要保持安全距离并预测其运动,桌子可以从下面通过,墙必须绕开
  • 任务规划:VLA 模型需要知道环境中有哪些物体、在哪里,才能根据语言指令生成正确的动作(如「把桌子上的杯子拿给我」)
  • 动态物体处理:识别出「人」「车」等动态物体,可以单独跟踪和预测其运动,避免在占据地图中留下「残影」
  • 人机交互:识别人的位置和姿态,实现安全的人机协作

语义占据是连接「空间感知」和「任务决策」的桥梁——它让机器人不仅知道「空间长什么样」,还知道「空间里有什么」,从而做出更智能的决策。

2.5 时序占据与动态物体处理

真实环境是动态的——人在走、车在动、门在开关。静态的占据栅格无法处理动态物体,需要时序占据(Temporal Occupancy)

时序占据融合连续多帧的传感器数据和机器人运动信息,预测随时间变化的占据栅格,包括:

  • 动态物体检测与跟踪:识别并跟踪场景中的动态物体,预测其未来运动轨迹
  • 静态背景重建:剔除动态物体,重建稳定的静态背景占据地图
  • 未来占据预测:根据动态物体的运动趋势,预测未来几秒的占据栅格,用于前瞻性避障

时序占据是占据栅格网络从「感知」走向「预测」的关键一步——机器人不仅知道「现在哪里有障碍物」,还能预测「未来哪里会有障碍物」,从而提前规划避障路径。


三、占据栅格网络的工程挑战

占据栅格网络虽然前景广阔,但从算法到工程落地还有不少挑战。

3.1 算力与延迟:三维预测的「成本」

三维占据预测的计算量远大于 2D 感知——一个 10m × 10m × 3m 的空间,用 10cm 体素分辨率,就有 30 万个体素需要预测。如果分辨率提高到 5cm,体素数量增加到 240 万个。

算力挑战:

  • 3D 卷积的计算量是 2D 卷积的数倍甚至数十倍
  • 高分辨率体素预测需要大量显存和计算资源
  • 机器人边缘设备的算力有限(如 RK3588 只有 6 TOPS,Orin 有 275 TOPS),难以实时运行高分辨率 3D 占据网络

延迟挑战:

  • 机器人避障需要低延迟感知——从传感器数据输入到占据栅格输出,延迟最好在 50ms 以内
  • 复杂的 3D 占据网络推理延迟可能达到几百毫秒,无法满足实时避障需求

应对策略:

  • 降低分辨率:在保证避障精度的前提下,使用较低的体素分辨率(如 10-20cm)
  • 稀疏预测:只预测机器人周围可能用到的区域(如前方扇形区域),而不是全空间预测
  • 三平面/混合表示:用三平面、哈希表等高效表示替代密集 3D 体素,减少计算量
  • 模型压缩:量化、蒸馏、剪枝,减小模型体积和推理延迟
  • 硬件加速:使用支持 3D 卷积的 NPU/GPU,或设计专用的占据预测加速电路

工程视角: 占据栅格网络的工程落地,核心是在「精度」和「成本」之间找平衡。10cm 分辨率的占据栅格,对于人形机器人避障来说基本够用——能识别桌子腿、能判断缝隙宽度、能检测悬空障碍物。但如果要做精细操作(如抓取、装配),10cm 就太粗了,需要更高分辨率或结合其他感知手段。在实际项目中,建议先用低分辨率验证算法可行性,再根据需求逐步提升分辨率,不要一开始就追求「厘米级」精度导致算力和延迟不可接受。

3.2 数据标注:三维占据的「 ground truth 」难题

训练占据栅格网络需要大量标注数据,但三维占据的 ground truth 获取非常困难。

为什么难?

  • 三维空间的占据状态无法直接「标注」——你不能像标注 2D 边界框那样,在三维空间中手工框出每个物体
  • 通常需要用高精度激光雷达扫描环境,构建点云,然后将点云「膨胀」为占据栅格作为 ground truth
  • 但激光雷达也有盲区(如透明物体、黑色吸光物体、远处小物体),构建的 ground truth 本身就有误差
  • 动态物体的占据标注更困难——需要区分静态背景和动态物体,还需要预测未来运动

应对策略:

  • 仿真数据生成:在仿真环境中自动生成精确的占据 ground truth(系列第 4 篇 Sim-to-Real),用大规模仿真数据预训练
  • 弱监督/自监督:利用多视图几何、深度估计、运动一致性等自监督信号,减少对人工标注的依赖
  • 激光雷达自动标注:用高精度激光雷达自动生成占据标签,用于训练摄像头-based 的占据网络
  • 主动学习:让模型主动选择「最不确定」的场景进行人工标注,提升标注效率

3.3 透明/反光/黑色物体:感知的「盲区」

占据栅格网络的输入通常是摄像头或激光雷达,但这些传感器对某些物体有「感知盲区」:

  • 透明物体(玻璃、透明塑料):摄像头能看到但深度估计不准,激光雷达可能穿透或反射异常
  • 反光物体(镜子、金属表面):摄像头会有高光和反射,激光雷达反射异常
  • 黑色吸光物体:激光雷达反射率低,可能检测不到
  • 细小物体(电线、细杆):体素分辨率不够时可能被忽略
  • 悬空物体(悬挂的电线、吊灯):2D 投影中可能被忽略,3D 占据中需要专门检测

这些「盲区」物体在工业场景中可能造成安全隐患——比如机器人没检测到悬空的电线,头部撞上去;没检测到透明的玻璃门,直接撞上去。

应对策略:

  • 多传感器融合:摄像头 + 激光雷达 + 超声波 + 触觉,多种传感器互补,减少盲区
  • 专门的小物体/透明物体检测:针对特定难检测物体,训练专门的检测模型
  • 保守的安全裕度:在占据栅格中对不确定区域做「膨胀」处理,增加安全距离
  • 物理接触兜底:在机器人外壳安装碰撞检测传感器,万一感知漏检,物理碰撞也能触发紧急停止

3.4 与 SLAM 和导航的集成

占据栅格网络不是孤立的,它需要与 SLAM(定位与建图)和导航系统深度集成。

与 SLAM 的关系:

  • SLAM 提供机器人的位姿(我在哪),占据栅格提供环境的状态(周围有什么)
  • 两者可以协同——SLAM 的位姿用于多帧占据栅格的融合,占据栅格可以作为 SLAM 的地图表示
  • 语义占据可以辅助 SLAM 的回环检测和动态物体剔除

与导航的关系:

  • 占据栅格是路径规划和避障的输入——规划器在占据栅格上搜索无碰撞路径
  • 3D 占据栅格支持三维空间的路径规划(如人形机器人从桌子下面通过、无人机在三维空间中飞行)
  • 时序占据和未来占据预测支持前瞻性避障——提前规划避开动态物体

集成挑战:

  • 占据栅格的坐标系需要与 SLAM 和导航的坐标系精确对齐
  • 占据栅格的更新频率需要与导航的规划频率匹配
  • 占据栅格的不确定性需要传递给导航系统,用于风险感知规划

四、占据栅格网络的应用场景

4.1 人形机器人

人形机器人是占据栅格网络最典型的应用场景。人形机器人需要在复杂的三维环境中行走、操作、交互,2D 栅格地图完全不够用。

具体应用:

  • 三维避障:检测悬空障碍物(吊灯、电线)、低矮障碍物(台阶、门槛)、细腿障碍物(桌子腿、椅子腿),实现灵活避障
  • 通过性判断:判断桌子下面能不能钻过去、门缝够不够宽、楼梯能不能上
  • 全身运动规划:在三维占据栅格上规划全身运动轨迹,避免手臂、腿部、头部碰撞
  • 人机协作安全:识别人的位置和姿态,保持安全距离,预测人的运动趋势

代表:Figure 02、Tesla Optimus、Unitree G1 等人形机器人都在采用或探索占据栅格网络。

4.2 自动驾驶

自动驾驶是占据栅格网络的另一个重要应用场景,也是目前技术最成熟的领域。

具体应用:

  • 三维环境感知:感知道路、车辆、行人、障碍物的三维占据状态
  • 可行驶区域检测:判断哪些区域可以行驶,哪些区域被占据
  • 动态物体预测:预测其他车辆和行人的未来运动轨迹
  • 无保护左转、拥堵路段通行:基于精细的三维占据预测,实现复杂场景的决策

代表:特斯拉 FSD(采用三平面占据网络)、小鹏、理想、蔚来等自动驾驶方案都在探索占据栅格网络。

4.3 四足机器人

四足机器人需要在复杂地形(楼梯、碎石、草地)中行走,也需要三维空间感知。

具体应用:

  • 地形感知:感知地面的高度变化、障碍物分布,规划足端落点
  • 三维避障:检测低矮障碍物(树枝、石块)和悬空障碍物,避免碰撞
  • 动态平衡:结合占据栅格和 IMU 数据,实现复杂地形上的动态平衡
  • 巡检任务:在工业场景中巡检,检测设备异常和环境风险

4.4 无人机

无人机在三维空间中飞行,天然需要三维占据感知。

具体应用:

  • 三维避障:检测树木、电线、建筑等障碍物,实现三维空间避障
  • 室内导航:在室内复杂环境中导航,检测墙壁、家具、人
  • 穿越机竞速:在复杂的三维赛道中高速飞行,需要实时、低延迟的占据感知
  • 测绘与巡检:构建三维占据地图,用于测绘、巡检、数字孪生

4.5 工业场景

在工业场景中,占据栅格网络可以提升机器人的灵活性和安全性。

具体应用:

  • 柔性制造:在非结构化的产线环境中,机器人需要感知变化的工件和障碍物
  • 人机协作:识别人的位置和姿态,实现安全的人机协作
  • 仓储分拣:在复杂的仓储环境中,机器人需要感知货架、货物、人员,实现灵活导航和分拣
  • 危险环境作业:在核辐射、化工等危险环境中,机器人需要精确感知环境,避免碰撞导致安全事故

五、总结

占据栅格网络是 3D 空间感知的新范式,它让机器人从「平面避障」走向「三维感知」,从「知道哪里有障碍物」走向「知道障碍物的三维形状和语义」。

核心要点回顾:

  1. 演进路径:从 2D 占据栅格(平面、简单)→ 3D 点云(三维、稀疏)→ 占据栅格网络(三维、体素化、有状态),空间表示不断进化
  2. 核心技术:体素化与占据预测、单目/多目占据预测、多传感器融合、语义占据、时序占据与动态物体处理
  3. 工程挑战:算力与延迟(三维预测成本高)、数据标注(三维 ground truth 难获取)、透明/反光/黑色物体感知盲区、与 SLAM 和导航的深度集成
  4. 应用场景:人形机器人、自动驾驶、四足机器人、无人机、工业柔性制造与人机协作

占据栅格网络不是一个「已经成熟」的技术,而是一个「快速发展」的方向。随着算力提升、算法优化、数据积累,占据栅格网络的精度会越来越高、延迟会越来越低、成本会越来越便宜。未来,它可能成为机器人的「标准感知模块」——就像今天的 2D 激光雷达避障一样普遍。

对于具身智能来说,占据栅格网络是连接「感知」和「行动」的关键桥梁——只有真正理解了三维空间,机器人才能在复杂环境中灵活、安全、智能地行动。


关于作者: 越微智能(Yuewell)专注具身智能与工业 AI 视觉落地,基于自研 VLA 多模态大模型,提供全品牌机器人二次开发(适配宇树/优必选/智元/傅利叶)与工业级视觉算法定制,结合 3D 空间感知与语义理解,支持从算法、硬件到产线实机部署的全栈交付。
下一篇预告: 《机器人定位传感器全解:IMU、轮速计与多传感器融合》,我们将拆解机器人的「内耳」和「脚感」——IMU 和轮速计如何工作,以及它们如何与视觉/激光融合实现高精度定位,敬请关注。