[choreonoid-users-ja 00071] Re: Body::calcTotalMomentum(Vector3& out_P, Vector3& out_L)について

中岡 慎一郎 s.nakaoka @ aist.go.jp
2012年 11月 19日 (月) 11:17:11 JST


岡元さん

> Bodyの速度v,w,dqなどの変数のセットはcalcTotalMomentumなどを呼び出す前に自分
> で計算してセットする仕様なのでしょうか?

はい、そうです。

> それともBodyItemの下にMotionItemが存在する状態で自動的に計算・セットする関数
> などが別に用意されているのでしょうか?

なるほど、MotionItemがあるときに、そこから速度も自動でセットしてくれない
のか?ということですね。

そもそも、Body.cpp の内容を見ていただければ分かるように、これら関数の実
装はBodyMotionやBodyMotionItemには依存していません。それらがパラメータに
なっているわけでもありません。従って、これらの関数を使って例えばバランス
補正などの処理を独自に実装する場合、BodyMotionの内容をとってくる部分は自
分で記述する必要があります。

BodyItemの下にBodyMotionItemを置いていると行われるのは、アニメーションの
プレイバックがGUI上で行われるということになります。具体的には、タイム
バーの操作に応じてBodyの内容を更新してsigKinematicStateChangeを発行し、
このシグナルと関連付けられたViewが更新される、という処理になります。この
処理と、独自のバランス補正などを内部的に行う部分とは、直接結びつけるのは
難しいかと思います。

ちなみに、このプレイバック処理のときに、速度や運動量なども更新して、どこ
かに表示してほしいという需要もあるかもしれませんね。そちらについてもコー
ドを追加すれば可能ですが、今までのところあまり必要性を感じなかったので、
位置だけの更新となっています。


(11/16/12 22:35), 岡元 崇紘 wrote:
> ご返信有難うございます。
> Bodyの速度v,w,dqなどの変数のセットはcalcTotalMomentumなどを呼び出す前に自分
> で計算してセットする仕様なのでしょうか?
> それともBodyItemの下にMotionItemが存在する状態で自動的に計算・セットする関数
> などが別に用意されているのでしょうか?
> 
> 宜しくお願いします。
> 
> _______________________________________________
> choreonoid-users-ja mailing list
> choreonoid-users-ja @ choreonoid.org
> https://choreonoid.org/mailman/listinfo/choreonoid-users-ja
> 


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


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