Top / 日記 / 20070421
/
20070421


20070421 シミュレータのアイデア

シミュレータの実現ステップ

こんなステップでシミュレータをつくろうかなと思います。期間内にできるところまで。

目的にあわせて、どのレベルの正確さを求めるか、が物理シミュレーター作りのポイント。

  • STEP1:通称:LV1
    最低限の動作をシミュレーションする。2次元、3自由度(X,Y,ヨー)の車両のシミュレーション。必要な各種パラメータは実機あわせ。実時間シミュレーションの離散化はシンプルなオイラー法。
    2週間くらいで作るというのはこれくらいが限界かな
    model.PNG

  • STEP2:通称:LV2
    少し動力学、運動学をいれてみる。各種パラメータ(たとえば慣性モーメントとか、テンソルとか)は物性値から計算してみる。2次元、3自由度(X,Y,ヨー)の車両のシミュレーション。実時間シミュレーションの離散化はちょっとこったルンゲクッタで。

  • STEP3:通称:LV3
    3次元、6自由度の運動シミュレーション。ぜんぶ自作プログラミングだと厳しいかも。まっとうな物理エンジンとか、最低でもMATLABくらいは使いたい。

実装よりの整理

実装よりにシミュレータへの要望を整理してみると、こんな感じ

  • Windowsプラットフォームで動作すること
    みんなのPCがWindowsだから。DirectXの過去のLIB使えそうというのもある。

  • 今後のSTEP2,STEP3への物理計算拡張を考慮した設計とすること
    物理計算処理も階層化したほうがよさそうです。ソルバー単位になるかな。。

  • 物理計算エンジン部分を取替え可能に設計すること
    物理計算と描画の境界線は意識しましょう。学生の頃、物理計算用のPG組んだとき、これを混ぜて痛い目を見た。後から描画処理を追加するときに、計算処理に手をいれたくなるもの。

  • パスファインダーをパーツのアセンブリとして表現すること
    将来パスファインダーを構成する部品が変わってもいいように。

  • 3Dグラフィックスへの対応を考慮した設計とすること
    いずれ3Dにも対応させたいので、スケール感をもって、2Dの計算をさせたほうが良いでしょう。

  • 複数台のパスファインダーの同時シミュレーションに対応すること
    複数でアルゴリズム対決みたいなのをシミュレータ上でできたら楽しそう。

  • C++で記述されたパスファインダー制御コードと連携できること
    パスファインダーの制御コードはC++なので、薄いWrapperをかませるような使い方を想定します。


実装イメージ

もう少しイメージをふくらませて

arch0.PNG



添付ファイル: filemodel.PNG 331件 [詳細] filearch0.PNG 318件 [詳細]