碰撞检查
Collision Checking常用规划时查询某个姿态或某段路径会不会让机器人撞到自己或环境。
碰撞检查是运动规划里的几何查询:给定机器人的一组关节角(一个构型),先用正运动学算出每根连杆在空间中的位置,再判断这些几何体是否与环境障碍物或机器人自身其他部位相交,也可以返回最近距离和接触点。RRT、PRM 等基于采样的规划器每采一个点、连一条边都要调用它,所以它常占规划耗时的很大一部分。为了快,通常先用包围盒层次结构粗筛,再对凸体用 GJK 等算法精算。开源库 FCL 支持碰撞、距离、连续碰撞检测等查询;MoveIt 同时检查自碰撞和环境碰撞,并用「允许碰撞矩阵」忽略相邻连杆这类必然接触的部位。要区分三个概念:碰撞检查在动作执行前、对模型做;物理引擎里的碰撞检测用于仿真接触;本体安全里的碰撞检测是在真机运动中发现意外撞击。
例子机械臂要把杯子放进柜子,RRT 采到一组关节角后做碰撞检查:前臂的胶囊体和柜门的盒子相交,这个点被丢弃;两个合法点之间的连线也要按小步长插值、逐点检查。
- 也叫
- 碰撞检查(规划用)、碰撞查询、Collision query
- 相关
- 自碰撞检测、碰撞检测(物理引擎)、FCL、MoveIt、基于采样的规划、包围盒
- 来源
- Wikipedia: Motion planning(collision detection 与采样规划)
FCL: The Flexible Collision Library (GitHub)
MoveIt 2 Docs: Planning Scene tutorial(collision checking)