3. 碰撞检测基础概念
在 RobotStudio 的离线编程流程中,碰撞检测并不是一个“点一下按钮看结果”的孤立功能,它背后有一套明确的术语体系。只有把这些术语的含义、单位和相互关系弄清楚,才能在仿真结果里准确判断“到底哪里出了问题、问题有多严重、要不要改”。本节围绕碰撞体、干涉、接近距离、碰撞对、碰撞集这五个核心概念展开,并说明碰撞检测在离线编程中的实际意义。
一、碰撞体:参与检测的几何对象
碰撞体(Collision Body)是碰撞检测的最小参与单位,它是一段被指定参与检测的几何体,通常来源于机器人本体、工具(TCP 工具坐标系所依附的几何)、工件、夹具、变位机、围栏或外部轴等模型。在 RobotStudio 中,碰撞体不是“整个工作站”,而是从模型树中挑选出来的具体对象或对象组。
需要特别注意的是,碰撞体有“几何精度”和“检测开销”的权衡。一个由上千个三角面片组成的复杂工具模型,如果直接作为碰撞体,检测计算量会明显上升。工程上常见的做法是:对工具、夹具等关键对象使用精确几何,对围栏、地面、背景设备使用简化几何(如包围盒或低面数近似体)。RobotStudio 允许为同一对象设置不同的碰撞体表示,但一旦简化过度,就可能出现“实际会撞、仿真不报”的漏检。
此外,碰撞体是有归属的:它属于某个机械单元(Mechanism)或某个对象。机器人本体各连杆本身就是天然的碰撞体,而工具、工件需要手动添加。理解这一点,才能理解后面“碰撞对”为什么要成对指定。
二、干涉与碰撞:两种不同程度的空间冲突
在 RobotStudio 的语境里,干涉(Interference)通常指两个碰撞体的几何体积发生了重叠,也就是“已经撞上了”;而碰撞(Collision)在广义上常与干涉混用,但在严格区分时,碰撞更偏向“检测到冲突事件”这一结果状态。实际使用中,我们更应关注的是检测结果给出的两类信息:
- 是否重叠:两个碰撞体的体积是否相交,这是布尔结果;
- 接近程度:在未重叠时,两者之间的最小距离是多少,这是连续量。
很多初学者只盯着“有没有变红”,却忽略了接近距离。实际上,一个在仿真中“刚好没撞”的路径,往往在真机上因为机器人本体刚度、工件公差、夹具定位误差而真的撞上。因此,干涉判断不能只看 0/1,还要看余量。
三、接近距离:比“撞没撞”更有价值的安全余量
接近距离(Closest Distance / Near Distance)指两个碰撞体在当前姿态下,表面之间的最小距离。它通常以毫米为单位,是碰撞检测中最有工程价值的连续指标。RobotStudio 可以在碰撞检测设置中指定一个“接近距离阈值”,当最小距离小于该阈值时,即使没有真正重叠,也会被标记为“接近”状态并给出提示。
举例来说(以下为教学示例参数,非实测结果):设定接近距离阈值为 20 mm,某段轨迹运行中工具与夹具的最小距离为 12 mm,则系统会提示“接近”;若最小距离为 3 mm,则属于高风险接近;若为负值(即重叠),则为干涉。这样,工程师就能在“撞”和“没撞”之间划出预警带,提前调整轨迹或姿态。
四、碰撞对与碰撞集:把检测组织起来
碰撞对(Collision Pair)是碰撞检测的基本逻辑单元,由两个碰撞体组成,例如“工具—夹具”“机器人上臂—围栏”“工件—变位机”。只有被组成碰撞对的两个对象之间,才会被检测是否干涉或接近。这带来两个好处:一是减少不必要的计算,二是让检测结果有明确的语义——看到某对报警,就知道是哪两个对象之间出了问题。
碰撞集(Collision Set)则是碰撞对的集合,也可以理解为一次检测任务中所有需要关注的碰撞关系的总称。一个碰撞集可以包含多组碰撞对,例如把“工具与所有夹具”“机器人本体与围栏”“工件与外部轴”全部纳入同一个碰撞集,统一启用、统一查看结果。碰撞集的价值在于可复用:同一套碰撞集可以反复用于不同轨迹方案的验证,而不必每次重新指定对象。
五、碰撞检测在离线编程中的意义
把这套术语放回离线编程的实际流程,碰撞检测的意义可以归纳为三点。
第一,把“撞机”风险前移到电脑里。真机上撞一次,轻则损坏工具、夹具,重则损伤机器人本体,停机损失以小时甚至天计。离线编程阶段用碰撞集对关键轨迹做检测,可以在不占用产线的情况下发现大部分几何冲突。尤其是新工具首次上机、新夹具首次调试、节拍优化后轨迹被压缩这几类场景,碰撞检测几乎是必做项。
第二,为节拍优化提供安全边界。节拍验证的目标是让机器人更快,但“更快”往往意味着轨迹更贴近障碍物、过渡更激进。碰撞检测给出的接近距离,实际上就是优化时的安全边界:当某段轨迹的接近距离从 25 mm 降到 8 mm 时,说明优化已经逼近极限,再压缩就可能真撞。没有这个连续指标,节拍优化就只能靠“感觉”和反复试机。
第三,让检测结果可复现、可追溯。碰撞对和碰撞集一旦定义好,就可以保存为工作站配置的一部分。同一套碰撞集在不同版本、不同轨迹方案之间反复使用,检测结果具有可比性。这对于多人协作、方案评审和问题回溯非常重要——大家讨论的是同一组碰撞对,而不是各自临时框选的对象。
六、术语速查与使用建议
| 术语 | 含义 | 关键点 |
|---|---|---|
| 碰撞体 | 参与检测的几何对象 | 精度与开销权衡,可简化但需防漏检 |
| 干涉 | 两碰撞体体积重叠 | 布尔结果,表示“已撞” |
| 接近距离 | 两碰撞体表面最小距离 | 连续量,单位 mm,用于设预警带 |
| 碰撞对 | 两个碰撞体组成的检测单元 | 决定“检测谁和谁” |
| 碰撞集 | 多个碰撞对的集合 | 可复用,对应一次检测任务 |
在实际操作中,建议先按“工具—工件—夹具—环境”四类梳理碰撞体,再根据工艺阶段划分碰撞集,例如“取件阶段”“焊接阶段”“放件阶段”各建一个碰撞集。每个碰撞集内只放该阶段真正可能接触的碰撞对,避免把整个工作站所有对象两两组合。这样既控制计算量,也让报警信息更容易定位。接近距离阈值可以先设一个保守值(如 15~20 mm),在确认模型精度可靠后再逐步收紧。
理解这些术语之后,后续在 RobotStudio 中配置碰撞检测、解读检测报告、结合节拍验证做轨迹优化时,就能清楚每一步在做什么、结果代表什么,而不是机械地点击菜单。