多段轨迹融合规划#
P7 通过 waypoint 接口把相邻目标组成多个规划段,并可在内部边界请求轨迹融合。融合用于减少中间 路点处的停顿;它不是单独的规划类型,也不保证轨迹严格经过内部路点。
路点与规划段#
对 N 个路点:
- 至少需要 2 个路点;
- 规划段数量为
N - 1; - 可融合的内部边界数量为
N - 2; segments[i]配置第i段及该段结束处的内部边界。
关节路点使用 move_joint_waypoints(),段类型为 PTP 或 OMPL;笛卡尔路点使用
move_end_pose_waypoints(),段类型为 PTP、LIN 或 OMPL。圆弧需要单独使用 CIRCLE 接口,不能通过
waypoint 的 circ_is_center 字段构造。
融合参数#
| 字段 | 作用 |
|---|---|
enable_blend |
是否请求当前段终点与下一段起点连续过渡 |
min_blend_radius |
内部边界的最小融合半径,单位 m;关节路点也使用末端笛卡尔空间半径 |
segments |
逐段选项列表;非空时数量必须等于 len(waypoints) - 1 |
需要在中间路点明确停止时,将进入该边界的 segment 设为 enable_blend=False。这只表示不请求融合,
不表示具有指定停留时间;当前接口没有 dwell time 参数。
逐段数量必须由应用检查
当前 SDK 只在 segments 数量与规划段数完全相等时使用逐段配置。其他非空长度不会被拒绝,而会
静默退回顶层 options。调用前断言
not segments or len(segments) == len(waypoints) - 1。
半径过大、相邻段过短、几何不适合或运行时约束不满足时,融合可能失败。接口不承诺实际轨迹一定达到 请求半径;不要通过增大半径来“保证平滑”。路点运动入口见 API 接口总览,逐段参数和采样要求见 运动控制参数(ArmControlOptions)。
返回与失败#
blocking=False 等待序列规划结果后返回,轨迹可能仍在执行;blocking=True 等待序列完成判据。
客户端超时或返回 False 不能证明所有段都未执行,也不能撤销已经接受的段。停止发送新序列,读取
FSM、关节和电机状态,确认实际停留位置;无法确认停止时执行现场实体急停流程。