Minimization falls in wrong minima
이전 댓글 표시
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
Andrew Newell
2011년 5월 10일
What are you multiplying the matrix by?
Julien
2011년 5월 10일
Andrew Newell
2011년 5월 10일
To repeat my statement below: determinant=1 is not sufficient to ensure that the matrix is a rotation matrix.
Andrew Newell
2011년 5월 10일
I still don't know what the significance of the fourth component of your coordinates is.
Julien
2011년 5월 10일
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Coordinate Transformations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!