コードレビュー/2011年3月 をテンプレートにして作成
開始行:
[[開発者向け情報>devel]]
~
* 2011年3月 コードレビュー [#fad62255]
** Framework [#uf6736d3]
*** MultiRateHapticを実現するためのFWの実装の現状 [#u1f8c...
- クラス図
-- http://haselab.net/intra/haselab_wiki_before2010/index...
- glutIdleFuncに登録した関数内でPhysicsのステップが動く
- MultiMediaTimerに登録したTimerFunc内でHapticLoopが呼ば...
- MMTimerからidleFuncに同期命令を飛ばす
-- MMTimerで走っている物体の位置と速度をglutIdleの方に代...
- FWInteractScene
-- FWApp側からMMTimerで走っている力覚系のオブジェクト群に...
-- FWSceneを持っている
-- InteractPointerやInteractSolidを保持する
-- FWInteractSceneのStep : 前後にいろいろ追加処理をしたう...
-- FWInteractAdaptee(=実装はFWLDHapticなど)のStepで,...
- 本物のFWSceneはFWInteractSceneが持っている
- LocalのSceneは独自実装
*** Timer問題 [#tdfd4f4a]
- CreateTimerの戻り値をint(id)ではなくオブジェクトにし...
-- UTTimerIfを返して,そこからintervalの設定等を行えるよ...
-- FWAppがtimerを持っている理由は?
--- ユーザがFWApp以外のオブジェクトをCreateするのもおかしい
--- FWApp::Initの中でTimer作成をやってしまう(値等も適当...
- tazzさんがFoundation/UTTimerをしっかり実装しなおしてコ...
-- → FWTimerはなくす予定
*** Physics周辺 [#tdfd4f4a]
- PHContactDetectorに市民権を与える
-- 当たり判定情報をユーザにも開発者にも利用しやすい形で整...
- 力覚専用の物理演算機能
-- FrameworkからPhysicsへ移すか検討.Physicsにおくならあ...
*** モジュールを分ける話 [#bf2a8f3e]
- FWの立ち位置とは?
-- PhysicsとGraphicsをつなげるもの?
-- HIはHapticのみならずキーボードやマウスを含むヒューマン...
- FWの各機能をバラして他のライブラリに入れ,FWはできるだ...
-- Local DynamicsのInteractPointer等はHumanInterfaceへ
-- Local Dynamicsのモビリティ行列計算等はPhysicsへ
-- マウスでつかむのはHumanInterfaceへ
-- マウスで視点変更はGraphicsへ
-- ...etc.
- ...できるの?
-- Local Dynamicsの計算はPHの計算をあこちで利用しながら行...
-- ''↓以下で検討開始''
- アクセレランスの計算は汎用化できるのではないか
-- 現在のアクセレランスの計算はFWLDHaptic3Dの中
-- アクセレランス行列の計算のようなものは制御にも使える
--- LDHapticのアクセレランスは力に対する加速度の行列,軌...
--- 軌道追従制御のは関節トルクの次元数がとても大きくなる...
-- → 自由度nを渡すとn回テストシミュレーションを行って行列...
--- (PHSceneにアイランド機能が付いた暁には,アイランド...
- (ちなみに今までモビリティと呼ばれていたものは実はアク...
- ポインタに一番近い物体の探索はどこに実装すべきか
-- 参考:PHRay : 直線上の最初にある物体を見つける機能
--- CDShape::LineIntersect : 直線に関して交差するかを調べ...
--- 同様に,点から最近傍の物体を探す機能をCDShapeに付けて...
-- そもそも何故CDに入ってないのか?
--- solidPairを持ってるのがPHだから
--- PHContactDetectorがsolidPairや物体のソート結果を持っ...
--- ・ContactDetectorはテンプレートになってて一般ユーザか...
--- ・・ なぜテンプレート? → forLCPかforPenaltyかによ...
-- 近傍物体の探索にはPairは要らないのでは?
--- それでもsolidPairが使いたい場合はある : クリーチャ...
-- → SolidPair, ShapePairの基本クラスを作ってそれが外か...
--- それができるとContactDetectorをテンプレートではなくせ...
-- PHSceneインタフェースを持つのが良いのではないか。
- ↑以上の機能の移行が行われれば,FWにおけるLocal Dynamics...
- フレームワークがPhysicsとHumanInterfaceの橋渡しを行って...
-- この立場は今のまま,現在FW内部にある実装のうち共通で使...
- MMTimerで動いているLocal Dynamicsのシミュレーションはど...
-- ポインタの侵入量から力を算出して出力するような処理を行...
--- つまりHaptic Renderer なので HumanInterface に入れる...
--- ・Graphic RendererがGraphicにあるように.
--- IASolidはPHSolidに依存している(これは速度の観点から...
--- ・これをHIに入れるとHIがPHに依存してしまうので避ける...
--- ・Physicsに入れるべき?
- 剛体を操作するための機能等はPhysicsにいれてしまうべき
-- Physicsの剛体にハンドルを付ける + HumanInterfaceで...
-- これらはマウスで剛体の位置を動かす機能や,ARアプリでカ...
-- → PHPointer
*** 命名問題 [#ea069cda]
- Adapter?
-- Adapterパターンは既存のクラスに覆いかぶさって見た目を...
-- Observerパターンはメッセージを待ち受けるという印象が強...
-- Bridgeパターン : 実装を分離するパターン.Abstraction...
--- Implementerは長い・・・が,Implだと将来 If をやめて I...
--- ''Handler'' とも呼ばれる.''←これで!''
*** FWAppInfoの整理 [#ea2c1fb4]
''(このへんに関してはtazzさんお願いします)''
- FWVFuncBridge
-- RubyでFWAppを継承したクラスを作った時に仮想関数が呼ば...
-- → そういう場合はRuby上でFWAppを書いたほうが早い.不要.
- FWWin
-- Ifでないのはなぜ?
--- → Vec3等と同じ扱い.
--- FWWindowIfにしよう
-- なぜFWAppに居る?FWSdkに持たせるのが筋では?
- FWMouseInfo
-- HumanInterfaceに持っていくべき(というか使ってないけど...
-- Mouseを使うためにHIが必要になるのはいいのか?
--- Deviceは別ライブラリにしよう
--- FWがHIに依存しているのでHIが必要なのは構わないのでは
- FWUICamera
-- 視点変更等はGraphicsに移動
-- HIMouseは2次元のマウスのみ扱う
-- マウスの移動を移動・回転に変換する機能をどこに置くか
--- 状態量は無くして,座標変換をBaseに(緯度・経度・距離...
- FWDragger
-- Physicsとマージ
- FWAppにデフォルトのInitを用意して,改変しなくていい場合...
** Creature [#v2135964]
- BodyGenerator:今は使っていない、体をプログラムで生成す...
- CRScene: シーン(CRCreatureの基本クラス)
- CREngine: エンジン(センサとコントローラ)
-- シーンが持つ。Step()で動くもの。
- センサー:
-- TouchSensor(皮膚のこと)、接触位置と力がかえってく...
-- PHSolidPairを参照してる。
- コントローラ:
-- CRReachingController 躍度最小でリーチング動作。IKを...
-- PHIKEndEffector / PHIKActuator エンドエフェクタに位...
-- IKのバネダンパの設定、なぜ基準姿勢へのバネと並列に入...
-- →到達後、冗長自由度部分が変化していく
-- http://ai.stanford.edu/~ok/ Oussama Khatib Synthesi...
CRCreature {
CRBody{
CRIKSolid{
label= ""; *soRightHand; *ikefRightUpperArm;
}
}
}
- このラベルがHeadのやつをNeckControllerが制御対象にする...
-- →直接ノードを参照するのとどっちがいいの?
終了行:
[[開発者向け情報>devel]]
~
* 2011年3月 コードレビュー [#fad62255]
** Framework [#uf6736d3]
*** MultiRateHapticを実現するためのFWの実装の現状 [#u1f8c...
- クラス図
-- http://haselab.net/intra/haselab_wiki_before2010/index...
- glutIdleFuncに登録した関数内でPhysicsのステップが動く
- MultiMediaTimerに登録したTimerFunc内でHapticLoopが呼ば...
- MMTimerからidleFuncに同期命令を飛ばす
-- MMTimerで走っている物体の位置と速度をglutIdleの方に代...
- FWInteractScene
-- FWApp側からMMTimerで走っている力覚系のオブジェクト群に...
-- FWSceneを持っている
-- InteractPointerやInteractSolidを保持する
-- FWInteractSceneのStep : 前後にいろいろ追加処理をしたう...
-- FWInteractAdaptee(=実装はFWLDHapticなど)のStepで,...
- 本物のFWSceneはFWInteractSceneが持っている
- LocalのSceneは独自実装
*** Timer問題 [#tdfd4f4a]
- CreateTimerの戻り値をint(id)ではなくオブジェクトにし...
-- UTTimerIfを返して,そこからintervalの設定等を行えるよ...
-- FWAppがtimerを持っている理由は?
--- ユーザがFWApp以外のオブジェクトをCreateするのもおかしい
--- FWApp::Initの中でTimer作成をやってしまう(値等も適当...
- tazzさんがFoundation/UTTimerをしっかり実装しなおしてコ...
-- → FWTimerはなくす予定
*** Physics周辺 [#tdfd4f4a]
- PHContactDetectorに市民権を与える
-- 当たり判定情報をユーザにも開発者にも利用しやすい形で整...
- 力覚専用の物理演算機能
-- FrameworkからPhysicsへ移すか検討.Physicsにおくならあ...
*** モジュールを分ける話 [#bf2a8f3e]
- FWの立ち位置とは?
-- PhysicsとGraphicsをつなげるもの?
-- HIはHapticのみならずキーボードやマウスを含むヒューマン...
- FWの各機能をバラして他のライブラリに入れ,FWはできるだ...
-- Local DynamicsのInteractPointer等はHumanInterfaceへ
-- Local Dynamicsのモビリティ行列計算等はPhysicsへ
-- マウスでつかむのはHumanInterfaceへ
-- マウスで視点変更はGraphicsへ
-- ...etc.
- ...できるの?
-- Local Dynamicsの計算はPHの計算をあこちで利用しながら行...
-- ''↓以下で検討開始''
- アクセレランスの計算は汎用化できるのではないか
-- 現在のアクセレランスの計算はFWLDHaptic3Dの中
-- アクセレランス行列の計算のようなものは制御にも使える
--- LDHapticのアクセレランスは力に対する加速度の行列,軌...
--- 軌道追従制御のは関節トルクの次元数がとても大きくなる...
-- → 自由度nを渡すとn回テストシミュレーションを行って行列...
--- (PHSceneにアイランド機能が付いた暁には,アイランド...
- (ちなみに今までモビリティと呼ばれていたものは実はアク...
- ポインタに一番近い物体の探索はどこに実装すべきか
-- 参考:PHRay : 直線上の最初にある物体を見つける機能
--- CDShape::LineIntersect : 直線に関して交差するかを調べ...
--- 同様に,点から最近傍の物体を探す機能をCDShapeに付けて...
-- そもそも何故CDに入ってないのか?
--- solidPairを持ってるのがPHだから
--- PHContactDetectorがsolidPairや物体のソート結果を持っ...
--- ・ContactDetectorはテンプレートになってて一般ユーザか...
--- ・・ なぜテンプレート? → forLCPかforPenaltyかによ...
-- 近傍物体の探索にはPairは要らないのでは?
--- それでもsolidPairが使いたい場合はある : クリーチャ...
-- → SolidPair, ShapePairの基本クラスを作ってそれが外か...
--- それができるとContactDetectorをテンプレートではなくせ...
-- PHSceneインタフェースを持つのが良いのではないか。
- ↑以上の機能の移行が行われれば,FWにおけるLocal Dynamics...
- フレームワークがPhysicsとHumanInterfaceの橋渡しを行って...
-- この立場は今のまま,現在FW内部にある実装のうち共通で使...
- MMTimerで動いているLocal Dynamicsのシミュレーションはど...
-- ポインタの侵入量から力を算出して出力するような処理を行...
--- つまりHaptic Renderer なので HumanInterface に入れる...
--- ・Graphic RendererがGraphicにあるように.
--- IASolidはPHSolidに依存している(これは速度の観点から...
--- ・これをHIに入れるとHIがPHに依存してしまうので避ける...
--- ・Physicsに入れるべき?
- 剛体を操作するための機能等はPhysicsにいれてしまうべき
-- Physicsの剛体にハンドルを付ける + HumanInterfaceで...
-- これらはマウスで剛体の位置を動かす機能や,ARアプリでカ...
-- → PHPointer
*** 命名問題 [#ea069cda]
- Adapter?
-- Adapterパターンは既存のクラスに覆いかぶさって見た目を...
-- Observerパターンはメッセージを待ち受けるという印象が強...
-- Bridgeパターン : 実装を分離するパターン.Abstraction...
--- Implementerは長い・・・が,Implだと将来 If をやめて I...
--- ''Handler'' とも呼ばれる.''←これで!''
*** FWAppInfoの整理 [#ea2c1fb4]
''(このへんに関してはtazzさんお願いします)''
- FWVFuncBridge
-- RubyでFWAppを継承したクラスを作った時に仮想関数が呼ば...
-- → そういう場合はRuby上でFWAppを書いたほうが早い.不要.
- FWWin
-- Ifでないのはなぜ?
--- → Vec3等と同じ扱い.
--- FWWindowIfにしよう
-- なぜFWAppに居る?FWSdkに持たせるのが筋では?
- FWMouseInfo
-- HumanInterfaceに持っていくべき(というか使ってないけど...
-- Mouseを使うためにHIが必要になるのはいいのか?
--- Deviceは別ライブラリにしよう
--- FWがHIに依存しているのでHIが必要なのは構わないのでは
- FWUICamera
-- 視点変更等はGraphicsに移動
-- HIMouseは2次元のマウスのみ扱う
-- マウスの移動を移動・回転に変換する機能をどこに置くか
--- 状態量は無くして,座標変換をBaseに(緯度・経度・距離...
- FWDragger
-- Physicsとマージ
- FWAppにデフォルトのInitを用意して,改変しなくていい場合...
** Creature [#v2135964]
- BodyGenerator:今は使っていない、体をプログラムで生成す...
- CRScene: シーン(CRCreatureの基本クラス)
- CREngine: エンジン(センサとコントローラ)
-- シーンが持つ。Step()で動くもの。
- センサー:
-- TouchSensor(皮膚のこと)、接触位置と力がかえってく...
-- PHSolidPairを参照してる。
- コントローラ:
-- CRReachingController 躍度最小でリーチング動作。IKを...
-- PHIKEndEffector / PHIKActuator エンドエフェクタに位...
-- IKのバネダンパの設定、なぜ基準姿勢へのバネと並列に入...
-- →到達後、冗長自由度部分が変化していく
-- http://ai.stanford.edu/~ok/ Oussama Khatib Synthesi...
CRCreature {
CRBody{
CRIKSolid{
label= ""; *soRightHand; *ikefRightUpperArm;
}
}
}
- このラベルがHeadのやつをNeckControllerが制御対象にする...
-- →直接ノードを参照するのとどっちがいいの?
ページ名:
サイト内検索
and
or
メニュー
Springhead
トップページ
スクリーンショットと紹介
ダウンロード
ドキュメント
開発者向け情報
SprBlender
SprBlender
SprBlenderの特徴
SprBlender使用例
ダウンロード
ドキュメント
Choreonoid Springhead Plugin
CnoidSprPlugin
Counter: 0, today: 0, yesterday: 0