(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
図1(a)は、ロボット100の正面外観図である。
図1(b)は、ロボット100の側面外観図である。
本実施形態におけるロボット100は、外部環境および内部状態に基づいて行動や仕草(ジェスチャー)を決定する自律行動型のロボットである。外部環境は、カメラやサーモセンサなど各種のセンサにより認識される。内部状態はロボット100の感情を表現するさまざまなパラメータとして定量化される。これらについては後述する。
【0010】
ロボット100は、屋内行動が前提とされており、たとえば、オーナー家庭の家屋内を行動範囲とする。以下、ロボット100に関わる人間を「ユーザ」とよび、ロボット100が所属する家庭の構成員となるユーザのことを「オーナー」とよぶ。
【0011】
ロボット100のボディ104は、全体的に丸みを帯びた形状を有し、ウレタンやゴム、樹脂、繊維などやわらかく弾力性のある素材により形成された外皮を含む。ロボット100に服を着せてもよい。丸くてやわらかく、手触りのよいボディ104とすることで、ロボット100はユーザに安心感とともに心地よい触感を提供する。
【0012】
ロボット100は、総重量が15キログラム以下、好ましくは10キログラム以下、更に好ましくは、5キログラム以下である。生後13ヶ月までに、赤ちゃんの過半数は一人歩きを始める。生後13ヶ月の赤ちゃんの平均体重は、男児が9キログラム強、女児が9キログラム弱である。このため、ロボット100の総重量が10キログラム以下であれば、ユーザは一人歩きできない赤ちゃんを抱きかかえるのとほぼ同等の労力でロボット100を抱きかかえることができる。生後2ヶ月未満の赤ちゃんの平均体重は男女ともに5キログラム未満である。したがって、ロボット100の総重量が5キログラム以下であれば、ユーザは乳児を抱っこするのと同等の労力でロボット100を抱っこできる。
【0013】
適度な重さと丸み、柔らかさ、手触りのよさ、といった諸属性により、ユーザがロボット100を抱きかかえやすく、かつ、抱きかかえたくなるという効果が実現される。同様の理由から、ロボット100の身長は1.2メートル以下、好ましくは、0.7メートル以下であることが望ましい。本実施形態におけるロボット100にとって、抱きかかえることができるというのは重要なコンセプトである。
【0014】
ロボット100は、3輪走行するための3つの車輪を備える。図示のように、一対の前輪102(左輪102a,右輪102b)と、一つの後輪103を含む。前輪102が駆動輪であり、後輪103が従動輪である。前輪102は、操舵機構を有しないが、回転速度や回転方向を個別に制御可能とされている。後輪103は、いわゆるオムニホイールからなり、ロボット100を前後左右へ移動させるために回転自在となっている。左輪102aよりも右輪102bの回転数を大きくすることで、ロボット100は左折したり、左回りに回転できる。右輪102bよりも左輪102aの回転数を大きくすることで、ロボット100は右折したり、右回りに回転できる。
【0015】
前輪102および後輪103は、駆動機構(回動機構、リンク機構)によりボディ104に完全収納できる。走行時においても各車輪の大部分はボディ104に隠れているが、各車輪がボディ104に完全収納されるとロボット100は移動不可能な状態となる。すなわち、車輪の収納動作にともなってボディ104が降下し、床面Fに着座する。この着座状態においては、ボディ104の底部に形成された平坦状の着座面108(接地底面)が床面Fに当接する。
【0016】
ロボット100は、2つの手106を有する。手106には、モノを把持する機能はない。手106は上げる、振る、振動するなど簡単な動作が可能である。2つの手106も個別制御可能である。
【0017】
目110にはカメラが内蔵される。目110は、液晶素子または有機EL素子による画像表示も可能である。ロボット100は、目110に内蔵されるカメラのほか、集音マイクや超音波センサなどさまざまなセンサを搭載する。また、スピーカーを内蔵し、簡単な音声を発することもできる。
ロボット100の頭部にはツノ112が取り付けられる。上述のようにロボット100は軽量であるため、ユーザはツノ112をつかむことでロボット100を持ち上げることも可能である。
【0018】
図2は、衣装着用時におけるロボット100の正面外観図である。
ユーザは、ロボット100に衣装180を着せることができる。衣装180にはさまざまな種類がある。衣装180にはRFID(Radio Frequency Identifier)タグが縫い付けられている。RFIDタグは、衣装を識別する「衣装ID」を至近距離に発信する。ロボット100は、RFIDタグから衣装IDを読み取ることにより、衣装180を着用していることと、着用している衣装180の種別を特定する。ロボット100は、複数の衣装180を重ね着してもよい。
【0019】
衣装IDには、衣装に関する各種情報(以下、「衣装属性情報」と総称する)が対応づけられる。ロボット100と連携する後述のサーバ200または衣装メーカーなどが運営する外部データベース182によって衣装属性情報が管理される。衣装属性情報の詳細は後述する。
【0020】
図3は、ロボット100の構造を概略的に表す断面図である。
図3に示すように、ロボット100のボディ104は、ベースフレーム308、本体フレーム310、一対の樹脂製のホイールカバー312および外皮314を含む。ベースフレーム308は、金属からなり、ボディ104の軸芯を構成するとともに内部機構を支持する。ベースフレーム308は、アッパープレート332とロアプレート334とを複数のサイドプレート336により上下に連結して構成される。複数のサイドプレート336間には通気が可能となるよう、十分な間隔が設けられている。ベースフレーム308の内方には、バッテリー118、制御回路342および各種アクチュエータが収容されている。
【0021】
本体フレーム310は、樹脂材からなり、頭部フレーム316および胴部フレーム318を含む。頭部フレーム316は、中空半球状をなし、ロボット100の頭部骨格を形成する。胴部フレーム318は、段付筒形状をなし、ロボット100の胴部骨格を形成する。胴部フレーム318は、ベースフレーム308と一体に固定されている。頭部フレーム316は、胴部フレーム318の上端部に相対変位可能に組み付けられている。
【0022】
頭部フレーム316には、ヨー軸320、ピッチ軸322およびロール軸324の3軸と、各軸を回転駆動するためのアクチュエータ326が設けられている。アクチュエータ326は、各軸を個別に駆動するための複数のサーボモータを含む。首振り動作のためにヨー軸320が駆動され、頷き動作のためにピッチ軸322が駆動され、首を傾げる動作のためにロール軸324が駆動される。
【0023】
頭部フレーム316の上部には、ヨー軸320を支持するプレート325が固定されている。プレート325には、上下間の通気を確保するための複数の通気孔327が形成される。
【0024】
頭部フレーム316およびその内部機構を下方から支持するように、金属製のベースプレート328が設けられる。ベースプレート328は、クロスリンク機構329(パンタグラフ機構)を介してプレート325と連結される一方、ジョイント330を介してアッパープレート332(ベースフレーム308)と連結されている。
【0025】
胴部フレーム318は、ベースフレーム308と車輪駆動機構370を収容する。車輪駆動機構370は、回動軸378およびアクチュエータ379を含む。胴部フレーム318の下半部は、ホイールカバー312との間に前輪102の収納スペースSを形成するために小幅とされている。
【0026】
外皮314は、ウレタンゴムからなり、本体フレーム310およびホイールカバー312を外側から覆う。手106は、外皮314と一体成形される。外皮314の上端部には、外気を導入するための開口部390が設けられる。
【0027】
図4は、ロボットシステム300の構成図である。
ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。家屋内にはあらかじめ複数の外部センサ114(外部センサ114a、114b、・・・、114n)が設置される。外部センサ114は、家屋の壁面に固定されてもよいし、床に載置されてもよい。サーバ200には、外部センサ114の位置座標が登録される。位置座標は、ロボット100の行動範囲として想定される家屋内においてx,y座標として定義される。
【0028】
サーバ200は、家庭内に設置される。本実施形態におけるサーバ200とロボット100は1対1で対応する。ロボット100の内蔵するセンサおよび複数の外部センサ114から得られる情報に基づいて、サーバ200がロボット100の基本行動を決定する。
外部センサ114はロボット100の感覚器を補強するためのものであり、サーバ200はロボット100の頭脳を補強するためのものである。
【0029】
外部センサ114は、定期的に外部センサ114のID(以下、「ビーコンID」とよぶ)を含む無線信号(以下、「ロボット探索信号」とよぶ)を送信する。ロボット100はロボット探索信号を受信するとビーコンIDを含む無線信号(以下、「ロボット返答信号」とよぶ)を返信する。サーバ200は、外部センサ114がロボット探索信号を送信してからロボット返答信号を受信するまでの時間を計測し、外部センサ114からロボット100までの距離を測定する。複数の外部センサ114とロボット100とのそれぞれの距離を計測することで、ロボット100の位置座標を特定する。
もちろん、ロボット100が自らの位置座標を定期的にサーバ200に送信する方式でもよい。
【0030】
図5は、感情マップ116の概念図である。
感情マップ116は、サーバ200に格納されるデータテーブルである。ロボット100は、感情マップ116にしたがって行動選択する。
図5に示す感情マップ116は、ロボット100の場所に対する好悪感情の大きさを示す。感情マップ116のx軸とy軸は、二次元空間座標を示す。z軸は、好悪感情の大きさを示す。z値が正値のときにはその場所に対する好感が高く、z値が負値のときにはその場所を嫌悪していることを示す。
【0031】
図5の感情マップ116において、座標P1は、ロボット100の行動範囲としてサーバ200が管理する屋内空間のうち好感情が高い地点(以下、「好意地点」とよぶ)である。好意地点は、ソファの陰やテーブルの下などの「安全な場所」であってもよいし、リビングのように人が集まりやすい場所、賑やかな場所であってもよい。また、過去にやさしく撫でられたり、触れられたりした場所であってもよい。
ロボット100がどのような場所を好むかという定義は任意であるが、一般的には、小さな子どもや犬や猫などの小動物が好む場所を好意地点として設定することが望ましい。
【0032】
座標P2は、悪感情が高い地点(以下、「嫌悪地点」とよぶ)である。嫌悪地点は、テレビの近くなど大きな音がする場所、お風呂や洗面所のように濡れやすい場所、閉鎖空間や暗い場所、ユーザから乱暴に扱われたことがある不快な記憶に結びつく場所などであってもよい。
ロボット100がどのような場所を嫌うかという定義も任意であるが、一般的には、小さな子どもや犬や猫などの小動物が怖がる場所を嫌悪地点として設定することが望ましい。
【0033】
座標Qは、ロボット100の現在位置を示す。複数の外部センサ114が定期的に送信するロボット探索信号とそれに対するロボット返答信号により、サーバ200はロボット100の位置座標を特定する。たとえば、ビーコンID=1の外部センサ114とビーコンID=2の外部センサ114がそれぞれロボット100を検出したとき、2つの外部センサ114からロボット100の距離を求め、そこからロボット100の位置座標を求める。
【0034】
あるいは、ビーコンID=1の外部センサ114は、ロボット探索信号を複数方向に送信し、ロボット100はロボット探索信号を受信したときロボット返答信号を返す。これにより、サーバ200は、ロボット100がどの外部センサ114からどの方向のどのくらいの距離にいるかを把握してもよい。また、別の実施の形態では、前輪102または後輪103の回転数からロボット100の移動距離を算出して、現在位置を特定してもよいし、カメラから得られる画像に基づいて現在位置を特定してもよい。
図5に示す感情マップ116が与えられた場合、ロボット100は好意地点(座標P1)に引き寄せられる方向、嫌悪地点(座標P2)から離れる方向に移動する。
【0035】
感情マップ116は動的に変化する。ロボット100が座標P1に到達すると、座標P1におけるz値(好感情)は時間とともに低下する。これにより、ロボット100は好意地点(座標P1)に到達して、「感情が満たされ」、やがて、その場所に「飽きてくる」という生物的行動をエミュレートできる。同様に、座標P2における悪感情も時間とともに緩和される。時間経過とともに新たな好意地点や嫌悪地点が生まれ、それによってロボット100は新たな行動選択を行う。ロボット100は、新しい好意地点に「興味」を持ち、絶え間なく行動選択する。
【0036】
感情マップ116は、ロボット100の内部状態として、感情の起伏を表現する。ロボット100は、好意地点を目指し、嫌悪地点を避け、好意地点にしばらくとどまり、やがてまた次の行動を起こす。このような制御により、ロボット100の行動選択を人間的・生物的なものにできる。
【0037】
なお、ロボット100の行動に影響を与えるマップ(以下、「行動マップ」と総称する)は、
図5に示したようなタイプの感情マップ116に限らない。たとえば、好奇心、恐怖を避ける気持ち、安心を求める気持ち、静けさや薄暗さ、涼しさや暖かさといった肉体的安楽を求める気持ち、などさまざまな行動マップを定義可能である。そして、複数の行動マップそれぞれのz値を重み付け平均することにより、ロボット100の目的地点を決定してもよい。
【0038】
ロボット100は、行動マップとは別に、さまざまな感情や感覚の大きさを示すパラメータを有してもよい。たとえば、寂しさという感情パラメータの値が高まっているときには、安心する場所を評価する行動マップの重み付け係数を大きく設定し、目標地点に到達することでこの感情パラメータの値を低下させてもよい。同様に、つまらないという感覚を示すパラメータの値が高まっているときには、好奇心を満たす場所を評価する行動マップの重み付け係数を大きく設定すればよい。
【0039】
図6は、ロボット100のハードウェア構成図である。
ロボット100は、内部センサ128、通信機126、記憶装置124、プロセッサ122、駆動機構120およびバッテリー118を含む。駆動機構120は、上述した車輪駆動機構370を含む。プロセッサ122と記憶装置124は、制御回路342に含まれる。各ユニットは電源線130および信号線132により互いに接続される。バッテリー118は、電源線130を介して各ユニットに電力を供給する。各ユニットは信号線132により制御信号を送受する。バッテリー118は、リチウムイオン二次電池であり、ロボット100の動力源である。
【0040】
内部センサ128は、ロボット100が内蔵する各種センサの集合体である。具体的には、カメラ、集音マイク、赤外線センサ、サーモセンサ、タッチセンサ、加速度センサ、ニオイセンサなどである。ニオイセンサは、匂いの元となる分子の吸着によって電気抵抗が変化する原理を応用した既知のセンサである。ニオイセンサは、さまざまな匂いを複数種類のカテゴリ(以下、「ニオイカテゴリ」とよぶ)に分類する。
【0041】
通信機126は、サーバ200や外部センサ114、ユーザの有する携帯機器など各種の外部機器を対象として無線通信を行う通信モジュールである。記憶装置124は、不揮発性メモリおよび揮発性メモリにより構成され、コンピュータプログラムや各種設定情報を記憶する。プロセッサ122は、コンピュータプログラムの実行手段である。駆動機構120は、内部機構を制御するアクチュエータである。このほかには、表示器やスピーカーなども搭載される。
【0042】
プロセッサ122は、通信機126を介してサーバ200や外部センサ114と通信しながら、ロボット100の行動選択を行う。内部センサ128により得られるさまざまな外部情報も行動選択に影響する。駆動機構120は、主として、車輪(前輪102)と頭部(頭部フレーム316)を制御する。駆動機構120は、2つの前輪102それぞれの回転速度や回転方向を変化させることにより、ロボット100の移動方向や移動速度を変化させる。また、駆動機構120は、車輪(前輪102および後輪103)を昇降させることもできる。車輪が上昇すると、車輪はボディ104に完全に収納され、ロボット100は着座面108にて床面Fに当接し、着座状態となる。
【0043】
図7は、ロボットシステム300の機能ブロック図である。
上述のように、ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。ロボット100およびサーバ200の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部はロボット100により実現されてもよい。
【0044】
(サーバ200)
サーバ200は、通信部204、データ処理部202およびデータ格納部206を含む。
通信部204は、外部センサ114、外部データベース182およびロボット100との通信処理を担当する。データ格納部206は各種データを格納する。データ処理部202は、通信部204により取得されたデータおよびデータ格納部206に格納されているデータに基づいて各種処理を実行する。データ処理部202は、通信部204およびデータ格納部206のインタフェースとしても機能する。
【0045】
外部データベース182は、衣装属性情報を格納する。本実施形態における衣装属性情報は、(1)行動制約情報と(2)スペシャルモーションの2つを含む。行動制約情報は、衣装がロボット100の動き、特に、各種アクチュエータの動きを規制する強さを示す情報である。スペシャルモーションは、衣装に対応づけられる衣装特有の特定動作である。これらの詳細は後述する。
【0046】
データ格納部206は、基本モーション格納部232、マップ格納部216、個人データ格納部218、行動制約情報格納部240およびスペシャルモーション格納部242を含む。
ロボット100は、さまざまな動作パターン(モーション)を有する。手を震わせる、蛇行しながらオーナーに近づく、首をかしげたままオーナーを見つめる、などさまざまなモーションが定義されている。モーションには、ロボット100に初期設定される「基本モーション」と、衣装を着用したときその衣装に対応づけられる特有の「スペシャルモーション」がある。
【0047】
基本モーション格納部232は、基本モーションの制御内容を定義するモーションファイルを格納する。スペシャルモーション格納部242は、衣装IDと衣装に特有のスペシャルモーションのモーションファイルを対応付けて保持する。衣装を重ね着するときには、複数の衣装の組み合わせに対応するスペシャルモーションが用意されてもよい(詳細後述)。各モーションは、モーションIDにより識別される。スペシャルモーション格納部242については、
図11に関連して後述する。基本モーションおよびスペシャルモーションのモーションファイルは、ロボット100のモーション格納部160にダウンロードされる。どのモーションを実行するかは、サーバ200で決定されることもあるし、ロボット100で決定されることもある。
【0048】
ロボット100のモーションの多くは、複数の単位モーションを含む複合モーションとして構成される。たとえば、ロボット100がオーナーに近づくとき、オーナーの方に向き直る単位モーション、手を上げながら近づく単位モーション、体を揺すりながら近づく単位モーション、両手を上げながら着座する単位モーションの組み合わせとして表現されてもよい。このような4つのモーションの組み合わせにより、「オーナーに近づいて、途中で手を上げて、最後は体をゆすった上で着座する」というモーションが実現される。モーションファイルには、ロボット100に設けられたアクチュエータの回転角度や角速度などが時間軸に関連づけて定義される。モーションファイル(アクチュエータ制御情報)にしたがって、時間経過とともに各アクチュエータを制御することで様々なモーションが表現される。
【0049】
先の単位モーションから次の単位モーションに変化するときの移行時間を「インターバル」とよぶ。インターバルは、単位モーション変更に要する時間やモーションの内容に応じて定義されればよい。インターバルの長さは調整可能である。
以下、いつ、どのモーションを選ぶか、モーションを実現する上での各アクチュエータの出力調整など、ロボット100の行動制御にかかわる設定のことを「行動特性」と総称する。
【0050】
マップ格納部216は、複数の行動マップを格納する。個人データ格納部218は、ユーザ、特に、オーナーの情報を格納する。具体的には、ユーザに対する親密度やユーザの身体的特徴・行動的特徴など各種のパラメータを格納する。年齢や性別などの他の属性情報を格納してもよい。行動制約情報格納部240は、衣装がロボット100の行動を制約する大きさを示す情報である行動制約情報を衣装IDと対応づける。行動制約情報格納部240については、
図9に関連して後述する。行動制約情報は、ロボット100にダウンロードされ、行動制約情報格納部138にも格納される。
【0051】
ロボット100はユーザの身体的特徴や行動的特徴に基づいてユーザを識別する。ロボット100は、内蔵のカメラで常時周辺を撮像する。そして、画像に写る人物の身体的特徴と行動的特徴を抽出する。身体的特徴とは、背の高さ、好んで着る服、メガネの有無、肌の色、髪の色、耳の大きさなど身体に付随する視覚的特徴であってもよいし、平均体温や匂い、声質、などその他の特徴も含めてもよい。行動的特徴とは、具体的には、ユーザが好む場所、動きの活発さ、喫煙の有無など行動に付随する特徴である。たとえば、父親として識別されるオーナーは在宅しないことが多く、在宅時にはソファで動かないことが多いが、母親は台所にいることが多く、行動範囲が広い、といった行動上の特徴を抽出する。
ロボット100は、大量の画像情報やその他のセンシング情報から得られる身体的特徴および行動的特徴に基づいて、高い頻度で出現するユーザを「オーナー」としてクラスタリングする。
【0052】
ユーザIDでユーザを識別する方式は簡易かつ確実であるが、ユーザがユーザIDを提供可能な機器を保有していることが前提となる。一方、身体的特徴や行動的特徴によりユーザを識別する方法は画像認識処理負担が大きいものの携帯機器を保有していないユーザでも識別できるメリットがある。2つの方法は一方だけを採用してもよいし、補完的に2つの方法を併用してユーザ特定を行ってもよい。
本実施形態においては、身体的特徴と行動的特徴からユーザをクラスタリングし、ディープラーニング(多層型のニューラルネットワーク)によってユーザを識別する。詳細は後述する。
【0053】
ロボット100は、ユーザごとに親密度という内部パラメータを有する。ロボット100が、自分を抱き上げる、声をかけてくれるなど、自分に対して好意を示す行動を認識したとき、そのユーザに対する親密度が高くなる。ロボット100に関わらないユーザや、乱暴を働くユーザ、出会う頻度が低いユーザに対する親密度は低くなる。
【0054】
データ処理部202は、位置管理部208、マップ管理部210、認識部212、動作制御部222および親密度管理部220を含む。
位置管理部208は、ロボット100の位置座標を、
図4を用いて説明した方法にて特定する。位置管理部208はユーザの位置座標もリアルタイムで追跡してもよい。
【0055】
マップ管理部210は、複数の行動マップについて
図5に関連して説明した方法にて各座標のパラメータを変化させる。マップ管理部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の方向に向かう。
【0056】
認識部212は、外部環境を認識する。外部環境の認識には、温度や湿度に基づく天候や季節の認識、光量や温度に基づく物陰(安全地帯)の認識など多様な認識が含まれる。認識部212は、更に、人物認識部214と応対認識部228を含む。人物認識部214は、ロボット100の内蔵カメラによる撮像画像から人物を認識し、その人物の身体的特徴や行動的特徴を抽出する。そして、個人データ格納部218に登録されている身体特徴情報や行動特徴情報に基づいて、撮像されたユーザ、すなわち、ロボット100が見ているユーザが、父親、母親、長男などのどの人物に該当するかを判定する。人物認識部214は、表情認識部230を含む。表情認識部230は、ユーザの表情を画像認識することにより、ユーザの感情を推定する。
なお、人物認識部214は、人物以外、たとえば、ペットである猫や犬についても特徴抽出を行う。
【0057】
応対認識部228は、ロボット100になされたさまざまな応対行為を認識し、快・不快行為に分類する。応対認識部228は、また、ロボット100の行動に対するオーナーの応対行為を認識することにより、肯定・否定反応に分類する。
快・不快行為は、ユーザの応対行為が、生物として心地よいものであるか不快なものであるかにより判別される。たとえば、抱っこされることはロボット100にとって快行為であり、蹴られることはロボット100にとって不快行為である。肯定・否定反応は、ユーザの応対行為が、ユーザの快感情を示すものか不快感情を示すものであるかにより判別される。たとえば、抱っこされることはユーザの快感情を示す肯定反応であり、蹴られることはユーザの不快感情を示す否定反応である。
【0058】
サーバ200の動作制御部222は、ロボット100の動作制御部150と協働して、ロボット100のモーションを決定する。サーバ200の動作制御部222は、マップ管理部210による行動マップ選択に基づいて、ロボット100の移動目標地点とそのための移動ルートを作成する。動作制御部222は、複数の移動ルートを作成し、その上で、いずれかの移動ルートを選択してもよい。動作制御部222は、基本モーション格納部232の複数の基本モーションまたはスペシャルモーション格納部242のスペシャルモーションからロボット100のモーションを選択する。各モーションには状況ごとに選択確率が対応づけられている。たとえば、オーナーから快行為がなされたときには、モーションAを20%の確率で実行する、気温が30度以上となったとき、モーションBを5%の確率で実行する、といった選択方法が定義される。
【0059】
親密度管理部220は、ユーザごとの親密度を管理する。上述したように、親密度は個人データ格納部218において個人データの一部として登録される。快行為を検出したとき、親密度管理部220はそのオーナーに対する親密度をアップさせる。不快行為を検出したときには親密度はダウンする。また、長期間視認していないオーナーの親密度は徐々に低下する。
【0060】
(ロボット100)
ロボット100は、通信部142、データ処理部136、データ格納部148および駆動機構120を含む。
通信部142は、通信機126(
図6参照)に該当し、外部センサ114およびサーバ200との通信処理を担当する。データ格納部148は各種データを格納する。データ格納部148は、記憶装置124(
図6参照)に該当する。データ処理部136は、通信部142により取得されたデータおよびデータ格納部148に格納されているデータに基づいて各種処理を実行する。データ処理部136は、プロセッサ122およびプロセッサ122により実行されるコンピュータプログラムに該当する。データ処理部136は、通信部142、内部センサ128、駆動機構120およびデータ格納部148のインタフェースとしても機能する。
【0061】
データ格納部148は、ロボット100の各種モーションを定義するモーション格納部160と行動制約情報格納部138を含む。
ロボット100のモーション格納部160は、サーバ200の基本モーション格納部232およびスペシャルモーション格納部242から各種モーションファイルがダウンロードされたモーションファイルが格納される。モーションは、モーションIDによって識別される。前輪102を収容して着座する、手106を持ち上げる、2つの前輪102を逆回転させることで、あるいは、片方の前輪102だけを回転させることでロボット100を回転行動させる、前輪102を収納した状態で前輪102を回転させることで震える、ユーザから離れるときにいったん停止して振り返る、などのさまざまなモーションを表現するために、各種アクチュエータ(駆動機構120)の動作タイミング、動作時間、動作方向などがモーションファイルにおいて時系列定義される。
行動制約情報格納部138は、サーバ200の行動制約情報格納部240と同様、衣装の行動制約情報を格納する。
【0062】
通信部142は、モーション取得部184を含む。モーション取得部184は、衣装IDが検出されたとき、すなわち、衣装の着用が検出されたとき、衣装IDに対応する衣装属性情報(行動制約情報とスペシャルモーション)をサーバ200から取得する。サーバ200がロボット100の着用する衣装の衣装属性情報を保有していないときには、外部データベース182に問い合わせて衣装属性情報をダウンロードする。
【0063】
データ処理部136は、装備検出部186、制約判定部188、認識部156および動作制御部150を含む。
ロボット100の動作制御部150は、サーバ200の動作制御部222と協働してロボット100のモーションを決める。一部のモーションについてはサーバ200で決定し、他のモーションについてはロボット100で決定してもよい。また、ロボット100がモーションを決定するが、ロボット100の処理負荷が高いときにはサーバ200がモーションを決定するとしてもよい。サーバ200においてベースとなるモーションを決定し、ロボット100において追加のモーションを決定してもよい。モーションの決定処理をサーバ200およびロボット100においてどのように分担するかはロボットシステム300の仕様に応じて設計すればよい。
【0064】
ロボット100の動作制御部150は、サーバ200の動作制御部222とともにロボット100の移動方向を決める。行動マップに基づく移動をサーバ200で決定し、障害物をよけるなどの即時的移動をロボット100の動作制御部150により決定してもよい。駆動機構120は、動作制御部150の指示にしたがって前輪102を駆動することで、ロボット100を移動目標地点に向かわせる。
ロボット100の移動方向の大枠を決めるのは行動マップであるが、ロボット100は親密度に対応した行動も可能である。
【0065】
ロボット100の動作制御部150は選択したモーションを駆動機構120に実行指示する。駆動機構120は、モーションファイルにしたがって、各アクチュエータを制御する。
【0066】
動作制御部150は、親密度の高いユーザが近くにいるときには「抱っこ」をせがむ仕草として両方の手106をもちあげるモーションを実行することもできるし、「抱っこ」に飽きたときには左右の前輪102を収容したまま逆回転と停止を交互に繰り返すことで抱っこをいやがるモーションを表現することもできる。駆動機構120は、動作制御部150の指示にしたがって前輪102や手106、首(頭部フレーム316)を駆動することで、ロボット100にさまざまなモーションを表現させる。
【0067】
装備検出部186は、衣装180に埋め込まれるRFIDタグから衣装IDを読み取ったとき、衣装180が着用されたと判定する。衣装IDは至近距離にあるとき読み取り可能である。複数の衣装IDが読み取られたときには、重ね着をしている、と判断される。衣装IDに対応する衣装属性情報がすでにモーション格納部160に存在するときには、後述の方法により、動作制御部150は衣装属性情報に合わせて動作設定を変更する。
【0068】
装備検出部186は、RFIDタグ以外にも、さまざまな方法により衣装着用を検出してもよい。たとえば、ロボット100の内部温度が上昇したとき衣装が着用されたと判断してもよい。カメラにより着用する衣装を画像認識してもよい。外皮314の広範囲に静電容量センサを設置し、この静電容量センサが広範囲の接触を検出したときに、衣装が着用されたと判定してもよい。以下、RFIDタグ以外に、画像情報や温度情報、接触情報等の物理的情報に基づいて衣装着用を検出することを「物理認識」とよぶ。
【0069】
オーナーは、衣装IDを有さない衣装、たとえば、自作の衣装を100に着せたいと考えるかもしれない。以下、RFIDタグによって衣装IDを登録されている衣装を「公認衣装」、RFIDタグによって衣装IDを登録されていない衣装を「非公認衣装」とよぶ。特に区別しないときには、単に、「衣装」とよぶ。
【0070】
衣装IDに対応する衣装属性情報がモーション格納部160にないときには、モーション取得部184はサーバ200に衣装IDを送信し、衣装属性情報(モーションファイルと行動制約情報)をダウンロードする。サーバ200にもないときには、サーバ200は外部データベース182から衣装属性情報をダウンロードする。外部データベース182にも衣装属性情報がないときには非公認衣装として扱われる。
【0071】
制約判定部188は、衣装属性情報のうち、行動制約情報に基づいて衣装の行動制約性を判定する。この判定結果に基づいて、動作制御部150はロボット100の動作補正を行う。非公認衣装の場合には、動作制御部150は各アクチュエータに与える出力とその動作量を計測して動作データとして記録する。制約判定部188は、動作データに基づいて行動制約性を判定する。
【0072】
認識部156は、内部センサ128から得られた外部情報を解釈する。認識部156は、視覚的な認識(視覚部)、匂いの認識(嗅覚部)、音の認識(聴覚部)、触覚的な認識(触覚部)が可能である。
認識部156は、内蔵カメラ(内部センサ128)により定期的に外界を撮像し、人やペットなどの移動物体を検出する。これらの特徴はサーバ200に送信され、サーバ200の人物認識部214は移動物体の身体的特徴を抽出する。また、ユーザの匂いやユーザの声も検出する。匂いや音(声)は既知の方法にて複数種類に分類される。
【0073】
ロボット100に対する強い衝撃が与えられたとき、認識部156は内蔵の加速度センサによりこれを認識し、サーバ200の応対認識部228は、近隣にいるユーザによって「乱暴行為」が働かれたと認識する。ユーザがツノ112を掴んでロボット100を持ち上げるときにも、乱暴行為と認識してもよい。ロボット100に正対した状態にあるユーザが特定音量領域および特定周波数帯域にて発声したとき、サーバ200の応対認識部228は、自らに対する「声掛け行為」がなされたと認識してもよい。また、体温程度の温度を検知したときにはユーザによる「接触行為」がなされたと認識し、接触認識した状態で上方への加速度を検知したときには「抱っこ」がなされたと認識する。ユーザがボディ104を持ち上げるときの物理的接触をセンシングしてもよいし、前輪102にかかる荷重が低下することにより抱っこを認識してもよい。
【0074】
サーバ200の応対認識部228は、ロボット100に対するユーザの各種応対を認識する。各種応対行為のうち一部の典型的な応対行為には、快または不快、肯定または否定が対応づけられる。一般的には快行為となる応対行為のほとんどは肯定反応であり、不快行為となる応対行為のほとんどは否定反応となる。快・不快行為は親密度に関連し、肯定・否定反応はロボット100の行動選択に影響する。
【0075】
検出・分析・判定を含む一連の認識処理は、サーバ200の認識部212だけで行ってもよいし、ロボット100の認識部156だけで行ってもよいし、双方が役割分担をしながら上記認識処理を実行してもよい。
【0076】
認識部156により認識された応対行為に応じて、サーバ200の親密度管理部220はユーザに対する親密度を変化させる。原則的には、快行為を行ったユーザに対する親密度は高まり、不快行為を行ったユーザに対する親密度は低下する。
【0077】
サーバ200の認識部212は、応対に応じて快・不快を判定し、マップ管理部210は「場所に対する愛着」を表現する行動マップにおいて、快・不快行為がなされた地点のz値を変化させてもよい。たとえば、リビングにおいて快行為がなされたとき、マップ管理部210はリビングに好意地点を高い確率で設定してもよい。この場合、ロボット100はリビングを好み、リビングで快行為を受けることで、ますますリビングを好む、というポジティブ・フィードバック効果が実現する。
【0078】
サーバ200の人物認識部214は、外部センサ114または内部センサ128から得られた各種データから移動物体を検出し、その特徴(身体的特徴と行動的特徴)を抽出する。そして、これらの特徴に基づいて複数の移動物体をクラスタ分析する。移動物体としては、人間だけでなく、犬や猫などのペットが分析対象となることがある。
【0079】
ロボット100は、定期的に画像撮影を行い、人物認識部214はそれらの画像から移動物体を認識し、移動物体の特徴を抽出する。移動物体を検出したときには、ニオイセンサや内蔵の集音マイク、温度センサ等からも身体的特徴や行動的特徴が抽出される。たとえば、画像に移動物体が写っているとき、ひげが生えている、早朝活動している、赤い服を着ている、香水の匂いがする、声が大きい、メガネをかけている、スカートを履いている、白髪である、背が高い、太っている、日焼けしている、ソファにいる、といったさまざまな特徴が抽出される。
【0080】
ひげが生えている移動物体(ユーザ)は早朝に活動すること(早起き)が多く、赤い服を着ることが少ないのであれば、早起きでひげが生えていて赤い服をあまり着ないクラスタ(ユーザ)、という第1のプロファイルができる。一方、メガネをかけている移動物体はスカートを履いていることが多いが、この移動物体にはひげが生えていない場合、メガネをかけていてスカートを履いているが絶対ひげは生えていないクラスタ(ユーザ)、という第2のプロファイルができる。
以上は、簡単な設例であるが、上述の方法により、父親に対応する第1のプロファイルと母親に対応する第2のプロファイルが形成され、この家には少なくとも2人のユーザ(オーナー)がいることをロボット100は認識する。
【0081】
ただし、ロボット100は第1のプロファイルが「父親」であると認識する必要はない。あくまでも、「ひげが生えていて早起きすることが多く、赤い服を着ることはめったにないクラスタ」という人物像を認識できればよい。
【0082】
このようなクラスタ分析が完了している状態において、ロボット100が新たに移動物体(ユーザ)を認識したとする。
このとき、サーバ200の人物認識部214は、ロボット100から得られる画像等のセンシング情報から特徴抽出を行い、ディーブラーニング(多層型ニューラルネットワーク)により、ロボット100の近くにいる移動物体がどのクラスタに該当するかを判断する。たとえば、ひげが生えている移動物体を検出したとき、この移動物体は父親である確率が高い。この移動物体が早朝行動していれば、父親に該当することはいっそう確実である。一方、メガネをかけている移動物体を検出したときには、この移動物体は母親である可能性もある。この移動物体にひげが生えていれば、母親ではなく父親でもないので、クラスタ分析されていない新しい人物であると判定する。
【0083】
特徴抽出によるクラスタの形成(クラスタ分析)と、特徴抽出にともなうクラスタへの当てはめ(ディープラーニング)は同時並行的に実行されてもよい。
移動物体(ユーザ)からどのような行為をされるかによってそのユーザに対する親密度が変化する。
【0084】
ロボット100は、よく出会う人、よく触ってくる人、よく声をかけてくれる人に対して高い親密度を設定する。一方、めったに見ない人、あまり触ってこない人、乱暴な人、大声で叱る人に対する親密度は低くなる。ロボット100はセンサ(視覚、触覚、聴覚)によって検出するさまざまな外界情報にもとづいて、ユーザごとの親密度を変化させる。
【0085】
実際のロボット100は行動マップにしたがって自律的に複雑な行動選択を行う。ロボット100は、寂しさ、退屈さ、好奇心などさまざまなパラメータに基づいて複数の行動マップに影響されながら行動する。ロボット100は、行動マップの影響を除外すれば、あるいは、行動マップの影響が小さい内部状態にあるときには、原則的には、親密度の高い人に近づこうとし、親密度の低い人からは離れようとする。
【0086】
ロボット100の行動は親密度に応じて以下に類型化される。
(1)親密度が非常に高いクラスタ
ロボット100は、ユーザに近づき(以下、「近接行動」とよぶ)、かつ、人に好意を示す仕草としてあらかじめ定義される愛情仕草を行うことで親愛の情を強く表現する。
(2)親密度が比較的高いクラスタ
ロボット100は、近接行動のみを行う。
(3)親密度が比較的低いクラスタ
ロボット100は特段のアクションを行わない。
(4)親密度が特に低いクラスタ
ロボット100は、離脱行動を行う。
【0087】
以上の制御方法によれば、ロボット100は、親密度が高いユーザを見つけるとそのユーザに近寄り、逆に親密度が低いユーザを見つけるとそのユーザから離れる。このような制御方法により、いわゆる「人見知り」を行動表現できる。また、来客(親密度が低いユーザA)が現れたとき、ロボット100は、来客から離れて家族(親密度が高いユーザB)の方に向かうこともある。この場合、ユーザBはロボット100が人見知りをして不安を感じていること、自分を頼っていること、を感じ取ることができる。このような行動表現により、ユーザBは、選ばれ、頼られることの喜び、それにともなう愛着の情を喚起される。
【0088】
一方、来客であるユーザAが頻繁に訪れ、声を掛け、タッチをするとロボット100のユーザAに対する親密度は徐々に上昇し、ロボット100はユーザAに対して人見知り行動(離脱行動)をしなくなる。ユーザAも自分にロボット100が馴染んできてくれたことを感じ取ることで、ロボット100に対する愛着を抱くことができる。
【0089】
なお、以上の行動選択は、常に実行されるとは限らない。たとえば、ロボット100の好奇心を示す内部パラメータが高くなっているときには、好奇心を満たす場所を求める行動マップが重視されるため、ロボット100は親密度に影響された行動を選択しない可能性もある。また、玄関に設置されている外部センサ114がユーザの帰宅を検知した場合には、ユーザのお出迎え行動を最優先で実行するかもしれない。
【0090】
図8は、アクチュエータの出力と動作量の関係を模式的示す図である。
横軸があるアクチュエータの出力値(出力電圧)を示し、縦軸はこのアクチュエータの実際の動作量(移動量や回転量)を示す。非着用特性190は、ロボット100が衣装180を着用していないときの特性を示す。着用特性192は、ロボット100が衣装180を着用しているときの特性を示す。非着用時においては、出力P1に対応する動作量はD2である。衣装180を着用するとロボット100の動作が規制されるため、出力P1に対する動作量はD2よりも小さいD1となる。
【0091】
着用時においても動作量D2を実現するためには、アクチュエータの出力をP1よりも大きなP2に設定する必要がある。衣装180ごとに行動制約の大きさは異なる。ロボット100の動作制御部150は衣装180の行動制約性に応じて各種アクチュエータの出力調整をすることにより、衣装180の着用時においても非着用時と変わらない動作量を実現する。
【0092】
図9は、行動制約情報格納部240のデータ構造図である。
サーバ200の行動制約情報格納部240においては、衣装IDと衣装の行動制約情報が対応づけられる。上述したようにロボット100は複数のアクチュエータを含む。たとえば、衣装ID=01の衣装(以下、「衣装(01)」のように表記する)は、アクチュエータ1の動作にはまったく影響しないが、アクチュエータ2に対しては5%の行動制約をしている。
図8でいえば、アクチュエータ2についての動作量D1はD2の95%に対応する。したがって、衣装(01)の着用時においては、動作制御部150はアクチュエータ2の出力を非着用時よりも大きく設定変更する必要がある。
【0093】
装備検出部186が衣装IDを検出したとき、制約判定部188は、行動制約情報を参照して、衣装による各アクチュエータへの行動制約性を判定する。制約判定部188は、動作制御部150に各アクチュエータの出力調整値(補正値)を指示する。これにしたがって、動作制御部150は各アクチュエータの出力調整、すなわち、動作補正を行う。
【0094】
なお、行動制約情報格納部240において、衣装IDとカテゴリIDを対応づけ、カテゴリIDごとに行動制約情報を対応づけてもよい。たとえば、「夏服」に対応するカテゴリに共通の行動制約情報を設定してもよい。この場合には、制約判定部188は、衣装IDに対応づけられるカテゴリIDから、行動制約性を判定すればよい。
【0095】
図10は、衣装着用時の動作補正過程を示すフローチャートである。
まず、装備検出部186は、画像情報や温度情報、接触情報等の物理的情報に基づいて衣装着用を物理認識する(S10)。衣装着用を物理認識できないときには(S10のN)、以降の処理は実行されない。衣装着用を物理認識できたときであって(S10のY)、装備検出部186が衣装IDも検出できたときには(S12のY)、すなわち、公認衣装の着用時には、制約判定部188は衣装の行動制約性を判定する(S14)。ロボット100の行動制約情報格納部138において、行動制約情報が保存されているときには、制約判定部188はそれに基づいて行動制約性を判定する。行動制約情報格納部138に行動制約情報が保存されていないときには、モーション取得部184はサーバ200から行動制約情報を取得する。
【0096】
ロボット100の動作制御部150は、行動制約情報に基づいて動作補正を実行する(S16)。具体的には、各アクチュエータの出力を行動制約情報に基づいて設定変更する。動作補正後、動作制御部150は各アクチュエータを実際に動かし、出力値と動作量を計測する。出力値と動作量の関係を示す動作データを参照し、動作補正後に所望の動作量が実現されているか否かを判定する(S18)。
【0097】
S16の動作補正により、所望の動作量が実現されていれば(S18のY)、動作制御部150は、更に、衣装IDに対応するスペシャルモーションを設定する(S22)。ロボット100のモーション格納部160にスペシャルモーションのモーションファイルがないときには、モーション取得部184はサーバ200からモーションファイルを取得する。
【0098】
一方、動作補正によって所望の動作量が実現されていないとき(S18のN)、ロボット100は報知動作を実行する(S20)。この場合、衣装IDを検出したものの、衣装が正しく着用されていないために正しく動けなくなっている可能性がある。報知動作は、衣装着用によって正常に動けない旨をオーナーに報告する動作である。具体的には、動作制御部150は、目を光らせる、音声を発する、体を揺らす、などの報知動作を実行する。報知動作は、ロボット100に特有の「何かを知らせるときの典型的な動作(モーション)」としてあらかじめ初期設定されればよい。
【0099】
報知動作は、拒絶動作として表現されてもよい。拒絶動作は、ロボット100が衣装180の着用を拒絶する動作である。具体的には、動作制御部150は、オーナーから離れる、体を激しく揺らす、まったく動かなくなる、などの拒絶動作を実行する。拒絶動作は、ロボット100に特有の「何かを知らせるときの動作のうち、特に、何かをいやがっているときの典型的な動作(モーション)」としてあらかじめ初期設定されればよい。
【0100】
ロボット100は、衣装によって動きが規制されるものの、衣装に応じて適切に各種アクチュエータの出力調整を行うことで衣装を着たときでも衣装を着ていないときと同様に動くことができる。
【0101】
衣装着用を物理認識できたものの(S10のY)、衣装IDを検出できないとき(S12のN)、すなわち、非公認衣装の着用時には、S14およびS16の処理はスキップされる。非公認衣装の場合、動作制御部150は、アクチュエータの出力値と動作量を動作データとして記録し、制約判定部188は動作データに基づいて非公認衣装の行動制約の大きさを判定すればよい。判定結果に応じて、各アクチュエータの出力調整、すなわち、動作補正を実行する。
【0102】
なお、衣装着用を物理認識できていないにも関わらず、行動制約性が認識されるときには、装備検出部186はロボット100の身体を撮像し、衣装着用をしていないか、あるいは、行動制約をする物体が体に付着していないかを画像認識により確認してもよい。そして、その確認結果を音声、通信、文字表示、あるいは、特有の報知動作等により、オーナーに報知してもよい。
【0103】
図11は、スペシャルモーション格納部242のデータ構造図である。
ロボット100は衣装に応じて行動内容が変化してもよい。たとえば、ある衣装を着用したときには、その衣装に特有のスペシャルモーションを実行可能としてもよい。スペシャルモーションとしては、アイドルのコスチュームを着るとそのアイドルと同じ踊りを実行する、和服を着るといつもよりゆっくりと着座する、運動着を着ると活発に動き回る、などが考えられる。
【0104】
スペシャルモーションは、基本モーションとは異なる新規追加のモーションであってもいいし、基本モーションにおける各種設定を調整することにより、基本モーションをアレンジしたものであってもよい。
【0105】
図11に示すように、衣装には「着用条件」と「発動条件」が設定される。着用条件は、衣装の着用が想定される状況(想定着用状態)を指定する。着用条件に合わないときに衣装を着用すると、ロボット100は不快行為と認識する。発動条件は、スペシャルモーションを実行するタイミングである。
【0106】
たとえば、衣装(01)には着用条件はない。このため、衣装(01)はいつでもロボット100に着せることができる。衣装(01)にはスペシャルモーション(C01)が対応づけられ、スペシャルモーション(C01)の発動条件は午前10時である。ロボット100が衣装(01)を着用すると、午前10時になったとき所定の確率にてスペシャルモーション(C01)を実行する。
【0107】
衣装(02)の着用条件は「気温20度以上」である。衣装(02)は夏服であり、気温20度未満のときに着用されると、動作制御部150は着用をいやがる拒絶動作を実行する。衣装(02)には2つのスペシャルモーション(C02,C03)が対応づけられている。スペシャルモーション(C02)の発動条件は「音楽A」である。動作制御部150は、衣装(02)の着用時に音楽Aが聞こえると、所定の選択確率にてスペシャルモーション(C02)を実行する。スペシャルモーション(C03)の発動条件は「3人以上視認」である。衣装(02)の着用時にロボット100の内蔵カメラが3人以上の「人間」を検出すると、所定の選択確率にてスペシャルモーション(C03)が実行される。
【0108】
スペシャルモーションは、固定である必要はない。たとえば、期間限定のスペシャルモーションが用意されてもよい。サーバ200は、外部データベース182に定期的にアクセスすることにより、最新のモーションファイルを取得すればよい。
【0109】
衣装(01)と衣装(03)を重ねて着用したときには、発動条件として「誕生日」が設定される。ロボット100の誕生日(製造年月日)に衣装(01)と衣装(03)を重ね着すると、ロボット100はスペシャルモーション(C05)を所定の確率で実行する。装備検出部186が複数の衣装IDを検出したときには、重ね着されたと判定する。重ね着をしたときの行動制約情報が別途用意されてもよいし、重ね着された複数の衣装のうち一番下に着用する衣装の行動制約情報に基づいて動作補正がなされてもよい。複数の衣装それぞれの制約条件を加算して各アクチュエータの制約値を算出することで動作補正してもよい。
【0110】
衣装以外の装身具についても、行動制約情報とスペシャルモーションが対応づけられてもよい。装身具としては、ウィッグ、帽子、ポシェット、アクセサリ、ネクタイ、メガネなどが考えられる。香水など匂いに応じたスペシャルモーションが用意されてもよい。装備検出部186は、装身具を識別するIDを検出することにより装身具の装着を検出すればよい。更に、衣装と装身具、複数の装身具の組み合わせに対応して、行動制約情報やスペシャルモーションが対応づけられてもよい。そして、これらの組み合わせに対応する行動制約情報やスペシャルモーションに基づいて、動作制御部150はロボット100の行動特性を変化させてもよい。
【0111】
以上、実施形態に基づいてロボット100およびロボット100を含むロボットシステム300について説明した。
1以上の行動マップによりパターン化できず予測しづらい、かつ、生物的な行動選択を表現している。
人間の行動はさまざまな要因の影響を受けるが、衣装はその一つである。人間は、衣装によって気分が変わり、行動も変化する。ロボット100は、衣装によって行動特性が変化させることで、人間的な行動特性をエミュレートしている。衣装を着たときにロボット100の動きが過度に鈍くなってしまうことは望ましくない。衣装に応じて各種アクチュエータの出力をさりげなく調整することで、ロボット100は衣装を「着こなす」ことができる。
【0112】
同じような顔をしているペットでもかわいい服を着せることで「うちの子は特別」という特別感を味わいたいという心理から、人はペットに衣装を着せたくなる。また、子どもが大きくなったあと、もう一度かわいい子供服を着せる相手が欲しいという気持ちもあるかもしれない。本実施形態におけるロボット100は、このような人間の自然な愛情表現を受け止めることができる。
【0113】
ロボット100と衣装の組み合わせにより、衣装メーカーにも新しい商機を提供できる。衣装メーカーはロボット100に合った衣装やその衣装に合った着用条件や発動条件、スペシャルモーションを考えることで新しい顧客層を開拓できる。本発明は、ロボット100だけではなく、その関連産業も活性化させる可能性がある。
【0114】
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
【0115】
1つのロボット100と1つのサーバ200、複数の外部センサ114によりロボットシステム300が構成されるとして説明したが、ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部がロボット100に割り当てられてもよい。1つのサーバ200が複数のロボット100をコントロールしてもよいし、複数のサーバ200が協働して1以上のロボット100をコントロールしてもよい。
【0116】
ロボット100やサーバ200以外の第3の装置が、機能の一部を担ってもよい。
図7において説明したロボット100の各機能とサーバ200の各機能の集合体は大局的には1つの「ロボット」として把握することも可能である。1つまたは複数のハードウェアに対して、本発明を実現するために必要な複数の機能をどのように配分するかは、各ハードウェアの処理能力やロボットシステム300に求められる仕様等に鑑みて決定されればよい。
【0117】
上述したように、「狭義におけるロボット」とはサーバ200を含まないロボット100のことであるが、「広義におけるロボット」はロボットシステム300のことである。サーバ200の機能の多くは、将来的にはロボット100に統合されていく可能性も考えられる。
【0118】
本実施形態におけるロボット100は、衣装に対応づけられる行動制約情報に基づいて、動作補正を行う。変形例として、ロボット100は実際に各種動作を実行しながら動作補正を行ってもよい。たとえば、ロボット100は定期的にアクチュエータの出力と動作量を計測し、その計測結果を動作データとして記録する。動作制御部150は、動作データを参照し、アクチュエータの出力から想定される動作量と、実際の動作量に乖離があるときには、フィードバック制御により出力調整すればよい。
【0119】
ロボット100は、アクチュエータに所定の出力値を設定し、そのときの動作量を計測してもよい。わずかな行動制約性に対応する動作調整方法を指定する行動制約設定から、大きな行動制約性に対応する動作調整方法を指定する行動制約設定まで複数種類の行動制約設定があらかじめ用意しておく。制約判定部188は、動作データから行動制約の大きさを判定し、どの行動制約設定に該当するかを判定してもよい。行動制約設定ごとに、
図9に示した行動制約情報が対応づけられる。動作制御部150は、行動制約設定に応じて動作補正をすればよい。この場合には、ロボット100が衣装IDを検出しなくても、実際にアクチュエータを動かしながら行動制約性を判断し、それに応じて適切に動作補正できる。
【0120】
衣装と行動制約情報を対応づけてもよいし、衣装の属性と行動制約情報を対応づけてもよい。たとえば、衣装の重さや質感などさまざまな属性と行動制約情報を対応づけてもよい。重さが1キログラム以上の衣装の場合には、アクチュエータxの出力をどの程度調整するかをあらかじめ定義しておいてもよい。
【0121】
衣装の着用は、衣装IDだけでなく、物理的情報に基づいて判定されてもよい。たとえば、カメラによる画像認識、静電容量センサに対する接触などである。また、ロボット100の外皮314の所定箇所、好ましくは、複数箇所にタッチセンサを設置し、衣装着用時にタッチセンサに発生する検出ノイズにより着用を検出してもよい。CdS(硫化カドミウム)セルなどの光センサをロボット100の複数箇所に設置し、日中において光検出が弱まったときには衣装が着用されたと判断してもよい。そのほかにも、衣装の重みを回動軸378等に設けられるひずみゲージで認識してもよい。
【0122】
上述の各種着用検出方法と衣装IDによる着用検出は併用してもよい。衣装IDを検出したにもかかわらず、カメラ等では衣装着用を確認できていないとき、動作制御部150は報知動作を実行してもよい。この場合には、衣装が正しく着用されていない可能性があるためである。動作制御部150は、報知動作、あるいは、拒否動作により、衣装が正しく着用されていない旨を行動表現してもよい。これは、装身具の着用についても同様である。
【0123】
衣装や装身具を着用したときには、スペシャルモーションとして新たなモーションが追加されるだけではなく、基本モーションの調整をしてもよい。たとえば、衣装Aを着用したときには、基本モーションAの選択確率を低下させてもよいし、基本モーションBを構成する単位モーションの一部を置換・省略してもよい。衣装Aを着用したとき、基本モーションCに新たな単位モーションを追加してもよいし、基本モーションDのインターバルを調整してもよい。このような微調整により、衣装によって少しだけ行動が変わる、という表現も可能である。たとえば、高価な服を着るとわずかながらおとなしくなる、という行動表現も可能である。
【0124】
衣装に「フォーマル」「高価」「薄さ」「袖の有無」「色彩」などカテゴリを対応づけ、カテゴリに応じた行動調整方法、カテゴリに対応するスペシャルモーションが設定されてもよい。このような設定によれば、赤い服を着たときの特有の動き、赤くて高価な服を着たときの特有の動きなど微妙な行動表現も可能である。
【0125】
衣装と感情を組み合わせてもよい。たとえば、寂しさという感情がたかまっているときに赤い服を着るとスペシャルモーションの選択確率が高まるという設定も考えられる。感情以外にも天候、明るさ(光量)などの外部環境情報と衣装の組み合わせも考えられる。ロボットの年齢(製造後の経過年数)に応じて、スペシャルモーションの選択確率が低下してもよい。老齢のロボットほどスペシャルモーションを実行しにくくなるため、ロボットの「老化」を表現できる。
【0126】
本実施形態においては、衣装のRFIDは衣装IDを送信するとして説明した。変形例として、衣装に縫い付けられるICチップに、衣装IDだけでなく衣装属性情報が記憶されてもよい。ロボット100は、衣装のICチップから衣装IDに対応する衣装属性情報を取得してもよい。
【0127】
衣装を着用したときにアクチュエータだけではなく、センサの検出電圧(検出力)を補正してもよい。たとえば、外皮314の広範囲に静電容量センサを設置してオーナーからの接触を検出する場合、衣装を着用すると接触検出の感度が低下すると考えられる。ロボット100は、衣装着用を検出したときには、静電容量センサの検出電圧を高めて検出感度を補正してもよい。
【0128】
本実施形態においては、衣装によって過度の行動制約がなされないように、ロボット100はアクチュエータの出力を高めることで行動制約性を緩和している。変形例として、行動制約以上にアクチュエータの出力を高めてもよい。この場合には、ある衣装を着たときには、物理的に動きにくくなっているにも関わらず、むしろ軽快に動くという行動表現が可能である。この場合、ある衣装を着ることで気持ちが浮き立っているという感情を行動表現できる。
【0129】
衣装IDを検出できない状態で衣装着用を検出したときには、ロボット100は衣装着用をいやがる拒絶動作を実行してもよい。また、衣装IDを検出できないときには行動制約情報を取得できないので、この場合にはロボット100はアクチュエータの出力と動作量をチェックしながら自動的に動作補正してもよい。
【0130】
図12は、変形例におけるロボットシステム300の機能ブロック図である。
変形例のロボットシステム300において、サーバ200のデータ処理部202は愛着度管理部224を含む。愛着度管理部224は、ロボット100の衣装に対する愛着の大きさを示す指標値として「愛着度」を管理する。データ格納部206は、愛着度情報格納部250を含む。愛着度情報格納部250は、衣装に対する愛着度が設定されるデータベースである。愛着度情報格納部250のデータ構造は、次の
図13に関連して後述する。
【0131】
図13は、愛着度情報格納部250のデータ構造図である。
衣装に対する愛着度は、−100(嫌い)から+100(好き)の範囲にて指標化される。
図13によれば、衣装(02)の愛着度は84であるから、ロボット100は衣装(02)を好んでいる。一方、衣装(04)の愛着度は−90であるから、ロボット100は衣装(04)を嫌っている。また、衣装(05)の愛着度は0であるから、ロボット100は衣装(05)に対して中立である。
【0132】
愛着度管理部224は、ユーザのロボット100に対する応対行為に応じて愛着度を変化させる。上述したように、応対認識部228はロボット100になされた応対行為を認識し、快・不快行為に分類する。ロボット100が衣装(01)を着用しているときに快行為が認識された場合、愛着度管理部224は衣装(01)の愛着度を増加させる。一方、ロボット100が衣装(02)を着用しているときに不快行為が認識された場合には愛着度管理部224は衣装(02)の愛着度を低下させる。この結果、衣装にまつわる体験とそれにともなう快・不快感(思い出)が衣装の愛着度として反映されることになる。快行為は、たとえば、抱っこされた、なでられた、見つめられた、親密度が所定値以上のユーザを所定時間以上視認しつづけた、ユーザの笑顔の回数が過去の実績と比べると多い、ユーザから「かわいい」「似合う」「格好いい」などのポジティブな言動を受けたなどが考えられる。不快行為は、叩かれた、落とされた、蹴られた、親密度が所定値以上のユーザを所定時間以上視認できなかった、ユーザの笑顔の回数が過去の実績と比べると少ない、ユーザから「かわいくない」「似合ってない」「格好悪い」などのネガティブな言動を受けたなどが考えられる。
【0133】
ロボット100の動作制御部150(あるいはサーバ200の動作制御部222)は、衣装の愛着度に応じて、ロボット100の行動特性を変化させる。たとえば、愛着度が閾値T1よりも高い衣装をロボット100が着用しているときには、動作制御部150は各アクチュエータの出力値を通常よりも高く設定してもよい。
図8においては、動作量D2を実現するために出力P2を設定するとして説明した。衣装に対する愛着度が閾値T1によりも高いときには、動作制御部150は出力P2よりも大きな出力P3を設定してもよい。このような制御方法によれば、好みの衣装を着ているときには、ロボット100は通常よりも軽快に動くことができる。
【0134】
一方、愛着度が閾値T2(<閾値T1)よりも低い衣装をロボット100が着用しているときには、動作制御部150は各アクチュエータの出力値を通常よりも低く設定してもよい。
図8においては、動作量D2を実現するための出力P2よりも低い出力P4を設定してもよい。このような制御方法によれば、嫌いな衣装を着ているときには、ロボット100の動きは通常よりも鈍重になる。衣装に対する愛着度に応じて、ロボット100の動きの軽快さを変化させることにより、ロボット100の衣装に対する好みを行動で表現できる。
【0135】
上述したように、衣装にはスペシャルモーションが対応づけられる。ロボット100が衣装を着用し、かつ、スペシャルモーションの発動条件が成立すると、ロボット100はスペシャルモーションを所定の確率にて実行する。動作制御部222は、スペシャルモーションの選択確率を愛着度に応じて変化させてもよい。すなわち、愛着度の高い衣装ほどスペシャルモーションの選択確率を高く設定し、愛着度の低い衣装ほどスペシャルモーションの選択確率を低く設定してもよい。このような制御方法によれば、スペシャルモーションの実行のされやすさにより、ロボット100の衣装に対する好みを行動表現できる。
【0136】
このほかにも、動作制御部222は、ロボット100がユーザを追いかけるなどの「喜び」「嬉しさ」「楽しさ」の行動表現に対応づけられる所定の基本モーションの選択確率を愛着度に応じて変化させてもよい。動作制御部222は愛着度に応じてインターバルの長さを変化させてもよい。具体的には、動作制御部222は衣装の愛着度が高いほどインターバルを短く設定することにより、ロボット100の機敏な動きを表現してもよい。同様にして、動作制御部222は衣装の愛着度が低いほどインターバルを長く設定することにより、ロボット100の鈍重さを表現してもよい。このような制御方法によっても、「お気に入りの衣装を着て浮かれている」「気に入らない衣装を着させられて沈んでいる」という行動表現を実現できる。
【0137】
動作制御部222は、衣装の着用時だけでなく、着用前においても衣装の愛着度に応じてロボット100の行動特性を変化させてもよい。ユーザがロボット100に衣装を着用させるとき、認識部212は衣装を画像認識する。愛着度情報格納部250においては、衣装ごとに画像情報が対応づけられてもよい。認識部212は、カメラで撮像した衣装画像と愛着度情報格納部250に登録されている衣装画像を比較することにより衣装を特定し、動作制御部222はその衣装の愛着度に応じてロボット100の行動特性を変化させてもよい。
【0138】
動作制御部222は、提示された衣装に対する愛着度に応じて、ロボット100のモーションを選択してもよい。たとえば、基本モーション格納部232は、回転する、手106を上げるなどの喜びのモーションと、後ずさりする、逃げる、そっぽを向くなどの拒否のモーションを定義しておく。動作制御部222は、愛着度が所定値以上、たとえば、70以上の衣装が提示されたときには喜びのモーションを選択し、愛着度が所定値以下、たとえば、−40以下の衣装が提示されたときには拒否のモーションを実行してもよい。このような制御方法によれば、衣装を着用する前から、「着たい」「着たくない」というロボット100の「意思」を行動表現できる。
【0139】
愛着度は、応対行為によって可変であってもよいし、衣装ごとに固定値が設定されてもよい。また、応対行為に対して愛着度が変化しやすい衣装と変化しにくい衣装があってもよい。愛着度管理部224は、季節や気温に応じて愛着度を修正してもよい。たとえば、着用条件が成立していない衣装を着用させるとき、愛着度管理部224はその衣装に対する愛着度を下方修正してもよい。同様にして、愛着度管理部224は衣装が着用されるごとにその衣装に対する愛着度を上方修正してもよい。反対に、最終着用日から時間が経過した衣装については、愛着度管理部224はその衣装に対する愛着度を時間経過に応じて漸減させてもよい。
【0140】
赤い衣装Aの愛着度が高まったとき、愛着度管理部224は別の赤い衣装Bの愛着度を高めてもよい。このような制御方法によれば、「赤」という「属性」に対する「好み」を表現することもできる。同様にして、黒い衣装Cの愛着度が低くなったとき、愛着度管理部224は別の黒い衣装Dの愛着度も低下させてもよい。このような制御方法によれば、「黒」という「属性」に対する「嫌悪」を表現できる。
【0141】
ロボット100は、防水加工が施されるものの、雨天での外出は推奨されない。一方、雨具などの防水具を着用したときには、雨天外出が可能となる。ウェットスーツを着用することにより、プールや風呂に入ることも可能である。装備検出部186は、防水具についても画像認識やRFID等により着用検出をしてもよい。認識部212は、画像認識により、雨天外出、浴室、プール等への移動を認識する。動作制御部222は、防水具が着用されていない状態で雨天外出等を認識したときには、上述した拒否モーションを実行する。
【0142】
ロボット100は、RFIDまたは画像認識により衣装を認識してもよい。このほかにも、衣装に取り付けられるプラスチックカードをロボット100に形成される挿入口に差し込むことにより、装備検出部186は衣装の種別を認識してもよい。このプラスチックカードには1以上の孔が形成されており、孔の数および位置により衣装IDが特定される。このようなパンチカード方式にて衣装を認識してもよい。装備検出部186は、衣装に貼付される二次元コードにより、衣装種別を認識してもよい。
【0143】
上述したように、衣装にはスペシャルモーションが対応づけられる。ロボット100が衣装を着用し、かつ、ロボット100の置かれた状況がスペシャルモーションの発動条件を満たすと、ロボット100はスペシャルモーションを実行する。発動条件を満たすか否かは、ロボット100が備える各種のセンサから得られる情報や通信機能を用いることで判定される。発動条件は、判定に用いるデバイスを特定する情報と、そのデバイスにおける検出値の判定条件とを含むことで定義される。たとえば、発動条件として、「室温が25度以上になったとき」と定義されている場合、判定デバイスとして「温度センサ」が指定され、判定条件として「25度以上」が指定される。「音楽Aが聞こえたとき」という発動条件であれば、判定デバイスとして「マイク」が指定され、判定条件として音楽Aの波形パターンや特徴量などが指定される。また、「音楽Aが聞こえ、かつユーザがいるとき」のように複数の条件が指定されてもよい。もちろん、発動条件自体が、ロボット100のデータ処理部136において実行可能なスクリプトなどのプログラムとして提供され、衣装を着用したことを契機に発動条件を判定するためのプログラムモジュールが読み込まれ、発動条件判定部として随時判定処理をおこなってもよい。同様に、上述した着用条件も、判定に用いるデバイスを特定する情報と、そのデバイスにおける検出値の判定条件を含むことで定義される。
【0144】
更に、着用条件自体が、ロボット100のデータ処理部136において実行可能なプログラムとして提供され、衣装を着用したことを契機に着用条件を判定するためのプログラムモジュールが読み込まれ、着用条件判定部として判定処理をおこなってもよい。装備検出部186により衣装の着用が検出されると、衣装に関連付けられた着用条件が判定される、その後、発動条件が随時判定される。
【0145】
装備検出部186は、衣装が着用されたときに検出動作をおこなうとしたが、ロボット100が衣装を着用した状態で動作すると、動作中に衣装がずれたり、破れたりすることで着用状態が変わることが予想される。そのため、装備検出部186および制約判定部188は、一定の時間間隔で着用状態を検出してもよい。また、ロボット100が充電などで所定の時間以上停止していた場合は、停止状態から再び行動を開始する前に着用状態を検出してもよい。