説明

ロボット装置及び動作制御方法

【課題】 ロボット装置自身の感情や本能等の状態に基づいて自律的に行動することを可能とする。
【解決手段】 供給される入力情報S1〜S3に応じた動作を行うロボット装置1であって、順次供給される入力情報S1〜S3の履歴に応じた現在の動作及び次に供給される入力情報S1〜S3に基づいて現在の動作に続く次の動作を、コントローラ32内の動作決定部が決定することにより、ロボット装置1自身の感情や本能等の状態に基づいて自律的に行動する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はロボット装置及び動作制御方法に関し、例えば四足動物のように動作するロボット装置に適用して好適なものである。
【背景技術】
【0002】
従来、ユーザからの指令や周囲の環境に応じて動作する四足歩行型のロボット装置、多関節ロボット或いはコンピュータグラフィックスで動くキャラクターを用いたアニメーション等が提案及び開発されている。このようなロボット装置或いはアニメーション(以下、まとめてロボット装置等という。)は、ユーザからの指令に基づいて一連の動作を行う。
【0003】
例えば、犬のように四足動物によく似た形状からなるロボット装置であるいわゆるペットロボットは、ユーザから「伏せ」という命令を受けると、伏せの姿勢をとったり、自分の口の前にユーザが手を差し出すと必ず「おて」をしたりする。
【0004】
従来技術として、下記の特許文献1及び非特許文献1、2が知られている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開昭62−024988号公報
【非特許文献】
【0006】
【非特許文献1】大角雅治、工藤敏巳、斎藤幸弘、田島年浩,感情を持ったインタラクティブ・ペットロボット,OMRON TECHNICS,日本,オムロン株式会社,1998年12月22日,Vol.38, No.4,pp.54-61
【非特許文献2】藤田雅博、福村直博,ROBOT Entertainment,第6回ソニーリサーチフォーラム論文集,日本,ソニー株式会社,1997年 2月28日,pp.234-239
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、動物を模したロボット装置等の動作はできるだけ本物の動物がする動作に近いことが望ましい。
【0008】
しかし、これまでのロボット装置等は、ユーザからの指令や環境に基づいて予め決められた動作を行うだけであった。このように従来のロボット装置等は本物の動物と同じように自律的に動作を行うものではないことから、できるだけ本物の動物に近く、自律的に行動を決定するようなロボット装置等を得たいというユーザの要求を満足させることはできなかった。
【0009】
さらに、ロボット装置等は、目標とされる姿勢や目標とされる動作を所定の姿勢や動作を経由して実行しているが、目標とされる姿勢や動作までに遷移する間に実行される姿勢や動作を複数用意しておくことはロボット装置等の動作表現の豊富化につながる。
【0010】
また、ロボット装置等が目的とされる姿勢や動作に到達されるまでに経由する姿勢や動作として複数通り用意した場合、経由する姿勢や動作が最適に選択されて、当該目的とされる姿勢や動作に遷移できることが好ましいといえる。
【0011】
本発明は、上述の実情に鑑みてなされたものであり、自然な動作を自律的に行うロボット装置及び動作制御方法の提案を目的としている。
【0012】
また、本発明は、上述の実情に鑑みてなされたものであり、表現の豊富化を可能にするとともに、遷移する際の姿勢や動作が最適化されたロボット装置及び動作制御方法の提供を目的としている。
【課題を解決するための手段】
【0013】
本発明に係るロボット装置は、供給される入力情報に応じた動作を行うロボット装置であって、順次供給される入力情報の履歴に応じた現在の動作及び次に供給される入力情報に基づいて、現在の動作に続く次の動作を決定する動作決定手段を備える。
【0014】
このような構成を備えるロボット装置は、順次供給される入力情報の履歴に応じた現在の動作及び次に供給される入力情報に基づいて現在の動作に続く次の動作を決定することにより、ロボット装置自身の感情や本能等の状態に基づいて自律的に行動する。
【0015】
また、本発明に係る動作制御方法は、供給される入力情報に応じて動作させる動作制御方法であって、順次供給される入力情報の履歴に応じた現在の動作及び次に供給される入力情報に基づいて、現在の動作に続く次の動作を決定する。
【0016】
このような動作制御方法は、順次供給される入力情報の履歴に応じた現在の動作及び次に供給される入力情報に基づいて現在の動作に続く次の動作を決定することにより、例えば、ロボット装置を自身の感情や本能等の状態に基づいて自律的に行動させる。
【発明の効果】
【0017】
本発明によれば、供給される入力情報に応じて動作させ、入力情報に基づいて動作に起因するモデルを変化させることにより動作を決定することにより、例えばロボット装置を自身の感情や本能等の状態に基づいて自律的に行動させることができる。
【図面の簡単な説明】
【0018】
【図1】本発明によるロボット装置の一実施の形態を示す斜視図である。
【図2】ロボット装置の回路構成を示すブロック図である。
【図3】コントローラにおけるデータ処理を示す略線図である。
【図4】感情・本能モデル部によるデータ処理を示す略線図である。
【図5】感情・本能モデル部によるデータ処理を示す略線図である。
【図6】感情・本能モデル部によるデータ処理を示す略線図である。
【図7】行動決定機構部における有限オートマトンの状態遷移図である。
【図8】行動指令情報の生成について説明するために使用した行動決定機構部等の構成を示すブロック図である。
【図9】ステートが確率により決定される場合の説明に使用した図である。
【図10】感情モデルと本能モデルとの関係について説明するために使用した図である。
【図11】姿勢遷移機構部における姿勢遷移のグラフを示す図である。
【図12】姿勢遷移のグラフの具体例を示す図である。
【図13】現在の姿勢を把握できない場合に一旦遷移させるニュートラルの姿勢を備えること、さらに転倒復帰を可能にすることを説明するために使用した状態遷移図である。
【図14】距離を指標とした経路探索を説明するために使用した図である。
【図15】分類分けにより経路探索をを行う場合を説明するために使用した図である。
【図16】距離を具体的に設定した場合の経路探索を説明するために使用した図である。
【図17】歩行方向をパラメータとする場合を説明するために使用したロボット装置の上面図である。
【図18】パラメータと動作の内容を示す図である。
【図19】姿勢間を遷移する間の動作に他の動作を同期させる場合の説明をするために使用した図である。
【図20】異なる姿勢において同様な動作を実行させる場合の説明に使用した図である。
【図21】ロボット装置を示す斜視図である。
【図22】基本姿勢を取り入れて、全体と部位との間で姿勢を遷移させる場合の説明をするために使用した図である。
【図23】現在の姿勢が全体にあり、目標の動作が部位にある場合において、基本姿勢に一旦遷移させてから目標とする動作を実行する場合の説明に使用した図である。
【図24】現在の姿勢が部位にあり、目標の動作が全体にある場合において、基本姿勢に一旦遷移させてから目標とする動作を実行する場合の説明に使用した図である。
【図25】指令の挿入処理を説明するために使用した図である。
【図26】全体及び各構成部分に対応した指令を保存可能とする指令保存部を示す図である。
【図27】全体及び各構成部分に対応した指令を保存可能とする指令保存部による処理形態の一例を説明するために使用したを図である。
【図28】経路探索をする動作経路探索部を示すブロック図である。
【図29】指令により動作が実行されるまでの一連の処理を示すフローチャートである。
【図30】頭のグラフ上において、現在の姿勢から目標の動作まで複数の有向アークが経由されることを説明するために使用した図である。
【図31】本発明が適用される他の例であって、コンピュータグラフィックスで動くキャラクターを示す図である。
【図32】本発明によるロボット装置の他の実施の形態を示す斜視図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態について図面を用いて詳しく説明する。
【0020】
(1)ロボット装置の構成
図1に示すように、ロボット装置1は全体が構成されており、頭に相当する頭部2と、胴体に相当する本体部3と、足に相当する足部4A,4B,4C,4Dと、尻尾に相当する尻尾部5とを連結されて構成されている。ロボット装置1は、本体部3に対して頭部2、足部4A〜4D、尻尾部5を動かすことによって本物の四足動物のように動作する。
【0021】
頭部2には、目に相当し、画像を撮像する例えばCCD(Charge Coupled Device)カメラでなる画像認識部10と、耳に相当し、音声を集音するマイク11と、口に相当し、音声を発するスピーカ12とがそれぞれ所定位置に取り付けられている。また、頭部2には、ユーザからリモートコントローラ(図示せず)を介して送信される指令を受信するリモートコントローラ受信部13と、ユーザの手などが接触されたことを検出するためのタッチセンサ14と、発光手段でなるLED(Light Emitting Diode)15とが取り付けられている。
【0022】
本体部3には、腹に相当する位置にバッテリ21が取り付けられると共に、その内部にロボット装置1全体の動作を制御するための電子回路(図示せず)等が収納されている。
【0023】
足部4A〜4Dの関節部分、足部4A〜4Dと本体部3の連結部分、本体部3と頭部2の連結部分、本体部3と尻尾部5の連結部分などは、それぞれのアクチュエータ23A〜23Nによって連結されており、本体部3内部に収納される電子回路の制御に基づいて駆動するようになされている。このようにロボット装置1は、各アクチュエータ23A〜23Nを駆動させることにより、頭部2を上下左右に振らせたり、尻尾部5を振らせたり、足部4A〜4Dを動かして歩かせたり走らせたりして、本物の四足動物のような動作を行わせる。
【0024】
このように構成されているロボット装置1は、後に詳述するが、概略として例えば次のような特徴がある。
【0025】
ロボット装置がある姿勢(第1の姿勢)から他の姿勢(第2の姿勢)へ遷移するように指示されたとき、第1の姿勢から第2の姿勢に直接に遷移しないで、予め用意された無理のない姿勢をたどって遷移する。
【0026】
また、ロボット装置1の姿勢遷移で任意の姿勢に到達したときに通知を受け取れる。
【0027】
ロボット装置1は、頭、足、尻尾の部分から構成され、これらの各部分の姿勢を独立に管理できる。従って、例えば、頭と足はそれぞれ独立に姿勢制御が可能になる。また、頭、足、尻尾の全てを含む全体の姿勢を部分とは別に管理できる。
【0028】
また、ロボット装置1の動作命令に動作の詳細を示すためのパラメータを渡すことができる。
【0029】
ロボット装置1には以上のような特徴があり、以下にこのような特徴を含めた多くの特徴を説明する。
【0030】
(2)ロボット装置の回路構成
ロボット装置1の回路構成は、例えば図2に示すような構成となっている。頭部2は、マイク11及びリモートコントローラ受信部13でなるコマンド受信部30と、画像認識部10及びタッチセンサ14からなる外部センサ31と、スピーカ12と、LED15とを有している。また、本体部3は、バッテリ21を有すると共に、その内部にロボット装置1全体の動作を制御するためのコントローラ32と、バッテリ21の残量を検出するためのバッテリセンサ33及びロボット装置1内部で発生する熱を検出する熱センサ34でなる内部センサ35とを有している。さらに、ロボット装置1の所定位置にはアクチュエータ23A〜23Nがそれぞれ設けられている。
【0031】
コマンド受信部30は、ユーザからロボット装置1に与えられる指令、例えば「歩け」、「伏せ」、「ボールを追いかけろ」等の指令を受信するためのものであり、リモートコントローラ受信部13及びマイク11によって構成されている。
【0032】
リモートコントローラ受信部13は、リモートコントローラ(図示せず)がユーザによって操作されて入力された所望の指令を受信する。例えば、リモートコントローラからの指令の送信は、赤外線光により行われる。リモートコントローラ受信部13は、この赤外線光を受信して受信信号S1Aを生成し、これをコントローラ32に送出する。
【0033】
なお、リモートコントローラについては、赤外線光により行う場合に限定されるものはなく、音階によってロボット装置1に命令を与えるようなものとすることもできる。この場合には、ロボット装置1は、例えば、マイク11から入力されたリモートコントローラからの音階に応じた処理を行うようにする。
【0034】
マイク11は、ユーザが所望の指令に応じた音声を発すると、当該ユーザの発した音声を集音して音声信号S1Bを生成し、これをコントローラ32に送出する。
【0035】
コマンド受信部30は、このようにユーザからロボット装置1に与えられる指令に応じて受信信号S1A及び音声信号S1Bでなる指令信号S1を生成し、これをコントローラ32に供給する。
【0036】
外部センサ31のタッチセンサ14は、ユーザからロボット装置1への働きかけ、例えば「なでる」、「たたく」等の働きかけを検出するためのものである。例えば、ユーザによりタッチセンサ14が触れられて所望の働きかけがなされると、その働きかけに応じた接触検出信号S2Aを生成し、これをコントローラ32に送出する。
【0037】
外部センサ31の画像認識部10は、ロボット装置1の周囲の環境を識別した結果、例えば「暗い」、「お気に入りのおもちゃがある」等の周囲の環境情報又は例えば「他のロボットが走っている」等の他のロボット装置の動きを検出するためのものである。この画像認識部10は、周囲の画像を撮影した結果得られる画像信号S2Bを、コントローラ32に送出する。
【0038】
外部センサ31は、このようにロボット装置1の外部から与えられる外部情報に応じて接触検出信号S2A及び画像信号S2Bでなる外部情報信号S2を生成し、これをコントローラ32に送出する。
【0039】
内部センサ35は、ロボット装置1自身の内部状態、例えばバッテリ容量が低下したを意味する「お腹がすいた」、「熱がある」等の内部状態を検出するためのものであり、バッテリセンサ33及び熱センサ34から構成されている。
バッテリセンサ33は、ロボット装置1の各回路に電源を供給するバッテリ21の残量を検出するためのものである。このバッテリセンサ33は、その検出した結果であるバッテリ容量検出信号S3Aをコントローラ32に送出する。熱センサ34は、ロボット装置1内部の熱を検出するためのものである。この熱センサ34は、その検出した結果である熱検出信号S3Bをコントローラ32に送出する。
【0040】
内部センサ35は、このようにロボット装置1の内部の情報に応じてバッテリ容量検出信号S3A及び熱検出信号S3Bでなる内部情報信号S3を生成し、これをコントローラ32に送出する。
【0041】
コントローラ32は、コマンド受信部30から供給される指令信号S1と、外部センサ3lから供給される外部情報信号S2と、内部センサ35から供給される内部情報信号S3とに基づいて、各アクチュエータ23A〜23Nを駆動させるための制御信号S5A〜S5Nを生成し、これらをアクチュエータ23A〜23Nにそれぞれ送出して駆動させることによりロボット装置1を動作させる。
【0042】
その際コントローラ32は、外部に出力するための音声信号S10や発光信号S11を必要に応じて生成し、このうち音声信号S10をスピーカl2を介して外部に出力したり、発光信号S11をLED15に送出して所望の発光出力(例えば、点滅にする、色を変化させる)をすることにより、ユーザに必要な情報を知らせるようになされている。例えば、発光出力により、ユーザに自己の感情を知らせるようにする。なお、LED15に替えて画像を表示する画像表示部を備えることもできる。これにより、所望の画像表示により、ユーザに必要な情報、例えば感情等を知らせることができる。
【0043】
(3)コントローラにおける処理
コントローラ32は、コマンド受信部30から供給される指令信号S1と、外部センサ31から供給される外部情報信号S2と、内部センサ35から供給される内部情報信号S3とを、所定の記憶領域に予め格納されているプログラムに基づいてソフトウェア的にデータ処理を施し、その結果得られる制御信号S5をアクチュエータ23に供給する。
【0044】
この際のアクチュエータ23の動作がロボット装置1の行動として表現されることになり、本発明はそのような表現の豊富化の実現を目的とするものである。
【0045】
図3に示すように、コントローラ32は、そのデータ処理の内容を機能的に分類すると、感情本能モデル変化手段としての感情・本能モデル部40と動作決定手段としての行動決定機構部41と姿勢遷移手段としての姿勢遷移機構部42と制御機構部43とに分けられ、外部から供給される指令信号S1と外部情報信号S2と内部情報信号S3とを感情・本能モデル部40及び行動決定機構部41に入力する。概略としては以下のように機能する。
【0046】
感情・本能モデル部40において指令信号S1、外部情報信号S2及び内部情報信号S3に基づいて感情や本能の状態を決定する。そして、行動決定機構部41において指令信号S1、外部情報信号S2及び内部情報信号S3に加え感情・本能モデル部40により得た感情・本能状態情報S10に基づいて次の動作(行動)を決定し、後段の姿勢遷移機構部42において行動決定機構部41により決定された次の動作(行動)に遷移するための姿勢の遷移計画を立てる。なお、行動決定機構部41が決定した動作(行動)の情報は、感情・本能モデル部40にフィードバックされて、感情・本能モデル部40では、決定された動作(行動)を参照して感情や本能の状態を決定するようにもなされている。すなわち、感情・本能モデル部40では、動作(行動)結果をも参照して本能及び感情を決定している。
【0047】
制御機構部43では、姿勢遷移機構部42から姿勢遷移計画に基づいて送られてくる姿勢遷移情報S18に基づいて各動作部を制御し、実際に姿勢を遷移させてから、行動決定機構部41にて決定された次の動作(行動)を実際に実行する。
【0048】
すなわち、ロボット装置1は、上述したようなコントローラ32における機構により、感情・本能に基づいて次の動作(行動)を決定して、そのような動作(行動)を実行できる姿勢までの遷移計画を立てて、その遷移計画に基づいて姿勢を遷移させてから、そのような感情・本能に基づいて決定した動作(行動)を実際に実行する。以下、上述のコントローラ32の各構成部について説明する。
【0049】
(3−1)感情・本能モデル部における処理
感情・本能モデル部40は、図4に示すように、大別して、感情モデルを構成する情動群50と、感情モデルとは属性の異なるモデルとして用意された本能モデルを構成する欲求群51とを備えている。
【0050】
ここで、感情モデルは、ある値を有する感情パラメータによって構成され、ロボット装置に規定された感情を感情パラメータの値に応じた動作を介して表出させるためのモデルである。感情パラメータは、主に、圧力センサや視覚センサ等のセンサによって検出された「叩かれた」、「怒られた」といった外部入力信号(外的要因)に基づいて、値が上下する。むろん、感情パラメータはバッテリー残量、体内温度等の内部入力信号(内的要因)に基づいても変化する場合もある。
【0051】
また、本能モデルは、ある値を有する本能パラメータによって構成され、ロボット装置に規定された本能(欲求)を本能パラメータの値に応じた動作を介して表出させるためのモデルである。本能パラメータは、主に、行動履歴に基づいた「運動がしたい」あるいは、バッテリー残量に基づく「充電がしたい(お腹がすいた)」といった内部入力信号に基づいて、値が上下する。むろん、本能パラメータも、感情パラメータ同様、外部入力信号(外的要因)に基づいて変化してもよい。
【0052】
これら感情モデル及び本能モデルは、それぞれ同一属性とされる複数種類のモデルによって構成されている。すなわち、情動群50が同一属性からなる独立した感情モデルとしての情動ユニット50A〜50Fを有し、欲求群51が同一属性からなる独立した欲求モデルとしての欲求ユニット51A〜51Dを有している。
【0053】
情動群50としては、「うれしさ」の感情を示す情動ユニット50A、「悲しさ」の感情を示す情動ユニット50B、「怒り」の感情を示す情動ユニット50C、「驚き」の感情を示す情動ユニット50D、「恐れ」の感情を示す情動ユニット50E及び「嫌悪」の感情を示す情動ユニット50F等が挙げられる。欲求群51としては、「運動欲(Movement Instinct)」の欲求を示す欲求ユニット51A、「愛情欲(Love Instinct)」の欲求を示す欲求ユニット51B、「食欲(Recharge Instinct)」の欲求を示す欲求ユニット51C及び「好奇心(Search Instinct)」の欲求を示す欲求ユニット51D等が挙げられる。
【0054】
情動ユニット50A〜50Fは、情動の度合いを例えば0〜100レベルまでの強度(感情パラメータ)によってそれぞれ表し、供給される指令信号S1、外部情報信号S2及び内部情報信号S3に基づいて情動の強度をそれぞれ時々刻々と変化させる。かくして感情・本能モデル部40は、時々刻々と変化する情動ユニット50A〜50Dの強度を組み合わせることによりロボット装置1の感情の状態を表現し、感情の時間変化をモデル化している。
【0055】
さらに、所望の情動ユニット同士が相互に影響し合って強度が変化するようにもなされている。例えば、情動ユニット同士を相互抑制的又は相互刺激的に結合し、相互に影響し合って強度が変化するようにしている。
【0056】
具体的には、図5に示すように、「うれしさ」の情動ユニット50Aと「悲しさ」の情動ユニット50Bとを相互抑制的に結合することにより、ユーザにほめてもらったときには、「うれしさ」の情動ユニット50Aの強度を大きくすると共に、その際「悲しさ」の情動ユニット50Bの強度を変化させるような入力情報S1〜S3が供給されていなくても、「うれしさ」の情動ユニット50Aの強度が大きくなることに応じて「悲しさ」の情動ユニット50Bの強度を低下させる。同様に「悲しさ」の情動ユニット50Bの強度が大きくなると、当該「悲しさ」の情動ユニット50Bの強度が大きくなることに応じて「うれしさ」の情動ユニット50Aの強度を低下させる。
【0057】
また、「悲しさ」の情動ユニット50Bと「怒り」の情動ユニット50Cとを相互刺激的に結合することにより、ユーザに叩かれたときには、「怒り」の情動ユニット50Cの強度を大きくすると共に、その際「悲しさ」の情動ユニット50Bの強度を変化させるような入力情報S1〜S3が供給されていなくても、「怒り」の情動ユニット50Cの強度が大きくなることに応じて「悲しさ」の情動ユニット50Bの強度を増大させる。同様に、「悲しさ」の情動ユニット50Bの強度が大きくなると、当該「悲しさ」の情動ユニット50Bの強度が大きくなることに応じて「怒り」の情動ユニット50Cの強度を増大させる。
【0058】
このように所望の情動ユニット同士が相互に影響し合って強度が変化するようにすることにより、当該結合した情動ユニットのうち一方の情動ユニットの強度を変化させると、これに応じて他方の情動ユニットの強度が変化することになり、自然な感情を有するロボット装置1が実現される。
【0059】
一方、欲求ユニット51A〜51Dは、情動ユニット50A〜50Fと同様に、欲求の度合いを例えば0〜l00レベルまでの強度(本能パラメータ)によってそれぞれ表し、供給される指令信号S1と外部情報信号S2と内部情報信号S3とに基づいて欲求の強度をそれぞれ時々刻々と変化させる。かくして感情・本能モデル部40は、時々刻々と変化する欲求ユニット5lA〜51Dの強度を組み合わせることによりロボット装置1の本能の状態を表現し、本能の時間変化をモデル化している。
【0060】
さらに、情動ユニット同士を結合した場合と同様に、所望の欲求ユニット同士が相互に影響し合って強度が変化するようにもなされている。例えば、欲求ユニット同士を相互抑制的又は相互刺激的に結合し、相互に影響し合って強度が変化するようにしている。これにより、結合した欲求ユニットのうち一方の欲求ユニットの強度を変化させると、これに応じて他方の欲求ユニットの強度が変化することになり、自然な本能を有するロボット装置1が実現される。
【0061】
さらに、情動群50と欲求群51との間で各ユニットが互いに影響し合い、その強度を変化させるようにもなされている。例えば、欲求群51の「愛情欲」の欲求ユニット51Bや「食欲」の欲求ユニット51Cの強度の変化が、情動群50の「悲しさ」の情動ユニット50Bや「怒り」の情動ユニット50Cの強度の変化に影響したり、「食欲」の欲求ユニット51Cの強度の変化が「悲しさ」の情動ユニット50Bや「怒り」の情動ユニット50Cの強度の変化に影響するようにである。これにより、「愛情欲」が満たされると「怒り」の感情や「悲しさ」の感情がおさえられ、また、「食欲」が満たされないと「怒り」の感情や「悲しさ」の感情が高まるといったような状態を表現することができるようになる。このように、感情と欲求との相互作用により、感情と本能とが複雑に影響し合った状態を表現することができる。
【0062】
以上述べたように、感情・本能モデル部40は、指令信号S1と外部情報信号S2と内部情報信号S3とでなる入力情報S1〜S3、或いは情動群50内及び欲求群51内における情動ユニット同士及び欲求ユニット同士の相互作用や情動群50と欲求群51との間のユニット同士の相互作用等により情動ユニット50A〜50F及び欲求ユニット5lA〜51Dの強度をそれぞれ変化させる。
【0063】
そして、感情・本能モデル部40は、この変化した情動ユニット50A〜50Fの強度を組み合わせることにより感情の状態を決定すると共に、変化した欲求ユニット51A〜51Dの強度を組み合わせることにより本能の状態を決定し、当該決定された感情及び本能の状態を感情・本能状態情報S10として行動決定機構部41に送出する。
【0064】
また、感情・本能モデル部40には、後段の行動決定機構部41からロボット装置1自身の現在又は過去の行動の内容を示す行動情報S12が供給されている。例えば、後述する行動決定機構部41において歩行の行動が決定された場合には、「長時間歩いた」とされた情報として行動情報Sl2が供給されるといったようにである。
【0065】
このように行動情報S12をフィードバックさせることで、同一の入力情報S1〜S3が与えられても、当該行動情報S12が示すロボット装置1の行動に応じて異なる感情・本能状態情報S10を生成することができるようになる。具体的には、次のような構成により、フィードバックされる行動情報S12が感情や行動の状態の決定に参照される。
【0066】
図6に示すように、感情・本能モデル部40は、各情動ユニット50A〜50Cの前段に、ロボット装置1の行動を示す行動情報S12と入力情報S1〜S3とに基づいて各情動ユニット50A〜50Cの強度を増減させるための強度情報S14A〜S14Cを生成する強度増減手段55A〜55Cをそれぞれ設け、当該強度増減手段55A〜55Cから出力される強度情報S14A〜S14Cに応じて各情動ユニット50A〜50Cの強度をそれぞれ増減させる。
【0067】
例えば、感情・本能モデル部40は、ユーザに挨拶をしたときに頭をなでられれば、すなわちユーザに挨拶をしたという行動情報S12と頭をなでられたという入力情報Sl〜S3とが強度増減手段55Aに与えられると、「うれしさ」の情動ユニット50Aの強度を増加させる。一方、感情・本能モデル部40は、何らかの仕事を実行中に頭をなでられても、すなわち仕事を実行中であるという行動情報S12と頭をなでられたという入力情報S1〜S3とが強度増減手段55Aに与えられても、「うれしさ」の情動ユニット50Aの強度を変化させない。例えば、強度増減手段55Aは、行動情報S12と入力情報S1〜S3とに基づいて強度情報S14A〜S14Cを生成するような関数やテーブルとして構成されている。例えば、他の強度増減手段55B,55Cについても同様である。
【0068】
このように、感情・本能モデル部40は、強度増減手段55A〜55Cを備えて、入力情報S1〜S3だけでなく現在又は過去のロボット装置1の行動を示す行動情報S12も参照しながら各情動ユニット50A〜50Cの強度を決定することにより、例えば何らかのタスクを実行中にユーザがいたずらするつもりで頭をなでたとき、「うれしさ」の情動ユニット50Aの強度を増加させるような不自然な感情を起こさせることを回避することができる。因みに、感情・本能モデル部40は、欲求ユニット51A〜5lCの場合も同様にして、供給される入力情報S1〜S3及び行動情報S12に基づいて各欲求ユニット51A〜51Cの強度をそれぞれ増減させるようになされている。
【0069】
なお、本実施の形態では、「うれしさ」、「悲しさ」及び「怒り」の情動ユニット50A〜50Cに強度増減手段55A〜55Cを備えた例について説明した。しかし、これに限定されるものではなく、他の「驚き」、「恐れ」及び「嫌悪」の情動ユニット50D〜50Fに強度増減手段を備えることもできることはいうまでもない。
【0070】
以上述べたように、強度増減手段55A〜55Cは、入力情報S1〜S3及び行動情報S12が入力されると、予め設定されているパラメータに応じて強度情報S14A〜S14Cを生成して出力するので、当該パラメータをロボット装置1毎に異なる値に設定することにより、例えば怒りっぽいロボット装置や明るい性格のロボット装置のように、当該ロボット装置に個性を持たせることができる。
【0071】
(3−2)行動決定機構部における処理
行動決定機構部41は、各種情報に基づいて次の動作(行動)を決定する部分である。行動決定機構部41は、具体的には、図3に示すように、指令信号S1と外部情報信号S2と内部情報信号S3と感情・本能状態情報S10と行動情報S12とでなる入力情報S14に基づいて、次の動作(行動)を決定し、当該決定された動作(行動)の内容を行動指令情報Sl6として姿勢遷移機構部42に送出する。
【0072】
具体的には、図7に示すように、行動決定機構部41は、過去に供給された入力情報S14の履歴を動作状態(以下、これをステートという。)で表し、現在供給された入力情報S14とそのときのステートとに基づいて当該ステートを別のステートに遷移させることにより、次の動作を決定するような有限個のステートを有する確率有限オートマトン57と呼ばれるアルゴリズムを用いている。
【0073】
このように行動決定機構部41は、入力情報S14が供給される毎にステートを遷移させ、当該遷移したステートに応じて行動を決定することにより、現在の入力情報S14だけでなく過去の入力情報S14も参照して動作を決定することができるようになる。
【0074】
これにより、例えば「ボールを追いかけている」というステートST1において、「ボールが見えなくなった」という入力情報S14が供給されると、「立っている」というステートST5に遷移する。一方で、「寝ている」というステートST2において、「起きろ」という入力情報S14が供給されると、「立っている」というステートST4に遷移するようになる。よって、ステートST4及びステートST5は、行動が同一であっても過去の入力情報S14の履歴が異なっていることから、ステートも異なっていることがわかる。
【0075】
実際上、行動決定機構部41は、所定のトリガーがあったことを検出すると、現在のステートを次のステートに遷移させる。トリガーの具体例としては、例えば現在のステートの行動を実行している時間が一定値に達したこと、又は特定の入力情報S14が入力された、又は感情・本能モデル部40から供給される感情・本能状態情報S10が示す情動ユニット50A〜50F及び欲求ユニット51A〜51Dの強度のうち、所望のユニットの強度が所定の閾値を超えたこと等が挙げられる。
【0076】
例えば、行動決定機構部41は、感情・本能モデル部40から供給された感情・本能状態情報S10が示す情動ユニット50A〜50F及び欲求ユニット51A〜51Dの強度のうち、所望のユニットの強度が所定の閾値を超えているか否かに基づいて遷移先のステートを選択する。これにより、例えば同一の指令信号S1が入力されても、情動ユニット50A〜50F及び欲求ユニット51A〜51Dの強度に応じて異なるステートに遷移するようになされている。
【0077】
したがって、行動決定機構部41は、供給される外部情報信号S2を基に例えば目の前に手のひらが差し出されたことを検出し、かつ感情・本能状態情報S10を基に「怒り」の情動ユニット50Cの強度が所定の閾値以下であることを検出し、かつ内部情報信号S3を基に「お腹がすいていない」、すなわち電池電圧が所定の閾値以上であることを検出すると、目の前に手のひらが差し出されたことに応じて「おて」の動作を行わせるための行動指令情報S16を生成し、これを姿勢遷移機構部42に送出する。
【0078】
また、行動決定機構部41は、例えば目の前に手のひらが差し出され、かつ「怒り」の情動ユニット50Cの強度が所定の閾値以下であり、かつ「お腹がすいている」すなわち電池電圧が所定の閾値未満であることを検出すると、「手のひらをぺろぺろなめる」ような動作を行わせるための行動指令情報S16を生成し、これを姿勢遷移機構部42に送出する。
【0079】
また、行動決定機構部41は、例えば目の前に手のひらが差し出され、かつ「怒り」の情動ユニット50Cの強度が所定の閾値以上であることを検出すると、「お腹がすいていない」すなわち電池電圧が所定の閾値以上であるか否かにかかわらず、「ぷいと横を向く」ような動作を行わせるための行動指令情報S16を生成し、これを姿勢遷移機構部42に送出する。
【0080】
上述のように行動決定機構部41は、次の行動を入力情報S14に基づいて決定しているが、例えば図8に示すように、決定される行動の内容を、「行動1」、「行動2」、「行動3」、「行動4」、・・・「行動n」といった行動内容を示す情報として複数保持している。例えば、「行動1」はボールを蹴る行動を行う動作内容からなり、「行動2」は感情を表出させる動作内容からなり、「行動3」は自律探索をする動作内容からなり、「行動4」は障害物回避をするための動作内容からなり、「行動n」はバッテリー残量が少ないことを知らせるための動作内容からなる、といったようにである。
【0081】
このように予め用意されている行動内容を示す複数の情報の中から、入力情報S14に基づいて確率有限オートマトン57による選択がなされて、次の行動が決定される。
【0082】
行動の選択(決定)については、具体的には図8に示すように、選択モジュール44によってなされる。そして、選択モジュール44は、その選択結果を、行動指令情報Sl6として姿勢遷移機構部42に出力し、行動情報S12として感情・本能モデル部40や行動決定機構部41に出力する。例えば、選択モジュール44は、決定した行動にフラグを立て、その情報を行動情報S12や行動指令情報S16として行動決定機構部41や姿勢遷移機構部42に出力している。
【0083】
行動決定機構部41では、外部情報等(指令信号S1、外部情報信号S2)S21や内部情報等(内部情報信号S3、感情・本能状態情報S10)S22に加えて行動情報S12に基づいて行動を決定することにより、前の行動が考慮された次の行動を決定することができるようになる。
【0084】
また、感情・本能モデル部40では、上述したように、同一の入力情報S1〜S3に加えて行動情報S12に基づいて、感情及び本能の状態を変化させる。これにより、感情・本能モデル部40は、上述したように、同一の入力情報S1〜S3が与えられても異なる感情・本能状態情報S10を生成することができるようになる。
【0085】
なお、行動決定機構部41の「行動1」、「行動2」、「行動3」、「行動4」、・・・「行動n」の動作内容を示す情報にグループIDを付しておくこともできる。グループIDは、同一カテゴリーの行動において同一の情報を示すものであって、例えば、「ボールを蹴る」の行動について複数パターンの行動を有している場合には、当該複数の行動に同一のグループIDが付されるといったような関係にある。このように同一のカテゴリーの行動に同一のグループIDを付すことにより、同一カテゴリーの行動をグループとして処理できるようになる。
【0086】
例えば、選択モジュール44における行動の選択では、同じカテゴリー内ではどの行動が選択されても、同一のグループIDが発行される。そして、当該選択された行動に付されていたグループIDが感情・本能モデル部40に送られることにより、感情・本能モデル部40は、グループIDに基づいて、感情や本能の状態を決定することができるようになる。
【0087】
また、行動決定機構部41は、感情・本能モデル部40から供給された感情・本能状態情報S10が示す情動ユニット50A〜50F及び欲求ユニット51A〜51Dの強度のうち所望のユニットの強度に基づいて、遷移先のステートで行われる行動のパラメータ、例えば歩行の速度、手足を動かす際の動きの大きさや速度、音を出す際の音の高さや大きさなどを決定し、当該行動のパラメータに応じた行動指令情報S16を生成して姿勢遷移機構部42に送出するようになされている。
【0088】
また、指令信号S1と外部情報信号S2と内部情報信号S3とでなる入力情報S1〜S3は、感情・本能モデル部40及び行動決定機構部41に入力されるタイミングに応じて情報の内容が異なるため、感情・本能モデル部40と共に行動決定機構部41にも入力されるようになされている。
【0089】
例えば、コントローラ32は、「頭をなでられた」という外部情報信号S2が供給されると、感情・本能モデル部40によって「うれしい」という感情・本能状態情報S10を生成し、当該感情・本能状態情報S10を行動決定機構部41に供給するが、この状態において、「手が目の前にある」という外部情報信号S2が供給されると、行動決定機構部41において上述の「うれしい」という感情・本能状態情報S10と「手が目の前にある」という外部情報信号S2とに基づいて「喜んでおてをする」という行動指令情報S16を生成させ、これを姿勢遷移機構部42に送出させるようになされている。
【0090】
また、動作状態(ステート(或いはノードともいう。))の遷移先は、確率有限オートマトン57において、ある確率により決定されるようにもしている。例えば、外部からの入力があった場合に、その入力により、ある動作状態(行動状態)に20%の確率(遷移確率)で遷移するといったようにである。具体的には、図9に示すように、「あるいている」のステートST10から、「はしっている」のステートST11や「寝ている」のステートST12に遷移可能である場合において、「はしっている」のステートST11への遷移確率がPとされ、「寝ている」のステートST12への遷移確率がPとされ、そのような確率に基づいて遷移先が決定される。なお、確率により遷移先を決定する技術としては、特開平9−114514公開公報に開示されている技術が挙げられる。
【0091】
また、ロボット装置1は、あるステートに遷移する確率の情報を、テーブルとして保持している。例えば、図10に示すようなテーブルとしてである。図10に示すテーブルは、現在の行動状態を示すノード(node)名、入力されたイベント名、入力されたイベント(以下、入力イベントという。)のデータ名、入力イベントのデータの範囲、あるステートへの遷移確率等の情報によって構成されている。
【0092】
このようなテーブルにより、入力されたイベントに応じてあるステートへの遷移確率が決定され、その遷移確率に基づいた遷移先のステートの決定がなされる。
【0093】
ここで、現在の行動状態を示すノード名とは、このような現在のロボット装置1の行動状態(ステート)を示すもので、現在どのような行動が実行されているかを示す。
【0094】
また、入力イベントとは、ロボット装置1に入力された情報であって、このテーブルは、このような入力イベントによって整理されている。例えば、入力イベント名の「BALL」は、入力イベントがボールを発見したことをいい、「PAT」は、軽く叩かれたことを示すことをいい、「HIT」は殴られたことをいい、「MOTION」は動いているものを発見したことをいい、「OBSTACLE」は障害物を見つけたことをいう。
【0095】
なお、テーブルは、実際には多くの入力イベントによって整理されており、本実施の形態では、「BALL」、「PAT」、「HIT」、「MOTION」、及び「OBSTACLE」の入力イベントによりテーブルが整理されている場合について説明する。
【0096】
入力イベントのデータの範囲は、そのような入力イベントがパラメータを必要する場合のそのようなデータの範囲をいい、入力イベントのデータ名は、そのようなパラメータ名をいっている。すなわち、入力イベントが「BALL」であれば、データ名はそのボールの大きさ「SIZE」をいい、データの範囲はそのような大きさの範囲が0〜1000であることをいう。同様に、入力イベントが「OBSTACLE」であれば、データ名はその距離「DISTANCE」をいい、データの範囲はそのような距離の範囲が0〜100であることをいう。
【0097】
そして、あるステートへの遷移確率は、入力イベントの性質に応じて選択可能とされる複数のステートについて割り当てられている。すなわち、一つの入力イベントにおいて、選択可能とされるステートに付された遷移確率の合計が100%になるように各アークに遷移確率が付されている。具体的にいえば、「BALL」の入力イベントでみた場合、当該入力イベントの性質により選択可能とされる「ACTION1」、「ACTION3」、・・・に付されている遷移確率である30%、20%、・・・の合計が、100%になるようになされている。
【0098】
なお、ここで「ノード」及び「アーク」は、いわゆる確率有限オートマトンにおいて一般的に定義されているもので、「ノード」は状態(本例では、行動状態)とされ、「アーク」は「ノード」間をある確率をもってして結ぶ有向線(本例では、遷移動作)とされている。
【0099】
以上のような情報からなるテーブルにより、次のようにして、入力イベント、入力イベントにおいて取得されたデータの範囲及び遷移確率が参照されて、遷移先のステートが選択される。
【0100】
例えば、ロボット装置1がボールを発見した場合(入力イベントが「BALL」である場合)において、そのボールの大きさが0〜1000であるときには、現在の状態であるnode(ノード)3から30%の確率でnode120へ遷移する。その遷移の際に「ACTION1」が付されたアークが選択され、「ACTION1」に対応する動作または表現が実行される。または、現在の状態であるnode3から20%の確率でnode500へ遷移する。その遷移の際に「ACTION3」が付されたアークが選択され、「ACTION3」に対応する動作または表現が実行される。「ACTION1」、「ACTION3」としては、例えば、「吠える」、「ボールを蹴る」といった行動が挙げられる。一方、ボールの大きさが1000以上のときには、「node120」や「node500」が遷移先として選択される確率はない。
【0101】
また、ロボット装置1が障害物を見つけた場合(入力イベントが「OBSTACLE」である場合)において、その障害物までの距離が0〜100であるときには、後退り行動としての「node1000」のノード(ステート)が100%の確率で選択される。すなわち、100%の確率で「MOVE_BACK」が付されたアークが選択され、「MOVE_BACK」が実行されるようになる。
【0102】
以上述べたように、テーブル等を用いて、確率により、ステート(ノード)又はアークの選択、すなわち行動モデルの決定をすることができる。このように、確率をも考慮に入れて遷移先のステートを決定することにより、遷移先が常に同じものとして選択されるようなことを防止することができるようになる。すなわち、ロボット装置1の行動の表現の豊富化を可能にする。
【0103】
また、上述のようなステートの選択、すなわち行動モデルの決定については、感情モデルの状態に基づいてできるようにもなされている。例えば、上述のステート間の遷移確率を感情モデルの状態に基づいて変化させることにより、行動モデルを決定するといったようにである。具体的には、次のようにである。
【0104】
例えば、上述したようなステートへの遷移を確率により決定することを利用する。すなわち、感情モデルの状態(例えば、レベル)を参照し、その感情モデルの状態に応じて遷移確率を変化させる。これにより、感情モデルに基づいて行動モデルの決定がなされるようになり、結果として行動モデルが感情モデルの状態に影響されるようになる。具体的に、これを、図10に示すテーブルを用いて説明する。
【0105】
例えば、遷移確率を決定するデータとして、「JOY(うれしさ)」、「SURPRISE(驚き)」や「SADNESS(悲しさ)」を用意する。この「JOY(うれしさ)」、「SURPRISE(驚き)」や「SADNESS(悲しさ)」は、感情モデルの情動ユニット50A,50D,50Bに対応されるものである。そして、データの範囲は、例えば、0〜50とする。このデータの範囲は、上述した情動ユニットのレベルに対応される。
【0106】
これにより、「JOY(うれしさ)」、「SURPRISE(驚き)」や「SADNESS(悲しさ)」が所定のレベル、本実施の形態では0〜50にある場合には、所定のステートへの遷移確率が決定されることになる。例えば、そのデータ範囲が0〜50である「JOY(うれしさ)」の実際のレベルが30であれば、「ACTION1」、「ACTION2」、「MOVE_BACK」、「ACTION4」が付されたアークが10%、10%、10%、70%の確率で選択され、所定のステートへ遷移するようになる。
【0107】
また、図10に示すように、「JOY(うれしさ)」、「SURPRISE(驚き)」や「SADNESS(悲しさ)」を入力イベントに関係なく遷移確率の決定に参照することにより、すなわちいわゆる空イベント状態において、これらを参照することにより、例えば、外部から入力がない状態においても、遷移確率を決定することができる。これにより、例えば、一定時間入力イベントの検出がなされないとき、遷移確率の決定に感情モデルが参照されるようになる。
【0108】
さらに、このような場合において、参照を、「JOY(うれしさ)」、「SURPRISE(驚き)」、「SADNESS(悲しさ)」の順番ですることにより、「JOY(うれしさ)」、「SURPRISE(驚き)」、「SADNESS(悲しさ)」の順番で、その実際のレベルが参照されるようになる。これにより例えば、「SADNESS(悲しさ)」の実際のレベルが60である場合には、そのデータ範囲が0〜50とされていることから、次の「JOY(うれしさ)」の実際のレベルが参照されることになる。そして、例えば、そのデータ範囲が0〜50である「JOY(うれしさ)」の実際のレベルが20であるとした場合、「ACTION2」が付されたアークが30%の確率で、また、「MOVE_BACK」の付されたアークが60%の確率で選択され所定のステートへ遷移するようになる。
【0109】
以上のように、感情モデルの状態に基づいて行動モデルを決定できるようにもなされている。このように、行動モデルが感情モデルの状態に影響されることにより、ロボット装置1の表現の豊富化が可能になる。
【0110】
以上述べたような種々の手段により、行動決定機構部41による行動指令情報S16の決定がなされる。
【0111】
(3−3)姿勢遷移機構部における処理
姿勢遷移機構部42は、目標とされる姿勢や目標とされる動作に遷移するための情報を生成する部分である。具体的には、姿勢遷移機構部42は、図3に示すように、行動決定機構部41から供給される行動指令情報S16に基づいて現在の姿勢又は動作から次の姿勢又は動作(目的とされる姿勢又は目的とされる動作)に遷移させるための姿勢遷移情報S18を生成し、これを制御機構部43に送出する。例えば、現在の姿勢から次に遷移可能な姿勢は、胴体や手や足の形状、重さ、各部の結合状態のようなロボット装置1の物理的形状と、例えば関節が曲がる方向や角度のようなアクチュエータ23A〜23Nの機構とによって決定され、姿勢遷移情報S18は、そのようなことが考慮された、遷移させるための情報とされる。
【0112】
制御機構部43は、このように姿勢遷移機構部42から送られてくる姿勢遷移情報S18に基づいて、ロボット装置1を実際に動作させている。
【0113】
姿勢遷移機構部42は、ロボット装置1が遷移可能な姿勢及び遷移する際の動作を予め登録しており、例えばグラフとして保持しており、行動決定機構部41から供給された行動指令情報S16を姿勢遷移情報S18として制御機構部43に送出する。制御機構部43は、姿勢遷移情報S18に応じて動作して目標とされる姿勢或いは目標とされる動作に遷移する。以下、姿勢遷移機構部42にて行う処理について詳しく説明する。
【0114】
例えば、ロボット装置1は、指令(行動指令情報S16)の内容にしたがった姿勢に、直接遷移できない場合がある。すなわち、ロボット装置1の姿勢は、現在の姿勢から直接遷移可能な姿勢と、直接には遷移できなく、ある動作や姿勢を経由して可能となる姿勢と、に分類されるからである。
【0115】
例えば、4本足のロボット装置1は、手足を大きく投げ出して寝転んでいる状態から伏せた状態へ直接遷移することはできるが、立った姿勢へ直接遷移することはできず、一旦手足を胴体近くに引き寄せて伏せた姿勢になり、それから立ちあがるという2段階の動作が必要である。また、安全に実行できない姿勢も存在する。例えば、4本足のロボット装置1は、立っている姿勢で両前足を挙げてバンザイをしようとすると、転倒してしまう場合である。或いは、現在の姿勢が寝転び姿勢(寝姿勢)にある場合において、指令の内容として座り姿勢でしかできないような「足をばたばたさせる」といった内容が送られてとき、そのまま足をばたばたばたさせる命令を出してしまうと、寝姿勢から座り姿勢への遷移と足をばたばたさせる動作とが実行されてしまうことになり、ロボット装置1はバランスを崩して転倒してしまう場合がある。
【0116】
したがって、姿勢遷移機構部42は、行動決定機構部41から供給された行動指令情報S16が直接遷移可能な姿勢を示す場合には、当該行動指令情報S16をそのまま姿勢遷移情報S18として制御機構部43に送出する一方、直接遷移不可能な姿勢を示す場合には、遷移可能な他の姿勢や動作を経由して目標とされる姿勢(行動指令情報S16により指示された姿勢)まで遷移させるような姿勢遷移情報S18を生成し、これを制御機構部43に送出する。これにより、ロボット装置1は、遷移不可能な姿勢を無理に実行しようとする事態や転倒するようなことを回避することができる。或いは、目標とされる姿勢或いは動作に遷移するまで複数の動作を用意しておくことは表現の豊富化に結びつく。
【0117】
具体的には、姿勢遷移機構部42は、ロボット装置1がとり得る姿勢及び動作が登録されているグラフであって、姿勢とこの姿勢を遷移させる動作とを結んで構成されたグラフを保持して、現在の姿勢から目標とされる姿勢又は目標とされる動作までの経路を、指令情報とされる行動指令情報S16に基づいてグラフ上において探索して、その探索結果に基づいて動作させて、現在の姿勢から目標とされる姿勢又は目標とされる動作に遷移させる。すなわち、姿勢遷移機構部42は、ロボット装置1がとり得る姿勢を予め登録すると共に、遷移可能な2つの姿勢の間を記録しておくようになされており、このグラフと行動決定機構部41から出力された行動指令情報S16とに基づいて目標とされる姿勢或いは動作まで遷移させる。
【0118】
具体的には、姿勢遷移機構部42は、上述のようなグラフとして、図11に示すような有向グラフ60と呼ばれるアルゴリズムを用いている。有向グラフ60では、ロボット装置1がとり得る姿勢を示すノードと、遷移可能な2つの姿勢(ノード)の間を結ぶ有向アーク(動作アーク)と、場合によっては一つのノードから当該一つのノードに戻る動作のアーク、すなわち一つのノード内で動作を完結する動作を示す自己動作アークとが結合されて構成されている。すなわち、姿勢遷移機構部42は、ロボット装置1の姿勢(静止姿勢)を示す情報とされるノードと、ロボット装置1の動作を示す情報とされる有向アーク及び自己動作アークとから構成される有向グラフ60を保持し、姿勢を点の情報として、さらに動作の情報を有向線の情報として把握している。
【0119】
ここで、有向アークや自己動作アークは複数とされていてもよく、すなわち、遷移可能なノード(姿勢)の間に有向アークが複数接合されてあってもよく、一つのノードにおいて複数の自己動作アークが結合されていてもよい。
【0120】
姿勢遷移機構部42は、行動決定機構部41から行動指令情報S16が供給されると、現在の姿勢に対応したノードと、行動指令情報S16が示す次に採るべき姿勢に対応するノードとを結ぶように、有向アークaの向きに従いながら現在のノードから次のノードに至る経路を探索し、当該探索した経路上にあるノードを順番に記録することにより、姿勢遷移の計画を立てるようになされている。以下、このような現在の姿勢から目標とされるノード(指令により指示されたノード)、或いは目標とされるアーク(指令により指示されたアーク)の探索を、経路探索という。ここで、目標とするアークとは、有向アークであってもよく、自己動作アークであってもよい。例えば、自己動作アークが目標とされるアークとなる場合とは、自己動作が目標とされた(指示された)場合であって、例えば、所定の芸(動作)が指示された場合等が挙げられる。
【0121】
姿勢遷移機構部42は、経路探索により得た目標とされる姿勢(ノード)或いは目標とさえる動作(有向アーク或いは自己動作アーク)までの姿勢遷移計画に基づいて、遷移のための制御命令(姿勢遷移情報S18)を後段の制御機構部43に出力する。
【0122】
例えば、図12に示すように、現在の姿勢が「ふせる」という姿勢を示すノードNDにある場合には、「すわれ」という行動指令情報S16が供給されると、「ふせる」の姿勢を示すノードNDから「すわる」の姿勢を示すノードNDへは有向アークaが存在しており、直接遷移が可能であり、これにより、姿勢遷移機構部42は、「すわれ」という内容の姿勢遷移情報S18を制御機構部43に与える。
【0123】
また、姿勢遷移機構部42は、現在の姿勢が「ふせる」という姿勢を示すノードNDにある場合において「歩け」という行動指令情報S16が供給されると、「ふせる」から「歩く」まで直接的に遷移ができないので、「ふせる」の姿勢を示すノードNDから「あるく」の姿勢を示すノードNDに至る経路を探索することにより姿勢遷移計画を立てる。すなわち、「ふせる」の姿勢を示すノードNDから有向アークaを経由して、「たつ」の姿勢を示すノードNDを選択し、さらに、「たつ」の姿勢を示すノードNDから有向アークaを経由して「あるく」の姿勢を示すノードNDに至るといった姿勢遷移計画を立てる。このような姿勢遷移計画の結果として、姿勢遷移機構部42は、「たて」という内容の姿勢遷移情報S18を出し、その後に「歩け」という内容の姿勢遷移情報S18を制御機構部43に出力する。
【0124】
なお、図12に示すようなノードからグラフが構成されている場合における各ノードへの自己動作アークの貼り付けとしては、「たつ」の姿勢を示す姿勢を示すノードNDに「ダンスをする」の動作を示す自己動作アークを貼り付けたり、「すわる」の姿勢を示すノードNDに「バンザイをする」の動作を示す自己動作アークを貼り付けたり、或いは「ねそべる」の姿勢を示すノードNDに「いびきをする」の動作を示す自己動作アークを貼り付けたりすることが挙げられる。
【0125】
また、ロボット装置1は、通常、現在どの姿勢にあるかを把握しているように構成されている。しかし、現在の姿勢がわからなくなる場合も生じる。例えば、ロボット装置1は、ユーザ等に抱きかかえられたり、転倒時、或いは電源起動時において、現在の姿勢を把握できない。例えば、このような現在の姿勢が把握不可能なときの姿勢を不定姿勢という。例えば、このように現在の姿勢が把握できずに不定姿勢とされると、いわゆる出発の姿勢を特定できないことから、目標とされる姿勢或いは動作までの姿勢遷移計画を立てることができなくなる。
【0126】
このようなことから、ノードとしてニュートラル(中立)の姿勢を示すノードを設け、現在の姿勢が不明のときにはニュートラルの姿勢に遷移させて、姿勢遷移計画を立てるようにしている。すなわち、例えば、現在の姿勢が不明のときには、図13に示すように、ニュートラルの姿勢をノードNDntに一旦遷移させてから、「たっている」の姿勢を示すノードND、「すわっている」の姿勢を示すノードND、或いは「ねそべっている」の姿勢を示すノードNDといった基本的な姿勢を示すノードに遷移させるようにする。そして、このような基本的な姿勢に遷移させてから、本来の姿勢遷移計画を立てる。
【0127】
なお、本実施の形態では、ニュートラルの姿勢から遷移する基本的な姿勢として、「たっている」、「すわっている」、「ねそべっている」を挙げて説明したがこれに限定されるものではなく他の姿勢であってもよいことはいうまでもない。
【0128】
また、不定姿勢からニュートラルの姿勢(ノード)への遷移については、具体的には、低トルクあるは低速度で動作部(例えばアクチュエータ)を駆動して行うことにする。これにより、サーボの負担を減らして、さらに例えば、通常の動作と同様に動作部を動作させてしまい動作部が破損していまうといったことを防止することができる。例えば、尻尾部5は、通常振り回すような動作をしているのであるが、そのような尻尾部5の動作をニュートラルの姿勢(ノード)への遷移の際に行うと、ロボット装置1が不定姿勢として寝ているような状態にある場合に、尻尾部5が破損してしまうようなことがあるからである。
【0129】
また、ロボット装置は転倒を把握して、転倒状態から上述したような基本的な姿勢を示すノードに遷移させることもできる。例えば、ロボット装置1には、加速度センサが備えられ、自己が転倒したことを検出する。
【0130】
具体的には、ロボット装置1は加速度センサにより自己が転倒したことを検出すると、転倒復帰のための所定の動作を行い、その後、上述したような基本的な姿勢を示すノードに遷移する。
【0131】
また、ロボット装置1は、転倒方向について把握するようにも構成されている。具体的には、加速度センサにより、前後、左右の4方向について転倒方向を把握可能とされている。これにより、ロボット装置は、転倒方向に応じた転倒復帰の動作が可能になり、速やかに基本的な姿勢への遷移が可能になる。
【0132】
また、転倒を検出した際には、所定の表現を出力するようにしてもよい。例えば、所定の表現として、自己動作アークa11により足をばたばたさせる動作を行う。これにより、ロボット装置1が転んでもがいている様子を表現することができるようになる。
【0133】
さらに、「ふせる」のノードNDと「立つ」のノードNDとの間に図示しない複数の有向アークがある場合には、最適な一の有向アークを選択して、「立つ」のノードNDに遷移するような姿勢遷移計画を立てることもできる。
【0134】
上述したように、ノードとノードとの間には、複数の有向アークが存在し、また、一つのノードに複数のノードが有向アークにより結合されている場合もある。よって、現在のノードから目標とされるノード或いはアーク(有向アーク又は自己動作アーク)を結ぶ経路については複数存在する。
【0135】
このようなことから、現在のノードと目標とするノードとの距離を短くするといったことを指標として、すなわち最短距離として経路を探索するいわゆる最短距離探索により、姿勢遷移計画を立てるようにする。
【0136】
図14に示すように、ノード(○印)とノード(○印)との間を結ぶ有向アーク(矢印)に距離という概念を用いて、最短距離探索を行う。このような経路探索手法としては、ダイキストラのパスサーチの理論等がある。距離は、後述するように、重み付けや、時間等といった概念に代替えすることも可能である。図14には、距離が「1」の有向アークによって遷移可能なノードを結んだ結果を示している。
【0137】
よって、このような距離を経路探索の指標として用いることで、現在の姿勢(ノード)から目標とするノードへ最短距離の経路を選択できるようになる。
【0138】
具体的には、現在のノードから目標とされるノードへの経路が4通りある場合において、第1の経路の距離が「12」、第2の経路の距離が「10」、第3の経路の距離が「15」、第4の経路の距離が「18」であるようなときには、距離が「10」の第2の経路により遷移していき、目標とされる姿勢までの姿勢遷移計画を立てる。
【0139】
最短距離の検索の手法についてはこのような手法によることに限定されるものではない。
【0140】
上述の例では、目標とするノードへの最短距離の経路を、複数の経路を探索してその結果の中から一の経路として選び出している。換言すれば、上述の経路探索では、現在のノードから目標とするノードに遷移できる経路を可能な限り探索して複数の経路を得て、その中から距離を指標として最短距離の経路を特定している。しかし、最短距離の経路探索では、このような手法により最短距離の経路を探索することに限定されるものではなく、目標とするノードへの最短距離の経路を検出した時点で、その経路探索の処理を終了することもできる。
【0141】
例えば、現在の姿勢から探索指標とする距離を徐々に延ばしてノードを次々に探索していき、その都度最短の距離にあるノード(目標とされるノードではないノード)を決定して、最終的に目標とするノードを検出した時点で当該最短距離の経路探索の処理を終了するといったようにである。すなわち例えば「等高線」といったような概念で考えられるような「等しい距離」といった概念を用い、現在のノードから距離を延ばしてその「等しい距離」上のノードを次々に検出し、目標とするノードを最終的に検出できた時点で、その経路探索の処理を終了する。このような経路探索の手法として、ダイキストラのパスサーチが挙げられる。
【0142】
このような最短距離の経路探索の手法によれば、目標とするノードまでに存在する全ての経路を探索することなく最短距離の経路を探索することができるので、最短距離の経路を短時間で検出することができるようになり、結果としてこのような探索処理を行うためのCPU等の負担を少なくすることができる。よって、全ての経路を探索することなく目標とするノードまでの最短距離の経路を検出することができるので、ネットワーク全体を検索することによる負担をなくすことができるようになり、例えば、このようなグラフを構築するネットワークが大規模となる場合でも、負担を少なくして経路を探索することができるようになる。
【0143】
また、経路探索の手法としては、図15に示すように、ノードを行動或いは姿勢に基づき大まかに分類分け(クラスタリング)しておき、最初に分類による大まかな検索(予備検索)を行い、その後、詳細検索をするようにしてもよい。例えば、「右前足けり」という姿勢をとらせる際に、経路探索範囲として最初に「ボールをける」という分類のエリアを選択し、次に、そのエリアの中のみでパスを検索する。
【0144】
例えば、大まかな分類とそれを構成するものとの関連付け、すなわち「ボールをける」と「右前足けり」との関連付けは、このようなシステムを設計する際にID情報等を付しおくことによりなされている。
【0145】
なお、ノード間には、当該ノード間の両方向に向かう有向アークも存在するので、一旦遷移したノードから戻ってしまうような有向アークも存在する。このような場合、経路探索において何ら制約がなければ、戻る有向アークを選択してしまい、元のノードに戻ってしまう場合がある。これを防止するように、一度通過した(ノード)にならないような有向アークを選択するようにすることもできる。
【0146】
また、目標とするノードにたどり着けることができなかった場合、最終的な姿勢になれないといった結果を上位の制御手段や下位の制御手段等に出すようにする。
【0147】
また、上述の例では、目標を姿勢(ノード)として説明しているが、目標を動作すなわち有向アークや自己動作アークとすることもできる。目標とされるアークが自己動作アークとは、例えば、足部4にばたばたさせる動作をさせること等が挙げられる。
【0148】
また、経路探索における指標として、有向アークに付した重みや有向アークの動作時間を参照するようにすることもできる。有向アークに重み付けした場合は例えば次のようになる。
【0149】
現在のノードから目標とされるノードへの間の候補となる経路の途中にある有向アークの重みの総和を算出して、そのような候補とされている経路毎の総和を比較することにより、最適な経路(最小費用の経路)を選択する。
【0150】
また、有向アークの動作時間(実行時間)についてみた場合は例えば次のようになる。
【0151】
例えば、現在のノードから目標とするノードへ2つの有向アークを経由していく場合において、動作時間が1秒と2秒の2本の有向アークを経由した場合には、遷移時間は3秒かかる。よって、図16に示すようなグラフにおいて、現在のノードNDから目標のノードNDに遷移しようとした場合において、ノードNDを経由して目標とするノードNDに遷移する場合と、有向アークaのみにより目標とするノードNDに遷移した場合とでは、動作時間を指標とすることにより、ノードNDを経由した方が動作時間が1秒の有向アークaと動作時間が2秒の有向アークaとを経由しているので、現在のノードNDと目標のノードNDとを直接結ぶ動作時間が5秒の有向アークaを遷移経路として選択するよりも、遷移時間を短くして目標のノードNDに到達することができる。よって、動作時間を指標としてみた場合には、2つの有向アークを経由した方が最短時間として目標のノードに到達できる姿勢遷移計画を立てることができる。
【0152】
また、有向アークに付す重み或いは距離を動作の難易度としてもよい。例えば、難易度が低いということを、距離が短いということとして設定する。また、有向アークの1本をデフォルトとすることもできる。有向アークの1本をデフォルトとしておくことにより、通常は、当該デフォルトの有向アークが選択されるようにして、指示があった場合に、デフォルトでない他の有向アークが選択されるようにすることもできる。
【0153】
以上のように、経路探索のための指標となるものを有向アークに付加しておくことにより、すなわち、有向アークに動作時間や、バランスの保持が困難な難易度を付加しておくことにより、大きい動作を避けて通るなどして最適な経路を選択した姿勢遷移計画を立てることができる。また、有向アークにエネルギー消費率を付加しておくことにより、最適効率の経路を選択した姿勢遷移計画を立てることができる。
【0154】
また、ノードとノードとの間には、複数の有向アークが存在する場合もあるので、このような場合には、選択される確率を有向アーク毎に振ることもできる。すなわち、例えば異なる確率を各アークに割り当てる。これにより、確率によるばらつきによって、同じノード間の遷移でも様々な動作が選択されるようになって、一連の動作が変化に富んだものとすることができる。例えば、座っている姿勢から立ちあがる姿勢に遷移させる際に、座っている足を後ろに伸ばしてから4足で立ちあがったり、前の足を前に伸ばしてから立ちあがる等の動作を確率で選択することで、どちらの動作で立ちあがるか再生されるまで(実際に実行されるまで)予測できない効果をもたらすことができる。
【0155】
具体的には、各有向アークの距離又は重みをm,m,m・・・として、その総和(m+m+m+・・・)をMとするとき、距離又は重みがmの有向アークに割り当てる確率Pは、(1)式として表せる。
【0156】
【数1】

