3. 机器人本体与工具模型优化
在 RobotStudio 仿真项目中,机器人本体和工具模型往往是场景里几何最复杂的对象。一台六轴机器人的本体模型可能包含数百个零件,每个零件又带有倒角、螺纹孔、线缆卡箍、铭牌等细节;一个焊枪或夹具工具模型,也可能因为内部气缸、螺钉、气管接头而拥有几万甚至几十万个三角面。仿真性能的瓶颈,很多时候并不在路径规划算法,而在这些“看起来更真实”的几何细节上。
要理解优化空间,先要理解 RobotStudio 在仿真时对模型做了什么。仿真过程中,系统需要不断进行碰撞检测、可达性判断和姿态求解。碰撞检测通常依赖模型的三角网格或包围体层级,网格越密,参与计算的三角形就越多,单次检测耗时越长。当机器人以 50 mm/s 的 TCP 速度沿一条 2 m 长的焊缝运动时,若按 10 ms 的仿真步长采样,仅这一条焊缝就会产生约 4000 个姿态点,每个点都要做碰撞检测。如果工具模型有 8 万个三角面,而优化后只有 3000 个三角面,累计计算量差距会非常明显。因此,模型优化的核心目标不是“让模型变丑”,而是在保证仿真所需几何精度的前提下,减少参与实时计算的几何复杂度。
细节层级对性能的影响机制
机器人本体和工具模型的细节可以分为三类。第一类是功能几何,例如工具的法兰安装面、焊枪的电极帽外形、夹具的夹爪闭合轮廓,这些直接影响碰撞检测和可达性判断,不能随意删除。第二类是视觉几何,例如机器人本体的外壳曲面、工具表面的倒角和圆角,它们让模型看起来真实,但对碰撞检测结果几乎没有影响。第三类是装饰几何,例如铭牌文字、螺钉头、线缆纹理、内部不可见结构,这些在仿真中通常只增加负担。
RobotStudio 在导入模型时,会为每个零件建立包围体层级。如果模型包含大量细小零件,包围体树会变得很深,碰撞检测时遍历的节点数增加。一个典型的机器人本体模型,若包含 300 个零件,每个零件平均 500 个三角面,总面数约 15 万;而经过合并和简化后,可以压缩到 20 个零件、约 1.5 万三角面,碰撞检测的节点遍历次数和三角形测试次数都会显著下降。需要注意的是,简化不能改变关键尺寸,例如法兰中心位置、TCP 偏移、工具外形包络,否则会导致仿真结果失真。
简化表示:从“像”到“够用”
简化表示是最直接的优化手段。在 RobotStudio 中,可以通过“建模”选项卡下的“简化几何体”功能,或使用外部 CAD 工具预处理模型。具体操作思路是:先识别功能几何,再删除或替换装饰几何。例如,一个焊枪工具模型,电极帽、枪颈、法兰安装面必须保留,而枪体上的散热槽、螺钉、气管接头可以删除或用一个圆柱体替代。对于机器人本体,外壳曲面可以简化为几个拉伸体,内部线缆和电机可以完全删除。
一个可参考的简化流程如下:
- 在 CAD 软件中打开原始模型,按零件名称或颜色区分功能件与装饰件。
- 删除铭牌、螺钉、线缆、内部不可见结构,合并同材质且相邻的零件。
- 对保留的曲面进行“去特征”处理,例如删除小圆角、小倒角,将复杂曲面替换为平面或简单旋转面。
- 导出为 RobotStudio 支持的格式(如 .sat、.step 或 .rslib),导入后检查法兰中心、TCP 偏移和外形包络是否与原始模型一致。
- 在 RobotStudio 中运行一次碰撞检测测试,确认简化后模型在关键姿态下不会产生误报或漏报。
需要特别注意的是,简化后的模型必须保持法兰坐标系和 TCP 坐标系不变。如果简化过程中移动了法兰面或改变了工具长度,后续所有路径和姿态都会偏移。建议在简化前记录原始模型的法兰中心坐标和 TCP 偏移值,简化后逐一核对。
LOD 技术:按需分配细节
LOD(Level of Detail,细节层级)的核心思想是:同一个对象准备多个细节版本,根据观察距离或重要程度动态切换。在 RobotStudio 中,LOD 可以通过“图形显示”设置或使用“替代几何体”功能实现。例如,当机器人距离虚拟相机较远,或该机器人当前不参与碰撞检测时,系统可以自动切换到低细节版本;当机器人进入工作区域或需要精确碰撞检测时,再切换回高细节版本。
LOD 的层级划分没有固定标准,但可以按以下思路设计。以一台焊接机器人为例:
| LOD 层级 | 适用条件 | 几何内容 | 三角面数量级(示例) |
|---|---|---|---|
| LOD0(高) | 距离 < 2 m,参与碰撞检测 | 完整本体 + 完整工具 | 约 15 万面 |
| LOD1(中) | 距离 2~5 m,仅视觉展示 | 简化本体 + 简化工具 | 约 3 万面 |
| LOD2(低) | 距离 > 5 m,背景展示 | 包围盒 + 圆柱代理 | 约 500 面 |
在 RobotStudio 中实现 LOD 切换,可以通过“仿真”选项卡下的“图形设置”调整显示精度,也可以使用 RAPID 或 .NET API 编写逻辑,根据机器人当前是否处于活动状态切换几何体。对于多机器人工作站,建议只对当前正在执行任务的机器人使用 LOD0,其余机器人使用 LOD1 或 LOD2,这样可以在视觉可接受的前提下大幅降低计算量。
代理模型:用最简单几何完成碰撞检测
代理模型是比 LOD 更激进的优化方式。它不追求视觉真实,而是用最简单的几何体(如长方体、圆柱体、球体)替代复杂工具,专门用于碰撞检测和可达性判断。代理模型通常与真实模型同时存在:真实模型用于视觉展示,代理模型用于计算。
在 RobotStudio 中,可以创建一个“碰撞体”对象,将其绑定到机器人法兰或工具上,然后在碰撞检测设置中指定使用该碰撞体而非原始几何。例如,一个复杂的焊枪工具,可以用一个直径 80 mm、长度 300 mm 的圆柱体作为代理,圆柱体的轴线与焊枪枪颈方向一致,端面与电极帽位置对齐。这样,碰撞检测只需要计算圆柱体与周围对象的距离,计算量远小于原始工具模型。
工具模型优化替换的实际操作
下面以一个焊接工具模型为例,说明在 RobotStudio 中完成优化替换的典型过程。假设原始工具模型为 Torch_Original.rslib,包含 8 万个三角面,法兰中心位于工具坐标系原点,TCP 偏移为 [0, 0, 320] mm。
步骤 1:记录原始参数
法兰中心:工具坐标系原点 (0,0,0)
TCP 偏移:[0, 0, 320] mm
工具最大外径:约 75 mm
工具总长:约 295 mm
步骤 2:创建代理模型
在 RobotStudio 中新建一个圆柱体
直径:80 mm
高度:300 mm
轴线方向:与工具 Z 轴一致
底面中心:与法兰中心重合
步骤 3:绑定代理模型
将圆柱体拖入工具坐标系下
设置其位置为 (0, 0, 150),使圆柱体从法兰面延伸至 TCP 附近
在碰撞检测设置中,将圆柱体指定为工具的碰撞体
步骤 4:验证
运行一次单点碰撞检测,确认圆柱体与工件、夹具的碰撞结果与原始模型一致
检查 TCP 偏移是否仍为 [0, 0, 320] mm
检查工具在典型姿态下是否与周围设备发生误报
完成替换后,可以在“仿真”选项卡中对比优化前后的碰撞检测耗时。在示例场景中,若原始工具模型单次碰撞检测耗时约 2.5 ms,代理模型可降至约 0.3 ms;若一条焊缝有 4000 个采样点,累计节省的时间约为 8.8 秒。对于包含多台机器人和多个工具的整线仿真,这种优化会带来更明显的整体性能提升。
优化策略的选择与组合
三种策略并不是互斥的,实际项目中通常组合使用。对于机器人本体,优先使用简化表示,删除内部结构和装饰几何,保留外壳和运动包络;对于工具模型,优先使用代理模型,因为工具通常形状相对规则,代理模型容易构建且碰撞检测收益最大;对于多机器人场景,可以叠加 LOD 技术,让非活动机器人使用低细节版本。
判断优化是否到位,可以观察几个指标:场景加载时间是否明显缩短、仿真运行时帧率是否稳定、碰撞检测日志中单次检测耗时是否下降、内存占用是否降低。如果优化后出现碰撞误报或漏报,应优先检查代理模型的包络尺寸和位置是否准确,以及简化模型是否改变了关键几何特征。优化的目标始终是:在满足仿真精度要求的前提下,用最少的几何完成最关键的判断。