特許第6671577号(P6671577)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ GROOVE X株式会社の特許一覧

<>
  • 特許6671577-人を識別する自律行動型ロボット 図000002
  • 特許6671577-人を識別する自律行動型ロボット 図000003
  • 特許6671577-人を識別する自律行動型ロボット 図000004
  • 特許6671577-人を識別する自律行動型ロボット 図000005
  • 特許6671577-人を識別する自律行動型ロボット 図000006
  • 特許6671577-人を識別する自律行動型ロボット 図000007
  • 特許6671577-人を識別する自律行動型ロボット 図000008
  • 特許6671577-人を識別する自律行動型ロボット 図000009
  • 特許6671577-人を識別する自律行動型ロボット 図000010
  • 特許6671577-人を識別する自律行動型ロボット 図000011
  • 特許6671577-人を識別する自律行動型ロボット 図000012
  • 特許6671577-人を識別する自律行動型ロボット 図000013
  • 特許6671577-人を識別する自律行動型ロボット 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6671577
(24)【登録日】2020年3月6日
(45)【発行日】2020年3月25日
(54)【発明の名称】人を識別する自律行動型ロボット
(51)【国際特許分類】
   G06T 7/00 20170101AFI20200316BHJP
   A63H 11/00 20060101ALI20200316BHJP
【FI】
   G06T7/00 300F
   A63H11/00 Z