【0157】
これにより、重みが大の有向アークは通過経路として選択される確率が低く、重みが小の有向アークは通過経路として選択される確率が高くなる。
【0158】
また、経路探索をする領域を限定することもできる。例えば、所定の範囲内の経路のみに限定して経路探索することもできる。これにより、より短時間で、最適な経路を探索することができるようになる。
【0159】
また、これに重みを付け等して最適な経路を選択させることにより、離れた姿勢間を補間する動作の単調さを回避したり、危険度の高い経路を通る確率を減らすことができるようになる。
【0160】
また、アーク(有向アーク又は自己動作アーク)については、以下のようにグラフに登録することもできる。
【0161】
例えば、「歩く」といった動作について複数の実行態様が考えられる。例えば、図17に示すように、0°方向に歩く、30°方向に歩く、60°方向に歩くといった動作は「歩く」について複数の実行態様となる。このような同一の動作について複数の実行態様を持たせること、すなわち、同一動作に対するパラメータを多くすることにより、ロボット装置1の表現の豊富化につながる。このような動作は、そのようなパラメータが異なるアークを複数存在させることにより可能になる。
【0162】
一方、このように、複数の実行態様に応じてパラメータが異なるアークを複数存在させることは、ネットワークの資源の有効利用といった面では好ましくない。すなわち、0°から90°まで、1°毎に異なる方向に歩く動作を実行させようとした場合、91個のアークが必要になるからである。
【0163】
そこで、「歩く」を一つのパスとして、歩行方向についてはパラメータにする。例えば、自己動作アークにおいて、「歩く」を命令して、その際にパラメータとして歩行方向を別に与えることにより、動きを再生するときに、その与えられたパラメータの方向に、「歩く」を実行することができるようになる。これにより、複数の自己動作アークを必要とせずに、1個の「歩く」の自己動作アークと、歩行方向のパラメータを有するだけで、同じ歩行の指示でも細かく方向を設定して実行させることが可能になる。これによりシナリオが多彩になってもなおグラフが簡素で済み、構築されているネットワーク資源を有効に使用することができるようになる。
【0164】
具体的には、行動指令情報S16に付加情報として、動作のパラメータの情報を付加して、例えば、歩行方向を付加して、姿勢遷移機構部42では、「歩く」という内容の姿勢遷移情報S16にそのようなパラメータを添付して、制御機構部43に送る。
【0165】
なお、上述の実施の形態では、自己動作アークにパラメータを付す場合について説明しているが、これに限定されず、有向アークにパラメータを付すこともできる。これにより、ノード間に「歩く」といった動作そのものは同じであるが、そのパラメータとされる「歩行方向」が異なる有向アークを複数用意する必要がなくなる。
【0166】
また、同じ動作を繰り返す場合には、繰り返す回数を示す情報を与えることで、繰り返しの動作を実行させることができる。例えば、「歩く」動作を実行させておき、別に繰り返す回数として「3回」の情報をパラメータとして与えることにより、命令形態を簡素にすることができる。これにより、例えば、3歩歩かせるような場合、「歩け」といった指示を3度出したり、「3歩歩け」といった指示としてではなく、「歩け」と「3回(3歩)」といった指示形態で実行させることができるようになる。これにより、そのような指示形態からなるアーク、或いはノードの情報量を少なくして保持することができるようになる。また、繰り返しの回数を指定できるようにすることで、指示を出す回数と指示が伝達されるまでの時間を短縮することができる。
【0167】
例えば、図18に示すように、一歩ずつ歩く動作の指示として「ワンステップウォーク」の情報を制御機構部43に出力し、そのパラメータとして「3」を指示することにより、3歩だけ歩く動作をさせたり、また、パラメータとして「7」を指示することにより、7歩だけ歩く動作をさせたり、さらに、パラメータとして「−1」を指示することにより、足に対して他の指示があるまでずっと歩き続ける動作をさせたりすることができる。
【0168】
また、繰り返し動作をさせておき、後で、制御機構部43に繰り返し動作の停止命令を与えてやることにより、上述したように、同じ動作を繰り返して実行させることもできる。
【0169】
また、所定のアークに対してある表現を貼り付けて実行させることもできる。すなわち、所定の動作(アーク)が実行された場合、その動作に同期させて別の表現とされる動作を実行させることもできる。例えば、図19に示すように、座り姿勢のノードNDから立ち姿勢のノードNDに遷移する際の有向アークaが設定されている場合に、有向アークaに所定の音声や動作を対応付けしておくこともできる。これにより、座り姿勢から立ち姿勢へ遷移する動作に、他の動作として笑っている目の表情や、”う〜ん”といった音声を同期して再生することができるようになる。このように異なる部位の組合せで、厚みのある表現が可能になり、シナリオが豊かになる効果も生まれる。
【0170】
また、各ノードに結合されている自己動作アークが重複している場合がある。例えば、図20に示すように、寝姿勢のノード、座り姿勢のノードや立ち姿勢のノードそれぞれにおいて怒る動作をするような場合である。
【0171】
このような場合、「怒る」という名前の動作を、寝姿勢から寝姿勢への自己動作アーク、座り姿勢から座り姿勢への自己動作アーク、立ち姿勢から立ち姿勢への自己動作アークとなる怒りを表現する動作に命名しておけば、「怒る」という指示を与えるだけで、最短経路探索により、一番近い「怒る」の動作(自己動作アーク)を検索することもできる。すなわち、目標とされる動作(自己動作アーク)のうち最短で実行可能な一の動作までの経路を、姿勢遷移計画として立てる。これにより、例えば、現在の姿勢が寝姿勢に一番近い場合において、「怒る」の行動指令情報S16が送られてきたとき、寝姿勢のノードの自己動作アークとして結合されている怒る動作として、例えば寝た状態でガリガリと地面をひっかく動作が実行されるようになる。
【0172】
このように複数のノードにおいて同一の動作を実行する自己動作アークが存在するような場合において、そのような所定の動作の指令がなされた場合、最短距離探索により最適な姿勢(最短距離にある姿勢)における動作が実行可能になり、これにより、上位制御手段は、各部の状態或いは動作について常に把握しておく必要なく、指示された動作を実行させることができるようになる。すなわち、例えば、上位制御手段(姿勢遷移機構部42)は、「怒る」と指令があった場合に、現在のノードを把握するだけでよく、実際の「寝た状態で怒る」といったノードを探索することなく、単に「怒る」の自己動作アークを探索するだけで、最短距離の寝姿勢において怒る動作までの姿勢遷移計画を立てることができる。
【0173】
また、上述したように、同じ系統の動作を同じ名前で指示した場合、予め登録したグラフ上で現在の姿勢から最適な動作を探索して選択するようにしているので、例えば「怒る」等の抽象的でかつ豊富なパターンを持つ動作指示が簡潔に指示できるようになる。
【0174】
また、ロボット装置1は、各構成部分を別個に動作させることが可能とされている。すなわち、各構成部分それぞれについての指令を実行させることができる。ここで、ロボット装置(全体)1のそのような構成部分として、図21に示すように、大別して頭部2、足部4、尻尾部5が挙げられる。
【0175】
このように構成されているロボット装置1において、尻尾部5と頭部2とを個別に動作させることができる。つまり、リソースが競合しないので個別に動作させることができる。一方、ロボット装置1の全体と頭部2とを別個に動作させることはできない。つまり、リソースが競合するので個別に動作させることはできない。例えば、指令の内容の中に頭部2の動作が含まれているような全体の動作が実行されている間は、頭部2についての指令の内容を実行することはできない。例えば、頭部2を振りながら尻尾部5を振ることは可能であり、全身(全体)を使った芸をしている最中に頭部2を振ることは不可能であるといったようにである。
【0176】
表1には、行動決定機構部41から送られてくる行動指令情報S16に、リソースが競合する場合と、リソースが競合しない場合の組合せを示している。
【0177】
【表1】

