CartesianPose (End-Effector Pose)#
CartesianPose represents the Cartesian position and orientation of the end effector relative to base_link. It is used
both as feedback from get_end_pose() and as a Cartesian motion target or waypoint.
Fields#
from arm_p7_sdk import CartesianPose
pose = CartesianPose(
position=(0.40, 0.00, 0.30),
orientation=(0.0, 0.0, 0.0, 1.0),
)
| Field | Type | Length | Unit | Coordinate Frame and Order |
|---|---|---|---|---|
position |
tuple[float, float, float] |
3 | m | (x, y, z) relative to base_link |
orientation |
tuple[float, float, float, float] |
4 | Dimensionless | Unit quaternion (qx, qy, qz, qw) |
(0, 0, 0, 1) represents zero rotation; it does not mean that the orientation is unset. Do not pass Euler angles or a
quaternion ordered as (qw, qx, qy, qz) directly to orientation.
As Feedback#
The pose returned by get_end_pose() is calculated from current joint feedback through forward kinematics; it is not a
direct measurement from an independent end-effector sensor. The model has no source timestamp, so a non-None return does
not prove that it is synchronized with the latest joint state.
As a Motion Target#
The model itself does not consistently validate finite values, zero quaternions, or normalization. Before sending a target, check that:
- the position has exactly 3 elements and the orientation exactly 4;
- every value is a finite floating-point number;
- the quaternion is nonzero and its norm is close to 1;
- the pose has been transformed into the same
base_linkframe, with position in m; - the target and complete path meet reachability, joint-limit, and on-site collision requirements.
For formatting, IK, seeds, and failure handling, also see PTP Point-to-Point Planning, LIN Linear Trajectory Planning, and CIRC Circular Trajectory Planning.