ロボット、ロボットの制御方法及び制御プログラム
【課題】ロボットに注意や興味を引き付けるための「呼びかけ」や「しぐさ」等により人間が感じる強制感を抑制すること。
【解決手段】ロボットは、胴体部と、視覚センサが搭載される頭部と、を有するロボット本体と、前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知する第1の検知部と、前記胴体部に第1の動作を実行させる第1の動作モジュールと、前記胴体部に前記第1の動作を実行させているときに、前記第1の検知部が前記人物を検知した場合、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させる第2の動作モジュールと、を備える。
【解決手段】ロボットは、胴体部と、視覚センサが搭載される頭部と、を有するロボット本体と、前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知する第1の検知部と、前記胴体部に第1の動作を実行させる第1の動作モジュールと、前記胴体部に前記第1の動作を実行させているときに、前記第1の検知部が前記人物を検知した場合、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させる第2の動作モジュールと、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、人間にサービスを提供するロボット、ロボットの制御方法及び制御プログラムに関する。
【背景技術】
【0002】
例えば、生物的態様のロボットと人間との間で親和的関係を構築するために、ロボットに、ロボットの本能や内部状態から発生する生物感を想起させる自発的な振る舞いや、人間もしくは物体を追従する視線追従を実行させることで、ロボットを擬人化する試みがなされている。
【0003】
ロボットと人間との親和性を活用したサービスでは、人間の注意や興味をロボットに引き付けることが重要となる。このため、ロボットに、自身の存在に気付かせるための「呼びかけ」や「しぐさ」を実行させる技術が開発されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−18529
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、人間の注意や興味を引き付けるための「呼びかけ」や「しぐさ」は、人間に強制感を与え、時として人間に迷惑・邪魔といった心理を与えることがある。
【0006】
開示の技術は、注意や興味を引き付けるための「呼びかけ」や「しぐさ」等により人間が感じる強制感を抑制するロボット装置、ロボットの制御方法及び制御プログラムを提供する。
【課題を解決するための手段】
【0007】
開示の技術の一観点によれば、胴体部と、視覚センサが搭載される頭部と、を有するロボット本体と、前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知する第1の検知部と、前記胴体部に第1の動作を実行させる第1の動作モジュールと、前記胴体部に前記第1の動作を実行させているときに、前記第1の検知部が前記人物を検知した場合、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させる第2の動作モジュールと、を備えるロボットが提供される。
【発明の効果】
【0008】
開示の技術によれば、ロボットに注意や興味を引き付けるための「呼びかけ」や「しぐさ」により人間が感じる強制感を抑制することができる。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態にかかるロボットの概略図である。
【図2】第1の実施形態にかかるロボットのハードウェアの構成図である。
【図3】第1の実施形態にかかるコントローラの機能ブロック図である。
【図4】第1の実施形態にかかる優先度テーブルの概略図である。
【図5】第1の実施形態にかかるコントローラによる処理のフローチャートである。
【図6】第1の実施形態にかかるモータの動作状態を説明する概略図である。
【図7】第1の実施形態の変形例にかかるモータの動作状態を説明する概略図である。
【図8】第2の実施形態にかかるコントローラの機能ブロック図である。
【図9】第2の実施形態にかかるコントローラによる処理のフローチャートである。
【図10】第3の実施形態にかかるコントローラによる処理のフローチャートである。
【図11】第4の実施形態にかかるコントローラの機能ブロック図である。
【図12】第4の実施形態にかかるコントローラによる処理のフローチャートである。
【発明を実施するための形態】
【0010】
[第1の実施形態]
以下、図1−図6を参照しながら、第1の実施形態を説明する。
【0011】
例えば介護ロボットや教育ロボット等の、人間とのインタラクションをはかる動物型のコミュニケーションロボットは、生き物らしさ(即ち、機械的ではない動作)や、人間との触れ合い感を表現することが望まれる。
【0012】
本実施形態では、これを実現するために、ロボットのアーキテクチャとして、いわゆる包摂アーキテクチャ(Subsumption Architecure)を採用する。包摂アーキテクチャは、複数の動作モジュールからの制御コマンド、例えばモータコマンドを調停して、コミュニケーションロボットに自然な動作を表現させるものである。但し、本発明は、これに限定されるものはなく、あらゆるロボットアーキテクチャにより実現しても良い。又、以下の説明は、本発明を実施するための一例に過ぎず、具体的な実施形態は、種々の態様をとりうるものとする。
【0013】
(ロボット10の概略構成)
図1は、第1の実施形態にかかるロボットの概略図であって、(a)はロボット10の正面、(b)はロボット10の側面、をそれぞれ示している。
【0014】
図1に示すように、本実施形態にかかるロボット10は、クマ型のインタラクションロボットであって、頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19を備える。なお、頭11、目13、瞼14、鼻15、口16、耳17をまとめて頭部と呼称し、胴体12、腕18、足19をまとめて胴体部と呼称する。
【0015】
頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19(以下、これらをまとめてロボット10の各部と呼称する)は、モータ23a、23b、23c…(後述する)の駆動力に基づき、個別に動作することができる。ロボット10の各部の動作態様は、特に限定されるものではないが、例えば、頭11は、モータ23aにより胴体12の体軸Cを中心として左右方向に回転する。
【0016】
(ロボット10のハードウェア)
図2は、第1の実施形態にかかるロボット10のハードウェアの構成図である。
【0017】
図2に示すように、本実施形態にかかるロボット10は、コントローラ21と、メモリ22と、複数のモータ23a、23b、23c…と、撮像カメラ(視覚センサ)24と、タッチセンサ25と、フラッシュメモリ26と、を備える。
【0018】
コントローラ21、メモリ22、モータ23a、23b、23c…、撮像カメラ24、タッチセンサ25、フラッシュメモリ26は、例えばバス27により相互に接続されている。
【0019】
コントローラ21は、フラッシュメモリ26に格納された各種プログラムを読み出して、メモリ22に展開するとともに、該メモリ22に展開された各種プログラムを実行することで、後述する各種機能を実現する。
【0020】
メモリ22は、コントローラ21によりフラッシュメモリ26から読み出された各種プログラム、コントローラ21により各種機能が実行されるときに使用されるデータ、撮像カメラ24により取得された画像データ、などを記憶する。
【0021】
モータ23a、23b、23c…は、それぞれロボット10に内蔵され、例えば頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19などを動作させる。モータ23a、23b、23c…の種類は、特に限定されるものではないが、本実施形態では、サーボモータを使用している。このため、頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19は、それぞれ指定された方向に、指定された角度だけ、指定された時間をかけて動作することができる。
【0022】
なお、本実施形態では、3つのモータ23a、23b、23c…のみを図示しているが、ロボット10は、頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19などを動作させるために必要な個数のモータを備える。
【0023】
撮像カメラ24は、ロボット10の鼻15に内蔵され、鼻15の前方を撮影する。撮像カメラ24としては、例えばCCD(Charge Coupled Device Image Sensor)を用いても良い。撮像カメラ24により撮像された画像データは、それぞれの撮像時刻と対応づけられて、例えばメモリ22もしくはフラッシュメモリ26に格納される。
【0024】
タッチセンサ25は、例えばロボット10の胴体12の表面、即ち体表に相当する位置に配置され、例えば人間によりタッチされたことを検知する。タッチセンサ25としては、例えば圧力センサを用いても良い。
【0025】
フラッシュメモリ26は、ロボット10の動作を制御するための各種プログラムを記憶する。なお、本実施形態では、フラッシュメモリ26を使用しているが、各種プログラムを記憶できる不揮発性メモリであれば、これに限定されるものではない。
【0026】
(コントローラ21の機能ブロック図)
図3は、第1の実施形態にかかるコントローラ21の機能ブロック図である。
【0027】
図3に示すように、本実施形態にかかるコントローラ21は、第1の動作モジュール211と、第2の動作モジュール212と、第3の動作モジュール213と、第4の動作モジュール214と、モータ駆動部(動作駆動部)215と、モータコマンド制御部(動作制御部)216と、顔検知部(第1の検知部)217と、注意/興味判断部(第2の検知部)218と、接触検知部219と、時刻管理部220と、電源管理部221と、目的設定部222と、を備える。
【0028】
第1の動作モジュール211、第2の動作モジュール212、第3の動作モジュール213、第4の動作モジュール214、モータ駆動部215、モータコマンド制御部216、顔検知部217、注意/興味判断部218、接触検知部219、時刻管理部220、電源管理部221、目的設定部222は、何れもメモリ22に展開された制御プログラムに基づき、コントローラ21により実現される。
【0029】
第1の動作モジュール211は、電源管理部221から電源投入情報が通知された場合、ロボット10に、いわゆる自発動作を実行させるための第1のモータコマンドを生成する。
【0030】
自発動作は、人間がロボット10の周囲に来訪するまでの待機時間に実行される、例えば生き物らしさや、人間との触れ合いを演出するための動作である。自発動作の態様は、特に限定されるものではないが、少なくとも頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19の少なくとも1つを動作させる態様とされる。
【0031】
第1のモータコマンドは、事前に設定された自発動作の動作シーケンス(以下、第1の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に自発動作を実行させる。
【0032】
なお、第1の動作モジュール211は、ロボット10の内部状態もしくは撮像カメラ24により取得された画像データ等に基づき、自発動作のタイプを決定し、該タイプに対応する第1のモータコマンドを生成しても良い。
【0033】
第2の動作モジュール212は、顔検知部217によりロボット10の周囲に人間がいることが検知された場合、即ち顔検知部217から人物検知情報が通知された場合、ロボット10に、いわゆる引き付け動作を実行させるための第2のモータコマンドを生成する。
【0034】
引き付け動作は、人間の注意や興味をロボット10に引き付ける動作であって、例えば静止動作及び追従動作を含む。
【0035】
静止動作は、それまで実行されていたロボット10の自発動作を停止させる動作である。例えば、自発動作として、腕18及び足19を動作させていた場合、腕18及び足19の動作を、事前に決められた第1の時間(後述する)だけ停止させる。
【0036】
追従動作は、静止動作の終了後に連続的に実行され、例えば頭11を胴体12の体軸Cを中心に回転させて、左右の目13により、例えば人間を追従する動作である。このとき、ロボット10の頭11以外の部位は、静止状態を継続する。従って、追従動作を実行しているときは、頭11だけが動作することになる。なお、本実施形態では、頭11を胴体12の体軸Cを中心に回転させているが、例えば左右の目13を動作させることで、例えば歩行中の人間を追従しても良い。
【0037】
第2のモータコマンドは、事前に設定された静止動作及び追従動作の動作シーケンス(以下、第2の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に静止動作及追従動作を実行させる。
【0038】
詳細には、第2の動作シーケンスは、事前に決められた第1の時間(後述する)だけ静止動作を実行する複数のモータコマンドと、静止動作の終了後、追従動作を実現する複数のモータコマンドと、を含み、これらのモータコマンドが、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10が静止動作及び追従動作を連続的に実行するのである。
【0039】
第2の動作シーケンスに於いて、静止動作を継続する時間は、時刻管理部220により管理される。即ち、顔検知部217によりロボット10の周囲の人間を検知された時刻を始点としてタイムカウントを開始し、タイムカウント値が、事前に決められた第1の時間(後述する)を超えた時点で静止動作が終了する。
【0040】
第3の動作モジュール213は、ロボット10が人間の注意もしくは興味を引き付けた場合、即ち注意/興味判断部218(後述する)から注意/興味検知情報が通知された場合、ロボット10に、いわゆる提供動作を実行させるための第3のモータコマンドを生成する。
【0041】
提供動作は、人間に提供すべきサービスごとに定められている。提供動作の態様は、特に限定されるものではないが、例えば近所のスーパーの安売り情報や、急激な天候変化に関する情報などを提示する場合には、腕18や足19を動かすような態様としても良い。
【0042】
第3のモータコマンドは、事前に設定された提供動作の動作シーケンス(以下、第3の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に提供動作を実行させる。
【0043】
第4の動作モジュール214は、接触検知部219により生成された接触検知情報が通知された場合、ロボット10に、いわゆる反応動作を実行させるための第4のモータコマンドを生成する。反応動作の態様は、特に限定されるものではないが、例えば腕18や足19を動かして、まるで触れられて喜んでいる様な態様としても良い。
【0044】
第4のモータコマンドは、事前に設定された反応動作の動作シーケンス(以下、第4の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に反応動作を実行させる。
【0045】
モータ駆動部215は、コマンド格納部231a、231b、231c、231d(後述する)に格納されたモータコマンドを受け取り、それぞれのモータコマンドに対応するモータ23a、23b、23c…を駆動する。このとき、モータ駆動部215は、動作調停情報管理部232の優先度テーブル(後述する)に基づき、優先度が高い動作モジュールにより生成されたモータコマンドを優先的に実行する。
【0046】
なお、モータコマンドは、駆動すべき対象のモータ23a、23b、23c…のモータID、モータ軸の回転方向、モータ軸の目標角度、目標角度に到達するまでの時間、などの制御情報を含む。このため、モータ駆動部215は、モータ格納部231a、231b、231c、231dから取得したモータコマンドに基づき、駆動すべきモータ23a、23b、23c…の駆動軸を、指定された回転方向に、指定された目標角度まで、指定された時間をかけて、回転させる。
【0047】
モータコマンド制御部216は、コマンド受信部230と、コマンド格納部231a、231b、231c、231dと、動作調停情報管理部232と、を備える。
【0048】
コマンド受信部230は、第1、第2、第3、第4の動作モジュール211、212、213、214により生成されたモータコマンドを受け取り、それぞれのモータコマンドを生成した動作モジュールに対応するコマンド格納部231a、231b、231c、231dに振り分ける。例えば、第1の動作モジュール211により生成されたモータコマンドは、第1の動作モジュール211に対応するコマンド格納部231aに振り分けられる。
【0049】
コマンド格納部231a、231b、231c、231dは、それぞれ動作モジュール211、212、213、214ごとに用意されている。コマンド格納部231a、231b、231c、231dは、コマンド受信部230により振り分けられたモータコマンドを、それぞれの開始時刻に対応づけて記憶している。
【0050】
コマンド格納部231a、231b、231c、231dに格納されたモータコマンドは、それぞれ動作調停情報管理部232に管理されている優先度テーブル(後述する)に基づき、優先度の高い動作モジュールにより生成されたモータコマンドから順番に、それぞれのモータ23a、23b、23c…に通知される。従って、全てのコマンド格納部231a、231b、231c、231dにモータコマンドが格納されている場合、優先度が最も高い動作モジュールによる動作シーケンスが実行される。
【0051】
動作調停情報管理部232は、第1、第2、第3、第4の動作モジュール211、212、213、214と、それぞれの優先度P4、P3、P2、P1と、を対応づける優先度テーブルを管理している。このため、コマンド格納部231a、231b、231c、231dのそれぞれに、第1、第2、第3、第4の動作モジュール211、212、213、214により生成されたモータコマンドが格納されていても、モータ駆動部215は、優先的に実行すべきモータコマンドを特定することができる。さらに、動作調停情報管理部232は、第1、第2、第3、第4の動作モジュール211、212、213、214の実行状況を管理する。但し、第1、第2、第3、第4の動作モジュール211、212、213、214の実行状況は、動作調停情報管理部232とは異なる実行状況管理部(図示しない)により管理しても良い。
【0052】
図4は、第1の実施形態にかかる優先度テーブルの概念図である。
【0053】
図4に示すように、本実施形態にかかる優先度テーブルは、第1の動作モジュール211に優先度P4(P4:priority 4)が対応づけられ、第2の動作モジュール212に優先度P3(P3:priority 3)が対応づけられ、第3の動作モジュール213に優先度P2(P2:priority 2)、第4の動作モジュール214に優先度P1(P1:priority 1)、がそれぞれ対応づけられている。
【0054】
従って、例えばコマンド格納部231aに、第1の動作モジュール211により生成されたモータコマンドが格納され、コマンド格納部231bに、第2の動作モジュール212により生成されたモータコマンドが格納されている場合、モータ駆動部215は、優先度が高い第2の動作モジュール212により生成されたモータコマンドを実行する。さらに、第1の動作モジュール211により生成されたモータコマンドが実行されているときに、コマンド格納部231bに、第2の動作モジュール212により生成されたモータコマンドが格納されると、モータ駆動部215は、動作調停情報管理部232に管理されている優先度テーブルに基づき、第1の動作モジュール211による第1の動作シーケンスの実行を停止して、代わりに、第2の動作モジュール212による第2の動作シーケンスの実行を開始する。
【0055】
顔検知部217は、撮像カメラ24により取得された画像データに基づき、ロボット10の周囲の人間を検知する。さらに、顔検知部217は、ロボット10の周囲に人間の顔を検知した場合、人物を検知したことを意味する人物検知情報を生成して、該人物検知情報を第1、第2、第3、第4の動作モジュール211、212、213、214に通知する。顔検知法としては、例えば公知の顔認識技術を使用すれば良い。なお、顔検知部217は、撮像カメラ24により逐次取得される画像データごとに、ロボット10の周囲の人間を検知しても良い。
【0056】
注意/興味判断部218は、撮像カメラ24により取得された画像データに基づき、ロボット10及び人間の視線一致度を算出する。視線一致度の算出法は、公知の視線確認法を使用すれば良い。ロボット10及び人間の視線一致度が閾値を超えた場合、注意/興味判断部218は、ロボット10及び人間の視線が一致したことを意味する視線一致情報を生成して、該視線一致情報を第1、第2、第3、第4の動作モジュール211、212、213、214に通知する。
【0057】
接触検知部219は、タッチセンサ25がロボット10への接触を検知した場合、ロボット10が接触されたことを意味する接触検知情報を生成して、該接触検知情報を第1、第2、第3、第4の動作モジュール211、212、213、214に通知する。
【0058】
時刻管理部220は、第1、第2、第3、第4の動作モジュール211、212、213、214が第1、第2、第3、第4の動作シーケンスを実行するための時間を管理している。例えば、時刻管理部220は、顔検知部217によりロボット10の周囲の人間が検知されたことをトリガとしてタイムカウントを開始して、タイムカウント値が、事前に決められた第1の時間もしくは第2の時間を超えたかどうか判断する。第1の時間は、第2の動作モジュール212による静止動作の継続時間の閾値である。第2の時間は、注意/興味判断部218による、人間の注意や興味をロボット10に引き付けるまでの経過時間の閾値である。
【0059】
電源管理部221は、電源スイッチ(図示しない)のON/OFFを管理していて、例えば電源スイッチが投入されると、第1、第2、第3、第4の動作モジュール211、212、213、214に、電源が投入されたことを意味する電源投入情報を通知する。
【0060】
目的設定部222は、例えば人間に提供すべきサービスに関する情報(以下、サービス情報とする)をサーバSから受け取り、該サービス情報をメモリ22に記憶させる。ロボット10は、該サービスを人間に提供する、という目的のために、人間の注意や興味を引き付けるのである。サービスは、特に限定されるものではないが、例えば、近所のスーパーの安売り情報や急激な天候変化に関する情報など、利用者に有益と思われる情報の提供を想定している。又、サービスとして、人間を元気づけるための踊りの披露を用いても良い。なお、目的設定部222は、定期的にサーバSにアクセスして、利用者に有益なサービス情報の発生の有無を確認しても良い。又、サービス情報が発生するたびに、サーバSから目的設定部222に、サービス情報の発生を通知する仕組みとしても良い。さらに、目的設定部222は、例えばサーバSからのサービス情報をメモリ22に記憶させた場合、ロボット10に目的を設定したことを意味する目的設定情報を生成して、該目的設定情報を第1、第2、第3、第4の動作モジュール211、212、213、214に通知する。
【0061】
(コントローラ21による処理フロー)
図5は、第1の実施形態にかかるコントローラ21による処理のフローチャートである。図6は、第1の実施形態にかかるモータの動作状態を説明する概略図である。なお、図6中の曲線は、それぞれ、図中左側に記載されている耳17、瞼14、口15、頭11、右腕18、左腕18、右足19、左足19を駆動するためのモータに対応している。又、図6中の横軸は時間、縦軸はモータの動作量(電流値)、をそれぞれ示している。
【0062】
本実施形態にかかるコントローラ21による処理フローは、電源スイッチ(図示しない)が投入されて、第1の動作モジュール211に電源管理部221から電源投入情報が通知された時点で開始される。
【0063】
本実施形態にかかる処理フローが開始したら、図5に示すように、目的設定部222は、例えばサーバSからサービス情報を取得して、該サービス情報をメモリ22に記憶させる(ステップS101)。但し、サーバSにサービス情報が存在しない場合、目的設定部222は、必ずしもサービス情報を取得しなくても良い。
【0064】
次に、第1の動作モジュール211は、ロボット10に自発動作を実行させるための第1のモータコマンドを生成する。コマンド受信部230は、第1の動作モジュール211により生成された第1のモータコマンドを受け取り、コマンド格納部231aに格納する。モータ駆動部215は、動作調停情報管理部232により管理されている優先度テーブルに基づき、コマンド格納部231a、231b、231c、231dの何れかに格納されたモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。ここでは、コマンド格納部231aは、第1の動作モジュール211により生成された第1のモータコマンドを格納しているが、コマンド格納部231b、231c、231dは、何れもモータコマンドを格納していない。従って、モータ駆動部215は、動作調停情報管理部232により管理された優先度テーブルに基づき、コマンド格納部231aに格納された第1のモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。これにより、ロボット10は、第1の動作シーケンスに従い、自発動作を開始する(ステップS102)。なお、図6に示すように、ロボット10の自発動作時には、ロボット10の各部を動作させる複数のモータが動作していることがわかる(図中の「自発動作状態」参照)。
【0065】
次に、顔検知部217は、撮像カメラ24により取得された画像データに基づき、ロボット10の周囲に人間が存在するか判断する(ステップS103)。このとき、顔検知部217は、公知の顔認識技術を利用して、ロボット10から所定距離内に存在する人間だけを検知しても良い。
【0066】
顔検知部217によりロボット10の周囲に人間が存在すると判断されたら(ステップS103のYes)、第2の動作モジュール212は、静止動作及び追従動作を実行させるための第2のモータコマンドを生成する。コマンド受信部230は、第2の動作モジュール212により生成された第2のモータコマンドを受け取り、コマンド格納部231bに格納する。モータ駆動部215は、動作調停情報管理部232により管理されている優先度テーブルに基づき、コマンド格納部231a、231b、231c、231dの何れかに格納されたモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。ここでは、コマンド格納部231aは、第1の動作モジュール211により生成された第1のモータコマンドを、コマンド格納部231bは、第2の動作モジュール212により生成された第2のモータコマンドを、それぞれ格納している。しかし、コマンド格納部231c、231dは、何れもモータコマンドを格納していない。従って、モータ駆動部215は、コマンド格納部231aに格納された第1のモータコマンド及びコマンド格納部231bに格納された第2のモータコマンドのうち、優先度が高い第2のモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。これにより、ロボット10は、第2の動作シーケンスに従い、引き付け動作を実行する(ステップS104)。引き付け動作は、静止動作(ステップS104a)及び追従動作(ステップS104b)を含み、人間の注意や興味をロボット10に引き付けるための動作である。
【0067】
即ち、第2のモータコマンドによりモータ23a、23b、23c…を駆動することで、ロボット10は、事前に決められた第1の時間だけ、該ロボット10の部位の動作を静止させる静止動作を実行するとともに、静止動作の終了時を始点として、例えば頭11を胴体12の体軸Cを中心に回転させて、左右の目13により人間を追従する追従動作を実行する。なお、図6に示すように、ロボット10の引き付け動作時には、耳17、瞼14、15、頭11を動作させるためのモータだけが動作し、右腕18、左腕18、右足19、左足19を動作させるためのモータが停止していることがわかる(図中の「引き付け動作状態」参照)。
【0068】
又、顔検知部217によりロボット10の周囲に人間が存在すると判断されたら(ステップS103のYes)、時刻管理部220は、人間が検知されたことをトリガとして、タイムカウントを開始する。
【0069】
一方、顔検知部217によりロボット10の周囲に人間が存在すると判断されなければ(ステップS103のNo)、目的設定部222は、再度、例えばサーバSからサービス情報を取得して、該サービス情報をメモリ22に記憶させる(ステップS101)。
【0070】
次に、注意/興味判断部218は、人間の注意や興味をロボット10に引き付けたかどうか判断する(ステップS105)。例えば、人間の注意や興味を引き付けたかどうかの判断では、例えばロボット10及び人間の視線一致度と、事前に決められた閾値と、を比較して、視線一致度が閾値を超えた場合に、人間の注意や興味をロボット10に引き付けたと判断すれば良い。さらに、ロボット10及び人間の距離、即ちロボット10への人間の接近の程度に基づき、人間の注意や興味を引き付けたかどうか判断しても良い。
【0071】
人間の注意や興味をロボット10に引き付けたと判断されたら(ステップS105のYes)、第3の動作モジュール213は、メモリ22に記憶されたサービス情報に基づき、人間にサービスを提供、即ち目的動作を実行する(ステップS106)。サービスとして、近所のスーパーの安売り情報や気象情報の提供が設定されている場合、ロボット10は、例えばスピーカ(図示しない)を利用して、これらの情報を通知しても良い。又、サービスとして、人間を元気づけるための踊りの披露が設定されている場合、ロボット10の各部を動作させて、踊りを実演させても良い。なお、図6に示すように、ロボット10の目的動作時には、ロボット10の各部を動作させる複数のモータが動作していることがわかる(図中の「目的動作状態」参照)。ここでは、「目的動作」として、踊りの実演が設定されているときのモータの動作量を示している。
【0072】
次に、動作調停情報管理部232は、モータ駆動部215が目的動作の実行を完了させたかどうか判断する(ステップS107)。動作調停情報管理部232により目的動作の実行が完了したと判断されたら(ステップS107のYes)、処理フローが終了する。一方、動作調停情報管理部232により目的動作の遂行が完了したと判断されなければ(ステップS107のNo)、再度、目的設定部222は、例えばサーバSからサービス情報を取得して、該サービス情報をメモリ22に記憶させる(ステップS101)。
【0073】
一方、人間の注意や興味をロボット10に引き付けたと判断されなければ(ステップS105のNo)、時刻管理部220は、顔検知部217によりロボット10の周囲に存在する人間が検知されてからの経過時間が、事前に決められた第2の時間を超えたかどうか判断する(ステップS108)。
【0074】
経過時間が第2の時間を超えたと判断されたら(ステップS108のYes)、再度、目的設定部222は、例えばサーバSからサービス情報を取得して、該サービス情報をメモリ22に記憶させる(ステップS101)。
【0075】
一方、経過時間が第2の時間を超えたと判断されなければ(ステップS108のNo)、再度、注意/興味判断部218は、人間の注意や興味をロボット10に引き付けたかどうかの判断を継続する(ステップS105)。
【0076】
以上の処理フローを繰り返すことにより、ロボット10の周囲に来訪する人間に、それぞれの来訪のタイミングに最適なサービスを提供することができる。
【0077】
本実施形態によれば、顔検知部217によりロボット10の周囲の人物が検知された場合に、それまで第1の動作モジュール211により実行していた自発動作を、事前に決められた第1の時間だけ停止させるとともに、頭11を胴体12の体軸Cを中心に回転させて、左右の目13により人間を追従させる。
【0078】
即ち、本実施形態では、ロボット10に、例えば人間を発見したときに停止するとともに両目で人間を追従する猫の行動と類似の動作を実行させている。このため、猫に追従されている人間が自然と猫の存在に気づくように、ロボット10に追従されている人間は、自然とロボット10の存在に気づくことになる。これにより、例えばロボット10の存在に気づいていない人間の注意や興味をロボット10に引き付けることができる。
【0079】
又、本実施形態によれば、人間の注意や興味がロボット10に引き付けられたことを確認してから、人間にサービスを提供している。このため、ロボット10に注意や興味を引き付けられていない人間に、即ちロボット10に気づいていない人間に、突然サービスを提供して、人間に不快感を与えることを抑制することができる。
【0080】
なお、本実施形態では、ロボット10前方の情報を取得するために、撮像カメラ24を使用しているが、本発明は、これに限定されるものではない。例えば移動物体を検知する赤外線センサ等を使用しても良い。但し、赤外線センサ等を使用する場合、顔検知部217の代わりに、赤外線センサ等の検出情報に基づき、移動物体を検知する物体検知部(図示しない)を、コントローラ21及び制御プログラムにより実現すれば良い。
【0081】
さらに、本実施形態にかかるロボット10は、該ロボット10への接触を検知するためのタッチセンサ25を備えるが、例えば聴覚センサ等を備えても良い。
【0082】
また、本実施形態では、ロボット10は、第1、第2、第3、第4の動作モジュール211、212、213、214を備えるが、本発明は、これに限定されるものではなく、さらに動作モジュールを追加しても良い。動作モジュールが追加される場合、本実施形態にかかる電源投入情報、人物検知情報、注意/興味検知情報、視線一致情報、接触検知情報、目的設定情報は、該動作モジュールにも通知される。
【0083】
[変形例]
以下、図7を参照しながら、第1の実施形態の変形例を説明する。但し、第1の実施形態と同等の構成や処理については、説明を省略することとする。
【0084】
本変形例にかかる第2の動作モジュール212は、引き付け動作(静止動作及び追従動作)だけでなく、引き付け動作の前に、さらに初期位置動作を実行させるための第2のモータコマンドを生成する。
【0085】
初期位置動作は、それぞれのモータ23a、23b、23c…の駆動軸を、事前に決められた初期位置に移動させる動作である。従って、モータ駆動部215が、第2の動作シーケンスに従い、コマンド格納部231bに格納された第2のモータコマンドを、それぞれのモータ23a、23b、23c…に通知すると、最初にモータ23a、23b、23c…の駆動軸の位置が初期化され、続いて静止動作が開始される。
【0086】
図7は、第1の実施形態の変形例にかかるモータの動作状態を説明する概略図である。なお、図7中の曲線は、それぞれ、図中左側に記載されている耳17、瞼14、口15、頭11、右腕18、左腕18、右足19、左足19を駆動するためのモータに対応している。又、図7中の横軸は時間、縦軸はモータの動作量(電流値)、をそれぞれ示している。
【0087】
図7に示すように、顔検知部217により人間が検知された後も、右腕18、左腕18、右足19、左足19を駆動するためのモータが動作を続け、その後、それぞれのモータの動作量が0、即ちそれぞれのモータ駆動軸が初期位置に移動していることがわかる(図中の範囲A参照)。
【0088】
第1の実施形態では、人間が検知されたときのモータ駆動軸の位置を維持させているが、即ち人間が検知されたときのロボット10の各部の位置(姿勢)を維持させているが、本変形例のように、ロボット10の周辺の人間が検知された場合に、ロボット10の各部の位置(姿勢)を初期位置に移動させても良い。
【0089】
[第2の実施形態]
以下、図8、図9を参照しながら、第2の実施形態を説明する。但し、第1の実施形態と同等の構成や処理については、説明を省略することとする。
【0090】
第2の実施形態は、顔検知部217がロボット10の周囲に存在する人間を検知した場合に、ロボット10に、人間を検知したことを表現するための表情動作を実行させる点で、第1の実施形態と相違する。
【0091】
(コントローラ21の機能ブロック図)
図8は、第2の実施形態にかかるコントローラ21の機能ブロック図である。
【0092】
図8に示すように、本実施形態にかかるコントローラ21は、さらに、第5の動作モジュール240と、コマンド格納部231eと、を備える。
【0093】
第5の動作モジュール240は、第1の動作モジュール211よりも優先度が高く、顔検知部217から人物検知情報が通知された場合、ロボット10に、いわゆる表情動作を実行させるための第5のモータコマンドを生成する。
【0094】
表情動作は、ロボット10の周囲に来訪した人間に、表情の変化を提示する動作である。表情動作の態様は、特に限定されるものではないが、例えば瞼14を開き、耳17を立て、口16を開閉させる態様としても良い。
【0095】
第5のモータコマンドは、事前に設定された表情動作の動作シーケンス(以下、第5の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に表情動作を実行させる。
【0096】
コマンド格納部231eは、第5の動作モジュール240により生成されて、コマンド受信部230により振り分けられるモータコマンドを、それぞれの開始時刻に対応づけて格納している。
【0097】
(コントローラ21による処理フロー)
図9は、第2の実施形態にかかるコントローラ21による処理のフローチャートである。
【0098】
図9に示すように、本実施形態にかかる処理フローでは、顔検知部217によりロボット10の周囲に人間が存在すると判断されたら(ステップS103のYes)、ロボット10に引き付け動作を実行させる前に(ステップS104)、第5の動作モジュール240は、表情動作を実行させるための第5のモータコマンドを生成する。コマンド受信部230は、第5の動作モジュール240により生成された第5のモータコマンドを受け取り、コマンド格納部231eに格納する。モータ駆動部215は、動作調停情報管理部232により管理された優先度テーブルに基づき、コマンド格納部231a、231b、231c、231d、231eの何れかに格納されたモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。このとき、コマンド格納部231aは、第1の動作モジュール211により生成された第1のモータコマンドを、コマンド格納部231eは、第5の動作モジュールにより生成された第1のモータコマンドを、それぞれ格納している。しかし、コマンド格納部231b、231c、231dは、何れもモータコマンドを格納していない。従って、モータ駆動部215は、第1のモータコマンド及び第5のモータコマンドのうち、優先度が高い第5のモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。これにより、ロボット10は、第5の動作シーケンスに従い、表情動作を実行する(ステップS201)。
【0099】
本実施形態によれば、顔検知部217によりロボット10の周囲に存在する人間が検知された場合、ロボット10に引き付け動作を実行させる前に、表情動作を実行させている。このため、ロボット10に気づいていないものの、ロボット10の付近に視線を向けている人間の注意や興味を、より低い刺激でロボット10に引き付けることができる。
【0100】
[第3の実施形態]
以下、図10を参照しながら、第3の実施形態を説明する。但し、第1の実施形態と同等の構成や処理については、説明を省略することとする。
【0101】
第3の実施形態は、顔検知部217により検知されていた人間が消失した場合に、ロボット10に、それまで実行していた引き付け動作を中止させる点で、第1の実施形態と相違する。
【0102】
(コントローラ21による処理フロー)
図10は、第3の実施形態にかかるコントローラ21による処理のフローチャートである。
【0103】
図10に示すように、注意/興味判断部218により人間の注意や興味をロボット10に引き付けたと判断されなければ(ステップS105のNo)、顔検知部217は、撮像カメラ24により逐次取得される画像データに基づき、それまで検知されていた人間が消失したかどうか判断する(ステップS301)。
【0104】
それまで検知されていた人間が消失したと判断されなければ(ステップS301のNo)、再度、注意/興味判断部218は、人間の注意や興味をロボット10に引き付けたかどうかの判断を継続する(ステップS105)。
【0105】
一方、それまで検知されていた人間が消失したと判断されたら(ステップS301のYes)、ロボット10に実行させていた引き付け動作を中止させ、再度、目的設定部222は、例えばサーバSからサービス情報を取得して、メモリ22に該サービス情報を記憶させる(ステップS101)。
【0106】
本実施形態によれば、それまで顔検知部217により検知されていた人間が消失した場合に、ロボット10に実行させていた追従動作を中止させ、再度、目的設定をする。このため、サービスを提供すべき人間が消失したら、即座に、次にロボット10の周囲に来訪する人間へのインタラクションを準備することができる。
【0107】
[第4の実施形態]
以下、図11を参照しながら、第4の実施形態を説明する。但し、第1の実施形態と同等の構成や処理については、説明を省略することとする。
【0108】
第4の実施形態は、例えばサーバSからのサービス情報がメモリ22に記憶されてないときに、ロボット10の周囲に人間が来訪した場合を想定している。このため、第4の実施形態は、顔検知部217がロボット10の周囲に存在する人間を検知してから、ロボット10が引き付け動作を実行するまでの間に、ロボット10に自発追従動作を実行させ、かつ、目的設定部222にサービス情報がメモリ22に記憶されているか判断させる点で、第1の実施形態と相違する。これに付随して、処理フローの開始後の目的設定が省略されている。
【0109】
(コントローラ21の機能ブロック図)
図11は、第4の実施形態にかかるコントローラ21の機能ブロック図である。
【0110】
図11に示すように、本実施形態にかかるコントローラ21は、さらに、第6の動作モジュール250と、コマンド格納部231fと、を備える。
【0111】
第6の動作モジュール250は、第1の動作モジュール211よりも優先度が高く、顔検知部217から人物検知情報が通知され、かつ、目的設定部222から目的設定情報が通知されない場合、ロボット10に、いわゆる自発追従動作を実行させるための第6のモータコマンドを生成する。
【0112】
自発追従動作は、人間の注意や興味をロボット10に引き付ける予備的な動作であって、例えば、自発動作及び追従動作を含む。
【0113】
自発動作は、人間がロボット10の周囲に来訪するまでの待機時間に実行される、例えば生き物らしさや、人間との触れ合いを演出するための動作である。自発動作の態様は、特に限定されるものではないが、少なくとも頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19の少なくとも1つを動作させる態様とされる。
【0114】
追従動作は、自発動作と同時に実行され、例えば頭11を胴体12の体軸Cを中心に回転させて、左右の目13により、例えば人間を追従する動作である。なお、本実施形態では、頭11を胴体12の体軸Cを中心に回転させているが、例えば左右の目13を動作させることで、例えば歩行中の人間を追従しても良い。
【0115】
第6のモータコマンドは、事前に設定された自発動作及び追従動作の動作シーケンス(以下、第6の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に自発動作及追従動作を実行させる。
【0116】
コマンド格納部231fは、第6の動作モジュール250により生成されて、コマンド受信部230により振り分けられるモータコマンドを、それぞれの開始時刻に対応づけて格納している。
【0117】
(コントローラ21による処理フロー)
図12は、第4の実施形態にかかるコントローラ21による処理のフローチャートである。
【0118】
本実施形態にかかる処理フローが開始したら、図12に示すように、ロボット10は、第1の動作シーケンスに従い、自発動作を開始する(ステップS102)。
【0119】
次に、顔検知部217は、撮像カメラ24により取得された画像データに基づき、ロボット10の周囲に人間が存在するか判断する(ステップS103)。顔検知部217によりロボット10の周囲に人間が存在すると判断されたら(ステップS103のYes)、第6の動作モジュール250は、自発追従動作、即ち自発動作及び追従動作を実行させるための第6のモータコマンドを生成する。コマンド受信部230は、第6の動作モジュール250により生成された第6のモータコマンドを受け取り、コマンド格納部231fに格納する。モータ駆動部215は、動作調停情報管理部232により管理されている優先度テーブルに基づき、コマンド格納部231a、231b、231c、231d、231fの何れかに格納されたモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。ここでは、コマンド格納部231aは、第1の動作モジュール211により生成された第1のモータコマンドを格納している。しかし、コマンド格納部231b、231c、231dは、何れもモータコマンドを格納していない。従って、モータ駆動部215は、コマンド格納部231aに格納された第1のモータコマンド及びコマンド格納部231fに格納された第6のモータコマンドのうち、優先度が高い第6のモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。これにより、ロボット10は、第6の動作シーケンスに従い、自発追従動作を実行する(ステップS401)。自発追従動作は、自発動作(ステップS401a)及び追従動作(ステップS401b)を含み、人間の注意や興味をロボット10に引き付けるための予備的な動作である。一方、顔検知部217によりロボット10の周囲に人間が存在すると判断されなければ(ステップS103のNo)、ロボット10は、再度、第1の動作シーケンスに従い、自発動作を開始する(ステップS102)。
【0120】
次に、目的設定部222は、例えばサーバSからのサービス情報がメモリ22に記憶されているか判断する(ステップS402)。例えばサーバSからのサービス情報がメモリ22に記憶されていると判断されたら(ステップS402のYes)、ロボット10は、第2の動作シーケンスに従い、引き付け動作を実行する(ステップS104)。引き付け動作は、静止動作(ステップS104a)及び追従動作(ステップS104b)を含み、人間の注意や興味をロボット10に引き付けるための動作である。一方、例えばサーバSからのサービス情報がメモリ22に記憶されていると判断されたら(ステップS402のNo)、ロボット10は、再度、第6の動作シーケンスに従い、自発追従動作を実行する(ステップS401)。又、例えばサーバSからのサービス情報がメモリ22に記憶されていると判断されたら(ステップS402のYes)、時刻管理部220は、サービス情報がメモリ22に記憶されていると判断されたことをトリガとして、タイムカウントを開始する。
【0121】
次に、注意/興味判断部218は、人間の注意や興味をロボット10に引き付けたかどうか判断する(ステップS105)。人間の注意や興味をロボット10に引き付けたと判断されたら(ステップS105のYes)、第3の動作モジュール213は、メモリ22に記憶されたサービス情報に基づき、人間にサービスを提供、即ち目的動作を実行する(ステップS106)。
【0122】
次に、動作調停情報管理部232は、モータ駆動部215が目的動作の実行を完了させたかどうか判断する(ステップS107)。動作調停情報管理部232により目的動作の実行が完了したと判断されたら(ステップS107のYes)、処理フローが終了する。一方、動作調停情報管理部232により目的動作の遂行が完了したと判断されなければ(ステップS107のNo)、再度、ロボット10は、第1の動作シーケンスに従い、自発動作を開始する(ステップS102)。
【0123】
一方、人間の注意や興味をロボット10に引き付けたと判断されなければ(ステップS105のNo)、時刻管理部220は、顔検知部217によりロボット10の周囲に存在する人間が検知されてからの経過時間が、事前に決められた第3の時間を超えたかどうか判断する(ステップS108)。第3の時間は、目的設定部222が、例えばサーバSからのサービス情報がメモリ22に記憶してから、注意/興味判断部218が、人間の注意や興味をロボット10に引き付けるまでの経過時間の閾値である。
【0124】
経過時間が第3の時間を超えたと判断されたら(ステップS108のYes)、ロボット10は、再度、第2の動作シーケンスに従い、引き付け動作を実行する(ステップS104)。一方、経過時間が第3の時間を超えたと判断されなければ(ステップS108のNo)、ロボット10は、再度、第2の動作シーケンスに従い、引き付け動作を実行する(ステップS104)。
【0125】
本実施形態によれば、例えばサーバSからのサービス情報がメモリ22に記憶されてないときに、ロボット10の周囲に人間が来訪しても、その後、例えばサーバSからのサービス情報がメモリ22に記憶された時点で、人間の注意や興味をロボット10に引き付け、ロボット10の周囲に来訪する人間に、それぞれの来訪のタイミングに最適なサービスを提供することができる。
【符号の説明】
【0126】
10:ロボット
11:頭
12:胴体
18:腕
19:足
24:撮像カメラ
211:第1の動作モジュール
212:第2の動作モジュール
213:第3の動作モジュール
214:第4の動作モジュール
215:モータ駆動部
216:モータコマンド制御部
217:顔検知部
218:注意/興味判断部
219:接触検知部
222:目的設定部
231a:コマンド格納部
231b:コマンド格納部
231c:コマンド格納部
231d:コマンド格納部
231e:コマンド格納部
231f:コマンド格納部
240:第5の動作モジュール
250:第6の動作モジュール
【技術分野】
【0001】
開示の技術は、人間にサービスを提供するロボット、ロボットの制御方法及び制御プログラムに関する。
【背景技術】
【0002】
例えば、生物的態様のロボットと人間との間で親和的関係を構築するために、ロボットに、ロボットの本能や内部状態から発生する生物感を想起させる自発的な振る舞いや、人間もしくは物体を追従する視線追従を実行させることで、ロボットを擬人化する試みがなされている。
【0003】
ロボットと人間との親和性を活用したサービスでは、人間の注意や興味をロボットに引き付けることが重要となる。このため、ロボットに、自身の存在に気付かせるための「呼びかけ」や「しぐさ」を実行させる技術が開発されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−18529
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、人間の注意や興味を引き付けるための「呼びかけ」や「しぐさ」は、人間に強制感を与え、時として人間に迷惑・邪魔といった心理を与えることがある。
【0006】
開示の技術は、注意や興味を引き付けるための「呼びかけ」や「しぐさ」等により人間が感じる強制感を抑制するロボット装置、ロボットの制御方法及び制御プログラムを提供する。
【課題を解決するための手段】
【0007】
開示の技術の一観点によれば、胴体部と、視覚センサが搭載される頭部と、を有するロボット本体と、前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知する第1の検知部と、前記胴体部に第1の動作を実行させる第1の動作モジュールと、前記胴体部に前記第1の動作を実行させているときに、前記第1の検知部が前記人物を検知した場合、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させる第2の動作モジュールと、を備えるロボットが提供される。
【発明の効果】
【0008】
開示の技術によれば、ロボットに注意や興味を引き付けるための「呼びかけ」や「しぐさ」により人間が感じる強制感を抑制することができる。
【図面の簡単な説明】
【0009】
【図1】第1の実施形態にかかるロボットの概略図である。
【図2】第1の実施形態にかかるロボットのハードウェアの構成図である。
【図3】第1の実施形態にかかるコントローラの機能ブロック図である。
【図4】第1の実施形態にかかる優先度テーブルの概略図である。
【図5】第1の実施形態にかかるコントローラによる処理のフローチャートである。
【図6】第1の実施形態にかかるモータの動作状態を説明する概略図である。
【図7】第1の実施形態の変形例にかかるモータの動作状態を説明する概略図である。
【図8】第2の実施形態にかかるコントローラの機能ブロック図である。
【図9】第2の実施形態にかかるコントローラによる処理のフローチャートである。
【図10】第3の実施形態にかかるコントローラによる処理のフローチャートである。
【図11】第4の実施形態にかかるコントローラの機能ブロック図である。
【図12】第4の実施形態にかかるコントローラによる処理のフローチャートである。
【発明を実施するための形態】
【0010】
[第1の実施形態]
以下、図1−図6を参照しながら、第1の実施形態を説明する。
【0011】
例えば介護ロボットや教育ロボット等の、人間とのインタラクションをはかる動物型のコミュニケーションロボットは、生き物らしさ(即ち、機械的ではない動作)や、人間との触れ合い感を表現することが望まれる。
【0012】
本実施形態では、これを実現するために、ロボットのアーキテクチャとして、いわゆる包摂アーキテクチャ(Subsumption Architecure)を採用する。包摂アーキテクチャは、複数の動作モジュールからの制御コマンド、例えばモータコマンドを調停して、コミュニケーションロボットに自然な動作を表現させるものである。但し、本発明は、これに限定されるものはなく、あらゆるロボットアーキテクチャにより実現しても良い。又、以下の説明は、本発明を実施するための一例に過ぎず、具体的な実施形態は、種々の態様をとりうるものとする。
【0013】
(ロボット10の概略構成)
図1は、第1の実施形態にかかるロボットの概略図であって、(a)はロボット10の正面、(b)はロボット10の側面、をそれぞれ示している。
【0014】
図1に示すように、本実施形態にかかるロボット10は、クマ型のインタラクションロボットであって、頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19を備える。なお、頭11、目13、瞼14、鼻15、口16、耳17をまとめて頭部と呼称し、胴体12、腕18、足19をまとめて胴体部と呼称する。
【0015】
頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19(以下、これらをまとめてロボット10の各部と呼称する)は、モータ23a、23b、23c…(後述する)の駆動力に基づき、個別に動作することができる。ロボット10の各部の動作態様は、特に限定されるものではないが、例えば、頭11は、モータ23aにより胴体12の体軸Cを中心として左右方向に回転する。
【0016】
(ロボット10のハードウェア)
図2は、第1の実施形態にかかるロボット10のハードウェアの構成図である。
【0017】
図2に示すように、本実施形態にかかるロボット10は、コントローラ21と、メモリ22と、複数のモータ23a、23b、23c…と、撮像カメラ(視覚センサ)24と、タッチセンサ25と、フラッシュメモリ26と、を備える。
【0018】
コントローラ21、メモリ22、モータ23a、23b、23c…、撮像カメラ24、タッチセンサ25、フラッシュメモリ26は、例えばバス27により相互に接続されている。
【0019】
コントローラ21は、フラッシュメモリ26に格納された各種プログラムを読み出して、メモリ22に展開するとともに、該メモリ22に展開された各種プログラムを実行することで、後述する各種機能を実現する。
【0020】
メモリ22は、コントローラ21によりフラッシュメモリ26から読み出された各種プログラム、コントローラ21により各種機能が実行されるときに使用されるデータ、撮像カメラ24により取得された画像データ、などを記憶する。
【0021】
モータ23a、23b、23c…は、それぞれロボット10に内蔵され、例えば頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19などを動作させる。モータ23a、23b、23c…の種類は、特に限定されるものではないが、本実施形態では、サーボモータを使用している。このため、頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19は、それぞれ指定された方向に、指定された角度だけ、指定された時間をかけて動作することができる。
【0022】
なお、本実施形態では、3つのモータ23a、23b、23c…のみを図示しているが、ロボット10は、頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19などを動作させるために必要な個数のモータを備える。
【0023】
撮像カメラ24は、ロボット10の鼻15に内蔵され、鼻15の前方を撮影する。撮像カメラ24としては、例えばCCD(Charge Coupled Device Image Sensor)を用いても良い。撮像カメラ24により撮像された画像データは、それぞれの撮像時刻と対応づけられて、例えばメモリ22もしくはフラッシュメモリ26に格納される。
【0024】
タッチセンサ25は、例えばロボット10の胴体12の表面、即ち体表に相当する位置に配置され、例えば人間によりタッチされたことを検知する。タッチセンサ25としては、例えば圧力センサを用いても良い。
【0025】
フラッシュメモリ26は、ロボット10の動作を制御するための各種プログラムを記憶する。なお、本実施形態では、フラッシュメモリ26を使用しているが、各種プログラムを記憶できる不揮発性メモリであれば、これに限定されるものではない。
【0026】
(コントローラ21の機能ブロック図)
図3は、第1の実施形態にかかるコントローラ21の機能ブロック図である。
【0027】
図3に示すように、本実施形態にかかるコントローラ21は、第1の動作モジュール211と、第2の動作モジュール212と、第3の動作モジュール213と、第4の動作モジュール214と、モータ駆動部(動作駆動部)215と、モータコマンド制御部(動作制御部)216と、顔検知部(第1の検知部)217と、注意/興味判断部(第2の検知部)218と、接触検知部219と、時刻管理部220と、電源管理部221と、目的設定部222と、を備える。
【0028】
第1の動作モジュール211、第2の動作モジュール212、第3の動作モジュール213、第4の動作モジュール214、モータ駆動部215、モータコマンド制御部216、顔検知部217、注意/興味判断部218、接触検知部219、時刻管理部220、電源管理部221、目的設定部222は、何れもメモリ22に展開された制御プログラムに基づき、コントローラ21により実現される。
【0029】
第1の動作モジュール211は、電源管理部221から電源投入情報が通知された場合、ロボット10に、いわゆる自発動作を実行させるための第1のモータコマンドを生成する。
【0030】
自発動作は、人間がロボット10の周囲に来訪するまでの待機時間に実行される、例えば生き物らしさや、人間との触れ合いを演出するための動作である。自発動作の態様は、特に限定されるものではないが、少なくとも頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19の少なくとも1つを動作させる態様とされる。
【0031】
第1のモータコマンドは、事前に設定された自発動作の動作シーケンス(以下、第1の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に自発動作を実行させる。
【0032】
なお、第1の動作モジュール211は、ロボット10の内部状態もしくは撮像カメラ24により取得された画像データ等に基づき、自発動作のタイプを決定し、該タイプに対応する第1のモータコマンドを生成しても良い。
【0033】
第2の動作モジュール212は、顔検知部217によりロボット10の周囲に人間がいることが検知された場合、即ち顔検知部217から人物検知情報が通知された場合、ロボット10に、いわゆる引き付け動作を実行させるための第2のモータコマンドを生成する。
【0034】
引き付け動作は、人間の注意や興味をロボット10に引き付ける動作であって、例えば静止動作及び追従動作を含む。
【0035】
静止動作は、それまで実行されていたロボット10の自発動作を停止させる動作である。例えば、自発動作として、腕18及び足19を動作させていた場合、腕18及び足19の動作を、事前に決められた第1の時間(後述する)だけ停止させる。
【0036】
追従動作は、静止動作の終了後に連続的に実行され、例えば頭11を胴体12の体軸Cを中心に回転させて、左右の目13により、例えば人間を追従する動作である。このとき、ロボット10の頭11以外の部位は、静止状態を継続する。従って、追従動作を実行しているときは、頭11だけが動作することになる。なお、本実施形態では、頭11を胴体12の体軸Cを中心に回転させているが、例えば左右の目13を動作させることで、例えば歩行中の人間を追従しても良い。
【0037】
第2のモータコマンドは、事前に設定された静止動作及び追従動作の動作シーケンス(以下、第2の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に静止動作及追従動作を実行させる。
【0038】
詳細には、第2の動作シーケンスは、事前に決められた第1の時間(後述する)だけ静止動作を実行する複数のモータコマンドと、静止動作の終了後、追従動作を実現する複数のモータコマンドと、を含み、これらのモータコマンドが、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10が静止動作及び追従動作を連続的に実行するのである。
【0039】
第2の動作シーケンスに於いて、静止動作を継続する時間は、時刻管理部220により管理される。即ち、顔検知部217によりロボット10の周囲の人間を検知された時刻を始点としてタイムカウントを開始し、タイムカウント値が、事前に決められた第1の時間(後述する)を超えた時点で静止動作が終了する。
【0040】
第3の動作モジュール213は、ロボット10が人間の注意もしくは興味を引き付けた場合、即ち注意/興味判断部218(後述する)から注意/興味検知情報が通知された場合、ロボット10に、いわゆる提供動作を実行させるための第3のモータコマンドを生成する。
【0041】
提供動作は、人間に提供すべきサービスごとに定められている。提供動作の態様は、特に限定されるものではないが、例えば近所のスーパーの安売り情報や、急激な天候変化に関する情報などを提示する場合には、腕18や足19を動かすような態様としても良い。
【0042】
第3のモータコマンドは、事前に設定された提供動作の動作シーケンス(以下、第3の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に提供動作を実行させる。
【0043】
第4の動作モジュール214は、接触検知部219により生成された接触検知情報が通知された場合、ロボット10に、いわゆる反応動作を実行させるための第4のモータコマンドを生成する。反応動作の態様は、特に限定されるものではないが、例えば腕18や足19を動かして、まるで触れられて喜んでいる様な態様としても良い。
【0044】
第4のモータコマンドは、事前に設定された反応動作の動作シーケンス(以下、第4の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に反応動作を実行させる。
【0045】
モータ駆動部215は、コマンド格納部231a、231b、231c、231d(後述する)に格納されたモータコマンドを受け取り、それぞれのモータコマンドに対応するモータ23a、23b、23c…を駆動する。このとき、モータ駆動部215は、動作調停情報管理部232の優先度テーブル(後述する)に基づき、優先度が高い動作モジュールにより生成されたモータコマンドを優先的に実行する。
【0046】
なお、モータコマンドは、駆動すべき対象のモータ23a、23b、23c…のモータID、モータ軸の回転方向、モータ軸の目標角度、目標角度に到達するまでの時間、などの制御情報を含む。このため、モータ駆動部215は、モータ格納部231a、231b、231c、231dから取得したモータコマンドに基づき、駆動すべきモータ23a、23b、23c…の駆動軸を、指定された回転方向に、指定された目標角度まで、指定された時間をかけて、回転させる。
【0047】
モータコマンド制御部216は、コマンド受信部230と、コマンド格納部231a、231b、231c、231dと、動作調停情報管理部232と、を備える。
【0048】
コマンド受信部230は、第1、第2、第3、第4の動作モジュール211、212、213、214により生成されたモータコマンドを受け取り、それぞれのモータコマンドを生成した動作モジュールに対応するコマンド格納部231a、231b、231c、231dに振り分ける。例えば、第1の動作モジュール211により生成されたモータコマンドは、第1の動作モジュール211に対応するコマンド格納部231aに振り分けられる。
【0049】
コマンド格納部231a、231b、231c、231dは、それぞれ動作モジュール211、212、213、214ごとに用意されている。コマンド格納部231a、231b、231c、231dは、コマンド受信部230により振り分けられたモータコマンドを、それぞれの開始時刻に対応づけて記憶している。
【0050】
コマンド格納部231a、231b、231c、231dに格納されたモータコマンドは、それぞれ動作調停情報管理部232に管理されている優先度テーブル(後述する)に基づき、優先度の高い動作モジュールにより生成されたモータコマンドから順番に、それぞれのモータ23a、23b、23c…に通知される。従って、全てのコマンド格納部231a、231b、231c、231dにモータコマンドが格納されている場合、優先度が最も高い動作モジュールによる動作シーケンスが実行される。
【0051】
動作調停情報管理部232は、第1、第2、第3、第4の動作モジュール211、212、213、214と、それぞれの優先度P4、P3、P2、P1と、を対応づける優先度テーブルを管理している。このため、コマンド格納部231a、231b、231c、231dのそれぞれに、第1、第2、第3、第4の動作モジュール211、212、213、214により生成されたモータコマンドが格納されていても、モータ駆動部215は、優先的に実行すべきモータコマンドを特定することができる。さらに、動作調停情報管理部232は、第1、第2、第3、第4の動作モジュール211、212、213、214の実行状況を管理する。但し、第1、第2、第3、第4の動作モジュール211、212、213、214の実行状況は、動作調停情報管理部232とは異なる実行状況管理部(図示しない)により管理しても良い。
【0052】
図4は、第1の実施形態にかかる優先度テーブルの概念図である。
【0053】
図4に示すように、本実施形態にかかる優先度テーブルは、第1の動作モジュール211に優先度P4(P4:priority 4)が対応づけられ、第2の動作モジュール212に優先度P3(P3:priority 3)が対応づけられ、第3の動作モジュール213に優先度P2(P2:priority 2)、第4の動作モジュール214に優先度P1(P1:priority 1)、がそれぞれ対応づけられている。
【0054】
従って、例えばコマンド格納部231aに、第1の動作モジュール211により生成されたモータコマンドが格納され、コマンド格納部231bに、第2の動作モジュール212により生成されたモータコマンドが格納されている場合、モータ駆動部215は、優先度が高い第2の動作モジュール212により生成されたモータコマンドを実行する。さらに、第1の動作モジュール211により生成されたモータコマンドが実行されているときに、コマンド格納部231bに、第2の動作モジュール212により生成されたモータコマンドが格納されると、モータ駆動部215は、動作調停情報管理部232に管理されている優先度テーブルに基づき、第1の動作モジュール211による第1の動作シーケンスの実行を停止して、代わりに、第2の動作モジュール212による第2の動作シーケンスの実行を開始する。
【0055】
顔検知部217は、撮像カメラ24により取得された画像データに基づき、ロボット10の周囲の人間を検知する。さらに、顔検知部217は、ロボット10の周囲に人間の顔を検知した場合、人物を検知したことを意味する人物検知情報を生成して、該人物検知情報を第1、第2、第3、第4の動作モジュール211、212、213、214に通知する。顔検知法としては、例えば公知の顔認識技術を使用すれば良い。なお、顔検知部217は、撮像カメラ24により逐次取得される画像データごとに、ロボット10の周囲の人間を検知しても良い。
【0056】
注意/興味判断部218は、撮像カメラ24により取得された画像データに基づき、ロボット10及び人間の視線一致度を算出する。視線一致度の算出法は、公知の視線確認法を使用すれば良い。ロボット10及び人間の視線一致度が閾値を超えた場合、注意/興味判断部218は、ロボット10及び人間の視線が一致したことを意味する視線一致情報を生成して、該視線一致情報を第1、第2、第3、第4の動作モジュール211、212、213、214に通知する。
【0057】
接触検知部219は、タッチセンサ25がロボット10への接触を検知した場合、ロボット10が接触されたことを意味する接触検知情報を生成して、該接触検知情報を第1、第2、第3、第4の動作モジュール211、212、213、214に通知する。
【0058】
時刻管理部220は、第1、第2、第3、第4の動作モジュール211、212、213、214が第1、第2、第3、第4の動作シーケンスを実行するための時間を管理している。例えば、時刻管理部220は、顔検知部217によりロボット10の周囲の人間が検知されたことをトリガとしてタイムカウントを開始して、タイムカウント値が、事前に決められた第1の時間もしくは第2の時間を超えたかどうか判断する。第1の時間は、第2の動作モジュール212による静止動作の継続時間の閾値である。第2の時間は、注意/興味判断部218による、人間の注意や興味をロボット10に引き付けるまでの経過時間の閾値である。
【0059】
電源管理部221は、電源スイッチ(図示しない)のON/OFFを管理していて、例えば電源スイッチが投入されると、第1、第2、第3、第4の動作モジュール211、212、213、214に、電源が投入されたことを意味する電源投入情報を通知する。
【0060】
目的設定部222は、例えば人間に提供すべきサービスに関する情報(以下、サービス情報とする)をサーバSから受け取り、該サービス情報をメモリ22に記憶させる。ロボット10は、該サービスを人間に提供する、という目的のために、人間の注意や興味を引き付けるのである。サービスは、特に限定されるものではないが、例えば、近所のスーパーの安売り情報や急激な天候変化に関する情報など、利用者に有益と思われる情報の提供を想定している。又、サービスとして、人間を元気づけるための踊りの披露を用いても良い。なお、目的設定部222は、定期的にサーバSにアクセスして、利用者に有益なサービス情報の発生の有無を確認しても良い。又、サービス情報が発生するたびに、サーバSから目的設定部222に、サービス情報の発生を通知する仕組みとしても良い。さらに、目的設定部222は、例えばサーバSからのサービス情報をメモリ22に記憶させた場合、ロボット10に目的を設定したことを意味する目的設定情報を生成して、該目的設定情報を第1、第2、第3、第4の動作モジュール211、212、213、214に通知する。
【0061】
(コントローラ21による処理フロー)
図5は、第1の実施形態にかかるコントローラ21による処理のフローチャートである。図6は、第1の実施形態にかかるモータの動作状態を説明する概略図である。なお、図6中の曲線は、それぞれ、図中左側に記載されている耳17、瞼14、口15、頭11、右腕18、左腕18、右足19、左足19を駆動するためのモータに対応している。又、図6中の横軸は時間、縦軸はモータの動作量(電流値)、をそれぞれ示している。
【0062】
本実施形態にかかるコントローラ21による処理フローは、電源スイッチ(図示しない)が投入されて、第1の動作モジュール211に電源管理部221から電源投入情報が通知された時点で開始される。
【0063】
本実施形態にかかる処理フローが開始したら、図5に示すように、目的設定部222は、例えばサーバSからサービス情報を取得して、該サービス情報をメモリ22に記憶させる(ステップS101)。但し、サーバSにサービス情報が存在しない場合、目的設定部222は、必ずしもサービス情報を取得しなくても良い。
【0064】
次に、第1の動作モジュール211は、ロボット10に自発動作を実行させるための第1のモータコマンドを生成する。コマンド受信部230は、第1の動作モジュール211により生成された第1のモータコマンドを受け取り、コマンド格納部231aに格納する。モータ駆動部215は、動作調停情報管理部232により管理されている優先度テーブルに基づき、コマンド格納部231a、231b、231c、231dの何れかに格納されたモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。ここでは、コマンド格納部231aは、第1の動作モジュール211により生成された第1のモータコマンドを格納しているが、コマンド格納部231b、231c、231dは、何れもモータコマンドを格納していない。従って、モータ駆動部215は、動作調停情報管理部232により管理された優先度テーブルに基づき、コマンド格納部231aに格納された第1のモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。これにより、ロボット10は、第1の動作シーケンスに従い、自発動作を開始する(ステップS102)。なお、図6に示すように、ロボット10の自発動作時には、ロボット10の各部を動作させる複数のモータが動作していることがわかる(図中の「自発動作状態」参照)。
【0065】
次に、顔検知部217は、撮像カメラ24により取得された画像データに基づき、ロボット10の周囲に人間が存在するか判断する(ステップS103)。このとき、顔検知部217は、公知の顔認識技術を利用して、ロボット10から所定距離内に存在する人間だけを検知しても良い。
【0066】
顔検知部217によりロボット10の周囲に人間が存在すると判断されたら(ステップS103のYes)、第2の動作モジュール212は、静止動作及び追従動作を実行させるための第2のモータコマンドを生成する。コマンド受信部230は、第2の動作モジュール212により生成された第2のモータコマンドを受け取り、コマンド格納部231bに格納する。モータ駆動部215は、動作調停情報管理部232により管理されている優先度テーブルに基づき、コマンド格納部231a、231b、231c、231dの何れかに格納されたモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。ここでは、コマンド格納部231aは、第1の動作モジュール211により生成された第1のモータコマンドを、コマンド格納部231bは、第2の動作モジュール212により生成された第2のモータコマンドを、それぞれ格納している。しかし、コマンド格納部231c、231dは、何れもモータコマンドを格納していない。従って、モータ駆動部215は、コマンド格納部231aに格納された第1のモータコマンド及びコマンド格納部231bに格納された第2のモータコマンドのうち、優先度が高い第2のモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。これにより、ロボット10は、第2の動作シーケンスに従い、引き付け動作を実行する(ステップS104)。引き付け動作は、静止動作(ステップS104a)及び追従動作(ステップS104b)を含み、人間の注意や興味をロボット10に引き付けるための動作である。
【0067】
即ち、第2のモータコマンドによりモータ23a、23b、23c…を駆動することで、ロボット10は、事前に決められた第1の時間だけ、該ロボット10の部位の動作を静止させる静止動作を実行するとともに、静止動作の終了時を始点として、例えば頭11を胴体12の体軸Cを中心に回転させて、左右の目13により人間を追従する追従動作を実行する。なお、図6に示すように、ロボット10の引き付け動作時には、耳17、瞼14、15、頭11を動作させるためのモータだけが動作し、右腕18、左腕18、右足19、左足19を動作させるためのモータが停止していることがわかる(図中の「引き付け動作状態」参照)。
【0068】
又、顔検知部217によりロボット10の周囲に人間が存在すると判断されたら(ステップS103のYes)、時刻管理部220は、人間が検知されたことをトリガとして、タイムカウントを開始する。
【0069】
一方、顔検知部217によりロボット10の周囲に人間が存在すると判断されなければ(ステップS103のNo)、目的設定部222は、再度、例えばサーバSからサービス情報を取得して、該サービス情報をメモリ22に記憶させる(ステップS101)。
【0070】
次に、注意/興味判断部218は、人間の注意や興味をロボット10に引き付けたかどうか判断する(ステップS105)。例えば、人間の注意や興味を引き付けたかどうかの判断では、例えばロボット10及び人間の視線一致度と、事前に決められた閾値と、を比較して、視線一致度が閾値を超えた場合に、人間の注意や興味をロボット10に引き付けたと判断すれば良い。さらに、ロボット10及び人間の距離、即ちロボット10への人間の接近の程度に基づき、人間の注意や興味を引き付けたかどうか判断しても良い。
【0071】
人間の注意や興味をロボット10に引き付けたと判断されたら(ステップS105のYes)、第3の動作モジュール213は、メモリ22に記憶されたサービス情報に基づき、人間にサービスを提供、即ち目的動作を実行する(ステップS106)。サービスとして、近所のスーパーの安売り情報や気象情報の提供が設定されている場合、ロボット10は、例えばスピーカ(図示しない)を利用して、これらの情報を通知しても良い。又、サービスとして、人間を元気づけるための踊りの披露が設定されている場合、ロボット10の各部を動作させて、踊りを実演させても良い。なお、図6に示すように、ロボット10の目的動作時には、ロボット10の各部を動作させる複数のモータが動作していることがわかる(図中の「目的動作状態」参照)。ここでは、「目的動作」として、踊りの実演が設定されているときのモータの動作量を示している。
【0072】
次に、動作調停情報管理部232は、モータ駆動部215が目的動作の実行を完了させたかどうか判断する(ステップS107)。動作調停情報管理部232により目的動作の実行が完了したと判断されたら(ステップS107のYes)、処理フローが終了する。一方、動作調停情報管理部232により目的動作の遂行が完了したと判断されなければ(ステップS107のNo)、再度、目的設定部222は、例えばサーバSからサービス情報を取得して、該サービス情報をメモリ22に記憶させる(ステップS101)。
【0073】
一方、人間の注意や興味をロボット10に引き付けたと判断されなければ(ステップS105のNo)、時刻管理部220は、顔検知部217によりロボット10の周囲に存在する人間が検知されてからの経過時間が、事前に決められた第2の時間を超えたかどうか判断する(ステップS108)。
【0074】
経過時間が第2の時間を超えたと判断されたら(ステップS108のYes)、再度、目的設定部222は、例えばサーバSからサービス情報を取得して、該サービス情報をメモリ22に記憶させる(ステップS101)。
【0075】
一方、経過時間が第2の時間を超えたと判断されなければ(ステップS108のNo)、再度、注意/興味判断部218は、人間の注意や興味をロボット10に引き付けたかどうかの判断を継続する(ステップS105)。
【0076】
以上の処理フローを繰り返すことにより、ロボット10の周囲に来訪する人間に、それぞれの来訪のタイミングに最適なサービスを提供することができる。
【0077】
本実施形態によれば、顔検知部217によりロボット10の周囲の人物が検知された場合に、それまで第1の動作モジュール211により実行していた自発動作を、事前に決められた第1の時間だけ停止させるとともに、頭11を胴体12の体軸Cを中心に回転させて、左右の目13により人間を追従させる。
【0078】
即ち、本実施形態では、ロボット10に、例えば人間を発見したときに停止するとともに両目で人間を追従する猫の行動と類似の動作を実行させている。このため、猫に追従されている人間が自然と猫の存在に気づくように、ロボット10に追従されている人間は、自然とロボット10の存在に気づくことになる。これにより、例えばロボット10の存在に気づいていない人間の注意や興味をロボット10に引き付けることができる。
【0079】
又、本実施形態によれば、人間の注意や興味がロボット10に引き付けられたことを確認してから、人間にサービスを提供している。このため、ロボット10に注意や興味を引き付けられていない人間に、即ちロボット10に気づいていない人間に、突然サービスを提供して、人間に不快感を与えることを抑制することができる。
【0080】
なお、本実施形態では、ロボット10前方の情報を取得するために、撮像カメラ24を使用しているが、本発明は、これに限定されるものではない。例えば移動物体を検知する赤外線センサ等を使用しても良い。但し、赤外線センサ等を使用する場合、顔検知部217の代わりに、赤外線センサ等の検出情報に基づき、移動物体を検知する物体検知部(図示しない)を、コントローラ21及び制御プログラムにより実現すれば良い。
【0081】
さらに、本実施形態にかかるロボット10は、該ロボット10への接触を検知するためのタッチセンサ25を備えるが、例えば聴覚センサ等を備えても良い。
【0082】
また、本実施形態では、ロボット10は、第1、第2、第3、第4の動作モジュール211、212、213、214を備えるが、本発明は、これに限定されるものではなく、さらに動作モジュールを追加しても良い。動作モジュールが追加される場合、本実施形態にかかる電源投入情報、人物検知情報、注意/興味検知情報、視線一致情報、接触検知情報、目的設定情報は、該動作モジュールにも通知される。
【0083】
[変形例]
以下、図7を参照しながら、第1の実施形態の変形例を説明する。但し、第1の実施形態と同等の構成や処理については、説明を省略することとする。
【0084】
本変形例にかかる第2の動作モジュール212は、引き付け動作(静止動作及び追従動作)だけでなく、引き付け動作の前に、さらに初期位置動作を実行させるための第2のモータコマンドを生成する。
【0085】
初期位置動作は、それぞれのモータ23a、23b、23c…の駆動軸を、事前に決められた初期位置に移動させる動作である。従って、モータ駆動部215が、第2の動作シーケンスに従い、コマンド格納部231bに格納された第2のモータコマンドを、それぞれのモータ23a、23b、23c…に通知すると、最初にモータ23a、23b、23c…の駆動軸の位置が初期化され、続いて静止動作が開始される。
【0086】
図7は、第1の実施形態の変形例にかかるモータの動作状態を説明する概略図である。なお、図7中の曲線は、それぞれ、図中左側に記載されている耳17、瞼14、口15、頭11、右腕18、左腕18、右足19、左足19を駆動するためのモータに対応している。又、図7中の横軸は時間、縦軸はモータの動作量(電流値)、をそれぞれ示している。
【0087】
図7に示すように、顔検知部217により人間が検知された後も、右腕18、左腕18、右足19、左足19を駆動するためのモータが動作を続け、その後、それぞれのモータの動作量が0、即ちそれぞれのモータ駆動軸が初期位置に移動していることがわかる(図中の範囲A参照)。
【0088】
第1の実施形態では、人間が検知されたときのモータ駆動軸の位置を維持させているが、即ち人間が検知されたときのロボット10の各部の位置(姿勢)を維持させているが、本変形例のように、ロボット10の周辺の人間が検知された場合に、ロボット10の各部の位置(姿勢)を初期位置に移動させても良い。
【0089】
[第2の実施形態]
以下、図8、図9を参照しながら、第2の実施形態を説明する。但し、第1の実施形態と同等の構成や処理については、説明を省略することとする。
【0090】
第2の実施形態は、顔検知部217がロボット10の周囲に存在する人間を検知した場合に、ロボット10に、人間を検知したことを表現するための表情動作を実行させる点で、第1の実施形態と相違する。
【0091】
(コントローラ21の機能ブロック図)
図8は、第2の実施形態にかかるコントローラ21の機能ブロック図である。
【0092】
図8に示すように、本実施形態にかかるコントローラ21は、さらに、第5の動作モジュール240と、コマンド格納部231eと、を備える。
【0093】
第5の動作モジュール240は、第1の動作モジュール211よりも優先度が高く、顔検知部217から人物検知情報が通知された場合、ロボット10に、いわゆる表情動作を実行させるための第5のモータコマンドを生成する。
【0094】
表情動作は、ロボット10の周囲に来訪した人間に、表情の変化を提示する動作である。表情動作の態様は、特に限定されるものではないが、例えば瞼14を開き、耳17を立て、口16を開閉させる態様としても良い。
【0095】
第5のモータコマンドは、事前に設定された表情動作の動作シーケンス(以下、第5の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に表情動作を実行させる。
【0096】
コマンド格納部231eは、第5の動作モジュール240により生成されて、コマンド受信部230により振り分けられるモータコマンドを、それぞれの開始時刻に対応づけて格納している。
【0097】
(コントローラ21による処理フロー)
図9は、第2の実施形態にかかるコントローラ21による処理のフローチャートである。
【0098】
図9に示すように、本実施形態にかかる処理フローでは、顔検知部217によりロボット10の周囲に人間が存在すると判断されたら(ステップS103のYes)、ロボット10に引き付け動作を実行させる前に(ステップS104)、第5の動作モジュール240は、表情動作を実行させるための第5のモータコマンドを生成する。コマンド受信部230は、第5の動作モジュール240により生成された第5のモータコマンドを受け取り、コマンド格納部231eに格納する。モータ駆動部215は、動作調停情報管理部232により管理された優先度テーブルに基づき、コマンド格納部231a、231b、231c、231d、231eの何れかに格納されたモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。このとき、コマンド格納部231aは、第1の動作モジュール211により生成された第1のモータコマンドを、コマンド格納部231eは、第5の動作モジュールにより生成された第1のモータコマンドを、それぞれ格納している。しかし、コマンド格納部231b、231c、231dは、何れもモータコマンドを格納していない。従って、モータ駆動部215は、第1のモータコマンド及び第5のモータコマンドのうち、優先度が高い第5のモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。これにより、ロボット10は、第5の動作シーケンスに従い、表情動作を実行する(ステップS201)。
【0099】
本実施形態によれば、顔検知部217によりロボット10の周囲に存在する人間が検知された場合、ロボット10に引き付け動作を実行させる前に、表情動作を実行させている。このため、ロボット10に気づいていないものの、ロボット10の付近に視線を向けている人間の注意や興味を、より低い刺激でロボット10に引き付けることができる。
【0100】
[第3の実施形態]
以下、図10を参照しながら、第3の実施形態を説明する。但し、第1の実施形態と同等の構成や処理については、説明を省略することとする。
【0101】
第3の実施形態は、顔検知部217により検知されていた人間が消失した場合に、ロボット10に、それまで実行していた引き付け動作を中止させる点で、第1の実施形態と相違する。
【0102】
(コントローラ21による処理フロー)
図10は、第3の実施形態にかかるコントローラ21による処理のフローチャートである。
【0103】
図10に示すように、注意/興味判断部218により人間の注意や興味をロボット10に引き付けたと判断されなければ(ステップS105のNo)、顔検知部217は、撮像カメラ24により逐次取得される画像データに基づき、それまで検知されていた人間が消失したかどうか判断する(ステップS301)。
【0104】
それまで検知されていた人間が消失したと判断されなければ(ステップS301のNo)、再度、注意/興味判断部218は、人間の注意や興味をロボット10に引き付けたかどうかの判断を継続する(ステップS105)。
【0105】
一方、それまで検知されていた人間が消失したと判断されたら(ステップS301のYes)、ロボット10に実行させていた引き付け動作を中止させ、再度、目的設定部222は、例えばサーバSからサービス情報を取得して、メモリ22に該サービス情報を記憶させる(ステップS101)。
【0106】
本実施形態によれば、それまで顔検知部217により検知されていた人間が消失した場合に、ロボット10に実行させていた追従動作を中止させ、再度、目的設定をする。このため、サービスを提供すべき人間が消失したら、即座に、次にロボット10の周囲に来訪する人間へのインタラクションを準備することができる。
【0107】
[第4の実施形態]
以下、図11を参照しながら、第4の実施形態を説明する。但し、第1の実施形態と同等の構成や処理については、説明を省略することとする。
【0108】
第4の実施形態は、例えばサーバSからのサービス情報がメモリ22に記憶されてないときに、ロボット10の周囲に人間が来訪した場合を想定している。このため、第4の実施形態は、顔検知部217がロボット10の周囲に存在する人間を検知してから、ロボット10が引き付け動作を実行するまでの間に、ロボット10に自発追従動作を実行させ、かつ、目的設定部222にサービス情報がメモリ22に記憶されているか判断させる点で、第1の実施形態と相違する。これに付随して、処理フローの開始後の目的設定が省略されている。
【0109】
(コントローラ21の機能ブロック図)
図11は、第4の実施形態にかかるコントローラ21の機能ブロック図である。
【0110】
図11に示すように、本実施形態にかかるコントローラ21は、さらに、第6の動作モジュール250と、コマンド格納部231fと、を備える。
【0111】
第6の動作モジュール250は、第1の動作モジュール211よりも優先度が高く、顔検知部217から人物検知情報が通知され、かつ、目的設定部222から目的設定情報が通知されない場合、ロボット10に、いわゆる自発追従動作を実行させるための第6のモータコマンドを生成する。
【0112】
自発追従動作は、人間の注意や興味をロボット10に引き付ける予備的な動作であって、例えば、自発動作及び追従動作を含む。
【0113】
自発動作は、人間がロボット10の周囲に来訪するまでの待機時間に実行される、例えば生き物らしさや、人間との触れ合いを演出するための動作である。自発動作の態様は、特に限定されるものではないが、少なくとも頭11、胴体12、目13、瞼14、鼻15、口16、耳17、腕18、足19の少なくとも1つを動作させる態様とされる。
【0114】
追従動作は、自発動作と同時に実行され、例えば頭11を胴体12の体軸Cを中心に回転させて、左右の目13により、例えば人間を追従する動作である。なお、本実施形態では、頭11を胴体12の体軸Cを中心に回転させているが、例えば左右の目13を動作させることで、例えば歩行中の人間を追従しても良い。
【0115】
第6のモータコマンドは、事前に設定された自発動作及び追従動作の動作シーケンス(以下、第6の動作シーケンスとする)を実現する複数のモータコマンドを含み、複数のモータコマンドを、それぞれの開始時刻順にモータ駆動部215からモータ23a、23b、23c…に通知することで、ロボット10に自発動作及追従動作を実行させる。
【0116】
コマンド格納部231fは、第6の動作モジュール250により生成されて、コマンド受信部230により振り分けられるモータコマンドを、それぞれの開始時刻に対応づけて格納している。
【0117】
(コントローラ21による処理フロー)
図12は、第4の実施形態にかかるコントローラ21による処理のフローチャートである。
【0118】
本実施形態にかかる処理フローが開始したら、図12に示すように、ロボット10は、第1の動作シーケンスに従い、自発動作を開始する(ステップS102)。
【0119】
次に、顔検知部217は、撮像カメラ24により取得された画像データに基づき、ロボット10の周囲に人間が存在するか判断する(ステップS103)。顔検知部217によりロボット10の周囲に人間が存在すると判断されたら(ステップS103のYes)、第6の動作モジュール250は、自発追従動作、即ち自発動作及び追従動作を実行させるための第6のモータコマンドを生成する。コマンド受信部230は、第6の動作モジュール250により生成された第6のモータコマンドを受け取り、コマンド格納部231fに格納する。モータ駆動部215は、動作調停情報管理部232により管理されている優先度テーブルに基づき、コマンド格納部231a、231b、231c、231d、231fの何れかに格納されたモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。ここでは、コマンド格納部231aは、第1の動作モジュール211により生成された第1のモータコマンドを格納している。しかし、コマンド格納部231b、231c、231dは、何れもモータコマンドを格納していない。従って、モータ駆動部215は、コマンド格納部231aに格納された第1のモータコマンド及びコマンド格納部231fに格納された第6のモータコマンドのうち、優先度が高い第6のモータコマンドを、ロボット10のモータ23a、23b、23c…に通知する。これにより、ロボット10は、第6の動作シーケンスに従い、自発追従動作を実行する(ステップS401)。自発追従動作は、自発動作(ステップS401a)及び追従動作(ステップS401b)を含み、人間の注意や興味をロボット10に引き付けるための予備的な動作である。一方、顔検知部217によりロボット10の周囲に人間が存在すると判断されなければ(ステップS103のNo)、ロボット10は、再度、第1の動作シーケンスに従い、自発動作を開始する(ステップS102)。
【0120】
次に、目的設定部222は、例えばサーバSからのサービス情報がメモリ22に記憶されているか判断する(ステップS402)。例えばサーバSからのサービス情報がメモリ22に記憶されていると判断されたら(ステップS402のYes)、ロボット10は、第2の動作シーケンスに従い、引き付け動作を実行する(ステップS104)。引き付け動作は、静止動作(ステップS104a)及び追従動作(ステップS104b)を含み、人間の注意や興味をロボット10に引き付けるための動作である。一方、例えばサーバSからのサービス情報がメモリ22に記憶されていると判断されたら(ステップS402のNo)、ロボット10は、再度、第6の動作シーケンスに従い、自発追従動作を実行する(ステップS401)。又、例えばサーバSからのサービス情報がメモリ22に記憶されていると判断されたら(ステップS402のYes)、時刻管理部220は、サービス情報がメモリ22に記憶されていると判断されたことをトリガとして、タイムカウントを開始する。
【0121】
次に、注意/興味判断部218は、人間の注意や興味をロボット10に引き付けたかどうか判断する(ステップS105)。人間の注意や興味をロボット10に引き付けたと判断されたら(ステップS105のYes)、第3の動作モジュール213は、メモリ22に記憶されたサービス情報に基づき、人間にサービスを提供、即ち目的動作を実行する(ステップS106)。
【0122】
次に、動作調停情報管理部232は、モータ駆動部215が目的動作の実行を完了させたかどうか判断する(ステップS107)。動作調停情報管理部232により目的動作の実行が完了したと判断されたら(ステップS107のYes)、処理フローが終了する。一方、動作調停情報管理部232により目的動作の遂行が完了したと判断されなければ(ステップS107のNo)、再度、ロボット10は、第1の動作シーケンスに従い、自発動作を開始する(ステップS102)。
【0123】
一方、人間の注意や興味をロボット10に引き付けたと判断されなければ(ステップS105のNo)、時刻管理部220は、顔検知部217によりロボット10の周囲に存在する人間が検知されてからの経過時間が、事前に決められた第3の時間を超えたかどうか判断する(ステップS108)。第3の時間は、目的設定部222が、例えばサーバSからのサービス情報がメモリ22に記憶してから、注意/興味判断部218が、人間の注意や興味をロボット10に引き付けるまでの経過時間の閾値である。
【0124】
経過時間が第3の時間を超えたと判断されたら(ステップS108のYes)、ロボット10は、再度、第2の動作シーケンスに従い、引き付け動作を実行する(ステップS104)。一方、経過時間が第3の時間を超えたと判断されなければ(ステップS108のNo)、ロボット10は、再度、第2の動作シーケンスに従い、引き付け動作を実行する(ステップS104)。
【0125】
本実施形態によれば、例えばサーバSからのサービス情報がメモリ22に記憶されてないときに、ロボット10の周囲に人間が来訪しても、その後、例えばサーバSからのサービス情報がメモリ22に記憶された時点で、人間の注意や興味をロボット10に引き付け、ロボット10の周囲に来訪する人間に、それぞれの来訪のタイミングに最適なサービスを提供することができる。
【符号の説明】
【0126】
10:ロボット
11:頭
12:胴体
18:腕
19:足
24:撮像カメラ
211:第1の動作モジュール
212:第2の動作モジュール
213:第3の動作モジュール
214:第4の動作モジュール
215:モータ駆動部
216:モータコマンド制御部
217:顔検知部
218:注意/興味判断部
219:接触検知部
222:目的設定部
231a:コマンド格納部
231b:コマンド格納部
231c:コマンド格納部
231d:コマンド格納部
231e:コマンド格納部
231f:コマンド格納部
240:第5の動作モジュール
250:第6の動作モジュール
【特許請求の範囲】
【請求項1】
胴体部と、視覚センサが搭載される頭部と、を有するロボット本体と、
前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知する第1の検知部と、
前記胴体部に第1の動作を実行させる第1の動作モジュールと、
前記胴体部に前記第1の動作を実行させているときに、前記第1の検知部が前記人物を検知した場合、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させる第2の動作モジュールと、
を備えるロボット。
【請求項2】
請求項1に記載のロボットに於いて、
前記胴体部は、胴体と上肢又は下肢とを含み、
前記第1の動作モジュールは、前記胴体と前記上肢又は下肢と、のうち少なくとも1つに前記第1の動作を実行させるロボット。
【請求項3】
請求項1又は2に記載のロボットに於いて、さらに、
前記人物の興味を引き付けたことを検知する第2の検知部と、
前記第2の検知部が前記人物の興味を引き付けたことを検知した場合、前記胴体部及び前記頭部の少なくとも1つに、前記人物にサービスを提供する第3の動作を実行させる第3の動作モジュールと、
を備えるロボット。
【請求項4】
請求項1乃至3の何れかに記載のロボットに於いて、
前記第1の検知部は、第1の時刻に前記人物を検知する第1の検知と、前記第1の時刻よりも遅い第2の時刻に前記人物を検知する第2の検知と、を実行し、
さらに、前記第1の検知により検知された前記人物が前記第2の検知により検知されない場合に、前記第2の動作を停止させ、かつ、前記第1の動作を実行させる第4の動作モジュールを備えるロボット。
【請求項5】
胴体部と、視覚センサが搭載される頭部と、を有するロボットの制御方法に於いて、
前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知する工程と、
前記胴体部に第1の動作を実行させる工程と、
前記胴体部に前記第1の動作を実行させているときに、前記人物が検知された場合、プロセッサにより、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させる工程と、
を備えるロボットの制御方法。
【請求項6】
胴体部と、視覚センサが搭載される頭部と、を有するロボットを制御する制御プログラムに於いて、前記プログラムは、コンピュータに、
前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知するステップと、
前記胴体部に第1の動作を実行させるステップと、
前記胴体部に前記第1の動作を実行させているときに、前記人物が検知された場合、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させるステップと、
を実行させる制御プログラム。
【請求項1】
胴体部と、視覚センサが搭載される頭部と、を有するロボット本体と、
前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知する第1の検知部と、
前記胴体部に第1の動作を実行させる第1の動作モジュールと、
前記胴体部に前記第1の動作を実行させているときに、前記第1の検知部が前記人物を検知した場合、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させる第2の動作モジュールと、
を備えるロボット。
【請求項2】
請求項1に記載のロボットに於いて、
前記胴体部は、胴体と上肢又は下肢とを含み、
前記第1の動作モジュールは、前記胴体と前記上肢又は下肢と、のうち少なくとも1つに前記第1の動作を実行させるロボット。
【請求項3】
請求項1又は2に記載のロボットに於いて、さらに、
前記人物の興味を引き付けたことを検知する第2の検知部と、
前記第2の検知部が前記人物の興味を引き付けたことを検知した場合、前記胴体部及び前記頭部の少なくとも1つに、前記人物にサービスを提供する第3の動作を実行させる第3の動作モジュールと、
を備えるロボット。
【請求項4】
請求項1乃至3の何れかに記載のロボットに於いて、
前記第1の検知部は、第1の時刻に前記人物を検知する第1の検知と、前記第1の時刻よりも遅い第2の時刻に前記人物を検知する第2の検知と、を実行し、
さらに、前記第1の検知により検知された前記人物が前記第2の検知により検知されない場合に、前記第2の動作を停止させ、かつ、前記第1の動作を実行させる第4の動作モジュールを備えるロボット。
【請求項5】
胴体部と、視覚センサが搭載される頭部と、を有するロボットの制御方法に於いて、
前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知する工程と、
前記胴体部に第1の動作を実行させる工程と、
前記胴体部に前記第1の動作を実行させているときに、前記人物が検知された場合、プロセッサにより、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させる工程と、
を備えるロボットの制御方法。
【請求項6】
胴体部と、視覚センサが搭載される頭部と、を有するロボットを制御する制御プログラムに於いて、前記プログラムは、コンピュータに、
前記視覚センサにより取得された情報に基づき、前記ロボット本体の周囲の人物を検知するステップと、
前記胴体部に第1の動作を実行させるステップと、
前記胴体部に前記第1の動作を実行させているときに、前記人物が検知された場合、事前に決められた時間だけ前記第1の動作を停止させ、かつ、前記視覚センサが前記人物を追従する様に、前記頭部に第2の動作を実行させるステップと、
を実行させる制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2013−99800(P2013−99800A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2011−243570(P2011−243570)
【出願日】平成23年11月7日(2011.11.7)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願日】平成23年11月7日(2011.11.7)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]