Definitions

The units, coordinate frames and poses the application uses, and the robot singularities to stay away from.

These are the conventions behind every value you configure: which units a number is in, which frameA frame is a position and an orientation in space. It marks the origin and the X, Y and Z directions of a coordinate system. a position is measured in, and how a poseA pose is where something is and how it is turned: a position plus an orientation, measured in a parent frame. A robot’s pose changes as it moves. is written. The last section explains the singularities that make a robot move unpredictably.

Units

The application works in SI units. Positions are in metres and joint angles in radians, both for the arm and for the Cartesian pose.

Quantity Unit Symbol
Length, position metre m
Angle radian rad
Time second s
Mass kilogram kg
Force newton N
Torque newton metre Nm
Pressure pascal Pa
Temperature kelvin K

Where a parameter’s unit is not obvious from its value, its name says so. For example, timeoutSec is in seconds and velocityFilterCutoffHz in hertz.

Frames

All frames are right-handed. The application uses three predefined frames. Hover over a frame in the diagram to see what it is attached to.

World frame: fixed to the ground. X forward, Y left, Z up. X Y Z World Robot base frame: Z along the axis of joint 1. X Y Z Base Tool frame: centre of the flange, Z along the last joint, pointing away from the flange. X Y Z Tool Right-handed frames X forward · Y left · Z up Positive rotation about Z is counterclockwise seen from above
World

Fixed to the ground. X points forward, Y to the left and Z up. Seen from above, a positive rotation about Z is counterclockwise; a positive rotation about Y pitches down.

Base

Fixed to the robot’s foot. Z lies along the axis of the first joint and points up.

Tool

At the tool point: the centre of the flange plus the tool. With no tool set, it sits on the flange. Z lies along the axis of the last joint and points away from the flange.

To set these frames and the tool on your robot, see Frames and tool offset.

Pose

A robot’s pose can be written in two ways. Both examples describe the same pose.

Joint coordinates

One angle per joint, in rad. Every set of joint angles gives exactly one pose.

[-3.142, 1.562, 0.000, 1.571, 0.000, 0.000]

Cartesian pose

[x, y, z, rz, ry, rx]: the tool position in m, then its orientation as ZYX Euler angles in rad, yaw first.

[-0.765, -0.303, 0.004, 0.000, 0.009, 3.142]

A robot cannot reach every Cartesian pose, and a reachable pose often has several joint solutions. Inverse kinematicsInverse kinematics calculates the joint angles that put the tool at a given Cartesian pose. Forward kinematics goes the other way, from joint angles to the tool pose. picks the solution closest to a reference set of joint angles, usually the robot’s previous pose.

Singularities

A singularity is a pose where two or more joint axes line up. There the robot loses a direction of motion, and a small tool movement asks for a very large joint movement.

Shoulder

The centre of the wrist lines up with the axis of joint 1. Joint 1 and a wrist joint try to turn 180° at once.

Elbow

The centre of the wrist lies in the plane of joints 2 and 3, with the arm stretched out. Joint 3 locks or jumps.

Wrist

Joints 4 and 6 line up, with joint 5 near zero. The wrist tries to spin 180°.