Add sqp-msc-optimization class, which can be used instead of conventional sqp-optimization class.
sqp-msc treats multiple solution candidates simultaneously and tries to make different solutions. So, we can possibly avoid local minimum or get different mode (like topology) solutions. (Please see the following samples.)
Manipulator reaches to target coords with :rotation-axis nil. Three different angle-vectors are generated.
(This sample is executed in travis test.)
Humanoid reaches to target coords with :rotation-axis nil with avoiding obstacle. Four different angle-vectors are generated. Two modes of obstacle avoiding are found (i.e. the right arm is inner / outer of obstacle).
2D object moves from start to goal with avoiding obstacles. Four different mode trajectory are generated .
Add sqp-msc-optimization class, which can be used instead of conventional sqp-optimization class.
sqp-msc treats multiple solution candidates simultaneously and tries to make different solutions. So, we can possibly avoid local minimum or get different mode (like topology) solutions. (Please see the following samples.)
Formulation is written in sec. 3.2.1 of updated manual.pdf
Following three samples are added and introduced in README. Now these examples heavily depends on parameters and position of target-coords or obstacle like following, but this PR's feature has potential to solve the problem of conventional IK with pseudo-inverse or sqp. https://github.com/mmurooka/jsk_control/blob/3a01663bc8310b7c78229415146321d0fc524db1/eus_qp/optmotiongen/euslisp/demo/demo-2d-body-trajectory.l#L134-L137
Manipulator reaches to target coords with
:rotation-axis nil
. Three different angle-vectors are generated. (This sample is executed in travis test.)Humanoid reaches to target coords with
:rotation-axis nil
with avoiding obstacle. Four different angle-vectors are generated. Two modes of obstacle avoiding are found (i.e. the right arm is inner / outer of obstacle).2D object moves from start to goal with avoiding obstacles. Four different mode trajectory are generated .