路径编辑
IDE 的路径编辑功能可以在 3D 视口中直观地查看和编辑机器人运动路径。
查看运动路径
编写好运动程序后,点击 显示路径,3D 视口中会绘制出 TCP 的运动轨迹:
- 蓝色线段 — MOVL 直线路径
- 绿色曲线 — MOVJ 关节运动路径(近似)
- 红色圆弧 — MOVC 圆弧路径
- 黄色圆点 — 示教点位标记
编辑路径点
在 3D 视口中可以:
- 选中点位:点击黄色圆点,选中对应点位
- 拖拽调整:按住并拖拽点位到新位置(按 Shift 约束方向)
- 插入点位:在路径上右键 → 插入点位
- 删除点位:选中后按 Delete 键
快速调整
拖拽调整后,系统会自动更新点位坐标值。这比在示教器中逐个修改数值更快。
路径预览
点击 预览运行 按钮,机器人在 3D 中按程序执行运动(不实际控制硬件),可以:
- 检查是否有碰撞
- 确认路径是否正确
- 观察速度是否合理
- 查看预计运行时间
路径导入导出
- 导出路径:将当前路径导出为 CSV 或 JSON,用于备份或迁移
- 导入路径:从文件导入路径点位
3D 视口工具栏
| 按钮 | 图标 | 功能 |
|---|---|---|
| 显示 / 隐藏路径 | 折线 | 切换轨迹可视化 |
| 预览运行 | ▶ | 在仿真中按程序跑 |
| 选择工具 | 箭头 | 点选点位 |
| 平移 / 旋转 Gizmo | ⟳ | 选中点位后显示三维操纵器 |
| 插入点位 | + | 在路径某段上加点 |
| 删除点位 | ✕ | 删除选中 |
| 对齐 | ⇌ | 批量对齐 X / Y / Z / 姿态 |
| 测量 | 尺子 | 量任意两点距离 / 夹角 |
| 显示坐标系 | 三轴 | 切 Tool / User / World 坐标系显示 |
| 显示工作空间 | 云 | 机器人可达区 / 奇异区可视化 |
| 碰撞检测 | ⚠ | 开启 / 关闭几何碰撞检测 |
路径编辑的三种粒度
粒度 1 — 单点调整 (Point-level)
选中单个点位, 显示 6 轴 Gizmo:
- 拖 X / Y / Z 轴箭头 → 沿该轴平移 (Shift 约束整数毫米)
- 拖旋转环 → 绕该轴旋转
- 拖平面方块 → 平面平移
数值输入: 右侧属性面板直接输入精确坐标, 支持加减法 (=300+5).
粒度 2 — 路径段调整 (Segment-level)
选中两相邻点位之间的段:
- 整体平移: 段两端同步偏移
- 整体旋转: 绕段中点旋转整段
- 改变 Zone: 段的平滑半径
- 改变 Velocity: 段的速度
- 反转方向: 起终点互换 (涂胶回路常用)
粒度 3 — 路径全局 (Path-level)
整条路径:
- 整体平移 / 旋转 / 缩放
- 转换坐标系: 从 UserFrame1 转到 UserFrame2
- 镜像: 绕平面镜像 (汽车左右件复用)
- 时间反转: 倒放 (末点成首点)
约束式拖动
拖动调整时支持约束:
| 约束 | 快捷键 | 效果 |
|---|---|---|
| 水平 | Shift + 拖 | 锁 Z, 只在 XY 平面 |
| 垂直 | Ctrl + 拖 | 只沿 Z |
| 步进 | Alt + 拖 | 吸附到 1 mm 网格 |
| 相对工件 | 右键菜单选 UserFrame | 沿工件 X/Y/Z 而非 World |
| 锁定姿态 | L | 拖动时姿态不变 |
| 锁定位置 | P | 只能绕原位旋转 |
多路径管理
项目内可有多条路径 (焊缝 A / 焊缝 B / 涂胶路径). 路径编辑器支持:
- 多路径并列显示: 每条一个颜色, 便于对比
- 路径组: 将多条路径归组, 批量启用 / 禁用显示
- 路径模板: 保存常用路径为模板, 新项目复用
- 路径版本: 保留每次修改的历史, 可回滚
路径仿真报告
仿真运行完毕后生成报告:
路径: Weld_Seam_A
总长度: 245.3 mm
总时间: 30.7 s
TCP 平均速度: 8.0 mm/s
TCP 最大速度: 12.5 mm/s
最大加速度: 420 mm/s²
最大关节速度: J5 = 25.3 °/s (余量 83%)
碰撞检测: 无
奇异点接触: 无
报告可导出 PDF / CSV 归档。
路径优化器
右键路径 → 优化:
模式 1 — 点位数量简化
删除接近共线的冗余点 (距离直线 < 0.5 mm 的点):
- 30 点 → 15 点 (50% 减)
- 路径几何基本不变
- 执行速度提高 (段少, 过渡少)
模式 2 — 点位顺序优化 (TSP)
对独立点位集 (码垛焊点), 用遗传算法求最短访问顺序:
- 30 点随机顺序总长度 5000 mm
- 优化后 3200 mm (36% 缩短)
- 算法时间: 100 点 < 5 秒
模式 3 — 加速度优化
在不超加速度约束下重分布 Jerk, 减小 TCP 峰值加速度:
- 峰值加速度 800 → 400 mm/s²
- 总时间几乎不变
- 机械振动明显减小
路径碰撞检测
右键 → 碰撞检测 → 选择障碍物列表
├─ 机器人自碰撞 (link vs link)
├─ 机器人 vs 固定工装 (已加载的 STL)
├─ 工具 vs 工件夹具
└─ 工具 vs 其他机器人 (多机场景)
检测算法:
- Broad phase: AABB 树粗剔除 (< 10 μs)
- Narrow phase: GJK / EPA 精确相交 (< 100 μs)
- 默认每 5 mm 路径检测一次 (过密 CPU 爆)
碰撞检测的粗糙度由碰撞体简化 (见 模型导入) 决定, 凸包 > VHACD > 精细网格。
点位同步 (Dual Linkage)
路径编辑器与点位管理面板双向同步:
- 在点位管理改坐标 → 路径视口自动刷新
- 在 3D 拖动 → 点位列表自动更新
- 删除点位 → 从所有引用路径中移除 (提示确认)
键盘快捷键
| 快捷键 | 功能 |
|---|---|
| W | 切到平移 Gizmo |
| E | 切到旋转 Gizmo |
| R | 切到缩放 Gizmo (仅全局) |
| F | 聚焦选中 |
| Del | 删除选中 |
| Ins | 在选中处插入新点 |
| Ctrl+D | 复制当前点 |
| Ctrl+Z / Y | 撤销 / 重做 |
| Space | 仿真 播放 / 暂停 |
| Esc | 取消选中 |
参数表
| 参数 | 类型 | 单位 | 默认 | 说明 |
|---|---|---|---|---|
| PathColor | COLOR | - | 蓝 | 路径线颜色 |
| PathWidth | UINT | px | 2 | 路径线宽度 |
| ShowZoneRadius | BOOL | - | TRUE | 显示 Zone 球 |
| ShowPointLabels | BOOL | - | TRUE | 显示点位名 |
| GridSize | LREAL | mm | 1.0 | 吸附网格 |
| CollisionResolution | LREAL | mm | 5.0 | 碰撞检测采样间距 |
| PreviewSpeedScale | LREAL | - | 1.0 | 预览倍率 (0.1~10) |
排错清单
| 现象 | 原因 | 解决 |
|---|---|---|
| 路径不显示 | 未勾"显示路径" | 工具栏切开关 |
| 拖动点位机器人不动 | 路径编辑不下发实物 | 仿真运行才会动 |
| 插入点后路径乱 | 插入位置选错 | 用"在选段中点插入" |
| 碰撞检测卡 | 几何太精细 | 换简化碰撞体 |
| 预览报奇异 | 路径经过奇异 | 调点位避开 |
| 撤销无效 | 已超过 50 步 | 用版本历史回滚 |
| 3D 视口 GPU 占用高 | 打开了所有显示选项 | 关闭工作空间云点 |
最佳实践
- 拖动前先锁相关点: 只调一段时把其他点锁定防误拖
- 数值输入精细调整: 拖动粗调, 数值输入微调
- 对齐工具批量处理: 网格焊点用"对齐 Z" 一键对高
- 仿真必跑: 改完一定点 "预览" 检验
- 版本化保存: 每个里程碑保存一次版本, 方便回滚
- 导出归档: 每周导出 JSON 提交 git
- 碰撞检测生产前开: 开发阶段可以关 (快), 上线前必开