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

LIN 直线轨迹规划#

LIN 约束工具中心点从显式起点沿笛卡尔直线到达目标,适合插入、接近和退出等必须控制路径形状的 任务。P7 使用专用接口 move_end_pose_linear(),而不是关节目标中的 motion_type="lin"

接口与位姿#

client.move_end_pose_linear(
    start: CartesianPose,
    target: CartesianPose,
    options: CartesianMoveOptions,
    timeout_ms: int = 1000,
) -> bool

starttarget 的位置均相对 base_link,单位为 m;姿态为 (qx, qy, qz, qw) 顺序的单位 四元数。start 必须与调用时的实际末端位姿一致。SDK 不会比较起点与反馈,也不会自动纠正不一致的 起点。

运动前检查#

  1. 读取当前末端位姿;状态缺失、过期或读取后机械臂发生移动时,不发送请求。
  2. 检查位置和四元数的长度、有限值及四元数范数。
  3. 取得控制权,切换到 Controller.planning_control,并确认 FSM 为 PLANNING_CONTROL
  4. 确认直线路径中间同样满足 IK、关节限位和碰撞条件。
  5. 为规划和执行准备足够的 timeout_ms,并明确异常停止流程。

LIN 固定使用直线规划,options.motion_typeoptions.circ_is_center 不生效。速度与加速度缩放、 sampling_timeallow_planning_time、seed、碰撞选项和 blocking 的定义见 运动控制参数(ArmControlOptions)

失败后不要自动改用 PTP

直线终点可达不代表整段直线可规划。遇到奇异、关节限位、IK 不连续或碰撞失败时,改用 PTP 会 改变 TCP 路径;只有任务明确允许并重新完成路径评估后才能更换规划方式。

运动入口与返回行为见API 接口总览