Minimization falls in wrong minima
Mostrar comentarios más antiguos
Dear all,
The problem is to charaterize a displacement in the 3D space of an object.
We know the dimension of the object and its inital position (coordinates of all edges).
We also know distances (enough distances) between the oject in the final position and references points (points of known coordinates).
I use so far a rotation and a translation to operate the displacement in space (also one could use quaternion). It is expressed in a 4x4 matrix:
a b c t1
d e f t2
g h i t3
0 0 0 1
I use the function fsolve to minimize the folowing expression:
-distances between the final position of the object and the references points
-conservation of the object dimension (rigid transformation)
- the determinant of the rotation submatrix of the 4x4 matrix should be 1.
Nevertheless I have solutions with exit flag -2 and the object is distorded during transformation (30% of the outputs are wrong). The problem seems to come from the algorithm stability and it tendency to fall in local minima.
Would you know a better way to do this.
The final goal would be to use the algorithm with references points that cannot all provide a solution. In the ideal case the algorithm would only fail for the situations where there is no possible solution.
many thanks
julien
5 comentarios
Andrew Newell
el 10 de Mayo de 2011
What are you multiplying the matrix by?
Julien
el 10 de Mayo de 2011
Andrew Newell
el 10 de Mayo de 2011
To repeat my statement below: determinant=1 is not sufficient to ensure that the matrix is a rotation matrix.
Andrew Newell
el 10 de Mayo de 2011
I still don't know what the significance of the fourth component of your coordinates is.
Julien
el 10 de Mayo de 2011
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Coordinate Transformations en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!