Hi Anja,
On 06/04/2013 09:40 AM, Anja Schäfer wrote:
Hello Julius (hello List),
my constraint condition is that both point clouds should never intersect
each other. In mathematical terms this is written as: c(k,p,w) = n_i *
(R*p_i - x_i) > 0 or < 0 for all i.
If c < 0 or c > 0 is valid is determined for all i before the
minimization problem is started.
Ok, I understand. The constraints are almost linear then, if your angles
are small (up to the rotation matrix).
x_i is a point from the model point set, p_i from the data point set
(that is being 'moved' to x_i), n_i are the normals for each point x_i
and R is a standard rotational matrix (R \in SO(3)). k,w,p are the
rotational angles (k = rotation around x-axis, p = rotation around
y-axis, w = rotation around z-axis).
Parametising a rotation matrix like this is problematic, since it can
lead to the gimbal lock problem
(http://en.wikipedia.org/wiki/Gimbal_lock). This is, unless you are
using incremental (i.e. small) angles. You might want to switch to
another representation of 3D-rotation, like quaternions.
The gimbal lock _can_ be the source of your problem, since near the
gimbal lock, you will get problems with the Jacobian of your objective
function (and I think the Hessian will be undefined).
And yes, my initial solution is in the feasible region.
Does your problem converge with constraints turned of?
Do you calculate Jacobians numerically or analytically? If analytically,
double check it by comparing to a numerically calculated Jacobian. In my
experience, 90% of all problems I had with optimization where due to
wrong Jacobians.
Best,
Julius
Best regards,
Anja
On 06/03/2013 06:16 PM, Julius Ziegler wrote:
Hello Anja,
On 06/03/2013 06:05 PM, Anja Schäfer wrote:
Hello,
I'm currently implementing a variation of the classical ICP algorithm
and it works fine with artificial data. If I use the real-world data I
actually have, the solution produced by the SLSQP algorithm is
infeasible (although there definitely IS a feasible solution).
I double-checked my constraint functions, I start with feasible data and
"I start with feasible data": Does this mean that your initial
solution is in the feasible region? Otherwise, SQP cannot guarantee to
converge to a feasible solution.
Also, remember that SQP still only works for convex problems. Your
objective function is very likely convex (standard ICP is a least
squares problem), but are your constraints? Could you describe what
your constraints are in your application (I know a little bit of ICP
and registration problems.)
Best regards,
Julius
I tried setting max_eval and max_time but nothing seems to work.
Is there anything else I can do?
Thanks
Anja
--
Dipl.-Inform. Julius Ziegler <[email protected]>
Institut für Mess- und Regelungstechnik
Karlsruher Institut für Technologie
Department of Measurement and Control
Karlsruhe Institute of Technology
Engler-Bunte-Ring 21
76131 Karlsruhe
Tel. +49 721 608 47146
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss