新プロロボット班 田中・徳永、中嶋、奥村研ミーティング の経過説明と基盤ソフトのデザイン 奥村研 齋藤 豪 進める順番 言語班との役割分担の報告 求められている基盤ソフトのためのたたき台 簡単な人型雛型ソフトの説明 討論 大きなゴール このような映像の演出を対話形式で計算機と行う にはどのような準備が必要であろうか… 大岡山六階ミーティングでの話し合い 自律的なソフトウェアロボットを作成するにあたり、 – ソフトウェアを、上位層と下位層に分けてデザインする 階層化することにより従来の問題点が明確化する 映像中の対象シーンを絞る – コップを掴む 階層構造を分けるための指針 上位層 – – 自然言語処理 シンボルを取り扱う 高度なプランニング 下位層 – – – 幾何形状を扱う ごく短期間なプランニング 波形を扱う 幾何情報をシンボルにして上位層へ伝える コップを掴む は どれくらい難しいか 言語的には – – 「牛乳を飲んで」 コップをつかんで、口に近づける 行動的には – – コップのどこを掴むか、掴み方はどうするか、 腕の動きをどのように決定するか ロボット班に求められているもの と 実現へのたたき台 下位層実現のための仕様 傀儡のような、対話形式のソフトウェア 人型のロボットを動かす 幾何形状、動作シーケンス、表情とシンボルの対応関係を 持つ 上位層 下位層 世界 実装の土台決めのたたき台 プロムラミング言語 必要なデータ構造 上位層とのインタフェース 下位層内部のモジュール間インタフェース 使用する言語の選定 三次元形状を記述したファイルを扱いやすいこと 立体描画のプログラムが簡単であること GUIの設計が簡単であること オブジェクト指向であること 候補言語: C++ JAVA 比較(1) 三次元形状記述ファイルの扱い易さ – – C++ – 形状記述書式に、仕様がはっきりしているVRML97 VRMLの言語拡張は継続中 H-ANIM拡張が有用 オープンなVRMLパーザ OVAL JAVA – W3DがJAVAパーザを提供 比較(2) 立体描画プログラミングの容易性 – シーングラフが扱えること Xlib、gtk-- OpenGL C++ Performer OpenInventor JAVA3D JAVA 2D点、線 ポリゴン シーングラフ 比較(3) GUIの設計の容易性 C++ gtk-- 他 JAVA AWT 比較(4) オブジェクト指向であること – C++ – ライブラリの統一性 各々ライブラリは開発されているが、それぞれのライブ ラリのデータ構造に共通性が無い JAVA – ライブラリのデータ構造が共通のクラスから継承されて いる 例:シーングラフのツリー構造 JAVA3D VRMLと親和性が高い Video card hardware acceleration 使用可能 描画以外のクラスとも親クラスが共通 JAVAを中心言語にしてはどうか JAVAとC++との結合 GUI関係、三次元データ管理、上位層との交信に ついてはJAVA 部分的なアルゴリズムについてはC++の利用も JNIを使って可能 ネットワークプログラミングでも結合可能 起動時のMain ループはJAVAが受け持つ データ構造 他 ポーズ変形可能な人型データ – – 入手 未決定 オブジェクトのデータ形式 – 形状データ構造 動作データ 形状以外のシンボルの付け方 上位層との交信方法 他のモジュールとの結合方法 仕様検討中 必要機能検討中 未決定 人型データ構造 正確な多関節データ ファイル形式がオープンであること Web3D H-ANIMのデータ形式を使用 動作データ、表情データの形式 動作をどのように生成するかにも依存 動作の段階的な変化が生成が要求される 全く未決定 一例は前日のモーショングラフ オブジェクトのデータ コップの場合 部分名称を付ける 1 部分名称の表す領域も 定義する 2 部分名称を自動的に導 出する手法を検討する シンボルでの上位層への 受け渡しが常に出来るよう に考える 上位層との交信方法 コップを掴むにおいて、プランニングと合わせてお よそ次のようなプロセスが考えられる モジュール間通信 まずは、モジュールにどのようなものがあるか、 プロトタイププログラム JAVA3Dを使ったプログラム 形状データはH-ANIMの一番簡素化された形式 親子関係を持ったシーングラフで定義されている 二つのウィンドウ 関節を指定して、曲げ角を与える 800行程度のコード プログラムの解説 は、後ほど 製作者 Romax 君から 議論 データ形式 人型データでさらに必要となりそうなもの – – – – – – 関節の回転軸 関節の可動角度 各部の質量 (シミュレーション) 発生トルク (シミュレーション) 表情、口の変形度合 他には? ソフトウェアデザイン 世界 下位層 モジュール ール
© Copyright 2024 ExpyDoc