Constraintの改良(2012春) をテンプレートにして作成
開始行:
[[開発者向け情報>devel]]
~
PHConstraintの整理・改良を行いました.
- 作業用ブランチ:
svn+ssh://springhead.info/home/svn/spr2/Springhead2/bran...
- 卒論・修論への影響が出なくなった頃(2月中旬?)にTrunk...
* APIの仕様変更 [#wa6bdde8]
- JointのLimitをAPIクラスとし,If / Desc / Stateを付けま...
-- これに伴い,Limitを使用するにはjointのCreateLimitを呼...
/* PH1DJointIf* jo; */
jo = phScene->CreateJoint(/* ・・・ */)
PH1DJointLimitDesc descLimit;
descLimit.range = Vec2d(Rad(-10), Rad(20));
jo->CreateLimit(desc);
-- また,Limitのパラメータを変更するにはGetLimit()を用い...
jo->GetLimit()->SetRange(Vec2d(0, Rad(90)));
- PHJoint1D*** → PH1DJoint*** に名称変更しました.
- PHBallJointの円錐可動域とSpline曲線可動域が別クラスとな...
-- これにより,SplineLimitが実用可能となりました.
/* PHBallJointIf* jo */
PHBallJointSplineLimitDesc descLimit;
limit = jo->CreateLimit(descLimit)
limit->AddNode( Rad(90), Rad(0), Rad(10), Rad(50), Rad...
...
- FWSceneにJointLimitを描画する機能が付きました.
// JointLimitの描画を有効にする
fwScene->EnableRenderLimit(true);
- IKActuatorのSpring/Damperがなくなりました.
-- これはJointのリファクタリングとは直接関係ないのですが...
* 実装上の主要な変更 [#r61d79f3]
- PHConstraintに,拘束軸を管理するAxisIndexクラス(axes)...
-- SetupLCP()から呼ばれるSetupAxisIndex()においてaxes.Ena...
-- SetupLCP()の中で axes.CreateList() が呼ばれた時点でEna...
-- IterateLCP()の中ではaxes[n]に従って計算
- (なお,SetupAxisIndexは従来のSetConstrainedIndexに相当...
- Limit/Motor の f を,基本的にはPHConstraintのfに統合し...
-- このため,Limit/MotorからSetupLCP/IterateLCPが撤廃され...
-- BallJointLimitは独自の座標系を持つため,独自にfを持っ...
- Motorの機能をクラステンプレート一つにまとめました.
-- N自由度関節用モーター PHNDJointMotor<NDOF>
-- PHSpringについても実装はPHSpringMotor(PHNDJointMotor<...
* サンプル [#i6cd5975]
- Samples/Physics/Joints の Scene:0(Chain) と Scene:1(Lin...
- Samples/EmbPython/PythonSpr (main.pyに記述されています)
* 未確認の機能 [#k05f97d5]
以下の機能は整理しましたが動作を確認していません.
- PathJoint
- 3要素モデル(機能自体はNDJointMotorに組み込まれています)
- ContactSurface
** 既知の未実装(メモ) [#ha6fe520]
- MotorのsecondMoment
- SplineLimitのlimitDir
- ABA時のSliderJointのbConstraintRollX=false
-- movableAxesを変更すれば解決すると思われる
- LimitのSaveStateがされてない可能性がある
-- PHConstraintEngineをいじる必要があるかも
終了行:
[[開発者向け情報>devel]]
~
PHConstraintの整理・改良を行いました.
- 作業用ブランチ:
svn+ssh://springhead.info/home/svn/spr2/Springhead2/bran...
- 卒論・修論への影響が出なくなった頃(2月中旬?)にTrunk...
* APIの仕様変更 [#wa6bdde8]
- JointのLimitをAPIクラスとし,If / Desc / Stateを付けま...
-- これに伴い,Limitを使用するにはjointのCreateLimitを呼...
/* PH1DJointIf* jo; */
jo = phScene->CreateJoint(/* ・・・ */)
PH1DJointLimitDesc descLimit;
descLimit.range = Vec2d(Rad(-10), Rad(20));
jo->CreateLimit(desc);
-- また,Limitのパラメータを変更するにはGetLimit()を用い...
jo->GetLimit()->SetRange(Vec2d(0, Rad(90)));
- PHJoint1D*** → PH1DJoint*** に名称変更しました.
- PHBallJointの円錐可動域とSpline曲線可動域が別クラスとな...
-- これにより,SplineLimitが実用可能となりました.
/* PHBallJointIf* jo */
PHBallJointSplineLimitDesc descLimit;
limit = jo->CreateLimit(descLimit)
limit->AddNode( Rad(90), Rad(0), Rad(10), Rad(50), Rad...
...
- FWSceneにJointLimitを描画する機能が付きました.
// JointLimitの描画を有効にする
fwScene->EnableRenderLimit(true);
- IKActuatorのSpring/Damperがなくなりました.
-- これはJointのリファクタリングとは直接関係ないのですが...
* 実装上の主要な変更 [#r61d79f3]
- PHConstraintに,拘束軸を管理するAxisIndexクラス(axes)...
-- SetupLCP()から呼ばれるSetupAxisIndex()においてaxes.Ena...
-- SetupLCP()の中で axes.CreateList() が呼ばれた時点でEna...
-- IterateLCP()の中ではaxes[n]に従って計算
- (なお,SetupAxisIndexは従来のSetConstrainedIndexに相当...
- Limit/Motor の f を,基本的にはPHConstraintのfに統合し...
-- このため,Limit/MotorからSetupLCP/IterateLCPが撤廃され...
-- BallJointLimitは独自の座標系を持つため,独自にfを持っ...
- Motorの機能をクラステンプレート一つにまとめました.
-- N自由度関節用モーター PHNDJointMotor<NDOF>
-- PHSpringについても実装はPHSpringMotor(PHNDJointMotor<...
* サンプル [#i6cd5975]
- Samples/Physics/Joints の Scene:0(Chain) と Scene:1(Lin...
- Samples/EmbPython/PythonSpr (main.pyに記述されています)
* 未確認の機能 [#k05f97d5]
以下の機能は整理しましたが動作を確認していません.
- PathJoint
- 3要素モデル(機能自体はNDJointMotorに組み込まれています)
- ContactSurface
** 既知の未実装(メモ) [#ha6fe520]
- MotorのsecondMoment
- SplineLimitのlimitDir
- ABA時のSliderJointのbConstraintRollX=false
-- movableAxesを変更すれば解決すると思われる
- LimitのSaveStateがされてない可能性がある
-- PHConstraintEngineをいじる必要があるかも
ページ名:
サイト内検索
and
or
メニュー
Springhead
トップページ
スクリーンショットと紹介
ダウンロード
ドキュメント
開発者向け情報
SprBlender
SprBlender
SprBlenderの特徴
SprBlender使用例
ダウンロード
ドキュメント
Choreonoid Springhead Plugin
CnoidSprPlugin
Counter: 0, today: 0, yesterday: 0