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