【0178】
このように、リソースが競合するような指令が送られてきた場合、全体1の動作についての指令又は頭部2の動作についての指令のいずれか一方を先行して実行しなければならなくなる。以下に、そのような指令がなされている場合における処理について説明する。
【0179】
リソースが競合するため、一方の指令を先行して実行する場合、例えば、全体1の動作を終了させてから、頭部2についての命令を実行するような場合、全体1の動作により至った最後の姿勢から頭部2の動作が開始されることになる。しかし、全体1の動作後の最後の姿勢が、頭部2を振るといった動作を開始するのにふさわしい姿勢になっているとは限らない。全体1の動作後の最後の姿勢が、頭部2の動作開始にふさわしい姿勢になっていない状態で、すなわち、異なる指令により遷移する前後の姿勢が不連続となるような場合において、頭部2の動作を開始してしまうと、頭部2が急激な動作を示し、不自然な動作となってしまう場合がある。この問題は、現在の姿勢(或いは動作)から目標とする姿勢(或いは動作)がロボット装置1の全体と各構成部分にまたいでおり、ロボット装置1の全体を制御するために構築されているノード及びアークからなるネットワーク(グラフ)と、ロボット装置1の各構成部分を制御するために構築されているノード及びアークからなるネットワーク(グラフ)とが何らつながりを持たずに別個に構築されている場合に生じる問題である。
【0180】
上述のように遷移する前後の姿勢が不連続であることに起因してロボット装置1がなす不自然な動きは、グラフ上において遷移動作を滑らかにつなげるように姿勢遷移計画を立てることにより、解消される。具体的には、全体及び構成部分のグラフ上において共有する基本姿勢を取り入れて、姿勢遷移計画を立てることによりこれを解消している。
【0181】
ロボット装置1の姿勢遷移計画に使用するためのネットワークの情報を、図22Aに示すように、全体のネットワークの情報(グラフ)と、各構成部分のネットワークの情報(グラフ)とから、全体として階層的構造として構成している場合について以下に説明する。例えば、全体のネットワークの情報(グラフ)と、各構成部分のネットワークの情報(グラフ)とからなる姿勢遷移計画に使用する情報は、上述の図8に示すように、姿勢遷移機構部42内において構築されている。
【0182】
基本姿勢は、全体の動作と各構成部分の動作との間で状態を移行するために一旦遷移される姿勢であって、基本姿勢としては、例えば、図22Bに示すように、座り姿勢が挙げられる。基本姿勢を座り姿勢とした場合について、遷移動作を滑らかにつなげる手順を説明する。
【0183】
具体的に、図23に示すように、現在の姿勢が全体のグラフの姿勢NDa0として把握され、目標として頭部の動作aを実行させる場合について説明する。
【0184】
全体のグラフ上において、ロボット装置1の全体の姿勢を、現在の姿勢NDa0から基本姿勢NDabに遷移させる有向アークaを選択する。ここで、全体が基本姿勢になる場合には、頭部、足部、及び尻尾部のグラフ上においても基本姿勢の状態(ノード)として把握されることとなる。
【0185】
頭部のグラフでは、基本姿勢NDhbの状態から最適な有向アークaが選択され、目標とする頭部2の動作(自己動作アーク)aまでの経路が決定される。
【0186】
ここで、全体のグラフにおける現在の姿勢NDa0から基本姿勢NDabまでの経路や、頭部のグラフにおける基本姿勢NDhbの状態から目標の動作a2までの経路の探索については、上述したような最短距離探索により行う。
【0187】
このような手順により、全体と各構成部分との間の動作を滑らかにつなげるような遷移経路の選択(姿勢遷移計画)が、全体のグラフと頭部のグラフとにおいてなされる。そして、制御機構部43は、姿勢遷移情報S19を姿勢遷移計画に基づいて制御機構部43に出力する。
【0188】
上述した例は、全体の動作から各構成部の動作を滑らかにつなげる具体例である。次に、各構成部分の動作から全体の動作を滑らかにつなげる具体例について説明する。具体的には、図24に示すように、頭部のグラフにおいて頭部2が姿勢NDh0として把握され、足部のグラフにおいて足部4が姿勢NDf0として把握され、目標として全体の動作aを実行させる場合について説明する。
【0189】
頭部のグラフ上において、頭部2の姿勢を、現在の姿勢NDh0から基本姿勢NDabに遷移させる有向アークaを選択する。また、足部のグラフ上において、足部4の姿勢を、現在の姿勢NDf0から基本姿勢NDfbに、姿勢NDf1を経由して遷移させる有向アークa,aを選択する。なお、尻尾部5についてはもともと基本姿勢にあるものとする。このように各構成部分が基本姿勢になる場合には、全体のグラフ上においても基本姿勢として把握されることになる。
【0190】
そして、全体のグラフ上では、基本姿勢NDhbの状態から最適な有向アークaが選択され、目標とする全体の動作(自己動作アーク)aまでの経路が決定される。
【0191】
例えば、構成部分それぞれにおいての動作については、基本姿勢に遷移するときの他の構成部分の動作と同時に実行することでもよく、制限を付けて各構成部分の動作を実行するようにすることもできる。例えば、あるタイミングにより行うようにすることでもよい。
具体的には、頭部2を使って芸をしている最中に全体1の動作についての指令がなされた場合には、頭部2については芸を実行している最中なので基本姿勢NDhbへの遷移はできないので、先ず、足部4を先に基本姿勢NDfbの状態にしてから、芸を終了した頭部2を基本姿勢NDhbの状態に遷移させるようにするといったようにである。
【0192】
また、全体1の姿勢のバランス等を考慮に入れて、各構成部分を動作させるようにすることもできる。例えば、頭部2と足部4とを同時に移動してしまうと、或いは頭部2を最初に基本姿勢NDhbの状態にしてしまうと、バランスを失って、転倒してしまうような場合、先に足部4を基本姿勢NDfbの状態にしてから、頭部2を基本姿勢NDhbの状態に遷移させるようにする。
【0193】
以上のように一旦基本姿勢に遷移されるような姿勢遷移計画を立てることにより、動作を滑らかにつなげることができる。
【0194】
また、使用しない部位のリソースを開放することで他の目的に使うことができるようになる。例えば、歩いているときに頭部2のリソースを開放することで、頭部2を動くボールにトラッキング(追従)させることができる。
【0195】
なお、基本姿勢は一つにすることに限定されるものではない。例えば、座り姿勢や寝姿勢等の複数の姿勢を基本姿勢として設定することもできる。これにより、最短の動作により、全体の動作から各構成部分の動作への移行、或いは各構成部分の動作から全体の動作への移行を、最短距離(最短時間)として行うことができる。また、このように複数の基本姿勢を設定しておくことは、ロボット装置1の表現の豊富化につながる。
【0196】
また、上述したような姿勢遷移機構部42における姿勢や動作の遷移経路の決定等は、行動決定機構部41からの行動指令情報S16に基づいてなされるものである。そして、行動決定機構部41では、行動決定指示情報S16を、通常、制限なく姿勢遷移機構部42に送ってくる。すなわち、動作が実行されている間にも他の動作に関する指令は発生し、姿勢遷移機構部42にはそのようにして発生した行動指令情報S16が送られてくる。これに対応して、姿勢遷移制御部42から送られてくる行動指令情報S16が蓄積される指令保存部を備えている。この指令保持部では、行動決定機構部41が生成する行動指令情報S16を蓄積して、さらに、いわゆるリスト操作が可能とされている。指令保存部としては例えばバッファが挙げられる。
【0197】
これにより、行動決定機構部41から送られてきた指令が、現時点で実行不可能である場合、例えば芸(所定の動作)をしている最中には、そのような送られてきた指令がバッファに蓄積されることになる。例えば、バッファに、図25Aに示すように、新たに送られてきた指令Dが新たにリストとして加えられる。そして、芸を終了してから、通常は、一番古い命令がバッファから取り出されて経路探索が実行されていく。例えば、図25Aのように指令が蓄積されている場合、一番古い指令Aが先ず実行される。
【0198】
このようにバッファに指令が蓄積されて、古い指令から順次実行されていくが、指令を挿入(インサート)したり、指令を取り消し(キャンセル)したりするリスト操作をすることもできる。
【0199】
指令の挿入では、図25Bに示すように、既に蓄積されている指令群に指令Dを挿入する。これにより、実行待ちにある指令A、B、Cより優先させて指令Dについての経路探索を実行させることができるようになる。
【0200】
また、指令の取消しでは、バッファに蓄積されている指令を取り消す。これにより、何らかの理由により不要となった指令を実行されないようにすることができる。
【0201】
また、バッファは、上述したように、ロボット装置1の全体と各構成部分とに対応して、複数の指令保存領域を有することもできる。この場合、全体、各構成部分毎についての動作の指令が、図26に示すように、蓄積されていく。このように、全体と各構成部分とに対応した指令をそれぞれ保存する領域を備えることにより次のような操作が可能になる。
【0202】
異なる構成部分、例えば頭部と足部との動作を同期して再生させる同期情報を添付しておくこともできる。例えば、図27に示すように、頭部2と足部4との指令保存領域にそれぞれ保存された指令に再生を開始する順番の情報を付し、同期情報として、同じ順番の情報、例えば5番目に再生開始される情報を割り当てるなどする。
【0203】
これにより、仮にその2つ前に実行開始されている3番目の頭部2の動作が、一つ前に実行開始された4番目の足部4の動作より先に終了したような場合でも、頭部2について5番目の指令だけ先に実行開始されないように、同じ5番目の情報のついた足部4の4番目の動作の再生が終了を待ってから、5番目の情報の付いた頭部2と足部4の動作の再生要求を同時に出すことが可能になる。これにより例えば頭部2を横に振る動作の開始と、足部4を左右に傾ける動作の開始を同じタイミングで出すことにより、よりインパクトの大きいロボット装置1の表現が可能になる。
【0204】
また、リスト操作により、実行前や実行中の一連の動作の計画を途中で中止したり、優先度の高い指令を後から早い順番に割り込ませることができるので、柔軟性に富んだシナリオを組み立てることができる。
【0205】
以上のように行動決定機構部41から送られてきた行動指令情報S16に基づいてなされる目標とされる姿勢或いは動作までの最適経路の検索、及び姿勢遷移計画の決定は、例えば、姿勢遷移機構部42が図28に示すような動作経路探索装置60を備えることにより実現される。
【0206】
動作経路探索部60は、指令保持部61、経路探索部62及びグラフ保存部63を備えている。
【0207】
行動決定機構部41から全体或いは各構成部分についての指令がこの動作経路探索部60に与えられるが、例えば、目標の姿勢或いは動作の部位(例えば頭部)、現在の指令と過去に出した一連の指令に対してのリスト操作の命令、或いは指令そのものの特徴の情報等が行動指令情報S16に添付されてくる。以下、添付されくる情報を添付情報という。
【0208】
ここで、現在の指示と過去に出した一連の指示に対してのリスト操作の命令とは、例えば図25Bを用いて説明した新たに発生した指令を未実行の指示郡の一番先頭に挿入するための命令である。また、指令そのものの特徴の情報(以下、指令特徴情報という。)とは、図17において説明した歩行方向のパラメータ、図18において説明した指令のパラメータ、例えば動作が「前に歩く」なら「3歩」といったパラメータ、或いは図19において説明した別の動作を同期させるための情報である。
【0209】
指令保存部61は、上述したように、行動決定機構部41から送られてくる行動指令情報S16を保存するものであって、例えば、バッファである。指令保存部61は、行動指令情報S16に添付情報がある場合には、その添付情報の内容に基づいた処理をする。例えば、添付情報にリスト操作の情報として指令の挿入命令がある場合、その内容に応じて、届いたばかりの行動指令情報S16を、指令保存部61で待ち状態になっている指令列の先頭に挿入する操作も合わせて行う。
【0210】
また、指令保存部61は、添付情報として指令特徴情報がある場合には、それもその指令と一緒に保存する。
【0211】
この指令保存部61は、現在どの指令が実行中でどの指令が何番目の順番待ち状態になっているかを把握している。これを実現するには例えば指令に順番を付けて保存している。
【0212】
また、指令保存部61は、上述したように、例えば全体1、頭部2、足部4、尻尾部5に対応して4つ保存領域を持っている。そして、指令保存部61は、頭部2を動作させる指令が実行中のときは全体を動作させる指令が実行できないとか、頭部2を動作させている指令と、足部4を動作させる指令とを関係なく出すことができるとかの判断をくだすこともできる。すなわち、全体と各構成部分とのリソースが競合するような指令の出力を防止するような処理、いわゆるリソースの競合の解決を行うことができる。
【0213】
また、指令保存部61は、異なる部位間にまたいで指令が出された順番も覚えており、例えば全体1、足部4、頭部2、全体1の順番で指令が送られてきたときは、指令保存部61の全体1についての指令を1番目と4番目とになされた指令として保存し、足部4についての指令を2番目になされた指令として保存し、頭部2についての指令を3番目の指令として保存して、その順番を覚えている。これにより、指令保存部61は、先ず、1番目になされた全体1の指令を経路探索部62に送り、その指令の内容が再生終了次第、2番目になされた足部4の指令と3番目になされた頭部2の指令とを送り、各構成部がその指令の内容を再生終了したら、4番になされた全体1の指令を経路探索部62に送る。
【0214】
経路探索部62は、指令保存部61から送られてきた指令により上述したようないわゆる経路探索を開始する。グラフ保存部63には、指令保存部61で区分されたのと同様の部位毎に対応してグラフが保存されている。すなわち、図22Aに示したような全体1、頭部2、足部4、及び尻尾部5それぞれに対応されるグラフが保存されている。経路探索部62は、このグラフ保存部63に保存されている各グラフに基づいて、指令の内容である目標とされる姿勢或いは動作までの最適経路を、上述したような距離や重み等を指標として探索し、姿勢遷移計画を立てる。
【0215】
そして、経路探索部62は、経路探索により取得した姿勢遷移計画に基づいて、目標の姿勢或いは動作が実行されるまで、制御機構部43に姿勢遷移情報S18を送出していく。
【0216】
以上のように姿勢遷移機構部42は、行動決定機構部41から送られてきた行動指令情報S16に基づいて、指令により目標とされる姿勢或いは動作までの最適経路を検索をして姿勢遷移計画を立て、その姿勢遷移計画に従って、姿勢遷移情報S18を制御機構部43に出力する。
【0217】
(3−5)制御機構部における処理
図3に戻って、制御機構部43は、姿勢遷移情報S18を基にアクチュエータ23を駆動させるための制御信号S5を生成し、これをアクチュエータ23に送出して当該アクチュエータ23を駆動させることにより、ロボット装置1に所望の動作を行わせるようになされている。
【0218】
また、制御機構部43は、目標とされる姿勢或いは動作に到達するまで、姿勢遷移情報S18に基づいてなされた動作の終了通知(再生結果)を経路探索部62に返す。終了通知を受け取った経路探索部62はグラフ保存部63に対して動作の終了を通知する。グラフ保存部63はグラフ上の情報を更新する。すなわち例えば、姿勢遷移情報S18が、足部2を座り姿勢の状態から座り姿勢の状態への遷移動作をさせるものであった場合、終了通知を受けたグラフ保存部63は、寝姿勢の状態に対応された足部2のノードのグラフ位置を、座り姿勢のグラフ位置に移動させる。
【0219】
例えば、目標とされる動作が、座り姿勢において「足をばたばたさせる」(自己動作アーク)というようなものであった場合には、さらに、経路探索部62は、「足をばたばたさせる」を姿勢遷移情報S18として制御機構部43に送り、制御機構部43では姿勢遷移情報S18に基づいて、足部4をばたばたさせるための制御情報を生成し、これをアクチュエータ23に送出して足部4をばたばたさせる動作を実行させる。制御機構部43は、所望の動作を再生したら、その終了通知を再び経路探索部62に送る。経路探索部62は足部4をばたばたさせる動作が終了したことをグラフ保存部63に伝える。しかし、自己動作アークの場合には、グラフ上の情報を更新する必要がないので、現在の足部4の姿勢が座り姿勢まで進んでいるが、足部4をばたばたさせた終了姿勢がその動作開始前の姿勢と同じ足部の座り姿勢なので、グラフ保存部63は足部4の現在の姿勢位置を変更しない。
【0220】
一方、経路探索部62は、目標とされる姿勢或いは動作の再生が終了した旨を指令保存部61に通知する。指令保存部61では、目標とされる姿勢或いは動作が無事完了したので、すなわち、指令の内容が無事遂行されたので、当該指令を消去する。例えば、目標とされる動作として、上述したように足をばたばたさせるを与えていた場合には、足部4の指令保存領域からからその指令を消去する。
【0221】
以上のように、行動決定機構41、動作経路探索部60、及び制御機構部43が情報を授受することによりそれら行動決定機構41、動作経路探索部60、及び制御機構部43の基本的な機能が実現されている。
【0222】
なお、図29には、行動決定機構部41にて生成された指令(行動指令情報S16)に基づいて行う動作経路探索部60の経路探索、及び経路探索結果に基づいて行われる動作の一連の処理手順を示している。
【0223】
先ず、ステップSP1において、行動決定機構部41から動作経路探索部60に指令が与えられ、続くステップSP2において、動作経路探索部60の指令保存部61では、その指令に指令群に加える。
【0224】
例えば、図26に示すように、尻尾部の指令が加えられる。また、指令にリスト操作としてインサートをする命令情報が付加されている場合には、それに応じて指令が指令列内に挿入される。
【0225】
続くステップSP3において、指令保存部61は、開始できる指令があるかどうかを判別する。
【0226】
例えば、指令保存部61が、図26に示すように、全体についての指令を1番目の指令(現在再生中の指令)として、頭部についての蓄積された指令を2番目と3番目の指令として、足部についての指令を4番目の指令として、そして尻尾部5について蓄積された指令を5番面と6番面の指令として、それぞれ把握している場合には、全体についての1番目の指令が実行中である場合には、開始できる指令がないと判別される。
【0227】
開始できる指令がない場合には、ステップSP4に進み、開始できる指令がある場合には、ステップSP5に進む。ステップSP3に進んだ時点で、ロボット装置1の全体が動作をしている最中では、各構成部分についての指令を実行することができないので、ステップSP4に進むことになり、一方、ステップSP3に進んだ時点で、動作が終了している場合には、ステップSP5に進むことになる。
【0228】
ステップSP4では、所定時間の経過を待つ。例えば、0.1秒経過するのを待って、再び、ステップSP3において、開始できる指令があるか否かを判別する。
【0229】
例えば、ステップSP4において0.1秒経過するのを待ったことにより、図26に示す全体について実行中であった指令(1番目の指令)が終了した場合には、ステップSP3において、頭部についての2便目の指令、足部についての4番目になされた指令、そして、尻尾部についての5番目の命令が開始できる指令として同時に把握されるようになる。
【0230】
なお、頭部についての3番目の指令については、頭部についての2番目の指令の実行が終了次第、開始できる指令として把握され、また、尻尾部についての6番目に指令については、頭部についての5番目の指令の実行が終了次第、開始できる指令として把握されるようになる。
【0231】
このように、ステップSP3においてすぐに開始できる指令がない場合に、ステップSP4に進み、所定時間経過するのを待つことにより、全体或いは各構成部分において所定の動作が終了するまで待ち、適切なタイミングにより次の指令を実行することができるようになる。
【0232】
ステップSP5では、経路探索部62が指令保存部61から送られてきた次の指令の内容に基づいて、グラフ保存部63に保存されているその指令に対応するグラフ上の現在の姿勢から目標の姿勢までの動作経路が見つかるか否かを判別する。
【0233】
例えば、頭部2の動作についての指令である場合には、図30に示すように、頭部のグラフ上において、現在の姿勢(状態)から目標とする状態或いは動作まで到達できる経路があるか否かを判別する。経路が見つかる場合とは、指令の目標とされる状態或いは動作までパス(アーク)が存在する場合であり、図30に示すように、現在の姿勢から目標の姿勢に到達できる複数の有向アークa,aが存在する場合であり、経路が見つからない場合とは、指示された状態或いは動作までのパスが存在しない場合である。
【0234】
ここで、現在の姿勢から目標の姿勢までの遷移経路が見つからない場合には、ステップSP6に進み、見つかった場合には、ステップSP7に進む。また、目標の姿勢(或いは動作)までの遷移経路が見つかった場合、その経路(アーク)a(kは、0を含めたnまでの整数である。)を記憶し、これが姿勢遷移計画の情報となる。
【0235】
ステップSP6では、動作経路が見つからなかったとして、指令保存部61がその指令をリストから消去する。このように動作経路が見つからなかった場合に当該指令を消去することにより、後に続く指令が取り出せるようになる。このような指令の消去をした後、再び、ステップSP3において、指令保存部61は、開始できる指令があるか否かを判別する。
【0236】
ステップSP7では、i=0を設定する。その後のステップSP8において、iがn以下か否かについて判別がなされる。ここで、iがnである場合とは、目標とされる姿勢或いは動作が完了したことをいう。すなわち、n番目のアークが、目標とされるノードに直接遷移する有向アークan或いは目標とされた自己動作アークanとなる。なお、i=0である場合には、少なくともこのステップSP8で、iがn以下であると確認されることになる。
【0237】
iがn以下である場合には、ステップSP10に進み、iがnよりも大きい場合には、ステップSP9に進む。
【0238】
ステップSP10では、制御機構部43は、経路探索部62から送られてくる姿勢遷移情報S18に基づいて、アークaの再生を行う。例えば、図30に示すように、現在の姿勢(最初の姿勢)にあった場合には、最初の一つ目の有向アークaの動作をする。
【0239】
ステップSP11では、経路探索部62が動作の終了の通知を受けて、ステップSP12では、グラフ保存部63がグラフ上の姿勢の位置を更新させる。
【0240】
続く、ステップSP13において、次のアークを実行するために、iをi=i+1とし、インクリメントする。続いて、ステップSP8に戻って、再びiがn以下か否かについて判別がなされる。
【0241】
iがnより大きい場合、すなわち、目標とされる姿勢までの動作が実行された場合、或いは目標とされる動作としてのアーク(有向アーク又は自己動作アーク)が実行された場合に実行されるステップSP9において、指令保存部61は、保存されている指令から終了したばかりの指令を消去する。そして、ステップSP3に戻って、指令保存部61は再び、開始できる指令があるかどうかを判別する。
【0242】
なお、目標とされる姿勢或いは動作が、全体と各構成部分にまたいでいるような場合、ステップSP5及びステップSP6では、図23及び図24を用いて説明したように、それぞれに対応されるグラフ上において最適な経路を検索をして、ステップSP7以降の処理においては、それに応じた処理を行う。すなわち、基本姿勢に遷移させて、目標とする姿勢或いは動作までの有向アークの内容を実行する。
【0243】
また、指令は上述のように指令保存部61に蓄積されていき、ロボット装置1の各構成部分は、リソースが競合しないので、そのような指令に基づいて同時進行的な動作が可能となる。このようなことから、上述したような処理手順(フロー)については、各構成部分についてのフローも並存することになり、同時進行的に複数のフローが実行されていくこともある。よって、例えば、全体の指令についてのフローが処理されている場合にあっては各構成部分の指令についてのフローの処理を行わないで、待ち状態になる。
【0244】
(4)動作及び効果
以上の構成において、コントローラ32の感情・本能モデル部40は、供給される入力情報S1〜S3に基づいて、ロボット装置1の感情及び本能の状態を変化させ、この感情及び本能の状態の変化をロボット装置1の行動に反映させることにより、自分の感情や本能の状態に基づいて自律的に行動させる。
【0245】
そして、ノード及びアークを登録したグラフに基づいて多種の姿勢及び動作を遷移させていくことにより、ロボット装置1による多彩な表現が可能になる。
【0246】
すなわち、予め登録したグラフを用いることで、動作の組合せによる表現のパターンが多く持てるようになる。また、現在の姿勢から目標とする姿勢或いは動作までの無理のない滑らかな姿勢の遷移が可能になり、動きの途中でバランスを不用意に崩してしまうこともない。
【0247】
(5)他の実施の形態
なお、上述の実施の形態では、リモートコントローラから赤外線光によって送られてきたユーザの指令を受信するようにした場合について述べたが、本発明はこれに限らず、例えば電波や音波によって送られてきたユーザの指令を受信するようにしてもよい。
【0248】
また、上述の実施の形態では、ユーザからの指令をリモートコントローラ受信部13及びマイク11でなるコマンド受信部30を介して入力するようにした場合について述べたが、本発明はこれに限らず、例えばロボット装置1にコンピュータを接続し、当該接続されたコンピュータを介してユーザの指令を入力するようにしてもよい。
【0249】
また、上述の実施の形態では、図4に示したように、「うれしさ」、「悲しさ」、「怒り」等という情動を示す情動ユニット50A〜50Fと、「運動欲」、「愛情欲」等という欲求を示す欲求ユニット51A〜51Dとを用いて感情及び本能の状態を決定するようにした場合について述べたが、本発明はこれに限らず、例えば情動ユニットに「寂しさ」という情動を示す情動ユニットを追加したり、欲求ユニット51に「睡眠欲」という欲求を示す欲求ユニットを追加してもよく、この他種々の種類や個数の組合せでなる情動ユニットや欲求ユニットを使って感情や本能の状態を決定するようにしてもよい。
【0250】
また、上述の実施の形態では、ロボット装置1が感情モデルと本能モデルとを有している構成について述べたが、本発明はこれに限らず、感情モデルのみ、或いは本能モデルのみ有した構成とすることもでき、さらに、動物の行動を決定付けるような他のモデルを有してもよい。
【0251】
また、上述の実施の形態では、指令信号S1と外部情報信号S2と内部情報信号S3と感情・本能状態情報S10と行動情報S12とに基づいて次の行動を行動決定機構部41によって決定した場合について述べたが、本発明はこれに限らず、指令信号S1と外部情報信号S2と内部情報信号S3と感情・本能状態情報S10と行動情報S12とのうち一部の情報に基づいて次の行動を決定するようにしてもよい。
【0252】
また、上述の実施の形態では、有限オートマトン57と呼ばれるアルゴリズムを用いて次の行動を決定した場合について述べたが、本発明はこれに限らず、ステートの数が有限でないステートマシンと呼ばれるアルゴリズムを用いて行動を決定するようにしてもよく、この場合、入力情報Sl4が供給される毎に新たにステートを生成し、当該生成したステートに応じて行動を決定すればよい。
【0253】
また、上述の実施の形態では、有限オートマトン57と呼ばれるアルゴリズムを用いて次の行動を決定した場合について述べたが、本発明はこれに限らず、現在供給された入力情報S14とそのときのステートとに基づいて複数のステートを遷移先の候補として選定し、当該選定された複数のステートのうち遷移先のステートを乱数によってランダムに決定するような確率有限オートマトンと呼ばれるアルゴリズムを用いて行動を決定するようにしてもよい。
【0254】
また、上述の実施の形態では、行動指令情報S16が直接遷移可能な姿勢を示す場合には、当該行動指令情報S16をそのまま姿勢遷移情報S18として制御機構部43に送出する一方、直接遷移不可能な姿勢を示す場合には、遷移可能な他の姿勢に一旦遷移した後に目的の姿勢まで遷移させるような姿勢遷移情報S18を生成して制御機構部43に送出した場合について述べたが、本発明はこれに限らず、行動指令情報S16が直接遷移可能な姿勢を示す場合にのみ当該行動指令情報S16を受け付けて制御機構部43に送出する一方、直接遷移不可能な姿勢を示す場合には、当該行動指令情報S16を拒否するようにしてもよい。
また、上述の実施の形態では、本発明をロボット装置1に適用した場合について述べたが、本発明はこれに限らず、例えばゲームや展示等のエンタテインメント分野で用いられるロボット装置のように、他の種々のロボット装置に本発明を適用し得る。図31に示すように、コンピュータグラフィックスで動くキャラクター、例えば多関節により構成されるキャラクターを用いたアニメーション等に適用することもできる。
【0255】
また、本発明が適用されるロボット装置1の外観は、図1に示すような構成をとることに限定されず、図32に示すように、より現実の犬に類似の構成とすることも、人間型のヒューマノイドロボットとすることもできる。
【産業上の利用可能性】
【0256】
本発明に係るロボット装置は、供給される入力情報に応じた動作を行うロボット装置であって、動作に起因するモデルを有し、入力情報に基づいてモデルを変化させることにより動作を決定するモデル変化手段を備えることにより、入力情報に基づいてモデルを変化させて動作を決定することで、ロボット装置自身の感情や本能等の状態に基づいて自律的に行動することができる。
【0257】
また、本発明に係る動作制御方法は、供給される入力情報に応じて動作させる動作制御方法であって、入力情報に基づいて動作に起因するモデルを変化させることにより動作を決定することにより、例えばロボット装置を自身の感情や本能等の状態に基づいて自律的に行動させることができる。
【0258】
また、本発明に係るロボット装置は、供給される入力情報に応じた動作を行うロボット装置であって、順次供給される入力情報の履歴に応じた現在の動作及び次に供給される入力情報に基づいて、現在の動作に続く次の動作を決定する動作決定手段を備えることにより、順次供給される入力情報の履歴に応じた現在の動作及び次に供給される入力情報に基づいて現在の動作に続く次の動作を決定することで、ロボット装置自身の感情や本能等の状態に基づいて自律的に行動することができる。
【0259】
また、本発明に係る動作制御方法は、供給される入力情報に応じて動作させる動作制御方法であって、順次供給される入力情報の履歴に応じた現在の動作及び次に供給される入力情報に基づいて、現在の動作に続く次の動作を決定することにより、例えばロボット装置を自身の感情や本能等の状態に基づいて自律的に行動させることができる。
【0260】
また、本発明に係るロボット装置は、姿勢及び動作が登録されているグラフであって、姿勢とこの姿勢を遷移させる動作とを結んで構成されたものを記憶するグラフ記憶手段と、現在の姿勢から目標とされる姿勢又は目標とされる動作までの経路を、行動指令情報に基づいて、グラフ上において探索して、その探索結果に基づいて動作させて、現在の姿勢から目標とされる姿勢又は目標とされる動作に遷移させる制御手段とを備えることにより、制御手段により、現在の姿勢から目標とされる姿勢又は目標とされる動作までの経路を、行動指令情報に基づいてグラフ上において探索して、その探索結果に基づいて動作させて、現在の姿勢から目標とされる姿勢又は目標とされる動作に遷移させることができる。これによりロボット装置は表現の豊富化が可能になる。
【0261】
また、本発明に係る動作制御方法は、現在の姿勢から目標とされる姿勢又は目標とされる動作までの経路を、行動指令情報に基づいて、姿勢及び動作が登録されて構成され、姿勢とこの姿勢を遷移させる動作とを結んで構成されたグラフ上において探索し、探索結果に基づいて動作させて、現在の姿勢から目標とされる姿勢又は目標とされる動作に遷移させることにより、ロボット装置やコンピュータグラフィックスで動くキャラクターの表現の豊富化が可能になる。