【請求項の数】9
【全頁数】30
(21)【出願番号】特願2018-549031(P2018-549031)
(86)(22)【出願日】2017年11月1日
(86)【国際出願番号】JP2017039505
(87)【国際公開番号】WO2018084170
(87)【国際公開日】20180511
【審査請求日】2018年9月25日
(31)【優先権主張番号】特願2016-216912(P2016-216912)
(32)【優先日】2016年11月7日
(33)【優先権主張国】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】515337268
【氏名又は名称】GROOVE X株式会社
(74)【代理人】
【識別番号】110002273
【氏名又は名称】特許業務法人インターブレイン
(72)【発明者】
【氏名】林 要
【審査官】 松浦 功
(56)【参考文献】
【文献】 特開2002−056388(JP,A)
【文献】 特開2007−220004(JP,A)
【文献】 特開2014−103479(JP,A)
【文献】 特開2005−193351(JP,A)
【文献】 特開2003−205179(JP,A)
【文献】 特開2005−161450(JP,A)
【文献】 米国特許出願公開第2009/0055019(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
A63H 11/00
B25J 5/00
G06T 1/00
(57)【特許請求の範囲】
【請求項1】
カメラを制御する撮像制御部と、
移動物体の撮像画像から抽出される特徴ベクトルに基づいて移動物体を判別する認識部と、
判別結果に応じて、ロボットのモーションを選択する動作選択部と、
前記動作選択部により選択されたモーションを実行する駆動機構と、
移動物体によるロボットの抱え上げを検出する動作検出部と、を備え、
前記認識部は、前記移動物体にロボットが抱え上げられたときの撮像画像をマスタ画像として設定し、前記マスタ画像から抽出される特徴ベクトルに基づいて移動物体の判別基準を設定することを特徴とする自律行動型ロボット。
【請求項2】
前記認識部は、前記移動物体を複数の角度から撮像した複数の撮像画像をマスタ画像として設定することを特徴とする請求項1に記載の自律行動型ロボット。
【請求項3】
前記動作選択部は、所定の誘導モーションを前記駆動機構に実行させ、
前記撮像制御部は、前記誘導モーションの実行を契機として前記移動物体のマスタ画像を撮像することを特徴とする請求項1または2に記載の自律行動型ロボット。
【請求項4】
前記誘導モーションは、非言語モーションであることを特徴とする請求項3に記載の自律行動型ロボット。
【請求項5】
前記認識部は、更に、前記移動物体にロボットが抱え下ろされるときの撮像画像もマスタ画像として設定することを特徴とする請求項1に記載の自律行動型ロボット。
【請求項6】
前記動作選択部は、前記移動物体にロボットが抱え下ろされたあとに前記移動物体を追跡するモーションを選択させ、
前記撮像制御部は、追跡時に前記移動物体のマスタ画像を撮像することを特徴とする請求項1に記載の自律行動型ロボット。
【請求項7】
前記撮像制御部は、前記移動物体にロボットが抱え下ろされたあとも前記移動物体を追跡し、所定のタイミングにて前記移動物体の第2のマスタ画像を撮像し、
前記認識部は、前記移動物体にロボットが抱え上げられたときに取得される第1のマスタ画像と前記第2のマスタ画像を対応づけて、前記移動物体に関する複数の特徴ベクトルを抽出することを特徴とする請求項1に記載の自律行動型ロボット。
【請求項8】
前記認識部は、移動物体の撮像画像および音声情報の双方から抽出される特徴ベクトルに基づいて移動物体を判別し、前記マスタ画像の取得に際しては前記移動物体から音声情報も取得し、前記マスタ画像および前記音声情報から抽出される特徴ベクトルに基づいて移動物体の判別基準を設定することを特徴とする請求項1に記載の自律行動型ロボット。
【請求項9】
ロボットによる物体認識のためのコンピュータプログラムであって、
移動物体にロボットが抱え上げられたときの移動物体の撮像画像をマスタ画像として設定する機能と、
前記マスタ画像から抽出される特徴ベクトルに基づいて移動物体の判別基準を設定する機能と、
移動物体の撮像画像から抽出される特徴ベクトルに基づいて移動物体を判別する機能と、をロボットに発揮させることを特徴とする行動制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、内部状態または外部環境に応じて自律的に行動選択するロボット、に関する。
【背景技術】
【0002】
人間は、感覚器官を通して外部環境からさまざまな情報を取得し、行動選択する。意識的に行動選択することもあれば、無意識的な行動選択もある。繰り返し行動はやがて無意識的行動となり、新しい行動は意識領域にとどまる。
【0003】
人間は、自らの行動を自由に選択する意志、すなわち、自由意志をもっていると信じている。人間が他人に対して愛情や憎しみといった感情を抱くのは、他人にも自由意志があると信じているからである。自由意志を持つ者、少なくとも自由意志を持っていると想定可能な存在は、人の寂しさを癒す存在にもなる。
【0004】
人間がペットを飼う理由は、人間の役に立つか否かよりも、ペットが癒しを与えてくれるからである。ペットは、多かれ少なかれ自由意志を感じさせる存在であるからこそ、人間のよき伴侶となることができる。
【0005】
その一方、ペットの世話をする時間を十分に確保できない、ペットを飼える住環境にない、アレルギーがある、死別がつらい、といったさまざまな理由により、ペットをあきらめている人は多い。もし、ペットの役割が務まるロボットがあれば、ペットを飼えない人にもペットが与えてくれるような癒しを与えられるかもしれない(特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2000−323219号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
近年、ロボット技術は急速に進歩しつつあるが、ペットのような伴侶としての存在感を実現するには至っていない。ロボットに自由意志があるとは思えないからである。人間は、ペットの自由意志があるとしか思えないような行動を観察することにより、ペットに自由意志の存在を感じ、ペットに共感し、ペットに癒される。
したがって、人間的・生物的な行動を表現できるロボットであれば、特に、相手に応じて行動を変化させるロボットであれば、ロボットへの共感を大きく高めることができると考えられる。
【0008】
上述の行動特性を実現するためには、ロボットに人間を識別する能力を持たせなければならない。顔認証技術においては、既知の人物Aの基準となるべき撮像画像(以下、「マスタ画像」とよぶ)と未確認の人物Xの撮像画像(以下、「検査画像」とよぶ)を比較することにより、人物Aと人物Xが同一人物であるか否かを判定する。マスタ画像の取得に際しては、システムが被写体となる人物に撮像時の姿勢や表情について指示することも多い。
【0009】
人物の識別精度を高めるためには質のよいマスタ画像が必要であるが、マスタ画像を取得させるためにユーザに過度の負担をかけることは好ましくない。特に、生物的な行動特性を実現すべきロボットにおいてユーザに行動強制することは、ロボットの非生物性をユーザに感じさせてしまうおそれもある。
【0010】
本発明は上記認識に基づいて完成された発明であり、その主たる目的は、ユーザへの負担を抑制しつつロボットの識別能力を高める技術、を提供することにある。
【課題を解決するための手段】
【0011】
本発明のある態様における自律行動型ロボットは、カメラを制御する撮像制御部と、移動物体の撮像画像から抽出される特徴ベクトルに基づいて移動物体を判別する認識部と、判別結果に応じて、ロボットのモーションを選択する動作選択部と、動作選択部により選択されたモーションを実行する駆動機構と、移動物体によるロボットの抱え上げを検出する動作検出部と、を備える。
認識部は、移動物体にロボットが抱え上げられたときの撮像画像をマスタ画像として設定し、マスタ画像から抽出される特徴ベクトルに基づいて移動物体の判別基準を設定する。
【0012】
本発明の別の態様における自律行動型ロボットは、カメラを制御する撮像制御部と、移動物体の撮像画像から抽出される特徴ベクトルに基づいて移動物体を判別する認識部と、判別結果に応じて、ロボットのモーションを選択する動作選択部と、動作選択部により選択されたモーションを実行する駆動機構と、移動物体によるタッチを検出する動作検出部と、を備える。
認識部は、タッチが検出されたときの撮像画像をマスタ画像として設定し、マスタ画像から抽出される特徴ベクトルに基づいて移動物体の判別基準を設定する。
【0013】
本発明の別の態様における自律行動型ロボットは、カメラを制御する撮像制御部と、移動物体の撮像画像から抽出される特徴ベクトルに基づいて移動物体を判別する認識部と、判別結果に応じて、ロボットのモーションを選択する動作選択部と、動作選択部により選択されたモーションを実行する駆動機構と、を備える。
認識部は、移動物体がロボットに対して所定の相対地点に位置したことを契機として撮像した画像をマスタ画像として設定し、マスタ画像から抽出される特徴ベクトルに基づいて移動体の判別基準を設定する。
【0014】
本発明のある態様における行動制御プログラムは、ロボットによる物体認識のためのコンピュータプログラムである。
このプログラムは、移動物体にロボットが抱え上げられたときの移動物体の撮像画像をマスタ画像として設定する機能と、マスタ画像から抽出される特徴ベクトルに基づいて移動物体の判別基準を設定する機能と、移動物体の撮像画像から抽出される特徴ベクトルに基づいて移動物体を判別する機能と、をロボットに発揮させる。
【0015】
本発明の別の態様における行動制御プログラムは、ロボットによる物体認識のためのコンピュータプログラムである。
移動物体にロボットがタッチされたときの移動物体の撮像画像をマスタ画像として設定する機能と、マスタ画像から抽出される特徴ベクトルに基づいて移動物体の判別基準を設定する機能と、移動物体の撮像画像から抽出される特徴ベクトルに基づいて移動物体を判別する機能と、をロボットに発揮させる。
【発明の効果】
【0016】
本発明によれば、ユーザへの負担を抑制しつつ、ロボットの識別能力を高めやすくなる。
【図面の簡単な説明】
【0017】
図1(a)】ロボットの正面外観図である。
図1(b)】ロボットの側面外観図である。
図2】ロボットの構造を概略的に表す断面図である。
図3】ロボットシステムの構成図である。
図4】感情マップの概念図である。
図5】ロボットのハードウェア構成図である。
図6】ロボットシステムの機能ブロック図である。
図7】ロボットを抱っこしたときのイメージ図である。
図8】マスタ情報のデータ構造図である。
図9】ユーザ識別方法を説明するための第1の模式図である。
図10】ユーザ識別方法を説明するための第2の模式図である。
図11】マスタベクトルの抽出処理過程を示すフローチャートである。
図12】ユーザの画像追跡方法を示す模式図である。
図13】マスタベクトルを遠隔から抽出する方法を説明するための模式図である。
【発明を実施するための形態】
【0018】
図1(a)は、ロボット100の正面外観図である。図1(b)は、ロボット100の側面外観図である。
本実施形態におけるロボット100は、外部環境および内部状態に基づいて行動や仕草(ジェスチャー)を決定する自律行動型のロボットである。外部環境は、カメラやサーモセンサなど各種のセンサにより認識される。内部状態はロボット100の感情を表現するさまざまなパラメータとして定量化される。これらについては後述する。
【0019】
ロボット100は、原則として、オーナー家庭の家屋内を行動範囲とする。以下、ロボット100に関わる人間を「ユーザ」とよび、ロボット100が所属する家庭の構成員となるユーザのことを「オーナー」とよぶ。ロボット100が識別すべき「移動物体」は、人間およびペットの双方を含むが、本実施形態においては人間(ユーザ)を対象として説明する。
【0020】
ロボット100のボディ104は、全体的に丸みを帯びた形状を有し、ウレタンやゴム、樹脂、繊維などやわらかく弾力性のある素材により形成された外皮を含む。ロボット100に服を着せてもよい。丸くてやわらかく、手触りのよいボディ104とすることで、ロボット100はユーザに安心感とともに心地よい触感を提供する。
【0021】
ロボット100は、総重量が15キログラム以下、好ましくは10キログラム以下、更に好ましくは、5キログラム以下である。生後13ヶ月までに、赤ちゃんの過半数は一人歩きを始める。生後13ヶ月の赤ちゃんの平均体重は、男児が9キログラム強、女児が9キログラム弱である。このため、ロボット100の総重量が10キログラム以下であれば、ユーザは一人歩きできない赤ちゃんを抱きかかえるのとほぼ同等の労力でロボット100を抱きかかえることができる。生後2ヶ月未満の赤ちゃんの平均体重は男女ともに5キログラム未満である。したがって、ロボット100の総重量が5キログラム以下であれば、ユーザは乳児を抱っこするのと同等の労力でロボット100を抱っこできる。
【0022】
適度な重さと丸み、柔らかさ、手触りのよさ、といった諸属性により、ユーザがロボット100を抱きかかえやすく、かつ、抱きかかえたくなるという効果が実現される。同様の理由から、ロボット100の身長は1.2メートル以下、好ましくは、0.7メートル以下であることが望ましい。本実施形態におけるロボット100にとって、抱きかかえることができるというのは重要なコンセプトである。
【0023】
ロボット100は、3輪走行するための3つの車輪を備える。図示のように、一対の前輪102(左輪102a,右輪102b)と、一つの後輪103を含む。前輪102が駆動輪であり、後輪103が従動輪である。前輪102は、操舵機構を有しないが、回転速度や回転方向を個別に制御可能とされている。後輪103は、いわゆるオムニホイールからなり、ロボット100を前後左右へ移動させるために回転自在となっている。左輪102aよりも右輪102bの回転数を大きくすることで、ロボット100は左折したり、左回りに回転できる。右輪102bよりも左輪102aの回転数を大きくすることで、ロボット100は右折したり、右回りに回転できる。
【0024】
前輪102および後輪103は、駆動機構(回動機構、リンク機構)によりボディ104に完全収納できる。走行時においても各車輪の大部分はボディ104に隠れているが、各車輪がボディ104に完全収納されるとロボット100は移動不可能な状態となる。すなわち、車輪の収納動作にともなってボディ104が降下し、床面Fに着座する。この着座状態においては、ボディ104の底部に形成された平坦状の着座面108(接地底面)が床面Fに当接する。
【0025】
ロボット100は、2つの手106を有する。手106には、モノを把持する機能はない。手106は上げる、振る、振動するなど簡単な動作が可能である。2つの手106も個別制御可能である。
【0026】
目110には、液晶素子または有機EL素子による画像表示が可能である。ロボット100は、音源方向を特定可能なマイクロフォンアレイや超音波センサ、ニオイセンサ、測距センサ、加速度センサなどさまざまなセンサを搭載する。また、ロボット100はスピーカーを内蔵し、簡単な音声を発することもできる。ロボット100のボディ104には、静電容量式のタッチセンサが設置される。タッチセンサにより、ロボット100はユーザのタッチを検出できる。
【0027】
ロボット100の頭部にはツノ112が取り付けられる。上述のようにロボット100は軽量であるため、ユーザはツノ112をつかむことでロボット100を持ち上げることも可能である。ツノ112には全天球カメラが取り付けられ、ロボット100の上部全域を一度に撮像可能である。
【0028】
図2は、ロボット100の構造を概略的に表す断面図である。
図2に示すように、ロボット100のボディ104は、ベースフレーム308、本体フレーム310、一対の樹脂製のホイールカバー312および外皮314を含む。ベースフレーム308は、金属からなり、ボディ104の軸芯を構成するとともに内部機構を支持する。ベースフレーム308は、アッパープレート332とロアプレート334とを複数のサイドプレート336により上下に連結して構成される。複数のサイドプレート336間には通気が可能となるよう、十分な間隔が設けられる。ベースフレーム308の内方には、バッテリー118、制御回路342および各種アクチュエータが収容されている。
【0029】
本体フレーム310は、樹脂材からなり、頭部フレーム316および胴部フレーム318を含む。頭部フレーム316は、中空半球状をなし、ロボット100の頭部骨格を形成する。胴部フレーム318は、段付筒形状をなし、ロボット100の胴部骨格を形成する。胴部フレーム318は、ベースフレーム308と一体に固定される。頭部フレーム316は、胴部フレーム318の上端部に相対変位可能に組み付けられる。
【0030】
頭部フレーム316には、ヨー軸320、ピッチ軸322およびロール軸324の3軸と、各軸を回転駆動するためのアクチュエータ326が設けられる。アクチュエータ326は、各軸を個別に駆動するための複数のサーボモータを含む。首振り動作のためにヨー軸320が駆動され、頷き動作のためにピッチ軸322が駆動され、首を傾げる動作のためにロール軸324が駆動される。
【0031】
頭部フレーム316の上部には、ヨー軸320を支持するプレート325が固定されている。プレート325には、上下間の通気を確保するための複数の通気孔327が形成される。
【0032】
頭部フレーム316およびその内部機構を下方から支持するように、金属製のベースプレート328が設けられる。ベースプレート328は、クロスリンク機構329(パンタグラフ機構)を介してプレート325と連結される一方、ジョイント330を介してアッパープレート332(ベースフレーム308)と連結されている。
【0033】
胴部フレーム318は、ベースフレーム308と車輪駆動機構370を収容する。車輪駆動機構370は、回動軸378およびアクチュエータ379を含む。胴部フレーム318の下半部は、ホイールカバー312との間に前輪102の収納スペースSを形成するために小幅とされている。
【0034】
外皮314は、ウレタンゴムからなり、本体フレーム310およびホイールカバー312を外側から覆う。手106は、外皮314と一体成形される。外皮314の上端部には、外気を導入するための開口部390が設けられる。
【0035】
図3は、ロボットシステム300の構成図である。
ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。家屋内にはあらかじめ複数の外部センサ114(外部センサ114a、114b、・・・、114n)が設置される。外部センサ114は、家屋の壁面に固定されてもよいし、床に載置されてもよい。サーバ200には、外部センサ114の位置座標が登録される。位置座標は、ロボット100の行動範囲として想定される家屋内においてx,y座標として定義される。
【0036】
サーバ200は、家屋内に設置される。本実施形態におけるサーバ200とロボット100は、通常、1対1で対応する。ロボット100の内蔵するセンサおよび複数の外部センサ114から得られる情報に基づいて、サーバ200がロボット100の基本行動を決定する。
外部センサ114はロボット100の感覚器を補強するためのものであり、サーバ200はロボット100の頭脳を補強するためのものである。
【0037】
外部センサ114は、定期的に外部センサ114のID(以下、「ビーコンID」とよぶ)を含む無線信号(以下、「ロボット探索信号」とよぶ)を送信する。ロボット100はロボット探索信号を受信するとビーコンIDを含む無線信号(以下、「ロボット返答信号」とよぶ)を返信する。サーバ200は、外部センサ114がロボット探索信号を送信してからロボット返答信号を受信するまでの時間を計測し、外部センサ114からロボット100までの距離を測定する。複数の外部センサ114とロボット100とのそれぞれの距離を計測することで、ロボット100の位置座標を特定する。
もちろん、ロボット100が自らの位置座標を定期的にサーバ200に送信する方式でもよい。
【0038】
図4は、感情マップ116の概念図である。
感情マップ116は、サーバ200に格納されるデータテーブルである。ロボット100は、感情マップ116にしたがって行動選択する。図4に示す感情マップ116は、ロボット100の場所に対する好悪感情の大きさを示す。感情マップ116のx軸とy軸は、二次元空間座標を示す。z軸は、好悪感情の大きさを示す。z値が正値のときにはその場所に対する好感が高く、z値が負値のときにはその場所を嫌悪していることを示す。
【0039】
図4の感情マップ116において、座標P1は、ロボット100の行動範囲としてサーバ200が管理する屋内空間のうち好感情が高い地点(以下、「好意地点」とよぶ)である。好意地点は、ソファの陰やテーブルの下などの「安全な場所」であってもよいし、リビングのように人が集まりやすい場所、賑やかな場所であってもよい。また、過去にやさしく撫でられたり、触れられたりした場所であってもよい。
ロボット100がどのような場所を好むかという定義は任意であるが、一般的には、小さな子どもや犬や猫などの小動物が好む場所を好意地点として設定することが望ましい。
【0040】
座標P2は、悪感情が高い地点(以下、「嫌悪地点」とよぶ)である。嫌悪地点は、テレビの近くなど大きな音がする場所、お風呂や洗面所のように濡れやすい場所、閉鎖空間や暗い場所、ユーザから乱暴に扱われたことがある不快な記憶に結びつく場所などであってもよい。
ロボット100がどのような場所を嫌うかという定義も任意であるが、一般的には、小さな子どもや犬や猫などの小動物が怖がる場所を嫌悪地点として設定することが望ましい。
【0041】
座標Qは、ロボット100の現在位置を示す。複数の外部センサ114が定期的に送信するロボット探索信号とそれに対するロボット返答信号により、サーバ200はロボット100の位置座標を特定する。たとえば、ビーコンID=1の外部センサ114とビーコンID=2の外部センサ114がそれぞれロボット100を検出したとき、2つの外部センサ114からロボット100の距離を求め、そこからロボット100の位置座標を求める。
【0042】
あるいは、ビーコンID=1の外部センサ114は、ロボット探索信号を複数方向に送信し、ロボット100はロボット探索信号を受信したときロボット返答信号を返す。これにより、サーバ200は、ロボット100がどの外部センサ114からどの方向のどのくらいの距離にいるかを把握してもよい。また、別の実施の形態では、前輪102または後輪103の回転数からロボット100の移動距離を算出して、現在位置を特定してもよいし、カメラから得られる画像に基づいて現在位置を特定してもよい。
図4に示す感情マップ116が与えられた場合、ロボット100は好意地点(座標P1)に引き寄せられる方向、嫌悪地点(座標P2)から離れる方向に移動する。
【0043】
感情マップ116は動的に変化する。ロボット100が座標P1に到達すると、座標P1におけるz値(好感情)は時間とともに低下する。これにより、ロボット100は好意地点(座標P1)に到達して、「感情が満たされ」、やがて、その場所に「飽きてくる」という生物的行動をエミュレートできる。同様に、座標P2における悪感情も時間とともに緩和される。時間経過とともに新たな好意地点や嫌悪地点が生まれ、それによってロボット100は新たな行動選択を行う。ロボット100は、新しい好意地点に「興味」を持ち、絶え間なく行動選択する。
【0044】
感情マップ116は、ロボット100の内部状態として、感情の起伏を表現する。ロボット100は、好意地点を目指し、嫌悪地点を避け、好意地点にしばらくとどまり、やがてまた次の行動を起こす。このような制御により、ロボット100の行動選択を人間的・生物的なものにできる。
【0045】
なお、ロボット100の行動に影響を与えるマップ(以下、「行動マップ」と総称する)は、図4に示したようなタイプの感情マップ116に限らない。たとえば、好奇心、恐怖を避ける気持ち、安心を求める気持ち、静けさや薄暗さ、涼しさや暖かさといった肉体的安楽を求める気持ち、などさまざまな行動マップを定義可能である。そして、複数の行動マップそれぞれのz値を重み付け平均することにより、ロボット100の目的地点を決定してもよい。
【0046】
ロボット100は、行動マップとは別に、さまざまな感情や感覚の大きさを示すパラメータを有する。たとえば、寂しさという感情パラメータの値が高まっているときには、安心する場所を評価する行動マップの重み付け係数を大きく設定し、目標地点に到達することでこの感情パラメータの値を低下させる。同様に、つまらないという感覚を示すパラメータの値が高まっているときには、好奇心を満たす場所を評価する行動マップの重み付け係数を大きく設定すればよい。
【0047】
図5は、ロボット100のハードウェア構成図である。
ロボット100は、内部センサ128、通信機126、記憶装置124、プロセッサ122、駆動機構120およびバッテリー118を含む。駆動機構120は、上述した車輪駆動機構370を含む。プロセッサ122と記憶装置124は、制御回路342に含まれる。各ユニットは電源線130および信号線132により互いに接続される。バッテリー118は、電源線130を介して各ユニットに電力を供給する。各ユニットは信号線132により制御信号を送受する。バッテリー118は、リチウムイオン二次電池であり、ロボット100の動力源である。
【0048】
内部センサ128は、ロボット100が内蔵する各種センサの集合体である。具体的には、カメラ(全天球カメラ)、マイクロフォンアレイ、測距センサ(赤外線センサ)、サーモセンサ、タッチセンサ、加速度センサ、ニオイセンサ、タッチセンサなどである。タッチセンサは、外皮314と本体フレーム310の間に設置され、ユーザのタッチを検出する。ニオイセンサは、匂いの元となる分子の吸着によって電気抵抗が変化する原理を応用した既知のセンサである。ニオイセンサは、さまざまな匂いを複数種類のカテゴリに分類する。
【0049】
通信機126は、サーバ200や外部センサ114、ユーザの有する携帯機器など各種の外部機器を対象として無線通信を行う通信モジュールである。記憶装置124は、不揮発性メモリおよび揮発性メモリにより構成され、コンピュータプログラムや各種設定情報を記憶する。プロセッサ122は、コンピュータプログラムの実行手段である。駆動機構120は、内部機構を制御するアクチュエータである。このほかには、表示器やスピーカーなども搭載される。
【0050】
プロセッサ122は、通信機126を介してサーバ200や外部センサ114と通信しながら、ロボット100の行動選択を行う。内部センサ128により得られるさまざまな外部情報も行動選択に影響する。駆動機構120は、主として、車輪(前輪102)と頭部(頭部フレーム316)を制御する。駆動機構120は、2つの前輪102それぞれの回転速度や回転方向を変化させることにより、ロボット100の移動方向や移動速度を変化させる。また、駆動機構120は、車輪(前輪102および後輪103)を昇降させることもできる。車輪が上昇すると、車輪はボディ104に完全に収納され、ロボット100は着座面108にて床面Fに当接し、着座状態となる。
【0051】
図6は、ロボットシステム300の機能ブロック図である。
上述のように、ロボットシステム300は、ロボット100、サーバ200および複数の外部センサ114を含む。ロボット100およびサーバ200の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部はロボット100により実現されてもよい。
【0052】
(サーバ200)
サーバ200は、通信部204、データ処理部202およびデータ格納部206を含む。
通信部204は、外部センサ114およびロボット100との通信処理を担当する。データ格納部206は各種データを格納する。データ処理部202は、通信部204により取得されたデータおよびデータ格納部206に格納されるデータに基づいて各種処理を実行する。データ処理部202は、通信部204およびデータ格納部206のインタフェースとしても機能する。
【0053】
本実施形態においては、サーバ200の通信部204は、ロボット100の通信部142と第1通信回線および第2通信回線の2種類の通信回線により接続する。第1通信回線は、920MHzのISM周波数(Industrial, Scientific and Medical Band)通信回線である。第2通信回線は、2.4GHzの通信回線である。第1通信回線は、第2通信回線よりも周波数が低いため電波が回り込みやすいが、通信速度は遅い。
【0054】
データ格納部206は、モーション格納部232、マップ格納部216および個人データ格納部218を含む。
ロボット100は、複数の動作パターン(モーション)を有する。手106を震わせる、蛇行しながらオーナーに近づく、首をかしげたままオーナーを見つめる、などさまざまなモーションが定義される。
【0055】
モーション格納部232は、モーションの制御内容を定義する「モーションファイル」を格納する。各モーションは、モーションIDにより識別される。モーションファイルは、ロボット100のモーション格納部160にもダウンロードされる。どのモーションを実行するかは、サーバ200で決定されることもあるし、ロボット100で決定されることもある。
【0056】
ロボット100のモーションの多くは、複数の単位モーションを含む複合モーションとして構成される。たとえば、ロボット100がオーナーに近づくとき、オーナーの方に向き直る単位モーション、手を上げながら近づく単位モーション、体を揺すりながら近づく単位モーション、両手を上げながら着座する単位モーションの組み合わせとして表現されてもよい。このような4つのモーションの組み合わせにより、「オーナーに近づいて、途中で手を上げて、最後は体をゆすった上で着座する」というモーションが実現される。モーションファイルには、ロボット100に設けられたアクチュエータの回転角度や角速度などが時間軸に関連づけて定義される。モーションファイル(アクチュエータ制御情報)にしたがって、時間経過とともに各アクチュエータを制御することで様々なモーションが表現される。
【0057】
先の単位モーションから次の単位モーションに変化するときの移行時間を「インターバル」とよぶ。インターバルは、単位モーション変更に要する時間やモーションの内容に応じて定義されればよい。インターバルの長さは調整可能である。
以下、いつ、どのモーションを選ぶか、モーションを実現する上での各アクチュエータの出力調整など、ロボット100の行動制御に関わる設定のことを「行動特性」と総称する。ロボット100の行動特性は、モーション選択アルゴリズム、モーションの選択確率、モーションファイル等により定義される。
【0058】
モーション格納部232は、モーションファイルのほか、各種のイベントが発生したときに実行すべきモーションを定義するモーション選択テーブルを格納する。モーション選択テーブルにおいては、イベントに対して1以上のモーションとその選択確率が対応づけられる。
【0059】
マップ格納部216は、複数の行動マップのほか、椅子やテーブルなどの障害物の配置状況を示すマップも格納する。個人データ格納部218は、ユーザ、特に、オーナーの情報を格納する。具体的には、ユーザに対する親密度とユーザの身体的特徴・行動的特徴を示すマスタ情報を格納する。年齢や性別などの他の属性情報を格納してもよい。マスタ情報の詳細は図8に関連して後述する。
【0060】
ロボットシステム300(ロボット100およびサーバ200)はユーザの身体的特徴や行動的特徴に基づいてユーザを識別する。ロボット100は、全天球カメラで周辺を撮像する。そして、画像に写る人物の身体的特徴と行動的特徴を抽出する。身体的特徴とは、目と目の間隔の大きさ、目と口と鼻のバランス、背の高さ、好んで着る服、メガネの有無、肌の色、髪の色、耳の大きさなど身体に付随する視覚的特徴であってもよいし、平均体温や匂い、声質、などその他の特徴も含めてもよい。行動的特徴とは、具体的には、ユーザが好む場所、動きの活発さ、喫煙の有無など行動に付随する特徴である。たとえば、父親として識別されるオーナーは在宅しないことが多く、在宅時にはソファで動かないことが多いが、母親は台所にいることが多く、行動範囲が広い、といった行動上の特徴を抽出する。
本実施形態におけるロボットシステム300は、後述のマスタ画像により身体的特徴を示す複数のパラメータを抽出し、このマスタ画像に基づいてユーザを識別する。以下、マスタ画像に基づいてユーザを識別する処理のことを「ユーザ識別処理」とよぶ。ユーザ識別処理の詳細は後述する。
【0061】
ロボット100は、ユーザごとに親密度という内部パラメータを有する。ロボット100が、自分を抱き上げる、声をかけてくれるなど、自分に対して好意を示す行動を認識したとき、そのユーザに対する親密度が高くなる。ロボット100に関わらないユーザや、乱暴を働くユーザ、出会う頻度が低いユーザに対する親密度は低くなる。
【0062】
データ処理部202は、位置管理部208、マップ管理部210、認識部212、動作制御部222、親密度管理部220および感情管理部244を含む。
位置管理部208は、ロボット100の位置座標を、図3を用いて説明した方法にて特定する。位置管理部208はユーザの位置座標もリアルタイムで追跡してもよい。
【0063】
感情管理部244は、ロボット100の感情(寂しさ、楽しさ、恐怖など)を示すさまざまな感情パラメータを管理する。これらの感情パラメータは常に揺らいでいる。感情パラメータに応じて複数の行動マップの重要度が変化し、行動マップによってロボット100の移動目標地点が変化し、ロボット100の移動や時間経過によって感情パラメータが変化する。
【0064】
たとえば、寂しさを示す感情パラメータが高いときには、感情管理部244は安心する場所を評価する行動マップの重み付け係数を大きく設定する。ロボット100が、この行動マップにおいて寂しさを解消可能な地点に至ると、感情管理部244は寂しさを示す感情パラメータを低下させる。また、後述の応対行為によっても各種感情パラメータは変化する。たとえば、オーナーから「抱っこ」をされると寂しさを示す感情パラメータは低下し、長時間にわたってオーナーを視認しないときには寂しさを示す感情パラメータは少しずつ増加する。
【0065】
マップ管理部210は、複数の行動マップについて図4に関連して説明した方法にて各座標のパラメータを変化させる。マップ管理部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の方向に向かう。
【0066】
認識部212は、外部環境を認識する。外部環境の認識には、温度や湿度に基づく天候や季節の認識、光量や温度に基づく物陰(安全地帯)の認識など多様な認識が含まれる。ロボット100の認識部156は、内部センサ128により各種の環境情報を取得し、これを一次処理した上でサーバ200の認識部212に転送する。ロボット100の認識部156は、画像から移動物体、特に、人物や動物に対応する画像領域を抽出し、抽出した画像領域から移動物体の身体的特徴や行動的特徴を示す「特徴ベクトル」を抽出する。ロボット100は、特徴ベクトルをサーバ200に送信する。
【0067】
サーバ200の認識部212は、更に、人物認識部214と応対認識部228を含む。
人物認識部214は、ロボット100の内蔵カメラによる撮像画像から抽出された特徴ベクトルと、個人データ格納部218にあらかじめ登録されているユーザの特徴ベクトルと比較することにより、撮像されたユーザがどの人物に該当するかを判定する(ユーザ識別処理)。人物認識部214は、表情認識部230を含む。表情認識部230は、ユーザの表情を画像認識することにより、ユーザの感情を推定する。
なお、人物認識部214は、人物以外の移動物体、たとえば、ペットである猫や犬についてもユーザ識別処理を行う。
【0068】
以上のように、本実施形態においては、ロボット100の認識部156が撮像画像から移動物体(人物および動物)に対応する画像領域を抽出し、抽出した撮像画像から特徴ベクトルを抽出する。サーバ200の個人データ格納部218には、あらかじめ複数のユーザの特徴ベクトル(以下、「マスタベクトル」とよぶ)が登録されている。マスタベクトルは、ユーザのマスタ画像に基づいて抽出される特徴ベクトルである。サーバ200の人物認識部214は、ロボット100から送られる特徴ベクトルとマスタベクトルを比較することによりユーザを識別する。
【0069】
以下、個人データ格納部218にマスタベクトルが登録されているユーザを「登録ユーザ」、カメラにより認識されたユーザ識別処理の対象となる未確認のユーザを「未知ユーザ」とよぶ。登録ユーザAのマスタベクトルと未知ユーザXの特徴ベクトル(以下、「検査ベクトル」ともよぶ)が一致または類似していれば、未知ユーザXは登録ユーザAと同一人物であると判定する。
【0070】
応対認識部228は、ロボット100になされたさまざまな応対行為を認識し、快・不快行為に分類する。応対認識部228は、また、ロボット100の行動に対するオーナーの応対行為を認識することにより、肯定・否定反応に分類する。
快・不快行為は、ユーザの応対行為が、生物として心地よいものであるか不快なものであるかにより判別される。たとえば、抱っこされることはロボット100にとって快行為であり、蹴られることはロボット100にとって不快行為である。肯定・否定反応は、ユーザの応対行為が、ユーザの快感情を示すものか不快感情を示すものであるかにより判別される。たとえば、抱っこされることはユーザの快感情を示す肯定反応であり、蹴られることはユーザの不快感情を示す否定反応である。
【0071】
サーバ200の動作制御部222は、ロボット100の動作制御部150と協働して、ロボット100のモーションを決定する。サーバ200の動作制御部222は、マップ管理部210による行動マップ選択に基づいて、ロボット100の移動目標地点とそのための移動ルートを作成する。動作制御部222は、複数の移動ルートを作成し、その上で、いずれかの移動ルートを選択してもよい。
【0072】
動作制御部222は、モーション格納部232の複数のモーションからロボット100のモーションを選択する。各モーションには状況ごとに選択確率が対応づけられている。たとえば、オーナーから快行為がなされたときには、モーションAを20%の確率で実行する、気温が30度以上となったとき、モーションBを5%の確率で実行する、といった選択方法が定義される。
行動マップに移動目標地点や移動ルートが決定され、後述の各種イベントによりモーションが選択される。
【0073】
親密度管理部220は、ユーザごとの親密度を管理する。上述したように、親密度は個人データ格納部218において個人データの一部として登録される。快行為を検出したとき、親密度管理部220はそのオーナーに対する親密度をアップさせる。不快行為を検出したときには親密度はダウンする。また、長期間視認していないオーナーの親密度は徐々に低下する。
【0074】
(ロボット100)
ロボット100は、通信部142、データ処理部136、データ格納部148、内部センサ128および駆動機構120を含む。
通信部142は、通信機126(図5参照)に該当し、外部センサ114、サーバ200および他のロボット100との通信処理を担当する。データ格納部148は各種データを格納する。データ格納部148は、記憶装置124(図5参照)に該当する。データ処理部136は、通信部142により取得されたデータおよびデータ格納部148に格納されているデータに基づいて各種処理を実行する。データ処理部136は、プロセッサ122およびプロセッサ122により実行されるコンピュータプログラムに該当する。データ処理部136は、通信部142、内部センサ128、駆動機構120およびデータ格納部148のインタフェースとしても機能する。
【0075】
データ格納部148は、ロボット100の各種モーションを定義するモーション格納部160を含む。
ロボット100のモーション格納部160には、サーバ200のモーション格納部232から各種モーションファイルがダウンロードされる。モーションは、モーションIDによって識別される。前輪102を収容して着座する、手106を持ち上げる、2つの前輪102を逆回転させることで、あるいは、片方の前輪102だけを回転させることでロボット100を回転行動させる、前輪102を収納した状態で前輪102を回転させることで震える、ユーザから離れるときにいったん停止して振り返る、などのさまざまなモーションを表現するために、各種アクチュエータ(駆動機構120)の動作タイミング、動作時間、動作方向などがモーションファイルにおいて時系列定義される。
【0076】
データ格納部148には、マップ格納部216および個人データ格納部218からも各種データがダウンロードされてもよい。
【0077】
内部センサ128は、カメラ134を含む。本実施形態におけるカメラ134は、ツノ112に取り付けられる全天球カメラである。
【0078】
データ処理部136は、認識部156、動作制御部150、動作検出部152、撮像制御部154および測距部158を含む。
ロボット100の動作制御部150は、サーバ200の動作制御部222と協働してロボット100のモーションを決める。一部のモーションについてはサーバ200で決定し、他のモーションについてはロボット100で決定してもよい。また、ロボット100がモーションを決定するが、ロボット100の処理負荷が高いときにはサーバ200がモーションを決定するとしてもよい。サーバ200においてベースとなるモーションを決定し、ロボット100において追加のモーションを決定してもよい。モーションの決定処理をサーバ200およびロボット100においてどのように分担するかはロボットシステム300の仕様に応じて設計すればよい。
【0079】
ロボット100の動作制御部150は、サーバ200の動作制御部222とともにロボット100の移動方向を決める。行動マップに基づく移動をサーバ200で決定し、障害物をよけるなどの即時的移動をロボット100の動作制御部150により決定してもよい。駆動機構120は、動作制御部150の指示にしたがって前輪102を駆動することで、ロボット100を移動目標地点に向かわせる。
【0080】
ロボット100の動作制御部150は選択したモーションを駆動機構120に実行指示する。駆動機構120は、モーションファイルにしたがって、各アクチュエータを制御する。
【0081】
動作制御部150は、親密度の高いユーザが近くにいるときには「抱っこ」をせがむ仕草として両方の手106をもちあげるモーションを実行することもできるし、「抱っこ」に飽きたときには左右の前輪102を収容したまま逆回転と停止を交互に繰り返すことで抱っこをいやがるモーションを表現することもできる。駆動機構120は、動作制御部150の指示にしたがって前輪102や手106、首(頭部フレーム316)を駆動することで、ロボット100にさまざまなモーションを表現させる。
【0082】
動作検出部152は、ユーザによるタッチのほか、ロボット100の「抱え上げ」と「抱え下ろし」を検出する。「抱え上げ」とは、典型的には、ユーザがロボット100のボディ104に両手を添えて、ロボット100を持ち上げる行為である。「抱え下ろし」とは、典型的には、ユーザがロボット100のボディ104に両手を添えて、ロボット100を床面Fの上に下ろす行為である。動作検出部152は、ロボット100の外皮314の下に設置されるタッチセンサによりユーザのタッチを検出する。タッチされた状態で加速度センサが上昇を検知したことを条件として動作検出部152は「抱え上げ」がなされたと判定する。同様にして、タッチされた状態で加速度センサにより下降を検出したとき、あるいは、着座面108または前輪102への荷重を検出したときには、動作検出部152は「抱え下ろし」がなされたと判定する。カメラ134によって外界を動画撮像し、ロボット100の上昇および下降を画像の変化から認識することで「抱え上げ」と「抱え下ろし」を判定してもよい。
【0083】
撮像制御部154は、カメラ134を制御する。撮像制御部154は、抱え上げや抱え下ろし、タッチが検出されたとき、あるいは、後述の各種タイミングにて被写体を撮像する。
【0084】
測距部158は、内部センサ128に含まれる測距センサ(赤外線センサ)により、被写体となる移動物体(人物およびペット)との距離を検出する。また、認識部156は、被写体を画像認識することにより、ロボット100と被写体の相対角度も検出する。被写体に対してロボット100が所定の相対地点に位置したときの撮像画像をマスタ画像の候補(以下、「マスタ候補画像」とよぶ)とすることもできる。測距に基づくマスタ候補画像の取得方法については、図13に関連して後述する。
【0085】
ロボット100の認識部156は、内部センサ128から得られた外部情報を解釈する。認識部156は、視覚的な認識(視覚部)、匂いの認識(嗅覚部)、音の認識(聴覚部)、触覚的な認識(触覚部)が可能である。
認識部156は、内蔵の全天球カメラにより定期的に外界を撮像し、人やペットなどの移動物体を検出する。認識部156が移動物体の撮像画像から抽出した特徴ベクトルはサーバ200に送信され、サーバ200の人物認識部214はユーザを識別する。ロボット100の認識部156は、ユーザの匂いやユーザの声も検出する。匂いや音(声)は既知の方法にて複数種類に分類される。
【0086】
ロボット100に対する強い衝撃が与えられたとき、認識部156は内蔵の加速度センサによりこれを認識し、サーバ200の応対認識部228は、近隣にいるユーザによって「乱暴行為」が働かれたと認識する。ユーザがツノ112を掴んでロボット100を持ち上げるときにも、乱暴行為と認識してもよい。ロボット100に正対した状態にあるユーザが特定音量領域および特定周波数帯域にて発声したとき、サーバ200の応対認識部228は、自らに対する「声掛け行為」がなされたと認識してもよい。また、体温程度の温度を検知したときにはユーザによる「接触行為」がなされたと認識してもよい。
まとめると、ロボット100は内部センサ128によりユーザの行為を物理的情報として取得し、動作検出部152は「抱え上げ」「抱え下ろし」等の行為を判定し、サーバ200の応対認識部228は快・不快を判定し、サーバ200の認識部212は特徴ベクトルに基づくユーザ識別処理を実行する。
【0087】
サーバ200の応対認識部228は、ロボット100に対するユーザの各種応対を認識する。各種応対行為のうち一部の典型的な応対行為には、快または不快、肯定または否定が対応づけられる。一般的には快行為となる応対行為のほとんどは肯定反応であり、不快行為となる応対行為のほとんどは否定反応となる。快・不快行為は親密度に関連し、肯定・否定反応はロボット100の行動選択に影響する。
【0088】
検出・分析・判定を含む一連の認識処理のうち、ロボット100の認識部156は認識に必要な情報の取捨選択や抽出を行い、判定等の解釈処理はサーバ200の認識部212により実行される。認識処理は、サーバ200の認識部212だけで行ってもよいし、ロボット100の認識部156だけで行ってもよいし、上述のように双方が役割分担をしながら上記認識処理を実行してもよい。
【0089】
認識部156により認識された応対行為に応じて、サーバ200の親密度管理部220はユーザに対する親密度を変化させる。原則的には、快行為を行ったユーザに対する親密度は高まり、不快行為を行ったユーザに対する親密度は低下する。
【0090】
サーバ200の認識部212は、応対に応じて快・不快を判定し、マップ管理部210は「場所に対する愛着」を表現する行動マップにおいて、快・不快行為がなされた地点のz値を変化させてもよい。たとえば、リビングにおいて快行為がなされたとき、マップ管理部210はリビングに好意地点を高い確率で設定してもよい。この場合、ロボット100はリビングを好み、リビングで快行為を受けることで、ますますリビングを好む、というポジティブ・フィードバック効果が実現する。
【0091】
移動物体(ユーザ)からどのような行為をされるかによってそのユーザに対する親密度が変化する。
【0092】
ロボット100は、よく出会う人、よく触ってくる人、よく声をかけてくれる人に対して高い親密度を設定する。一方、めったに見ない人、あまり触ってこない人、乱暴な人、大声で叱る人に対する親密度は低くなる。ロボット100はセンサ(視覚、触覚、聴覚)によって検出するさまざまな外界情報にもとづいて、ユーザごとの親密度を変化させる。
【0093】
実際のロボット100は行動マップにしたがって自律的に複雑な行動選択を行う。ロボット100は、寂しさ、退屈さ、好奇心などさまざまなパラメータに基づいて複数の行動マップに影響されながら行動する。ロボット100は、行動マップの影響を除外すれば、あるいは、行動マップの影響が小さい内部状態にあるときには、原則的には、親密度の高い人に近づこうとし、親密度の低い人からは離れようとする。
【0094】
ロボット100の行動は親密度に応じて以下に類型化される。
(1)親密度が非常に高いユーザ
ロボット100は、ユーザに近づき(以下、「近接行動」とよぶ)、かつ、人に好意を示す仕草としてあらかじめ定義される愛情仕草を行うことで親愛の情を強く表現する。
(2)親密度が比較的高いユーザ
ロボット100は、近接行動のみを行う。
(3)親密度が比較的低いユーザ
ロボット100は特段のアクションを行わない。
(4)親密度が特に低いユーザ
ロボット100は、離脱行動を行う。
【0095】
以上の制御方法によれば、ロボット100は、親密度が高いユーザを見つけるとそのユーザに近寄り、逆に親密度が低いユーザを見つけるとそのユーザから離れる。このような制御方法により、いわゆる「人見知り」を行動表現できる。また、来客(親密度が低いユーザA)が現れたとき、ロボット100は、来客から離れて家族(親密度が高いユーザB)の方に向かうこともある。この場合、ユーザBはロボット100が人見知りをして不安を感じていること、自分を頼っていること、を感じ取ることができる。このような行動表現により、ユーザBは、選ばれ、頼られることの喜び、それにともなう愛着の情を喚起される。
【0096】
一方、来客であるユーザAが頻繁に訪れ、声を掛け、タッチをするとロボット100のユーザAに対する親密度は徐々に上昇し、ロボット100はユーザAに対して人見知り行動(離脱行動)をしなくなる。ユーザAも自分にロボット100が馴染んできてくれたことを感じ取ることで、ロボット100に対する愛着を抱くことができる。
【0097】
なお、以上の行動選択は、常に実行されるとは限らない。たとえば、ロボット100の好奇心を示す内部パラメータが高くなっているときには、好奇心を満たす場所を求める行動マップが重視されるため、ロボット100は親密度に影響された行動を選択しない可能性もある。また、玄関に設置されている外部センサ114がユーザの帰宅を検知した場合には、ユーザのお出迎え行動を最優先で実行するかもしれない。
【0098】
図7は、ロボットを抱っこしたときのイメージ図である。
ロボット100は、丸く、やわらかく、手触りのよいボディ104と適度な重量を有し、かつ、タッチを快行為と認識するため、ロボット100を抱っこしたいという感情をユーザに抱かせやすい。ロボット100は、この関わりたいという気持ちを抱かせることをユーザ識別処理に応用している。
【0099】
ロボット100がユーザを識別するためには、その手がかりとなる情報が必要である。たとえば、眉の太さ、目の大きさ、目の形状、肌の色、肌の明るさ、皺の形状、髪の明るさ、前髪の長さ、顔全体に占める目や鼻の大きさの割合、目と目の間隔などの身体的特徴が手がかりとなる。本実施形態においては、まず、ロボット100はマスタ画像を取得する。ロボット100の認識部156はマスタ画像から特徴ベクトル(マスタベクトル)を抽出する。特徴ベクトルは、複数のベクトル成分を有する。特徴ベクトル成分は、上述の各種身体的特徴を定量化した数値である。たとえば、目の横幅は0〜1の範囲で数値化され、これらが特徴ベクトル成分を形成する。人物の撮像画像から特徴ベクトルを抽出する手法については、既知の顔認識技術の応用である。ユーザAのマスタベクトルは、個人データ格納部218のマスタ情報224として保存される。
以下、撮像画像から特徴ベクトルを抽出する処理のことを「ベクトル抽出処理」とよぶ。
【0100】
ロボット100が未知ユーザXを撮像したとき、認識部156は未知ユーザXの撮像画像(検査画像)から特徴ベクトル(検査ベクトル)を抽出する。サーバ200の人物認識部214は、未知ユーザXの検査ベクトルと登録ユーザAのマスタベクトルが類似していれば、未知ユーザXと登録ユーザAが同一人物であると判定する。
【0101】
識別精度を高めるためには、マスタベクトルを抽出しやすい良質なマスタ画像、より具体的には、近距離でユーザを撮像する必要がある。本実施形態における認識部156は、動作検出部152がロボット100の抱え上げを検出したときの撮像画像をマスタ画像として設定する。ロボット100が抱っこされているときには、ロボット100は内蔵のカメラ134により高精度に撮像できる。これは、ロボット100を抱え上げたときには、ユーザの顔とロボット100の内蔵するカメラ134の距離が一定の範囲内に収まるためである。マスタ画像を撮像するためにユーザに「行動指示」を与えるのではなく、ユーザが自らの意思でロボット100を抱っこするタイミングを見計らって、ユーザに負担をかけることなく良質なマスタ画像を取得できる。
【0102】
図8は、マスタ情報のデータ構造図である。
マスタ情報224は、応対認識部228に格納される。図8においては、ユーザID=01のユーザ(以下、「ユーザ(01)」のように表記する)に3つのマスタベクトルが対応づけられている。ユーザ(01)の正面だけでなく、右側面や左側面などの横顔からもマスタ画像が取得される。このため、複数角度、複数距離からユーザを撮像することにより、一人の登録ユーザに対して複数のマスタベクトルが対応づけられる。マスタベクトルは、マスタIDにより識別される。マスタベクトル(01)はユーザ(01)の顔を正面から撮像したときのマスタ画像から抽出され、マスタベクトル(02)はユーザ(01)の顔を右側から撮像したときのマスタ画像から抽出される。
【0103】
説明を簡単にするため、図8に示すマスタベクトルは5つのベクトル成分を有する5次元ベクトルであるとして説明する。5つのベクトル成分a〜eは、目と目の間隔、肌の色など任意の特徴量に対応する。マスタベクトル(01)は、3つのベクトル成分a〜cに対応する特徴量a1,b1,c1を含む。一方、ベクトル成分d,eには特徴量が設定されていない。たとえば、ベクトル成分dが耳の大きさを示す特徴量であるときには、正面のマスタ画像からは成分dを抽出できない可能性があるためである。
【0104】
マスタベクトル(02)は、3つのベクトル成分a,c,eに対応する特徴量a2,c2,e2を含むがベクトル成分b,dに対応する特徴量は含まない。マスタベクトル(03)は、4つのベクトル成分a,b,d,eに対応する特徴量a3,b3,d3,e3を含むがベクトル成分cに対応する特徴量は含まない。複数方向からユーザ(01)を撮像することにより複数のマスタ画像が取得すれば、ユーザ(01)の身体的特徴を3次元的に把握できる。
【0105】
人物認識部214は、ユーザ(01)の3つのマスタベクトルを相加平均することにより、重心ベクトルMBを算出する。重心ベクトルMBのベクトル成分aは、3つのマスタベクトルのa成分(a1,a2,a3)の平均値である。マスタベクトル(03)しかベクトル成分dを有していないため、重心ベクトルMBのベクトル成分dは、マスタベクトル(03)の特徴量d3となる。人物認識部214は、マスタベクトルまたは重心ベクトルMBに基づいて、ユーザ識別処理を実行する(後述)。
【0106】
登録ユーザが一人もいない状況を想定する。
動作検出部152は、未知ユーザAに抱っこされたときマスタ画像を取得する。人物認識部214は、未知ユーザAのマスタ画像から抽出されたマスタベクトル(01)にユーザID=01を対応づけてマスタ情報224に記録する。このとき、人物認識部214はマスタベクトル(01)の取得日時も記録する。以上の処理により、未知ユーザAは登録ユーザ(01)としてマスタ情報224に登録される。図8においては、マスタベクトル(01)は、2016年6月7日に取得されている。
【0107】
ユーザ(01)の登録後、新たな未知ユーザXがロボット100を抱っこしたときにも、動作検出部152はマスタ画像を取得する。人物認識部214は、未知ユーザXのマスタ画像から抽出されたマスタベクトルMXと登録ユーザ(01)のマスタベクトル(01)を比較する。
【0108】
(1)未登録の場合
人物認識部214は、マスタベクトルMXとマスタベクトル(01)のベクトル距離が所定距離以上であれば、未知ユーザXはユーザ(01)とは異なると判定する。特徴ベクトルの距離は、ユークリッド距離として計算してもよいし、チェビシェフ距離など他の定義に基づく距離計算であってもよい。人物認識部214は、未知ユーザXを新たな登録ユーザ(02)としてマスタ情報224に登録するとともに、ユーザXにユーザID=02を割り当て、マスタベクトルMXにマスタID=04を割り当てる。以上の処理により、マスタ情報224にはユーザ(01)およびユーザ(02)の二人が登録される。
【0109】
(2)既登録の場合
マスタベクトルMXとマスタベクトル(01)の距離が所定距離未満であれば、人物認識部214は、未知ユーザXと登録ユーザ(01)は同一人物であると判定する。人物認識部214は、マスタベクトルMXにマスタID=02を設定して、ユーザ(01)に対応づける。ユーザ(01)のマスタベクトルは2つとなり、ユーザ(01)を識別するための情報が充実する。
【0110】
マスタ画像からは高品質のマスタベクトルが得られるため、マスタベクトル同士を比較することにより、ロボット100を抱っこしているユーザが登録ユーザと人物であるか否かを容易に判定できる。
【0111】
複数の登録ユーザがいるときには、各登録ユーザのマスタベクトルが比較対象となる。一人の登録ユーザが2以上のマスタベクトルを有するときには、登録ユーザの重心ベクトルと未知ユーザのマスタベクトルが比較対象となる。
【0112】
図9は、ユーザ識別方法を説明するための第1の模式図である。
図9および図10では、ユーザ識別処理の原理を図解するため、特徴ベクトルに含まれるベクトル成分のうち、2つのベクトル成分a,bを対象として説明する。3つ以上のベクトル成分を有するときにも処理方法は同じである。
図9においては、登録ユーザAおよび登録ユーザBそれぞれについて、マスタベクトルMAとマスタベクトルMBが1つずつ抽出されている。マスタベクトルMA=(a1,b1)、マスタベクトルMB=(a2,b2)である。このような状況において、ロボット100が正面から歩いてくる未知ユーザXの撮像画像(検査画像)を取得したとする。認識部156は、検査画像に映る未知ユーザXが登録ユーザA,Bのいずれであるかを判定する。抱っこされているわけではないので、未知ユーザXの検査画像から得られる特徴ベクトル(検査ベクトル)は、通常、マスタベクトルほどの精度を有さない。
【0113】
認識部156は、まず、未知ユーザXの検査画像から、検査ベクトルDX=(ax,bx)を抽出する。ロボット100の通信部142は、サーバ200の通信部204に検査ベクトルDXを送信する。サーバ200の人物認識部214は、検査ベクトルDXとマスタベクトルMAとの距離であるra,検査ベクトルDXとマスタベクトルMBとの距離であるrbをそれぞれ算出する。
【0114】
任意の閾値rmを設定したとき、rb<ra、かつ、rb<rmであれば、人物認識部214は未知ユーザXが登録ユーザBであると判定する。一方、ra<rb、かつ、ra<rmであれば、人物認識部214は未知ユーザXが登録ユーザAであると判定する。一方、ra>rm、かつ、rb>rmであるときには、未知ユーザXは登録ユーザA、Bのいずれにも該当しない。未知ユーザXが親密度の高い登録ユーザAであると判明したときには、動作制御部150は未知ユーザXのもとに駆け寄るなどの親密行動を選択してもよい。一方、未知ユーザXが親密度の低い登録ユーザBであると判明したときには、動作制御部150は未知ユーザXから逃げるなどの忌避行動を選択してもよい。
【0115】
未知ユーザXを識別できなかったときには、人物認識部214は未確認の旨をロボット100に通知し、ロボット100の動作制御部150は未知ユーザXに抱っこをせがむモーションを選択してもよい。具体的には、未知ユーザXに近づく、手106を挙げる、未知ユーザXの前で座り込むなどのモーションが考えられる。
【0116】
未知ユーザXがロボット100を抱え上げ、動作検出部152が「抱え上げ」を検出すると、撮像制御部154はカメラ134を制御して未知ユーザXを近距離から撮像する。抱え上げ時に得られた未知ユーザのマスタ画像から、認識部156はマスタベクトルMXを抽出する。サーバ200の人物認識部214は、未知ユーザXのマスタベクトルMXと、既存のマスタベクトルMA,MBを比較することにより再度のユーザ識別処理を実行してもよい。マスタベクトル同士の比較であるためより高精度の識別が可能である。マスタベクトルの比較によっても未知ユーザXが登録ユーザA,Bとは別人物であると判定されたときには、人物認識部214は未知ユーザXを3人目の登録ユーザとしてマスタベクトルMXとともにマスタ情報224に登録する。
【0117】
なお、未知ユーザXが登録ユーザAであると判明したときには、人物認識部214は、未知ユーザXの検査画像から得られた検査ベクトルを登録ユーザAの新たなマスタベクトルとして登録してもよい。
【0118】
図10は、ユーザ識別方法を説明するための第2の模式図である。
図10においては、登録ユーザAおよび登録ユーザBそれぞれについて、複数のマスタベクトルが抽出されている。人物認識部214は、登録ユーザAの重心ベクトルMB(A)および登録ユーザBの重心ベクトルMB(B)を算出する。このような状況において、ロボット100が、正面から歩いてくる未知ユーザXの撮像画像(検査画像)を取得したとする。認識部156は、検査画像に映る未知ユーザXが登録ユーザA,Bのいずれであるかを判定する。
【0119】
認識部156は、まず、未知ユーザXの検査画像から、検査ベクトルDX=(ax,bx)を抽出する。ロボット100の通信部142は、サーバ200の通信部204に検査ベクトルDXを送信する。サーバ200の人物認識部214は、検査ベクトルDXと重心ベクトルMB(A)との距離であるra,検査ベクトルDXと重心ベクトルMB(B)との距離であるrbをそれぞれ算出する。
【0120】
任意の閾値rmを設定したとき、rb<ra、かつ、rb<rmであれば、人物認識部214は未知ユーザXが登録ユーザBであると判定する。一方、ra<rb、かつ、ra<rmであれば、人物認識部214は未知ユーザXが登録ユーザAであると判定する。一方、ra>rm、かつ、rb>rmであるときには、未知ユーザXは登録ユーザA、Bのいずれにも該当しない。
【0121】
図11は、マスタベクトルの抽出処理過程を示すフローチャートである。
ロボット100の動作検出部152がロボット100の抱え上げを検出したとき、図11のベクトル抽出処理が実行される。動作制御部150は、抱え上げが検出されたとき、所定の誘導モーションを実行する(S10)。誘導モーションは、ユーザを注目させるためにあらかじめ定義されたモーションである。具体的には、手106を振る、ボディ104を揺らす、頭部フレーム316をユーザに向ける、頭部フレーム316を上下または左右に揺らすなどの非言語モーションが想定される。誘導モーションは機械的なモーションに限らない。動作制御部150は有機EL素子により目110に「瞳」を映像表示させる。動作制御部150は、瞳画像を大きくすることで瞳を見開く、瞳を揺らす、ウィンクさせるなどの画像制御を指示してもよい。
【0122】
誘導モーションでユーザの気を引くことにより、ユーザの顔をロボット100に向けさせる。また、多様な誘導モーションを用意することで、ユーザの多様な表情を引き出すことにより、多様な表情に対応した多様なマスタベクトルを抽出可能となる。たとえば、笑い皺や、えくぼなど、笑顔に特有の特徴量をマスタベクトルのベクトル成分として含めることもできる。
【0123】
誘導モーションを実行後、撮像制御部154はカメラ134を制御してユーザを撮像する(S12)。このときの撮像画像が「マスタ候補画像」となる。誘導モーションによってユーザがロボット100を見つめるタイミングにてユーザを撮像することにより、ユーザの顔を認識しやすい高品質なマスタ候補画像を取得できる。
【0124】
認識部156は、マスタ候補画像の品質を判定する(S14)。以下、マスタ候補画像の品質判定のことを「品質検査」とよぶ。品質検査に合格したマスタ候補画像がマスタ画像として設定される。品質検査が不合格の場合には(S14のN)、処理はS10に戻り、マスタ候補画像を再取得する。このときには、別の種類の誘導モーションを実行してもよい。品質検査のために、あらかじめユーザの顔の大きさ、光量、表情などについて複数の評価項目が設定される。たとえば、ユーザが閉眼しているときや、マスタ候補画像が暗すぎるときや明るすぎるとき、マスタ候補画像の焦点が合っていないときには、品質検査は不合格となる。品質検査のためにどのような評価項目を設定するかは任意である。
【0125】
認識部156は、品質検査に合格したマスタ候補画像を正式なマスタ画像として採用する(S14のY)。認識部156は、マスタ画像からマスタベクトルを抽出する(S16)。通信部142は、マスタベクトルをサーバ200に送信する(S18)。
【0126】
人物認識部214は、新たに得られたマスタベクトルとマスタ情報224に既に登録されているマスタベクトルを比較する(S20)。新たに得られたマスタベクトルが既に登録されているマスタベクトルの距離が近いときには(S20のY)、マスタベクトルを追加登録する(S22)。たとえば、ユーザ(01)のマスタベクトル(01)と類似のマスタベクトルが得られたときには、新たなマスタベクトルもユーザ(01)に対応づける。登録されているいずれのマスタベクトルとも近くないときには(S20のN)、新たなユーザIDとマスタIDを付与してマスタベクトルを新規登録する(S24)。
【0127】
S20においては登録済みのマスタベクトルと新規抽出のマスタベクトルを比較してもよいし、図10に関連して説明したように登録済みの重心ベクトルと新規抽出のマスタベクトルを比較してもよい。
【0128】
マスタベクトルの抽出処理は、抱っこに限らず、ユーザがロボット100にタッチしたことを契機として実行されてもよい。ユーザがロボット100にタッチするときには、ユーザはロボット100の近くにいるため良質なマスタ画像を得られる可能性がある。
【0129】
動作検出部152がロボット100の抱え下ろしを検出するときにも、認識部156はマスタベクトルの抽出処理を実行する。動作検出部152は、抱え下ろしが検出されたとき、連続的にユーザを撮像する。認識部156はこのときに得られた複数のマスタ候補画像を順次品質検査し、複数のマスタベクトルを抽出する。抱え下ろしのときには、顎や腰、足などの身体的特徴を近距離にて撮像できる。
【0130】
ユーザがロボット100を抱え上げたときに得られたマスタベクトルを「第1マスタベクトル」、ユーザがロボット100を下ろすとき、または、下ろしたあとに得られるマスタベクトルを「第2マスタベクトル」とよぶ。認識部156は、ユーザ(01)の第1マスタベクトルを得たあとは、抱え下ろしのときのマスタ画像から1以上の第2マスタベクトルも抽出する。このように高精度の第1マスタベクトルが得られたときには、抱え下ろしのときにも第2マスタベクトルを取得することにより、ユーザ(01)のマスタベクトルを充実させることができる。ここでいう「第2マスタベクトル」は、ロボット100が抱え下ろされたあとも、ユーザの後ろ姿も含めて、さまざまな距離や角度から得られるマスタベクトルも含まれる。第1マスタベクトルと第2マスタベクトルは、マスタ情報224に示したように一人のユーザについて互いに関連付けられる。
【0131】
図12は、ユーザの画像追跡方法を示す模式図である。
ロボット100が床面Fに降ろされたあとも、更に、撮像制御部154はカメラ134(全天球カメラ)によりユーザを追跡する。図12に示す天球撮像範囲418は、全天球カメラによる撮像範囲である。全天球カメラは、ロボット100の上方半球略全域を一度に撮像可能である。ロボット100の認識部156は、第1マスタベクトルを抽出したあともユーザを所定期間、たとえば、10秒程度は天球撮像範囲418において追跡する。撮像制御部154は、追跡中に、さまざまな角度、さまざまな距離からユーザのマスタ画像を撮像する。たとえば、髪の長さ、腰の細さなどはユーザから離れないと得られない情報である。認識部156は、追跡中に得られるマスタ画像からさまざまな第2マスタベクトルを抽出することにより、マスタベクトルを充実させる。これらの第2マスタベクトルは第1マスタベクトルと対応づけて管理される。天球撮像範囲418においてユーザを画像上で追跡するだけでなく、動作制御部150はユーザについていく、ユーザの周りを動き回るなどの追跡行動を実行させてもよい。そして、追跡行動中にも撮像制御部154はユーザを撮像することにより、マスタベクトルを充実させてもよい。追跡行動は、動作制御部150が指示してもよいし、サーバ200の動作制御部222が動作制御部150に指示してもよい。
【0132】
図13は、マスタベクトルを遠隔から抽出する方法を説明するための模式図である。
撮像制御部154は、抱っこやタッチだけではなく、ユーザがロボット100に対して所定の相対地点に位置したときマスタ候補画像を撮像する。ここでいう相対地点とは、ユーザとロボット100の距離および相対角度の双方を含む。測距部158は、天球撮像範囲418において認識された1以上のユーザに対して定期的に測距する。図13においては、ロボット100は、ユーザの正面方向に対して水平角a、ユーザの顔の位置に対して仰角b、ユーザからの距離rの相対地点に位置している。ユーザの体の向きは認識部156が画像認識により判定する。撮像制御部154は、距離、水平角および仰角が所定範囲(以下、「マスタショット範囲」とよぶ)にあるとき、マスタ候補画像を撮像する。認識部156は、マスタ候補画像を品質検査し、合格であればマスタベクトルを抽出する。
【0133】
測距部158は、あらかじめ複数のマスタショット範囲を設定されている。測距部158は、ユーザがマスタショット範囲に入るごとに撮像制御部154に通知し、撮像制御部154はマスタ候補画像を取得する。たとえば、マスタショット範囲R1〜R3が定義されているとき、新規ユーザCがマスタショット範囲R1に入ったときには、マスタショット範囲R1に対応するマスタ候補画像を取得する。このようにして、マスタショット範囲R1〜R3それぞれに対応するマスタベクトルを抽出する。ユーザCを複数のマスタショット範囲、いいかえれば、複数の相対地点から多角的に撮像し、多方向からのマスタベクトルを取得することでユーザの身体的特徴を3次元的に把握できる。
【0134】
抱っこやタッチなどの接触時には至近距離からユーザを撮影できるため、ユーザの顔について良質な情報を得やすい。一方、抱っこやタッチがされていないときでも、測距部158が至近距離のユーザを検出したときには、撮像制御部154はマスタ候補画像を取得すればよい。たとえば、小さな子どもが抱っこやタッチに抵抗があっても、興味をもって近づいてきたときにはマスタベクトルを抽出できる。また、ユーザの髪の長さや体型に関する情報を得るためにはロボット100はユーザからある程度は離れなければならない。さまざまなマスタショット範囲を設定することにより、ユーザの顔だけでなく体型まで含めた多様なマスタベクトルを取得できる。
【0135】
第1マスタベクトルは、ユーザを至近距離から撮像したマスタ画像に基づくため、ユーザを識別する上で有用な特徴ベクトルである。一方、第2マスタベクトルは、第1マスタベクトルほどユーザの身体的特徴がはっきりと現れないことも多い。そこで、抱っこやタッチをされたときのマスタ画像Aから第1マスタベクトル(A)を抽出したことを契機として、撮像制御部154は追跡モードに入る。追跡モードは所定時間継続するとしてもよい。撮像制御部154は、たとえば、抱え下ろしを検出したときにマスタ画像B1を取得する。このマスタ画像B1から第2マスタベクトル(B1)が抽出され、さきほど抽出された第1マスタベクトル(A)に対応づけられる。抱え下ろしのあとも追跡モードは継続し、ユーザがマスタショット範囲に入るとマスタ画像B2を更に取得する。このマスタ画像B2から得られる第2マスタベクトル(B2)も、追跡モードの契機となった第1マスタベクトル(A)に対応づけられる。このように、ユーザを確実に識別しやすい第1マスタベクトル(A)に対して、その後に得られるさまざまな第2マスタベクトルが対応づけられる。「後ろ姿」のように特徴が現れにくい第2マスタベクトルであっても、その取得契機となった第1マスタベクトルと対応づけることで、一人のユーザに対応するマスタベクトル群を充実させることができる。
【0136】
以上、実施形態に基づいてロボット100およびロボット100を含むロボットシステム300について説明した。
顔認識技術では、「正面を向いてください」「カメラを見つめてください」などの言語指示をユーザに与えた上で、マスタ画像を取得することが多い。このような音声や文字などの言語指示は、ユーザの負担になりやすい。また、マスタ画像を取得するための言語指示は、ロボット100の非生物性をユーザに意識させてしまうという点でも望ましくない。本実施形態におけるロボット100は、ユーザがロボット100を抱っこしたタイミングで、さりげなくマスタ画像を取得できる。ロボット100は、小さい、柔らかい、軽い、丸い、といった人間が触りたくなる形状を有する。ユーザになんらかの行動を強いるのではなく、ユーザが自然に「抱っこ」したタイミングを捉えて、高品質のマスタ画像を取得できる。抱っこやタッチをしたくなる気持ちを刺激するというロボット100の特性を生かすことで、マスタ画像をさりげなく取得できる。
【0137】
ロボット100は、更に、手106をばたつかせるなどの非言語の誘導モーションにより、ユーザの注意を喚起する。非言語コミュニケーション(non-verbal communication)によってユーザに注目させる方式であるため、ユーザは強制されている感覚をもちにくい。
【0138】
ロボット100は、抱っこされたときにユーザを撮像し、第1マスタベクトルを取得する。更に、ロボット100は、抱え下ろされるときや抱え下ろされたあともマスタ画像を撮像することにより、複数の第2マスタベクトルも取得できる。第1マスタベクトルを抽出したタイミングで第2マスタベクトルも蓄積することにより、ユーザの身体的特徴をより多面的に把握しやすくなる。
【0139】
本実施形態によれば、高品質かつ多数のマスタ画像に基づいて、ユーザ識別処理のための精緻な判別基準を確立しやすくなる。ユーザ識別処理は、応対行為の認識や親密度計算の前提となる。マスタベクトルに基づいて高精度にてユーザを識別することにより、ロボット100はユーザに応じて行動特性を変化させることができる。
【0140】
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
【0141】
1つのロボット100と1つのサーバ200、複数の外部センサ114によりロボットシステム300が構成されるとして説明したが、ロボット100の機能の一部はサーバ200により実現されてもよいし、サーバ200の機能の一部または全部がロボット100に割り当てられてもよい。1つのサーバ200が複数のロボット100をコントロールしてもよいし、複数のサーバ200が協働して1以上のロボット100をコントロールしてもよい。
【0142】
ロボット100やサーバ200以外の第3の装置が、機能の一部を担ってもよい。図6において説明したロボット100の各機能とサーバ200の各機能の集合体は大局的には1つの「ロボット」として把握することも可能である。1つまたは複数のハードウェアに対して、本発明を実現するために必要な複数の機能をどのように配分するかは、各ハードウェアの処理能力やロボットシステム300に求められる仕様等に鑑みて決定されればよい。
【0143】
上述したように、「狭義におけるロボット」とはサーバ200を含まないロボット100のことであるが、「広義におけるロボット」はロボットシステム300のことである。サーバ200の機能の多くは、将来的にはロボット100に統合されていく可能性も考えられる。
【0144】
マスタベクトルは、マスタ画像から抽出される特徴量以外の特徴量をベクトル成分として含んでもよい。たとえば、ニオイセンサで検出した匂いやマイクロフォンで検出した声質、温度センサで検出した体温をベクトル成分として含んでもよい。特に、抱っこのときにはユーザの匂いや体温などを高精度にて検出しやすい。マスタ画像は静止画ではなく動画(以下、「マスタ動画」とよぶ)であってもよい。認識部156は、マスタ動画からユーザの歩き方や貧乏ゆすりなどの癖を抽出し、これらの特徴情報をマスタベクトル成分に含めてもよい。
【0145】
本実施形態におけるカメラ134は、全天球カメラであるが、カメラ134は通常のカメラであってもよい。カメラ134はツノ112に内蔵されてもよいし、目110に内蔵されてもよい。また、全天球カメラと通常のカメラの双方が内蔵されてもよい。
【0146】
図8においては、重心ベクトルは複数のマスタベクトルの相加平均により形成されるが、変形例としては複数のマスタベクトルの中央値を重心ベクトルの成分としてもよい。たとえば、図8においてa1<a2<a3であれば、重心ベクトルのa成分はa2としてもよい。
【0147】
マスタ候補画像の品質検査に際しては、複数の評価項目に重み付けがなされてもよい。評価項目としては、(E1)正面を向いているか(E2)光量は適切か(E3)目を開けているか、などが考えられる。各評価項目についてマスタ候補画像を採点し、それらの項目点を加重平均することでマスタ候補画像の品質を判定してもよい。たとえば、E1〜E3にp1,p2,p3の係数が設定され(p1+p2+p3=1)、E1〜E3の項目値がs1,s2,s3であれば、総合点はp1・s1+p2・s2+p3・s3となる。総合点が所定の閾値以上であればマスタ画像として採択され、マスタベクトルはマスタ情報224に登録される。
【0148】
誘導モーションは、抱っこされたとき以外に実行されてもよい。ロボット100とユーザの距離が所定範囲内にあるときに、動作制御部150は誘導モーションを実行してもよい。たとえば、図13に示したマスタショット範囲にユーザがいるときに誘導モーションを実行した上で、マスタ候補画像を撮像してもよい。概括すれば、ロボット100はユーザとさまざまな関わり方をする最中に、ユーザの身体的・行動的特徴を把握する上で有効な「シャッターチャンス」を逃すことなくマスタベクトルを抽出することにより、多様かつ高品質なマスタベクトルをユーザに意識させることなく集めることができる。また、誘導モーションによる非言語の働きかけにより、積極的に「シャッターチャンス」を作り出すこともできる。
【0149】
本実施形態における誘導モーションは、非言語コミュニケーションの一種である。ここでいう非言語モーションは動物の鳴き声のように言語としての意味をなさない音声を含んでもよい。変形例として、ロボット100は簡単な言語によりユーザによびかけてもよい。
【0150】
ロボット100は、ユーザに抱っこされたとき、正面顔、右顔、左顔の3つの顔画像をマスタ画像として取得してもよい。認識部156は、ユーザの耳や鼻を認識することにより、どの方向からユーザを見ているかを判定してもよい。内部センサ128のひとつとして、ロボット100はジャイロスコープを搭載してもよい。認識部156はジャイロスコープにより、ユーザに抱っこされたときにロボット100の傾き方向を検出し、それによりユーザをどの方向から見ているかを判定してもよい。
【0151】
図9および図10に示した方法(以下、「距離判定法」とよぶ)のほか、マハラノビス距離(Mahalanobis' Distance)によりユーザ識別を実行してもよい。図10において、人物認識部214は、複数のマスタベクトルが得られたときには、その分散値を考慮して、検査ベクトルDXとユーザAのマスタベクトル・グループとのマハラノビス距離(Mahalanobis' Distance)を求める。同様にして、人物認識部214は、検査ベクトルDXとユーザBのマスタベクトル・グループとのマハラノビス距離を求める。そして、それぞれのグループを対象としたマハラノビス距離に基づいて、既知の判別分析手法により未知ユーザXがユーザAまたはユーザBのいずれであるかを判定してもよい(以下、「マハラノビス判定法」とよぶ)。
【0152】
人物認識部214は、各ユーザのマスタベクトル・グループを教師データとするニューラル・ネットワークを形成し、未知ユーザXの検査ベクトルとマスタベクトルとの当てはまりのよさに基づいてユーザ識別を実行してもよい(以下、「ニューラル・ネットワーク判定法」とよぶ)。
【0153】
人物認識部214は、距離判定法、マハラノビス判定法、ニューラル・ネットワーク判定法のうち、複数を組み合わせてユーザを識別してもよい。また、検査ベクトルとマスタベクトルの比較だけでなく、登録ユーザのマスタベクトルと未知ユーザのマスタベクトルを比較するときにも、上述の各種方法により類似判定をしてもよい。
【0154】
本実施形態においては、撮像制御部154は抱っこやタッチなどのタイミングにてマスタ画像を取得するとして説明した。変形例として、撮像制御部154はユーザを定期的に撮像し、認識部156は多数の撮像画像をマスタ候補画像として取捨選択してもよい。たとえば、10秒に1回のタイミングにてユーザを撮像し、認識部156はこれをマスタ候補画像として品質検査する。認識部156は合格したマスタ画像からマスタベクトルを抽出する。このような方法によれば、偶然得られた良質な撮像画像からもマスタベクトルを抽出できる。
【0155】
人物認識部214は、マスタベクトルの数が所定数以上となったとき、古いマスタベクトルを個人データ格納部218から削除してもよい。あるいは、古いマスタベクトル、たとえば、3年以上前に取得されたマスタベクトルを削除してもよい。このような制御方法によれば、個人データ格納部218のデータ量を抑制できるだけではなく、ユーザの加齢や成長にともなう身体的特徴の変化にも対応できる。
【0156】
本実施形態においてはロボット100において特徴ベクトルを抽出し、サーバ200において特徴ベクトルの比較を行うことでユーザ識別するとして説明した。変形例として、ロボット100は、撮像画像をサーバ200に送り、サーバ200の人物認識部214が特徴ベクトルの抽出およびユーザ識別の双方を実行してもよい。あるいは、ロボット100は、サーバ200の処理能力に頼ることなく、認識部156においてユーザ識別処理を実行してもよい。この場合には、ロボット100は各ユーザのマスタベクトルをロボット100のデータ格納部148において管理してもよい。
【0157】
ロボット100に内蔵されるカメラや各種センサに限らず、外部センサ114に内蔵されるセンサによりユーザの身体的・行動的特徴を抽出してもよい。外部センサ114はユーザが近くにいるときにユーザを撮像し、撮像画像をロボット100に送信する。ロボット100の認識部156は、この撮像画像の品質検査や成分抽出を実行してもよい。
【0158】
本実施形態においては、個人データ格納部218はマスタ画像ではなくマスタベクトルを保存するとして説明したが、マスタ画像とマスタベクトルの双方を保存してもよい。
【0159】
ロボットシステム300は、工場出荷時からマスタベクトルによるユーザ識別機能を備える必要はない。たとえば、ロボットシステム300は、ディープラーニングを応用したクラスタリング技術によりユーザ識別を行ってもよい。ロボットシステム300の出荷後に、通信ネットワークを介してマスタベクトルによるユーザ識別機能を実現する行動制御プログラムをダウンロードすることにより、ロボットシステム300の機能強化が実現されてもよい。
【0160】
上述したように、認識部156は、ロボット100が抱え上げられたときの撮像画像をマスタ候補画像として選択する。認識部156は、サーマルカメラなどの温度センサによりユーザの顔の位置および向きを検出してもよいし、測距センサによりユーザとロボット100の距離を検出してもよい。認識部156は、サーマルカメラによる温度情報および測距センサによる距離情報の双方または一方について所定の特定条件が成立したときの撮像画像をマスタ候補画像として選択してもよい。たとえば、認識部156は、サーマルカメラによりユーザがロボット100に向かい合っていることが確認でき、かつ、測距センサによりユーザとロボット100の距離が所定範囲内にあるときの撮像画像をマスタ候補画像として選択してもよい。このような制御方法によれば、適切なマスタ候補画像を複数種類のセンサに基づいて厳選しやすくなる。
【0161】
ロボット100が搭載するカメラは全天球カメラであってもよい。ロボット100がユーザに背中側から抱っこされたとき、いいかえれば、ロボット100とユーザが正対していないときでも、ロボット100は全天球カメラにより後方のユーザを撮影できる。したがって、ロボット100が背中側から抱っこされているときでも、認識部156は適切なマスタ候補画像を取得可能となるため、マスタ候補画像の取得機会を拡大できる。あるいは、ロボット100とユーザが正対していることを条件として、認識部156はマスタ候補画像を特定するとしてもよい。
【0162】
抱っこされたときの撮像画像に複数のユーザが映っているときには、認識部156はこの撮像画像をマスタ候補画像として選択しないとしてもよい。
【0163】
複数のユーザが含まれる撮像画像において登録ユーザP1が検出されたときには、認識部156は登録ユーザP1の特徴ベクトルをこの撮像画像から抽出し、これを登録ユーザP1の新たなマスタベクトルとして追加登録するとしてもよい。複数のユーザが含まれる撮像画像において登録ユーザが検出されなかったときには、いいかえれば、複数の未知ユーザのみが含まれる撮像画像が得られたときには、認識部156は、正面を向いているなど所定の条件を満たす未知ユーザP2について特徴ベクトルを抽出し、これを未知ユーザP2のマスタベクトルとして新規登録してもよい。
【0164】
認識部156は、撮影に際して、マイクロフォンによりユーザの声(音声情報)も取得してもよい。マスタベクトルは、画像情報に限らず、音声情報に基づく特徴ベクトルを含んでもよい。同様にして、認識部156は、撮影に際して、ニオイセンサによりユーザの匂い(嗅覚情報)を取得してもよい。このように登録ユーザを特定するための情報として、画像情報のほか、音声情報や嗅覚情報など多様なセンサ情報が含まれてもよい。
【0165】
ロボット100は、複数のマイクロフォンを備えてもよい。音声登録に際しては、ユーザの存在する方向に対応するマイクロフォン、たとえば、ロボット100の前方に取り付けられるマイクロフォンのみから音声を検出してもよい。認識部156は、他のマイクロフォンを無効にしてもよい。このような制御方法によれば、ユーザ以外の環境音がマスタベクトルに取り込まれにくくなる。マイクロフォン、特に、前方に取り付けられるマイクロフォンは指向性を有することが望ましい。
【0166】
撮像画像に映るユーザの口唇に動きを検出したときの音声情報であることを条件として、認識部156はユーザの音声情報をマスタベクトルの一部として取得するとしてもよい。未知ユーザを検出したとき、認識部156は未知ユーザに近づいて抱っこをせがむモーションを実行させてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13