新プロロボット班 田中・徳永、中嶋、奥村研ミーティングの経過説明と基盤

新プロロボット班
田中・徳永、中嶋、奥村研ミーティング
の経過説明と基盤ソフトのデザイン
奥村研 齋藤 豪
進める順番

言語班との役割分担の報告

求められている基盤ソフトのためのたたき台

簡単な人型雛型ソフトの説明

討論
大きなゴール

このような映像の演出を対話形式で計算機と行う
にはどのような準備が必要であろうか…
大岡山六階ミーティングでの話し合い

自律的なソフトウェアロボットを作成するにあたり、
–
ソフトウェアを、上位層と下位層に分けてデザインする
階層化することにより従来の問題点が明確化する

映像中の対象シーンを絞る
–
コップを掴む
階層構造を分けるための指針

上位層
–
–

自然言語処理
シンボルを取り扱う 高度なプランニング
下位層
–
–
–
幾何形状を扱う ごく短期間なプランニング
波形を扱う
幾何情報をシンボルにして上位層へ伝える
コップを掴む は どれくらい難しいか

言語的には
–
–

「牛乳を飲んで」
コップをつかんで、口に近づける
行動的には
–
–
コップのどこを掴むか、掴み方はどうするか、
腕の動きをどのように決定するか
ロボット班に求められているもの
と
実現へのたたき台
下位層実現のための仕様



傀儡のような、対話形式のソフトウェア
人型のロボットを動かす
幾何形状、動作シーケンス、表情とシンボルの対応関係を
持つ
上位層
下位層
世界
実装の土台決めのたたき台




プロムラミング言語
必要なデータ構造
上位層とのインタフェース
下位層内部のモジュール間インタフェース
使用する言語の選定




三次元形状を記述したファイルを扱いやすいこと
立体描画のプログラムが簡単であること
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 君から
議論
データ形式

人型データでさらに必要となりそうなもの
–
–
–
–
–
–
関節の回転軸
関節の可動角度
各部の質量 (シミュレーション)
発生トルク
(シミュレーション)
表情、口の変形度合
他には?
ソフトウェアデザイン
世界
下位層
モジュール
ール