Comparing Poses
Comparing poses might sound like a simple task at first, however in practice it can get quite complicated. The PoseComparison
class contains a static method to help solve these problems.
Comparing Translations
Comparing translations is a simple task as it just involves two 3-dimensional vectors that can be subtracted to determine the difference between them.
Comparing Rotations
Comparing rotations involves more thought than rotations. Let us use an example to help guide us through this process. The way we choose to represent this difference is as an angle on a sphere.
Say we have two rotations \(R_1\) and \(R_2\). As with all 3D rotations, there are many ways to describe/represent them:
A good way to determine the compound rotation between \(R_1\) and \(R_2\) is to multiply the matrix of one by the inverted matrix of the other:
To determine the angle on the sphere that separate these two rotations, we can take norm of the Rodrigues representation of the compound rotation, as that defines the angle of the compound rotation between the two rotations:
This value can then be compared with a threshold (close to zero) to determine if \(R_1\) and \(R_2\) are different or not.