Constraintの改良 をテンプレートにして作成
開始行:
[[開発者向け情報>devel]]
~
* Constraintの改良提案 [#i082c23b]
以下のように、ヤコビアン J、λ、T、Aの行・列数を可変にして...
- 良くなると思われること:
-- 可動域拘束のための f や Jを統合できる。
-- フラグで切り替えるのは遅いかも。
-- T,Aの計算が若干軽くなる。
- 悪くなるとおもわれること:
-- 拘束が増えると大変 → そんなことはめったにない。
-- 可変サイズ行列を使うと遅いかも → テンプレートにする?...
- なぜ回転や並進という概念や、Jsがのこるのか:
-- もともと姿勢がQuaternionで表現されているので、JsからJ...
6x6になってしまう。
-- そのため、1自由度ずつ拘束するのでは、どうしても計算効...
class PHConstraint : public SceneObject, public PHConstr...
public:
SPR_OBJECTDEF_ABST(PHConstraint);
ACCESS_DESC_STATE(PHConstraint);
PHConstraintEngine* engine;
bool bFeasible; ///< 両方の剛体...
bool bArticulated; ///< 関節系を構...
bool bInactive[2]; ///< 剛体が解析...
PHSolid* solid[2]; ///< 拘束する剛体
SpatialTransform X[2]; ///< ワールド座...
SpatialTransform Xj[2]; ///< 剛体の質量...
SpatialTransform Xjrel; ///< ソケットに...
SpatialVector vjrel; ///< ソケットに...
SpatialTransform Js[2]; ///< 拘束ヤコビ...
//[0]:...
//[1]:...
SpatialMatrix J[2]; ///< 拘束ヤコビ...
//[0]:...
//[1]:...
SpatialMatrix AinvJ[2]; // ...
SpatialMatrix T[2]; // T = M.inv() ...
SpatialVector b, db, B; ///< LCPのbベク...
SpatialVector A, dA, Ainv; ///< LCPのA行列...
SpatialVector scale; // 不使用
bool constr[6]; ///< 速度を拘束...
bool constrCorrection[6]; ///< 位置を拘束...
** tazz [10/03/04] hase [#yf5e30e5]
現状のPHConstraintはSocket/Plug座標の相対運動の計算と,関...
これを、相対運動計算クラスと(PHRelativeMotion?)、拘束力計...
基本的にどの拘束も何らかの相対運動に働きかけるので、相対...
># 並進、回転、SwingTwist、軌道などの相対運動クラスと、等...
># RelativeMotion側にfも入れたいな。J fはRelativeMotion側
># Projection, CompBias がConstraint側ですね。
># CompBiasは、軸ごとだと線形になってしまって、大きな誤差...
>>##tazz A, B, fはConstraint側だと思います.MotorやJointL...
>>##hase そうすると、上のソースで、Js[2] までがRelativeMo...
J[2]が6x6だから計算が一回で済むというのと、例えば並進だけ...
SwingTwistのように座標変換が多段でかかるものもあるので設...
>#留意の内容が理解できてないです(hase)
>>##一筋縄では行かない程度の意です。座標変換が複数かかっ...
行列サイズ可変に関しては良くなるかは懐疑的です。やるなら...
>#可変といっても、最初だけでめったに変わらないのだけどね...
>#フラグは嫌い(hase)
終了行:
[[開発者向け情報>devel]]
~
* Constraintの改良提案 [#i082c23b]
以下のように、ヤコビアン J、λ、T、Aの行・列数を可変にして...
- 良くなると思われること:
-- 可動域拘束のための f や Jを統合できる。
-- フラグで切り替えるのは遅いかも。
-- T,Aの計算が若干軽くなる。
- 悪くなるとおもわれること:
-- 拘束が増えると大変 → そんなことはめったにない。
-- 可変サイズ行列を使うと遅いかも → テンプレートにする?...
- なぜ回転や並進という概念や、Jsがのこるのか:
-- もともと姿勢がQuaternionで表現されているので、JsからJ...
6x6になってしまう。
-- そのため、1自由度ずつ拘束するのでは、どうしても計算効...
class PHConstraint : public SceneObject, public PHConstr...
public:
SPR_OBJECTDEF_ABST(PHConstraint);
ACCESS_DESC_STATE(PHConstraint);
PHConstraintEngine* engine;
bool bFeasible; ///< 両方の剛体...
bool bArticulated; ///< 関節系を構...
bool bInactive[2]; ///< 剛体が解析...
PHSolid* solid[2]; ///< 拘束する剛体
SpatialTransform X[2]; ///< ワールド座...
SpatialTransform Xj[2]; ///< 剛体の質量...
SpatialTransform Xjrel; ///< ソケットに...
SpatialVector vjrel; ///< ソケットに...
SpatialTransform Js[2]; ///< 拘束ヤコビ...
//[0]:...
//[1]:...
SpatialMatrix J[2]; ///< 拘束ヤコビ...
//[0]:...
//[1]:...
SpatialMatrix AinvJ[2]; // ...
SpatialMatrix T[2]; // T = M.inv() ...
SpatialVector b, db, B; ///< LCPのbベク...
SpatialVector A, dA, Ainv; ///< LCPのA行列...
SpatialVector scale; // 不使用
bool constr[6]; ///< 速度を拘束...
bool constrCorrection[6]; ///< 位置を拘束...
** tazz [10/03/04] hase [#yf5e30e5]
現状のPHConstraintはSocket/Plug座標の相対運動の計算と,関...
これを、相対運動計算クラスと(PHRelativeMotion?)、拘束力計...
基本的にどの拘束も何らかの相対運動に働きかけるので、相対...
># 並進、回転、SwingTwist、軌道などの相対運動クラスと、等...
># RelativeMotion側にfも入れたいな。J fはRelativeMotion側
># Projection, CompBias がConstraint側ですね。
># CompBiasは、軸ごとだと線形になってしまって、大きな誤差...
>>##tazz A, B, fはConstraint側だと思います.MotorやJointL...
>>##hase そうすると、上のソースで、Js[2] までがRelativeMo...
J[2]が6x6だから計算が一回で済むというのと、例えば並進だけ...
SwingTwistのように座標変換が多段でかかるものもあるので設...
>#留意の内容が理解できてないです(hase)
>>##一筋縄では行かない程度の意です。座標変換が複数かかっ...
行列サイズ可変に関しては良くなるかは懐疑的です。やるなら...
>#可変といっても、最初だけでめったに変わらないのだけどね...
>#フラグは嫌い(hase)
ページ名:
サイト内検索
and
or
メニュー
Springhead
トップページ
スクリーンショットと紹介
ダウンロード
ドキュメント
開発者向け情報
SprBlender
SprBlender
SprBlenderの特徴
SprBlender使用例
ダウンロード
ドキュメント
Choreonoid Springhead Plugin
CnoidSprPlugin
Counter: 0, today: 0, yesterday: 0