跳转至
⚙ 开发指南 > SDK > API > 数据结构

CartesianPose(末端位姿)#

CartesianPose 表示末端相对 base_link 的笛卡尔位置和姿态。它既用于 get_end_pose() 的反馈, 也用于笛卡尔运动目标和路点。

字段#

from arm_p7_sdk import CartesianPose

pose = CartesianPose(
    position=(0.40, 0.00, 0.30),
    orientation=(0.0, 0.0, 0.0, 1.0),
)
字段 类型 长度 单位 坐标系与顺序
position tuple[float, float, float] 3 m 相对 base_link(x, y, z)
orientation tuple[float, float, float, float] 4 无量纲 单位四元数 (qx, qy, qz, qw)

(0, 0, 0, 1) 表示零旋转,不表示“姿态未设置”。不要把欧拉角或 (qw, qx, qy, qz) 顺序的 四元数直接填入 orientation

作为反馈#

get_end_pose() 返回的位姿由当前关节反馈经过正运动学计算,不是末端独立传感器的实测值。模型没有 源时间戳;返回非 None 不证明它与最新关节状态同步。

作为运动目标#

模型本身不会统一验证有限值、零四元数或归一化。发送前应检查:

  1. 位置恰好 3 项、姿态恰好 4 项;
  2. 所有值都是有限浮点数;
  3. 四元数非零且范数接近 1;
  4. 位姿已经转换到同一个 base_link,位置单位为 m;
  5. 目标和完整路径满足可达性、关节限位及现场碰撞要求。

格式、IK、seed 和失败处理还应结合 PTP 点到点规划LIN 直线轨迹规划CIRC 圆弧轨迹规划