Open s-noda opened 9 years ago
これはfullbody-inverse-kinematicsの箇所でエラーがでるということでしょうか?
fullbody-inverse-kinemacitsをhrp2wで呼ぶ必要がありますか? なければ、:fullbody-inverse-kinematicsはそもそも足のあるロボットで呼ぶことを想定しているので、 足のないロボットは:inverse-kinemaitcsを使ってください。
また、 http://euslisp.github.io/jskeus/jmanual-node170.html にも"for legged robot"との説明がありますので、ぜひご参照ください。
これはfullbody-inverse-kinematicsの箇所でエラーがでるということでしょうか?
はい。
fullbody-inverse-kinemacitsをhrp2wで呼ぶ必要がありますか?
需要があるかはわかりませんが、台車ロボットをベースリンクの動きを考慮してIKを解きたい場合もあるのではないかと思います。例えば冷蔵庫に手を伸ばすときに、ベース固定だと距離によってはIKが解けませんが、ベースのxy並進移動とz軸回り回転を許すようにすればリーチング時の立ち位置も一緒に計算できます。
IKサーバ内のIKはなるべく広い用途に使えるよう fullbody-inverse-kinematics を使っています。
なければ、:fullbody-inverse-kinematicsはそもそも足のあるロボットで呼ぶことを想定しているので、 足のないロボットは:inverse-kinemaitcsを使ってください。
euslisp の irtrobot.l の :fullbody-inverse-kinematics は ベースリンクに6dofジョイント を加えただけのものだと思っていて、これは足の有無は特に関係ないのではないかと思います。 私が使いたいのもこれなのですが、今後、:fullbody-inverse-kinematics に足のあるロボット特有の機能を足す可能性がありうるということでしょうか? なぜ euscollada のつくるロボットモデルは :fullbody-inverse-kinematics がうわ書かれるのでしょう?
fullbody-inverse-kinemacitsをhrp2wで呼ぶ必要がありますか? 需要があるかはわかりませんが、台車ロボットをベースリンクの動きを考慮してIKを解きたい場合もあるのではないかと思います。例えば冷蔵庫に手を伸ばすときに、ベース固定だと距離によってはIKが解けませんが、ベースのxy並進移動とz軸回り回転を許すようにすればリーチング時の立ち位置も一緒に計算できます。
台車ロボットのベースリンクの動きをやるものは、具体的な需要がでてきたら考えましょう。
PR2では、pr2eus/pr2-utils.lで:inverse-kinematicsを上がいています。
このなかで、:use-base t
にすると
https://github.com/jsk-ros-pkg/jsk_pr2eus/blob/master/pr2eus/pr2-utils.l#L24
仮想ジョイントをくっつけてIKをといてくれます。
なぜ euscollada のつくるロボットモデルは :fullbody-inverse-kinematics がうわ書かれるのでしょう?
すいません、これはそのうちなくなる予定です(今諸々確認不足)
euslisp の irtrobot.l の :fullbody-inverse-kinematics は ベースリンクに6dofジョイント を加えただけのものだと思っていて、これは足の有無は特に関係ないのではないかと思います。 私が使いたいのもこれなのですが、今後、:fullbody-inverse-kinematics に足のあるロボット特有の機能を足す可能性がありうるということでしょうか?
:fullbody-inverse-kinematicsは出来上がった当初から今までも、足のロボットを対象としています。 脚型ロボットが全体重心を動かしたり腰高さ・腰姿勢をかえたりする目的で、6dof-jointをつけているイメージです。 (例えば、:move-centroid-on-footするために、6dof-jointの特に並進xy成分が必要になってる、など)
そのため、target-centroid-posなどバランスに関係する :fullbody-inverse-kinematicsのように引数がそのままかいてあったりします。
このときの仮想ジョイントも https://github.com/euslisp/jskeus/blob/master/irteus/irtrobot.l#L390 のように6dof-joint限定になってますし、他の仮想ジョイントがはいることは想定してません。
それと、台車のベースリンクIKのようなものは、ロボットの立ち位置決めIKに相当すると思います。 これは台車ロボットだけでなく脚型ロボットでもあっていいように思います。 つまり、
でやっていますが、同様に脚型ロボットで同じような挙動のプログラムが
となっていて、現状の:fullbody-inverse-kinematicsでサポートしている、バランスをとる、腰高さ姿勢を変える 目的の仮想ジョイントとは別途、仮想ジョイントをつけてあげる必要があります。
最後に、:fullbody-inverse-kinematicsで上記のような立ち位置IKをいれてサポートしてくかというと、 今のところそれはなしでいいのかと思いますがいかがでしょうか。
つまり、全体の方向性として、
があるとして、個人的には2の方が、ユーザが使うべきIKメソッドが:inverse-kinematics一個になるので、 わかりやすいのかなぁとおもいました。 これに関しては、別途issueがあります。 https://github.com/euslisp/jskeus/issues/137
@snozawa さん。詳しくありがとうございます。
2.の方針に賛成です。
see jsk_control #103 (https://github.com/jsk-ros-pkg/jsk_control/issues/103) エラーのでるサンプル
多分原因は
euscollada-robot.l とかの
で、
してるからだと思います。