Tracking 1 point using 3 reference points in 3 dimensions

6 visualizaciones (últimos 30 días)
E_Llama
E_Llama el 12 de Ag. de 2015
Comentada: E_Llama el 17 de Ag. de 2015
I have four points (A,B,C and X) in 3D space that are all a part of a fixed frame. Points A,B and C are tracked throughout space. Point X, however, is only tracked in the first frame.
Frame 1: The location of four points (A,B,C and X) in 3-D space. Frame 2: The location of three points (A,B,C) in 3-D space.
Points A,B, and C move between Frame 1 and 2. I want to be able to find the coordinates of point X in Frame 2, based on its position relative to A,B and C in Frame 1.
Thanks for any help!!!
  2 comentarios
Walter Roberson
Walter Roberson el 13 de Ag. de 2015
When you say "fixed frame" do you mean that the angle and distances between A, B, C and X are fixed? Is it possible that the object will "flip", including because the item being tracked has been "turned around and coming back the other way"? Does the object change size between frames (due to perspective) ?
E_Llama
E_Llama el 17 de Ag. de 2015
Yes, the distances between all the points are fixed. No, there is no possibility of the objects "flipping". The object does not change size between frames.

Iniciar sesión para comentar.

Respuestas (2)

James Wiken
James Wiken el 14 de Ag. de 2015
You can do this by first defining the position of X relative to A, B, and C in the first frame then use that knowledge when the positions of A, B, and C change in future frames. A detailed description of the process is as follows:
Assumptions:
  • The positions of A, B, C, and X can be defined as a rigid body. In other words, the relative positions and orientations between these points do not change from frame to frame (no stretching, no scaling, etc.).
  • Points A, B, and C are not colinear.
Steps:
  1. Use the points A, B, and C in the first frame to define a plane in the fixed frame F.
  2. Define a reference frame I, with the origin on the plane. Two axes span the plane with the other normal to it. For example, set point A as the origin, the x-axis parallel to the vector between points A and B, and use the right-hand rule to define the rest of the axes.
  3. Define the position of point X in the reference frame I. Because the relative positions between A, B, C, and X do not change, this position does not change even as positions of points A, B, and C change in the fixed frame F from frame to frame.
  4. In the second frame, find the new plane defined by the new positions of points A, B, and C.
  5. Transform the known position of point X in the reference frame I into the fixed frame F using the position and orientation of the plane defined in the second frame.
  6. Steps 4 and 5 can be used to find the position of point X in the fixed frame F for any frame after the first.
  1 comentario
E_Llama
E_Llama el 17 de Ag. de 2015
Thanks for the response James, Interesting, so I am establishing a new reference frame with my 3 points with the knowledge that the fourth point will have the same coordinates in the new reference frame. I understand the theory, but i'm not sure my knowledge of vector math is up to par. Do you have any suggested references to accomplish this task?

Iniciar sesión para comentar.


Matt J
Matt J el 17 de Ag. de 2015
Editada: Walter Roberson el 17 de Ag. de 2015
You can use ABSOR on the File Exchange
p=absor([A1,B1,C1],[A2,B2,C2]);
X2=p.R*X1 + p.t ;
  3 comentarios
Walter Roberson
Walter Roberson el 17 de Ag. de 2015
absor outputs a structure with fields R (registration matrix) and t (translation vector)
E_Llama
E_Llama el 17 de Ag. de 2015
Oh man, that is awesome! Thanks for the help. This is perfect!

Iniciar sesión para comentar.

Categorías

Más información sobre Point Cloud Processing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by