(57)【特許請求の範囲】
【請求項１】
制御データが入力されることで前記制御データに対応する動作を行う実物体に対し、当該実物体の動作を所定の操作子を用いて教示する方法であって、
前記所定の操作子による操作のめやすとなる案内情報の準備段階として、
前記制御データを順次送ることにより当該実物体の動きを撮影し、
撮影画像において実物体の動作の変化が所定の大きさを超えるときに、当該画像フレームに対する複数の模擬画像を作成し、
作成した前記模擬画像ごとの動領域を背景差分法により定め、前記模擬画像ごとに定めた動領域中の前記所定の操作子により指定される所定領域の重心を求め、求めた複数の重心の動きの軌跡を求め、求めた軌跡を左右上下方向に拡張して画像情報に変換した案内情報を作成し、
前記案内情報に幾つかのインジケータを設け、前記インジケータごとに前記所定の操作子で選択する際の領域となる座標範囲を設定し、
前記インジケータごとに、前記案内情報の当該インジケータの位置に基づいて前記模擬画像を対応付け、
前記模擬画像ごとに、前記実物体に該模擬画像に対応する動作をさせるための制御データを対応付け、
前記案内情報を用いた前記実物体の操作段階として、
前記模擬画像のいずれか１つを前記案内情報とともに表示し、
前記所定の操作子によって指定された座標が、前記案内情報における前記座標範囲内にある場合は、その座標範囲に対応する前記インジケータに対応付けられた模擬画像を表示するとともに、当該模擬画像に対応付けられた制御データを取得し、
前記模擬画像に対応付けられ取得された制御データを前記実物体に出力する
ことを特徴とする動作入力方法。
【請求項２】
前記模擬画像は、撮像画像のＣＧ化処理を行って求められたものであることを特徴とする請求項１に記載の動作入力方法。
【請求項３】
制御データが入力されることで前記制御データに対応する動作を行う実物体に対し、当該実物体の動作を所定の操作子を用いて教示する装置であって、
前記所定の操作子による操作のめやすとなる案内情報の準備段階の手段として、
前記制御データを順次送ることにより当該実物体の動きを撮影する手段と、
撮影画像において実物体の動作の変化が所定の大きさを超えるときに、当該画像フレームに対する複数の模擬画像を作成する手段と、
作成した前記模擬画像ごとの動領域を背景差分法により定め、前記模擬画像ごとに定めた動領域中の前記所定の操作子により指定される所定領域の重心を求め、求めた複数の重心の動きの軌跡を求め、求めた軌跡を左右上下方向に拡張して画像情報に変換した案内情報を作成する手段と、
前記案内情報に幾つかのインジケータを設け、前記インジケータごとに前記所定の操作子で選択する際の領域となる座標範囲を設定する手段と、
前記インジケータごとに、前記案内情報の当該インジケータの位置に基づいて前記模擬画像を対応付ける手段と、
前記模擬画像ごとに、前記実物体に該模擬画像に対応する動作をさせるための制御データを対応付ける手段と、
前記案内情報を用いた前記実物体の操作段階の手段として、
前記模擬画像のいずれか１つを前記案内情報とともに表示する手段と、
前記所定の操作子によって指定された座標が、前記案内情報における前記座標範囲内にある場合は、その座標範囲に対応する前記インジケータに対応付けられた模擬画像を表示するとともに、当該模擬画像に対応付けられた制御データを取得する手段と、
前記模擬画像に対応付けられ取得された制御データを前記実物体に出力する手段と、
を備えることを特徴とする動作入力装置。
【請求項４】
前記模擬画像は、撮像画像のＣＧ化処理を行って求められたものであることを特徴とする請求項３に記載の動作入力装置。
【請求項５】
制御データが入力されることで前記制御データに対応する動作を行う実物体に対し、当該実物体の動作を所定の操作子を用いて教示する装置を制御する制御コンピュータに、
前記所定の操作子による操作のめやすとなる案内情報の準備段階のステップとして、
前記制御データを順次送ることにより当該実物体の動きを撮影するステップと、
撮影画像において実物体の動作の変化が所定の大きさを超えるときに、当該画像フレームに対する複数の模擬画像を作成するステップと、
作成した前記模擬画像ごとの動領域を背景差分法により定め、前記模擬画像ごとに定めた動領域中の前記所定の操作子により指定される所定領域の重心を求め、求めた複数の重心の動きの軌跡を求め、求めた軌跡を左右上下方向に拡張して画像情報に変換した案内情報を作成するステップと、
前記案内情報に幾つかのインジケータを設け、前記インジケータごとに前記所定の操作子で選択する際の領域となる座標範囲を設定するステップと、
前記インジケータごとに、前記案内情報の当該インジケータの位置に基づいて前記模擬画像を対応付けるステップと、
前記模擬画像ごとに、前記実物体に該模擬画像に対応する動作をさせるための制御データを対応付けるステップと、
前記案内情報を用いた前記実物体の操作段階のステップとして、
前記模擬画像のいずれか１つを前記案内情報とともに表示するステップと、
前記所定の操作子によって指定された座標が、前記案内情報における前記座標範囲内にある場合は、その座標範囲に対応する前記インジケータに対応付けられた模擬画像を表示するとともに、当該模擬画像に対応付けられた制御データを取得するステップと、
前記模擬画像に対応付けられ取得された制御データを前記実物体に出力するステップと、
を実行させるためのプログラム。
【請求項６】
前記模擬画像は、撮像画像のＣＧ化処理を行って求められたものであることを特徴とする請求項５に記載のプログラム。
【請求項７】
請求項５又は６記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボット等の物体の動作を制御するためのデータを、入力および再生する際に用いて好適な動作入力方法、装置、プログラム及び記録媒体に関する。
【０００２】
【従来の技術】
従来、ロボットの動作を教示する教示装置を構成する際には、各ロボット特有の自由度構成や動作特性、インターフェースに合わせたＧＵＩ（グラフィカルユーザインターフェース）や動作コマンド、ドライバの設計および制御が必要であった。この場合、教示装置とは、コンピュータやその周辺装置と、コンピュータによって実行されるプログラムとを主要な要素として構成されるものであって、操作者の操作に応じてリアルタイムに入力されるデータや、あらかじめ記録しておいたデータに基づいて、ロボット等の物体に対して所望の動作を行わせるための制御信号を出力するものである。
【０００３】
次に上記のような従来の技術の一例を具体的に説明する。この例では、操作者の操作に応じてロボット等の物体に所望の動作をさせるための制御データ（駆動データ）を生成する際に、まず、物体をＣＧ（コンピュータグラフィクス）モデル化する。さらに物体の駆動範囲およびその条件に基づいて物体の動作を求め、コンピュータ内で物体の動作をＣＧモデルとしてシミュレートして表示できるようにする。そして、モデル化の後、ポインティングデバイス等の操作量に応じて物体モデルを座標変換しながら動かし、動作中の座標データの変化を記録して、それに対して所定の演算処理を行うことで、その動作に必要な制御データを求めるようにしている。すなわち、ＣＧモデル化された物体に対してなされたポインティングデバイスの操作量に応じて物体の制御データ（駆動データ）が生成されることになる。このような場合には、ポインティングデバイスの操作が複雑になることが多く、操作者が簡易に操作できるものではなかった。
【０００４】
また、ロボット動作を音や画像と同期を取って再生する際には、タイマーカウントなど複雑な処理が必要となっていた。
【０００５】
【発明が解決しようとする課題】
本発明は上記の問題点を鑑み、ロボット等の物体の動作に係るデータを入力したり、再生したりする際に、操作を簡易にすることができる動作入力方法、装置、プログラム及び記録媒体を提供することを目的とする。本発明は、また、直感的な操作で簡易にロボットの動作を入力・記録・再生することを可能とする動作入力方法、装置、プログラム及び記録媒体を提供することを目的とする。
【０００６】
さらに、本発明は、簡易な操作で、動作と音や画像の同期を取りつつそれらを再生することを可能とする動作入力方法、装置、プログラム及び記録媒体を提供することを目的とする。すなわち、音、画像等のコンテンツとロボットの動作とを同期再生する際のデータを入力するのに適した動作入力方法、装置、プログラム及び記録媒体を提供することを目的とする。具体的に説明すれば、例えば、ジェスチャ等の動作総体に意味を持つ物体の動作では、厳密な速度・位置制御は犠牲にしても、入力に対して追従性の良い動作が求められる場合がある。つまり、頻度、精度を犠牲にしてでもＣＧの再生や、ロボットの動作レスポンスを確保することが望まれる。そこで、本発明は、簡易な操作で、その操作に対して追従性の良い入力や、同期再生をすることができる動作入力方法、装置、プログラム及び記録媒体を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記課題を解決するため、本発明の第１の態様は、制御データが入力されることで前記制御データに対応する動作を行う実物体に対し、当該実物体の動作を所定の操作子を用いて教示する方法であって、前記制御データを順次送ることにより当該実物体の動きを撮影し、撮影画像において実物体の動作の変化が所定の大きさを超えるときに、当該画像フレームに対する模擬画像を作成し、作成した複数の前記模擬画像の動領域を定め、当該動領域の代表点の動きの軌跡を求め、求めた軌跡を拡張した表示情報となるように変換して案内情報を作成し、各模擬画像に対して、案内情報の操作対象空間における座標範囲を対応付け、各模擬画像に対して、前記実物体を動作させるための制御データをマッピングし、前記模擬画像のいずれか１つを前記案内情報とともに表示し、前記所定の操作子によって指定された座標が、前記案内情報の操作対象空間における座標範囲内にある場合は、その座標範囲に対応する模擬画像を表示するとともに、当該模擬画像にマッピングされた制御データを取得し、取得した制御データを前記動作物体に出力する、あるいは取得した制御データを時系列情報として記録することを特徴とする。
【０００８】
また、本発明は、上記に記載の発明において、前記模擬画像は、撮像画像のＣＧ化処理を行って求められたものであることを特徴とする。
【００１０】
【発明の実施の形態】
以下、図面を参照して本発明による動作入力方法、装置、プログラム及び記録媒体の実施の形態について説明する。図１は、ロボットシステムの全体構成を示す図であり、パーソナルコンピュータ１と、ロボット（例えば、ねずみなどの動物の形態をしたロボット）２が、オーディオライン３によって接続されている。パーソナルコンピュータ１は、本体装置１０と表示装置１１とから構成されていて、ロボット２のほかに、マウス等のポインティングデバイス（操作子）４と、画像入力装置５とが接続されている。
【００１１】
ロボット２は内蔵されたサーボモータによって、頭部２０を左右方向に首振り駆動することが可能であるとともに、右前脚部２１および左前脚部２２が上下に上げ下げできるようになっている。
また、ロボット２は、内蔵されたスピーカから音を空中に放射することができるようになっている。このロボットシステムにおいては、オーディオライン３を介して、合成音声信号と駆動データとが合成された信号（周波数多重等された信号）が、パーソナルコンピュータ１からロボット２へ伝送される。このうち合成音声信号は、例えば、言葉や単語、あるいは歌唱の音声を示す音声情報などをなす可聴周波数帯の信号であり、ロボット２に内蔵されたスピーカから出力される。他方の駆動データは、可聴周波数帯以上の周波数の信号（例えば１８ｋＨｚを越える信号）であり、サーボモータに対する制御指令信号として用いられる。すなわち、オーディオライン３によって同時に送られてくる情報によって音声の発生と、駆動部位の制御とが実行可能である。
【００１２】
図２は、図１に示す各構成の接続と信号の流れを説明するためのシステムブロック図である。図２に示すように、図１に示すパーソナルコンピュータ１は、その本体装置１０内に本発明の主要な特徴部分である入力・記録・再生・表示制御装置１００を備えている。入力・記録・再生・表示制御装置１００は、図示していない記憶装置（メモリやハードディスク）や、入出インターフェース回路を用いて、所定のオペレーティングシステム上で動作するアプリケーションプログラムとして構成されている。
入力・記録・再生・表示制御装置１００は、ポインティングデバイス４から送られてくるその操作状態を示す信号を入力するとともに、画像入力装置５によって撮影された動画像（映像）または静止画像を取り込んで（キャプチャして）記録する。ここで、本実施の形態では画像入力装置５は、ロボット２の動作を撮影するために使用される。入力・記録・再生・表示制御装置１００は、また、表示装置１１へ表示制御用の信号を出力するとともに、ロボット２へはオーディオライン３を介して合成音声信号と駆動データとを出力する。
【００１３】
次に、図３を参照して図２に示す入力・記録・再生・表示制御装置１００を構成する各機能ブロックについて説明する。ただし、ここでは、理解をしやすくするため、まず、各ブロックのうち、駆動データ再生部１１０についての説明を行い、続いて、模擬画像データ・制御データ記憶部１０４についての説明を行い、その後、他の機能ブロックについての説明を行うこととする。
【００１４】
まず、図３と、図５〜図７を参照して、駆動データ再生部１１０およびロボット２の機能詳細について説明する。ここで、図５はロボット２の内部構成を示すブロック図である。また図６はロボット２に対する各駆動データを発生するための制御データファイルと、それによる制御内容との対応の一例を示す図である。そして、図７はロボット２と各駆動データ波形との関係を示す説明図である。
【００１５】
図３の駆動データ再生部１１０は、既存のwave（ウェーブ）形式やmidi（ミディ）形式、au（エーユー）形式などの音ファイルの再生を行うソフトウェアプレーヤおよびサウンドデバイスから構成されていて、記憶データ再生部１０７で呼び出された制御データファイルを受け取って、それに基づいて駆動データを再生して出力する。再生された駆動データは、オーディオライン３を通り、本ライン３を介して接続されたロボット２のオーディオ入力部２０１（図５参照）へ送られる。そして、入力された駆動データは図５の制御信号生成部２０２に送られる。制御信号生成部２０２は、ここにおいて駆動データに含まれる所定の各周波数成分のレベルを検知する。そして、所定の周波数成分に合致した信号が検知された場合には、それに基づいて、ロボット駆動部２０３内に設けられたモータを駆動させるための制御信号を生成する。
【００１６】
図６は、図３の記憶データ再生部１０７で呼び出されて、駆動データ再生部１１０へ送られる制御データファイルの名称と、図５のロボット駆動部２０３によって行われる制御の内容との関係を示している。例えば、制御データファイル名Ｓｏｕｎｄ１が駆動データ再生部１１０へ送られた場合には、ロボット駆動部２０３では首振り−３０度（この例では右方向（図に向かって左方向）への首振り３０度）の制御が行われる。また、制御データファイル名Ｓｏｕｎｄ２，３，４，…によっては、それぞれ同じ方向の首振り２０度、１０度、５度、…の制御が行われることを示している。この場合、制御データファイルＳｏｕｎｄ１，２，３，４，…によって再生される駆動データは、それぞれ異なる周波数からなる信号あるいは複数の異なる周波数成分の合成信号である。
【００１７】
図７は、駆動データ再生部１１０で再生される駆動データの波形と、ロボット２の動作との対応を示していて、この例では、波形Ｗａ、Ｗｂ、Ｗｃの駆動データが発生されたときに、ロボット２の頭部２０が、右方向（ロボット２ａ）、垂直方向（ロボット２ｂ）、および左方向（ロボット２ｃ）に首振り制御されることを示している。この場合、波形Ｗａ，Ｗｂ，Ｗｃの駆動データは互いに異なる周波数の信号（あるいは異なる周波数成分からなる信号）であって、そのうち波形Ｗａは図６を参照して説明した制御データファイル名Ｓｏｕｎｄ１のデータの再生波形に対応している。
【００１８】
次に、図８〜図１６を参照して、図３に示す模擬画像データ・制御データ記憶部１０４について詳細に説明する。図８は模擬画像データ・制御データ記憶部１０４を構成を示すブロック図であり、図９は動作を説明するためのフローチャートである。図１０は図８の画像・制御データマッピング部１０４２による模擬画像の自動生成機能を説明するための図である。そして、図１１〜図１６は、模擬画像データ・制御データ記憶部１０４の動作の具体例を説明するときに利用する各データや各画像を示す図である。
【００１９】
図８に示すように、擬画像データ・制御データ記憶部１０４は、画像入力装置５から入力される画像データの取り込みを行う画像情報入力部１０４０と、画像情報入力部１０４０によって取り込んだ複数枚の画像データを入力して画像情報の処理演算を行う画像情報演算部１０４１と、演算結果に基づいて画像データと制御データファイルとの対応付けを行う画像・制御データマッピング部１０４２とから構成されている。
【００２０】
以上の構成によって擬画像データ・制御データ記憶部１０４は、画像情報入力部１０４０によって、画像入力装置５から入力されるロボット２の動作を表す複数フレームからなる実体画像を画像データ（動画像データ）としてキャプチャし、所定の記憶手段に記憶する（図９のステップＳＡ１）。
次に、画像情報演算部１０４１によって、図１１に示すようなロボット模擬画像１２４（１２４ａ〜１２４ｃ）のデータ作成を行う（ステップＳＡ２）。図１１に示す模擬画像１２４ａ，…，１２４ｂ，…，１２４ｃは、図７に示すようにロボット２を、波形Ｗａ，…，Ｗｂ，…，Ｗｃの駆動データに基づいて駆動制御したときに撮影されるロボット２の実体画像（図７のロボット２ａ，…，２ｂ，…，２ｃ）に基づいて、それをＣＧ化処理で単純化することで求めた画像である。
【００２１】
ロボット２の動作の撮影は、図３において、模擬画像データ・制御データ記憶部１０４からの指示によって、画像入力装置５に撮影を開始させるとともに、記憶データ呼び出し部１０３において図６に示すような制御データファイルＳｏｕｎｄ１，２，３，４，…を所定の時間間隔で順次呼び出すことで開始される。記憶データ呼び出し部１０３によって呼び出された制御データファイルは、記憶データ再生部１０７へ送られて再生処理され、駆動データ再生部１１０で図７の波形Ｗａ，Ｗｂ，Ｗｃのようなアナログの駆動データ信号に変換されて出力される。ここで、図７の頭部２０を右側に最も傾けた状態のロボット２ａから、中立の状態のロボット２ｂを経て、頭部２０を左側に最も傾けた状態のロボット２ｃに至るまでの間に、画像入力装置５は、例えば、数十〜百数十フレーム程度の画像データを出力するものとする。
【００２２】
このようにして画像情報入力部１０４０によって入力された各フレームの画像は、一旦所定の記憶手段に記憶される。画像情報演算部１０４１は、この記憶した画像データに基づいて、図１１のようなロボット模擬画像１２４ａ〜１２４ｃを作成する。このとき、画像情報演算部１０４１は、各画像フレーム対応で、全フレームに対応する数のロボット模擬画像１２４を作成するのではなく、開始点や終了点のほか、動作の変化が所定の大きさを越えるたびに新たなロボット模擬画像１２４の作成を行うようにしている。これは、ほとんど動きの変化がない同様の画像を複数作成・記憶することを防止したり、データ容量の増加や、処理時間の増大を防ぐいだりするための処理である。図１０を参照して、本実施形態におけるロボット模擬画像の生成処理の基本的な考え方について説明する。
【００２３】
図１０は、時刻ｔから時刻ｔ＋３ｋ（ｋは定数（ｍｓ））に至るまでの時間に、ロボット２の実体動作がこの図のように発生したときに、どの時点の画像がロボット模擬画像として保持されるのかを説明するための図である。ここで、時刻ｔ，ｔ＋ｋ，ｔ＋２ｋ，およびｔ＋３ｋにおける実体の動作は、それぞれ、頭部２０が垂直方向で、かつ右左の前脚部２１，２２が下を向いている状態、頭部２０がやや右に傾いた状態で右左の前脚部２１，２２が下を向いている状態、頭部２０がさらに右に傾いた状態で右左の前脚部２１，２２が下を向いている状態、および頭部２０が同様に右に傾いた状態で右前脚部２１が下を、左前脚部２２が上を向いている状態となっている。
【００２４】
この例では、フレーム毎に背景差分法によって動領域を抽出し、抽出された領域についてフレーム間で差分を求め、その大きさの時間変化に対して所定の評価関数を用いた判定を行うことによって、ロボット模擬画像を抽出する処理を行っている。評価関数としては、画像特徴量（動領域のが素数）を表す変数ΔＤ＝Ｄ（ｔ＋ｍｋ）−Ｄ（ｔ＋ｎｋ）を用いている。そして、ΔＤ＞Ｌの時、Ｄ（ｔ＋ｍｋ）をロボット模擬画像として保持するようにしている。ここで、ΔＤは動領域の画素数、Ｄ（ｔ＋ｍｋ）は時刻（ｔ＋ｍｋ）におけるロボット画像データ、Ｄ（ｔ＋ｎｋ）は近傍でロボット模擬画像として保持されたロボット画像データである。また、ｍ＝０，１，２，３，…であり、ｎ＝０，１，２，３，…（ｋ＞ｎ）であり、ｋは定数（ｍｓｅｃ）であり、そして、Ｌは動領域の画素数についての判定におけるしきい値を表す定数である。
【００２５】
図１０に示す例では、時刻ｔ以降において、時刻ｔのロボット画像データＤ（ｔ）を基準に画像特徴量ΔＤを求めると、時刻ｔ＋２ｋの時、画像特徴量ΔＤがしきい値Ｌを越えているので、その時のロボット画像データＤ（ｔ＋２ｋ）がロボット模擬画像として保持されている。そして、時刻ｔ＋２ｋのロボット画像データＤ（ｔ＋２ｋ）を基準に画像特徴量ΔＤを求めると、時刻ｔ＋３ｋの時、再び画像特徴量ΔＤがしきい値Ｌを越えているので、その時のロボット画像データＤ（ｔ＋３ｋ）が次のロボット模擬画像として保持されている。
以上のようにして、図８の画像情報演算部１０４１は、複数のロボット模擬画像のデータを作成するとともに、その際の駆動データとの関係を記憶する。
【００２６】
次に、図９のステップＳＡ２で上記のようにしてロボット模擬画像１２４が作成されると（この場合、ロボット模擬画像１２４として、図１１のロボット模擬画像１２４ａ〜１２４ｃが作成されたとすると）、図８の画像情報演算部１０４１では、図１２に示すように一連の動作に対する複数のロボット模擬画像１２４ａ〜１２４ｃに対して共通のガイド情報１２５を付与する処理が行われる（図９のステップＳＡ３）。
ガイド情報１２５は、実体の駆動部位の変化、すなわち動きの軌跡に対応する表示情報（画像情報）である。このガイド情報１２５は、ロボット２の動作を入力する際に、ポインティングデバイス４の操作位置、操作方向、操作量等のめやすとなる案内情報として用いられる。なお、本実施の形態では、ロボット模擬画像１２４とガイド情報１２５とを組み合わせたものを模擬画像１２３と呼ぶことにする。
【００２７】
ガイド情報１２５は、例えば、ロボット模擬画像１２４から背景差分法によって抽出された動領域に対して関心領域を設定し、その関心領域の重心の軌跡を求めることで決定される。図１２の例では、まず、頭部２０を関心領域に設定し、その重心の変化の軌跡を求める。そして、ガイド情報１２５を模擬画像１２３に付与する際には、ガイド情報１２５と動領域（頭部２０）との見やすさや、後で述べるポインティングデバイス４での操作性を考慮して、その軌跡を、模擬画像１２３の中心方向へと下に向かって移動させるとともに、左右および上下方向に拡張した表示情報となるように変換することでガイド情報１２５を作成している。
【００２８】
ガイド情報１２５の付与のための処理（図９のステップＳＡ３）が終わると、次に、図８の画像・制御データマッピング部１０４２によって、ガイド情報に対する模擬画像のマッピング処理が行われる（図９のステップＳＡ４）。ガイド情報に対する模擬画像のマッピング処理とは、各模擬画像１２３に対してガイド情報１２５に対応する操作対象空間における座標点（座標範囲）を対応付ける処理である。
ここで、ステップＳＡ４の処理について、図１３および図１４を参照して説明する。図１３は、図１１のロボット模擬画像１２４ａ〜１２４ｃにガイド情報１２５を付与することで得られる模擬画像１２３ａ〜１２３ｃを示す図であり、図１４は、マッピング処理の結果得られるテーブルを示す図である。
【００２９】
たとえば、図１３に示す模擬画像１２３ａでは、頭部２０が最も右側（図に向かって左側）に傾斜した状態である。そこで模擬画像１２３ａに対しては、ガイド情報における向かって左側に位置する場所に、インジケータ１２７ａを設定するとともに、そのインジケータ１２７ａをポインティングデバイス４で選択する際の矩形の座標範囲１２８ａ（破線で示す範囲）を設定する。このインジケータ１２７とは、ポインティングデバイス４を用いたデータ入力の際に入力点の位置の目安を示す入力操作のインターフェースとして用いられる表示情報である。
この場合、ガイド情報１２５とインジケータ１２７ａとが、それぞれ、コンピュータアプリケーションで通常用いられるスライダコントロール（あるいはトラックコントロール）のバー（範囲を定義するもの）と、インジケータ（現在の値をしめすもの）に相当するものとしてとらえることができる。そして、座標範囲１２８ａは、インジケータ１２７ａを当該位置に設定（あるいは模擬画像１２３ａを選択）する際に、ポインティングデバイス４で指定すべき範囲となる。
【００３０】
図１３においては、同様に、頭部２０が真上方向を向いている模擬画像１２３ｂには、その中心位置付近にインジケータ１２７ｂと座標範囲１２８ｂを設定し、頭部２０が最も左側（図に向かって右側）に傾斜している模擬画像１２３ｃには、その右側の位置にインジケータ１２７ｃと座標範囲１２８ｃが設定されている。
これらの設定情報は、図１４に示すように、座標範囲１２８ａ，…，１２８ｂ，…，１２８ｃを示すＸ座標値（模擬画像１２３上で垂直方向の位置を示す値）およびＹ座標値（模擬画像１２３上で水平方向の位置を示す値）の範囲を用いて設定される。すなわち、ここでは、図１４に示すように、各座標範囲を、ポインティングデバイス４による操作対象空間における座標範囲を示す値に写像したものと、各模擬画像１２３ａ，…，１２３ｂ，…１２３ｃの画像データを示すファイル名（Ｆｉｇ１，Ｆｉｇ２，Ｆｉｇ３，Ｆｉｇ４，…）とを対応付けるテーブルが構成される。
【００３１】
なお、本実施の形態では、座標範囲１２８ａ〜１２８ｃを一定の大きさに設定するのではなく、ガイド情報１２５とほぼ垂直の方向、すなわち模擬画像１２３の上下方向の長さの範囲が漸増または漸減するように設定している。つまり、水平方向に延びた円弧状のガイド情報１２５に対して、座標範囲１２８ａ〜１２８ｃは、それを上下に囲む範囲となる。さらに、ガイド情報１２５の中心近辺に位置する座標範囲１２８ｂの上下方向の長さは、周辺近辺に位置する座標範囲１２８ａあるいは１２８ｃの上下方向の長さよりも大きくなるように設定されている。これによれば、例えば、インジケータを水平方向に移動させる場合には、必ずしもポインティングデバイス４のポインタをガイド情報１２５に沿って下向きに開いた円弧状に移動させる必要はなく、直線上あるいは逆に上向きに開いた円弧状となるように移動させてもよいことになる。つまり、図１３で鎖線で示す範囲内でポインタを移動させることで、インジケータを移動させることができる。
【００３２】
図１４に示すようにガイド情報に対する模擬画像のマッピング処理の結果が得られたとすると、図８の画像・制御データマッピング部１０４２は、次に、模擬画像に対する制御データのマッピング処理を行う（図９のステップＳＡ５）。これは、各模擬画像１２３ａ〜１２３ｃに対して、図７のロボット２ａ〜２ｃのように実体を動作させるために必要な制御データをマッピングするための処理である。すなわち、ここでは、図１５に示すように、画像データファイル名（Ｆｉｇ１，Ｆｉｇ２，Ｆｉｇ３，Ｆｉｇ４，…）に対して、図６等を参照して説明した制御データファイル名（Ｓｏｕｎｄ１，Ｓｏｕｎｄ２，Ｓｏｕｎｄ３，Ｓｏｕｎｄ４，…）を対応付けるようにテーブルのデータが設定される。この場合、画像データファイル名Ｆｉｇ１は、模擬画像１２３ａに対応するものである。
【００３３】
以上のようにして図８の模擬画像データ・制御データ記憶部１０４では、図１６に示すような、これら、ガイド情報の操作対象空間内における座標データと、模擬画像データを示す画像データファイル名、および制御データを示す制御データファイル名との対応関係を示すテーブルが作成され、これが記憶、保持される。
【００３４】
以上で、図３の動作入力・記録・再生・表示制御装置１００における、駆動データ再生部１１０と、模擬画像データ・制御データ記憶部１０４のそれぞれの機能についての説明を終了する。次に、図３の他の機能ブロックを含めた全体の動作について、図１７〜図２０を参照して説明する。
【００３５】
まず、図１７を参照して、図４に示す表示装置１１に表示された模擬画像１２３に対するデータ入力の操作と同時に、ロボット２に対してその操作に応じた駆動データを再生する場合の動作について説明する。
【００３６】
なお、図４は、図１および図２に示す表示装置１１における表示画面１２１の一例を示す図である。表示画面１２１には、入力・記録・再生・表示制御装置１００に対応するアプリケーションによって作成されるウィンドウ１２２が表示され、そのウィンドウ１２２内には模擬画像１２３が表示されている。この場合、模擬画像１２３には、ポインティングデバイス４の操作による指示位置を示すポインタ１２６が表示されている。ただし、ここではポインタ１２６の位置が図４に実線で示す位置にある場合を参照符号１２６ａを用いて示している。ポインティングデバイス４の操作に応じて、このポインタ１２６ａは、例えばポインタ１２６ｂに移動したり、ポインタ１２６ｂに移動したりする。
【００３７】
なお、図４に示す例では、模擬画像１２３として、ロボット模擬画像１２４ａを含む模擬画像１２３ａの場合を用いている。また、ポインタ１２６ａに対応する座標は、図１３の座標範囲１２８ａ内の値であるとする。さらに、ポインタ１２６ｂおよび１２６ｃは、図１３の座標範囲１２８ｂおよび１２８ｃ内の値を指示するものであるとする。
【００３８】
図１７において、図３のポインティングデバイスイベント入力部１０１は、図４のガイド情報１２５を付した模擬画像１２３に対して操作者が操作したときに、ポインティングデバイス４のイベント情報を取得し、このイベント情報をポインティングデバイスイベント判別部１０２へ送出する（ステップＳ１）。ここで、イベント情報は、操作対象空間（模擬画像１２３内の範囲）におけるポインタ１２６の座標情報と、イベント発生時間とから構成されている。
【００３９】
ポインティングデバイスイベント判別部１０２は、逐次、ポインティングされたか否かを判定しながら、送られてくるイベント情報に、条件に合致した操作対象となる模擬画像データが存在するか否かの判別を行う（ステップＳ１〜Ｓ３）。すなわち、ポインタ１２６によって指示されている座標が、図１６に示すテーブルに含まれている画像データファイル名のいずれかに対応付けて記憶されているガイド情報の範囲（Ｘ座標値およびＹ座標値で指定される範囲）のいずれかに対応するかどうかを判別する。例えば、Ｘ座標が１０〜３０の範囲内で、Ｙ座標が３２〜４８の範囲内である場合には、模擬画像１２３ａに対応する画像データファイル名Ｆｉｇ１が存在しているので、存在するとの判別結果が得られる（ステップＳ３で「Ｙｅｓ」）。
【００４０】
データ有りと判別された場合、記憶データ呼び出し部１０３は、ポインティングデバイスのイベント情報に対応付けられた模擬画像データ１２３（１２３ａ）および画像データファイル名（Ｆｉｇ１）に対応付けられた制御データファイル名（Ｓｏｕｎｄ１）を、模擬画像データ・制御データ記憶部１０４から取得し、画像データファイルの表示（ステップＳ４）および制御データファイルの再生（ステップＳ５）を行う。模擬画像１２３ａに対応する画像データファイル名Ｆｉｇ１と、制御データファイル名Ｓｏｕｎｄ１が呼び出されると、これらが、記憶データ再生部１０７によって再生される。そして、表示装置１１とのインターフェースとなる模擬画像表示部１１によって、再生された画像データファイル名Ｆｉｇ１に対応する模擬画像１２３ａが表示装置１１で表示されるとともに（図４）、駆動データ再生部１１０によって制御データファイル名Ｓｏｕｎｄ１に応じた駆動データ（波形Ｗａ）が出力されて、ロボット２が図７のロボット２ａにように駆動させ制御される。
【００４１】
同様に、図４において、ポインタ１２６がポインタ１２６ｂやポインタ１２６ｃのように移動した場合には、表示装置１１では模擬画像１２３として、図１３に示す模擬画像１２３ｂや模擬画像１２３ｃが表示されるとともに、ロボット２の動作は図７のロボット２ｂやロボット２ｃのように駆動制御される。
【００４２】
次に、図１８〜図１９を参照して、図４に示す表示装置１１に表示された模擬画像１２３に対するデータ入力の操作と同時に、ロボット２に対してその操作に応じた駆動データを再生するとともに、その操作履歴を記録する場合の動作について説明する。
【００４３】
図１８は、この動作における各処理の流れを示すフローチャートであり、図１８のステップＴ１〜Ｔ５は図１７のステップＳ１〜Ｓ５の処理に対応するものである。この場合、図１８のステップＴ１〜Ｔ５では、図１７のステップＳ１〜Ｓ５の処理に対応する処理が実行される。そして、ステップＴ６ではステップＴ１で取得されたイベント情報が、図３のポインティングデバイスイベント記録部１０５へ送られる。ポインティングデバイスイベント記録部１０５は、入力されたイベント情報に合致する模擬画像データファイル名に関連付けられた制御データファイル名を、模擬画像データ・駆動データ記録部１０４から取得し、図１９の如くイベント番号に対応付けて各イベントの時間とともに時系列情報として記録する。
【００４４】
なお、図１８のステップＴ６の処理は、ステップＴ３とステップＴ４の処理の間に設けるようにしてもよい。また、ステップＴ５の処理を省略してロボット２の駆動制御を省略するようにすることもできる。
【００４５】
次に、図２０を参照して、図１９に示すように記録された時系列情報に基づいて、時系列に表示装置１１にその情報に対応する模擬画像１２３を表示すると同時に、ロボット２に対してその情報に対応する駆動データを再生する場合の動作について説明する。なお、図２０おいて、ステップＲ２およびステップＲ３は、図１９のステップＴ４およびステップＴ５の処理にそれぞれ対応している。
【００４６】
この場合、図２０のステップＲ１では、図３の記録データ呼び出し部１０６によって、ポインティングデバイスイベント記録部１０５に記録されている図１９に示すような時系列情報の呼び出しが行われ、これが記録データ再生部１０８によって再生される。記録データ再生部１０８によって再生されたデータは、記憶データ再生部１０９による場合と同様にして、模擬画像表示部１０９と駆動データ再生部１１０で再生される。そして、表示装置１１で対応する模擬画像１２３が表示されるとともに、ロボット２の動作が制御される（ステップＲ２〜Ｒ３）。
【００４７】
なお、図２０においては、ステップＲ２の処理またはステップＲ３の処理のいずれかを省略するようにしてもよい。
【００４８】
次に、図２１および図２２を参照して、図３のポインティングデバイスイベント判別部１０２の変形例について説明する。図２１は、本例におけるポインティングデバイスイベント判別部１０２ａの構成を示すブロック図である。図２２は、本例において表示装置１１において模擬画像１２３上に表示されるガイド情報１２５ａ等の一例を示す図である。
【００４９】
図２１に示すように、ポインティングデバイスイベント判別部１０２ａは、座標入力部１０２１と、写像部１０２２と、ガイド情報選択部１０２３と、ガイド情報表示部１０２４と、イベント判定部１０２５とから構成されている。この場合、座標入力部１０２１は、図３のポインティングデバイス入力部１０１によって入力された座標情報を入力する機能を有する。
イベント判定部１０２５は、図３のポインティングデバイスイベント判別部１０２の全体による機能と同様の機能を有するものである。ただし、判定対象となる座標情報が、ポインティングデバイスイベント判別部１０２ではポインティングデバイスイベント入力部１０１から送られてきた座標情報そのものであるのに対して、イベント判定部１０２５ではポインティングデバイスイベント入力部１０１から送られてきた座標情報を写像部１０２２で例えばガイド情報１０２５ａ上の座標情報に写像変換した後のものである点が異なっている。
【００５０】
ガイド情報選択部１０２３は、同一の模擬画像１２３上に複数のガイド情報を表示する場合に、いずれのガイド情報を選択するかを決定する機能を有する。図２２は、図１の頭部２０の動きに対応するガイド情報１２５ａと、左前脚部２２の動きに対応するガイド情報１２５ｂの２つを同時に表示する場合を示している。この場合、ガイド情報選択部１０２３は、ポインタ１２６に近い方のガイド情報１２５ａを選択し、写像部１０２２やイベント判定部１０２５に通知するものとする。
【００５１】
写像部１０２２は、ポインタ１２６によって指示される座標を、ガイド情報選択部１０２３によって選択されたガイド情報１２５ａ上の座標情報に変換する機能を有している。例えば、ポインタ１２６が点Ｅの座標を指示しているときには、その座標をガイド情報１２５ａ上の点Ｇの座標に変換する。また、ポインタ１２６が点Ｅから点Ｆに移動した場合には、ガイド情報１２５ａ上の点Ｇ〜点Ｂ〜点Ｈに対応する座標を変換結果として得る。つまり、この例において写像部１０２２は、次のようにして座標の変換（写像）を行う。
まず、ガイド情報１２５ａを構成する折れ線ＡＢＣから、ポインタ１２６の座標点（例えば点Ｅ）へと垂線を引き、その垂線の足の座標（点Ｇ）を、ガイド情報上の座標点とする変換を行う。ただし、垂線を引くことができない範囲（領域（ａ）、（ｂ）、および（ｃ））にポインタ１２６が位置するときには、それぞれ、変換先として、点Ａ、点Ｂ、および点Ｃの座標を選択する。これによって、ポインタ１２６の指示する座標が、ガイド情報１２５ａ上の座標情報に置き換えられる。
【００５２】
ガイド情報表示部１０２４は、写像部１０２２で得られた変換後の座標情報に対応するように、ガイド情報選択部１０２３で選択されたガイド情報（この例ではガイド情報１２５ａ）上にインジケータ１２９を表示する。また、ガイド情報表示部１０２４は、インジケータ１２９を移動させた場合に、移動後のガイド情報１２５ａの再描画処理等を行う。
【００５３】
イベント判定部１０２５は、上述したように、ガイド情報表示部１０２４を介して写像部１０２２から送られてくる変換後の座標情報と、ガイド情報選択部１０２３によるガイド情報の選択結果に基づいて、それに対応する画像データファイルと制御データファイルが存在するか否かの判定を行う。その判定結果は、図３のポインティングデバイスイベント判別部１０２と同様に、記憶データ呼び出し部１０３やポインティングデバイスイベント記録部１０５へと出力される。
【００５４】
本変形例によれば、ポインティングデバイス４によって入力された座標情報を、一旦、ガイド情報１２５ａやガイド情報１２５ｂ上の座標情報に変換した後、イベント情報に対する判定を行うので、例えばガイド情報の形状が複雑である場合等において、より直感的な操作を行えるといった効果が期待できる。
【００５５】
なお、本例では、説明を簡単にするためガイド情報を３点をむすんだ２本の線分からなる折れ線としているが、折れ線であってもさらに複数の線分から構成したり、あるいは曲線状にする等の変更が可能である。
【００５６】
以上説明したように、本発明の実施の形態によれば、例えば、視聴者に対して興趣を起こさせるロボット等の物体の動作の入力を支援する装置において、ロボット等の物体の動作を簡単に、入力したり、コーディングしたりすることが可能となる。その際、本実施形態では、表示装置に物体の動作の軌跡を示す情報を案内情報として表示するとともに、動作入力を行うポインティングデバイス４の操作に応じて、それによって駆動制御が行われたときに得られる物体の動作と同じ模擬画像を逐次更新しながら表示するようにしたので、ポインティングデバイス４の操作（移動の向きや量）とそれに対応する実物体の動き変化とを容易に、かつ直感的に把握することができる。
【００５７】
また、ポインティングデバイスで与えられた座標から、動作の指示の位相（方向と大きさ）を、ガイド情報に対応させて求めるようにしたので、ポインティングデバイスの操作の自由度を適切に低減し、また、再生にかかる演算量を減らしてレスポンスをよくすることができる。
【００５８】
なお、本発明の実施の形態は、コンピュータと、そのハードウェア資源を利用して実行されるプログラムとから構成され、そのプログラムは、コンピュータ読み取り可能な記録媒体もしくは通信回線経由で、配布することが可能である。また、プログラム実行時に確保されるデータ領域は、メモリ等の記録媒体を用いて確保される。
【００５９】
なお、上記実施の形態では、頭部２０を動作させる場合を中心にして説明したがさらに他の部位の動作を対象に加える場合等にも対応可能である。例えば、ロボット２の左右両前脚について、右脚を上・中・下、左脚を上・中・下に動かす動作パターンを考えると、３の２乗で９通りの動きがあることになるが、このような場合にはこれらの全ての組み合わせについて摸擬画像を準備しておいて、あらかじめ保持しておくようにする。その際の摸擬画像の生成方法としては、背景抽出法（正確には背景差分法とフレーム間差分法）を用いることが考えられる。
ここで、フレーム間差分法とは周期的に取り込む入力画像から前回取り込んだ画像を差し引き、差分値の絶対値が大きい領域を動領域として抽出する方法である。また、背景差分法とは、あらかじめ作成した背景画像を入力画像から差し引いて絶対値が大きな領域を駆動対象物体の領域として抽出する方法である。
【００６０】
また、本発明によれば、実ロボットの各パーツ毎のコマ送り画像があれは、容易にロボットの動作を入力、および操作することが可能となる。
【００６１】
【発明の効果】
以上の手段により、本発明によれば、ロボットの動作を入力・記録・再生可能なロボット動作教示アプリケーションを作成する際に（ロボット動作教示用のデータを入力際に）、簡易にアプリケーションの作成（データ入力）を支援することを可能となり、また作成されたアプリケーション（データ）を用いることによって、直感的な操作で簡易にロボットの動作を記録・再生することができる。
また、駆動指示と、それと同時に発生すべき音声情報とを含む合成信号を利用して、ロボットを制御することで、動作と音と画像を同期を取りつつ再生することを可能とすることができる。
【００６２】
また、ロボットの動作を入力・記録・再生・表示する際に、操作対象画面上のロボットを示す模擬画像とともに表示されたガイド情報に沿って、操作者が操作することによって、イベントドリブン的にガイド情報に対応付けられたロボットの模擬画像を変化させると同時に、操作データを入力および記録することができるので、例えば操作データに合致したロボット駆動データを、直感的な操作で簡単にロボット動作を入力・記録・再生することが可能となり、且つ容易に動作を音や画像と同期を取りつつ再生することを可能となる。
【図面の簡単な説明】
【図１】  本発明の実施の形態の構成を示す外観図である。
【図２】  図１に示す実施の形態の構成を示すブロック図である。
【図３】  図２に示す入力・記録・再生・表示制御装置１００の機能構成を示すブロック図である。
【図４】  図１に示す表示装置１１における表示例を示す図である。
【図５】  図１のロボット２の構成を示すブロック図である。
【図６】  図３の入力・記録・再生・表示制御装置１００から出力される駆動データを発生するための制御データファイルとロボット２における制御内容との関係の一例を説明するための図である。
【図７】  図１のロボット２の動作と、図３の駆動データ再生部１１０で再生される駆動データの波形との関係を示す図である。
【図８】  図３の模擬画像データ・制御データ記憶部１０４の構成を示すブロック図である。
【図９】  図８の模擬画像データ・制御データ記憶部１０４の動作を示すフローチャートである。
【図１０】  図８の画像情報演算部１０４１において模擬画像を作成するための基本的な動作を説明するための説明図である。
【図１１】  図８の画像情報演算部１０４１で作成されるロボット模擬画像の例を示す図である。
【図１２】  図８の画像情報演算部１０４１でロボット模擬画像に付与されるガイド情報１２５の例を示す図である。
【図１３】  図８の画像情報演算部１０４１でガイド情報１２５が付与された模擬画像の例を示す図である。
【図１４】  図８の画像・制御データマッピング部１０４２におけるガイド情報と画像データファイルとの対応付けを示すテーブルを示す図である。
【図１５】  図８の画像・制御データマッピング部１０４２における画像データファイルと制御データファイルとの対応付けを示すテーブルを示す図である。
【図１６】  図３の模擬画像データ・制御データ記憶部１０４に記憶されるテーブルの一例を示す図である。
【図１７】  図３の入力・記録・再生・表示制御装置１００による動作入力と再生を同時に行う場合の動作を示すフローチャートである。
【図１８】  図３の入力・記録・再生・表示制御装置１００による動作入力と記録・再生を同時に行う場合の動作を示すフローチャートである。
【図１９】  図１８に示す動作入力と記録・再生時に記録されるデータの一例を示す図である。
【図２０】  図３の入力・記録・再生・表示制御装置１００による記録データの再生時の動作を示すフローチャートである。
【図２１】  図３のポインティングデバイスイベント判別部１０２の変形例を示すブロック図である。
【図２２】  図２１のポインティングデバイスイベント判別部１０２ａの機能を説明するための説明図である。
【符号の説明】
１  パーソナルコンピュータ
２  ロボット
３  オーディオライン
４  ポインティングデバイス
５  画像入力装置
１０  本体装置
１１  表示装置
１００  入力・記録・再生・表示制御装置
１０１  ポインティングデバイスイベント入力部
１０２，１０２ａ  ポインティングデバイスイベント判別部
１０４  模擬画像データ・制御データ記憶部
１０５  ポインティングデバイスイベント記録部
１０９  模擬画像表示部
１１０  駆動データ再生部
１２３  模擬画像
１２４  ロボット模擬画像
１２５  ガイド情報
１０４０  画像情報入力部
１０４１  画像情報演算部
１０４２  画像・制御データマッピング部
【図１】
0004028192.tif 000002
【図２】
0004028192.tif 000003
【図３】
0004028192.tif 000004
【図４】
0004028192.tif 000005
【図５】
0004028192.tif 000006
【図６】
0004028192.tif 000007
【図７】
0004028192.tif 000008
【図８】
0004028192.tif 000009
【図９】
0004028192.tif 000010
【図１０】
0004028192.tif 000011
【図１１】
0004028192.tif 000012
【図１２】
0004028192.tif 000013
【図１３】
0004028192.tif 000014
【図１４】
0004028192.tif 000015
【図１５】
0004028192.tif 000016
【図１６】
0004028192.tif 000017
【図１７】
0004028192.tif 000018
【図１８】
0004028192.tif 000019
【図１９】
0004028192.tif 000020
【図２０】
0004028192.tif 000021
【図２１】
0004028192.tif 000022
【図２２】
0004028192.tif 000023