Minimization falls in wrong minima
Ältere Kommentare anzeigen
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 Kommentare
Andrew Newell
am 10 Mai 2011
What are you multiplying the matrix by?
Julien
am 10 Mai 2011
Andrew Newell
am 10 Mai 2011
To repeat my statement below: determinant=1 is not sufficient to ensure that the matrix is a rotation matrix.
Andrew Newell
am 10 Mai 2011
I still don't know what the significance of the fourth component of your coordinates is.
Julien
am 10 Mai 2011
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Coordinate Transformations finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!