(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
図1(a)は、ロボット100の正面外観図である。
図1(b)は、ロボット100の側面外観図である。
本実施形態におけるロボット100は、外部環境および内部状態に基づいて行動や仕草(ジェスチャー)を決定する自律行動型のロボットである。外部環境は、カメラやサーモセンサなど各種のセンサにより認識される。内部状態はロボット100の感情を表現するさまざまなパラメータとして定量化される。これらについては後述する。
本実施形態のロボット100は、屋内行動が前提とされており、たとえば、オーナー家庭の家屋内を行動範囲とする。以下、ロボット100に関わる人間を「ユーザ」とよび、ロボット100が所属する家庭の構成員となるユーザのことを「オーナー」とよぶ。
【0017】
ロボット100のボディ104は、全体的に丸みを帯びた形状を有し、ウレタンやゴム、樹脂などやわらかく弾力性のある素材により形成される。ロボット100に服を着せてもよい。丸くてやわらかく、手触りのよいボディ104とすることで、ロボット100はユーザに安心感とともに心地よい触感を提供する。
【0018】
ロボット100は、総重量が15キログラム以下、好ましくは10キログラム以下、さらに好ましくは、5キログラム以下である。生後13ヶ月までに、赤ちゃんの過半数は一人歩きを始める。生後13ヶ月の赤ちゃんの平均体重は、男児が9キログラム強、女児が9キログラム弱である。このため、ロボット100の総重量が10キログラム以下であれば、ユーザは一人歩きできない赤ちゃんを抱きかかえるのとほぼ同等の労力でロボット100を抱きかかえることができる。
生後2ヶ月未満の赤ちゃんの平均体重は男女ともに5キログラム未満である。したがって、ロボット100の総重量が5キログラム以下であれば、ユーザは乳児を抱っこするのと同等の労力でロボット100を抱っこできる。
【0019】
適度な重さと丸み、柔らかさ、手触りのよさ、といった諸属性により、ユーザがロボット100を抱きかかえやすく、かつ、抱きかかえたくなるという効果が実現される。同様の理由から、ロボット100の身長は1.2メートル以下、好ましくは、0.7メートル以下であることが望ましい。
本実施形態におけるロボット100にとって、抱きかかえることができるというのは重要なコンセプトである。
【0020】
ロボット100は、車輪102により移動する。2つの車輪102の回転速度や回転方向は個別に制御可能である。また、車輪102をロボット100のボディ104の内部において上方向にスライドさせ、ボディ104に完全格納することもできる。走行時においても車輪102の大部分はボディ104に隠れているが、車輪102がボディ104に完全格納されるとロボット100は移動不可能な状態(以下、「着座状態」とよぶ)となる。着座状態においては、平坦状の着座面108が床面に当接する。
【0021】
ロボット100は、2つの手106を有する。手106には、モノを把持する機能はない。手106は上げる、振る、振動するなど簡単な動作が可能である。2つの手106も個別制御可能である。
目110にはカメラが内蔵される。目110は、液晶素子または有機EL素子による画像表示も可能である。ロボット100は、目110に内蔵されるカメラのほか、集音マイクや超音波センサなどさまざまなセンサを搭載する。また、スピーカーを内蔵し、簡単な音声を発することもできる。
ロボット100の頭部にはツノ112が取り付けられる。上述のようにロボット100は軽量であるため、ユーザはツノ112をつかむことでロボット100を持ち上げることも可能である。
【0022】
図2は、ロボットシステム300の構成図である。
ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。家屋内にはあらかじめ複数の外部センサ114(外部センサ114a、114b、・・・、114n)が設置される。外部センサ114は、家屋の壁面に固定されてもよいし、床に載置されてもよい。サーバ200には、外部センサ114の位置座標が登録される。位置座標は、ロボット100の行動範囲として想定される家屋内においてx,y座標として定義される。
【0023】
サーバ200は、家庭内に設置される。本実施形態におけるサーバ200とロボット100は1対1で対応する。ロボット100の内蔵するセンサおよび複数の外部センサ114から得られる情報に基づいて、サーバ200がロボット100の基本行動を決定する。
外部センサ114はロボット100の感覚器を補強するためのものであり、サーバ200はロボット100の頭脳を補強するためのものである。
【0024】
外部センサ114は、定期的に外部センサ114のID(以下、「ビーコンID」とよぶ)を含む無線信号(以下、「ロボット探索信号」とよぶ)を送信する。ロボット100はロボット探索信号を受信するとビーコンIDを含む無線信号(以下、「ロボット返答信号」とよぶ)を返信する。サーバ200は、外部センサ114がロボット探索信号を送信してからロボット返答信号を受信するまでの時間を計測し、外部センサ114からロボット100までの距離を測定する。複数の外部センサ114とロボット100とのそれぞれの距離を計測することで、ロボット100の位置座標を特定する。
もちろん、ロボット100が自らの位置座標を定期的にサーバ200に送信する方式でもよい。
【0025】
図3は、感情マップ116の概念図である。
感情マップ116は、サーバ200に格納されるデータテーブルである。ロボット100は、感情マップ116にしたがって行動選択する。
図3に示す感情マップ116は、ロボット100の場所に対する好悪感情の大きさを示す。感情マップ116のx軸とy軸は、二次元空間座標を示す。z軸は、好悪感情の大きさを示す。z値が正値のときにはその場所に対する好感が高く、z値が負値のときにはその場所を嫌悪していることを示す。
【0026】
図3の感情マップ116において、座標P1は、ロボット100の行動範囲としてサーバ200が管理する屋内空間のうち好感情が高い地点(以下、「好意地点」とよぶ)である。好意地点は、ソファの陰やテーブルの下などの「安全な場所」であってもよいし、リビングのように人が集まりやすい場所、賑やかな場所であってもよい。また、過去にやさしく撫でられたり、触れられたりした場所であってもよい。
ロボット100がどのような場所を好むかという定義は任意であるが、一般的には、小さな子どもや犬や猫などの小動物が好む場所を好意地点として設定することが望ましい。
【0027】
座標P2は、悪感情が高い地点(以下、「嫌悪地点」とよぶ)である。嫌悪地点は、テレビの近くなど大きな音がする場所、お風呂や洗面所のように濡れやすい場所、閉鎖空間や暗い場所、ユーザから乱暴に扱われたことがある不快な記憶に結びつく場所などであってもよい。
ロボット100がどのような場所を嫌うかという定義も任意であるが、一般的には、小さな子どもや犬や猫などの小動物が怖がる場所を嫌悪地点として設定することが望ましい。
【0028】
座標Qは、ロボット100の現在位置を示す。複数の外部センサ114が定期的に送信するロボット探索信号とそれに対するロボット返答信号により、サーバ200はロボット100の位置座標を特定する。たとえば、ビーコンID=1の外部センサ114とビーコンID=2の外部センサ114がそれぞれロボット100を検出したとき、2つの外部センサ114からロボット100の距離を求め、そこからロボット100の位置座標を求める。
あるいは、ビーコンID=1の外部センサ114は、ロボット探索信号を複数方向に送信し、ロボット100はロボット探索信号を受信したときロボット返答信号を返す。これにより、サーバ200は、ロボット100がどの外部センサ114からどの方向のどのくらいの距離にいるかを把握してもよい。また、別の実施の形態では、車輪102の回転数からロボット100の移動距離を算出して、現在位置を特定してもよいし、カメラから得られる画像に基づいて現在位置を特定してもよい。
図3に示す感情マップ116が与えられた場合、ロボット100は好意地点(座標P1)に引き寄せられる方向、嫌悪地点(座標P2)から離れる方向に移動する。
【0029】
感情マップ116は動的に変化する。ロボット100が座標P1に到達すると、座標P1におけるz値(好感情)は時間とともに低下する。これにより、ロボット100は好意地点(座標P1)に到達して、「感情が満たされ」、やがて、その場所に「飽きてくる」という生物的行動をエミュレートできる。同様に、座標P2における悪感情も時間とともに緩和される。時間経過とともに新たな好意地点や嫌悪地点が生まれ、それによってロボット100は新たな行動選択を行う。ロボット100は、新しい好意地点に「興味」を持ち、絶え間なく行動選択する。
【0030】
感情マップ116は、ロボット100の内部状態として、感情の起伏を表現する。ロボット100は、好意地点を目指し、嫌悪地点を避け、好意地点にしばらくとどまり、やがてまた次の行動を起こす。このような制御により、ロボット100の行動選択を人間的・生物的なものにできる。
【0031】
なお、ロボット100の行動に影響を与えるマップ(以下、「行動マップ」と総称する)は、
図3に示したようなタイプの感情マップ116に限らない。たとえば、好奇心、恐怖を避ける気持ち、安心を求める気持ち、静けさや薄暗さ、涼しさや暖かさといった肉体的安楽を求める気持ち、などさまざまな行動マップを定義可能である。そして、複数の行動マップそれぞれのz値を重み付け平均することにより、ロボット100の目的地点を決定してもよい。
【0032】
ロボット100は、行動マップとは別に、さまざまな感情や感覚の大きさを示すパラメータを有してもよい。たとえば、寂しさという感情パラメータの値が高まっているときには、安心する場所を評価する行動マップの重み付け係数を大きく設定し、目標地点に到達することでこの感情パラメータの値を低下させてもよい。同様に、つまらないという感覚を示すパラメータの値が高まっているときには、好奇心を満たす場所を評価する行動マップの重み付け係数を大きく設定すればよい。
【0033】
図4は、ロボット100のハードウェア構成図である。
ロボット100は、内部センサ128、通信機126、記憶装置124、プロセッサ122、駆動機構120およびバッテリー118を含む。各ユニットは電源線130および信号線132により互いに接続される。バッテリー118は、電源線130を介して各ユニットに電力を供給する。各ユニットは信号線132により制御信号を送受する。バッテリー118は、リチウムイオン二次電池などの二次電池であり、ロボット100の動力源である。
【0034】
内部センサ128は、ロボット100が内蔵する各種センサの集合体である。具体的には、カメラ、集音マイク、赤外線センサ、サーモセンサ、タッチセンサ、加速度センサ、ニオイセンサなどである。ニオイセンサは、匂いの元となる分子の吸着によって電気抵抗が変化する原理を応用した既知のセンサである。ニオイセンサは、さまざまな匂いを複数種類のカテゴリ(以下、「ニオイカテゴリ」とよぶ)に分類する。
【0035】
通信機126は、サーバ200や外部センサ114、ユーザの有する携帯機器など各種の外部機器を対象として無線通信を行う通信モジュールである。記憶装置124は、不揮発性メモリおよび揮発性メモリにより構成され、コンピュータプログラムや各種設定情報を記憶する。プロセッサ122は、コンピュータプログラムの実行手段である。駆動機構120は、車輪102や手106等の各機構を制御するアクチュエータである。
このほかには、表示器やスピーカーなども搭載される。
【0036】
プロセッサ122は、通信機126を介してサーバ200や外部センサ114と通信しながら、ロボット100の行動選択を行う。内部センサ128により得られるさまざまな外部情報も行動選択に影響する。駆動機構120は、主として、車輪102および手106を制御する。駆動機構120は、2つの車輪102それぞれの回転速度や回転方向を変化させることにより、ロボット100の移動方向や移動速度を変化させる。また、駆動機構120は、車輪102を昇降させることもできる。車輪102が上昇すると、車輪102はボディ104に完全に格納され、ロボット100は着座面108にて床面に当接し、着座状態となる。
【0037】
駆動機構120がワイヤ134を介して手106を引っ張ることにより、手106を持ち上げることができる。手106を振動させることで手を振るような仕草も可能である。多数のワイヤ134を利用すればさらに複雑な仕草も表現可能である。
【0038】
図5は、ロボットシステム300の機能ブロック図である。
上述のように、ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。ロボット100およびサーバ200の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部はロボット100により実現されてもよい。
【0039】
(サーバ200)
サーバ200は、通信部204、データ処理部202およびデータ格納部206を含む。通信部204は、外部センサ114およびロボット100との通信処理を担当する。データ格納部206は各種データを格納する。データ処理部202は、通信部204により取得されたデータおよびデータ格納部206に格納されているデータに基づいて各種処理を実行する。データ処理部202は、通信部204およびデータ格納部206のインタフェースとしても機能する。
【0040】
データ格納部206は、動作パターン格納部232、マップ格納部216および個人データ格納部218を含む。動作パターン格納部232は、ロボット100の各種仕草(ジェスチャー)を表現する動作パターンのID(以下、「動作ID」とよぶ)とその選択条件を対応づける。マップ格納部216は、複数の行動マップを格納する。個人データ格納部218は、ユーザ、特に、オーナーの情報を格納する。具体的には、ユーザに対する親密度やユーザの身体的特徴・行動的特徴など各種のパラメータを格納する。年齢や性別などの他の属性情報を格納してもよい。
【0041】
ロボット100はユーザの身体的特徴や行動的特徴に基づいてユーザを識別する。ロボット100は、内蔵のカメラで常時周辺を撮像する。そして、画像に写る人物の身体的特徴と行動的特徴を抽出する。身体的特徴とは、背の高さ、好んで着る服、メガネの有無、肌の色、髪の色、耳の大きさなど身体に付随する視覚的特徴であってもよいし、平均体温や匂い、声質、などその他の特徴も含めてもよい。行動的特徴とは、具体的には、ユーザが好む場所、動きの活発さ、喫煙の有無など行動に付随する特徴である。たとえば、父親として識別されるオーナーは在宅しないことが多く、在宅時にはソファで動かないことが多いが、母親は台所にいることが多く、行動範囲が広い、といった行動上の特徴を抽出する。
ロボット100は、大量の画像情報やその他のセンシング情報から得られる身体的特徴および行動的特徴に基づいて、高い頻度で出現するユーザを「オーナー」としてクラスタリングする。
【0042】
ユーザIDでユーザを識別する方式は簡易かつ確実であるが、ユーザがユーザIDを提供可能な機器を保有していることが前提となる。一方、身体的特徴や行動的特徴によりユーザを識別する方法は画像認識処理負担が大きいものの携帯機器を保有していないユーザでも識別できるメリットがある。2つの方法は一方だけを採用してもよいし、補完的に2つの方法を併用してユーザ特定を行ってもよい。
本実施形態においては、身体的特徴と行動的特徴からユーザをクラスタリングし、ディープラーニング(多層型のニューラルネットワーク)によってユーザを識別する。詳細は後述する。
【0043】
ロボット100は、ユーザごとに親密度という内部パラメータを有する。ロボット100が、自分を抱き上げる、声をかけてくれるなど、自分に対して好意を示す行動を認識したとき、そのユーザに対する親密度が高くなる。ロボット100に関わらないユーザや、乱暴を働くユーザ、出会う頻度が低いユーザに対する親密度は低くなる。
【0044】
データ処理部202は、位置管理部208、マップ管理部210、認識部212、動作判断部222および親密度管理部220を含む。
位置管理部208は、ロボット100の位置座標を、
図2を用いて説明した方法にて特定する。位置管理部208はユーザの位置座標もリアルタイムで追跡してもよい。
【0045】
マップ管理部210は、複数の行動マップについて
図3に関連して説明した方法にて各座標のパラメータを変化させる。マップ管理部210の機能の一部である温度マップ管理部226は、行動マップの一種である温度マップを管理する。温度マップについては後述する。
マップ管理部210は、複数の行動マップのいずれかを選択してもよいし、複数の行動マップのz値を加重平均してもよい。たとえば、行動マップAでは座標R1、座標R2におけるz値が4と3であり、行動マップBでは座標R1、座標R2におけるz値が−1と3であるとする。単純平均の場合、座標R1の合計z値は4−1=3、座標R2の合計z値は3+3=6であるから、ロボット100は座標R1ではなく座標R2の方向に向かう。
行動マップAを行動マップBの5倍重視するときには、座標R1の合計z値は4×5−1=19、座標R2の合計z値は3×5+3=18であるから、ロボット100は座標R1の方向に向かう。
【0046】
認識部212は、外部環境を認識する。外部環境の認識には、温度や湿度に基づく天候や季節の認識、光量や温度に基づく物陰(安全地帯)の認識など多様な認識が含まれる。認識部212は、更に、人物認識部214と応対認識部228を含む。人物認識部214は、ロボット100の内蔵カメラによる撮像画像から人物を認識し、その人物の身体的特徴や行動的特徴を抽出する。そして、個人データ格納部218に登録されている身体特徴情報や行動特徴情報に基づいて、撮像されたユーザ、すなわち、ロボット100が見ているユーザが、父親、母親、長男などのどの人物に該当するかを判定する。人物認識部214は、表情認識部230を含む。表情認識部230は、ユーザの表情を画像認識することにより、ユーザの感情を推定する。
なお、人物認識部214は、人物以外、たとえば、ペットである猫や犬についても特徴抽出を行う。以下、ユーザ、または、オーナーとは、人に限らず、ペットも含まれるものとして説明する。
【0047】
応対認識部228は、ロボット100になされたさまざまな応対行為を認識し、快・不快行為に分類する。応対認識部228は、また、ロボット100の行動に対するオーナーの応対行為を認識することにより、肯定・否定反応に分類する。
快・不快行為は、ユーザの応対行為が、生物として心地よいものであるか不快なものであるかにより判別される。たとえば、抱っこされることはロボット100にとって快行為であり、蹴られることはロボット100にとって不快行為である。肯定・否定反応は、ユーザの応対行為が、ユーザの快感情を示すものか不快感情を示すものであるかにより判別される。たとえば、抱っこされることはユーザの快感情を示す肯定反応であり、蹴られることはユーザの不快感情を示す否定反応である。
【0048】
サーバ200の動作判断部222は、ロボット100の動作判断部150と協働して、ロボット100の動作(移動と仕草)を決定する。動作判断部222は、移動判断部234と行動判断部236を含む。移動判断部234は、マップ管理部210による行動マップ選択に基づいて、ロボット100の移動目標地点とそのための移動ルートを作成する。移動判断部234は、複数の移動ルートを作成し、その上で、いずれかの移動ルートを選択してもよい。行動判断部236は、動作パターン格納部232の複数の動作パターンからロボット100の仕草を選択する。
【0049】
親密度管理部220は、ユーザごとの親密度を管理する。上述したように、親密度は個人データ格納部218において個人データの一部として登録される。親密度管理の詳細は後述する。
【0050】
(ロボット100)
ロボット100は、通信部142、データ処理部136、データ格納部148、駆動機構120、内部センサ128および冷却機構162を含む。
通信部142は、通信機126(
図4参照)に該当し、外部センサ114およびサーバ200との通信処理を担当する。データ格納部148は各種データを格納する。データ格納部148は、記憶装置124(
図4参照)に該当する。データ処理部136は、通信部142により取得されたデータおよびデータ格納部148に格納されているデータに基づいて各種処理を実行する。データ処理部136は、プロセッサ122およびプロセッサ122により実行されるコンピュータプログラムに該当する。データ処理部136は、通信部142、内部センサ128、駆動機構120およびデータ格納部148のインタフェースとしても機能する。
【0051】
内部センサ128は、温度検出部152を含む。
温度検出部152は、ユーザの体温や周辺温度を測定する。温度検出部152は、放射温度計やサーモグラフィーなど非接触型温度センサと、サーミスタや測温抵抗体、熱電対、IC温度センサなどの接触型温度センサを含む。
【0052】
冷却機構162は、ヒートシンクおよびファンを含む。冷却機構162のファンは外気を取り込み、内部にこもる熱を排出する。冷却機構162は、ロボット100の内部の温度に応じて、ファンの回転数を調整することで動作レベルを調整できる。
【0053】
データ格納部148は、ロボット100の各種動作を定義する動作パターン格納部160を含む。
サーバ200の動作パターン格納部160においては、動作IDと動作の選択条件が対応づけられる。たとえば、不快行為を検出したときの動作パターンAの選択確率が動作IDと対応づけて記録される。サーバ200の行動判断部236は、このような選択条件に基づいて動作パターンを選択する。
【0054】
ロボット100の動作パターン格納部160においては、動作IDとその動作を実現するための各種アクチュエータの制御方法が定義される。具体的には、車輪102を収容して着座する、手106を持ち上げる、2つの車輪102を逆回転させることで、あるいは、片方の車輪102だけを回転させることでロボット100を回転行動させる、車輪102を収納した状態で車輪102を回転させることで震える、ユーザから離れるときにいったん停止して振り返る、などのさまざまな仕草を表現するために、各種アクチュエータ(駆動機構120)の動作タイミング、動作時間、動作方向などが動作パターンごとに時系列定義される。
【0055】
データ処理部136は、認識部156と動作判断部150を含む。ロボット100の動作判断部150は、サーバ200の動作判断部222と協働してロボット100の動作を決める。動作判断部150は、移動判断部138および行動判断部140を含む。
駆動機構120は、移動駆動部144と行動駆動部146を含む。移動判断部138は、サーバ200の移動判断部234とともにロボット100の移動方向を決める。行動マップに基づく移動をサーバ200で決定し、障害物をよけるなどの即時的移動をロボット100の移動判断部138により決定してもよい。移動駆動部144は、移動判断部138の指示にしたがって車輪102を駆動することで、ロボット100を移動目標地点に向かわせる。
ロボット100の移動方向の大枠を決めるのは行動マップであるが、ロボット100は親密度に対応した行動も可能である。
【0056】
サーバ200の行動判断部236により選択された動作IDはロボット100に伝えられ、ロボット100の行動判断部140は動作IDに対応する動作パターンを行動駆動部146に実行指示する。
【0057】
なお、一部の複雑な動作パターンをサーバ200により決定し、それ以外の動作パターンをロボット100により決定してもよい。あるいは、サーバ200において基本の動作パターンを決定し、ロボット100において追加の動作パターンを決定してもよい。動作パターンの決定処理をサーバ200およびロボット100においてどのように分担するかはロボットシステム300の仕様に応じて設計すればよい。
【0058】
行動判断部140は、親密度の高いユーザが近くにいるときには「抱っこ」をせがむ仕草として両方の手106をもちあげる仕草を実行することもできるし、「抱っこ」に飽きたときには車輪102を収容したまま逆回転させることで抱っこをいやがる仕草を表現することもできる。行動駆動部146は、行動判断部140からの指示にしたがって車輪102や手106を駆動することで、ロボット100にさまざまな仕草を表現させる。
【0059】
認識部156は、内部センサ128から得られた外部情報を解釈する。認識部156は、視覚的な認識(視覚部)、匂いの認識(嗅覚部)、音の認識(聴覚部)、触覚的な認識(触覚部)が可能である。
認識部156は、内蔵カメラ(内部センサ128)により定期的に外界を撮像し、人やペットなどの移動物体であるユーザを検出する。これらの特徴はサーバ200に送信され、サーバ200の人物認識部214は移動物体の身体的特徴を抽出する。また、ユーザの匂いやユーザの声も検出する。匂いや音(声)は既知の方法にて複数種類に分類される。また、温度検出部152により、触られたときの温度も検出できる。
【0060】
ロボット100に対する強い衝撃が与えられたとき、認識部156は内蔵の加速度センサによりこれを認識し、サーバ200の応対認識部228は、近隣にいるユーザによって「乱暴行為」が働かれたと認識する。ユーザがツノ112を掴んでロボット100を持ち上げるときにも、乱暴行為と認識してもよい。ロボット100に正対した状態にあるユーザが特定音量領域および特定周波数帯域にて発声したとき、サーバ200の応対認識部228は、自らに対する「声掛け行為」がなされたと認識してもよい。また、体温程度の温度を検知したときにはユーザによる「接触行為」がなされたと認識し、接触認識した状態で上方への加速度を検知したときには「抱っこ」がなされたと認識する。ユーザがボディ104を持ち上げるときの物理的接触をセンシングしてもよいし、車輪102にかかる荷重が低下することにより抱っこを認識してもよい。
【0061】
このように、サーバ200の応対認識部228は、ロボット100に対するユーザの各種応対を認識する。これらの各種応対行為のうち一部の典型的な応対行為には、快または不快、肯定または否定が対応づけられる。一般的には快行為となる応対行為のほとんどは肯定反応であり、不快行為となる応対行為のほとんどは否定反応となる。快・不快行為は親密度に関連し、肯定・否定反応はロボット100の行動選択に影響する。
検出・分析・判定を含む一連の認識処理は、サーバ200の認識部212だけで行ってもよいし、ロボット100の認識部156だけで行ってもよいし、双方が役割分担をしながら上記認識処理を実行してもよい。
認識部156により認識された応対行為に応じて、サーバ200の親密度管理部220はユーザに対する親密度を変化させる。原則的には、快行為を行ったユーザに対する親密度は高まり、不快行為を行ったユーザに対する親密度は低下する。
【0062】
サーバ200の認識部212は、応対に応じて快・不快を判定し、マップ管理部210は「場所に対する愛着」を表現する行動マップにおいて、快・不快行為がなされた地点のz値を変化させてもよい。たとえば、リビングにおいて快行為がなされたとき、マップ管理部210はリビングに好意地点を高い確率で設定してもよい。この場合、ロボット100はリビングを好み、リビングで快好意を受けることで、ますますリビングを好む、というポジティブ・フィードバック効果が実現する。
【0063】
サーバ200の人物認識部214は、外部センサ114または内部センサ128から得られた各種データから移動物体を検出し、その特徴(身体的特徴と行動的特徴)を抽出する。そして、これらの特徴に基づいて複数の移動物体をクラスタ分析する。移動物体としては、人間だけでなく、犬や猫などのペットが分析対象となることがある。
【0064】
ロボット100は、定期的に画像撮影を行い、人物認識部214はそれらの画像から移動物体を認識し、移動物体の特徴を抽出する。移動物体を検出したときには、ニオイセンサや内蔵の集音マイク、温度センサ等からも身体的特徴や行動的特徴が抽出される。たとえば、画像に移動物体が写っているとき、ひげが生えている、早朝活動している、赤い服を着ている、香水の匂いがする、声が大きい、メガネをかけている、スカートを履いている、白髪である、背が高い、太っている、日焼けしている、ソファにいる、といったさまざまな特徴が抽出される。
【0065】
ひげが生えている移動物体(ユーザ)は早朝に活動すること(早起き)が多く、赤い服を着ることが少ないのであれば、早起きでひげが生えていて赤い服をあまり着ないクラスタ(ユーザ)、という第1のプロファイルができる。一方、メガネをかけている移動物体はスカートを履いていることが多いが、この移動物体にはひげが生えていない場合、メガネをかけていてスカートを履いているが絶対ひげは生えていないクラスタ(ユーザ)、という第2のプロファイルができる。
以上は、簡単な設例であるが、上述の方法により、父親に対応する第1のプロファイルと母親に対応する第2のプロファイルが形成され、この家には少なくとも2人のユーザ(オーナー)がいることをロボット100は認識する。
【0066】
ただし、ロボット100は第1のプロファイルが「父親」であると認識する必要はない。あくまでも、「ひげが生えていて早起きすることが多く、赤い服を着ることはめったにないクラスタ」という人物像を認識できればよい。
【0067】
このようなクラスタ分析が完了している状態において、ロボット100が新たに移動物体(ユーザ)を認識したとする。
このとき、サーバ200の人物認識部214は、ロボット100から得られる画像等のセンシング情報から特徴抽出を行い、ディーブラーニング(多層型ニューラルネットワーク)により、ロボット100の近くにいる移動物体がどのクラスタに該当するかを判断する。たとえば、ひげが生えている移動物体を検出したとき、この移動物体は父親である確率が高い。この移動物体が早朝行動していれば、父親に該当することはいっそう確実である。一方、メガネをかけている移動物体を検出したときには、この移動物体は母親である可能性もある。この移動物体にひげが生えていれば、母親ではなく父親でもないので、クラスタ分析されていない新しい人物であると判定する。
特徴抽出によるクラスタの形成(クラスタ分析)と、特徴抽出にともなうクラスタへの当てはめ(ディープラーニング)は同時並行的に実行されてもよい。
移動物体(ユーザ)からどのような行為をされるかによってそのユーザに対する親密度が変化する。
【0068】
親密度管理部220は、クラスタリングされた各ユーザに対する親密度を増減させる。親密度は、主として(1)検出(視認)、(2)物理的接触、(3)声掛け、により変化する。
【0069】
(1)検出
ロボット100の撮影画像に幼児が検出された場合、幼児はロボット100に「視認」される。より具体的には、撮影画像から得られる特徴情報と撮影時にニオイセンサ等から得られる他の特徴情報に基づくディープラーニングにより、検出した移動物体の特徴が幼児のクラスタ(プロファイル)に一致すると判定したとき、視認判定となる。視認判定がなされると、親密度管理部220は幼児の親密度をアップさせる。検出頻度が高いユーザほど親密度が高くなりやすい。
このような制御方法により、よく出会う人について親近感をいだきやすい、という生物的行動をエミュレートする。
単なる検出に限らず、「目が合う」ときに親密度が高くなるとしてもよい。ロボット100の認識部156は、正対するユーザの顔画像を認識し、その顔画像から視線方向を認識し、視線方向が自らに向けられている時間が所定時間以上であるとき、「目が合った」と認識してもよい。
【0070】
(2)物理的接触
ロボット100がユーザを視認し、かつ、ユーザからのタッチ(物理的接触)を検出したときには、ユーザからロボット100に対する興味を示されたと判定し、親密度はアップする。たとえば、母親に触られたとき、親密度管理部220は母親の親密度をアップさせる。ロボット100は、圧電ファブリックによって外殻を覆うことにより、自らに対するタッチを検出してもよい。温度センサにより、ユーザの体温を検知することでタッチを検出してもよい。ロボット100が抱っこを検出したときには、ロボット100に対する強い親愛が示されたとして、親密度を大きくアップさせてもよい。
一方、蹴られる、叩かれる、ツノ112を掴まれるなどの乱暴行為を検出したときには、親密度管理部220は親密度をダウンさせる。たとえば、幼児に放り投げられたときには、親密度管理部220は幼児に対する親密度を大幅に低下させる。
このような制御方法により、ソフトにタッチしてくれる人には親近感を抱きやすいが乱暴な人は嫌う、という生物的行動をエミュレートする。
【0071】
(3)声掛け
ロボット100は、自らに向けられた声を検出したときにも親密度を変化させる。たとえば、自分の名前や親愛用語を所定の音量範囲にて検出したとき、親愛度はアップする。親愛用語として「かわいい」「おもしろい」「おいで」のようにあらかじめ典型的な用語パターンを登録しておき、音声認識により親愛用語か否かを判定してもよい。一方、通常の音量範囲を超えた大音量で声を掛けられたときには親密度をダウンさせてもよい。大声で叱られたとき、びっくりさせられたときには親愛度は低下する。
また、嫌悪用語をかけられたときには、親愛度を低下させてもよい。嫌悪用語として、「こら」「くるな」「あっちへいけ」「ばか」のようにあらかじめ典型的な用語パターンを登録しておき、音声認識によって嫌悪用語か否かを判定してもよい。
【0072】
ロボット100の名前は、あらかじめユーザにより登録されてもよい。あるいは、ロボット100は、自らに掛けられるさまざまな用語のうち、特に頻繁に掛けられる用語を自分の名前だと認識してもよい。この場合には、「おい」「おいで」のように一般的に頻出しやすい用語については名前認識の候補から除外してもよい。
【0073】
以上の制御方法によれば、ロボット100は、よく出会う人、よく触ってくる人、よく声をかけてくれる人に対して高い親密度を設定する。一方、めったに見ない人、あまり触ってこない人、乱暴な人、大声で叱る人に対する親密度は低くなる。ロボット100はセンサ(視覚、触覚、聴覚)によって検出するさまざまな外界情報にもとづいて、ユーザごとの親密度を変化させる。
【0074】
親密度管理部220は、親密度を時間とともに低下させる。たとえば、親密度管理部220は、10分ごとに全ユーザの親密度を1ずつ低下させてもよい。ユーザはロボット100と関わり続けなければ、いいかえれば、ロボット100をかわいがり続けなければ、ロボット100と親密な関係を維持できなくなる。
【0075】
実際のロボット100は行動マップにしたがって自律的に複雑な行動選択を行う。ロボット100は、寂しさ、退屈さ、好奇心などさまざまなパラメータに基づいて複数の行動マップに影響されながら行動する。ロボット100は、行動マップの影響を除外すれば、あるいは、行動マップの影響が小さい内部状態にあるときには、原則的には、親密度の高い人に近づこうとし、親密度の低い人からは離れようとする。
【0076】
ロボット100の行動は親密度に応じて以下に類型化される。
(1)親密度が非常に高いクラスタ
ロボット100は、ユーザに近づき(以下、「近接行動」とよぶ)、かつ、人に好意を示す仕草としてあらかじめ定義される愛情仕草を行うことで親愛の情を強く表現する。
(2)親密度が比較的高いクラスタ
ロボット100は、近接行動のみを行う。
(3)親密度が比較的低いクラスタ
ロボット100は特段のアクションを行わない。
(4)親密度が特に低いクラスタ
ロボット100は、離脱行動を行う。
【0077】
以上の制御方法によれば、ロボット100は、親密度が高いユーザを見つけるとそのユーザに近寄り、逆に親密度が低いユーザを見つけるとそのユーザから離れる。このような制御方法により、いわゆる「人見知り」を行動表現できる。また、来客(親密度が低いユーザA)が現れたとき、ロボット100は、来客から離れて家族(親密度が高いユーザB)の方に向かうこともある。この場合、ユーザBはロボット100が人見知りをして不安を感じていること、自分を頼っていること、を感じ取ることができる。このような行動表現により、ユーザBは、選ばれ、頼られることの喜び、それにともなう愛着の情を喚起される。
【0078】
一方、来客であるユーザAが頻繁に訪れ、声を掛け、タッチをするとロボット100のユーザAに対する親密度は徐々に上昇し、ロボット100はユーザAに対して人見知り行動(離脱行動)をしなくなる。ユーザAも自分にロボット100が馴染んできてくれたことを感じ取ることで、ロボット100に対する愛着を抱くことができる。
【0079】
なお、以上の行動選択は、常に実行されるとは限らない。たとえば、ロボット100の好奇心を示す内部パラメータが高くなっているときには、好奇心を満たす場所を求める行動マップが重視されるため、ロボット100は親密度に影響された行動を選択しない可能性もある。また、玄関に設置されている外部センサ114がユーザの帰宅を検知した場合には、ユーザのお出迎え行動を最優先で実行するかもしれない。
【0080】
[涼しさを求める機能]
ロボット100は、外気を取り込むことでCPUなどの発熱部材を冷却する。外気温が低いほど発熱部材を冷やしやすくなり、ファンなどの強制的に空気を循環させる装置の動作レベルを抑制できる。一般に、冷却装置の動作レベルが高まれば、ファンの回転数があがり、騒音が増す。生物的な行動特性をエミュレートするロボット100にとっては、冷却時の騒音は「機械」を感じさせてしまうことになり、極力抑えることが好ましい。そこで、本実施の形態におけるロボット100は、冷却のために発生する機械的な騒音を極力減らすように、涼しい場所へ自ら移動する機能を備える。
【0081】
図6は、ロボット100が涼しさを求める機能を説明するための模式図である。
本実施形態におけるロボット100の移動可能範囲は、
図6に示される屋内全体である。屋内の各部に外部センサ114が設置されている。ロボット100は、屋内を動くとき、定期的に室温(周辺温度)を計測する。温度マップ管理部226は、室温と計測地点の位置座標を対応付けることで移動可能範囲における周辺温度分布を示す温度マップを作成する。温度マップは、室温と位置座標を対応付ける情報であり、温度マップにより高温領域170と低温領域172が特定される。高温領域170は、室温が閾値M1以上の領域であり、高温領域170は室温が閾値M2未満(M2≦M1)である。
【0082】
本実施形態においては、高温領域170は摂氏25度以上の領域、低温領域172は摂氏15度未満の領域であるとする。
図6においては複数の高温領域170a〜170dと複数の低温領域172a〜172gが検出されている。
高温領域170は、たとえば、窓際や電化製品などの発熱体の近くが考えられる。低温領域172は、エアコンディショナーの風があたる場所や物陰などが考えられる。
【0083】
ロボット100は、低温領域172を好み、高温領域170を避ける行動特性を有する。ロボット100は、内部温度が上昇すると、温度を下げるために現在地点よりも室温が低い地点をサーチする。具体的には、ロボット100(サーバ200)は温度マップに基づいて、現在地点よりも室温が低いと推定される冷涼地点Cを移動目標地点として特定する。
【0084】
冷涼地点Cは、低温領域172aにあり、室温が特に低い地点であることが望ましい。サーバ200の移動判断部234は、もっとも近い低温領域172のうち任意の地点を冷涼地点Cとして特定してもよいし、現在地点からもっとも近い所定室温以下の地点を冷涼地点Cとして特定してもよい。あるいは、温度マップにおいてもっとも室温が低い地点を冷涼地点Cして特定してもよい。少なくとも、冷涼地点Cは、現在地点よりも室温が低い、あるいは、室温が低いと推定される地点であればよい。
【0085】
サーバ200の移動判断部234は、冷涼地点Cに向かう移動ルートを複数特定する。
図6ではルートR1とルートR2の2つの移動ルートが特定されている。ルートR2は高温領域170aを通過するが、ルートR1は高温領域170を通過しない。この場合、移動判断部234は、より低温のルートR1を選択する。ロボット100の移動時においてもなるべく内部温度の上昇を抑制するためである。
【0086】
移動判断部234は、所定間隔ごとの室温の平均値が低い移動ルートを選択してもよい。3メートルの移動ルートにおいて、1メートルごとの室温が25度、22度、27度であれば、その平均値の25度をこの移動ルートの室温(以下、「ルート温度」とよぶ)として特定してもよい。あるいは、移動判断部234は、移動ルート中における最高室温や最低温度をルート温度として特定してもよい。複数の移動ルートのルート温度が同一のとき、あるいは、ルート温度の差異が所定の閾値以下のときには、移動判断部234は短い方の移動ルートを選択してもよい。
サーバ200は、移動目標地点(冷涼地点C)とそのためのルートR1をロボット100に通知し、ロボット100はルートR1を通って冷涼地点Cに向かう。
【0087】
ロボット100はプロセッサ122などの発熱体を内蔵するため、ロボット100の筐体内部の温度(内部温度)は室温よりも高くなりやすい。ロボット100は、一般的なコンピュータと同様、内蔵のファンを回転させることで排熱してもよいが、自律的に冷涼地点Cに向かうことでも内部温度を下げることもできる。これは、自律行動型ロボットならではのメリットである。しかも、このような制御方法によれば、「暑いのが苦手」という生物的な行動特性を表現できる。
【0088】
図7は、温度マップの時間変化を説明するための模式図である。
室温は、時間によって変化する。
図7は、6:00〜9:00の温度マップ180a、9:00〜12:00の温度マップ180b、12:00〜15:00の温度マップ180cの3つの時間帯の温度マップ180を示す。
【0089】
ロボット100は定期的に室温を計測する。温度マップ管理部226は、室温と計測地点に計測日時を対応づけて記録する。たとえば、6:00〜9:00の間に室温計測されると、温度マップ管理部226は温度マップ180aを更新する。同一時間帯において、同一地点で複数回室温が計測された時には、温度マップ180には最新の室温が記録されてもいいし、複数回計測された室温の平均室温が記録されてもよい。
【0090】
図7によれば、温度マップ180aにおいては低温領域172が高温領域170よりも広いが、温度マップ180bから温度マップ180cへと時間が進むにつれて高温領域170が拡大している。複数の温度マップ180により、日中は南の窓際の室温が高くなる、ソファの後ろはいつも涼しい、といった情報が得られる。
ロボットシステム300は、移動開始時点の時間帯に応じた温度マップ180を参照することで冷涼地点Cを適切に特定できる。
【0091】
図8は、ロボット100が冷涼地点Cへ向かう過程を示すフローチャートである。
内部センサ128は、定期的にロボット100の内部温度を計測する。
図8に示す処理は、内部温度の計測タイミングにおいて繰り返し実行される。内部温度tが、所定の閾値T1よりも大きいとき(S10のY)、移動判断部234は温度マップ180を参照して冷涼地点Cをサーチする(S14)。
【0092】
内部温度tが、閾値T1以下のときでも(S10のN)、内部温度の変化率Δtが所定の閾値T2よりも大きいときにも(S12のY)、移動判断部234は冷涼地点Cをサーチする(S14)。内部温度の変化率は、所定期間、たとえば、5秒間あたりの温度上昇率として定義されてもよい。温度上昇率が大きいときには、現時点で内部温度tが低くてもすぐに冷却が必要になると予想されるためである。
【0093】
移動判断部234は、冷涼地点Cを移動目標地点として設定し、冷涼地点Cに至るための移動ルートを決定する(S16)。移動目標地点と移動ルートが決定すると、ロボット100の移動判断部138は移動駆動部144に移動指示を出す(S18)。
内部温度tが閾値T1以下で(S10のN)、かつ、内部温度の変化率Δtが閾値T2以下のときには(S12のN)、ロボット100は冷涼地点Cへ移動しない。
【0094】
ロボット100の実際の行動特性はもう少し複雑である。
図4に関連して説明した感情マップ116において、z値の大きな好意地点P1が存在するときには、内部温度tが高くてもロボット100は冷涼地点Cよりも好意地点P1を移動目標地点として選択するかもしれない。内部温度tが特に高いときには、z値の大きな好意地点P1が存在しても、ロボット100は冷涼地点Cに向かうかもしれない。
【0095】
冷暗所が存在し、かつ、ロボット100が暗い場所が苦手という特性を有する場合には、暗い場所を避ける行動特性と涼しい場所を求める行動特性が相克する。内部温度が非常に高いときには、涼しい場所を求めるインセンティブが暗い場所を避けるインセンティブよりも強くなる。温度マップ180を含む複数の行動マップと、内部温度や親密度などさまざまなパラメータに基づいてロボット100の移動目標地点が決定される。
図8は、複数の行動マップのうち、温度マップ180のみに基づく移動特性を模式的に示すフローチャートである。
【0096】
以上、実施形態に基づいてロボット100およびロボット100を含むロボットシステム300について説明した。
1以上の行動マップによりパターン化できず予測しづらい、かつ、生物的な行動選択を表現している。このような方法により生物的な行動選択をエミュレートする。
生物の行動はさまざまな要因の影響を受けるが、室温はその一つである。生物は体温が上昇すると、日陰に移動するなどして体温上昇を抑制しようとする。本実施形態におけるロボット100も、内部温度、特に、バッテリー118やプロセッサ122などの発熱源付近の温度が上昇したときには、自ら冷涼地点Cを探して自律的に移動する。このため、ロボット100において生物的な行動特性を表現できる。
【0097】
また、コンピュータも、高温時にはプロセッサ122の停止、メモリ(記憶装置124)のデータ破壊など不具合が発生することがある。ファンなどの冷却装置によって内部温度を下げる場合、冷却機能の動作レベルが高くなると騒音が大きくなる。生物的な行動特性をエミュレートするロボット100にとっては、冷却時の騒音は「機械」を感じさせるため、興ざめになりかねない。その一方、ロボット100は、自律行動という特徴がある。ロボット100が自ら冷涼地点Cに移動することで冷却装置に過度に頼らない冷却が可能となる。このような制御方法は、ロボット100の省電力化にも寄与する。
【0098】
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
【0099】
1つのロボット100と1つのサーバ200、複数の外部センサ114によりロボットシステム300が構成されるとして説明したが、ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部がロボット100に割り当てられてもよい。1つのサーバ200が複数のロボット100をコントロールしてもよいし、複数のサーバ200が協働して1以上のロボット100をコントロールしてもよい。
ロボット100やサーバ200以外の第3の装置が、機能の一部を担ってもよい。
図5において説明したロボット100の各機能とサーバ200の各機能の集合体は大局的には1つの「ロボット」として把握することも可能である。1つまたは複数のハードウェアに対して、本発明を実現するために必要な複数の機能をどのように配分するかは、各ハードウェアの処理能力やロボットシステム300に求められる仕様等に鑑みて決定されればよい。
【0100】
上述したように、「狭義におけるロボット」とはサーバ200を含まないロボット100のことであるが、「広義におけるロボット」はロボットシステム300のことである。サーバ200の機能の多くは、将来的にはロボット100に統合されていく可能性も考えられる。
【0101】
本実施形態においては、ロボット100が適宜室温を計測することにより、温度マップ管理部226が温度マップ180を作成・更新するとして説明したが、温度マップ180はあらかじめサーバ200に「先天的かつ変更不可能な予備知識」として設定されてもよい。マップ格納部216において複数種類の時間帯に対応する複数の温度マップ180が初期設定されてもよい。
同様にして、あらかじめ1以上の冷涼地点Cが「先天的知識」としてサーバ200において初期設定されてもよい。たとえば、ソファの後ろや寝室を冷涼地点Cとしてあらかじめ設定してもよい。ロボット100は、このように決められた冷涼地点Cを「現在地点よりも低温の地点」と推定して行動してもよい。
【0102】
ロボット100は、温度マップ180を参照せず、自ら冷涼地点Cをサーチしてもよい。たとえば、ロボット100はサーモセンサにより周囲の温度を計測し、周辺温度のもっとも低い地点を冷涼地点Cとして特定してもよい。
【0103】
ロボット100は、内部温度を低下させるためのファンを内蔵するとして説明した。ロボット100は、ファンの動作レベル、具体的には、ファンの回転速度や回転時間を計測し、動作レベルが所定の閾値以上となるときや、動作レベルが所定の閾値以上となると推定されるとき、冷涼地点Cへ移動してもよい。ロボット100は、ファンの動作レベルの変化率が大きいときに動作レベルが高くなると推定してもよいし、負荷の大きな処理を実行予定であるときに動作レベルが高くなると推定してもよい。高負荷の処理を実行予定であるときには、内部温度も高くなると推定可能である。
なお、冷却機構162はファンに限られるものではなく、ロボット100の内部の空気を排出し、外部の空気を取り込む機構であればよい。
【0104】
ユーザが出かけるときには、冷房をオフにするため、室温が上昇すると考えられる。このため、ロボット100は、ユーザが出かけるとき、内部温度が上昇すると推定してもよい。ロボット100は、14:00に部屋の温度がもっとも高くなるという先天的または経験的知識を持っているときには、14:00になる前に冷涼地点Cに移動してもよい。このように、ロボット100は内部温度の変化率に限らず、先天的または経験的知識に基づいて内部温度が所定温度以上となるタイミングを推定してもよい。
【0105】
真夏日において、外部センサ114によりユーザの帰宅が検出されたときには、ロボット100はユーザに近づいてもよい。これは、帰宅したユーザが冷房をつけることが期待できるためである。また、暑い時にはユーザと冷房を見比べるなどの仕草を実行することにより、ユーザに冷房をつけるようにせがんでもよい。
【0106】
温度マップ180の時間帯は、1日における時間だけではなく、日や季節に基づいて定義されてもよい。たとえば、6月6日の9:00〜12:00の温度マップ180とは別に、6月7日の9:00〜12:00の温度マップ180が用意されてもよい。さまざまな時間帯に対応した温度マップ180を用意することにより、より正確に冷涼地点Cを特定しやすくなる。時間帯に限らず、晴天、雲天、雨天など、天候に応じて複数の温度マップ180が用意されてもよい。サーバ200は、天気予報サイトと接続することで天候情報を取得してもよい。
【0107】
ロボット100は、冷涼地点Cに向かう移動ルート上の高温地点は素早く通り過ぎ、低温地点はゆっくり通りすぎてもよい。
サーバ200は、温度マップ180に基づいて、各移動ルートのルート温度を推定する。そして、ルート温度の低い移動ルートを優先的に選択する。ここで「優先的に選択する」とは、ルート温度の低い移動ルートほど高い確率にて選択することであってもよい。
【0108】
複数のロボット100が存在する場合、温度マップを共有してもよい。
外部センサ114は、温度センサを内蔵してもよい。そして、温度マップ管理部226は、複数の外部センサ114から得られる温度情報により、温度マップ180を形成・更新してもよい。
【0109】
図9は、変形例におけるロボットシステム300の機能ブロック図である。
変形例1のロボットシステム300において、通信部142は冷涼報知部154を含む。冷涼報知部154は、他のロボットに対して後述の「冷涼報知」を行う。内部センサ128は、体温検出部164を含む。体温検出部164は、ユーザまたは他のロボットの温度(体温)を検出する。体温検出部164は、放射温度計やサーモグラフィーなど非接触型温度センサと、サーミスタや測温抵抗体、熱電対、IC温度センサなどの接触型温度センサを含む。温度検出部152が体温検出部164の機能を兼用してもよい。
【0110】
ロボット100は、複数の動作パターン(モーション)を有する。手106を震わせる、蛇行しながらオーナーに近づく、首をかしげたままオーナーを見つめる、などさまざまなモーションが定義される。
【0111】
動作パターン格納部232は、モーションの制御内容を定義する「モーションファイル」を格納する。各モーションは、モーションIDにより識別される。モーションファイルは、ロボット100の動作パターン格納部232にもダウンロードされる。どのモーションを実行するかは、サーバ200で決定されることもあるし、ロボット100で決定されることもある。
【0112】
ロボット100のモーションの多くは、複数の単位モーションを含む複合モーションとして構成される。たとえば、ロボット100がオーナーに近づくとき、オーナーの方に向き直る単位モーション、手を上げながら近づく単位モーション、体を揺すりながら近づく単位モーション、両手を上げながら着座する単位モーションの組み合わせとして表現されてもよい。このような4つのモーションの組み合わせにより、「オーナーに近づいて、途中で手を上げて、最後は体をゆすった上で着座する」というモーションが実現される。モーションファイルには、ロボット100に設けられたアクチュエータの回転角度や角速度などが時間軸に関連づけて定義される。モーションファイル(アクチュエータ制御情報)にしたがって、時間経過とともに各アクチュエータを制御することで様々なモーションが表現される。
【0113】
先の単位モーションから次の単位モーションに変化するときの移行時間を「インターバル」とよぶ。インターバルは、単位モーション変更に要する時間やモーションの内容に応じて定義されればよい。インターバルの長さは調整可能である。
以下、いつ、どのモーションを選ぶか、モーションを実現する上での各アクチュエータの出力調整など、ロボット100の行動制御に関わる設定のことを「行動特性」と総称する。ロボット100の行動特性は、モーション選択アルゴリズム、モーションの選択確率、モーションファイル等により定義される。
【0114】
ロボット100は、行動マップとは別に、さまざまな感情や感覚の大きさを示すパラメータを有する。たとえば、寂しさという感情パラメータの値が高まっているときには、安心する場所を評価する行動マップの重み付け係数を大きく設定し、目標地点に到達することでこの感情パラメータの値を低下させる。同様に、つまらないという感覚を示すパラメータの値が高まっているときには、好奇心を満たす場所を評価する行動マップの重み付け係数を大きく設定すればよい。
【0115】
認識部156が人やペットなどの移動物体を検出したとき、体温検出部162はその移動物体の体温を計測する。サーバ200の移動判断部234(あるいはロボット100の移動判断部138)は、この移動物体の体温が所定値以上、たとえば、37度以上の場合、温度マップ180に基づいて特定される冷涼地点を移動目標地点に設定する。また、サーバ200の行動判断部236(あるいはロボット100の行動判断部140)は、この移動物体に対して上記状況に応じてあらかじめ対応づけられたモーション(以下、「冷涼誘導モーション」とよぶ)を選択し、行動駆動部146に実行させる。冷涼誘導モーションは、手106を揺らす、ボディ104を移動物体の方に向けたあとに冷涼地点の方向に向ける、手106を冷涼地点の方向に向ける、移動物体の方を振り返りながら冷涼地点に移動する、冷涼地点に居座る、など移動物体を冷涼地点に誘導するために定義された特定のモーションであればよい。冷涼誘導モーションは、移動物体が興味を持ち近づきたくなるモーションであることが望ましい。このような制御方法によれば、体温が上昇している人やペットを冷涼地点に導くことで熱中症を防止しやすくなる。
【0116】
ユーザの属性に応じて、複数種類の冷涼誘導モーションが定義されてもよい。たとえば、ユーザが子どもであれば、動作判断部150は、ユーザにタッチしたあと冷涼地点に逃げる冷涼誘導モーションを実行してもよい。ユーザ(子ども)は、ロボット100を追いかけることで冷涼地点に導かれる。ユーザが大人であれば、動作判断部150は、ユーザに手106で触れる、手106で冷涼地点を指し示すなどの冷涼誘導モーションを実行させてもよい。動作制御部150は、ユーザの年代に限らず、性別や親密度など他の属性(パラメータ)に基づいて冷涼誘導モーションを選択してもよい。
【0117】
認識部212は、冷涼誘導モーションとその成否を対応づけて履歴情報として管理してもよい。たとえば、認識部212は、冷涼誘導モーションM1を実行したとき、ユーザP1が冷涼地点に移動すれば成功と判定し、ユーザP1と冷涼誘導モーションM1の成功率を更新する。動作判断部150は、この履歴情報を参照して、冷涼誘導モーションを選択してもよい。具体的には、ユーザP1を冷涼地点に誘導したいときには、動作判断部150は、ユーザP1について成功率の高い冷涼誘導モーションを選択すればよい。このときに誘導に失敗した場合には、動作判断部150は次に成功率の高かった冷涼誘導モーションを選択することにより、誘導に再挑戦すればよい。
【0118】
体温検出部164は移動物体ごとの体温を定期的に計測し、通信部142は計測された体温をサーバ200に通知してもよい。そして、認識部212は、計測された体温を個人データ格納部218に登録することにより、移動物体ごとの平均体温を記録してもよい。サーバ200の動作判断部222(あるいはロボット100の動作判断部150)は、移動物体について計測された体温とその平均体温の差が所定値以上となったとき、冷涼地点を移動目標地点に設定し、冷涼誘導モーションを選択してもよい。あるいは、移動物体の周辺温度が所定温度以上となったとき、動作判断部150は冷涼誘導モーションを選択してもよい。
【0119】
認識部156が他のロボットR1を検出したときにも、体温検出部164はロボットR1の体温(放射温度)を計測する。ここでいうロボットR1はロボット100と同じタイプであってもよいし、冷涼地点に向かう機能を備えないタイプであってもよい。サーバ200の認識部212(あるいはロボット100の認識部156)は、人ともペットとも異なる形状を有する移動物体を「ロボット」と認識してもよい。あるいは、ロボットR1から定期的に送信されるID信号を図示しないセンサによって検出することにより、認識部212(あるいは認識部156)は他のロボットを認識してもよい。
【0120】
認識部156は、ロボットR1の放射熱から測定される体温(放射温度)が所定値以上であるとき、冷涼報知部154はロボットR1に対して冷涼報知、より具体的には、冷涼地点の座標を指定する信号(以下、「冷涼信号」とよぶ)を送信する。ロボットR1は、自ら冷涼地点を見つける機能を有していなくても、ロボット100から冷涼信号を受信し、冷涼信号によって指定されて冷涼地点に移動する機能を有していれば、ロボット100と同様にして高温時に冷涼地点に向かうことができる。
【0121】
なお、ロボットR1の平均体温を記録しておき、冷涼報知部154はロボットR1について計測された体温とその平均体温の差が所定の閾値以上となったとき、冷涼信号を送信してもよい。また、ロボットR1の周辺温度が所定温度以上となったとき、冷涼報知部154は冷涼信号を送信してもよい。
【0122】
行動判断部140は、移動中において温度検出部152により定期的に計測される周辺温度が所定の閾値温度以上、たとえば、30度以上のときには、移動速度を高く設定してもよい。あるいは、移動中において温度マップ180において示される現在地点の周辺温度が所定の閾値温度以上のときにも行動判断部140はロボット100の移動速度を高く設定してもよい。このような制御方法によれば、移動中においてもロボット100が高温地帯に滞在する時間を極力減らすことができるため、ロボット100の内部温度を抑制しやすくなる。同様の理由から、行動判断部140は、温度検出部152により計測される周辺温度、あるいは、温度マップ180において示される現在地点の周辺温度が所定の閾値以下、たとえば、10度以下のときには、移動速度を低下させてもよい。
【0123】
認識部212(あるいは認識部156)は、屋内に設置されるエアコンディショナーあるいはそのリモートコントローラを画像認識してもよい。エアコンディショナーまたはリモートコントローラが設置されていることをあらかじめロボット100に登録してもよい。動作判断部222(あるいは動作判断部150)は、ロボット100の内部温度が閾値を超えるとき、あるいは、内部温度の上昇率が閾値を超えるとき、エアコンディショナーの直下またはそのリモートコントローラのある地点を移動目標地点に設定してもよいし、それらの存在する方向に移動してもよい。認識部212(あるいは認識部156)が冷涼地点を検出できないとき、動作判断部(あるいは動作判断部150)は、エアコンディショナーの直下またはそのリモートコントローラのある地点を移動目標地点に設定してもよい。ロボット100がエアコンディショナー等の近くに移動することで、ユーザに対して室内温度を下げて欲しいという意味の無言のアピールが可能となる。
【0124】
認識部156は、温度検出部152による検出結果に基づいて、エアコンディショナーなどの冷房装置を特定してもよい。たとえば、認識部156は、温度マップ180において、周辺に比べて顕著に低温の地点、たとえば、室内の平均温度よりも1度以上低い地点があれば、そこにエアコンディショナーがあると判定してもよい。サーバ200またはロボット100に、あらかじめ複数のエアコンディショナーの位置が登録されているときには、認識部156は現在地点に近いエアコンディショナーを登録情報から検索してもよい。
【0125】
ロボット100は、エアコンディショナーに限らず、扇風機など他の冷房装置を対象として移動目標地点を設定してもよい。また、このようなアピールはユーザ(人間)がいないときには意味がないため、認識部156がユーザを認識したときに限り、ロボット100は冷房装置へ移動してもよい。冷房装置への移動に限らず、行動判断部140は冷房装置に手106を向けることで冷房装置の使用をユーザに求めてもよい。
【0126】
動作判断部150は、内部温度が高いとき、あるいは、内部温度の上昇率が高いときであって、扇風機が作動しているときには、扇風機の前方に移動目標地点を設定してもよい。認識部212(あるいは認識部156)は、扇風機とそのファンの回転を画像認識することにより、扇風機の位置およびその作動状態を判定してもよい。このような制御方法によれば、扇風機という外部の冷房装置を利用して内部温度を低下させることができるだけでなく、暑いので扇風機の近くに行きたがるという生物的特性を行動表現できる。なお、ロボット100の通信部142は、エアコンディショナーや扇風機に対して制御信号を送信することにより、自ら冷房装置を作動させてもよい。
【0127】
冷却機構162は、内部温度が上昇しているとき、あるいは、内部温度の上昇率が高いとき、ファンの回転速度を増加させる。しかし、ファンは回転速度が高くなるときに騒音を発生する。ファンの回転音は、騒音になるだけでなく、ロボット100が「機械」であることをユーザに感じさせることになるため、生物的特性というコンセプトから見ても好ましくない。移動判断部234(あるいは移動判断部138)は、内部温度が高いとき、あるいは、ファンの回転速度が高いときには、ユーザから離れる方向に移動方向を設定してもよい。複数のユーザが存在するとき、より具体的には、カメラの撮像画像から複数のユーザが認識されるとき、移動判断部234(あるいは移動判断部138)は複数のユーザのいずれからも離れた地点を移動目標地点に設定してもよい。このような制御方法によれば、ユーザから充分離れてからファンの回転速度を高めることができるため、ユーザにファン音を聞かれにくくできる。
【0128】
同様の理由から、冷却機構162は、ユーザから所定範囲内にあるとき、あるいは、ユーザが撮像されているときには、ファンの回転速度に上限値を設定してもよい。ユーザがそばにいるときにはファンの回転速度に上限値を設けることで静音性を重視し、ユーザがそばにいないときにファンの回転速度の上限値制限を解除することにより冷却性を重視してもよい。ファンの回転速度について、第1の上限値T1と第2の上限値T2(>T1)をあらかじめ登録してもよい。冷却機構162は、認識部156がユーザを認識したときには第1の上限値T1を設定し、認識されないときには第2の上限値T2を設定してもよい。また、ロボット100は、ユーザとロボット100の距離を既知の距離測定デバイスにより測定し、距離が大きいほど回転速度の上限値を大きく設定してもよい。また、ロボット100がユーザのそばにいる場合であっても、ロボット100の内部温度が特に上昇しているときには、移動判断部234はユーザから離れた地点を移動目標地点に設定し、その上で、ファンの回転速度の上限値を解除してもよい。
【0129】
室内、たとえば、天井に固定設置されるサーモセンサにより、屋内の温度分布を計測してもよい。温度マップ管理部226は、サーモセンサから温度分布情報を定期的に受信し、温度マップ180を更新してもよい。
【0130】
サーバ200の移動判断部234は、ロボット100の内部温度が所定値以上であるときには、高温領域170を通過禁止領域に設定してもよい。
【0131】
内部温度が所定値以上であるとき、あるいは、室内温度が所定値以上であるとき、ロボット100の行動判断部140は、エアコンディショナー、扇風機等の冷房装置に手106を向けることで冷房装置を作動させるようにユーザにアピールしてもよい。あるいは、ロボット100の移動判断部138は冷房装置に近づくように移動駆動部144に指示してもよいし、行動判断部140はユーザにボディ104を向けるモーションと冷房装置にボディ104を向けるモーションを交互に実行させてもよい。冷房装置に限らず、冷蔵庫を対象として同様のモーションを実行してもよいし、窓を手106で叩くことで換気を促してもよい。
【0132】
上述したように、複数のロボット100において温度マップ180を共有してもよい。たとえば、ロボット100Aの温度計測機能に基づいて温度マップ180が形成されたとする。このとき、サーバ200の温度マップ管理部226は、別のロボット100Bに対して、温度マップ180へのアクセス権を与えてもよい。また、サーバ200の動作判断部222は、同一の温度マップ180に基づいて、ロボット100Aおよびロボット100Bの双方を制御してもよい。このような制御方法によれば、ロボット100Bが温度マップ180を形成する機能を有さない場合であっても、ロボット100Aと同様に温度分布に基づく行動選択が可能となる。
【0133】
ロボット100は、内部温度が所定値以上、あるいは、室内温度が所定値以上となるとき、「暑さ」をアピールするためのさまざまなモーションを実行してもよい。たとえば、ロボット100が衣服を着用しているときには、ロボット100の行動判断部140は衣服を脱ぎたがるモーション、たとえば、手106で衣服のボタンを叩くモーションを実行してもよい。このほか、行動判断部140は手106を団扇のように動かして顔をあおぐモーションを実行してもよいし、移動判断部138はよろめきながら移動するモーションを実行することで「暑さによるだるさ」を行動表現してもよい。
【0134】
冷却機構162は、周辺に人(ユーザ)が検出されていないときにはファンの回転速度を高くして、内部温度を所定値、たとえば、15度以下に低下させ、人が検出されているときにはファンの回転速度または作動時間を抑制してもよい。また、ファンのほか、静音のペルチェ素子によりプロセッサ122等の熱源を冷却できてもよい。冷却機構162は、ファンの回転速度が所定の上限値に到達したとき、ファンに代えて、あるいは、ファンに加えてペルチェ素子により熱源を冷却してもよい。同様にして、冷却機構162は、ユーザが周辺に存在するときにはペルチェ素子により熱源を冷却し、ユーザが周辺に存在しないとき、すなわち、内蔵のカメラによる撮像画像に人が写っていないときにはファンにより熱源を冷却してもよい。このような制御方法によれば、冷却能力の強化とともに、静音性を高めることができる。
【0135】
冷涼地点は、日陰、ドアのそばなど、直射日光の当たらないところに設定されてもよい。ロボット100の認識部156は光センサにより、照度が所定値以下の「暗い場所」を検出し、動作判断部150は「暗い場所」を冷涼地点として設定してもよい。また、ロボット100の認識部156は風向センサにより、冷房装置や屋外からの「風が当たる場所」を検出してもよい。そして、動作判断部150は「風が当たる場所」を冷涼地点として設定してもよい。
【0136】
また、ファンを回転させるときやペルチェ素子を作動させるとき、ロボット100の行動判断部140は冷却中であることを示唆する行動を実行してもよい。たとえば、着座した状態で、行動判断部140は手106をゆっくりと上下させるなどのあらかじめ定められた特徴的な行動を実行してもよい。
【0137】
上述したように、ロボット100の行動特性はさまざまな外的および内的要因に基づいて変化する。たとえば、親密度の高いユーザが存在するときには、ユーザに近づきたいというモーメンタムが生じる。一方、内部温度が高まっているときには、ユーザから離れてファンを駆動し、内部温度を低下させたいというモーメンタム、あるいは、冷涼地点に向かいたいというモーメンタムが生じる。動作判断部222(またはロボット100の動作判断部150)は、親密度と内部温度を比較し、たとえば、内部温度が30度以下のときには親密度に基づく接近行動を優先し、内部温度が30度を超えるときには冷涼地点への移動を優先してもよい。このように、動作判断部222はさまざまなモーメンタムをその強度に応じて選択することでロボット100の行動特性を変化させることができる。