碰撞检测

本文介绍碰撞检测相关配置,主要包含以下内容:

简介

在诸如工件上下料、拆码垛等应用场景中,为保障工程能够不间断运行,防止机器人与料筐或其他障碍物的碰撞非常重要。 Mech-Viz 能够通过碰撞检测功能来防止机器人在运动过程中发生不必要的碰撞, 在规划机器人运动路径时,Mech-Viz 会在三维仿真空间高亮显示将碰撞的部分来提醒用户,并终止工程的运行,以防碰撞实际发生。

计算设置

计算设置用于修改软件对碰撞的计算及记录,进而影响工程运行速度。

工程调试阶段建议将 计算设置 的参数组合修改为计算选解对应的完整碰撞接触 + 保存到规划历史以便通过规划历史快速定位和解决问题。

碰撞检测配置

碰撞检测是由各碰撞模型两两组合实现的,包含多种碰撞检测组合类型。 在开启碰撞检测前,需先在工程资源中添加并配置对应的碰撞模型。

  • 末端工具模型的添加与配置请参考 末端工具

  • 场景物体模型的添加与配置请参考 场景物体

  • 工件模型通过 Mech-Vision 输出的数据自动生成,配置方式见下文。

Mech-Viz 默认检测以下物体间的碰撞:

1

机器人关节

机器人关节

2

机器人关节

场景物体

3

机器人关节

末端工具

4

场景物体

末端工具

此外,您还可以配置以下物体间的碰撞检测。

碰撞检测选项卡中,单击 碰撞检测配置 进入碰撞检测配置工具中,即可配置。

点云与其他物体的碰撞配置

在左侧“点云配置”面板中,勾选检测点云与其他物体的碰撞后,将开启点云与末端工具的碰撞检测。此外,可配置点云与机器人关节、已持有工件的碰撞检测。

仅对“视觉移动”步骤及依赖于“视觉移动”步骤的“相对移动”步骤检查点云碰撞,其他的移动类步骤不检查点云碰撞。
点云配置 - 点云立方体边长

点云立方体是以点云中的点为中心生成的立方体。如果这些立方体与其他物体发生碰撞,则认为点云与这些物体发生了碰撞。

请根据对碰撞检测精度和速度的需求来调整该参数。

末端工具配置 - 碰撞体积阈值

允许点云立方体与末端工具碰撞模型发生碰撞的体积。碰撞体积超过阈值时,将判定为发生碰撞。

请根据实际项目中对碰撞的允许程度进行设置。

机器人关节配置 - 机器人关节

机器人关节分为腕部、小臂、大臂、基座,默认不检测任何关节与点云的碰撞。

请根据实际需求开启对应关节与点云的碰撞检测。

机器人关节配置 - 碰撞体积阈值

允许点云立方体与机器人关节碰撞模型发生碰撞的体积。碰撞体积超过阈值时,将判定为发生碰撞。

请根据实际项目中对碰撞的允许程度进行设置。

已持有工件与其他物体的碰撞配置

检测已持有工件与其他物体的碰撞,主要用于检测转移工件过程中的碰撞。

请根据已持有工件的模型类型选择 长方体外部模型

长方体

长方体模型添加方式

Mech-Viz 可根据 Mech-Vision 提供的工件尺寸自动生成长方体工件的碰撞模型。因此,需在 Mech-Vision 中进行相应的配置输出工件尺寸。

  1. 在 Mech-Vision 中使用“计算平面点云的位姿和尺寸”(多品类场景建议使用此步骤)或 “读取物体尺寸”(单品类场景建使用此步骤)来获取工件尺寸。

  2. 将尺寸数据通过 “输出” 步骤输出,Mech-Viz 即可获取工件尺寸并生成对应的碰撞模型。

输出的“抓取点位姿”与“物体尺寸”个数应保持一致。
长方体底部安全距离设置

对于混合(尺寸)码垛项目,需为长方体工件模型设置底部安全距离。设置底部安全距离后,将在工件模型底部增加对应的碰撞检测范围。 如检测到其他物体进入该范围内,则判定发生了碰撞。因此,设置安全底部距离后可更有效避免工件在移动时与已放置的工件发生碰撞。

开启对于长方体工件,在混合尺寸码垛的持有和放置过程中,还需检测底部安全距离内的碰撞,然后设置长方体安全底部距离

collision picked5
碰撞体积阈值

允许点云立方体与已持有工件碰撞模型发生碰撞的体积,碰撞体积超过阈值时,将判定为发生碰撞。开启检测点云与其他物体的碰撞参数后,可设置该参数。

请根据实际项目中对碰撞的允许程度进行设置。

外部模型

外部模型添加方式
  1. 移动工件的 stl 模型和 binvox 模型到 Mech-Viz 工程文件夹下的collision_models文件夹中(若无请新建)。

  2. 在 Mech-Vision 中通过对应步骤的“位姿分类标签”端口确认标签名称,并将模型文件重命名为对应的标签名称。若在 Mech-Viz 的工程资源中添加了工件配置,该工件名称也需与标签名称一致。

  3. 在 Mech-Vision 中勾选 发送点云到外部服务 步骤的发送物体信息参数,取消勾选所有输入是在相机坐标系下参数,并将该步骤的所有输入端口连接对应的数据流。

输出的点云和位姿均需在机器人坐标系下。
碰撞体积阈值

允许点云立方体与已持有工件碰撞模型发生碰撞的体积,碰撞体积超过阈值将判定为发生碰撞。开启检测点云与其他物体的碰撞参数后,可设置该参数。

根据实际项目中对碰撞的允许程度进行设置。

碰撞表格图列说明

  • [灰色块] 不检查碰撞或碰撞不会发生。

  • [蓝色块] 若发生任何接触,则认为检测到碰撞。

  • [橘色块] 忽略接触处小于体积阈值的碰撞。即接触体积超过阈值判断为发生碰撞。

    collision orange label1

    collision orange label2

    接触体积在整个路径采样中始终低于碰撞阈值,未检测到碰撞

    接触体积在路径采样中超过碰撞阈值,检测到碰撞

  • [绿色块] 若在已持有工件下方的底部安全距离内出现任何物体,则认为检测到碰撞。

  • [黄色块] 忽略接触处一开始大于体积阈值,但始终递减的碰撞;同时忽略接触处小于体积阈值的碰撞。

    虽然接触体积超过阈值,但其接触体积在整个路径采样中呈递减趋势的碰撞是软件允许的。

    collision yellow label