jsk-ros-pkg / jsk_control

jsk control ros packages
http://github.com/jsk-ros-pkg/jsk_control
13 stars 51 forks source link

[eus_qp/optmotiongen] add sqp with multi solution candidates #702

Closed mmurooka closed 5 years ago

mmurooka commented 5 years ago

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.) sample-arm-reach-ik-raw-msc

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). sample-sqp-msc-optimization-instant-only-kinematics

2D object moves from start to goal with avoiding obstacles. Four different mode trajectory are generated . demo-2d-body-trajectory-with-msc