Can Least Squares Solve for Rigid Transform?

  • I
  • Thread starter PabloBot
  • Start date
  • Tags
    Transform
In summary, a rigid transform is a mathematical operation that preserves distance and angles between objects or points. It is commonly used in computer graphics and robotics to describe the movement or position of an object in a 3D space. It differs from other types of transformations because it only changes position and orientation, not shape or size. The components of a rigid transform are six parameters - three for translation and three for rotation - which determine how an object moves or is positioned in space. In computer graphics, rigid transform is used to animate 3D objects and combine them to create complex scenes. It is also widely used in real-world applications such as robotics, motion capture, and navigation systems to track and control the movement of objects or vehicles.
  • #1
PabloBot
3
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
  • #2
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:
  • #3
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
  • #4
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.
 

1. What is a rigid transform?

A rigid transform is a mathematical operation that preserves distance and angles between objects or points. It is commonly used in computer graphics and robotics to describe the movement or position of an object in a 3D space.

2. How is rigid transform different from other types of transformations?

Rigid transform is different from other transformations, such as non-rigid or affine transformations, because it does not change the shape or size of an object. It only changes its position and orientation.

3. What are the components of a rigid transform?

A rigid transform can be described by six parameters: three for translation (x, y, and z coordinates) and three for rotation (pitch, yaw, and roll angles). These parameters determine how an object moves or is positioned in space.

4. How is rigid transform used in computer graphics?

Rigid transform is used in computer graphics to animate 3D objects, such as characters or vehicles, by moving and rotating them in a virtual space. It is also used to transform and combine different objects in a scene to create complex animations.

5. Can rigid transform be used in real-world applications?

Yes, rigid transform is commonly used in real-world applications such as robotics, motion capture, and navigation systems. It is used to track and control the movement of objects or vehicles in a physical space.

Similar threads

  • Classical Physics
Replies
4
Views
196
  • Mechanics
Replies
3
Views
111
  • Classical Physics
Replies
3
Views
770
  • Advanced Physics Homework Help
Replies
0
Views
242
  • Special and General Relativity
Replies
29
Views
1K
  • Linear and Abstract Algebra
Replies
1
Views
925
Replies
13
Views
2K
  • Linear and Abstract Algebra
2
Replies
43
Views
5K
  • Linear and Abstract Algebra
Replies
5
Views
1K
  • Mechanics
Replies
13
Views
981
Back
Top