(57)【要約】    【構成】  ロボットシミュレータ１００はコンピュータ１０２を含み、コンピュータ１０２はタッチスクリーン１０４にロボットのモデルを表示する。開発者がタッチスクリーン１０４を通してモデルに触ると、触った部位に予め対応づけられているコミュニケーション行動（反応）を再現する。たとえば、モデルの頭を撫でると、モデルは「なーに」と発話して、手を振るようにアニメーション表示される。    【効果】  オフラインでロボットを開発できる。【選択図】  図１
2006272537.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも身体動作を含むコミュニケーション行動を実行するコミュニケーションロボットのロボットシミュレータであって、
前記コミュニケーションロボットのモデルを画面表示する画面表示手段、
前記画面表示手段に関連して設けられるポインティングデバイス、および
前記ポインティングデバイスの入力に応じて、前記モデルの身体動作をアニメーション表示するアニメーション表示手段を備える、ロボットシミュレータ。
【請求項２】
前記コミュニケーション行動は発話を含み、
前記モデルの身体動作をアニメーション表示するとともに、当該身体動作に伴う発話内容を出力する出力手段をさらに備える、請求項１記載のロボットシミュレータ。
【請求項３】
少なくとも身体動作を含むコミュニケーション行動を実行するコミュニケーションロボットのシミュレーションプログラムであって、
前記コミュニケーションロボットのモデルを画面表示する画面表示ステップ、および
前記画面表示ステップによって画面表示されたモデルの指示入力に応じて、当該モデルの身体動作をアニメーション表示するアニメーション表示ステップを実行させる、シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はロボットシミュレータおよびシミュレーションプログラムに関し、特にたとえば、少なくとも身体動作を含むコミュニケーション行動を行うコミュニケーションロボットの開発を支援する、ロボットシミュレータおよびシミュレーションプログラムに関する。
【背景技術】
【０００２】
たとえば本件出願人による特許文献１には、コミュニケーションロボットに備えられる個々の行動を実行するためのプログラムである行動モジュール間の関係性を視覚化する技術が開示されている。この技術では、行動モジュール間の関係を直感的に把握することができるので、たとえば自律的な行動のための規則の作成・編集等を適切に行えるようになっている。また、その後に実際にロボットを動作させる試験を行い、その編集等の適否を確かめることができる。
【特許文献１】特開２００４−１１４２４２号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
この背景技術では、実際にロボットを動作させて、その編集等の適否を確かめる必要があるが、このようなロボットは比較的高価であり、複数の開発者に対して１台割り当てられる。したがって、そのような試験をするためには、複数の開発者が話し合いにより、予め決めた時間割りで、交替でロボットが使用される。このため、限られた時間で試験を行う必要があり、開発が速やかに進まず、また、開発者毎に使用目的が異なるため、使用する度にプログラムを書き換える必要があった。つまり、開発に余計な手間がかかっていた。
【０００４】
それゆえに、この発明の主たる目的は、新規な、ロボットシミュレータおよびシミュレーションプログラムを提供することである。
【０００５】
この発明の他の目的は、余計な手間を省いてオフラインで開発できる、ロボットシミュレータおよびシミュレーションプログラムを提供することである。
【課題を解決するための手段】
【０００６】
請求項１の発明は、少なくとも身体動作を含むコミュニケーション行動を実行するコミュニケーションロボットのロボットシミュレータであって、コミュニケーションロボットのモデルを画面表示する画面表示手段、画面表示手段に関連して設けられるポインティングデバイス、およびポインティングデバイスの入力に応じて、モデルの身体動作をアニメーション表示するアニメーション表示手段を備える、ロボットシミュレータである。
【０００７】
請求項１の発明では、ロボットシミュレータは、少なくとも身振り手振りのような身体動作を含むコミュニケーション行動を実行するコミュニケーションロボットの当該コミュニケーション行動についてのシミュレーション（試験）を行う。このロボットシミュレータは、画像表示手段、ポインティングデバイス、およびアニメーション表示手段を備える。画像表示手段は、コミュニケーションロボットのモデル（ＣＧ）を画面表示する。ポインティングデバイスは、画面表示手段に関連して設けられ、このポインティングデバイスの入力に応じて、モデルの身体動作をアニメーション表示する。つまり、コミュニケーションロボットの反応動作を、シミュレーションにより、モデルに再現させる。
【０００８】
請求項１の発明によれば、コミュニケーションロボットのモデルを画面表示し、ポインティングデバイスの操作に応じたコミュニケーション行動を、モデルのアニメーション表示により再現するので、現実のコミュニケーションロボットを用いずに、オフラインでロボットを開発することができる。このため、開発に余計な手間を省くことができる。
【０００９】
請求項２の発明は請求項１に従属し、コミュニケーション行動は発話を含み、モデルの身体動作をアニメーション表示するとともに、当該身体動作に伴う発話内容を出力する出力手段をさらに備える。
【００１０】
請求項２の発明では、コミュニケーション行動は、必要に応じて発話を含む。出力手段は、モデルの身体動作をアニメーション表示するとともに、当該身体動作に伴う内容を出力する。
【００１１】
請求項２の発明によれば、コミュニケーションロボットの身体動作のみならず、発話内容を知ることができるため、よりリアルなロボットの反応を理解することができる。
【００１２】
請求項３の発明は、少なくとも身体動作を含むコミュニケーション行動を実行するコミュニケーションロボットのシミュレーションプログラムであって、コミュニケーションロボットのモデルを画面表示する画面表示ステップ、および画面表示ステップによって画面表示されたモデルの指示入力に応じて、当該モデルの身体動作をアニメーション表示するアニメーション表示ステップを実行させる、シミュレーションプログラムである。
【００１３】
請求項３の発明においても、請求項１の発明と同様に、開発に余計な手間を省くことができる。
【発明の効果】
【００１４】
この発明によれば、画面表示されたコミュニケーションロボットのモデルを、ポインティングデバイスの操作に応じてアニメーション表示させるので、実際のコミュニケーションロボットを使用せずに、そのコミュニケーション行動を表現させることができる。つまり、余計な手間を省いて、オフラインで開発することができる。
【００１５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１６】
図１を参照して、この実施例のロボットシミュレータ（以下、単に「シミュレータ」という。）１００は、コンピュータ１０２を含む。コンピュータ１０２は、たとえば、パーソナルコンピュータやワークステーションのような汎用のコンピュータである。したがって、図示は省略するが、コンピュータ１０２は、ＣＰＵ、メモリ（ハードディスク、ＲＯＭ、ＲＡＭ）および画像処理ユニット（フレームバッファおよびＺバッファを含む。）などのコンポーネントを含む。図示は省略するが、メモリには、後述するようなシミュレーション処理（図６および図７参照）を実行するために必要なプログラム（シミュレーションプログラム）およびデータ（アニメーションデータ等の画像データ）などが記憶される。また、コンピュータ１０２には、汎用のタッチスクリーン１０４およびスピーカ１０６が接続される。
【００１７】
なお、この実施例では、直接的にコミュニケーションロボット１０（図２参照）を操作しているような感覚を与えるために、タッチスクリーン１４を設けるようにしてある。ただし、ＣＲＴモニタやＬＣＤのような表示器をコンピュータ１０２に接続して、タッチパッド、タブレット或いはコンピュータマウスのような他のポインティングデバイスを設けるようにすることもできる。かかる場合いは、マウスポインタのような指示画像を表示器に表示して、間接的にコミュニケーションロボット１０を操作しているような感覚が得られる。
【００１８】
このような構成のシミュレータ１００では、コンピュータ１０２は、たとえば、図２に示すような構成のコミュニケーションロボット（以下、単に「ロボット」という。）１０のモデル（ＣＧ：Computer Graphics）をタッチスクリーン１０４に表示する。ただし、図２に示すようなロボット１０に限定される必要はなく、任意のロボットのモデルを用いることができる。そして、ロボット１０の開発者がタッチスクリーン１０４を通してモデルに触ると、それに応じたコミュニケーション行動をモデルが表現（再現）する。ここで、コミュニケーション行動とは、ロボット１０の身振り手振りのような身体動作をいい、発話を含む場合もある。このコミュニケーション行動により、ロボット１０は、たとえば、人間との間でインタラクション（コミュニケーション）するのである。具体的には、ロボット１０の反応として、タッチスクリーン１０４上のモデルが動画表示（アニメーション表示）されたり、モデルが発話する内容の音声がスピーカ１０６から出力されたりする。
【００１９】
図２はロボット１０の外観図であり、この図２を参照して、ロボット１０は台車１２を含む。この台車１２の側面には、ロボット１０を自律移動させる車輪１４が設けられる。この車輪１４は、車輪モータ（図３において参照番号「１６」で示す。）によって駆動され、台車１２すなわちロボット１０を前後左右任意の方向に動かすことができる。図示は省略するが、この台車１２の前面には、衝突センサが取り付けられ、この衝突センサは、台車１２への人間や他の障害物の接触を検知する。
【００２０】
台車１２の上には、人体状部１８が直立するように取り付けられる。このロボット本体としての人体状部１８の全身は、柔軟素材からなる皮膚２０によって覆われる。人体状部１８は、たとえば鉄板のような筐体（図示せず）を含み、その筐体にコンピュータやその他必要なコンポーネントを収容している。そして、皮膚２０は、その筐体上に被せられる。皮膚２０の下にある筐体の上部ほぼ中央にはマイク２２が設けられる。このマイク２２は、周囲の音声、特に人間の声を収集するためのものである。
【００２１】
人体状部１８は、右腕２４Ｒおよび左腕２４Ｌを含み、右腕２４Ｒおよび左腕２４Ｌすなわち上腕２６Ｒおよび２６Ｌは、それぞれ、肩関節２８Ｒおよび２８Ｌによって、胴体部分に変位自在に取り付けられる。この肩関節２８Ｒおよび２８Ｌは、３軸の自由度を有する。上腕２６Ｒおよび２６Ｌには、１軸の肘関節３０Ｒおよび３０Ｌによって、前腕３２Ｒおよび３２Ｌが取り付けられ、この前腕３２Ｒおよび３２Ｌには、手３４Ｒおよび３４Ｌが取り付けられる。これら右腕２４Ｒおよび左腕２４Ｌの各関節における各軸はここでは図示しないモータによってそれぞれ制御される。すなわち、右腕２４Ｒおよび左腕２４Ｌのそれぞれ４個のモータが、図３において、それぞれ右腕モータ３６および左腕モータ３８として表される。
【００２２】
人体状部１８の上部には首関節４０を介して頭部４２が、人間の頭と同様に俯仰・回転可能に取り付けられる。この３軸の首関節４０は、図３に示す頭部モータ４４によって制御される。頭部４２の前面の「目」に相当する位置には２つの眼カメラ４６が設けられ、この眼カメラ４６は、ロボット１０に接近した人間の顔や他の部分を撮影してその映像信号を取り込む。頭部４２の前面に設けられる眼カメラ４６の下方にはスピーカ４８が設けられる。このスピーカ４８は、ロボット１０がそれの周囲の人間に対して音声（発話）によってコミュニケーションを図るために用いられる。
【００２３】
上で説明した人体状部１８の胴体や頭部４２および腕は上記したようにすべて柔軟な素材からなる皮膚２０に覆われる。図示は省略するが、皮膚２０は、下層のウレタンフォームと、その上に積層される比較的肉厚のシリコンゴム層および比較的肉薄のシリコンゴム層とを含む。そして、２つのシリコンゴム層の間に、ピエゾセンサシートが埋め込まれる。
【００２４】
なお、この皮膚２０の具体的な構成およびその詳細な説明は、本件出願人が既に出願し、出願公開された特開２００４−２８３９７５号公報に開示されているため、ここでは、詳細な説明は省略することにする。
【００２５】
図３は、図２に示すロボット１０の電気的な構成を示すブロック図である。図３を参照して、ロボット１０は、その全体制御を司るマイクロコンピュータまたはＣＰＵ５６を含み、このＣＰＵ５６には、バス５８を通して、メモリ６０，モータ制御ボード６２，センサ入力／出力ボード６４およびサウンド入力／出力ボード６６が接続される。
【００２６】
メモリ６０は、図示しないが、ＲＯＭやＨＤＤ、ＲＡＭを含み、ＲＯＭやＨＤＤにはこのロボット１０の制御プログラムが予め書き込まれているとともに、スピーカ４８から発生すべき音声または声の音声データや、所定の身振り手振り（身体動作）を行うための各関節軸の角度制御データなどが格納されている。ＲＡＭは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用される。
【００２７】
モータ制御ボード６２は、たとえばＤＳＰ(Digital Signal Processor) で構成され、各腕や頭部などの各軸モータを制御する。すなわち、モータ制御ボード６２は、ＣＰＵ５６からの制御データを受け、右肩関節２８Ｒの３軸のそれぞれについての角度を制御する３つのモータと右肘関節３０Ｒの１軸の角度を制御する１つのモータとの計４つのモータ（図３ではまとめて、「右腕モータ」として示す。）３６の回転角度を調節する。また、モータ制御ボード６２は、左肩関節２８Ｌの３軸と左肘関節３０Ｌの１軸、計４つのモータ（図３ではまとめて、「左腕モータ」として示す。）３８の回転角度を調節する。モータ制御ボード６２は、また、頭部４２の３軸のモータ（図３ではまとめて、「頭部モータ」として示す。）４４の回転角度を調節する。そして、モータ制御ボード６２は、車輪１４を駆動する２つのモータ（図３ではまとめて、「車輪モータ」として示す。）１６を制御する。
【００２８】
なお、この実施例の上述のモータは、車輪モータ１６を除いて、制御を簡単化するためにそれぞれステッピングモータまたはパルスモータであるが、車輪モータ１６と同様に、直流モータであってよい。
【００２９】
センサ入力／出力ボード６４も、同様に、ＤＳＰで構成され、各センサやカメラからの信号を取り込んでＣＰＵ５６に与える。すなわち、図示しない衝突センサの各々からの接触に関するデータがこのセンサ入力／出力ボード６４を通して、ＣＰＵ５６に入力される。また、眼カメラ４６からの映像信号が、必要に応じてこのセンサ入力／出力ボード６４で所定の処理が施された後、ＣＰＵ５６に入力される。さらに、人間等がロボット１０の皮膚２０を触れると、その内部に設けられるピエゾセンサ５４からの接触（タッチ、撫でるなど）に関するデータがセンサ入力／出力ボード６４を通して、ＣＰＵ５６に入力される。
【００３０】
サウンド入力／出力ボード６６も、同様に、ＤＳＰで構成される。スピーカ４８には、サウンド入力／出力ボード６６を介して、ＣＰＵ５６から、合成音声データが与えられ、それに応じて、スピーカ４８からはそのデータに従った音声または声が出力される。また、マイク２２からの音声入力が、サウンド入力／出力ボード６６を介して、ＣＰＵ５６に取り込まれる。
【００３１】
たとえば、このような構成のロボット１０では、上述したように、身体動作と必要な音声とによって人間との間でインタラクション（コミュニケーション）する。また、人間がロボット１０に触れると、その触れた箇所（部位）に応じたコミュニケーション行動が実行される。つまり、ロボット１０が反応する。具体的には、人間がロボット１０の肩を撫でると、これに応じて、ロボット１０は、「なーに」と発話するとともに、手を振る。また、人間がロボット１０の頭を撫でると、これに応じて、ロボット１０は、「わーい」と発話するとともに、首（４０）を振る。さらに、人間がロボット１０のお腹を撫でると、これに応じて、ロボット１０は、「遊ぼう」と発話するとともに、両手を挙げる。ただし、これらは単なる例示であり、限定される必要はなく、ロボット１０の反応は開発者が自由に決定（設定）することができる。
【００３２】
ここで、一般的には、このような構成のロボット１０または他のロボットを開発したり、開発したロボット１０等に所望のコミュニケーション行動（反応）を実現（再現）させたりする場合には、作成した制御プログラム（コミュニケーション行動についてのプログラム）をロボット１０に実装し、実際にロボット１０とインタラクションして、当該制御プログラムに従うコミュニケーション行動が意図した通り（適切）であるかどうかなどを試験する。
【００３３】
しかし、このようなロボット１０は、比較的高価であり、複数の開発者に対して１台割り当てられるため、複数の開発者が話し合いにより、予め決めた時間割りで、交替で使用される。このため、限られた時間で試験を行う必要があり、開発が速やかに進まず、また、開発者毎に使用目的が異なるため、使用する度に制御プログラムを書き換える必要がある。つまり、開発に余計な手間がかかってしまう。
【００３４】
そこで、この実施例では、オフラインでロボット１０のコミュニケーション行動を試験（シミュレーション）できるシミュレータ１００を提案することにより、オフラインでの開発を可能とし、開発にかかる余計な手間を省くようにしてある。
【００３５】
上述したような制御プログラムは、開発者によって作成され、図１に示したコンピュータ１０２に組み込まれる。具体的には、制御プログラムに従ってロボット１０のモデルがコミュニケーション行動を表現するように、当該コミュニケーション行動に含まれる身体動作についてのアニメーションデータがコンピュータ１０２の内部メモリ（ＨＤＤ、ＲＯＭまたはＲＡＭ）に記憶される。たとえば、モデルは、骨組みデータ（ボーンデータ）、ポリゴンデータおよびテクスチャデータのような画像データを用いてタッチスクリーン１０４に表示される。また、アニメーションデータ（モーションデータ）は、ジョイント（関節：ボーンとボーンの連結部）の位置とジョイントに接続されるボーンの位置とについての時系列変化を示すデータである。ここで、ジョイントは、図２に示したロボット１０の各関節（２８Ｒ，２８Ｌ，３０Ｒ，３０Ｌ，４０）に相当する。また、コミュニケーション行動に含まれる発話の内容についての音声データ（音声合成データ）もコンピュータ１０２の内部メモリに記憶される。
【００３６】
ただし、後述するように、制御プログラムは、タッチスクリーン１０４を通して触れたモデルの部位に応じて予め決定されたコミュニケーション行動を表現するように処理を実行する。つまり、人間（開発者）のタッチ操作に対して、モデルを反応させる。
【００３７】
コンピュータ１０２は、図４に示すようなシミュレーション画面２００をタッチスクリーン１０４に表示する。シミュレーション画面２００には、上述したような画像データを用いて、ロボット１０のモデル２０２が表示される。また、シミュレーション画面２００は、モデル２０２の視点変換を指示するためのボタン（ないしアイコン）２０４が表示される。
【００３８】
たとえば、図４に示すシミュレーション画面２００は、図５に示すようなモデル２０２を含む３次元仮想空間を、視点から見た（仮想カメラで撮影した）画像である。図５では、３次元仮想空間の座標系（以下、ロボット座標系という場合がある。）の各軸を（Ｐｘ，Ｐｙ，Ｐｚ）とし、仮想スクリーン２１０の各軸を（Ｓｘ，Ｓｙ，Ｓｚ）としてある。ただし、仮想スクリーン２１０のＳｚ軸は、仮想スクリーン２１０に対して垂直な方向であり、その奥行きを表わす。また、図５では分かり難いが、３次元仮想空間に配置されるモデル２０２は、その視線方向はＰｘ軸方向であり、その視点はＰｘ軸上のＸ点である。
【００３９】
上述したように、ロボット１０の開発者は、図１に示したようなシミュレータ１００を用いて、当該ロボット１０のコミュニケーション行動の試験（シミュレーション）を行う。具体的には、シミュレーション画面２００には、モデル２０２が表示され、開発者がモデル２０２の所望の部位を触れる。つまり、タッチスクリーン１０４をタッチ操作する。すると、タッチ操作に応じて、タッチ位置（座標位置）のデータ（座標位置データ）がタッチスクリーン１０４からコンピュータ１０２に入力される。コンピュータ１０２は、座標位置データの入力を受けると、当該座標位置データが示す座標（位置）が、モデル２０２のいずれの部位を指示するか、または、ボタン２０４を指示するか、或いは、その両方以外を指示するかを判断する。
【００４０】
モデル２０２のいずれかの部位に触れた場合には、コンピュータ１０２は、触れられた部位に対応して定義（決定）されたコミュニケーション行動をモデル２０２に実行させる。つまり、モデル２０２をアニメーション表示するとともに、必要に応じて、モデル２０２が発話しているように、音声合成データを再生して、スピーカ１０６から音声ないし声を出力する。
【００４１】
また、ボタン２０４が触れられた場合には、その後の開発者の操作に従って視点変換処理を行う。図示は省略するが、シミュレーション画面２００では、視点変換のボタン２０４をオン（タッチ）する度に、視点変換され、ロボット１０のモデル２０２が、タッチスクリーン１０４を見る開発者に対して、正面、右側面、背面、左側面、上面、下面、正面、…の順番で見えるように、表示が変化される。ただし、開発者が任意の位置に視点を設定できるようにしてもよい。かかる場合には、たとえば、視点変換のボタン２０４を操作した後に、タッチスクリーン１０４で所望の位置を視点としてタッチ入力できるようにしたり、３次元座標の数値を図示しない入力装置（キーボード等）で入力できるようにしたりすることができる。このように、視点を変化させることにより、異なる角度（方向）からモデル２０２の反応を見ることができる。
【００４２】
ただし、モデル２０２およびボタン２０４のいずれもがタッチされていない場合には、たとえば、開発者のタッチ操作を促すコミュニケーション行動をモデル２０２に実行させる。ここで、モデル２０２およびボタン２０４のいずれもがタッチされていない場合とは、開発者がタッチ操作をしていない場合や開発者がモデル２０２およびボタン２０４の表示領域以外の領域をタッチ操作している場合をいう。
【００４３】
具体的には、図１に示したコンピュータ１０２は、図６および図７に示すシミュレーション処理を実行する。図６に示すように、コンピュータ１０２はシミュレーション処理を開始すると、ステップＳ１で、初期化する。ここでは、モデル２０２を所定の３次元位置（説明の都合上、「第１初期位置」という。）に配置するとともに、当該モデル２０２の視点を所定の３次元位置、ここでは、第１初期位置とは異なる第２初期位置に設定する。また、ここでは、モデル２０２の各関節角が初期値に設定される。たとえば、シミュレーション開始時では、モデル２０２は、直立状態（気をつけの姿勢）になるように、各関節角は設定される。
【００４４】
次のステップＳ３では、現在のモデル２０２の関節角と視点とに基づいて、モデル２０２をタッチスクリーン１０４に表示する。なお、上述したように、ステップＳ１で初期化した場合では、このステップＳ３の処理によって、たとえば、図４に示したように、直立状態のモデル２０２が正面を向いたシミュレーション画面２００がタッチスクリーン１０４に表示される。
【００４５】
続いて、ステップＳ５では、タッチされたかどうかを判断する。つまり、タッチスクリーン１０４から座標データ（タッチ座標）が入力されたかどうかを判断する。ステップＳ５で“ＮＯ”であれば、つまりタッチ座標が入力されていなければ、タッチされていないと判断して、図７に示すステップＳ１９に進む。一方、ステップＳ５で“ＹＥＳ”であれば、つまりタッチ座標が入力されれば、タッチされたと判断して、ステップＳ７で、視点変換かどうかを判断する。つまり、タッチ座標がボタン２０４の表示領域に含まれるかどうかを判断する。ここで、“ＹＥＳ”であれば、つまりタッチ座標がボタン２０４の表示領域に含まれていれば、視点変換と判断して、図７に示すステップＳ２１に進む。しかし、“ＮＯ”であれば、つまりタッチ座標がボタン２０４の表示領域に含まれていなければ、視点変換でないと判断して、ステップＳ９で、後述するように、タッチ位置（タッチ座標）をロボットの座標（位置）に変換する（図８参照）。
【００４６】
次のステップＳ１１では、モデル２０２の肩が触られたかどうかを判断する。ステップＳ１１で“ＹＥＳ”であれば、つまりモデル２０２の肩が触られれば、ステップＳ１３で、モデル２０２が「なーに」と発話して、手を振り、図７に示すステップＳ２３に進む。具体的には、ステップＳ１３では、コンピュータ１０２は、「なーに」に対応する音声データを読み出し、アナログ変換および増幅等の処理を施した後、スピーカ１０６から出力する。また、これと同時或いはほぼ同時に、コンピュータ１０２は、「手を振る」についてのアニメーションデータを読み出し、当該アニメーションデータに従ってモデル２０２をアニメーション表示する。この様子を、視点から見た画像（映像）を、シミュレーション画面２００としてタッチスクリーン１０４に表示する。このように、開発者のタッチ操作に対するロボット１０の反応をモデル２０２で表現しているのである。以下、同様である。
【００４７】
しかし、ステップＳ１１で“ＮＯ”であれば、つまりモデル２０２の肩が触られていなければ、ステップＳ１５で、モデル２０２の頭が触られたかどうかを判断する。ステップＳ１５で“ＹＥＳ”であれば、つまりモデル２０２の頭が触られれば、ステップＳ１７で、モデル２０２が「わーい」と発話して、首を振り、ステップＳ２３に進む。一方、ステップＳ１５で“ＮＯ”であれば、つまりモデル２０２の頭が触られていなければ、図示は省略してあるが、他の部位、たとえば、左（または右）手ないし腕、胴体（腹、背中）などが触られたか否かを判断して、触られた部位に対応して定義（決定）されている反応すなわちコミュニケーション行動を実行する。ただし、開発者のタッチ位置がモデル２０２およびボタン２０４の表示領域の外部である場合には、該当する部位がないと判断して、ステップＳ１９に進む。
【００４８】
上述したように、タッチスクリーン１０４をタッチされなかったり（ステップＳ５で“ＮＯ”）、タッチ位置がモデル２０２およびボタン２０４の表示領域の外部であったり（ステップＳ１１，Ｓ１５，…で“ＮＯ”）した場合には、図７に示すように、ステップＳ１９で、モデル２０２が「触ってね」と発話し、手を差し出して、ステップＳ２３に進む。また、上述したように、視点変換が指示されると（ステップＳ７で“ＹＥＳ”）、図７に示すステップＳ２１で、開発者の指示に従って視点を更新（変換）して、ステップＳ２３に進む。
【００４９】
ステップＳ２３では、シミュレーションの終了かどうかを判断する。たとえば、開発者がコンピュータ１０２に、シミュレーションの終了を指示したかどうかを判断する。ステップＳ２３で“ＮＯ”であれば、つまりシミュレーションの終了でなければ、図６に示したステップＳ３に戻る。しかし、ステップＳ２３で“ＹＥＳ”であれば、つまりシミュレーションの終了であれば、シミュレーション処理を終了する。
【００５０】
図８は、図６のステップＳ３に示したスクリーン表示処理を示すフロー図である。この図８を参照して、コンピュータ１０２はスクリーン表示処理を開始すると、ステップＳ３１で、現在のモデル２０２の関節角と、各部位の大きさとから、モデル２０２の各関節の３次元座標を計算する。続くステップＳ３３では、各部位の座標を仮想スクリーン２１０上の座標に変換する。具体的には、画面表示する各画素をフレームバッファに記憶するとともに、各画素の奥行き値（Ｚ値）をＺバッファに記憶する。次にステップＳ３５では、仮想スクリーン２１０の背面の部位から順に描画する。つまり、Ｚバッファ法に従ってモデル２０２を描画する。そして、ステップＳ３７で、Ｚバッファに記憶される各画素についてのＺ値のそれぞれについて対応する部位（部位の名称またはその識別情報）を図示しないテーブル（以下、「対応テーブル」という。）に記憶して、スクリーン表示処理をリターンする。
【００５１】
図９は、図６のステップＳ９に示したロボット座標変換処理を示すフロー図である。この図９を参照して、コンピュータ１０２はロボット座標変換処理を開始すると、ステップＳ４１で、対応テーブルを参照して、タッチ座標から触れられたスクリーン２１０に表示されたモデル２０２の触れられた点（Ｓｘ，Ｓｙ，Ｓｚ）を取得する。ここでは、タッチ座標に基づいて、（Ｓｘ，Ｓｙ）をフレームバッファから取得し、ＳｚをＺバッファから取得する。次のステップＳ４３では、対応する点があるかどうかを判断する。具体的には、取得した点（Ｓｘ，Ｓｙ，Ｓｚ）に含まれるＳｚに対応して部位が記憶されているかどうかを判断する。これにより、タッチ座標がモデル２０２上であるかどうかを判断しているのである。ステップＳ４３で“ＮＯ”であれば、つまり対応する点がなければ、モデル２０２を触れていないと判断して、そのままロボット座標変換処理をリターンする。しかし、ステップＳ４３で“ＹＥＳ”であれば、つまり対応する点があれば、モデル２０２を触れていると判断して、ステップＳ４５で、スクリーン上の座標（Ｓｘ，Ｓｙ，Ｓｚ）をロボット座標（Ｐｘ，Ｐｙ，Ｐｚ）に変換して、ロボット座標変換処理をリターンする。
【００５２】
この実施例によれば、シミュレータを用いてロボットの設計および検査を実行することができるので、実際のロボットを用いて試験をするような手間を省くことができる。また、ＣＧによりシミュレーションを実行するので、未だ存在しないロボットの開発にも使用することができる。
【００５３】
なお、この実施例では、シミュレータにスピーカを設けて、コミュニケーション行動に含まれる発話を音声で出力するようにしたが、音声に代えて、文字（テキスト）で出力するようにしてもよい。かかる場合には、タッチスクリーンに、発話内容のテキストを表示するようにすればよい。たとえば、モデルが発話しているように演出するために、モデルの口付近に吹き出し（バルーン）で表示するようにすることができる。このようにすれば、シミュレータからスピーカを省くことができる。
【図面の簡単な説明】
【００５４】
【図１】図１はこの発明のロボットシミュレータの一例を示す図解図である。
【図２】図２は図１に示すシミュレータによってシミュレーションされるロボットの外観を説明するための図解図である。
【図３】図３は図２に示すロボットの電気的な構成を示す図解図である。
【図４】図４は図１に示すタッチスクリーンの表示例を示す図解図である。
【図５】図５は図２に示すロボットのモデルが３次元仮想空間に配置される様子を示す図解図である。
【図６】図６は図１に示すコンピュータのシミュレーション処理の一部を示すフロー図である。
【図７】図７は図１に示すコンピュータのシミュレーション処理の他の一部であり、図６に後続するフロー図である。
【図８】図８は図１に示すコンピュータのスクリーン表示処理を示すフロー図である。
【図９】図９は図１に示すコンピュータのロボット座標変換処理を示すフロー図である。
【符号の説明】
【００５５】
１００  …ロボットシミュレータ
１０２  …コンピュータ
１０４  …タッチスクリーン
１０６  …スピーカ
１０  …コミュニケーションロボット
１８  …人体状部
２０  …皮膚
５６  …ＣＰＵ
６２  …モータ制御ボード
６４  …センサ入力／出力ボード
６６  …サウンド入力／出力ボード
【図１】
2006272537.tif 000003
【図２】
2006272537.tif 000004
【図３】
2006272537.tif 000005
【図４】
2006272537.tif 000006
【図５】
2006272537.tif 000007
【図６】
2006272537.tif 000008
【図７】
2006272537.tif 000009
【図８】
2006272537.tif 000010
【図９】
2006272537.tif 000011