3. 碰撞检测基础概念

在 RobotStudio 的离线编程流程中,碰撞检测并不是一个“点一下按钮看结果”的孤立功能,它背后有一套明确的术语体系。只有把这些术语的含义、单位和相互关系弄清楚,才能在仿真结果里准确判断“到底哪里出了问题、问题有多严重、要不要改”。本节围绕碰撞体、干涉、接近距离、碰撞对、碰撞集这五个核心概念展开,并说明碰撞检测在离线编程中的实际意义。

一、碰撞体:参与检测的几何对象

碰撞体(Collision Body)是碰撞检测的最小参与单位,它是一段被指定参与检测的几何体,通常来源于机器人本体、工具(TCP 工具坐标系所依附的几何)、工件、夹具、变位机、围栏或外部轴等模型。在 RobotStudio 中,碰撞体不是“整个工作站”,而是从模型树中挑选出来的具体对象或对象组。

需要特别注意的是,碰撞体有“几何精度”和“检测开销”的权衡。一个由上千个三角面片组成的复杂工具模型,如果直接作为碰撞体,检测计算量会明显上升。工程上常见的做法是:对工具、夹具等关键对象使用精确几何,对围栏、地面、背景设备使用简化几何(如包围盒或低面数近似体)。RobotStudio 允许为同一对象设置不同的碰撞体表示,但一旦简化过度,就可能出现“实际会撞、仿真不报”的漏检。

此外,碰撞体是有归属的:它属于某个机械单元(Mechanism)或某个对象。机器人本体各连杆本身就是天然的碰撞体,而工具、工件需要手动添加。理解这一点,才能理解后面“碰撞对”为什么要成对指定。

二、干涉与碰撞:两种不同程度的空间冲突

在 RobotStudio 的语境里,干涉(Interference)通常指两个碰撞体的几何体积发生了重叠,也就是“已经撞上了”;而碰撞(Collision)在广义上常与干涉混用,但在严格区分时,碰撞更偏向“检测到冲突事件”这一结果状态。实际使用中,我们更应关注的是检测结果给出的两类信息:

  • 是否重叠:两个碰撞体的体积是否相交,这是布尔结果;
  • 接近程度:在未重叠时,两者之间的最小距离是多少,这是连续量。

很多初学者只盯着“有没有变红”,却忽略了接近距离。实际上,一个在仿真中“刚好没撞”的路径,往往在真机上因为机器人本体刚度、工件公差、夹具定位误差而真的撞上。因此,干涉判断不能只看 0/1,还要看余量。

三、接近距离:比“撞没撞”更有价值的安全余量

接近距离(Closest Distance / Near Distance)指两个碰撞体在当前姿态下,表面之间的最小距离。它通常以毫米为单位,是碰撞检测中最有工程价值的连续指标。RobotStudio 可以在碰撞检测设置中指定一个“接近距离阈值”,当最小距离小于该阈值时,即使没有真正重叠,也会被标记为“接近”状态并给出提示。

举例来说(以下为教学示例参数,非实测结果):设定接近距离阈值为 20 mm,某段轨迹运行中工具与夹具的最小距离为 12 mm,则系统会提示“接近”;若最小距离为 3 mm,则属于高风险接近;若为负值(即重叠),则为干涉。这样,工程师就能在“撞”和“没撞”之间划出预警带,提前调整轨迹或姿态。

接近距离阈值不是越小越好。阈值过小会漏掉真实风险,过大则会产生大量无意义的“接近”提示,反而干扰判断。一般建议按工件定位精度、机器人重复定位精度和工艺安全要求综合设定,常见取值在 5~30 mm 之间。

四、碰撞对与碰撞集:把检测组织起来

碰撞对(Collision Pair)是碰撞检测的基本逻辑单元,由两个碰撞体组成,例如“工具—夹具”“机器人上臂—围栏”“工件—变位机”。只有被组成碰撞对的两个对象之间,才会被检测是否干涉或接近。这带来两个好处:一是减少不必要的计算,二是让检测结果有明确的语义——看到某对报警,就知道是哪两个对象之间出了问题。

