Axis-Aligned Bounding Box
- 又称: AABB
- 类别: Planning & manipulation › Motion planning
- 标签: collision-detection, computational-geometry, motion-planning, bounding-volume, simulation
包住一个物体、各边与所选坐标系坐标轴平行的最小盒子,以最小角点和最大角点存储,用于快速的重叠检测和距离检测。
定义
轴对齐包围盒(AABB)(axis-aligned bounding box)是一个包住物体、且各个面都与所选坐标系的坐标轴平行的盒子。在 3D 中,它完全由六个数描述:物体 x、y、z 的最小值和最大值;或者等价地,由一个中心点和三个半边长描述。在 2D 中它是一个矩形,大多数图像目标检测器画出的框就是像素坐标下的 AABB。
AABB 的价值在于针对它的检测非常廉价。两个 AABB 只有在每个轴上的区间都重叠时才会重叠,这只需要几次比较。两个盒子之间的距离这样求得:在每个轴上计算两个区间之间的间隙(重叠时为零),再取这三个间隙的欧几里得范数。正因如此,AABB 是碰撞检测中标准的第一阶段:物理引擎和碰撞库在粗检测阶段(broad phase)使用它们,并常常把它们组织成一棵称为包围体层次结构的树,以便在对剩余物体对进行精确检测之前,先剔除那些不可能接触的物体对。
代价是包得不紧。AABB 是相对于某个坐标系定义的,因此物体旋转时,它在世界坐标系下的 AABB 必须重新计算,而且一般会变大;一把以 45 度角握持的细长工具,其盒子比工具本身大得多。因此,基于 AABB 的检测是保守的:如果两个盒子不重叠,物体也不会重叠;但盒子重叠并不能证明发生了接触,而盒子到盒子的距离是真实距离的一个下界。有向包围盒(OBB)、包围球、胶囊体、凸包和有符号距离场能给出更紧的结果,但代价更高。
为何重要
AABB 是碰撞检查、工作空间限位和空间查询中最廉价的几何代理,几乎出现在每一个运动规划器、仿真器和感知流程中。了解它们是保守的、并且依赖于坐标系,既能解释它们为何被如此广泛地使用,也能解释为什么基于它们的检查可能报告虚假碰撞,或高估两个物体之间的接近程度。
主要应用
- 仿真器和运动规划器中的粗阶段碰撞检测
- 用于快速距离查询和射线查询的包围体层次结构
- 把点云裁剪到感兴趣区域或工作空间
- 图像中的 2D 目标检测框
- 对生成的机器人程序和轨迹进行快速间隙检查
实际应用
一个检查由语言模型生成的机器人程序的工具会逐个遍历每个规划航点。在每个航点上,它把夹爪的碰撞网格变换到世界坐标系,根据顶点坐标的最小值和最大值算出它的 AABB,再计算它到桌上每个物体的 AABB 的距离。凡是距离低于间隙阈值的航点,都会连同相关物体一起被标记出来,以便修改程序。由于盒子是保守的,一个旋转后的夹爪从高瓶子旁边近距离经过时,即使还有空间,也可能被标记;对于被标记的情况,该工具会先退回到碰撞库中的精确网格距离查询,再报告真正的问题。
常见误解
- AABB 重叠就意味着物体发生碰撞 — 重叠只说明可能存在接触;需要精确检测才能确认
- AABB 是物体的固定属性 — 它取决于坐标系和物体的朝向,物体旋转时必须重新计算
- AABB 距离就是物体之间的真实距离 — 它只是一个下界,对于旋转后的或不规则的形状,往往远小于实际间隙
- 物体周围的任何盒子都是 AABB — 与物体自身主轴对齐的盒子是有向包围盒(OBB)
谁需要了解
- 运动规划和碰撞检查工程师
- 仿真和游戏物理开发者
- 处理点云和检测结果的感知工程师
- 机器人程序验证工具的开发者
相关技术
- 有向包围盒(Oriented Bounding Box)
- 包围体层次结构(Bounding Volume Hierarchy)
- Flexible Collision Library(FCL)
- GJK 距离算法(GJK Distance Algorithm)
- 扫描与剪枝(Sweep and Prune)
- Bullet Physics
相关术语
相关项目
- GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- RLinf: Scalable infrastructure for post-training foundation models via RL
- Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
- NVIDIA Isaac Sim: NVIDIA Omniverse app for AI-driven robot simulation and testing
视频
- COMP4300 - Game Programming - Lecture 08 - Collision Detection & AABB: Dave Churchill