跳转至
⚙ 开发指南 > SDK > 概念指南 > 运动规划原理

多段轨迹融合规划#

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、关节和电机状态,确认实际停留位置;无法确认停止时执行现场实体急停流程。