I Can Least Squares Solve for Rigid Transform?

  • I
  • Thread starter Thread starter PabloBot
  • Start date Start date
  • Tags Tags
    Transform
PabloBot
Messages
3
Reaction score
1
Background: I have a set of known 3D feature points {x_i} on the surface of an object in some reference position/orientation at time t = 0. At t > 0 the object will have moved by a rigid transform. I am using computer vision to estimate the position of the 3D feature points {y_i}. I want to solve for the rigid transform (rotation and translation).

The obvious solution is if I have 4 points, I can use homogeneous coordinates and just solve Y = AX for A, where Y has columns y_i and X has columns x_i.

Am I guaranteed that A will only contain rotation and translation?

Also, I read online that for this system:
"Since there are errors but the problem is linear, the best approach to solve this is through least squares"

Why is this so? As long as the points aren't collinear won't X be invertible to satisfy the equation?

Another approach I was thinking was to use that distance are preserved and solve for the translation separately. Suppose Q is the pivot point in the reference position. After translation Q' = Q + t.
I know distances are preserved so:

|P'_0 - Q'| = c1
|P'_1 - Q'| = c2
|P'_2 - Q'| = c3

Can I use some numerical method to solve this system of nonlinear equations? I think there will be two solutions in 3D space, but I could use constraint that the overall rotation angle will be < 90 degrees to pick the right one.
 
Physics news on Phys.org
PabloBot said:
Background: I have a set of known 3D feature points {x_i} on the surface of an object in some reference position/orientation at time t = 0. At t > 0 the object will have moved by a rigid transform. I am using computer vision to estimate the position of the 3D feature points {y_i}. I want to solve for the rigid transform (rotation and translation).

The obvious solution is if I have 4 points, I can use homogeneous coordinates and just solve Y = AX for A, where Y has columns y_i and X has columns x_i.

Am I guaranteed that A will only contain rotation and translation?
It is guaranteed that a rigid transformation is a combination of translation and rotation. It seems like that would be Y = AX + B.
Also, I read online that for this system:
"Since there are errors but the problem is linear, the best approach to solve this is through least squares"

Why is this so? As long as the points aren't collinear won't X be invertible to satisfy the equation?
You don't just want any solution. You want one that is a combination of translation and rotation. If there are errors in the position measurements, a solution of the linear equations will probably not be a combination of translation and rotation. You can use lease squares to find the closest approximation that is.
Another approach I was thinking was to use that distance are preserved and solve for the translation separately. Suppose Q is the pivot point in the reference position. After translation Q' = Q + t.
It's not clear to me that you should separate the problem that way when there are position measurement errors. It will give you a solution, but to get the best lease squared solution It may have to be solved as one least squares problem.
 
Last edited:
that would be Y = AX + B.

Yes, but there is a trick using augmented/homogeneous coordinates where if you write points (x, y, z, 1) and use 4x4 matrix, you can represent the translation and linear transformation (I want to restrict to rotation, however), as a single matrix. See "Augmented Matrix" from https://en.wikipedia.org/wiki/Affine_transformation.

You don't just want any solution. You want one that is a combination of translation and rotation. If there are errors in the position measurements, a solution of the linear equations will probably not be a combination of translation and rotation. You can use lease squares to find the closest approximation that is.

I think I see what you are saying. If I just use 4 data points with errors, I'll probably get some scaling/shear in there. Even with least squares how do I restrict it to rotation and translation only?
 
  • Like
Likes FactChecker
PabloBot said:
Yes, but there is a trick using augmented/homogeneous coordinates where if you write points (x, y, z, 1) and use 4x4 matrix, you can represent the translation and linear transformation (I want to restrict to rotation, however), as a single matrix. See "Augmented Matrix" from https://en.wikipedia.org/wiki/Affine_transformation.
Good point.
I think I see what you are saying. If I just use 4 data points with errors, I'll probably get some scaling/shear in there. Even with least squares how do I restrict it to rotation and translation only?
Put the matrices in the general form of a rotation and a translation with parameters. Then use least squares minimization to determine the best parameter values.
 
I asked online questions about Proposition 2.1.1: The answer I got is the following: I have some questions about the answer I got. When the person answering says: ##1.## Is the map ##\mathfrak{q}\mapsto \mathfrak{q} A _\mathfrak{p}## from ##A\setminus \mathfrak{p}\to A_\mathfrak{p}##? But I don't understand what the author meant for the rest of the sentence in mathematical notation: ##2.## In the next statement where the author says: How is ##A\to...
The following are taken from the two sources, 1) from this online page and the book An Introduction to Module Theory by: Ibrahim Assem, Flavio U. Coelho. In the Abelian Categories chapter in the module theory text on page 157, right after presenting IV.2.21 Definition, the authors states "Image and coimage may or may not exist, but if they do, then they are unique up to isomorphism (because so are kernels and cokernels). Also in the reference url page above, the authors present two...
##\textbf{Exercise 10}:## I came across the following solution online: Questions: 1. When the author states in "that ring (not sure if he is referring to ##R## or ##R/\mathfrak{p}##, but I am guessing the later) ##x_n x_{n+1}=0## for all odd $n$ and ##x_{n+1}## is invertible, so that ##x_n=0##" 2. How does ##x_nx_{n+1}=0## implies that ##x_{n+1}## is invertible and ##x_n=0##. I mean if the quotient ring ##R/\mathfrak{p}## is an integral domain, and ##x_{n+1}## is invertible then...

Similar threads

Replies
1
Views
2K
Replies
2
Views
203
Replies
1
Views
3K
Replies
4
Views
1K
Replies
8
Views
3K
Replies
20
Views
4K
Replies
3
Views
1K
Back
Top