# Calculating Error of Arm Manipulator

How can we calculate the error position of arm manipulator?

Let's say we have a Transformation Matrix:

$$\begin{bmatrix} R_{00} & R_{01} & R_{02} & x\\ R_{10} & R_{11} & R_{12} & y\\ R_{20} & R_{21} & R_{22} & z\\ 0 & 0 & 0 & 1 \end{bmatrix}$$

and target Position: x', y', z'.

I've found out the error for x, y, z is:

$$\epsilon_x = x-x' \\ \epsilon_y = y-y' \\ \epsilon_z = z-z'$$

From a reference I found, the position error is:

$$\epsilon = \sqrt{(x-x')^2 + (y-y')^2 + (z-z')^2}$$

Is this the correct formula to find position error? I may be confusing it with Root Mean Square Error/Standard Deviation from statistical methods.

The interpretation of error for a robot manipulator pose is subjective in terms of what is the error being used for. A robot manipulator pose is combination of both position (x, y, z) and the orientation (quaternions or euler angles) and thus, designing the error could partially or completely include all terms.

Your representation of error is essentially scalar Euclidean distance for robot pose, acceptable for tasks where the orientation of the end-effector is not important. These applications are very few and a general example would be planar robots like the SCARA. It could also be useful in cases where the error is to be decoupled(position and orientation errors are differently analyzed/).

In a lot of cases, the error is left as a vector representation instead. That allows for tracking attempts are made for all individual directions.

Error = [(x-x') (y-y') (z-z')]'

The current scalar representation fails to convey the actual information. It could be misleading where a deviation of 1 cm along all individual axes would result in a error of 1.73205081 cm which would be equivalent to the error that a deviation of 3 cm along the one of the axes would result in. The former sounds acceptable for pick and place task because there would be some tolerance in all directions while the latter means there needs to be considerably larger tolerance.

I would propose decoupled vector representation of position and orientation error in the robot pose.

• Hi, Mr. Akshay. Big thanks for your in depth and use cased explanation! Then, is it okay to only calculate position error if the robot task only revolves pick and place? I kinda confused about decoupled position and orientation error, can you explained it a bit to me or any helpful reference for beginners like me? – Michael Iskandar Sep 10 '19 at 10:38

When the manipulator's tool position $$p_\text{tool} = (x_\text{tool}, y_\text{tool}, z_\text{tool})$$ is different from the point $$p_\text{target} = (x_\text{target}, y_\text{target}, z_\text{target})$$ where the manipulator should go to, we say there is position error.

Intuitively, position error $$e$$ should tell us how far the current tool point $$p_\text{tool}$$ is from the expected point $$p_\text{target}$$. So a natural choice of the formula to use to calculate position error given $$p_\text{tool}$$ and $$p_\text{target}$$ is how we would measure the distance between two points in a 3D space, i.e. $$e = \Vert p_\text{tool} - p_\text{target} \Vert_2 = \sqrt{(x_\text{tool} - x_\text{target})^2 + (y_\text{tool} - y_\text{target})^2 + (z_\text{tool} - z_\text{target})^2}.$$

However, in general, the function used to calculate position errors, does not have to be the square root of squared differences as above but can be any distance metric.

The root-mean-square error is kind of similar to the position error above (in case $$L_2$$-norm is used as the distance metric), but used in a different context.

While the position error tells us how much a single measurement ($$p_\text{tool}$$) deviates from the expected value ($$p_\text{target}$$), the root-mean-square shows how much a given set of measurements (for example, $$\{p_\text{tool}^{1}, p_\text{tool}^{2}, \ldots, p_\text{tool}^{N}\}$$) deviates from expected values ($$\{p_\text{target}^{1}, p_\text{target}^{2}, \ldots, p_\text{target}^{N}\}$$). It might be used when, say, you control the manipulator to go along a path of $$10$$ points and you want to see how well the manipulator tracks those $$10$$ points, for example.

While generally a position error is a single number as mentioned above, at times we might want to express a position error as a vector (as @Akshay mentioned in this answer) as it gives us which direction the measured point deviates from the expected one, which could be useful for further use.

• Hi Mr. Petch, thanks for your explanation about the difference of position error and RMSE, it's really helping me. Is it okay to assume position error in a percentage? – Michael Iskandar Sep 10 '19 at 10:28