(57)【要約】  ロボットは、ロボットの移動経路である実行軌道を決定する動作制御部と、実行軌道に沿ってロボットを移動させる駆動機構を備える。ロボットは、イベントが発生する前に、イベントに対応する予定軌道を生成する。実行軌道に沿って移動している最中に実際にイベントが発生したときには、ロボットは実行軌道ではなく予定軌道に沿って移動する。１つのイベントに対して複数の予定軌道が順次生成され、イベントが発生したときに複数の予定軌道が生成済みのときには、それらの中からいずれかの予定軌道が選択される。
2018043274.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの移動経路である実行軌道を決定する動作制御部と、  前記実行軌道に沿って前記ロボットを移動させる駆動機構と、  イベントが発生する前に、イベントに対応する予定軌道を生成する軌道生成部と、を備え、  前記動作制御部は、前記実行軌道を前記ロボットが移動しているときに前記イベントが発生した場合には、前記実行軌道ではなく前記予定軌道に沿って前記ロボットを移動させることを特徴とする自律行動型ロボット。
【請求項２】
前記軌道生成部は、前記イベントに対応する複数の予定軌道を順次生成し、  前記動作制御部は、前記イベントが発生したときに複数の予定軌道が生成済みのときには、前記複数の予定軌道のうちいずれかの予定軌道を選択することを特徴とする請求項１に記載の自律行動型ロボット。
【請求項３】
前記軌道生成部は、複数種類のイベントに対応する複数の予定軌道を生成し、  前記動作制御部は、前記複数種類のイベントのうちのいずれかのイベントが発生したとき、発生したイベントに対応する予定軌道に沿って前記ロボットを移動させることを特徴とする請求項１に記載の自律行動型ロボット。
【請求項４】
前記軌道生成部は、複数種類のイベントの優先順位に基づいて、前記複数の予定軌道を順次生成することを特徴とする請求項３に記載の自律行動型ロボット。
【請求項５】
前記軌道生成部は、イベントの発生が想定される複数の地点に対応して複数の予定軌道を生成し、  前記動作制御部は、前記イベントの発生地点に対応する予定軌道に沿って前記ロボットを移動させることを特徴とする請求項１に記載の自律行動型ロボット。
【請求項６】
前記動作制御部は、イベントが発生したときにはあらかじめ定められたモーションを実行し、前記モーションの実行後に前記イベントに対応する予定軌道に沿って前記ロボットを移動させることを特徴とする請求項１に記載の自律行動型ロボット。
【請求項７】
所定の安全条件を満たす地点を安全地点として検出する安全地点検出部と、を更に備え、  前記軌道生成部は、安全地点を移動目的地点とする予定軌道を生成することを特徴とする請求項１に記載の自律行動型ロボット。
【請求項８】
自律行動型ロボットと通信回線を介して接続され、  前記自律行動型ロボットの位置およびイベントに対応する予定軌道を生成する軌道生成部と、  前記イベントが発生する前に、前記自律行動型ロボットに前記予定軌道を通知する軌道通知部と、を備えることを特徴とするサーバ。
【請求項９】
前記軌道生成部は、前記自律行動型ロボットから軌道生成指示を受信したことを条件として予定軌道を生成することを特徴とする請求項８に記載のサーバ。
【請求項１０】
前記軌道生成部は、前記自律行動型ロボットの行動特性に応じた予定軌道を生成することを特徴とする請求項８に記載のサーバ。
【請求項１１】
前記軌道生成部は、複数種類のイベントに対応する複数の予定軌道を計算し、  前記軌道通知部は、前記複数種類のイベントのいずれも発生していないときにも、前記複数の予定軌道を通知することを特徴とする請求項８に記載のサーバ。
【請求項１２】
前記軌道生成部は、イベントの発生が想定される複数の地点に対応して複数の予定軌道を生成し、  前記軌道通知部は、前記イベントが発生する前に、前記複数の地点に対応する前記複数の予定軌道を通知することを特徴とする請求項８に記載のサーバ。
【請求項１３】
前記軌道生成部は、所定の安全条件を満たす安全地点を前記予定軌道の移動目標地点として設定することを特徴とする請求項８に記載のサーバ。
【請求項１４】
ロボットのモーションを選択する動作制御部と、  前記動作制御部により選択されたモーションを実行する駆動機構と、  所定の安全条件を満たす地点を安全地点として検出する安全地点検出部と、を備え、  前記動作制御部は、所定のイベントが発生したとき、前記安全地点に前記ロボットを移動させることを特徴とする自律行動型ロボット。
【請求項１５】
前記安全地点検出部は、前記検出された安全地点をリストに登録し、  前記動作制御部は、移動目標地点を選択してからロボットが前記移動目標地点に到達するまでの期間に前記イベントが発生したときには、前記リストに登録されている安全地点からいずれかの安全地点を新たな移動目標地点として設定することを特徴とする請求項１４に記載の自律行動型ロボット。
【請求項１６】
前記動作制御部は、所定のイベントが発生したとき、イベント発生前に特定された予定軌道に沿って前記安全地点に前記ロボットを移動させることを特徴とする請求項１４に記載の自律行動型ロボット。
【請求項１７】
ロボットの移動方向を決定するためのコンピュータプログラムであって、  イベントが発生する前に、イベントに対応する予定軌道を生成する機能と、  前記イベントが発生したとき、事前に決定された移動経路ではなく前記予定軌道に沿って前記ロボットを移動させる機能と、をコンピュータに発揮させることを特徴とする行動制御プログラム。
【請求項１８】
ロボットの移動方向を決定するためのコンピュータプログラムであって、  所定の安全条件を満たす地点を安全地点として検出する機能と、  安全地点の位置座標を登録する機能と、  所定のイベントが発生したとき、前記安全地点に前記ロボットを移動させる機能と、をコンピュータに発揮させることを特徴とする行動制御プログラム。
【請求項１９】
自律行動型ロボットの位置を検出する機能と、  前記自律行動型ロボットの位置およびイベントに対応する予定軌道を計算する機能と、  前記イベントが発生する前に、前記自律行動型ロボットに前記予定軌道を通知する機能と、をコンピュータに発揮させることを特徴とする行動制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、内部状態または外部環境に応じて自律的に行動選択するロボット、に関する。
【背景技術】
【０００２】  人間は、感覚器官を通して外部環境からさまざまな情報を取得し、行動を選択する。意識的に行動選択することもあれば、無意識的な行動選択もある。繰り返し行動はやがて無意識的行動となり、そうでない行動は意識領域にとどまる。【０００３】  人間は、自らの行動を自由に選択する意志、すなわち、自由意志をもっていると信じている。人間が他人に対して愛情や憎しみといった感情を抱くのは、他人にも自由意志があると信じているからである。自由意志を持つ者、少なくとも自由意志を持っていると想定可能な存在は、人の寂しさを癒す存在にもなる。【０００４】  人間がペットを飼う理由は、人間の役に立つか否かよりも、ペットが癒しを与えてくれるからである。ペットは、多かれ少なかれ自由意志を感じさせる存在であるからこそ、人間のよき伴侶となることができる。【０００５】  その一方、ペットの世話をする時間を十分に確保できない、ペットを飼える住環境にない、アレルギーがある、死別がつらい、といったさまざまな理由により、ペットをあきらめている人は多い。もし、ペットの役割が務まるロボットがあれば、ペットを飼えない人にもペットが与えてくれるような癒しを与えられるかもしれない（特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２４６５８０号公報
【特許文献２】特開２００６−３９７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】  自由意志だけでなく、「本能」も生物の行動特性を特徴づけるものである。本能とは、意識的な判断をともなわず環境からの刺激によって引き起こされる反応であり、危険回避はその代表例である。生物は危険を察知すると、無意識的・反射的に危険を回避しようとする。危険を認識したときに、ロボットに生物と同じような危険回避行動を取らせることができれば、ロボットの「生物としての存在感」を高めることができると考えられる。【０００８】  しかし、ロボットが危険を認識したあと即時に適切な回避行動を実行するのは容易ではない。危険を認識したあと、どうやって逃げるか、どこに逃げるかを決めるための計算処理に時間がかかりすぎると、不自然な動きになってしまう。危険事象に限らず、なんらかの事象に対して素早く反応することは生物に近い行動特性をロボットで表現する上で重要である。【０００９】  本発明は上記課題認識に基づいて完成された発明であり、その主たる目的は、外部で発生するさまざまな事象に対するロボットの反射的行動を効率的に制御するための技術、を提供することにある。
【課題を解決するための手段】
【００１０】  本発明のある態様における自律行動型ロボットは、ロボットの移動経路である実行軌道を決定する動作制御部と、前記実行軌道に沿って前記ロボットを移動させる駆動機構と、イベントが発生する前に、イベントに対応する予定軌道を生成する軌道生成部と、を備える。  動作制御部は、実行軌道をロボットが移動しているときにイベントが発生した場合には、移動経路ではなく予定軌道に沿ってロボットを移動させる。【００１１】  本発明のある態様におけるサーバは、自律行動型ロボットと通信回線を介して接続される。  サーバは、自律行動型ロボットの位置およびイベントに対応する予定軌道を生成する軌道生成部と、イベントが発生する前に、自律行動型ロボットに予定軌道を通知する軌道通知部と、を備える。【００１２】  本発明の別の態様における自律行動型ロボットは、ロボットのモーションを選択する動作制御部と、動作制御部により選択されたモーションを実行する駆動機構と、所定の安全条件を満たす地点を安全地点として検出する安全地点検出部と、を備える。  動作制御部は、所定のイベントが発生したとき、安全地点にロボットを移動させる。
【発明の効果】
【００１３】  本発明によれば、ロボットに対する共感を高めやすくなる。
【図面の簡単な説明】
【００１４】
【図１（ａ）】ロボットの正面外観図である。
【図１（ｂ）】ロボットの側面外観図である。
【図２】ロボットの構造を概略的に表す断面図である。
【図３】ロボットシステムの構成図である。
【図４】感情マップの概念図である。
【図５】ロボットのハードウェア構成図である。
【図６】ロボットシステムの機能ブロック図である。
【図７】モーション選択テーブルのデータ構造図である。
【図８】予定軌道選択テーブルのデータ構造図である。
【図９】予定軌道の生成方法を示す模式図である。
【図１０】移動中に想定されるイベントと、イベントに対する予定軌道を説明する模式図である。
【図１１】予定軌道生成処理の処理過程を示すフローチャートである。
【図１２】イベント発生時の処理過程を示すフローチャートである。
【発明を実施するための形態】
【００１５】  図１（ａ）は、ロボット１００の正面外観図である。図１（ｂ）は、ロボット１００の側面外観図である。  本実施形態におけるロボット１００は、外部環境および内部状態に基づいて行動や仕草（ジェスチャー）を決定する自律行動型のロボットである。外部環境は、カメラやサーモセンサなど各種のセンサにより認識される。内部状態はロボット１００の感情を表現するさまざまなパラメータとして定量化される。これらについては後述する。
【００１６】  ロボット１００は、屋内行動が前提とされており、たとえば、オーナー家庭の家屋内を行動範囲とする。以下、ロボット１００に関わる人間を「ユーザ」とよび、ロボット１００が所属する家庭の構成員となるユーザのことを「オーナー」とよぶ。
【００１７】  ロボット１００のボディ１０４は、全体的に丸みを帯びた形状を有し、ウレタンやゴム、樹脂、繊維などやわらかく弾力性のある素材により形成された外皮を含む。ロボット１００に服を着せてもよい。丸くてやわらかく、手触りのよいボディ１０４とすることで、ロボット１００はユーザに安心感とともに心地よい触感を提供する。
【００１８】  ロボット１００は、総重量が１５キログラム以下、好ましくは１０キログラム以下、更に好ましくは、５キログラム以下である。生後１３ヶ月までに、赤ちゃんの過半数は一人歩きを始める。生後１３ヶ月の赤ちゃんの平均体重は、男児が９キログラム強、女児が９キログラム弱である。このため、ロボット１００の総重量が１０キログラム以下であれば、ユーザは一人歩きできない赤ちゃんを抱きかかえるのとほぼ同等の労力でロボット１００を抱きかかえることができる。生後２ヶ月未満の赤ちゃんの平均体重は男女ともに５キログラム未満である。したがって、ロボット１００の総重量が５キログラム以下であれば、ユーザは乳児を抱っこするのと同等の労力でロボット１００を抱っこできる。
【００１９】  適度な重さと丸み、柔らかさ、手触りのよさ、といった諸属性により、ユーザがロボット１００を抱きかかえやすく、かつ、抱きかかえたくなるという効果が実現される。同様の理由から、ロボット１００の身長は１．２メートル以下、好ましくは、０．７メートル以下であることが望ましい。本実施形態におけるロボット１００にとって、抱きかかえることができるというのは重要なコンセプトである。
【００２０】  ロボット１００は、３輪走行するための３つの車輪を備える。図示のように、一対の前輪１０２（左輪１０２ａ，右輪１０２ｂ）と、一つの後輪１０３を含む。前輪１０２が駆動輪であり、後輪１０３が従動輪である。前輪１０２は、操舵機構を有しないが、回転速度や回転方向を個別に制御可能とされている。後輪１０３は、いわゆるオムニホイールからなり、ロボット１００を前後左右へ移動させるために回転自在となっている。左輪１０２ａよりも右輪１０２ｂの回転数を大きくすることで、ロボット１００は左折したり、左回りに回転できる。右輪１０２ｂよりも左輪１０２ａの回転数を大きくすることで、ロボット１００は右折したり、右回りに回転できる。
【００２１】  前輪１０２および後輪１０３は、駆動機構（回動機構、リンク機構）によりボディ１０４に完全収納できる。走行時においても各車輪の大部分はボディ１０４に隠れているが、各車輪がボディ１０４に完全収納されるとロボット１００は移動不可能な状態となる。すなわち、車輪の収納動作にともなってボディ１０４が降下し、床面Ｆに着座する。この着座状態においては、ボディ１０４の底部に形成された平坦状の着座面１０８（接地底面）が床面Ｆに当接する。
【００２２】  ロボット１００は、２つの手１０６を有する。手１０６には、モノを把持する機能はない。手１０６は上げる、振る、振動するなど簡単な動作が可能である。２つの手１０６も個別制御可能である。
【００２３】  目１１０にはカメラが内蔵される。目１１０は、液晶素子または有機ＥＬ素子による画像表示も可能である。ロボット１００は、目１１０に内蔵されるカメラのほか、音源方向を特定可能なマイクロフォンアレイや超音波センサなどさまざまなセンサを搭載する。また、スピーカーを内蔵し、簡単な音声を発することもできる。
【００２４】  ロボット１００の頭部にはツノ１１２が取り付けられる。上述のようにロボット１００は軽量であるため、ユーザはツノ１１２をつかむことでロボット１００を持ち上げることも可能である。ツノ１１２には全天球カメラが取り付けられ、ロボット１００の上部全域を一度に撮像可能である。
【００２５】  図２は、ロボット１００の構造を概略的に表す断面図である。  図２に示すように、ロボット１００のボディ１０４は、ベースフレーム３０８、本体フレーム３１０、一対の樹脂製のホイールカバー３１２および外皮３１４を含む。ベースフレーム３０８は、金属からなり、ボディ１０４の軸芯を構成するとともに内部機構を支持する。ベースフレーム３０８は、アッパープレート３３２とロアプレート３３４とを複数のサイドプレート３３６により上下に連結して構成される。複数のサイドプレート３３６間には通気が可能となるよう、十分な間隔が設けられる。ベースフレーム３０８の内方には、バッテリー１１８、制御回路３４２および各種アクチュエータが収容されている。
【００２６】  本体フレーム３１０は、樹脂材からなり、頭部フレーム３１６および胴部フレーム３１８を含む。頭部フレーム３１６は、中空半球状をなし、ロボット１００の頭部骨格を形成する。胴部フレーム３１８は、段付筒形状をなし、ロボット１００の胴部骨格を形成する。胴部フレーム３１８は、ベースフレーム３０８と一体に固定される。頭部フレーム３１６は、胴部フレーム３１８の上端部に相対変位可能に組み付けられる。
【００２７】  頭部フレーム３１６には、ヨー軸３２０、ピッチ軸３２２およびロール軸３２４の３軸と、各軸を回転駆動するためのアクチュエータ３２６が設けられる。アクチュエータ３２６は、各軸を個別に駆動するための複数のサーボモータを含む。首振り動作のためにヨー軸３２０が駆動され、頷き動作のためにピッチ軸３２２が駆動され、首を傾げる動作のためにロール軸３２４が駆動される。
【００２８】  頭部フレーム３１６の上部には、ヨー軸３２０を支持するプレート３２５が固定されている。プレート３２５には、上下間の通気を確保するための複数の通気孔３２７が形成される。
【００２９】  頭部フレーム３１６およびその内部機構を下方から支持するように、金属製のベースプレート３２８が設けられる。ベースプレート３２８は、クロスリンク機構３２９（パンタグラフ機構）を介してプレート３２５と連結される一方、ジョイント３３０を介してアッパープレート３３２（ベースフレーム３０８）と連結されている。
【００３０】  胴部フレーム３１８は、ベースフレーム３０８と車輪駆動機構３７０を収容する。車輪駆動機構３７０は、回動軸３７８およびアクチュエータ３７９を含む。胴部フレーム３１８の下半部は、ホイールカバー３１２との間に前輪１０２の収納スペースＳを形成するために小幅とされている。
【００３１】  外皮３１４は、ウレタンゴムからなり、本体フレーム３１０およびホイールカバー３１２を外側から覆う。手１０６は、外皮３１４と一体成形される。外皮３１４の上端部には、外気を導入するための開口部３９０が設けられる。
【００３２】  図３は、ロボットシステム３００の構成図である。  ロボットシステム３００は、ロボット１００、サーバ２００および複数の外部センサ１１４を含む。家屋内にはあらかじめ複数の外部センサ１１４（外部センサ１１４ａ、１１４ｂ、・・・、１１４ｎ）が設置される。外部センサ１１４は、家屋の壁面に固定されてもよいし、床に載置されてもよい。サーバ２００には、外部センサ１１４の位置座標が登録される。位置座標は、ロボット１００の行動範囲として想定される家屋内においてｘ，ｙ座標として定義される。
【００３３】  サーバ２００は、家庭内に設置される。本実施形態におけるサーバ２００とロボット１００は１対１で対応する。ロボット１００の内蔵するセンサおよび複数の外部センサ１１４から得られる情報に基づいて、サーバ２００がロボット１００の基本行動を決定する。  外部センサ１１４はロボット１００の感覚器を補強するためのものであり、サーバ２００はロボット１００の頭脳を補強するためのものである。
【００３４】  外部センサ１１４は、定期的に外部センサ１１４のＩＤ（以下、「ビーコンＩＤ」とよぶ）を含む無線信号（以下、「ロボット探索信号」とよぶ）を送信する。ロボット１００はロボット探索信号を受信するとビーコンＩＤを含む無線信号（以下、「ロボット返答信号」とよぶ）を返信する。サーバ２００は、外部センサ１１４がロボット探索信号を送信してからロボット返答信号を受信するまでの時間を計測し、外部センサ１１４からロボット１００までの距離を測定する。複数の外部センサ１１４とロボット１００とのそれぞれの距離を計測することで、ロボット１００の位置座標を特定する。  もちろん、ロボット１００が自らの位置座標を定期的にサーバ２００に送信する方式でもよい。
【００３５】  図４は、感情マップ１１６の概念図である。  感情マップ１１６は、サーバ２００に格納されるデータテーブルである。ロボット１００は、感情マップ１１６にしたがって行動選択する。図４に示す感情マップ１１６は、ロボット１００の場所に対する好悪感情の大きさを示す。感情マップ１１６のｘ軸とｙ軸は、二次元空間座標を示す。ｚ軸は、好悪感情の大きさを示す。ｚ値が正値のときにはその場所に対する好感が高く、ｚ値が負値のときにはその場所を嫌悪していることを示す。
【００３６】  図４の感情マップ１１６において、座標Ｐ１は、ロボット１００の行動範囲としてサーバ２００が管理する屋内空間のうち好感情が高い地点（以下、「好意地点」とよぶ）である。好意地点は、ソファの陰やテーブルの下などの「安全な場所」であってもよいし、リビングのように人が集まりやすい場所、賑やかな場所であってもよい。また、過去にやさしく撫でられたり、触れられたりした場所であってもよい。  ロボット１００がどのような場所を好むかという定義は任意であるが、一般的には、小さな子どもや犬や猫などの小動物が好む場所を好意地点として設定することが望ましい。
【００３７】  座標Ｐ２は、悪感情が高い地点（以下、「嫌悪地点」とよぶ）である。嫌悪地点は、テレビの近くなど大きな音がする場所、お風呂や洗面所のように濡れやすい場所、閉鎖空間や暗い場所、ユーザから乱暴に扱われたことがある不快な記憶に結びつく場所などであってもよい。  ロボット１００がどのような場所を嫌うかという定義も任意であるが、一般的には、小さな子どもや犬や猫などの小動物が怖がる場所を嫌悪地点として設定することが望ましい。
【００３８】  座標Ｑは、ロボット１００の現在位置を示す。複数の外部センサ１１４が定期的に送信するロボット探索信号とそれに対するロボット返答信号により、サーバ２００はロボット１００の位置座標を特定する。たとえば、ビーコンＩＤ＝１の外部センサ１１４とビーコンＩＤ＝２の外部センサ１１４がそれぞれロボット１００を検出したとき、２つの外部センサ１１４からロボット１００の距離を求め、そこからロボット１００の位置座標を求める。
【００３９】  あるいは、ビーコンＩＤ＝１の外部センサ１１４は、ロボット探索信号を複数方向に送信し、ロボット１００はロボット探索信号を受信したときロボット返答信号を返す。これにより、サーバ２００は、ロボット１００がどの外部センサ１１４からどの方向のどのくらいの距離にいるかを把握してもよい。また、別の実施の形態では、前輪１０２または後輪１０３の回転数からロボット１００の移動距離を算出して、現在位置を特定してもよいし、カメラから得られる画像に基づいて現在位置を特定してもよい。  図４に示す感情マップ１１６が与えられた場合、ロボット１００は好意地点（座標Ｐ１）に引き寄せられる方向、嫌悪地点（座標Ｐ２）から離れる方向に移動する。
【００４０】  感情マップ１１６は動的に変化する。ロボット１００が座標Ｐ１に到達すると、座標Ｐ１におけるｚ値（好感情）は時間とともに低下する。これにより、ロボット１００は好意地点（座標Ｐ１）に到達して、「感情が満たされ」、やがて、その場所に「飽きてくる」という生物的行動をエミュレートできる。同様に、座標Ｐ２における悪感情も時間とともに緩和される。時間経過とともに新たな好意地点や嫌悪地点が生まれ、それによってロボット１００は新たな行動選択を行う。ロボット１００は、新しい好意地点に「興味」を持ち、絶え間なく行動選択する。
【００４１】  感情マップ１１６は、ロボット１００の内部状態として、感情の起伏を表現する。ロボット１００は、好意地点を目指し、嫌悪地点を避け、好意地点にしばらくとどまり、やがてまた次の行動を起こす。このような制御により、ロボット１００の行動選択を人間的・生物的なものにできる。
【００４２】  なお、ロボット１００の行動に影響を与えるマップ（以下、「行動マップ」と総称する）は、図４に示したようなタイプの感情マップ１１６に限らない。たとえば、好奇心、恐怖を避ける気持ち、安心を求める気持ち、静けさや薄暗さ、涼しさや暖かさといった肉体的安楽を求める気持ち、などさまざまな行動マップを定義可能である。そして、複数の行動マップそれぞれのｚ値を重み付け平均することにより、ロボット１００の目的地点を決定してもよい。
【００４３】  ロボット１００は、行動マップとは別に、さまざまな感情や感覚の大きさを示すパラメータを有する。たとえば、寂しさという感情パラメータの値が高まっているときには、安心する場所を評価する行動マップの重み付け係数を大きく設定し、目標地点に到達することでこの感情パラメータの値を低下させる。同様に、つまらないという感覚を示すパラメータの値が高まっているときには、好奇心を満たす場所を評価する行動マップの重み付け係数を大きく設定すればよい。
【００４４】  図５は、ロボット１００のハードウェア構成図である。  ロボット１００は、内部センサ１２８、通信機１２６、記憶装置１２４、プロセッサ１２２、駆動機構１２０およびバッテリー１１８を含む。駆動機構１２０は、上述した車輪駆動機構３７０を含む。プロセッサ１２２と記憶装置１２４は、制御回路３４２に含まれる。各ユニットは電源線１３０および信号線１３２により互いに接続される。バッテリー１１８は、電源線１３０を介して各ユニットに電力を供給する。各ユニットは信号線１３２により制御信号を送受する。バッテリー１１８は、リチウムイオン二次電池であり、ロボット１００の動力源である。
【００４５】  内部センサ１２８は、ロボット１００が内蔵する各種センサの集合体である。具体的には、カメラ（高解像度カメラと全天球カメラ）、マイクロフォンアレイ、赤外線センサ、サーモセンサ、タッチセンサ、加速度センサ、ニオイセンサなどである。ニオイセンサは、匂いの元となる分子の吸着によって電気抵抗が変化する原理を応用した既知のセンサである。ニオイセンサは、さまざまな匂いを複数種類のカテゴリ（以下、「ニオイカテゴリ」とよぶ）に分類する。
【００４６】  通信機１２６は、サーバ２００や外部センサ１１４、ユーザの有する携帯機器など各種の外部機器を対象として無線通信を行う通信モジュールである。記憶装置１２４は、不揮発性メモリおよび揮発性メモリにより構成され、コンピュータプログラムや各種設定情報を記憶する。プロセッサ１２２は、コンピュータプログラムの実行手段である。駆動機構１２０は、内部機構を制御するアクチュエータである。このほかには、表示器やスピーカーなども搭載される。
【００４７】  プロセッサ１２２は、通信機１２６を介してサーバ２００や外部センサ１１４と通信しながら、ロボット１００の行動選択を行う。内部センサ１２８により得られるさまざまな外部情報も行動選択に影響する。駆動機構１２０は、主として、車輪（前輪１０２）と頭部（頭部フレーム３１６）を制御する。駆動機構１２０は、２つの前輪１０２それぞれの回転速度や回転方向を変化させることにより、ロボット１００の移動方向や移動速度を変化させる。また、駆動機構１２０は、車輪（前輪１０２および後輪１０３）を昇降させることもできる。車輪が上昇すると、車輪はボディ１０４に完全に収納され、ロボット１００は着座面１０８にて床面Ｆに当接し、着座状態となる。
【００４８】  図６は、ロボットシステム３００の機能ブロック図である。  上述のように、ロボットシステム３００は、ロボット１００、サーバ２００および複数の外部センサ１１４を含む。ロボット１００およびサーバ２００の各構成要素は、ＣＰＵ（Central Processing Unit）および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。  ロボット１００の機能の一部はサーバ２００により実現されてもよいし、サーバ２００の機能の一部または全部はロボット１００により実現されてもよい。
【００４９】（サーバ２００）  サーバ２００は、通信部２０４、データ処理部２０２およびデータ格納部２０６を含む。  通信部２０４は、外部センサ１１４およびロボット１００との通信処理を担当する。データ格納部２０６は各種データを格納する。データ処理部２０２は、通信部２０４により取得されたデータおよびデータ格納部２０６に格納されるデータに基づいて各種処理を実行する。データ処理部２０２は、通信部２０４およびデータ格納部２０６のインタフェースとしても機能する。
【００５０】  通信部２０４は、軌道通知部２４０を含む。軌道通知部２４０は、後述の軌道生成部２４２により生成される予定軌道および予定軌道選択テーブルをロボット１００に通知する。予定軌道および予定軌道選択テーブルについても後述する。
【００５１】  データ格納部２０６は、モーション格納部２３２、マップ格納部２１６、個人データ格納部２１８および予定軌道格納部２２４を含む。  ロボット１００は、複数の動作パターン（モーション）を有する。手を震わせる、蛇行しながらオーナーに近づく、首をかしげたままオーナーを見つめる、などさまざまなモーションが定義されている。
【００５２】  モーション格納部２３２は、モーションの制御内容を定義する「モーションファイル」を格納する。各モーションは、モーションＩＤにより識別される。モーションファイルは、ロボット１００のモーション格納部１６０にもダウンロードされる。どのモーションを実行するかは、サーバ２００で決定されることもあるし、ロボット１００で決定されることもある。
【００５３】  ロボット１００のモーションの多くは、複数の単位モーションを含む複合モーションとして構成される。たとえば、ロボット１００がオーナーに近づくとき、オーナーの方に向き直る単位モーション、手を上げながら近づく単位モーション、体を揺すりながら近づく単位モーション、両手を上げながら着座する単位モーションの組み合わせとして表現されてもよい。このような４つのモーションの組み合わせにより、「オーナーに近づいて、途中で手を上げて、最後は体をゆすった上で着座する」というモーションが実現される。モーションファイルには、ロボット１００に設けられたアクチュエータの回転角度や角速度などが時間軸に関連づけて定義される。モーションファイル（アクチュエータ制御情報）にしたがって、時間経過とともに各アクチュエータを制御することで様々なモーションが表現される。
【００５４】  先の単位モーションから次の単位モーションに変化するときの移行時間を「インターバル」とよぶ。インターバルは、単位モーション変更に要する時間やモーションの内容に応じて定義されればよい。インターバルの長さは調整可能である。  以下、いつ、どのモーションを選ぶか、モーションを実現する上での各アクチュエータの出力調整など、ロボット１００の行動制御にかかわる設定のことを「行動特性」と総称する。ロボット１００の行動特性は、モーション選択アルゴリズム、モーションの選択確率、モーションファイル、予定軌道、予定軌道選択テーブル等により定義される。
【００５５】  モーション格納部２３２は、モーションファイルのほか、各種のイベントが発生したときに実行すべきモーションを定義するモーション選択テーブルを格納する。モーション選択テーブルについては、図７に関連して後述する。
【００５６】  マップ格納部２１６は、複数の行動マップのほか、椅子やテーブルなどの障害物の配置状況を示すマップも格納する。予定軌道格納部２２４は、予定軌道を格納する。予定軌道格納部２２４は、予定軌道および予定軌道選択テーブルを格納する（後述）。個人データ格納部２１８は、ユーザ、特に、オーナーの情報を格納する。具体的には、ユーザに対する親密度やユーザの身体的特徴・行動的特徴など各種のパラメータを格納する。年齢や性別などの他の属性情報を格納してもよい。
【００５７】  ロボットシステム３００（ロボット１００およびサーバ２００）はユーザの身体的特徴や行動的特徴に基づいてユーザを識別する。ロボット１００は、内蔵のカメラで常時周辺を撮像する。そして、画像に写る人物の身体的特徴と行動的特徴を抽出する。身体的特徴とは、背の高さ、好んで着る服、メガネの有無、肌の色、髪の色、耳の大きさなど身体に付随する視覚的特徴であってもよいし、平均体温や匂い、声質、などその他の特徴も含めてもよい。行動的特徴とは、具体的には、ユーザが好む場所、動きの活発さ、喫煙の有無など行動に付随する特徴である。たとえば、父親として識別されるオーナーは在宅しないことが多く、在宅時にはソファで動かないことが多いが、母親は台所にいることが多く、行動範囲が広い、といった行動上の特徴を抽出する。  ロボットシステム３００は、大量の画像情報やその他のセンシング情報から得られる身体的特徴および行動的特徴に基づいて、高い頻度で出現するユーザを「オーナー」としてクラスタリングする。
【００５８】  ユーザＩＤでユーザを識別する方式は簡易かつ確実であるが、ユーザがユーザＩＤを提供可能な機器を保有していることが前提となる。一方、身体的特徴や行動的特徴によりユーザを識別する方法は画像認識処理負担が大きいものの携帯機器を保有していないユーザでも識別できるメリットがある。２つの方法は一方だけを採用してもよいし、補完的に２つの方法を併用してユーザ特定を行ってもよい。  本実施形態においては、身体的特徴と行動的特徴からユーザをクラスタリングし、ディープラーニング（多層型のニューラルネットワーク）によってユーザを識別する。詳細は後述する。
【００５９】  ロボット１００は、ユーザごとに親密度という内部パラメータを有する。ロボット１００が、自分を抱き上げる、声をかけてくれるなど、自分に対して好意を示す行動を認識したとき、そのユーザに対する親密度が高くなる。ロボット１００に関わらないユーザや、乱暴を働くユーザ、出会う頻度が低いユーザに対する親密度は低くなる。
【００６０】  データ処理部２０２は、位置管理部２０８、マップ管理部２１０、認識部２１２、動作制御部２２２、親密度管理部２２０、感情管理部２４４および軌道生成部２４２を含む。  位置管理部２０８は、ロボット１００の位置座標を、図３を用いて説明した方法にて特定する。位置管理部２０８はユーザの位置座標もリアルタイムで追跡してもよい。
【００６１】  感情管理部２４４は、ロボット１００の感情（寂しさ、楽しさ、恐怖など）を示すさまざまな感情パラメータを管理する。これらの感情パラメータは常に揺らいでいる。感情パラメータに応じて複数の行動マップの重要度が変化し、行動マップによってロボット１００の移動目標地点が変化し、ロボット１００の移動や時間経過によって感情パラメータが変化する。たとえば、寂しさを示す感情パラメータが高いときには、感情管理部２４４は安心する場所を評価する行動マップの重み付け係数を大きく設定する。ロボット１００が、この行動マップにおいて寂しさを解消可能な地点に至ると、感情管理部２４４は寂しさを示す感情パラメータを低下させる。また、後述の応対行為によっても各種感情パラメータは変化する。たとえば、オーナーから「抱っこ」をされると寂しさを示す感情パラメータは低下し、長時間にわたってオーナーを視認しないときには寂しさを示す感情パラメータは少しずつ増加する。
【００６２】  マップ管理部２１０は、複数の行動マップについて図４に関連して説明した方法にて各座標のパラメータを変化させる。マップ管理部２１０は、複数の行動マップのいずれかを選択してもよいし、複数の行動マップのｚ値を加重平均してもよい。たとえば、行動マップＡでは座標Ｒ１、座標Ｒ２におけるｚ値が４と３であり、行動マップＢでは座標Ｒ１、座標Ｒ２におけるｚ値が−１と３であるとする。単純平均の場合、座標Ｒ１の合計ｚ値は４−１＝３、座標Ｒ２の合計ｚ値は３＋３＝６であるから、ロボット１００は座標Ｒ１ではなく座標Ｒ２の方向に向かう。  行動マップＡを行動マップＢの５倍重視するときには、座標Ｒ１の合計ｚ値は４×５−１＝１９、座標Ｒ２の合計ｚ値は３×５＋３＝１８であるから、ロボット１００は座標Ｒ１の方向に向かう。
【００６３】  認識部２１２は、外部環境を認識する。外部環境の認識には、温度や湿度に基づく天候や季節の認識、光量や温度に基づく物陰（安全地帯）の認識など多様な認識が含まれる。ロボット１００の認識部１５６は、内部センサ１２８により各種の環境情報を取得し、これを一次処理した上でサーバ２００の認識部２１２に転送する。具体的には、ロボット１００の認識部１５６は、画像から移動物体、特に、人物や動物に対応する画像を抽出し、これらの抽出画像をサーバ２００に送る。サーバ２００の認識部２１２は、抽出画像に映っている人物の特徴を抽出する。
【００６４】  認識部２１２は、更に、人物認識部２１４と応対認識部２２８を含む。人物認識部２１４は、ロボット１００の内蔵カメラによる撮像画像から人物を認識し、その人物の身体的特徴や行動的特徴を抽出する。そして、個人データ格納部２１８に登録されている身体特徴情報や行動特徴情報に基づいて、撮像されたユーザ、すなわち、ロボット１００が見ているユーザが、父親、母親、長男などのどの人物に該当するかを判定する。人物認識部２１４は、表情認識部２３０を含む。表情認識部２３０は、ユーザの表情を画像認識することにより、ユーザの感情を推定する。  なお、人物認識部２１４は、人物以外の移動物体、たとえば、ペットである猫や犬についても特徴抽出を行う。
【００６５】  応対認識部２２８は、ロボット１００になされたさまざまな応対行為を認識し、快・不快行為に分類する。応対認識部２２８は、また、ロボット１００の行動に対するオーナーの応対行為を認識することにより、肯定・否定反応に分類する。  快・不快行為は、ユーザの応対行為が、生物として心地よいものであるか不快なものであるかにより判別される。たとえば、抱っこされることはロボット１００にとって快行為であり、蹴られることはロボット１００にとって不快行為である。肯定・否定反応は、ユーザの応対行為が、ユーザの快感情を示すものか不快感情を示すものであるかにより判別される。たとえば、抱っこされることはユーザの快感情を示す肯定反応であり、蹴られることはユーザの不快感情を示す否定反応である。
【００６６】  サーバ２００の動作制御部２２２は、ロボット１００の動作制御部１５０と協働して、ロボット１００のモーションを決定する。また、サーバ２００の動作制御部２２２は、マップ管理部２１０による行動マップ選択に基づいて、ロボット１００の移動目標地点とそのための実行軌道（移動ルート）を作成する。本実施形態においては、動作制御部２２２は、複数の実行軌道を作成し、その上で、いずれかの実行軌道を選択する。「実行軌道」とは、移動目標地点と、移動目標地点に至るまでの経路を指定するルート情報であり、選択された実行軌道に沿ってロボット１００は移動する。実行軌道は、移動目標地点等のほか、経由地点および移動速度も定義する。
【００６７】  動作制御部２２２は、モーション格納部２３２の複数のモーションからロボット１００のモーションを選択する。各モーションには状況ごとに選択確率が対応づけられている。たとえば、オーナーから快行為がなされたときには、モーションＡを２０％の確率で実行する、気温が３０度以上となったとき、モーションＢを５％の確率で実行する、といった選択方法が定義される。  行動マップに移動目標地点や実行軌道が決定され、後述の各種イベントによりモーションが選択される。
【００６８】  軌道生成部２４２は、イベントが発生したときのロボット１００の移動ルートを定義する予定軌道と、予定軌道の選択方法を示す予定軌道選択テーブルを生成する。予定軌道の生成方法については図９，図１０等に関連して後に詳述する。「予定軌道」とは、移動目標地点と、移動目標地点に至るまでの経路を指定するルート情報である。本実施形態における予定軌道は、移動目標地点等のほか、経由地点および移動速度も定義する。「実行軌道」は選択されると必ず採用される軌道であるが、「予定軌道」はイベントが発生しなければ採用されない軌道である。予定軌道の生成時には予定軌道格納部２２４の予定軌道選択テーブルが更新され、軌道通知部２４０によりロボット１００に通知される。ロボット１００の予定軌道格納部１５４も予定軌道選択テーブルを保有する。サーバ２００の予定軌道選択テーブルの変更は、軌道通知部２４０によりロボット１００の予定軌道選択テーブルに反映される。
【００６９】  親密度管理部２２０は、ユーザごとの親密度を管理する。上述したように、親密度は個人データ格納部２１８において個人データの一部として登録される。快行為を検出したとき、親密度管理部２２０はそのオーナーに対する親密度をアップさせる。不快行為を検出したときには親密度はダウンする。また、長期間視認していないオーナーの親密度は徐々に低下する。
【００７０】（ロボット１００）  ロボット１００は、通信部１４２、データ処理部１３６、データ格納部１４８、内部センサ１２８および駆動機構１２０を含む。  通信部１４２は、通信機１２６（図５参照）に該当し、外部センサ１１４およびサーバ２００との通信処理を担当する。データ格納部１４８は各種データを格納する。データ格納部１４８は、記憶装置１２４（図５参照）に該当する。データ処理部１３６は、通信部１４２により取得されたデータおよびデータ格納部１４８に格納されているデータに基づいて各種処理を実行する。データ処理部１３６は、プロセッサ１２２およびプロセッサ１２２により実行されるコンピュータプログラムに該当する。データ処理部１３６は、通信部１４２、内部センサ１２８、駆動機構１２０およびデータ格納部１４８のインタフェースとしても機能する。
【００７１】  データ格納部１４８は、ロボット１００の各種モーションを定義するモーション格納部１６０と、予定軌道データを格納する予定軌道格納部１５４を含む。  ロボット１００のモーション格納部１６０には、サーバ２００のモーション格納部２３２から各種モーションファイルがダウンロードされる。モーションは、モーションＩＤによって識別される。前輪１０２を収容して着座する、手１０６を持ち上げる、２つの前輪１０２を逆回転させることで、あるいは、片方の前輪１０２だけを回転させることでロボット１００を回転行動させる、前輪１０２を収納した状態で前輪１０２を回転させることで震える、ユーザから離れるときにいったん停止して振り返る、などのさまざまなモーションを表現するために、各種アクチュエータ（駆動機構１２０）の動作タイミング、動作時間、動作方向などがモーションファイルにおいて時系列定義される。
【００７２】  ロボット１００の予定軌道は、ロボット１００の軌道生成部１７２およびサーバ２００の軌道生成部２４２の双方により生成される。ロボット１００の軌道生成部１７２により生成された予定軌道および予定軌道選択テーブルは予定軌道格納部１５４に格納される。サーバ２００の軌道生成部２４２により生成された予定軌道および予定軌道選択テーブルは予定軌道格納部２２４に格納される。サーバ２００の予定軌道格納部２２４に格納される予定軌道選択テーブルおよび予定軌道を定義するデータは、軌道通知部２４０によりロボット１００の予定軌道格納部１５４に随時ダウンロードされる。
【００７３】  データ処理部１３６は、認識部１５６、動作制御部１５０、安全地帯検出部１５２および軌道生成部１７２を含む。  ロボット１００の動作制御部１５０は、サーバ２００の動作制御部２２２と協働してロボット１００のモーションを決める。一部のモーションについてはサーバ２００で決定し、他のモーションについてはロボット１００で決定してもよい。また、ロボット１００がモーションを決定するが、ロボット１００の処理負荷が高いときにはサーバ２００がモーションを決定するとしてもよい。サーバ２００においてベースとなるモーションを決定し、ロボット１００において追加のモーションを決定してもよい。モーションの決定処理をサーバ２００およびロボット１００においてどのように分担するかはロボットシステム３００の仕様に応じて設計すればよい。
【００７４】  ロボット１００の動作制御部１５０は、サーバ２００の動作制御部２２２とともにロボット１００の移動方向を決める。行動マップに基づく移動をサーバ２００で決定し、障害物をよけるなどの即時的移動をロボット１００の動作制御部１５０により決定してもよい。動作制御部１５０が実行軌道を決定してもよい。駆動機構１２０は、動作制御部１５０の指示にしたがって前輪１０２を駆動することで、ロボット１００を移動目標地点に向かわせる。
【００７５】  ロボット１００の動作制御部１５０は選択したモーションを駆動機構１２０に実行指示する。駆動機構１２０は、モーションファイルにしたがって、各アクチュエータを制御する。
【００７６】  動作制御部１５０は、親密度の高いユーザが近くにいるときには「抱っこ」をせがむ仕草として両方の手１０６をもちあげるモーションを実行することもできるし、「抱っこ」に飽きたときには左右の前輪１０２を収容したまま逆回転と停止を交互に繰り返すことで抱っこをいやがるモーションを表現することもできる。駆動機構１２０は、動作制御部１５０の指示にしたがって前輪１０２や手１０６、首（頭部フレーム３１６）を駆動することで、ロボット１００にさまざまなモーションを表現させる。
【００７７】  軌道生成部１７２は、サーバ２００の軌道生成部２４２とともにロボット１００の予定軌道を生成し、予定軌道選択テーブルを更新する。ロボット１００の軌道生成部１７２が生成した予定軌道と予定軌道選択テーブルは予定軌道格納部１５４に格納される。予定軌道格納部１５４に格納される予定軌道には、ロボット１００の軌道生成部１７２に生成されるものとサーバ２００の軌道生成部２４２により生成されるものがある。また、予定軌道格納部１５４の予定軌道選択テーブルは軌道生成部１７２により更新されるとともに、サーバ２００の軌道生成部２４２によっても更新される。
【００７８】  安全地帯検出部１５２は、安全地帯を検出する。安全地帯およびその検出方法については後述する。
【００７９】  ロボット１００の認識部１５６は、内部センサ１２８から得られた外部情報を解釈する。認識部１５６は、視覚的な認識（視覚部）、匂いの認識（嗅覚部）、音の認識（聴覚部）、触覚的な認識（触覚部）が可能である。  認識部１５６は、内蔵カメラ（内部センサ１２８）により定期的に外界を撮像し、人やペットなどの移動物体を検出する。移動物体の画像はサーバ２００に送信され、サーバ２００の人物認識部２１４は移動物体の身体的特徴を抽出する。また、ユーザの匂いやユーザの声も検出する。匂いや音（声）は既知の方法にて複数種類に分類される。
【００８０】  ロボット１００に対する強い衝撃が与えられたとき、認識部１５６は内蔵の加速度センサによりこれを認識し、サーバ２００の応対認識部２２８は、近隣にいるユーザによって「乱暴行為」が働かれたと認識する。ユーザがツノ１１２を掴んでロボット１００を持ち上げるときにも、乱暴行為と認識してもよい。ロボット１００に正対した状態にあるユーザが特定音量領域および特定周波数帯域にて発声したとき、サーバ２００の応対認識部２２８は、自らに対する「声掛け行為」がなされたと認識してもよい。また、体温程度の温度を検知したときにはユーザによる「接触行為」がなされたと認識し、接触認識した状態で上方への加速度を検知したときには「抱っこ」がなされたと認識する。ユーザがボディ１０４を持ち上げるときの物理的接触をセンシングしてもよいし、前輪１０２にかかる荷重が低下することにより抱っこを認識してもよい。
【００８１】  サーバ２００の応対認識部２２８は、ロボット１００に対するユーザの各種応対を認識する。各種応対行為のうち一部の典型的な応対行為には、快または不快、肯定または否定が対応づけられる。一般的には快行為となる応対行為のほとんどは肯定反応であり、不快行為となる応対行為のほとんどは否定反応となる。快・不快行為は親密度に関連し、肯定・否定反応はロボット１００の行動選択に影響する。
【００８２】  検出・分析・判定を含む一連の認識処理のうち、ロボット１００の認識部１５６は認識に必要な情報の取捨選択や分類を行い、分析・判定等の解釈処理はサーバ２００の認識部２１２により実行される。認識処理は、サーバ２００の認識部２１２だけで行ってもよいし、ロボット１００の認識部１５６だけで行ってもよいし、上述のように双方が役割分担をしながら上記認識処理を実行してもよい。
【００８３】  認識部１５６により認識された応対行為に応じて、サーバ２００の親密度管理部２２０はユーザに対する親密度を変化させる。原則的には、快行為を行ったユーザに対する親密度は高まり、不快行為を行ったユーザに対する親密度は低下する。
【００８４】  サーバ２００の認識部２１２は、応対に応じて快・不快を判定し、マップ管理部２１０は「場所に対する愛着」を表現する行動マップにおいて、快・不快行為がなされた地点のｚ値を変化させてもよい。たとえば、リビングにおいて快行為がなされたとき、マップ管理部２１０はリビングに好意地点を高い確率で設定してもよい。この場合、ロボット１００はリビングを好み、リビングで快行為を受けることで、ますますリビングを好む、というポジティブ・フィードバック効果が実現する。
【００８５】  サーバ２００の人物認識部２１４は、外部センサ１１４または内部センサ１２８から得られた各種データから移動物体を検出し、その特徴（身体的特徴と行動的特徴）を抽出する。そして、これらの特徴に基づいて複数の移動物体をクラスタ分析する。移動物体としては、人間だけでなく、犬や猫などのペットが分析対象となることがある。
【００８６】  ロボット１００は、定期的に画像撮影を行い、人物認識部２１４はそれらの画像から移動物体を認識し、移動物体の特徴を抽出する。移動物体を検出したときには、ニオイセンサや内蔵の集音マイク、温度センサ等からも身体的特徴や行動的特徴が抽出される。たとえば、画像に移動物体が写っているとき、ひげが生えている、早朝活動している、赤い服を着ている、香水の匂いがする、声が大きい、メガネをかけている、スカートを履いている、白髪である、背が高い、太っている、日焼けしている、ソファにいる、といったさまざまな特徴が抽出される。
【００８７】  ひげが生えている移動物体（ユーザ）は早朝に活動すること（早起き）が多く、赤い服を着ることが少ないのであれば、早起きでひげが生えていて赤い服をあまり着ないクラスタ（ユーザ）、という第１のプロファイルができる。一方、メガネをかけている移動物体はスカートを履いていることが多いが、この移動物体にはひげが生えていない場合、メガネをかけていてスカートを履いているが絶対ひげは生えていないクラスタ（ユーザ）、という第２のプロファイルができる。  以上は、簡単な設例であるが、上述の方法により、父親に対応する第１のプロファイルと母親に対応する第２のプロファイルが形成され、この家には少なくとも２人のユーザ（オーナー）がいることをロボット１００は認識する。
【００８８】  ただし、ロボット１００は第１のプロファイルが「父親」であると認識する必要はない。あくまでも、「ひげが生えていて早起きすることが多く、赤い服を着ることはめったにないクラスタ」という人物像を認識できればよい。
【００８９】  このようなクラスタ分析が完了している状態において、ロボット１００が新たに移動物体（ユーザ）を認識したとする。  このとき、サーバ２００の人物認識部２１４は、ロボット１００から得られる画像等のセンシング情報から特徴抽出を行い、ディーブラーニング（多層型ニューラルネットワーク）により、ロボット１００の近くにいる移動物体がどのクラスタに該当するかを判断する。たとえば、ひげが生えている移動物体を検出したとき、この移動物体は父親である確率が高い。この移動物体が早朝行動していれば、父親に該当することはいっそう確実である。一方、メガネをかけている移動物体を検出したときには、この移動物体は母親である可能性もある。この移動物体にひげが生えていれば、母親ではなく父親でもないので、クラスタ分析されていない新しい人物であると判定する。
【００９０】  特徴抽出によるクラスタの形成（クラスタ分析）と、特徴抽出にともなうクラスタへの当てはめ（ディープラーニング）は同時並行的に実行されてもよい。  移動物体（ユーザ）からどのような行為をされるかによってそのユーザに対する親密度が変化する。
【００９１】  ロボット１００は、よく出会う人、よく触ってくる人、よく声をかけてくれる人に対して高い親密度を設定する。一方、めったに見ない人、あまり触ってこない人、乱暴な人、大声で叱る人に対する親密度は低くなる。ロボット１００はセンサ（視覚、触覚、聴覚）によって検出するさまざまな外界情報にもとづいて、ユーザごとの親密度を変化させる。
【００９２】  実際のロボット１００は行動マップにしたがって自律的に複雑な行動選択を行う。ロボット１００は、寂しさ、退屈さ、好奇心などさまざまなパラメータに基づいて複数の行動マップに影響されながら行動する。ロボット１００は、行動マップの影響を除外すれば、あるいは、行動マップの影響が小さい内部状態にあるときには、原則的には、親密度の高い人に近づこうとし、親密度の低い人からは離れようとする。
【００９３】  ロボット１００の行動は親密度に応じて以下に類型化される。（１）親密度が非常に高いクラスタ  ロボット１００は、ユーザに近づき（以下、「近接行動」とよぶ）、かつ、人に好意を示す仕草としてあらかじめ定義される愛情仕草を行うことで親愛の情を強く表現する。（２）親密度が比較的高いクラスタ  ロボット１００は、近接行動のみを行う。（３）親密度が比較的低いクラスタ  ロボット１００は特段のアクションを行わない。（４）親密度が特に低いクラスタ  ロボット１００は、離脱行動を行う。
【００９４】  以上の制御方法によれば、ロボット１００は、親密度が高いユーザを見つけるとそのユーザに近寄り、逆に親密度が低いユーザを見つけるとそのユーザから離れる。このような制御方法により、いわゆる「人見知り」を行動表現できる。また、来客（親密度が低いユーザＡ）が現れたとき、ロボット１００は、来客から離れて家族（親密度が高いユーザＢ）の方に向かうこともある。この場合、ユーザＢはロボット１００が人見知りをして不安を感じていること、自分を頼っていること、を感じ取ることができる。このような行動表現により、ユーザＢは、選ばれ、頼られることの喜び、それにともなう愛着の情を喚起される。
【００９５】  一方、来客であるユーザＡが頻繁に訪れ、声を掛け、タッチをするとロボット１００のユーザＡに対する親密度は徐々に上昇し、ロボット１００はユーザＡに対して人見知り行動（離脱行動）をしなくなる。ユーザＡも自分にロボット１００が馴染んできてくれたことを感じ取ることで、ロボット１００に対する愛着を抱くことができる。
【００９６】  なお、以上の行動選択は、常に実行されるとは限らない。たとえば、ロボット１００の好奇心を示す内部パラメータが高くなっているときには、好奇心を満たす場所を求める行動マップが重視されるため、ロボット１００は親密度に影響された行動を選択しない可能性もある。また、玄関に設置されている外部センサ１１４がユーザの帰宅を検知した場合には、ユーザのお出迎え行動を最優先で実行するかもしれない。
【００９７】  図７は、モーション選択テーブル１８０のデータ構造図である。  モーション選択テーブル１８０は、各種のイベントが発生したときに実行すべきモーションを定義する。ロボット１００は、イベントが発生したとき、複数種類のモーションから１以上のモーションを選択する。モーション選択テーブル１８０は、サーバ２００のモーション格納部２３２およびロボット１００のモーション格納部１６０の双方に格納される。サーバ２００のモーション選択テーブル１８０と、ロボット１００のモーション選択テーブル１８０は互いに同期する。「イベント」は、ロボット１００がモーションを実行する契機となる事象としてあらかじめ定義される。オーナーを視認したとき、オーナーに抱っこされたとき、蹴られたとき、大きな音が聞こえたとき、所定時間以上誰も視認しないときなど、イベントの設定内容は任意である。
【００９８】  図７を参照すると、イベントＪ１においては、モーション（Ｃ０１）〜モーション（Ｃｘ）それぞれに選択確率が対応づけられている。たとえば、イベントＪ１が発生したとき、動作制御部２２２はモーション（Ｃ０１）を選択することはなく、モーション（Ｃ０２）を０．１％の確率にて選択する。イベントＪ２が発生したとき、動作制御部２２２はモーション（Ｃ０１）を０．１％の確率で選択し、モーション（Ｃ０２）を０．４％の確率にて選択する。
【００９９】  ロボット１００の認識部１５６により検出される単純なイベントもあれば、サーバ２００の人物認識部２１４による解釈が必要な複雑なイベントもある。ロボット１００の認識部１５６がイベントを認識したときには、動作制御部１５０はモーション選択テーブル１８０を参照してモーションを選択し、駆動機構１２０にモーション実行を指示する。サーバ２００の認識部２１２がイベントを認識したときには、サーバ２００の動作制御部２２２はモーション格納部２３２に格納されるモーション選択テーブル１８０を参照してモーションを選択し、ロボット１００にモーションＩＤを通知する。ロボット１００の動作制御部１５０は、通知されたモーションＩＤに対応するモーションを駆動機構１２０に実行指示する。
【０１００】  モーション選択テーブル１８０における選択確率は固定値である必要はない。動作制御部２２２は、一定範囲にてランダムに選択確率を変化させる。サーバ２００においてモーション選択テーブル１８０の選択確率が更新されると、更新後のモーション選択テーブル１８０はロボット１００にダウンロードされる。
【０１０１】  イベントは、ポジティブ・イベントとネガティブ・イベント、ニュートラル・イベントに分類される。ポジティブ・イベントは、快感、たとえば、快行為がなされたときのイベントである。具体的には、オーナーになでられる、好きな音楽が流れる、外気温が高い時に涼しい場所に移動する、などである。ネガティブ・イベントは、不快や危険に関連づけられるイベントである。具体的には、乱暴行為をされる、物の落下や破壊などの不快音を検出する、極端に高温または低温の物体に接触する、などである。怒鳴り声や悲鳴、金切り声、叱責など音声認識に基づくネガティブ・イベントの定義も可能である。ニュートラル・イベントは、ポジティブ・イベントでもネガティブ・イベントでもないその他のイベントである。
【０１０２】  各イベントに対応して、イベントの発生方向を凝視する、手１０６をばたつかせる、イベント発生源となっている物体に体当たりする、イベントの発生方向に体を向ける、などさまざまなモーションを定義可能である。
【０１０３】  図８は、予定軌道選択テーブル１６２のデータ構造図である。  予定軌道選択テーブル１６２は、各種のイベントが発生したときに選択すべき予定軌道を定義する。ロボット１００は、イベント、特に、ネガティブ・イベントが発生したときには、イベントに対応するモーションを実行したあとに予定軌道に沿って移動する。たとえば、ロボット１００は乱暴行為を働かれたときには（ネガティブ・イベント）、乱暴行為者（イベント発生源）から逃げる。この逃げ道も予定軌道の一種である。ロボット１００は、イベントが発生したとき、１以上の予定軌道からいずれかの予定軌道を選択する。
【０１０４】  特に、ネガティブ・イベントに対しては即時移動が必要となることが多い。生物は、不快や危険などのネガティブ・イベントを認識したとき、すぐに危険から離れようとする。ロボット１００の場合、ネガティブ・イベントを検出してから逃走ルートを計算するのでは行動に遅延が生じる可能性がある。本実施形態においては、イベントが発生してからイベントに対応する移動ルートを計算するのではなく、イベントが発生する前にあらかじめ１以上の移動ルート（予定軌道）を計算しておくことにより、イベント発生時の即時移動を実現する。
【０１０５】  ロボット１００がどこにいるとき、どんなイベントがどこで発生したかにより予定軌道は異なる。図８に示す予定軌道選択テーブル１６２においては、ロボット１００が位置座標Ｑ１にあるとき、Ｑ１からＥ１（ｍ）以内の近距離かつロボット１００から見てＤ１方向（たとえば、正面右方向）においてイベントＪ１が発生したときの予定軌道としてＲ１〜Ｒ３が設定されている。これらの予定軌道は、イベントＪ１が実際に発生する前に算出される。実際にイベントＪ１が発生したときには、動作制御部１５０は予定軌道Ｒ１〜Ｒ３のいずれかを選択し、選択した予定軌道に沿ってロボット１００を移動させる。複数の予定軌道には選択確率を設定してもよい。  以下、ロボット１００が位置座標Ｑ１にあるとき、Ｑ１からＥ１（ｍ）以内の近距離かつロボット１００から見てＤ１方向においてイベントＪ１が発生するというイベント発生状況を［Ｑ１，（Ｊ１，Ｅ１，Ｄ１）］と表記する。
【０１０６】  ロボット１００の軌道生成部１７２は、さまざまなイベントについて予定軌道を順次生成する。同様にして、サーバ２００の軌道生成部２４２も予定軌道を順次生成する。たとえば、イベント発生状況［Ｑ１，（Ｊ１，Ｅ１，Ｄ１）］が実際に生じる前に、このイベント発生状況に対応する予定軌道Ｒ１をロボット１００の軌道生成部１７２が生成し、別のイベント発生状況［Ｑ１，（Ｊ１，Ｅ１，Ｄ２）］の予定軌道Ｒ４をサーバ２００の軌道生成部２４２が生成するとしてもよい。この場合、ロボット１００の軌道生成部１７２は、イベント発生状況［Ｑ１，（Ｊ１，Ｅ１，Ｄ１）］の予定軌道の生成指示（以下、「軌道生成指示」とよぶ）をサーバ２００に送信する。サーバ２００は、軌道生成指示を受信したことを条件として、軌道生成指示に示されるイベント発生状況に対応する予定軌道を生成する。サーバ２００の軌道生成部２４２は、予定軌道格納部２２４の予定軌道および予定軌道選択テーブルを更新し、軌道通知部２４０は生成した予定軌道Ｒ４をロボット１００に通知する。
【０１０７】  ロボット１００は、予定軌道Ｒ１を自ら生成し、予定軌道Ｒ２，Ｒ３の軌道生成指示をサーバ２００に送信してもよい。ロボット１００の軌道生成部１７２のみが予定軌道を計算してもよいし、サーバ２００の軌道生成部２４２のみが予定軌道を計算してもよい。ロボット１００およびサーバ２００の処理負荷に応じて予定軌道の計算を分担すればよい。  本実施形態においては、行動マップに基づく予定軌道はサーバ２００の軌道生成部２４２により生成し、行動マップを利用しない簡単な予定軌道はロボット１００の安全地帯検出部１５２により生成するものとして説明する。
【０１０８】  予定軌道データには、どこに移動するか、どのようなルートを通って移動するか、急いで動くか、ゆっくりと動くかなど、さまざまな移動方法が定義される。また、予定軌道を沿って動くときに同時実行されるべきモーションも設定してもよい。たとえば、両方の手１０６を挙げたまま逃げる、少し後ずさりをしたあとダッシュするなど、さまざまなモーションを設定可能である。
【０１０９】  図９は、予定軌道の生成方法を示す模式図である。  図９は、イベント発生状況［Ｑ１，（Ｊ１，Ｅ１，Ｄ１）］を示す。この状況に対応して、予定軌道Ｒ１〜Ｒ３が生成される（図８参照）。予定軌道Ｒ１は、イベントの発生地点Ｓ１の逆方向にまっすぐ逃げる行動マップを考慮しない単純なルートである。予定軌道Ｒ１上に障害物があるときには、ロボット１００は障害物回避動作をしながら、イベント発生源から所定距離以上離れるように動く。予定軌道Ｒ２は嫌悪地点Ｐ２から所定距離以上を確保しながらイベント発生地点Ｓ１から離れる移動ルートである。予定軌道Ｒ３は、最寄りの好意地点Ｐ１に向かう移動ルートである。
【０１１０】  ロボット１００の軌道生成部１７２は、予定軌道Ｒ１を生成する。予定軌道Ｒ１は単純であるため、ネガティブ・イベントが発生したときには必ず選択可能な移動ルートとしてあらかじめ設定されてもよい。予定軌道Ｒ２は、サーバ２００の軌道生成部２４２により生成される。軌道生成部２４２は、感情マップ１１６等の行動マップを参照し、嫌悪地点Ｐ２を避ける移動ルートを生成する。たとえば、嫌悪地点Ｐ２から所定範囲内に入らないように条件設定をした上で、イベント発生地点からの距離を拡大する方向に予定軌道Ｒ２を設定する。予定軌道Ｒ３も、サーバ２００の軌道生成部２４２により生成される。軌道生成部２４２は行動マップを参照して、イベント発生地点Ｓ１から離れ、かつ、現在地点Ｑ１に最も近い好意地点Ｐ１に向かう移動ルートを予定軌道Ｒ３として生成する。予定軌道Ｒ３は、予定軌道Ｒ２の生成完了後に生成される。
【０１１１】  ロボット１００の軌道生成部１７２は、予定軌道Ｒ１を生成するとともに、サーバ２００の軌道生成部２４２に軌道生成指示を送信する。軌道生成部２４２は、まず、予定軌道Ｒ２を生成し、次に、予定軌道Ｒ３を生成する。予定軌道Ｒ２，Ｒ３は、サーバ２００からロボット１００に順次通知される。結果的に、予定軌道Ｒ１，Ｒ２およびＲ３の順に生成されたとする。
【０１１２】  予定軌道Ｒ１のみが生成されているときにイベントＪ１が発生したときには、ロボット１００の動作制御部１５０は予定軌道Ｒ１に沿ってロボット１００を移動させる。予定軌道Ｒ１および予定軌道Ｒ２の双方が生成されているときにイベントＪ１が発生したときには、ロボット１００の動作制御部１５０は予定軌道Ｒ１または予定軌道Ｒ２のいずれかをランダムに選択する。予定軌道Ｒ１〜Ｒ３の生成後にイベントＪ１が発生したときには、ロボット１００の動作制御部１５０は３つの予定軌道Ｒ１〜Ｒ３のいずれかをランダムに選択する。
【０１１３】  このような制御方法によれば、イベント発生状況［Ｑ１，（Ｊ１，Ｅ１，Ｄ１）］が現出する前に複数の予定軌道を生成しておくため、実際にイベントＪ１が発生したときには発生時点において選択可能な予定軌道の中からいずれかが選ばれる。ロボット１００およびサーバ２００は、実行優先度の低いバックグラウンド処理として予定軌道を随時生成すればよい。
【０１１４】  好意地点Ｐ１や嫌悪地点Ｐ２を考慮した予定軌道Ｒ２，Ｒ３は、行動マップを参照しつつサーバ２００により生成される。  変形例として、行動マップもロボット１００にダウンロードされてもよい。この場合には、ロボット１００も行動マップに基づいて予定軌道Ｒ２，Ｒ３を生成可能である。また、イベント発生地点Ｓ１から離れるだけではなく、現在地点Ｑ１を周回する、イベント発生地点Ｓ１に少しだけ近づいてみるなど、ロボット１００においても行動マップに頼らないさまざまな予定軌道が生成されてもよい。
【０１１５】  また、単純で計算処理時間の短い予定軌道を先に計算し、行動マップを考慮した複雑な予定軌道を後で計算するとしてもよい。この場合には、イベント発生時において複数の予定軌道が計算済みであるときには、最新の、いいかえれば、もっとも複雑な予定軌道を採用してもよい。
【０１１６】  あるイベント発生状況に対応して複数の予定軌道を事前に生成することにより、イベントに対するロボット１００の対応行動を多様化できる。また、行動マップに基づいて予定軌道を生成することにより、ロボット１００の行動特性に基づく予定軌道を生成可能である。
【０１１７】  サーバ２００は、複数種類のイベント発生状況、特に、複数種類のイベントに対応してさまざまな予定軌道を順次生成する。生成された予定軌道は、イベントが未発生の段階でロボット１００に通知される。このような制御方法により、ロボット１００は将来的に発生するかもしれないイベントに備えることができる。  サーバ２００は、軌道生成指示を受信したことを条件として予定軌道を生成してもよいし、軌道生成指示を受信していないときでもさまざまなイベント発生状況に対応する予定軌道を生成し、それらを随時、ロボット１００の予定軌道格納部１５４に記録させてもよい。
【０１１８】  予定軌道は、安全地点に隠れるルートとして生成されることもある。安全地点とは、オーナーの近く、壁の後ろ、ソファの後ろ、浴室やトイレなどの小部屋、机やテーブルの下などの天井のあるところ、など身を守りやすい場所である。サーバ２００のマップ格納部２１６は、あらかじめ安全地点の位置座標が登録されたマップを格納する。サーバ２００の軌道生成部２４２は、最寄りの安全地点を移動目標地点とする予定軌道を生成することもできる。
【０１１９】  ロボット１００は、自ら安全地点を探すことができる。ロボット１００の安全地帯検出部１５２は、所定の安全条件を満たす地点を「安全地点」として検出する。具体的には、テーブルの下のように「天井」があるところ、親密度が所定値以上となる「親しいオーナー」のいるところ、ソファの陰のように暗いところ、浴室のように３方向以上を壁で囲まれたところ、などである。ロボット１００は、内部センサ１２８、特に、カメラによってオーナーや天井、壁を認識することにより、安全条件が成立する場所を検出する。安全地帯検出部１５２は、通常行動時において安全条件を満たす場所を発見したとき、サーバ２００に通知する。ロボット１００のマップ管理部２１０は通知時点におけるロボット１００の位置座標を安全地点として登録する。
【０１２０】  上述したように、イベントが発生すると、ロボット１００はイベントに対応するモーションを実行する。そのあと、ロボット１００はいずれかの予定軌道に沿ってすぐに移動する。たとえば、大きな破裂音が聞こえたときにはビクッと震えるモーションを実行したあと、音源からすぐに逃げるといった行動特性が表現可能となる。予定軌道を移動しつつモーションを実行してもよい。たとえば、イベント発生源を凝視したまま、ゆっくりと逃げるという行動表現も可能である。
【０１２１】  図１０は、移動中に想定されるイベントと、イベントに対する予定軌道を説明する模式図である。  図１０においては、ロボット１００は、開始点Ｑｓから終着点Ｑｅへ通常移動（実行軌道）を設定している。Ｑｅが好意地点であるための移動かもしれないし、Ｑｓ付近が嫌悪地点となったためＱｓから離れるための移動かもしれない。移動中にさまざまなイベントが発生する可能性がある。座標Ｓ３にはテレビがあり、テレビにより「大きな音」というイベントが発生する可能性がある。座標Ｓ４には子どもがおり、子どもは「大きな音」を発生させるかもしれないし、ロボット１００に乱暴行為を働くかもしれない。
【０１２２】  イベントにはあらかじめ優先順位が設定される。優先順位は、発生頻度や重要度をもとに設計時において任意に初期設定されればよい。ここでは、座標Ｓ３において発生可能なイベントＪ３と座標Ｓ４において発生可能なイベントＪ４があり、イベントＪ３の優先順位はイベントＪ４よりも高いとする。この場合には、ロボットシステム３００はイベントＪ３を対象とした予定軌道を、イベントＪ４を対象とした予定軌道よりも先に計算する。
【０１２３】  ロボット１００またはサーバ２００は、まず、イベントＪ３に対応する予定軌道を計算する。たとえば、イベント発生状況［Ｑｍ，（Ｊ３，Ｅ１，Ｄ３）］に対応する予定軌道を計算する。ここでＱｍは、ＱｓからＱｅへの経由地点である。計算完了後、別のイベント発生状況［Ｑｍ，（Ｊ３，Ｅ１，Ｄ４）］や［Ｑｍ，（Ｊ４，Ｅ１，Ｄ２）］に対応する予定軌道を計算してもよい。このようにさまざまな状況に対応して複数の予定軌道を生成し、実際にイベントＪ３、Ｊ４が発生する状況に備えておく。多くの予定軌道が生成済みであるほど、イベントに対応する多様な行動表現が可能となる。
【０１２４】  図１１は、予定軌道生成処理の処理過程を示すフローチャートである。  予定軌道生成処理は、ロボット１００およびサーバ２００の双方により実行される。ここでは、サーバ２００の軌道生成部２４２を対象として説明するが、ロボット１００の軌道生成部１７２についても同様である。サーバ２００の予定軌道生成処理は実行優先度が低いため、サーバ２００の処理負荷が軽い時間帯に実行される。予定軌道生成処理は、定期的に実行されてもよいし、ロボット１００が所定距離を移動するごとに実行されるとしてもよい。
【０１２５】  軌道生成部２４２は、ロボット１００のイベント発生時における位置座標を選択する（Ｓ１０）。軌道生成部２４２は、ロボット１００が移動中または移動予定であれば、将来的にロボット１００が位置可能な複数の候補地点を特定し、いずれかの候補地点を計算対象として選択する。次に、軌道生成部２４２は複数種類のイベントのうち、計算対象となるイベントを選択する（Ｓ１２）。上述のようにイベントは優先順位に基づいて順次選択されればよい。軌道生成部２４２は、イベントが発生可能な地点のうちいずれかを選択する（Ｓ１４）。イベントの発生可能地点は、図８、図９に関連して説明したように、複数の距離範囲（たとえば、「Ｅ１未満」と「Ｅ１以上Ｅ２未満」の２種類）と複数の方向（たとえば、Ｄ１〜Ｄ８の８方向）の中からいずれかを選択する。
【０１２６】  軌道生成部２４２は、以上により特定されたイベント発生状況に対応して予定軌道を生成する（Ｓ１６）。予定軌道は、イベント発生地点から離れるのか近づくのかを選んだあと、移動目標地点、移動速度など複数のパラメータをランダムに選択し、行動マップや屋内障害物の存在を考慮しつつルート設定される。移動目標地点への近づき方も旋回、蛇行、直進など複数の移動方法の組み合わせをランダムに選択してもよい。生成された予定軌道のデータは予定軌道格納部２２４に登録され、軌道生成部２４２は予定軌道選択テーブル１６２を更新する（Ｓ１８）。また、軌道生成部２４２は、過去に算出されて不要になった予定軌道を予定軌道選択テーブル１６２から削除してもよい。予定軌道格納部２２４の情報は、軌道通知部２４０によりロボット１００の予定軌道格納部１５４に随時反映される。
【０１２７】  図１２は、イベント発生時の処理過程を示すフローチャートである。  図１２に示す処理はロボット１００において実行される。イベントが発生したとき、ロボット１００の動作制御部１５０はモーション選択テーブル１８０を参照してモーションを選択し（Ｓ２０）、選択されたモーションを駆動機構１２０に実行させる（Ｓ２２）。現出したイベント発生状況に対応する１以上の予定軌道が生成済みであれば（Ｓ２４のＹ）、動作制御部１５０は予定軌道を選択し（Ｓ２６）、駆動機構１２０に指示して予定軌道に沿った移動を実行させる（Ｓ２８）。一方、イベント発生状況に対応する予定軌道が生成されていないときには（Ｓ２４のＮ）、動作制御部１５０はイベント発生源からまっすぐ所定距離だけ離れる方向にロボット１００を移動させる（Ｓ３０）。  このように、予定軌道を生成していないイベント発生状況が生じたときにも、イベント発生に対応した基本移動を実行可能である。イベントに対応したモーションを実行することなく、予定軌道に沿ってロボット１００を移動させてもよい。
【０１２８】  以上、実施形態に基づいてロボット１００およびロボット１００を含むロボットシステム３００について説明した。  １以上の行動マップによりパターン化できず予測しづらい、かつ、生物的な行動選択を表現している。生物と同様、ロボット１００は行動マップだけではなく各種のイベントによっても行動が変化する。本実施形態においては、ロボット１００はイベントに対応するモーションを実行したあと、予定軌道に沿って移動する。このような制御方法により、危険や不快なイベントを認識したとき、驚いて逃げる、という行動表現が可能となる。
【０１２９】  サーバ２００とロボット１００の双方で予定軌道を計算することにより、ロボット１００の計算負荷を軽減できる。全ての予定軌道をサーバ２００が計算してもよい。さまざまなイベント発生状況を想定しながら予定軌道を生成・蓄積し、実際にイベントが発生したときに予定軌道に沿ってロボット１００を移動させるため、イベントに対する即時的行動を実現できる。また、あるイベント発生状況に対して複数の予定軌道を生成することにより、同一イベントに対してロボット１００の反応が多様化される。
【０１３０】  イベントが発生する前に多数の予定軌道を事前生成しておく必要はなく、計算負荷状況に応じて軽負荷時間に複数の予定軌道を順次生成すればよい。そして、イベント発生時点に生成済みの予定軌道の中からいずれかを選択する。このような制御方法により、行動の多様性と即時反応を両立させている。
【０１３１】  安全地点を移動目標地点とする予定軌道を生成することにより、危険を察知した時に安全な場所に避難するという行動特性を表現できる。ロボット１００は、通常行動時に安全条件を満たす安全地点を見つけることもできる。マップ管理部２１０は、このような安全地点を行動マップにおいて「安心感を与えてくれる場所」として登録してもよい。この場合には、安全地点を好むという行動特性を実現できる。
【０１３２】  なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
【０１３３】  １つのロボット１００と１つのサーバ２００、複数の外部センサ１１４によりロボットシステム３００が構成されるとして説明したが、ロボット１００の機能の一部はサーバ２００により実現されてもよいし、サーバ２００の機能の一部または全部がロボット１００に割り当てられてもよい。１つのサーバ２００が複数のロボット１００をコントロールしてもよいし、複数のサーバ２００が協働して１以上のロボット１００をコントロールしてもよい。
【０１３４】  ロボット１００やサーバ２００以外の第３の装置が、機能の一部を担ってもよい。図６において説明したロボット１００の各機能とサーバ２００の各機能の集合体は大局的には１つの「ロボット」として把握することも可能である。１つまたは複数のハードウェアに対して、本発明を実現するために必要な複数の機能をどのように配分するかは、各ハードウェアの処理能力やロボットシステム３００に求められる仕様等に鑑みて決定されればよい。
【０１３５】  上述したように、「狭義におけるロボット」とはサーバ２００を含まないロボット１００のことであるが、「広義におけるロボット」はロボットシステム３００のことである。サーバ２００の機能の多くは、将来的にはロボット１００に統合されていく可能性も考えられる。
【０１３６】  ロボット１００は単純な予定軌道を計算し、サーバ２００により複雑な予定軌道を計算してもよい。たとえば、安全地点に向かう予定軌道や行動マップに基づく予定軌道はサーバ２００により計算するとしてもよい。ロボット１００による予定軌道計算とサーバ２００による予定軌道計算は同時並行的に実行されてもよい。ロボット１００がイベント発生状況を特定し、予定軌道を計算したいイベント発生状況をサーバ２００に通知し、サーバ２００が対応する予定軌道を計算してもよい。
【０１３７】  ロボット１００の計算負荷が大きいときや、プロセッサ１２２の発熱量が大きいときにはロボット１００は予定軌道計算をサーバ２００に積極的に委譲してもよい。また、イベントに対応してロボット１００は常に移動する必要はない。たとえば、遠方から衝撃音が聞こえたときには、その場で立ちすくむことにより、「驚き」を行動表現してもよい。
【０１３８】  ネガティブ・イベントから単純に逃げるだけではなく、ゆっくりと少し近づいてから高速で離れる、イベント発生源の周りを周回するなどさまざまな予定軌道を設定可能である。また、ネガティブ・イベントだけではなく、ポジティブ・イベントについても予定軌道を事前に生成してもよい。たとえば、オーナーが帰宅したときにも、玄関までまっすぐ向かう、玄関の手前で待ち受ける、台所に隠れるなど、さまざまな予定軌道を用意してもよい。
【０１３９】  イベントの優先順位は、ロボットシステム３００の設計時において任意に設定可能である。あらかじめ定義される複数種類のイベントのうち、サーバ２００の軌道生成部２４２は、人に関するイベント、特に、親密度の高いオーナーに関するイベントの優先順位を高く設定してもよい。軌道生成部２４２は、過去所定期間において多く発生したイベントには高い優先順位を設定してもよい。イベントに優先順位を設定することにより、予定軌道計算のための計算リソースを重要なイベントに重点配分できる。  軌道生成部２４２は、いったん計算した予定軌道を、所定時間経過後に削除してもよい。
【０１４０】  サーバ２００は、複数のロボット１００を同時に制御してもよい。サーバ２００の軌道生成部２４２は各ロボット１００の行動マップや親密度にしたがってそれぞれの予定軌道を生成する。たとえば、「モノが落下して壊れる」というイベントが発生したときには、１台目のロボット１００Ａは父親の後ろに逃げ、２台目のロボット１００Ｂはソファの後ろに逃げるかもしれない。
【０１４１】  行動マップや親密度のほか、ロボットのサイズや移動速度などさまざまなパラメータに基づいて予定軌道を計算してもよい。ネガティブ・イベントに動揺しにくい性格や、すぐに安全地点に逃げる臆病な性格などロボット１００の個性を反映させたさまざまな行動表現が可能である。
【０１４２】  ロボットシステム３００は、工場出荷時から予定軌道計算機能や安全地点検出機能等を備える必要はない。ロボットシステム３００の出荷後に、通信ネットワークを介して予定軌道計算機能等を実現する行動制御プログラムをダウンロードすることにより、ロボットシステム３００の機能強化が実現されてもよい。
【０１４３】  本実施形態においては、サーバ２００の動作制御部２２２またはロボット１００の動作制御部１５０が実行軌道を生成するとして説明した。変形例として、サーバ２００の軌道生成部２４２またはロボット１００の軌道生成部１７２が予定軌道だけではなく実行軌道を生成し、動作制御部２２２等は生成された実行軌道を選択するとしてもよい。
【０１４４】［追加例］  サーバ２００の軌道生成部２４２またはロボット１００の軌道生成部１７２は、予定軌道データを生成し、予定軌道選択テーブル１６２に登録する。イベントが発生したとき、動作制御部１５０は、予定軌道データにしたがって移動目標地点を設定する。認識部１５６は、カメラにより周辺を撮影し、視認可能な近距離に存在する障害物を検出する。「障害物」は、所定の高さを有する物体として判定される。予定軌道上に障害物が検出されたときには、軌道生成部１７２は障害物を回避して移動目標地点に到達するための新たな予定軌道を計算する。ロボット１００が実行軌道（通常の移動ルート）を移動しているときに障害物が発見されたときには、動作制御部１５０は同様にして障害物を回避する新たな実行軌道を生成する。
【０１４５】  また、安全地帯検出部１５２は、カメラによる撮像画像に基づいて、安全地点を定期的に検出する。安全地帯検出部１５２は、ロボット１００の現在地点から所定範囲内にある安全地点をリスト（以下、「安全地点リスト」とよぶ）に登録し、ロボット１００の移動にともなって安全地点リストを随時更新する。安全地点リストは、安全地帯検出部１５２により新たに検出された安全地点だけでなく、あらかじめマップに登録されている安全地点も含まれる。追加例においては、安全地点リストには、ロボット１００から近い順に最大５地点の安全地点が登録される。安全地点リストは、イベントが生じたときに逃げ込むべき最寄りの安全地点の一覧である。追加例においては、軌道生成部２４２等は、安全地点リストに登録されている１以上の安全地点を移動目標地点とする予定軌道を随時生成する。これらの予定軌道は、イベントごと、安全地点ごとに生成されてストックされる。
【０１４６】  物が落下する、大きな音が発生する、叩かれるなどの所定のイベントが発生したとき、動作制御部１５０は安全地点リストからいずれかの安全地点を移動目標地点として選ぶ。安全地点リストに複数の安全地点が登録されているときには、動作制御部１５０は現在地点からもっとも近い安全地点を選んでもよいし、ランダムに選んでもよい。また、安全地点にあらかじめ優先度が設定されてもよい。たとえば、「親しいオーナー」のいるところは「ソファの陰」よりも高い優先度があらかじめ設定されてもよい。
【０１４７】  ロボット１００の静止中に所定のイベント、たとえば、ネガティブ・イベントが発生したときには、動作制御部１５０は安全地点リストから安全地点を選び、その安全地点を移動目標地点とする予定軌道を設定する。安全地点リストに安全地点が登録されていないときには、動作制御部１５０はイベントの発生した方向から遠ざかる方向に移動目標地点を設定する。ロボット１００が移動目標地点Ａを設定してあらかじめ定められた移動中にあるときにイベントが発生した場合にも、動作制御部１５０は安全地点リストから安全地点を選んで新たな移動目標地点Ｂとして設定する。このとき、移動目標地点Ａを対象とした実行軌道はキャンセルされ、ロボット１００は新たな移動目標地点Ｂ（安全地点）に向かって移動する。このような制御方法によれば、静止中、あるいは、移動中であっても、イベントが発生したときには安全地点への移動に目標変更させることができる。なお、動作制御部１５０は、イベントを発生してから安全地点を選択してもよいし、イベント発生前にあらかじめ安全地点を選んでおいてもよい。いずれの場合においても、イベント発生前に安全地点を選択し、安全地点を移動目標地点とする予定軌道を生成しておくことにより、イベント発生時にすばやく安全地点に逃げ込む行動をロボット１００に表現させることができる。
【０１４８】  上述したように、動作制御部１５０が移動経路（実行軌道）を決定するとき、軌道生成部１７２はイベントに備えて予定軌道を生成する。ロボット１００が実行軌道を移動中において実際にイベントが発生すれば、動作制御部１５０は実行軌道ではなく、予定軌道に沿ってロボット１００を移動させる。このとき、実行軌道はキャンセルされる。一方、ロボット１００の移動にともなって、安全地点リストからいずれかの安全地点が移動先候補から削除されたときには、その安全地点に対応して生成されていた予定軌道も破棄される。
【図１】
2018043274.tif 000003
【図２】
2018043274.tif 000004
【図３】
2018043274.tif 000005
【図４】
2018043274.tif 000006
【図５】
2018043274.tif 000007
【図６】
2018043274.tif 000008
【図７】
2018043274.tif 000009
【図８】
2018043274.tif 000010
【図９】
2018043274.tif 000011
【図１０】
2018043274.tif 000012
【図１１】
2018043274.tif 000013
【図１２】
2018043274.tif 000014
【手続補正書】
【提出日】平成30年1月26日(2018.1.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ロボットの移動経路である実行軌道を決定する動作制御部と、
前記実行軌道に沿って前記ロボットを移動させる駆動機構と、
イベントが発生する前に、ロボットの現在位置に応じて、イベントに対応する予定軌道を生成する軌道生成部と、を備え、
前記動作制御部は、前記実行軌道を前記ロボットが移動しているときに前記イベントが発生した場合には、前記実行軌道ではなく前記予定軌道に沿って前記ロボットを移動させることを特徴とする自律行動型ロボット。
【請求項２】
前記軌道生成部は、前記イベントに対応する複数の予定軌道を順次生成し、
前記動作制御部は、前記イベントが発生したときに複数の予定軌道が生成済みのときには、前記複数の予定軌道のうちいずれかの予定軌道を選択することを特徴とする請求項１に記載の自律行動型ロボット。
【請求項３】
前記軌道生成部は、複数種類のイベントに対応する複数の予定軌道を生成し、
前記動作制御部は、前記複数種類のイベントのうちのいずれかのイベントが発生したとき、発生したイベントに対応する予定軌道に沿って前記ロボットを移動させることを特徴とする請求項１に記載の自律行動型ロボット。
【請求項４】
前記軌道生成部は、複数種類のイベントの優先順位に基づいて、前記複数の予定軌道を順次生成することを特徴とする請求項３に記載の自律行動型ロボット。
【請求項５】
前記軌道生成部は、イベントの発生が想定される複数の地点に対応して複数の予定軌道を生成し、
前記動作制御部は、前記イベントの発生地点に対応する予定軌道に沿って前記ロボットを移動させることを特徴とする請求項１に記載の自律行動型ロボット。
【請求項６】
前記動作制御部は、イベントが発生したときにはあらかじめ定められたモーションを実行し、前記モーションの実行後に前記イベントに対応する予定軌道に沿って前記ロボットを移動させることを特徴とする請求項１に記載の自律行動型ロボット。
【請求項７】
所定の安全条件を満たす地点を安全地点として検出する安全地点検出部と、を更に備え、
前記軌道生成部は、安全地点を移動目的地点とする予定軌道を生成することを特徴とする請求項１に記載の自律行動型ロボット。
【請求項８】
自律行動型ロボットと通信回線を介して接続され、
前記自律行動型ロボットの位置およびイベントに対応する予定軌道を生成する軌道生成部と、
前記イベントが発生する前に、前記自律行動型ロボットに前記予定軌道を通知する軌道通知部と、を備えることを特徴とするサーバ。
【請求項９】
前記軌道生成部は、前記自律行動型ロボットから軌道生成指示を受信したことを条件として予定軌道を生成することを特徴とする請求項８に記載のサーバ。
【請求項１０】
前記軌道生成部は、前記自律行動型ロボットの行動特性に応じた予定軌道を生成することを特徴とする請求項８に記載のサーバ。
【請求項１１】
前記軌道生成部は、複数種類のイベントに対応する複数の予定軌道を計算し、
前記軌道通知部は、前記複数種類のイベントのいずれも発生していないときにも、前記複数の予定軌道を通知することを特徴とする請求項８に記載のサーバ。
【請求項１２】
前記軌道生成部は、イベントの発生が想定される複数の地点に対応して複数の予定軌道を生成し、
前記軌道通知部は、前記イベントが発生する前に、前記複数の地点に対応する前記複数の予定軌道を通知することを特徴とする請求項８に記載のサーバ。
【請求項１３】
前記軌道生成部は、所定の安全条件を満たす安全地点を前記予定軌道の移動目標地点として設定することを特徴とする請求項８に記載のサーバ。
【請求項１４】
ロボットのモーションを選択する動作制御部と、
前記動作制御部により選択されたモーションを実行する駆動機構と、
ロボットが安心する場所が満たすべき条件としてあらかじめ定義された安全条件の成否を判定することにより、安全地点を検出する安全地点検出部と、を備え、
前記動作制御部は、所定のイベントが発生したとき、前記安全地点に前記ロボットを移動させることを特徴とする自律行動型ロボット。
【請求項１５】
前記安全地点検出部は、前記検出された安全地点をリストに登録し、
前記動作制御部は、移動目標地点を選択してからロボットが前記移動目標地点に到達するまでの期間に前記イベントが発生したときには、前記リストに登録されている安全地点からいずれかの安全地点を新たな移動目標地点として設定することを特徴とする請求項１４に記載の自律行動型ロボット。
【請求項１６】
前記動作制御部は、所定のイベントが発生したとき、イベント発生前に特定された予定軌道に沿って前記安全地点に前記ロボットを移動させることを特徴とする請求項１４に記載の自律行動型ロボット。
【請求項１７】
ロボットの移動方向を決定するためのコンピュータプログラムであって、
イベントが発生する前に、ロボットの現在位置に応じて、イベントに対応する予定軌道を生成する機能と、
前記イベントが発生したとき、事前に決定された移動経路ではなく前記予定軌道に沿って前記ロボットを移動させる機能と、をコンピュータに発揮させることを特徴とする行動制御プログラム。
【請求項１８】
ロボットの移動方向を決定するためのコンピュータプログラムであって、
ロボットが安心する場所が満たすべき条件としてあらかじめ定義された安全条件の成否を判定することにより、安全地点を検出する機能と、
安全地点の位置座標を登録する機能と、
所定のイベントが発生したとき、前記安全地点に前記ロボットを移動させる機能と、をコンピュータに発揮させることを特徴とする行動制御プログラム。
【請求項１９】
自律行動型ロボットの位置を検出する機能と、
前記自律行動型ロボットの位置およびイベントに対応する予定軌道を計算する機能と、
前記イベントが発生する前に、前記自律行動型ロボットに前記予定軌道を通知する機能と、をコンピュータに発揮させることを特徴とする行動制御プログラム。
【国際調査報告】
2018043274.tif 000015
2018043274.tif 000016
2018043274.tif 000017
2018043274.tif 000018
2018043274.tif 000019
2018043274.tif 000020
2018043274.tif 000021
2018043274.tif 000022