jsk-ros-pkg / jsk_control

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

[optmotiongen] inverse-kinematics for the discrete target #728

Closed mmurooka closed 5 years ago

mmurooka commented 5 years ago

IKでtarget-coordsを複数与えてどれでも良いので,どれか手が届くものに手を伸ばす,という機能の追加です. 信頼性は微妙ですが(N個の候補に普通のIKをN回解いたほうが時間はかかるが確実),ソース,サンプル,ドキュメントは一通り整理されています.(書いたのは数カ月前でこのままだとお蔵入りするのでPullRequestしました.)

manual.pdf の「4.4節 離散的な幾何目標に対する逆運動学計算」に説明があります. サンプルは以下です.

roscd eus_qp/optmotiongen/euslisp/sample
roseus
(load "./sample-sqp-optimization-discrete-kinematics.l")
;; 3つの目標座標から1つを選択してリーチングするIKのサンプル
;; 3つの目標座標が動いており,手を伸ばす先が自動的に切り替わっている
(sample-sqp-optimization-discrete-kinematics :use-sqp-msc? nil) ;; 1つ目のgif
(sample-sqp-optimization-discrete-kinematics :use-sqp-msc? t) ;; 2つ目のgif (3つから2つ選ぶ)

sample-sqp-optimization-discrete-kinematics-single

sample-sqp-optimization-discrete-kinematics-multi