3. 场景图基本概念
在机器人3D场景图建模中,场景图(Scene Graph)是最核心的数据组织方式。它把机器人感知到的三维世界,从“一堆点云、网格或检测框”提升为“带有语义、层次和空间关系的结构化地图”。理解节点、边、层次结构、语义关系与空间关系,是后续建图、定位、导航和任务规划的基础。
一、核心原理:场景图是什么
场景图本质上是一种图结构,由节点(Node)和边(Edge)组成。节点表示场景中的实体或概念,例如机器人、房间、桌子、杯子、门、充电桩;边表示实体之间的关系,例如“位于”“属于”“连接”“支撑”“靠近”“可通行”。
与普通拓扑地图不同,场景图不仅记录“哪里有什么”,还记录“它是什么”“它和谁有关系”“它在哪个层级”。因此,场景图同时承载几何信息、语义信息与关系信息,是机器人理解环境的中间表示。
二、节点与边:场景图的基本单元
节点是场景图中的实体抽象。一个节点通常包含:唯一ID、类别标签、几何位姿、包围盒或点云范围、置信度、时间戳等。例如:
Node(id="chair_01",
label="chair",
pose=[x, y, z, qx, qy, qz, qw],
bbox=[dx, dy, dz],
confidence=0.92,
timestamp=1710000000)
边描述节点之间的关系。边可以是有向的,也可以是无向的;可以带权重、距离、概率或约束。常见边类型包括:
- 空间关系边:left_of、right_of、above、below、near、inside、on。
- 语义关系边:is_a、part_of、belongs_to、used_for。
- 拓扑关系边:connected_to、adjacent_to、reachable_from。
- 层次关系边:parent_of、child_of、contains。
节点和边共同构成一张“可查询、可推理、可更新”的环境图。机器人可以通过图查询快速回答:“厨房里有哪些可移动物体?”“从客厅到卧室经过哪些门?”
三、层次结构与语义关系
场景图通常采用层次结构组织。顶层可以是建筑或楼层,中间层是房间或区域,底层是家具、物体和机器人自身。层次结构让地图既能在宏观上导航,也能在微观上操作。
例如:
- Building → Floor → Room → Furniture → Object
- Robot → Sensor → Observation → Object Node
语义关系则让节点之间具备“意义”。例如“杯子在桌子上”不仅是空间关系,也隐含“杯子可被拿起”“桌子支撑杯子”的语义。语义关系使机器人能够进行常识推理和任务分解。
四、空间关系:几何与拓扑的桥梁
空间关系是场景图区别于普通知识图谱的关键。它把三维几何信息转化为可计算的关系。常见空间关系包括:
| 关系类型 | 示例 | 机器人用途 |
|---|---|---|
| 距离关系 | near、far | 避障、抓取候选筛选 |
| 方向关系 | left_of、above | 语言指令理解 |
| 包含关系 | inside、contains | 区域搜索、物品查找 |
| 支撑关系 | on、support | 放置规划、稳定性判断 |
| 连通关系 | connected_to | 路径规划、门检测 |
这些关系通常由几何计算得到,例如通过包围盒相交、点云分割、平面检测或图神经网络推理。空间关系越准确,场景图对机器人越有用。
五、场景图在机器人中的作用
场景图在机器人系统中承担“环境理解中枢”的角色,主要作用包括:
- 统一表示:把激光、相机、IMU、语义分割结果统一到一张图中。
- 语义查询:支持“找到厨房里的杯子”这类自然语言查询。
- 任务规划:根据层次和关系分解“去客厅拿书”为导航、识别、抓取子任务。
- 长期更新:物体移动后,只需更新节点和边,不必重建整张地图。
- 人机交互:用图结构向人类解释机器人“看到了什么、理解了什么”。
六、案例:从点云到场景图
假设机器人进入一个房间,感知流程如下:
1. 点云分割 → 得到桌子、椅子、杯子三个物体簇
2. 语义识别 → 标注 table、chair、cup
3. 位姿估计 → 计算每个物体的6D位姿
4. 关系推理 → cup on table, chair near table
5. 图构建 → 生成节点与边
6. 层次挂载 → 将节点挂到 room_01 下
最终得到的场景图片段可以表示为:
room_01
├── table_01
│ └── cup_01 (on)
└── chair_01 (near table_01)
机器人随后可以查询:“room_01 中 table_01 上有什么?”系统沿边遍历,返回 cup_01。
七、常见误区与复盘
误区二:只建节点不建边。没有边的图无法表达“杯子在桌上”,机器人无法推理。
误区三:忽略层次结构。所有节点平铺会导致查询效率低、抽象能力差。
误区四:空间关系不更新。物体移动后边不更新,会导致规划失败。
复盘时,应重点检查:节点类别是否准确、边关系是否完整、层次挂载是否正确、空间关系是否随时间更新。只有这四方面都稳定,场景图才能真正成为机器人可用的环境模型。
综上,节点、边、层次结构、语义关系与空间关系共同构成了机器人3D场景图的基本骨架。掌握这些概念后,才能进一步进行场景图的构建、查询、更新与任务应用。