# Units and Pose Representation ## Public units `URCtrl` standardizes its public units for convenient use in experimental scripts by researchers. | Type | Representation | Unit | |---|---|---| | P coordinates | `[x, y, z, rx, ry, rz]` | mm, degree | | J coordinates | `[j1, j2, j3, j4, j5, j6]` | degree | | speed | `0 < value <= 100` | % | | jspeed | `0 < value <= 100` | % | | accel | `0 < value <= 100` | % | | decel | `0 < value <= 100` | % | | `move_path()` blend | float | m | ## Internal UR units UR RTDE uses m / rad. `URCtrl` converts values at the boundary between the public interface and RTDE. ```text Public interface mm / degree / % ↓ URCtrl ↓ RTDE m / rad / SI ``` ## P coordinates P coordinates contain the following six components: ```python [x, y, z, rx, ry, rz] ``` `x, y, z` are expressed in mm. `rx, ry, rz` form a rotation vector expressed in degrees. ## Rotation vector UR orientations are not Euler angles. `rx, ry, rz` form a rotation vector: three components obtained by multiplying the rotation axis by the rotation angle. `URCtrl` exposes each rotation-vector component in degrees. These are **not** roll / pitch / yaw angles in degrees. ## J coordinates J coordinates contain six joint angles: ```python [j1, j2, j3, j4, j5, j6] ``` The public unit is degree. ## speed / accel `speed`, `jspeed`, `accel`, and `decel` are all percentages. Internally, they are converted to physical speeds and accelerations as follows: ```text linear speed = UR_MAX_LINEAR_SPEED * speed / 100 joint speed = UR_MAX_JOINT_SPEED * jspeed / 100 linear accel = UR_MAX_LINEAR_ACCELERATION * accel / 100 joint accel = UR_MAX_JOINT_ACCELERATION * accel / 100 ``` ## Default values | Setting | Default | |---|---:| | `UR_MAX_LINEAR_SPEED` | 0.25 m/s | | `UR_MAX_LINEAR_ACCELERATION` | 1.2 m/s² | | `UR_MAX_JOINT_SPEED` | 1.05 rad/s | | `UR_MAX_JOINT_ACCELERATION` | 1.4 rad/s² | | `UR_DEFAULT_BLEND_RADIUS` | 0.005 m | These values can be overridden in the configuration.