⚙ 开发指南
> 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 不证明它与最新关节状态同步。
作为运动目标#
模型本身不会统一验证有限值、零四元数或归一化。发送前应检查:
- 位置恰好 3 项、姿态恰好 4 项;
- 所有值都是有限浮点数;
- 四元数非零且范数接近 1;
- 位姿已经转换到同一个
base_link,位置单位为 m; - 目标和完整路径满足可达性、关节限位及现场碰撞要求。
格式、IK、seed 和失败处理还应结合 PTP 点到点规划、 LIN 直线轨迹规划和 CIRC 圆弧轨迹规划。