碰撞集(Collision Set)则是碰撞对的集合,也可以理解为一次检测任务中所有需要关注的碰撞关系的总称。一个碰撞集可以包含多组碰撞对,例如把“工具与所有夹具”“机器人本体与围栏”“工件与外部轴”全部纳入同一个碰撞集,统一启用、统一查看结果。碰撞集的价值在于可复用:同一套碰撞集可以反复用于不同轨迹方案的验证,而不必每次重新指定对象。

碰撞检测术语关系与检测逻辑 碰撞体(Collision Body) 机器人连杆 本体几何 工具 / TCP 焊枪、吸盘等 工件 / 夹具 被加工对象 围栏 / 外部轴 环境与辅助设备 变位机 / 导轨 运动轴对象 两两组合 碰撞对(Collision Pair) 工具 ↔ 夹具 机器人上臂 ↔ 围栏 工件 ↔ 变位机 工具 ↔ 工件 归入同一检测任务 碰撞集(Collision Set) 碰撞集 A:焊接轨迹验证 工具↔夹具、工具↔工件、上臂↔围栏 碰撞集 B:搬运路径验证 工件↔变位机、工具↔夹具、本体↔外部轴 检测输出 干涉:体积重叠 接近:距离 < 阈值 安全:距离 ≥ 阈值

五、碰撞检测在离线编程中的意义

把这套术语放回离线编程的实际流程,碰撞检测的意义可以归纳为三点。

第一,把“撞机”风险前移到电脑里。真机上撞一次,轻则损坏工具、夹具,重则损伤机器人本体,停机损失以小时甚至天计。离线编程阶段用碰撞集对关键轨迹做检测,可以在不占用产线的情况下发现大部分几何冲突。尤其是新工具首次上机、新夹具首次调试、节拍优化后轨迹被压缩这几类场景,碰撞检测几乎是必做项。

第二,为节拍优化提供安全边界。节拍验证的目标是让机器人更快,但“更快”往往意味着轨迹更贴近障碍物、过渡更激进。碰撞检测给出的接近距离,实际上就是优化时的安全边界:当某段轨迹的接近距离从 25 mm 降到 8 mm 时,说明优化已经逼近极限,再压缩就可能真撞。没有这个连续指标,节拍优化就只能靠“感觉”和反复试机。

第三,让检测结果可复现、可追溯。碰撞对和碰撞集一旦定义好,就可以保存为工作站配置的一部分。同一套碰撞集在不同版本、不同轨迹方案之间反复使用,检测结果具有可比性。这对于多人协作、方案评审和问题回溯非常重要——大家讨论的是同一组碰撞对,而不是各自临时框选的对象。

需要提醒的是:仿真中“无干涉”不等于真机“绝对安全”。碰撞检测依赖模型精度、碰撞体简化程度、TCP 标定准确性和工件实际公差。仿真通过只是必要条件,首次上机仍应低速试运行并保留安全余量。

六、术语速查与使用建议

术语 含义 关键点
碰撞体 参与检测的几何对象 精度与开销权衡,可简化但需防漏检
干涉 两碰撞体体积重叠 布尔结果,表示“已撞”
接近距离 两碰撞体表面最小距离 连续量,单位 mm,用于设预警带
碰撞对 两个碰撞体组成的检测单元 决定“检测谁和谁”
碰撞集 多个碰撞对的集合 可复用,对应一次检测任务

在实际操作中,建议先按“工具—工件—夹具—环境”四类梳理碰撞体,再根据工艺阶段划分碰撞集,例如“取件阶段”“焊接阶段”“放件阶段”各建一个碰撞集。每个碰撞集内只放该阶段真正可能接触的碰撞对,避免把整个工作站所有对象两两组合。这样既控制计算量,也让报警信息更容易定位。接近距离阈值可以先设一个保守值(如 15~20 mm),在确认模型精度可靠后再逐步收紧。

理解这些术语之后,后续在 RobotStudio 中配置碰撞检测、解读检测报告、结合节拍验证做轨迹优化时,就能清楚每一步在做什么、结果代表什么,而不是机械地点击菜单。