(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照して説明する。なお、図中同一又は相当する部分には同一符号を付す。
【0012】
図1及び
図2に、本発明の実施形態に係るロボット100の外観を示す。ロボット100は、ペット(愛玩動物)を模したペットロボットである。ロボット100は、動物を模した形状を有し、予め規定された動作プログラムに従って自律的に動作する装置である。
【0013】
ロボット100は、自装置の外部に存在する所定の対象からの呼び掛け又は接触等の外部からの刺激に反応して、様々に動作する。これによって、ロボット100は、所定の対象とコミュニケーションをとり、所定の対象と交流することができる。所定の対象とは、ロボット100の外部に存在し、且つ、ロボット100とコミュニケーション及び交流する相手となる対象である。所定の対象として、具体的には、ロボット100の所有者であるユーザ、ユーザの周囲の人間(ユーザの家族又は友人等)、ユーザの周囲の動物(ユーザ等に飼われているペット等)等が挙げられる。所定の対象は、コミュニケーション対象、コミュニケーション相手、交流対象又は交流相手等とも言うことができる。
【0014】
図1及び
図2に示すように、ロボット100は、外観的には小型犬を模した立体的な形状を有する。ロボット100は、例えばプラスチック等の硬質合成樹脂を主たる材料として作製されている。ロボット100は、頭部101と、胴体部102と、耳部103と、目部104と、口部105と、手部107と、足部108と、尻尾部109と、を備える。
【0015】
頭部101、耳部103、手部107、足部108及び尻尾部109は、ロボット100に内蔵された駆動部材によって動かすことができる部位である。頭部101は、首に設けられた首の関節によって、ピッチ、ロール及びヨーの3方向に回転可能に胴体部102に取り付けられている。目部104には、目に関する画像(目玉等)を表示する表示部117が設けられている。口部105には、ロボット100の前方を撮像する撮像部115aが設けられている。
【0016】
図3に、ロボット100のハードウェア構成を示す。
図3に示すように、ロボット100は、CPU(Central Processing Unit)110と、計時部110aと、メモリ111と、バッテリ112と、駆動ドライバ113と、可動部114と、センサ部115と、無線通信部116と、表示部117と、音声出力部118と、画像認識部119と、を備える。
【0017】
CPU110は、例えばマイクロプロセッサ等であって、様々な処理及び演算を実行する中央演算処理部である。CPU110は、命令及びデータを転送するための伝送経路であるシステムバスを介してロボット100の各部と接続され、ロボット100全体を制御する。計時部110aは、RTC(Real Time Clock)を備え、時間を計測する計時手段として機能する。
【0018】
メモリ111は、CPU110のワークメモリとして機能するRAM(Random Access Memory)と、ROM(Read Only Memory)、フラッシュメモリ等の不揮発性メモリと、を備える。メモリ111は、OS(Operating System)、アプリケーションプログラム等を含む、CPU110が各種処理を行うために使用するプログラム及びデータを記憶する。また、メモリ111は、CPU110が各種処理を行うことにより生成又は取得するデータを記憶する。
【0019】
バッテリ112は、電気エネルギーを蓄電し、ロボット100の各部に電力を供給する蓄電池である。バッテリ112は、ロボット100が充電ステーションに帰巣した際に、充電ステーションによって充電される。
【0020】
駆動ドライバ113は、ロボット100の可動部114を駆動させるモータ、アクチュエータ等の駆動部材と、これらの駆動部材を駆動する駆動回路と、を備える。可動部114とは、可動する部位であって、具体的には頭部101、耳部103、手部107、足部108及び尻尾部109である。CPU110は、動作プログラムに基づいて、駆動回路に制御信号を送信する。駆動回路は、CPU110から送信された制御信号に従って、駆動部材に駆動用のパルス信号を供給する。駆動部材は、駆動回路から供給されたパルス信号に従って、可動部114を駆動させる。可動部114は、可動手段として機能する。
【0021】
ロボット100は、駆動ドライバ113が可動部114を駆動させることによって、様々に動作することができる。例えば、ロボット100は、手部107と足部108とを動かすことによって、前方又は後方に移動することができ、自装置の向きを変えることができる。また、ロボット100は、頭部101を動かす、耳部103を動かす又は尻尾部109を振る等によって、犬の動作及び仕草を真似ることができる。
【0022】
センサ部115は、自装置の周囲又は内部の物理量を検知する複数のセンサを備える。
図3に示すように、センサ部115は、周囲を撮像する撮像部115a、音を検知する音センサ115b、自装置への接触を検知する接触センサ115c、及び、周囲の物体までの距離を測定する距離センサ115d、を含む。また、センサ部115は、図示しないが、自装置の動きを検知する加速度センサ、自装置の回転を検知するジャイロセンサ、自装置の方角を検知する地磁気センサ、自装置の周囲の温度を検知する温度センサ、自装置の周囲の気圧を検知する気圧センサ等を含む。
【0023】
撮像部115aは、いわゆるカメラであって、口部105に設置されている。撮像部115aは、被写体から射出された光を集光して被写体の画像を取得する画像取得部と、画像取得部によって取得された画像を処理する画像処理部と、を備えており、ロボット100の前方を撮像する撮像手段として機能する。音センサ115bは、頭部101に設置されており、所定の対象から発せられた音声、周囲の環境音等を検知する。ロボット100は、図示しないが、音センサ115bとして頭部101を囲むように複数のマイクを備えており、四方で発生した音を効率良く検知することができる。その他のセンサは、ロボット100の各所に設置され、ロボット100の周囲又は内部の状態を示す情報を取得する。その他のセンサは、ロボット100の適宜の場所に設置される。センサ部115は、このような複数のセンサによって、ロボット100の周囲又は内部の状態を示す情報を取得し、CPU110に供給する。
【0024】
無線通信部116は、外部の機器と無線で通信するためのインタフェースを備える。無線通信部116は、CPU110の制御の下、例えばWi−Fi(Wireless Fidelity)等の無線LAN(Local Area Network)、又は、Bluetooth(登録商標)等の通信規格に従って、充電ステーションと無線通信する。
【0025】
表示部117は、例えば液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、LED(Light Emitting Diode)等の表示デバイスである。表示部117は、目部104の眼球部分に設置されており、図示しない表示駆動回路による制御のもと、状況に応じて様々な画像を表示する。表示部117は、表示手段として機能する。
【0026】
音声出力部118は、スピーカと音声出力インタフェースとを備え、CPU110によって生成された音声データを音声に変換して外部に出力する。スピーカは、頭部101に設置されている。音声出力部118は、動物の鳴き声及び人間の言葉を含む様々な音声を出力する。例えば、ロボット100は、音センサ115bで所定の対象の音声を収集し、所定の対象の発話内容に対応する音声を音声出力部118から出力する。これにより、所定の対象と簡単な会話をすることができる。音声出力部118は、音声出力手段として機能する。
【0027】
画像認識部119は、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)等の画像処理用のプロセッサと、処理される画像を一時的に保存するバッファメモリと、を備え、撮像部115aによって撮像された画像を認識する。画像認識部119は、周知の画像認識手法を用いて、撮像部115aによって撮像された画像に含まれる人、顔、物体、パターン等を認識する。画像認識部119は、撮像部115aによって撮像された所定の対象の顔を認識する認識手段として機能する。
【0028】
次に、
図4を参照して、ロボット100の機能的な構成について説明する。
図4に示すように、ロボット100は、機能的に、存在検知部120と、行動検知部130と、動作制御部140と、判定部150と、を備える。CPU110は、ROMに記憶されたプログラムをRAMに読み出して、そのプログラムを実行して制御することにより、これら各部として機能する。
【0029】
存在検知部120は、ロボット100の外部に存在する所定の対象の存在を検知する。所定の対象とは、ロボット100の所有者であるユーザ、ユーザの周囲の人間、動物等、ロボット100との交流相手(コミュニケーション相手)となる対象である。
【0030】
存在検知部120は、口部105に設けられた撮像部115aによって周囲を撮像して、周囲の様子を表す画像を取得する。そして、存在検知部120は、撮像部115aによって取得した画像を画像認識部119によって認識し、画像中に人間又は動物が写っているか否かを判定する。このように、存在検知部120は、CPU110が撮像部115a及び画像認識部119と協働することによって実現される。存在検知部120は、存在検知手段として機能する。
【0031】
行動検知部130は、ロボット100に対する所定の対象の行動を検知する。ロボット100に対する所定の対象の行動とは、所定の対象がロボット100と交流(コミュニケーション)をするために働きかける、対話又は接触等の行動を意味する。所定の対象は、ロボット100に対する行動として、例えば、ロボット100に対して呼びかける、ロボット100の表面に接触する、又は、ロボット100に対して身振りを示す。行動検知部130は、このような所定の対象による行動を、センサ部115の各種センサによって検知する。
【0032】
具体的に説明すると、所定の対象から呼びかけられた場合、行動検知部130は、音センサ115bを介して所定の対象から発せられた音声を検知する。また、所定の対象から接触された場合、行動検知部130は、接触センサ115cを介して接触を検知する。或いは、所定の対象から身振りを示された場合、行動検知部130は、撮像部115aを介して身振りを検知する。このように、行動検知部130は、CPU110がセンサ部115の各種センサと協働することによって実現される。行動検知部130は、行動検知手段として機能する。
【0033】
動作制御部140は、動作部170を制御して、動作テーブル190に定められた動作を動作部170に実行させる。動作部170は、可動部114と表示部117と音声出力部118とを含み、可動部114を動かす、表示部117に画像を表示する、又は、音声出力部118から音声を出力することによって、ロボット100に動作させる部位である。動作テーブル190は、動作部170の動作を定めたテーブルであって、予めメモリ111に記憶されている。動作制御部140は、動作テーブル190を参照して、状況に応じて動作部170に様々な動作を実行させる。動作制御部140は、CPU110が、駆動ドライバ113、可動部114、表示部117及び音声出力部118と協働することによって実現される。動作制御部140は、動作制御手段として機能し、動作部170は、動作手段として機能する。
【0034】
動作制御部140は、行動検知部130がロボット100に対する所定の対象の行動を検知した場合、検知された行動に応答するための動作を動作部170に実行させる。この動作は、所定の対象と交流(コミュニケーション)をするための動作であって、交流動作(交流行動)又は応答動作(応答行動)とも呼ぶ。
【0035】
具体的に説明すると、動作制御部140は、行動検知部130が所定の対象からの音声を検知した場合、検知された音声に対応する音声を音声出力部118から出力したり、頭部101を動かして所定の対象の方に向けたり、又は、手部107及び足部108を動かして所定の対象の方に移動したりする。また、行動検知部130が接触を検知した場合、動作制御部140は、尻尾部109を振ったり、又は、表示部117に所定の画像を表示したりする。或いは、行動検知部130が所定の対象の身振りを検知した場合、動作制御部140は、検知された身振りに対応する音声を音声出力部118から出力したり、又は、表示部117に所定の画像を表示したりする。
【0036】
このように、動作制御部140は、行動検知部130が検知した所定の対象の行動に応じて、交流動作として様々に異なる動作をロボット100に実行させる。これにより、所定の対象は、ロボット100とコミュニケーションをとって楽しむことができる。動作テーブル190は、所定の対象の行動と、その行動を行動検知部130が検知した場合にロボット100が実行すべき交流動作と、の対応関係を規定している。動作制御部140は、動作テーブル190を参照して、動作部170に実行させる交流動作を決定する。
【0037】
一方で、動作制御部140は、行動検知部130がロボット100に対する所定の対象の行動を検知していない場合、交流動作とは異なる一人動作をロボット100に実行させる。一人動作とは、所定の対象とは独立してロボット100が一人で実行する動作であって、所定の対象との交流(コミュニケーション)を介さない自発的な動作である。一人動作は、一人行動、一人遊びとも呼ぶ。
【0038】
言い換えると、動作制御部140は、ロボット100が周囲に存在するいずれかの対象と交流する場合には、上述した交流動作をロボット100に実行させ、一方で、ロボット100が周囲に存在するどの対象とも交流していない場合には、ロボット100に一人動作を実行させる。これにより、ペットを模した自然な動作をロボット100に実行させ、ロボット100に対する親しみを向上させることができる。
【0039】
図5及び
図6に、動作テーブル190に定められた一人動作の例を示す。
図5及び
図6に示すように、動作テーブル190は、ロボット100が実行すべき一人動作を条件毎に規定している。
【0040】
図5は、ロボット100の周囲に所定の対象は存在しているが、ロボット100との交流が無い場合の一人動作の例を示している。動作制御部140は、行動検知部130がロボット100に対する所定の対象の行動を最後に検知してから規定時間が経過した場合、
図5に示すいずれかの一人動作をロボット100に実行させる。具体的に説明すると、動作制御部140は、ロボット100の感情を示す情報に応じて異なる一人動作をロボット100に実行させる。ロボット100の感情を示す情報とは、実際の動物を模擬するために設定された、ロボット100が喜怒哀楽等の気分を表現するための情報である。
【0041】
ロボット100の感情を示す情報は、具体的には
図5に示すように、平静さの度合を示す第1の感情値"calm"と、興奮の度合を示す第2の感情値"excite"と、に基づいて、「心細い気分」、「やる気がある気分」、「楽しい気分」及び「落ち着いた気分」の4つの感情を示す。動作制御部140は、所定の対象との交流における所定の対象の行動及びその他の状況によって、第1の感情値と第2の感情値とを変化させ、ロボット100の感情を変化させる。
【0042】
例えば、ロボット100が「心細い気分」の感情を示している場合、動作制御部140は、「何かを探して部屋の隅に移動して見つめる。」等のうちのいずれか1つの一人動作をロボット100に実行させる。ロボット100が「やる気がある気分」の感情を示している場合、動作制御部140は、「外に行きたそうに部屋の端に移動してうろうろする。」等のうちのいずれか1つの一人動作をロボット100に実行させる。ロボット100が「楽しい気分」の感情を示している場合、動作制御部140は、「歌う。」等のうちのいずれか1つの一人動作をロボット100に実行させる。ロボット100が「落ち着いた気分」の感情を示している場合、動作制御部140は、「窓の外をじっと見つめる。」等のうちのいずれか1つの一人動作をロボット100に実行させる。各感情において実行可能な複数の一人動作のうちのどの一人動作を実行するかは、ランダムに決定される。
【0043】
図6は、ロボット100の周囲の環境又は時間に起因する一人動作の例を示している。動作制御部140は、行動検知部130がロボット100に対する所定の対象の行動を検知していない場合であって、且つ、ロボット100の周囲の環境と時間とのうちの少なくとも一方が特定の条件を満たした場合、
図6に示すいずれかの一人動作をロボット100に実行させる。
【0044】
ロボット100の周囲の環境とは、例えば音量、温度、気圧、明るさ、障害物等、ロボット100と交流可能な所定の対象以外の外部の情報である。このような環境は、音センサ115b、接触センサ115c、距離センサ115d、温度センサ、気圧センサ等によって検知される。時間は、現在の時刻、日付又は季節等の情報であって、計時部110aによって計測される。特定の条件とは、環境又は時間に関する条件である。特定の条件として、
図6に示すように、「音楽が聞こえた。」、「人同士の会話が聞こえた。」等の環境に関する条件と、「寝る時間になった。」、「正月又は誕生日の朝になった。」等の時間に関する条件と、がある。
【0045】
動作制御部140は、ロボット100の周囲の環境と時間とのうちの少なくとも一方が特定の条件を満たした場合、満たされた条件に対応する一人動作をロボット100に実行させる。例えば、「音楽が聞こえた。」との条件が満たされた場合、動作制御部140は、「表情を変えて周囲をうろうろする。」との一人動作をロボット100に実行させる。「人を認識していないのに撫でられた。」との条件が満たされた場合、動作制御部140は、「驚いて周囲を見渡す。」との一人動作をロボット100に実行させる。このように、動作制御部140は、環境、時間等の外部の刺激に反応して、動作部170における可動部114と表示部117と音声出力部118との少なくともいずれかを動作させることで、刺激に対応する一人動作をロボット100に実行させる。
【0046】
図4に示したロボット100の機能的な構成の説明に戻る。判定部150は、ロボット100が一人動作を実行している時に、所定の対象の視線がロボット100の方を向いているか否かを判定する。判定部150は、所定の対象の視線がロボット100の方を向いているか否かを判定するために、(1)顔の検出、(2)顔の向きの検出、及び、(3)視線の検出の3つの処理を実行する。
【0047】
第1に、判定部150は、撮像部115aによる撮像画像から顔を検出する。
図7(a)〜(c)に、所定の対象であるユーザ210が撮像された撮像画像200の例を示す。
図7(a)は、ユーザ210を正面から撮像した撮像画像200を示しており、
図7(b),(c)は、ユーザ210を斜めから撮像した撮像画像200を示している。判定部150は、例えば
図7(a)〜(c)に示す撮像画像200から、画像認識部119により周知の顔認識の手法を用いて、ユーザ210の顔に相当する顔領域220を検出する。
【0048】
具体的に説明すると、判定部150は、撮像画像200に含まれる各画素のうちから肌色の画素を特定して、特定した肌色の画素の領域を顔領域220として検出する。或いは、判定部150は、撮像画像200から目、鼻、口等といった顔の部位を特徴点として抽出し、抽出した部位の位置を基準として顔領域220を検出しても良い。このようにして、判定部150は、撮像画像200からユーザ210の顔を検出する。
【0049】
第2に、判定部150は、周知の手法を用いて、撮像画像200から検出した顔の向きを検出する。具体的に説明すると、判定部150は、検出した顔領域220における目、鼻、口等の部位の位置関係に基づいて、ピッチ、ロール及びヨーの3方向における顔の向きを検出する。
【0050】
例えば、
図7(a)に示す撮像画像200では、ユーザ210の顔は、正面、すなわちロボット100の方を向いている。この場合、判定部150は、ピッチ、ロール及びヨーのそれぞれの方向における顔の向きを、0度と検出する。これに対して、
図7(b),(c)に示す撮像画像200では、ユーザ210の顔は、ピッチ及びロールの方向には傾いていないが、ヨーの方向に傾いている。この場合、判定部150は、ヨーの方向における顔の向きを、例えば−15度と検出する。このようにして、判定部150は、撮像画像200におけるユーザ210の顔の向きを検出する。
【0051】
第3に、判定部150は、周知の手法を用いて、撮像画像200に撮像されたユーザ210の視線を検出する。具体的に説明すると、判定部150は、顔領域220に含まれる目を特定し、特定した目の内部における虹彩(瞳)の位置を検出する。そして、判定部150は、目の内部における虹彩の位置によって、ユーザ210の視線、すなわちユーザ210が見ている方向を検出する。
【0052】
以上のような(1)顔の検出、(2)顔の向きの検出、及び、(3)視線の検出の3つの処理に基づいて、判定部150は、所定の対象の視線がロボット100の方を向いているか否かを判定する。例えば、判定部150は、検出された顔が撮像画像200の中央に位置しており、且つ、顔及び視線が正面を向いている場合、所定の対象の視線がロボット100の方を向いていると判定する。また、判定部150は、検出された顔が撮像画像200の中央以外に位置しているが、顔又は視線が撮像部115aの方に向いている場合にも、所定の対象の視線がロボット100の方を向いていると判定する。このように、判定部150は、撮像部115aによって所定の対象が撮像された画像に基づいて、所定の対象の視線がロボット100の方を向いているか否かを判定する。
【0053】
判定部150は、ロボット100が一人動作を実行している時に、所定の対象の視線がロボット100の方を向いていると判定した場合、計時部110aによる計時を開始する。そして、判定部150は、所定の対象の視線が、所定時間以上に亘ってロボット100の方を向いているか否かを判定する。所定時間は、例えば1秒から数秒程度の長さの時間であって、予め設定されてメモリ111に記憶されている。判定部150は、CPU110が撮像部115a、画像認識部119及び計時部110aと協働することによって実現される。判定部150は、判定手段として機能する。
【0054】
これに対して、判定部150は、ロボット100が一人動作を実行していない時には、所定の対象の視線がロボット100の方を向いているか否かを判定しない。言い換えると、ロボット100が所定の対象との交流動作を実行している場合には、その交流動作を実行することを優先するため、判定部150は、所定の対象の視線を判定する処理を実行しない。
【0055】
動作制御部140は、判定部150による判定結果に基づいて、動作部170を制御する。具体的に説明すると、動作制御部140は、判定部150によって所定の対象の視線が所定時間以上に亘ってロボット100の方を向いていると判定された場合、視線に対する応答としての第1の動作を動作部170に実行させる。
【0056】
第1の動作とは、所定の対象からロボット100に向けられた視線に応答するための動作であって、動作テーブル190の一部として予め規定されている。第1の動作は、具体的には、(1)可動部114を動かすこと、(2)表示部117に表示される画像を変更すること、又は、(3)音声出力部118に音声を出力させることである。動作制御部140は、判定部150によって所定の対象の視線が所定時間以上に亘ってロボット100の方を向いていると判定された場合、動作テーブル190を参照して、これらのうちの少なくとも1つの動作を第1の動作として動作部170に実行させる。
【0057】
(1)第1に、動作制御部140は、可動部114を動かすことによって、動作部170に第1の動作を実行させる。具体的に説明すると、動作制御部140は、駆動ドライバ113によって首の関節を駆動させて頭部101を動かす。動作制御部140は、第1の動作として、例えば
図8(a)に示すように頭部101をロール方向に回転させて傾かせる、又は、
図8(b)に示すように頭部101をピッチ方向に回転させて頷かせる。或いは、動作制御部140は、頭部101を所定の対象の方に向けるように動かしても良い。また、動作制御部140は、第1の動作として、
図8(c)に示すように所定の対象に向けて尻尾部109を振っても良い。
【0058】
(2)第2に、動作制御部140は、表示部117に表示される画像を変更することによって、動作部170に第1の動作を実行させる。具体的に説明すると、動作制御部140は、表示部117に表示される虹彩(瞳)の画像を、例えば
図9(a)に示すように瞳を大きくする、
図9(b)に示すように両目を閉じる画像に変更する、又は、
図9(c)に示すように瞳の位置を移動させる。或いは、動作制御部140は、目に涙を溜める、片目を閉じる(ウインク)、所定の対象の方に自装置の視線を向ける(アイコンタクト)、又は、両目を閉じた後で再び開く(瞬き)ように、表示部117に画像を表示しても良い。
【0059】
(3)第3に、動作制御部140は、音声出力部118から音声を出力することによって、動作部170に第1の動作を実行させる。具体的に説明すると、動作制御部140は、所定の対象の視線に対する応答として、音声出力部118に、「えっ」、「こっち見た!」等の音声を所定の対象に向けて出力させる。出力される音声は、予め用意された複数の候補のうちから所定の規則に従って選択される。
【0060】
動作制御部140は、所定の対象の視線が所定時間以上に亘ってロボット100の方を向いている場合、このような第1の動作のうちの少なくとも1つを動作部170に実行させる。具体的に説明すると、動作制御部140は、画像認識部119によって所定の対象の顔を認識し、第1の動作として、画像認識部119による認識結果に応じて異なる動作を動作部170に実行させる。言い換えると、動作制御部140は、画像認識部119によって認識された顔から所定の対象の年齢、性別、表情等を判別し、判別結果に応じて、(1)可動部114を動かすか、(2)表示部117に表示される画像を変更するか、(3)音声出力部118に音声を出力させるか、又はこれらを組み合わせるかを決定する。このように相手によって異なる応答を示すことで、ロボット100の親しみやすさを向上させることができる。
【0061】
一方で、動作制御部140は、所定の対象の視線がロボット100の方を向いてから所定時間が経過するまでは、動作部170に一人動作を実行させる。言い換えると、動作制御部140は、判定部150によって所定の対象の視線がロボット100の方を向いていると判定されても、所
定時間が経過するまでは、実行中の一人動作を動作部170に引き続き実行させて、その視線に対して応答する動作を実行しない。これにより、動作制御部140は、所定の対象の視線がロボット100の方を向いてから所定時間が経過するまでは、所定の対象に気付いていない振りをロボット100にさせる。
【0062】
動作制御部140は、判定部150によって所定の対象の視線がロボット100の方を向いていないと判定された場合、第1の動作とは異なる第2の動作を動作部170に実行させる。第2の動作は、所定の対象に視線をロボット100の方に向けることを促す動作であって、動作テーブル190の一部として予め規定されている。例えば、動作制御部140は、所定の対象の注意を引くように頭部101を回転させる。或いは、動作制御部140は、足部108を駆動させて、ロボット100を、所定の対象の方に向けて、又は所定の対象の視線の先に移動させる。
【0063】
このような第2の動作の結果として、所定の対象がロボット100に対して視線を向けた場合、動作制御部140は、上述した第1の動作を動作部170に開始させる。また、所定の対象がロボット100に対して対話、接触等の行動を起こした場合には、動作制御部140は、所定の対象との交流動作を動作部170に開始させる。このように、動作制御部140は、ロボット100が一人動作を実行している時であって、所定の対象がロボット100の方を見ていない場合に、所定の対象の気を引く動作を実行する。これにより、ロボット100の親しみやすさを向上させることができる。
【0064】
以上のように構成されるロボット100において実行される処理の流れについて、
図10及び
図11に示すフローチャートを参照して、説明する。
【0065】
まず、
図10を参照して、ロボット100によって実行されるロボット制御処理について説明する。
図10に示すロボット制御処理は、ロボット100の電源が投入され、且つ、バッテリ112が充電されることによって、ロボット100が正常に動作可能な状態になると、開始する。
【0066】
ロボット制御処理を開始すると、CPU110は、所定の対象を検知したか否かを判定する(ステップS1)。具体的に説明すると、CPU110は、撮像部115aによってロボット100の周囲を撮像する。そして、CPU110は、撮像によって得られた画像を解析して、ロボット100の周囲に、人間又は動物等のロボット100との交流(コミュニケーション)相手となる対象が存在しているか否かを判定する。ステップS1において、CPU110は、存在検知部120として機能する。
【0067】
判定の結果、交流相手となる所定の対象を検知しなかった場合(ステップS1;NO)、CPU110は、ステップS1に留まり、所定の対象を検知するまで待機する。
【0068】
一方、交流相手となる所定の対象を検知した場合(ステップS1;YES)、CPU110は、所定の対象と交流するか否かを判定する(ステップS2)。具体的に説明すると、CPU110は、所定の対象からの呼びかけ、接触又は身振り等のロボット100に対する行動を、音センサ115b、接触センサ115c、撮像部115a等を介して検知したかを判定する。そして、CPU110は、ロボット100に対する所定の対象の行動を検知した場合に、この所定の対象と交流すると判定する。ステップS2において、CPU110は、行動検知部130として機能する。
【0069】
所定の対象と交流する場合(ステップS2;YES)、CPU110は、ロボット100に交流動作を実行させる(ステップS3)。交流動作とは、所定の対象と交流するための動作であって、ステップS2において検知された所定の対象の行動に応答するための動作である。具体的に説明すると、CPU110は、動作部170における可動部114、表示部117又は音声出力部118を制御して、検知された行動に対応する動作を動作部170に実行させる。これにより、ロボット100は、所定の対象と交流(コミュニケーション)をする。ステップS3において、CPU110は、動作制御部140として機能する。
【0070】
これに対して、所定の対象と交流しない場合(ステップS2;NO)、CPU110は、ステップS3の処理をスキップする。
【0071】
このように、所定の対象と交流した後、又はステップS3をスキップした後、CPU110は、一人動作の条件が成立したか否かを判定する(ステップS4)。一人動作の条件とは、ロボット100が一人動作を実行するための条件である。一人動作の条件は、具体的には、ステップS2においてロボット100に対する所定の対象の行動を最後に検知してから規定時間が経過した場合、又は、ロボット100の周囲の環境と時間とのうちの少なくとも一方が
図6に示した特定の条件を満たした場合である。CPU110は、センサ部115による周囲の環境の検知及び計時部110aによる計時によって、一人動作の条件が成立したか否かを判定する。CPU110は、ロボット100が一人動作をしているか否かを判断する判断手段としても機能する。
【0072】
一人動作の条件が成立していない場合(ステップS4;NO)、CPU110は、ステップS1の処理に戻り、再度、所定の対象を検知したか否かを判定する。所定の対象を検知し、且つ、所定の対象と交流する条件が成立している間は、CPU110は、ステップS1からステップS4の処理を繰り返し、所定の対象との交流を継続する。
【0073】
これに対して、一人動作の条件が成立した場合(ステップS4;YES)、CPU110は、ロボット100に一人動作を実行させる(ステップS5)。具体的に説明すると、CPU110は、動作部170における可動部114、表示部117又は音声出力部118を制御して、成立した条件に対応する一人動作を動作部170に実行させる。
【0074】
例えば、所定の対象の行動を最後に検知してから規定時間が経過した場合、CPU110は、その際のロボット100の感情を示す情報に応じて、
図5に示した一人動作のうちのいずれかを動作部170に実行させる。これに対して、ロボット100の周囲の環境と時間とのうちの少なくとも一方が特定の条件を満たした場合、CPU110は、
図6に示した一人動作のうちのいずれかを動作部170に実行させる。ステップS5において、CPU110は、動作制御部140として機能する。
【0075】
ロボット100に一人動作を実行させている間、CPU110は、視線判定処理を実行する(ステップS6)。ステップS6における視線判定処理の詳細については、
図11に示すフローチャートを参照して説明する。
【0076】
図11に示す視線判定処理が開始すると、CPU110は、撮像部115aによる撮像画像から顔を検出する(ステップS61)。具体的に説明すると、CPU110は、周知の顔認識の手法を用いて、例えば
図7(a)〜(c)に示した撮像画像200から、所定の対象の顔に相当する顔領域220を検出する。
【0077】
撮影画像から顔を検出すると、CPU110は、顔の向きを検出する(ステップS62)。具体的に説明すると、CPU110は、検出した顔領域220における目、鼻、口等の部位の位置関係に基づいて、ピッチ、ロール及びヨーの3方向における顔の向きを検出する。
【0078】
顔の向きを検出すると、CPU110は、視線を検出する(ステップS63)。具体的に説明すると、CPU110は、顔領域220に含まれる目を特定し、特定した目の内部における虹彩の位置に基づいて、所定の対象が見ている方向を検出する。
【0079】
視線を検出すると、CPU110は、所定の対象の視線がロボット100の方を向いているか否かを判定する(ステップS64)。具体的に説明すると、CPU110は、検出された顔が撮像画像200の中央に位置しており、且つ、顔及び視線が正面を向いている場合、所定の対象の視線がロボット100の方を向いていると判定する。また、CPU110は、検出された顔が撮像画像200の中央以外に位置しているが、顔又は視線が撮像部115aの方に向いている場合にも、所定の対象の視線がロボット100の方を向いていると判定する。
【0080】
判定の結果、所定の対象の視線がロボット100の方を向いていると判定した場合(ステップS64;YES)、CPU110は、計時部110aによる計時を開始して、所定の対象の視線がロボット100の方を向いてから所定時間が経過したか否かを判定する(ステップS65)。
【0081】
所定時間が経過していない場合(ステップS65;NO)、CPU110は、動作部170に一人動作を継続させる(ステップS66)。その後、CPU110は、ステップS64に戻り、所定の対象の視線がロボット100の方を向いているか否かを再び判定する。言い換えると、CPU110は、所定の対象の視線がロボット100の方を向いていると判定しても、所
定時間が経過するまでは、実行中の一人動作をロボット100に引き続き実行させて、視線に気付いていない振りをさせる。そして、CPU110は、所定の対象の視線がロボット100の方を向いている状態が、所
定時間に亘って継続しているか否かを判定する。
【0082】
所定時間に亘って所定の対象の視線がロボット100の方を向いていると判定すると(ステップS65;YES)、CPU110は、視線に対する応答としての第1の動作を動作部170に実行させる(ステップS67)。具体的に説明すると、CPU110は、画像認識部119によって所定の対象の顔を認識する。そして、CPU110は、顔認識の結果に応じて、(1)可動部114を動かすことと、(2)表示部117に表示される画像を変更することと、(3)音声出力部118に音声を出力させることと、のうちから動作を動作部170に実行させる。
【0083】
これに対して、ステップS64において、所定の対象の視線がロボット100の方を向いていないと判定した場合(ステップS64;NO)、CPU110は、第2の動作を動作部170に実行させる(ステップS68)。具体的に説明すると、CPU110は、頭部101を回転させる又は自装置を移動させることによって、所定の対象に視線をロボット100の方に向けることを促す。
【0084】
以上によって、
図11に示した視線判定処理を終了する。なお、
図11に示した視線判定処理において、CPU110は、ステップS61からステップS65
まででは判定部150として機能し、ステップS66からステップS68
まででは動作制御部140として機能する。
【0085】
図10に戻って、視線判定処理を実行すると、CPU110は、ステップS1の処理に戻り、所定の対象を検知したか否かを再度判定する。判定の結果、所定の対象を検知した場合、CPU110は、ステップS2以降の処理を実行する。このように、CPU110は、所定の対象を検知している間、所定の対象との交流動作又は一人動作を実行する処理を繰り返す。その際、CPU110は、一人動作を実行する時には視線判定処理を実行する。
【0086】
以上説明したように、本実施形態に係るロボット100は、一人動作を実行している時に、所定の対象の視線が自装置の方を向いているか否かを判定し、判定結果に基づいて動作部170を制御する。このように、視線に応答して動作することによって、親しみやすさを向上させることができる。
【0087】
特に、本実施形態に係るロボット100は、所定の対象の視線が自装置の方を向いている場合であっても、所定時間が経過するまでは動作部170に一人動作を継続させ、所定時間に亘って視線が向けられると、視線に対する応答としての第1の動作を動作部170に実行させる。このように、ロボット100は、視線が向けられても暫くは気付かない振りをするため、本物の動物らしく振る舞うことができ、親しみやすさをより向上させることができる。
【0088】
(変形例)
以上に本発明の実施形態について説明したが、上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、本発明の実施形態は種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【0089】
例えば、上記実施形態では、ロボット100は、小型犬を模したペットロボットであった。しかしながら、本発明に係るロボット100は、小型犬を模した形状に限らず、どのような形状を有していても良い。例えば、本発明に係るロボット100は、大型犬を模したロボットであっても良いし、猫、鼠又は兎等を含む他の種類の動物を模したロボットであっても良いし、人間を模したロボットであっても良い。
【0090】
上記実施形態では、表示部117は目部104に設けられており、撮像部115aは口部105に設けられていた。しかしながら、本発明において、表示部117は目部104以外の場所に設けられていても良いし、撮像部115aは口部105以外の場所に設けられていても良い(例えば鼻部等)。表示部117が目部104に設けられていない場合には、動作制御部140は、眼球部分を機械的に動かすことによって、ロボット100の視線の方向を制御する。
【0091】
上記実施形態では、動作制御部140は、所定の対象の視線が所定時間以上に亘ってロボット100の方を向いている場合、第1の動作として、画像認識部119による認識結果に応じて異なる動作を動作部170に実行させた。しかしながら、本発明において、動作制御部140は、第1の動作として、距離センサ115dによって測定された所定の対象との距離に応じて異なる動作を動作部170に実行させても良い。例えば、動作制御部140は、距離センサ115dによって測定された所定の対象との距離が閾値よりも近い場合に、第1の動作として、表示部117に表示される画像を変更しても良い。その場合、動作制御部140は、距離が近いことによる圧迫感を与えないように、表示部117に表示される画像を調整して、自装置の視線を所定の対象の視線の方向から逸らしても良い。
【0092】
或いは、動作制御部140は、所定の対象の視線が所定時間以上に亘ってロボット100の方を向いている場合、第1の動作として、ロボット100の視線が所定の対象の方を向いているか否かに応じて異なる動作を動作部170に実行させても良い。例えば、動作制御部140は、ロボット100の視線が所定の対象の方を向いている場合には、
図8(a)〜(c)及び
図9(a)〜(c)に示したように可動部114、表示部117又は音声出力部118を制御し、ロボット100の視線が所定の対象の方を向いていない場合には、ロボット100の視線が所定の対象の方を向くように、頭部101の動き又は目部104の表示を制御しても良い。また、動作制御部140は、第1の動作として、実行中の一人動作に応じて異なる動作を動作部170に実行させても良い。
【0093】
上記実施形態では、ロボット100において、CPU110がROMに記憶されたプログラムを実行することによって、存在検知手段、行動検知手段、動作制御手段及び判定手段のそれぞれとして機能した。しかしながら、本発明において、ロボット100は、CPUの代わりに、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又は、各種制御回路等の専用のハードウェアを備え、専用のハードウェアが、存在検知手段、行動検知手段、動作制御手段及び判定手段のそれぞれとして機能しても良い。この場合、各部の機能それぞれを個別のハードウェアで実現しても良いし、各部の機能をまとめて単一のハードウェアで実現しても良い。また、各部の機能のうち、一部を専用のハードウェアによって実現し、他の一部をソフトウェア又はファームウェアによって実現しても良い。
【0094】
なお、本発明に係る機能を実現するための構成を予め備えたロボットとして提供できることはもとより、プログラムの適用により、既存の情報処理装置等を、本発明に係るロボットとして機能させることもできる。すなわち、上記実施形態で例示したロボット100による各機能構成を実現させるためのプログラムを、既存の情報処理装置等を制御するCPU等が実行できるように適用することで、本発明に係るロボットとして機能させることができる。
【0095】
また、このようなプログラムの適用方法は任意である。プログラムを、例えば、フレキシブルディスク、CD(Compact Disc)−ROM、DVD(Digital Versatile Disc)−ROM、メモリカード等のコンピュータ読み取り可能な記憶媒体に格納して適用できる。さらに、プログラムを搬送波に重畳し、インターネット等の通信媒体を介して適用することもできる。例えば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)にプログラムを掲示して配信してもよい。そして、このプログラムを起動し、OS(Operating System)の制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。
【0096】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲とが含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0097】
(付記1)
自装置を動作させる動作手段と、
所定の対象の視線が前記自装置の方を向いているか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて、前記動作手段を制御する動作制御手段と、
を備える、
ことを特徴とするロボット。
【0098】
(付記2)
前記所定の対象とは独立して前記自装置が単独で実行する動作であって、前記所定の対象との交流を介さない自発的な一人動作をしているか否かを判断する判断手段を更に備え、
前記判定手段は、前記判断手段によって前記一人動作をしていると判断された場合に、前記所定の対象の前記視線が前記自装置の方を向いているか否かを判定する、
ことを特徴とする付記1に記載のロボット。
【0099】
(付記3)
前記所定の対象を撮像する撮像手段、を更に備え、
前記判定手段は、前記撮像手段によって前記所定の対象が撮像された画像に基づいて、前記視線が前記自装置の方を向いているか否かを判定する、
ことを特徴とする付記2に記載のロボット。
【0100】
(付記4)
前記判断手段によって前記一人動作をしていないと判断された場合に、前記判定手段は、前記視線が前記自装置の方を向いているか否かを判定しない、
ことを特徴とする付記2又は3に記載のロボット。
【0101】
(付記5)
前記動作制御手段は、前記判定手段によって前記視線が前記自装置の方を向いていると判定された場合、前記視線に対する応答としての第1の動作を前記動作手段に実行させる、
ことを特徴とする付記2乃至4のいずれか1つに記載のロボット。
【0102】
(付記6)
前記判断手段によって前記一人動作をしていると判断された場合に、前記判定手段は、前記視線が前記自装置の方を所定時間以上に亘って向いているか否かを判定し、
前記動作制御手段は、前記判定手段によって前記視線が前記自装置の方を前記所定時間以上に亘って向いていると判定された場合、前記第1の動作を前記動作手段に実行させる、
ことを特徴とする付記5に記載のロボット。
【0103】
(付記7)
前記動作制御手段は、前記視線が前記自装置の方を向いてから前記所定時間が経過するまでは、前記動作手段に前記一人動作を実行させる、
ことを特徴とする付記6に記載のロボット。
【0104】
(付記8)
前記動作手段は、可動する可動手段を含み、
前記動作制御手段は、前記可動手段を動かすことによって、前記動作手段に前記第1の動作を実行させる、
ことを特徴とする付記5乃至7のいずれか1つに記載のロボット。
【0105】
(付記9)
前記可動手段は、前記ロボットの頭部又は尻尾部であり、
前記動作制御手段は、前記頭部を動かす又は前記尻尾部を振ることによって、前記動作手段に前記第1の動作を実行させる、
ことを特徴とする付記8に記載のロボット。
【0106】
(付記10)
前記動作手段は、画像を表示する表示手段を含み、
前記動作制御手段は、前記表示手段に表示される前記画像を変更することによって、前記動作手段に前記第1の動作を実行させる、
ことを特徴とする付記5乃至9のいずれか1つに記載のロボット。
【0107】
(付記11)
前記動作手段は、音声を出力する音声出力手段を含み、
前記動作制御手段は、前記音声出力手段から前記音声を出力することによって、前記動作手段に前記第1の動作を実行させる、
ことを特徴とする付記5乃至10のいずれか1つに記載のロボット。
【0108】
(付記12)
前記所定の対象の顔を認識する認識手段、を更に備え、
前記動作制御手段は、前記第1の動作として、前記認識手段による認識結果に応じて異なる動作を前記動作手段に実行させる、
ことを特徴とする付記5乃至11のいずれか1つに記載のロボット。
【0109】
(付記13)
前記動作制御手段は、前記判定手段によって前記視線が前記自装置の方を向いていないと判定された場合、前記第1の動作とは異なる第2の動作を前記動作手段に実行させる、
ことを特徴とする付記5乃至12のいずれか1つに記載のロボット。
【0110】
(付記14)
前記所定の対象の、前記自装置に対する行動を検知する行動検知手段、を更に備え、
前記動作手段は、前記行動検知手段が前記行動を検知した場合、前記行動に応答するための交流動作を実行し、前記行動検知手段が前記行動を検知していない場合、前記一人動作を実行する、
ことを特徴とする付記2乃至13のいずれか1つに記載のロボット。
【0111】
(付記15)
前記所定の対象は、人間又は動物である、
ことを特徴とする付記1乃至14のいずれか1つに記載のロボット。
【0112】
(付記16)
ロボットを動作させ、
所定の対象の視線が前記ロボットの方を向いているか否かを判定し、
判定された判定結果に基づいて、前記ロボットの動作を制御する、
ことを含む、
ことを特徴とするロボットの制御方法。
【0113】
(付記17)
前記所定の対象とは独立して前記ロボットが単独で実行する前記動作であって、前記所定の対象との交流を介さない自発的な一人動作をしているか否かを判断し、
前記一人動作をしていると判断された場合に、前記所定の対象の前記視線が前記ロボットの方を向いているか否かを判定する、
ことを特徴とする付記16に記載のロボットの制御方法。
【0114】
(付記18)
ロボットのコンピュータを、
前記ロボットを動作させる動作手段、
所定の対象の視線が前記ロボットの方を向いているか否かを判定する判定手段、
前記判定手段による判定結果に基づいて、前記動作手段を制御する動作制御手段、
として機能させる、
ことを特徴とするプログラム。
【0115】
(付記19)
前記ロボットの前記コンピュータを、
前記所定の対象とは独立して前記ロボットが単独で実行する動作であって、前記所定の対象との交流を介さない自発的な一人動作をしているか否かを判断する判断手段、
として更に機能させ、
前記判定手段は、前記判断手段によって前記一人動作をしていると判断された場合に、前記所定の対象の前記視線が前記ロボットの方を向いているか否かを判定する、
ことを特徴とする付記18に記載のプログラム。