【特許請求の範囲】
【請求項1】
供給される入力情報に応じた動作を行うロボット装置であって、
順次供給される入力情報の履歴に応じた現在の動作及び次に供給される上記入力情報に基づいて、上記現在の動作に続く次の動作を決定する動作決定手段を備えた
ロボット装置。
【請求項2】
上記入力情報は、ユーザから与えられるユーザ指令情報、ユーザからの働きかけの情報、周囲の環境の情報、装置内部の状態の情報、現在又は過去の行動の情報、感情及び/又は本能の状態の情報、のうちの全て又は一部を組み合わせてなる
請求項1記載のロボット装置。
【請求項3】
上記動作決定手段は、上記動作の数が有限個でなる有限オートマトンを用いて上記次の動作を決定する
請求項1記載のロボット装置。
【請求項4】
上記動作決定手段は、上記現在の動作及び上記入力情報に基づいて複数の動作を遷移先の候補として選定し、当該選定された複数の動作のうち所望の動作を乱数によってランダムに決定する確率有限オートマトンを用いる
請求項1記載のロボット装置。
【請求項5】
上記動作決定手段は、現在の動作を実行している時間が一定値に達したこと、又は特定の入力情報が入力された、又は当該装置の感情及び本能の状態を決定する複数種類の感情モデル及び複数種類の欲求モデルのうち所望の感情モデル又は欲求モデルのレベルが所定の閾値を超えたことを、上記現在の動作を上記次の動作に遷移させる際の条件とする
請求項1記載のロボット装置。
【請求項6】
上記動作決定手段は、感情及び本能の状態を決定する複数種類の感情モデル及び複数種類の欲求モデルのうち所望の感情モデル又は欲求モデルのレベルが所定の閾値を超えているか否かに基づいて遷移先の動作を決定する
請求項1記載のロボット装置。
【請求項7】
上記動作決定手段は、当該装置の感情及び本能の状態を決定する複数種類の感情モデル及び複数種類の欲求モデルのうち所望の感情モデル又は欲求モデルのレベルに応じて、遷移先の動作で行われる行動を特徴付けるパラメータを変化させる
請求項1記載のロボット装置。
【請求項8】
供給される入力情報に応じて動作させる動作制御方法であって、
順次供給される入力情報の履歴に応じた現在の動作及び次に供給される上記入力情報に基づいて、上記現在の動作に続く次の動作を決定する
動作制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate


【公開番号】特開2010−149276(P2010−149276A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2010−61641(P2010−61641)
【出願日】平成22年3月17日(2010.3.17)
【分割の表示】特願2000−594613(P2000−594613)の分割
【原出願日】平成12年1月20日(2000.1.20)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】