[choreonoid-users-ja 00102] Re: シミュレーション中のリンクの位置データの取得について

中岡 慎一郎 s.nakaoka @ aist.go.jp
2013年 6月 18日 (火) 13:44:16 JST


チャンドラさん

産総研の中岡です。

> Link* link = body->link("LINK_NAME")->p.z

についてですがが、これだとZ軸位置のdouble値を Linkへのポインタに入れよう
としていて、おかしな記述になっていますね。(また、z については関数なの
で、z() としなければいけません。)

まず

Link* link = body->link("LINK_NAME");

といったかたちでLinkオブジェクトを取得して、それから

link->p

で位置データにアクセスするとよいかと思います。

ただ、初期値だけが表示されているということで、上記の問題とは関係無かった
かもしれません。

もし関節角を変更してその場合の位置を得たいのであれば、関節角を変更した後に、

body->calcForwardKinematics()

等を行いますと、そこで順運動学が行われて、初めて位置が更新されることにな
ります。



(06/18/13 00:24), チャンドラ ハディ wrote:
> 早稲田大学菅野重樹研究室,B4のチャンドラです.
> お世話になります.
> 
> とあるリンクの位置データ(x,y,z)を取得するには
> どこを参照すればいいのでしょうか.
> 
> 今まで自分で試した時には,勘違いして
> 
> Link* link = body->link("LINK_NAME")->p.z
> 
> などで取得しようとしましたが,MessageViewで
> その値を吐かせてみましたらどうやら
> 初期値だけが入力されていくようです.
> 
> 一体どこを参照すればリンクの位置データ
> を正しく取得できるのでしょうか?
> 
> 素朴の質問で申し訳ありませんが,
> よろしくお願いします.
> 


-- 
中岡 慎一郎 <s.nakaoka @ aist.go.jp>
産業技術総合研究所 知能システム研究部門
ヒューマノイド研究グループ
Phone: 029-861-5161  Fax: 029-862-6519


choreonoid-users-ja メーリングリストの案内