(57)【要約】【課題】  タスクと切り離して空間の譲り合いを実現することができる【解決手段】  システム１０は、ロボット１２を含み、ロボット１２はネットワーク１４を介してユーザ端末１６と通信可能に接続される。ロボットは、ユーザ端末からのコマンドに従うタスクを実行する場合に、人間が或る移動候補点を選択した場合の利益と、ロボットが或る移動候補点を選択した場合の利益に基づく相互利益が最大となる組み合わせを選択して、経路計画を作成する。ロボットは、タスクを実行する場合に、作成された経路計画に従って移動する。【選択図】  図１
2020004182.tif 000002
【特許請求の範囲】
【請求項１】
移動手段を備えるロボットであって、
前記ロボットの周囲に存在する人間が第１移動計画を選択した場合の第１利益を算出する第１利益算出手段、
前記ロボットが第２移動計画を選択した場合の第２利益を算出する第２利益算出手段、
前記第１利益と前記第２利益に基づく相互利益が最大となる前記第１移動計画および前記第２移動計画の組み合わせを選択することにより、前記ロボットが移動する経路計画を作成する作成手段、および
前記作成手段によって作成された経路計画に従って移動するように前記移動手段を制御する制御手段を備える、ロボット。
【請求項２】
前記人間の移動および前記ロボットの移動の優位性に基づいて前記相互利益を算出する相互利益算出手段をさらに備える、請求項１記載のロボット。
【請求項３】
前記第１利益算出手段は、所定時間毎に、前記人間が存在可能な各位置への第１移動計画を選択した場合の第１利益をそれぞれ算出し、
前記第２利益算出手段は、前記所定時間毎に、前記ロボットが存在可能な各位置への第２移動計画を選択した場合の第２利益のそれぞれを算出し、
前記相互利益算出手段は、前記所定時間毎に、前記人間が存在可能な各位置と前記ロボットが存在可能な各位置についてのすべての組み合わせについて前記相互利益を算出し、
前記作成手段は、前記所定時間毎に、前記相互利益が最大となる前記第１移動計画および前記第２移動計画の組み合わせを選択することにより、前記ロボットが移動する経路計画を作成する、請求項２記載のロボット。
【請求項４】
前記作成手段は、前記人間と前記ロボットが衝突する組み合わせについては選択肢から除外する、請求項１から３までのいずれかに記載のロボット。
【請求項５】
前記作成手段は、前記第１移動計画および前記第２移動計画の組み合わせと同じ組み合わせについては選択肢から除外する、請求項１から４までのいずれかに記載のロボット。
【請求項６】
移動手段を備えるロボットを制御するロボット制御プログラムであって、
前記ロボットまたは当該ロボットと通信可能なコンピュータのプロセッサに、
前記ロボットの周囲に存在する人間が第１移動計画を選択した場合の第１利益を算出する第１利益算出ステップ、
前記ロボットが第２移動計画を選択した場合の第２利益を算出する第２利益算出ステップ、
前記第１利益と前記第２利益に基づく相互利益が最大となる前記第１移動計画および前記第２移動計画の組み合わせを選択することにより、前記ロボットが移動する経路計画を作成する作成ステップ、および
前記作成ステップにおいて作成した経路計画に従って移動するように前記移動手段を制御する制御ステップを実行させる、ロボット制御プログラム。
【請求項７】
移動手段を備えるロボットを制御するロボット制御方法であって、
（ａ）前記ロボットの周囲に存在する人間が第１移動計画を選択した場合の第１利益を算出するステップ、
（ｂ）前記ロボットが第２移動計画を選択した場合の第２利益を算出するステップ、
（ｃ）前記第１利益と前記第２利益に基づく相互利益が最大となる前記第１移動計画および前記第２移動計画の組み合わせを選択することにより、前記ロボットが移動する経路計画を作成するステップ、および
（ｄ）前記ステップ（ｃ）において作成した経路計画に従って移動するように前記移動手段を制御するステップを含む、ロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はロボット、ロボット制御プログラムおよびロボット制御方法に関し、特にたとえば、サービスを提供したり、サービスの提供を受けたりする、ロボット、ロボット制御プログラムおよびロボット制御方法に関する。
【背景技術】
【０００２】
この種の従来のロボットの一例が特許文献１に開示されている。この特許文献１に開示される説明ロボットは、この説明ロボットから訪問客に働きかけて、展示物の見所部分の説明を行う。説明ロボットは、展示物の見所部分を見易い領域に対して設定された見所領域以外の位置であって、かつ訪問客の現在位置から見所領域までの訪問客の通り道を塞がない位置であることを条件として、展示物の説明を行う際の立ち位置となる説明位置を選択する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−６６６２４号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の説明ロボットでは、訪問客に働きかけて、展示物の見所部分の説明を行うタスクの中に、上記のような空間を譲る条件がルールとして埋め込まれている。また、人間とロボットの立場が逆転する場合には、空間を譲られる条件がルールとして埋め込まれる。このように、タスクの中にルールを埋め込む方法では、人間とロボットのそれぞれの役割、現実空間における人間とロボットの位置関係、および、人間とロボットのそれぞれの行動の目的などの状況毎に、多種多様なルールを記述する必要があり、ルールが複雑化する。この結果、ルールの管理およびデバックが複雑化する。また、すべてのルールを網羅的に記述するのは面倒である。つまり、タスクの生成およびロボットの制御が困難になってしまう。
【０００５】
それゆえに、この発明の主たる目的は、新規な、ロボット、ロボット制御プログラムおよびロボット制御方法を提供することである。
【０００６】
また、この発明の他の目的は、タスクと切り離して空間の譲り合いを実現できる、ロボット、ロボット制御プログラムおよびロボット制御方法を提供することである。
【課題を解決するための手段】
【０００７】
第１の発明は、移動手段を備えるロボットであって、ロボットの周囲に存在する人間が第１移動計画を選択した場合の第１利益を算出する第１利益算出手段、ロボットが第２移動計画を選択した場合の第２利益を算出する第２利益算出手段、第１利益と第２利益に基づく相互利益が最大となる第１移動計画および第２移動計画の組み合わせを選択することにより、ロボットが移動する経路計画を作成する作成手段、および作成手段によって作成された経路計画に従って移動するように移動手段を制御する制御手段を備える、ロボットである。
【０００８】
第２の発明は、第１の発明に従属し、人間の移動およびロボットの移動の優位性に基づいて相互利益を算出する相互利益算出手段をさらに備える。
【０００９】
第３の発明は、第２の発明に従属し、第１利益算出手段は、所定時間毎に、人間が存在可能な各位置への第１移動計画を選択した場合の第１利益をそれぞれ算出し、第２利益算出手段は、所定時間毎に、ロボットが存在可能な各位置への第２移動計画を選択した場合の第２利益のそれぞれを算出し、相互利益算出手段は、所定時間毎に、人間が存在可能な各位置とロボットが存在可能な各位置についてのすべての組み合わせについて相互利益を算出し、作成手段は、所定時間毎に、相互利益が最大となる第１移動計画および第２移動計画の組み合わせを選択することにより、ロボットが移動する経路計画を作成する。
【００１０】
第４の発明は、第１から第３までのいずれかの発明に従属し、作成手段は、人間とロボットが衝突する組み合わせについては選択肢から除外する。
【００１１】
第５の発明は、第１から第４までのいずれかの発明に従属し、作成手段は、第１移動計画および第２移動計画の組み合わせと同じ組み合わせについては選択肢から除外する。
【００１２】
第６の発明は、移動手段を備えるロボットを制御するロボット制御プログラムであって、ロボットまたは当該ロボットと通信可能なコンピュータのプロセッサに、ロボットの周囲に存在する人間が第１移動計画を選択した場合の第１利益を算出する第１利益算出ステップ、ロボットが第２移動計画を選択した場合の第２利益を算出する第２利益算出ステップ、第１利益と第２利益に基づく相互利益が最大となる第１移動計画および第２移動計画の組み合わせを選択することにより、ロボットが移動する経路計画を作成する作成ステップ、および作成ステップにおいて作成した経路計画に従って移動するように移動手段を制御する制御ステップを実行させる、ロボット制御プログラムである。
【００１３】
第７の発明は、移動手段を備えるロボットを制御するロボット制御方法であって、（ａ）ロボットの周囲に存在する人間が第１移動計画を選択した場合の第１利益を算出するステップ、（ｂ）ロボットが第２移動計画を選択した場合の第２利益を算出するステップ、（ｃ）第１利益と第２利益に基づく相互利益が最大となる第１移動計画および第２移動計画の組み合わせを選択することにより、ロボットが移動する経路計画を作成するステップ、および（ｄ）ステップ（ｃ）において作成した経路計画に従って移動するように移動手段を制御するステップを含む、ロボット制御方法である。
【発明の効果】
【００１４】
この発明によれば、タスクと切り離して空間の譲り合いを実現することができる。
【００１５】
この発明の上述の目的、その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００１６】
【図１】図１はこの発明の一実施例を示すシステムの概要を示す図である。
【図２】図２は図１に示すロボットの外観を正面から見た図である。
【図３】図３は図１に示すロボットの電気的な構成を示すブロック図である。
【図４】図４（Ａ）はロボットが目的地まで移動する行動についてのタスクを実行する場合において、狭い幅の通路の一方の端に人間が位置し、他方の端にロボットが位置する状態を示す図であり、図４（Ｂ）は図４（Ａ）に示す状態から、人間が狭い幅の通路を通行する状態に変化したことを示す図である。
【図５】図５（Ａ）は図４（Ｂ）に示す状態から、人間が狭い幅の通路を通行し終えた状態に変化したことを示す図であり、図５（Ｂ）は図５（Ａ）に示す状態から、人間が狭い幅の通路から去った後に、ロボットが狭い幅の通路を通行する状態に変化したことを示す図である。
【図６】図６はロボットが配置される環境における展示物の配置位置を示す図である。
【図７】図７は展示物を鑑賞する行動を行う場合における利益を説明するための図である。
【図８】図８（Ａ）は人間が移動している場合の当該人間の目的地を推定する方法を説明するための図であり、図８（Ｂ）は人間が停止している場合の当該人間の目的地を推定する方法を説明するための図である。
【図９】図９は経路計画を作成する方法を説明するための図である。
【図１０】図１０（Ａ）はロボットの移動候補を説明するための図であり、図１０（Ｂ）は人間の移動候補を説明するための図であり、図１０（Ｃ）は移動候補点を説明するための図である。
【図１１】図１１は図３に示すメモリのメモリマップの一例を示す図解図である。
【図１２】図１２は図３に示すＣＰＵのロボット制御処理の一部を示すフロー図である。
【図１３】図１３は図３に示すＣＰＵのロボット制御処理の他の一部であって、図１２に後続するフロー図である。
【図１４】図１４は図３に示すＣＰＵの経路計画の作成処理の一部を示すフロー図である。
【図１５】図１５は図３に示すＣＰＵの経路計画の作成処理の他の一部であって、図１４に後続するフロー図である。
【図１６】図１６は図３に示すＣＰＵの経路計画の作成処理のその他の一部であって、図１５に後続するフロー図である。
【発明を実施するための形態】
【００１７】
図１を参照して、この実施例のシステム１０は、コミュニケーションロボット(以下、単に「ロボット」という。)１２を含む。このロボット１２は、音声および身体動作（ジェスチャ）の少なくとも一方を用いて、人間や他のロボットとコミュニケーションを行うことができる。また、ロボット１２は、たとえば無線ＬＡＮなどのネットワーク１４に接続し、ネットワーク１４上のコンピュータと通信することができる。
【００１８】
この実施例では、ロボット１２は、いわゆるテレプレゼンス（または、テレイグジステンス）ロボットであり、ネットワーク１４に接続されたユーザ端末１６と通信可能である。ユーザ端末１６は、ロボット１２を遠隔操作する操作者（以下、「ユーザ」という）が使用する汎用のコンピュータである。ユーザは、ユーザ端末１６を用いてロボット１２にタスクを実行させるためのコマンドを送信する。また、ユーザは、ユーザ端末１６を用いて音声をロボット１２に送信し、ロボット１２から音声を出力することにより、ロボット１２の近傍に存在する人間に話をする。以下、この明細書においては、ユーザに対して、ロボット１２またはロボット１２を遠隔操作するユーザのコミュニケーション対象を「人間」または「人」と呼ぶことにする。
【００１９】
また、ロボット１２から送信される音声および／または映像（動画像または静止画像）をユーザ端末１６で受信し、ユーザ端末１６で音声および／または映像を出力することにより、ユーザは、ロボット１２の周囲に存在する物を見たり、ロボット１２の周囲の状況を把握したり、ロボット１２の周囲に存在する人間の話を聞いたりすることができる。
【００２０】
なお、遠隔に設けられたユーザ端末１６でロボット１２を操作等することは既に周知であり、また、本願の本質的な内容ではないため、この明細書においては、遠隔操作についての詳細な説明は省略する。
【００２１】
図２を参照して、ロボット１２のハードウェアの構成について説明する。図２は、この実施例のロボット１２の外観を示す正面図である。ロボット１２は台車３０を含み、台車３０の下面にはロボット１２を自律移動させる２つの車輪３２および１つの従輪３４が設けられる。２つの車輪３２は車輪モータ３６（図３参照）によってそれぞれ独立に駆動され、台車３０すなわちロボット１２を前後左右の任意方向に動かすことができる。また、従輪３４は車輪３２を補助する補助輪である。したがって、ロボット１２は、配置された空間内を自律制御によって移動可能である。
【００２２】
台車３０の上には、円柱形のセンサ取り付けパネル３８が設けられ、このセンサ取り付けパネル３８には、多数の赤外線距離センサ４０が取り付けられる。これらの赤外線距離センサ４０は、センサ取り付けパネル３８すなわちロボット１２の周囲の物体（人間や障害物など）との距離を測定するものである。
【００２３】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、超音波距離センサやミリ波レーダなどを用いることもできる。
【００２４】
センサ取り付けパネル３８の上には、胴体４２が直立するように設けられる。また、胴体４２の前方中央上部（人の胸に相当する位置）には、上述した赤外線距離センサ４０がさらに設けられ、ロボット１２の前方の主として人間との距離を計測する。また、胴体４２には、その側面側上端部のほぼ中央から伸びる支柱４４が設けられ、支柱４４の上には、全方位カメラ４６が設けられる。全方位カメラ４６は、ロボット１２の周囲を撮影するものであり、後述する眼カメラ７０とは区別される。この全方位カメラ４６としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ４０および全方位カメラ４６の設置位置は、当該部位に限定されず適宜変更され得る。
【００２５】
胴体４２の両側面上端部（人の肩に相当する位置）には、それぞれ、肩関節４８Ｒおよび肩関節４８Ｌによって、上腕５０Ｒおよび上腕５０Ｌが設けられる。図示は省略するが、肩関節４８Ｒおよび肩関節４８Ｌは、それぞれ、直交する３軸の自由度を有する。すなわち、肩関節４８Ｒは、直交する３軸のそれぞれの軸廻りにおいて上腕５０Ｒの角度を制御できる。肩関節４８Ｒの或る軸（ヨー軸）は、上腕５０Ｒの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節４８Ｌは、直交する３軸のそれぞれの軸廻りにおいて上腕５０Ｌの角度を制御できる。肩関節４８Ｌの或る軸（ヨー軸）は、上腕５０Ｌの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。
【００２６】
また、上腕５０Ｒおよび上腕５０Ｌのそれぞれの先端には、肘関節５２Ｒおよび肘関節５２Ｌが設けられる。図示は省略するが、肘関節５２Ｒおよび肘関節５２Ｌは、それぞれ１軸の自由度を有し、この軸（ピッチ軸）の軸回りにおいて前腕５４Ｒおよび前腕５４Ｌの角度を制御できる。
【００２７】
前腕５４Ｒおよび前腕５４Ｌのそれぞれの先端には、人の手に相当する球体５６Ｒおよび球体５６Ｌがそれぞれ設けられる。ただし、指や掌の機能が必要な場合には、人間の手に酷似した形状および機能を持たせた「手」を設けることも可能である。
【００２８】
また、図示は省略するが、台車３０の前面、肩関節４８Ｒと肩関節４８Ｌとを含む肩に相当する部位、上腕５０Ｒ、上腕５０Ｌ、前腕５４Ｒ、前腕５４Ｌ、球体５６Ｒおよび球体５６Ｌには、それぞれ、接触センサ５８（図３で包括的に示す）が設けられる。台車３０の前面の接触センサ５８は、台車３０への人間や他の障害物の接触を検知する。したがって、ロボット１２は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪３２の駆動を停止してロボット１２の移動を急停止させることができる。また、その他の接触センサ５８は、当該各部位に触れたかどうかを検知する。なお、接触センサ５８の設置位置は、当該部位に限定されず、適宜な位置（人の胸、腹、脇、背中および腰に相当する位置）に設けられてもよい。
【００２９】
胴体４２の中央上部（人の首に相当する位置）には首関節６０が設けられ、さらにその上には頭部に相当する表示装置６２および眼カメラ７０が設けられる。図示は省略するが、首関節６０は、３軸の自由度を有し、３軸の各軸廻りに角度制御可能である。或る軸（ヨー軸）はロボット１２の真上（鉛直上向き）に向かう軸であり、他の２軸（ピッチ軸、ロール軸）は、それぞれ、それと異なる方向で直交する軸である。
【００３０】
表示装置６２は、その表示面がロボット１２の顔として機能し、主として、ロボット１２を遠隔操作するユーザの顔画像（ユーザ画像）を表示する。表示装置６２の表示面の向きは、首関節６０の動きに従って変化される。また、ユーザ画像の画像データ（映像信号）は、ユーザ端末１６に設けられたカメラで撮影され、ネットワーク１４を介してロボット１２に送信される。ユーザ画像が表示装置６２に表示されるため、ロボット１２とコミュニケーションを実行する人間は遠隔に存在するユーザとコミュニケーションを行っている体感を得る。
【００３１】
図２では省略するが、表示装置６２またはその近傍には、スピーカ６４（図３参照）が設けられる。スピーカ６４は、ロボット１２が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、図２では省略するが、表示装置６２またはその近傍には、マイク６６（図３参照）が設けられる。マイク６６は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。
【００３２】
また、眼カメラ７０が、表示装置６２の上側の中央に設けられる。眼カメラ７０は、ロボット１２に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、この実施例では、ユーザ端末１６のユーザがロボット１２を通して、対象物を見る場合には、この対象物がロボット１２の眼カメラ７０で撮影される。
【００３３】
なお、眼カメラ７０の設置位置は、表示装置６２の上側の中央にまたはその近傍に限定されず、適宜な位置に設けられてよい。
【００３４】
また、眼カメラ７０は、上述した全方位カメラ４６と同様のカメラを用いることができる。上述したように、眼カメラ７０は、表示装置６２の上側の中央に取り付けられる。したがって、表示装置６２の動きに従って撮影方向が変化される。
【００３５】
なお、上述のスピーカ６４およびマイク６６の設置位置は、表示装置６２またはその近傍に限定されず、適宜な位置に設けられてよい。
【００３６】
このように、この実施例のロボット１２は、車輪３２の独立２軸駆動、肩関節４８の３自由度（左右で６自由度）、肘関節５２の１自由度（左右で２自由度）および首関節６０の３自由度の合計１３自由度を有する。
【００３７】
図３はロボット１２の電気的な構成を示すブロック図である。この図３を参照して、ロボット１２は、ＣＰＵ８０を含む。ＣＰＵ８０は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス８２を介して、メモリ８４、モータ制御ボード８６、センサ入力／出力ボード８８および音声入力／出力ボード９０に接続される。
【００３８】
メモリ８４は、図示は省略をするが、ＲＯＭ、ＨＤＤおよびＲＡＭを含む。ＲＯＭおよびＨＤＤには、ロボット１２の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力（センサ情報）を検知するための検知プログラムや、外部コンピュータとの間で必要なデータやコマンドを送受信するための通信プログラムなどが記録される。また、ＲＡＭは、ワークメモリやバッファメモリとして用いられる。
【００３９】
さらに、この実施例では、ロボット１２は、人間とのコミュニケーションをとるために発話したり、ジェスチャしたりできるように構成されているが、メモリ８４に、このような発話およびジェスチャのための辞書（発話／ジェスチャ辞書）が設定されている。
【００４０】
モータ制御ボード８６は、たとえばＤＳＰで構成され、各腕や首関節などの各軸モータの駆動を制御する。すなわち、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、肩関節４８Ｒの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節５２Ｒの角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「右腕モータ９６」と示す）の回転角度を制御する。同様にして、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、肩関節４８Ｌの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節５２Ｌの角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「左腕モータ９８」と示す）の回転角度を制御する。
【００４１】
さらに、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、首関節６０の直交する３軸のそれぞれの角度を制御する３つのモータ（図３では、まとめて「頭部モータ１００」と示す）の回転角度を制御する。そして、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、車輪３２を駆動する２つのモータ（図３では、まとめて「車輪モータ３６」と示す）の回転角度を制御する。
【００４２】
なお、この実施例では、車輪モータ３６を除くモータは、制御を簡素化するためにステッピングモータ（すなわち、パルスモータ）を用いる。ただし、車輪モータ３６と同様に直流モータを用いるようにしてもよい。また、ロボット１２の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、たとえば、他の実施例では、エアアクチュエータが適用されてもよい。
【００４３】
センサ入力／出力ボード８８は、モータ制御ボード８６と同様に、ＤＳＰで構成され、各センサからの信号を取り込んでＣＰＵ８０に与える。すなわち、赤外線距離センサ４０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード８８を通じてＣＰＵ８０に入力される。また、全方位カメラ４６からの映像信号が、必要に応じてセンサ入力／出力ボード８８で所定の処理を施してからＣＰＵ８０に入力される。眼カメラ７０からの映像信号も、同様にして、ＣＰＵ８０に入力される。また、上述した複数の接触センサ５８（図３では、まとめて「接触センサ５８」と示す）からの信号がセンサ入力／出力ボード８８を介してＣＰＵ８０に与えられる。音声入力／出力ボード９０もまた、同様に、ＤＳＰで構成され、ＣＰＵ８０から与えられる音声合成データに従った音声または声がスピーカ６４から出力される。また、マイク６６からの音声入力が、音声入力／出力ボード９０を介してＣＰＵ８０に与えられる。
【００４４】
また、ＣＰＵ８０は、バス８２を介して通信ＬＡＮボード１０２に接続される。通信ＬＡＮボード１０２は、たとえばＤＳＰで構成され、ＣＰＵ８０から与えられた送信データを無線通信装置１０４に与え、無線通信装置１０４は送信データを、ネットワーク１４を介してユーザ端末１６に送信する。また、通信ＬＡＮボード１０２は、無線通信装置１０４を介してデータを受信し、受信したデータ（受信データ）をＣＰＵ８０に与える。
【００４５】
たとえば、送信データとしては、ロボット１２で撮影および／または記憶された映像信号および／または音声信号であったり、ロボット１２が行った行動（コミュニケーション行動）についての履歴情報などであったりする。また、受信データとしては、ユーザ端末１６からの映像信号および／または音声信号であったり、ユーザ端末１６からの操作信号（コマンド）であったりする。
【００４６】
また、ＣＰＵ８０は、バス８２を介して、表示ドライバ９２に接続される。上記の表示装置６２が表示ドライバ９２に接続される。表示ドラバイ９２は、ＧＰＵおよびＶＲＡＭを含み、ＣＰＵ８０の指示に従って表示装置６２に表示する画像に対応する画像データを生成する。表示ドライバ９２で生成された画像データが表示装置６２に出力され、画像データに対応する画像が表示装置６２の画面に表示される。
【００４７】
さらに、ＣＰＵ８０は、バス８２を介して、２次元距離計測装置１０６および３次元距離計測装置１０８に接続される。２次元距離計測装置１０６は、水平方向にレーザーを照射し、物体（人間も含む）に反射して戻ってくるまでの時間から当該物体までの距離を計測するものである。たとえば、トランスミッタ（図示せず）から照射したレーザーを回転ミラー（図示せず）で反射させて、前方を扇状に一定角度（たとえば、０．５度）ずつスキャンする。ここで、２次元距離計測装置１０６としては、SICK社製のレーザーレンジファインダ（型式  LMS200）を用いることができる。このレーザーレンジファインダを用いた場合には、距離８mを±１５mm程度の誤差で計測可能である。
【００４８】
この実施例では、ロボット１２は、２次元距離計測装置１０６で検出された障害物までの２次元（または水平方向）の距離情報と、ロボット１２が配置される環境（たとえば、場所ないし領域）についての地図をマッチングすることで、ロボット１２自身の位置すなわちロボット１２の現在位置を推定する。ただし、より正確な現在位置を推定するために、パーティクルフィルタを用いて計算されたロボット１２のオドメトリ（移動情報）も入力として利用される。ロボット１２の現在位置を推定する手法としては、文献「D. Fox, W. Burgard and S. Thrun, Markov Localization for Mobile Robots in Dynamic Environments, Journal of Artificial Intelligence Research, vol. 11, pp. 391-427, 1999.」に開示される手法を用いることができる。ロボット１２の現在位置を推定すること自体は本願の本質的な内容ではないため、詳細な説明は省略する。
【００４９】
また、３次元距離計測装置１０８は、水平方向を基準（０°）として上下４０°（＋３０°〜−１０°）の検知角度（垂直視野角）を有する３次元全方位レーザ距離計である。この３次元距離計測装置１０８は、０．１秒に１回転して、およそ１００ｍまでの距離を計測し、ロボット１２周辺の３次元距離情報を格納した点群情報を取得することができる。ここでは、３次元距離計測装置１０８としては、Ｖｅｌｏｄｉｎｅ社製のイメージングユニットＬｉＤＡＲ（HDL-32E）（商品名）を用いることができる。
【００５０】
この実施例では、ロボット１２は、３次元距離計測装置１０８で検出された３次元の距離情報に基づいて人間を検出するとともに、当該人間の位置を計測する。具体的には、３次元距離計測装置１０８から得られる３次元の距離情報と上記の地図を用いて、ロボット１２が環境内のどの位置に存在しているか、およびどの方向を向いているかが推定される。次に、３次元距離計測装置１０８から取得した３次元の距離情報と、地図に基づく環境内の３次元の距離情報と比較し、近似する３次元の距離情報を格納した点群情報が示す点群を背景としてフィルタリングする。続いて、３次元距離計測装置１０８から取得した３次元の距離情報を格納した点群情報が示す点群のうち、閾値（Zmin, Zmax）を用いて一定の高さに存在しない点群をフィルタリングする。この実施例では、Zminが５ｃｍに設定され、Zmaxが２２０ｃｍに設定され、極端な高さの点群は、人間でないと判断し、人間の位置を計測する処理から除外される。
【００５１】
一定の高さに存在しない点群がフィルタリングされると、フィルタリング後のすべての点群に含まれる高さ情報を０に設定した２次元の点群情報が生成される。生成された２次元の点群情報は、ユークリッド距離を用いてクラスタリングされる。一例として、Point Cloud Libraryに実装されているクラスタリング手法が利用される。
【００５２】
さらに、クラスタリングされた点群情報に含まれる元々の高さ情報を利用し、高さの最大値から高さの最小値を引いた値が３０ｃｍ未満であるもの、および点群の数が閾値以下であるもの（ここでは４個と設定した）がフィルタリングされる。つまり、小さすぎる物または壁などの人間以外の物と判断されたクラスタが除去される。そして、フィルタリング後の各クラスタの重心位置が各人間の位置情報として設定される。つまり、ロボット１２の周囲に存在する人間が検出されるとともに、検出された人間の位置が計測される。ロボット１２の周囲に複数の人間が存在することが検出された場合には、ロボット１２のコミュニケーション対象の一人の人間が所定のルールに従って選択される。一例として、所定のルールは、ロボット１２からの距離が最短距離であること、または、ユーザ端末１６から指定されたことである。ただし、ユーザ端末１６からコミュニケーション対象が指定された場合には、ロボット１２からの距離に基づいて決定されたコミュニケーション対象よりも優先される。
【００５３】
なお、ロボット１２の位置を推定したり、人間の位置を計測したりするために、ロボット１２は、２次元距離計測装置１０６および３次元距離計測装置１０８を備えているが、これらの計測装置は、ロボット１２に備えずに、または、ロボット１２に備えるとともに、ロボット１２が配置される環境内に設置されてもよい。また、床センサなどの他のセンサを用いて、ロボット１２の位置を推定したり、人間の位置を計測（推定）したりしてもよい。
【００５４】
また、この実施例では、ロボット１２は、２次元距離計測装置１０６および３次元距離計測装置１０８を備えるようにしてあるが、３次元距離計測装置１０８の計測結果を用いてロボット１２の位置を推定することもできるため、２次元距離計測装置１０６は省略することもできる。
【００５５】
日常生活においては、人間と人間の間において、様々な空間の譲り合いが生じている。たとえば、店員が顧客に商品を見るための最も良い場所を譲る。また、狭い幅の通路では、人々は、車椅子に乗った人に道を譲る。さらに、人々は、美術品または動物のような対象物を見る場所において、自分よりも低身長の人または子供に見易い場所を譲る。
【００５６】
この実施例では、このような空間の譲り合いを上記のロボット１２と人間との間においても実現するように、ロボット１２を行動させる。ただし、この明細書において、ロボット１２の行動は、単に、ロボット１２が目的地に移動することを含む。
【００５７】
上記のような空間の譲り合いは、多くの場合、明示的なコミュニケーションを経由することなく行われており、状況に依存した多くのルールまたは規範が存在すると考えられる。しかし、多種多様な状況に依存したすべてのルールを網羅的に記述してロボット１２の行動を制御するのは現実的に不可能である。
【００５８】
このため、この実施例では、大量のルールをロボット１２の行動に記述するのではなく、人間とロボット１２が同じ空間を占有したい状況が発生した場合に、優先度の低い方が自身の利益の最大化を行うのではなく、むしろ自分の利益を差し引き、より優先度の高い方の利益に寄与する行動を選択するように、ロボット１２が実行可能な形で定式化し、空間の譲り合いを実現するようにしてある。つまり、一連の空間の譲り合いは、人間とロボット１２の間における相互利益を最大化する、人間とロボット１２の振る舞いとして表現される。
【００５９】
人間をエージェントｉとし、ロボット１２をエージェントｊとした場合に、空間の譲り合いというエージェントｉおよびエージェントｊが協調および／または連携する行動は、エージェントｉとエージェントｊの間における空間リソースの競合の解決プロセスとみなすことができる。エージェントｉが、合理的な振る舞いを行うとすれば、エージェントｉにおける行動の選択は、自身の利益最大化として表現される。具体的には、数１で表現することができる。
【００６０】
［数１］
2020004182.tif 000003
【００６１】
また、ｐは、エージェントｉが取り得る移動計画を示し、Ｕｉ（ｐ）は、移動計画ｐを選択したときにエージェントｉが得る利益を示す。この明細書において、利益とは、タスクの目的を達成する度合を意味する。この実施例では、タスクの目的を達成する度合が高い程、利益が大きい。したがって、移動するエージェントでは、目的地に早く到達できるほど利益が大きい。また、物を見るエージェントでは、対象物が見易い位置へ移動できるほど利益が大きい。また、Ｐはエージェントｉが取り得る全ての移動計画の集合である。これらのことは、エージェントｊについても同様である。
【００６２】
仮に、エージェントｉのみが存在する場合には、数１によって、エージェントｉの目的を達成する最適な移動計画が選択される。ただし、エージェントｉおよびエージェントｊが存在する場合には、お互いの利益間に競合が生じると、数１を同時に満足する解は存在しなくなってしまう。この場合、エージェントｉとエージェントｊの間で移動の調整が必要である。
【００６３】
上述したように、人間同士では、こうしたお互いの利益の競合が生じた場合には、明示的な会話を行う事なく、競合を解決する事がある。より具体的には、狭い幅の通路の反対側から車椅子に乗った人がやってきた場合には、他方の人は、立ち止まって横によけ、車椅子の人が通るスペースを自然と確保する。この例は、空間の譲り合いで生じる二つの点を示していると言える。
【００６４】
一つ目は、エージェント同士（人間同士）がお互いの目的と、目的を達成する最適な行動を互いに認識している点である。つまり、人間は、お互いの目的と、目的を達成するための最適な振る舞いを知っている。上記の例で言えば、各人は、車椅子の人が狭い幅の通路を通り抜けたいこと、その目的を達成するには、車椅子の人がまっすぐ進むことが好ましいことを理解している。
【００６５】
二つ目は、エージェント同士の優先関係を認識している点である。優先度の低い人間が、自身の利益を差し引き、優先度の高い人間の利益を確保している。上記の例で言えば、各人は、車椅子に乗る人の優先度が高く、他方の人（車椅子に乗る人以外の人々）の優先度が低いものとして認識している。
【００６６】
この実施例では、上記の考えに基づいて、空間リソースの競合または利益競合の解決方法を、相互利益を最大化する行動の選択として、数２のように定式化した。
【００６７】
［数２］
2020004182.tif 000004
【００６８】
ここで、αは、エージェントｉの優位性を示し、その値は０から１の間で設定される。数２からも明らかなように、αが１に近づけば、エージェントｊは、よりエージェントｊの利益を差し引き、エージェントｉの利益を最大化する行動（この実施例では、移動）が選択される。
【００６９】
この実施例では、人間とロボット１２の間に空間を譲り合う状況が発生した場合に、人間とロボット１２の社会的な立場または権威に応じて決定される優位性（または優先度）αを用いて、ロボット１２とその周囲の人間の相互利益を最大化するように、ロボット１２を移動させる。ただし、優位性は、ロボット１２が実行する行動（タスク）の緊急度に応じて決定される場合もある。
【００７０】
上記のようなシステム１０においては、ロボット１２はユーザ端末１６からのコマンドに従うタスクを実行する。
【００７１】
たとえば、ロボット１２が或る店舗に配置され、このロボット１２またはこのロボット１２を遠隔で操作するユーザが店員として行動する場合には、陳列棚の商品を確認したり、商品などの荷物を運んだりする。
【００７２】
商品棚の商品を確認する場合には、ユーザは、ユーザ端末１６を用いて、陳列された商品を見るタスクを実行するためのコマンドをロボット１２に送信する。
【００７３】
詳細な説明は省略するが、商品を見る場合には、ロボット１２は、首関節６０を回転したり、身体の向きを変更したりすることにより、頭部に相当する表示装置６２および眼カメラ７０の向きを変える。また、このとき、ロボット１２は、商品を眼カメラ７０で撮影した撮影画像の画像データをユーザ端末１６に送信する。したがって、ユーザは、撮影画像をユーザ端末１６に表示することにより、商品を確認することができる。
【００７４】
また、商品などの荷物を運ぶ場合には、ユーザは、ユーザ端末１６を用いて、所定の場所（後述する目的地Gに相当する）まで移動するタスクを実行するためのコマンドをロボット１２に送信する。この場合、荷物は、他の店員からロボット１２に渡される（積載される）。
【００７５】
なお、この実施例では、ロボット１２は、胴体４２、両手および両腕（４８Ｒ、４８Ｌ、５０Ｒ、５０Ｌ、５２Ｒ、５２Ｌ、５４Ｒ、５４Ｌ、５６Ｒ、５６Ｌ）に相当する部位を有する形態であるため、両手および両腕を用いて荷物を目的地Gまで運ぶことができる。ただし、ロボット１２は、胴体、両手および両腕に相当する部位に代えて、全方位カメラ４６、表示装置６２および眼カメラ７０を支持するように、台車３０と首関節６０を連結する支持棒が設けられてもよく、その場合には、たとえば、荷物は台車３０の上に載せられる。
【００７６】
ロボット１２が店員として振る舞う場合には、一般的には、ロボット１２（店員）の行動よりも客のような人間の行動が優先される。したがって、人間が商品を確認するロボット１２の方に近づいた場合、商品を見易くするために、ロボット１２は移動する。つまり、ロボット１２は今居る場所を空ける。
【００７７】
また、店舗内を移動するロボット１２と人間が狭い幅の通路を挟んだ位置に存在し、ロボット１２と人間が逆向きに通路を通り抜けたい場合には、同時に通路を移動すると、すれ違うことができないため、立ち往生してしまう。
【００７８】
ただし、ここでは、ロボット１２の優位性よりも客の優位性が高いため、ロボット１２は、顧客が狭い幅の通路を通り抜けるのを待機し、顧客が狭い幅の通路を通り抜けると、狭い幅の通路に侵入し、当該通路を通り抜ける。
【００７９】
図４（Ａ）は、人間とロボット１２が狭い幅の通路を挟んだ位置に存在する様子の概略を真上方向から見た概略図である。図４（Ａ）において（図４（Ｂ）、図５（Ａ）、図５（Ｂ）、図９、図１０（Ａ）および図１０（Ｂ）も同じ）、人間およびロボット１２の頭部を丸で示し、頭部に記載した目の付いている方が前方（図１０（Ａ）および図１０（Ｂ）の（６）で示す方向）であり、その反対方向が後方（図１０（Ａ）および図１０（Ｂ）の（４）で示す方向）である。ここでは、壁で挟まれた狭い幅の通路を、人間が一方から他方に通り抜けたい状況であり、ロボット１２が他方から一方に通り抜けたい状況である。ただし、狭い幅の通路は、ロボット１２と人間がすれ違うことができないため、同時に通り抜けようとした場合、立ち往生が発生する。
【００８０】
上記のとおり、ロボット１２は店員として振る舞うため、顧客である人間の優位性はロボット１２の優位性よりも高く設定される。このような状況においては、先に、人間が狭い幅の通路を通り抜けて、その後、ロボット１２がその通路を通り抜けることにより、優位性を考慮したロボット１２の移動を実行（実現）することができる。つまり、空間の譲り合いが実行（実現）される。
【００８１】
具体的には、図４（Ｂ）および図５（Ａ）に示すように、人間が狭い幅の通路を移動し、さらに、狭い幅の通路を通り抜けるまで、ロボット１２は停止して、人間が通路を通り抜けるのを待機する。そして、図５（Ａ）および図５（Ｂ）に示すように、人間が狭い幅の通路を通り抜けると、ロボット１２は人間とは逆向きに狭い幅の通路を移動し、通り抜ける。
【００８２】
このように、特別な制約または条件が存在しない場合には、人間は、遠回りせずに目的地に向けて、適切な移動速度で移動する。この行動は、（１）移動によって、より目的地に近付くほど利益が高く、（２）適切な速度で移動できる程利益が高いという２つの要素に分類することができる。
【００８３】
これらの要素を利用した「移動」についてのタスクに関する利益関数は数３で示される。また、数３をまとめると、数４となる。ただし、数３および数４において、Uは利益であり、tは経路計画で使用する予測時間であり、posはt秒後の予測位置であり、posnowは現在位置であり、Gは目的地であり、Distは距離（または差分）であり、ｘは移動距離であり、vprefは適切な速度を意味する。この実施例では、移動のタスクを実行する場合には、１０秒（後述する予測時間t）分の予測を実施する。また、ロボット１２の経路計画を算出する場合には、人間とロボット１２のそれぞれの利益Uが時間間隔Δt毎(たとえば、０．５秒毎)に、数４に従って算出される。
【００８４】
この明細書においては、「経路計画」は、予測時間ｔ分について予測されるロボット１２の移動経路（以下、「予測時間ｔ分の移動経路」ということがある）を意味し、「移動計画」は、時間間隔Δt後に予測されるロボット１２の位置を意味する。
【００８５】
適切な速度vprefは、人間またはロボット１２が移動するときに望ましい移動速度を意味し、行動（またはタスク）に応じて設定される。緊急性の無い行動であれば、通常の移動速度が適切な速度vprefとして設定される。通常の移動速度は、成人が歩く速度の平均値であり、ロボット１２は、減速距離を考慮して、その平均値よりも少し低く設定される。緊急性の高い行動であれば、通常の移動速度よりも早い速度が適切な速度vprefとして設定される。最徐行する必要のある行動であれば、通常の移動速度よりも遅い速度が適切な速度vprefとして設定される。たとえば、人間およびロボット１２のそれぞれについて、高、中（通常の移動速度）、低の３段階の速度が予め想定されており、行動に応じて、適切な速度vprefが設定される。以下、この明細書において同じである。
【００８６】
［数３］
U(G, t, pos)=f(Dist(posnow, G)-Dist(pos, G))
ただし， f(d)=-|d-vpref*t|
［数４］
U(G, t, pos)=-|(Dist(posnow, G)-Dist(pos, G))-vpref*t|
この実施例では、利益Uの最大値は０になるように調整されている。数３において、(Dist(posnow, G)-Dist(pos, G))は、目的地Gへの近接項であり、現在位置posnowから、t秒後の位置posが目的地Gに近い程、大きい値となり、大きい値程、利益Uが大きくなる。
【００８７】
また、数３において、f(d)=-|d-vpref*t|は、ロボット１２の移動制約項を示し、t秒の間に、望ましい速度vprefで移動できるときに最大値（すなわち、f(d)=0）となり、望ましい速度vprefからずれるに従ってf(d)の値は小さくなる。
【００８８】
目的地Gへの近接項とロボット１２の移動制約項を組み合わせることで、目的地Gに近づきつつ、望ましい速度vprefでロボット１２が移動されるように、利益Uが最大化されるように設計されている。
【００８９】
なお、図示は省略するが、ロボット１２またはロボット１２のユーザが客であり、人間が店員である場合には、立場が逆転するため、たとえば、ロボット１２が先に狭い幅の通路を通り抜け、その後、人間が狭い幅の通路を通り抜ける。
【００９０】
また、上記の例では、店員と客の場合の例について説明したが、これに限定される必要はない。ロボット１２と車椅子に乗った人が狭い幅の通路を互いに逆向きに通り抜ける場合には、車椅子の人の優位性がロボット１２の優位性よりも高くされ、ロボット１２は、車椅子の人が通路を通り抜けた後に、通路を通り抜ける。
【００９１】
図６は、或る展示会場の或る一室に複数の展示物が配置されている様子を真上方向から見た概略図である。図６等を参照して、展示物を鑑賞する場合において、人間とロボット１２が空間を譲り合う他の例について説明する。ただし、ここでは、鑑賞者が人間であり、説明員がロボット１２であるものとする。
【００９２】
図６に示すように、４つの展示物Ａ、展示物Ｂ、展示物Ｃおよび展示物Ｄがそれぞれ別の壁面の前に展示されている。通常、鑑賞者は、順路に沿って移動する。たとえば、鑑賞者からの要請があった場合、展示物Ａ、Ｂ、Ｃ、Ｄの概要または内容を紹介するロボット１２は、展示物Ａ、Ｂ、Ｃ、Ｄに周囲に存在し、鑑賞者が展示物Ａ、Ｂ、Ｃ、Ｄに近づくと、展示物Ａ、Ｂ、Ｃ、Ｄの正面からずれた位置に立つ。つまり、ロボット１２は、鑑賞者に、展示物Ａ、Ｂ、Ｃ、Ｄを鑑賞し易い場所を譲る。
【００９３】
このとき、ロボット１２は、頭部すなわち表示装置６２の向きを上下左右に動かしたり、身体の動きを回転させるたりすることで、展示物Ａ、Ｂ、Ｃ、Ｄを見て、当該展示物Ａ、Ｂ、Ｃ、Ｄについての説明の音声をスピーカ６４から出力する。ただし、説明の音声は、ロボット１２の合成音声でもよいし、ユーザがユーザ端末１６を通して発話した音声でもよい。一方、鑑賞者は、展示物Ａ、Ｂ、Ｃ、Ｄの正面に立ち、ロボット１２から展示物Ａ、Ｂ、Ｃ、Ｄについての説明を受ける。
【００９４】
図７に示すように、展示物Ａ、Ｂ、Ｃ、Ｄを鑑賞する場合には、展示物Ａ、Ｂ、Ｃ、Ｄから見て正面方向に近い方向であり、展示物Ａ、Ｂ、Ｃ、Ｄからの距離が近いほど、展示物Ａ、Ｂ、Ｃ、Ｄを鑑賞する場合における利益Uが大きくなる。ただし、上記の方向および距離は、展示物Ａ、Ｂ、Ｃ、Ｄの配置位置（または中心位置）からの正面方向に対する方向およびその中心位置からの距離である。ただし、方向および距離は、高さ情報を含まない２次元の方向および距離である。したがって、展示物Ａ、Ｂ、Ｃ、Ｄのような対象物を見る（鑑賞する）場合には、利益関数は数５で示される。
【００９５】
ただし、数５において、Uは利益であり、Distは距離（差分）であり、Gは目的地である。ただし、目的地Gは、展示物Ａ、Ｂ、Ｃ、Ｄの配置位置である。また、方向の要素に０．１を乗算しているが、これは方向の要素に対する重み付けであり、重みを０．１に決定したのは、方向の要素よりも距離の要素が利益に与える影響が大きいと考えられるからである。たとえば、対象物を鑑賞する人間の数が多い場合には、対象物に対する方向を気にせずに、なるべく対象物に近づこうとする人が比較的多いからである。ただし、これは一例であり、対象物等によって適宜変更可能である。また、ロボット１２の経路計画を算出する場合には、鑑賞者およびロボット１２のそれぞれの利益Uが時間間隔Δt毎に数５に従って算出される。
【００９６】
［数５］
U(pos, G)=f(cosθ*0.1-Dist(pos, G))
上述したように、一般的には、鑑賞者は、順路に沿って移動し、展示物Ａ、Ｂ、Ｃ、Ｄを鑑賞するが、必ずしも順路に沿って移動するとは限らない。したがって、この実施例では、次のようにして、目的地Gを決定するようにしてある。
【００９７】
図８（Ａ）は鑑賞者である人間が移動している場合に、目的地Gを推定する方法を説明するための図であり、図８（Ｂ）は人間が静止している場合に、目的地Gを推定する方法を説明するための図である。
【００９８】
図８（Ａ）に示すように、人間が移動している場合には、人間が移動する方向に配置された展示物Ａ、Ｂ、ＣまたはＤが、当該人間が鑑賞しようとしている対象物として決定され、鑑賞の対象物として決定された展示物Ａ、Ｂ、ＣまたはＤの配置位置が目的地Gとして推定（または決定）される。
【００９９】
図８（Ｂ）に示すように、人間が停止している場合には、人間に最も近い位置に配置された展示物Ａ、Ｂ、ＣまたはＤが、当該人間が鑑賞しようとしている対象物として決定され、鑑賞の対象物として決定された展示物Ａ、Ｂ、ＣまたはＤの配置位置が目的地Gとして推定される。ただし、人間からの距離が同じまたは同程度（差が所定距離以内）の対象物が複数存在する場合には、複数の対象物のうち、人間が停止するまでに移動していた方向に存在する対象物の配置位置が目的地Gとして推定される。
【０１００】
なお、環境に展示物Ａ、Ｂ、Ｃ、Ｄのような対象物が存在しない場合には、人間が移動する方向の先に存在する場所ないし領域の中心位置、または、人間が静止している場所ないし領域の中心位置が目的地Gとして推定される。
【０１０１】
また、ロボット１２が移動のタスクを実行する場合には、ロボット１２の目的地Gはコマンドとともにユーザ端末１６から送信（指定）される。
【０１０２】
図９はロボット１２の経路計画を作成する方法を説明するための図である。また、図１０（Ａ）は人間の移動方向を示す図であり、図１０（Ｂ）はロボット１２の移動方向を示す図であり、図１０（Ｃ）は移動候補点を説明するための図である。
【０１０３】
ロボット１２の経路計画を作成する、すなわち予測時間ｔ分の移動経路を算出する場合には、ロボット１２の現在位置（以下、「自己位置」ということがある）を推定するとともに、人間の現在位置を検出し、現在位置からΔt秒後の位置（以下、「移動候補点」）に移動したと仮定した場合における人間の利益とロボット１２の利益をそれぞれ算出し、各利益に人間の優位性およびロボット１２の優位性を考慮した重み付けをして、相互利益を算出する。ただし、図９では、エージェントｊの優位性αｊは、１からエージェントｉの優位性αｉを減算した値である。
【０１０４】
図１０（Ａ）に示すように、Δt秒後の人間の位置は（１）−（９）で示す方向における位置である。同様に、図１０（Ｂ）に示すように、Δt秒後のロボット１２の位置は（１）−（９）で示す方向における位置である。この実施例では、予測時間ｔ分の移動経路を算出する場合には、ロボット１２が存在する環境についての地図が所定長さ（たとえば、０．４ｍまたは０．５ｍ）のグリッド状に分解され、人間およびロボット１２がグリッド単位で移動されるように、時間間隔Δt分移動した位置すなわち移動候補点が決定される。ただし、上記の所定長さは、ロボット１２が適切な速度vprefでΔt秒間移動した場合に移動可能な距離に決定される。
【０１０５】
図１０（Ｃ）に示すように、上記の（１）−（９）で示す移動方向における移動候補点は、９つの升目の各々の中心位置である。つまり、現在の移動方向（正面方向）を基準に、前後左右および斜め方向に移動した場合の位置に対応する８つの移動候補点に、中央の升目の中心位置（現在位置）に対応する１つの移動候補点が追加される。ただし、（５）で示す中央の升目の中心位置は、人間またはロボット１２が移動しない（静止している）場合の位置である。
【０１０６】
図９に戻って、相互利益は、人間が複数（この実施例では、９つ）の移動候補点（Δt秒後の位置）の各々に移動した場合（「第１移動計画を選択した場合」に相当する）における各利益と、ロボット１２が複数（この実施例では、９つ）の移動候補点の各々に移動した場合（「第２移動計画を選択した場合」に相当する）における各利益の全ての組み合わせについて、それぞれ算出される。つまり、人間の複数の移動候補点と、ロボット１２の複数の移動候補点のすべての組み合わせ（９×９＝８１）について、相互利益が算出される。
【０１０７】
ただし、図９に示す例では、人間とロボット１２の前方に鑑賞するべき展示物が配置されているものとする。また、移動前の人間とロボット１２を実線で示し、移動後の人間とロボット１２を点線で示す。なお、人間またはロボット１２は移動しない場合もある。
【０１０８】
算出された全ての相互利益から最大の相互利益の組み合わせが選択され、選択された組み合わせのロボット１２の移動候補点がΔt秒後のロボット１２の位置として記憶される。ただし、人間とロボット１２が衝突する場合の組み合せについては、最大の相互利益の組み合わせを選択する前に選択の候補（または選択肢）から除外される。この実施例では、人間とロボット１２の距離が所定距離（たとえば、１ｍ）以下である場合に、これらが衝突すると判断するようにしてある。
【０１０９】
また、最大の相互利益の組み合わせが選択されると、選択された組み合わせにおけるΔt秒後の人間の位置とロボット１２の位置を基準として、さらにΔt秒後（つまり、２×Δt秒後）に人間が複数の移動候補点の各々に移動した場合の各利益と、２×Δt秒後にロボット１２が複数の移動候補点の各々に移動した場合の各利益との全ての組み合わせについて、それぞれ相互利益が算出される。つまり、前の回で選択された人間の位置とロボット１２の位置をそれぞれ現在位置として、Δt秒後の移動候補点が人間およびロボット１２のそれぞれについて算出される。
【０１１０】
なお、図９に示す例では、Δt秒後および２×Δt秒後のいずれの場合にも中段に記載された移動候補点の組み合わせについての相互利益が最大である。
【０１１１】
このようにして、人間とロボット１２のΔt秒毎の位置（移動候補点）が予測時間t分選択または決定される。つまり、予測時間t分のロボット１２の移動経路すなわち経路計画が算出される。予測時間tは、実行されるタスクに応じて予め決定されており、たとえば、ロボット１２が任意の目的地Gまで移動するタスクを実行する場合には、ロボット１２は移動するエージェントであり、この場合には、予測時間tは１０秒である。また、ロボット１２が展示物Ａ、Ｂ、Ｃ、Ｄの概要または内容を紹介するタスクを実行する場合には、ロボット１２は物を見るエージェントであり、この場合には、予測時間tは５秒である。
【０１１２】
ただし、実際にロボット１２を移動させている場合に、人間または障害物に衝突する可能性がある場合には、ロボット１２は移動を停止する。ロボット１２は、自身の位置を算出する場合に、２次元距離計測装置１０６の出力に基づいて周囲に存在する人間または障害物との距離を計測しているため、人間または障害物に衝突する可能性があることを知ることができる。
【０１１３】
なお、上記のように作成される経路計画では、何度も同じ場所を通る冗長な経路計画が作成されてしまうことがある。冗長な経路計画が作成された場合には、利益の総和が減少せず、かつ人間とロボット１２が衝突しない範囲で、冗長部分が削除される。
【０１１４】
また、図４（Ａ）−図５（Ｂ）の説明では省略したが、人間とロボット１２が細い幅の通路を通り抜ける場合にも、図９および図１０（Ａ）、（Ｂ）、（Ｃ）を用いて説明した方法により、ロボット１２の経路計画は作成される（予測時間ｔ分の移動経路が算出される）。
【０１１５】
図１１は図３に示したメモリ８４（ＲＡＭ）のメモリマップ５００を示す図である。図１１に示すように、メモリ８４は、プログラム記憶領域５０２およびデータ記憶領域５０４を含む。プログラム記憶領域５０２は、ロボット制御プログラムを記憶する。ロボット制御プログラムは、自己位置推定プログラム５０２ａ、人間位置検出プログラム５０２ｂ、目的地推定プログラム５０２ｃ、移動候補点算出プログラム５０２ｄ、相互利益算出プログラム５０２ｅ、経路計画作成プログラム５０２ｆおよび行動制御プログラム５０２ｇを含む。
【０１１６】
自己位置推定プログラム５０２ａは、２次元距離計測装置１０６の出力と地図データ５０４ａに基づいて、ロボット１２自身の位置すなわち自己位置を推定（または検出）するためのプログラムである。人間位置検出プログラム５０２ｂは、３次元距離計測装置１０８の出力に基づいて、ロボット１２の周囲に存在する人間を検出するとともに、検出した人間の位置を検出するためのプログラムである。
【０１１７】
目的地推定プログラム５０２ｃは、対象物を鑑賞する場合において、人間の目的地Gを推定するためのプログラムである。移動候補点算出プログラム５０２ｄは、人間のΔt秒後の複数の移動候補点とのロボット１２のΔt秒後の複数の移動候補点を、それぞれ算出するためのプログラムである。ただし、移動候補点は、ロボット１２が、基準位置からΔt秒分移動した場合の位置である。また、基準位置の初期値は、ロボット１２の現在位置であり、時間間隔Δt秒毎に更新される。これらのことは人間についても同様である。
【０１１８】
相互利益算出プログラム５０２ｅは、人間が複数の移動候補点に移動した場合の各利益と、ロボット１２が複数の移動候補点に移動した場合の各利益に基づいて、人間の複数の移動候補点とロボット１２の複数の移動候補点の各組み合わせについての相互利益をそれぞれ算出するためのプログラムである。ただし、利益関数および優位性（重みα）は、実行中のタスクに応じて決定される。
【０１１９】
経路計画作成プログラム５０２ｆは、移動候補点算出プログラム５０２ｄおよび相互利益算出プログラム５０２ｅを予測時間t分繰り返し実行し、各回において、相互利益算出プログラム５０２ｅに従って算出される複数の相互利益から最大の相互利益を選択し、選択した相互利益を有する組における人間およびロボット１２の移動候補点をそれぞれ記憶して、ロボット１２の経路計画を作成するためのプログラムである。ただし、上述したように、冗長な経路計画が作成されないために、人間の移動候補点とロボット１２の移動候補点の組み合わせと同じ組み合わせについては、選択肢から除外される。また、上述したように、最大の相互利益を選択する前に、人間とロボット１２が衝突する場合の移動候補点の組み合わせについては選択肢から除外される。
【０１２０】
行動制御プログラム５０２ｇは、ユーザ端末１６から指示されたコマンドに対応するタスクを実行するためのプログラムであって、ロボット１２自身の行動を制御する。ただし、上述したように、タスクを実行する場合、ロボット１２は、作成した経路計画に従って移動させる。
【０１２１】
図示は省略するが、プログラム記憶領域５０２には、音声入力プログラム、映像入力プログラムおよび音声出力プログラムなどの他のプログラムロボット制御プログラムとは異なるプログラムも記憶御される。
【０１２２】
また、データ記憶領域５０４には、地図データ５０４ａ、重みデータ５０４ｂ、自己位置データ５０４ｃ、人間位置データ５０４ｄ、相互利益データ５０４ｅおよび経路計画データ５０４ｆが記憶される。
【０１２３】
地図データ５０４ａは、ロボット１２が配置される環境を上方から見た２次元の地図についてのデータである。たとえば、地図には、通路、壁、柱および固定的に配置されている障害物（たとえば、消火器、ごみ箱など）が記載される。また、展示物（Ａ、Ｂ、Ｃ、Ｄなど）が配置された環境においては、展示物も地図に記載される。
【０１２４】
なお、ユーザ端末１６は、地図データ５０４ａと同じまたは同等の地図データを記憶しており、または、参照可能であり、ユーザは、ユーザ端末１６を介してこの地図データに対応する地図を参照し、ロボット１２の目的地Gを指定したり、コミュニケーション対象として選択する人間が存在する位置を指定したりする。
【０１２５】
重みデータ５０４ｂは、相互利益を算出する場合の重みαについてのデータであり、重みαはロボット１２が実行するタスクに応じて予め設定されている。自己位置データ５０４ｃは、ロボット１２の現在位置についての座標データである。人間位置データ５０４ｄは、ロボット１２によって検出された人間の現在位置についての座標データである。ただし、複数の人間が検出された場合には、所定のルールに従ってコミュニケーション対象として選択された一人の人間の現在位置についての座標データが人間位置データ５０４ｄとして記憶され、タスクの実行を終了するまで追跡される。
【０１２６】
相互利益データ５０４ｅは、相互利益算出プログラム５０２ｅに従って算出される複数の相互利益についてのデータである。上述したように、移動候補点算出プログラム５０２ｄおよび相互利益算出プログラム５０２ｅは、予測時間t分繰り返し実行されるため、相互利益データ５０４ｅは各回で更新される。
【０１２７】
経路計画データ５０４ｆは、Δt秒毎に（各回で）相互利益が最大となるロボット１２の位置（移動候補点）を、予測時間t分時系列に従って並べた移動経路すなわち経路計画についてのデータである。この経路計画データ５０４ｆは、後述する展開済みの移動計画リストLcloseに含まれるロボット１２の移動予測軌跡P.Prのデータに相当する。
【０１２８】
図示は省略するが、データ記憶領域５０４には、他のデータが記憶されたり、フラグおよび／またはタイマ（カウンタ）が設けられたりする。
【０１２９】
図１２および図１３は、図３に示したＣＰＵ８０のロボット制御処理を示すフロー図である。図１２に示すように、ＣＰＵ８０は、ロボット制御処理を開始すると、ステップＳ１で、終了かどうかを判断する。ここでは、ＣＰＵ８０は、ユーザ端末１６から停止コマンドを受信したかどうかを判断する。ステップＳ１で“ＹＥＳ”であれば、つまり、終了であれば、ロボット制御処理を終了する。
【０１３０】
一方、ステップＳ１で“ＮＯ”であれば、つまり、終了でなければ、ステップＳ３で、自己位置を推定（検出）し、ステップＳ５で、人間の位置を検出して、ステップＳ７に進む。ただし、ステップＳ３では、自己位置データ５０４ｃが更新され、ステップＳ５では、人間位置データ５０４ｄが更新される。また、ステップＳ５では、複数の人間が検出された場合には、上記のように、選択された一人の人間の位置が検出される。これらのことは、後述するステップＳ１９およびＳ２１についても同じである。
【０１３１】
なお、図示は省略するが、ユーザ端末１６から何らコマンドを受信していない場合には、ロボット１２は停止していても良く、また、自由に移動しても良い。
【０１３２】
ステップＳ７では、行動の内容が決定されたかどうかを判断する。つまり、ＣＰＵ８０は、ユーザ端末１６からタスクの実行を指示するコマンドを受信したかどうかを判断する。ただし、ユーザは、ユーザ端末１６を用いてコマンドを入力するともに、目的地Gを指定する。
【０１３３】
ステップＳ７で“ＮＯ”であれば、つまり、行動の内容が決定されていなければ、ステップＳ１に戻る。一方、ステップＳ７で“ＹＥＳ”であれば、つまり、行動の内容が決定されれば、ステップＳ９で、人間の目的地Gを推定（決定）する。ただし、複数の人間が存在する場合には、選択された一人の人間の目的地Gが推定される。
【０１３４】
次のステップＳ１１では、行動の内容に応じて優位性を決定する。つまり、ＣＰＵ８０は、実行するタスクに応じて重みαを決定する。このとき、重みαの数値データすなわち重みデータ５０４ｂがデータ記憶領域５０４に記憶される。続くステップＳ１３では、後述する経路計画の作成処理（図１４、図１５および図１６参照）を実行して、図１３に示すステップＳ１５に進む。
【０１３５】
図１３に示すように、ステップＳ１５では、行動を開始する。ロボット１２は、ロボット制御処理と並行して、ステップＳ７において、決定された行動すなわちユーザ端末１６からのコマンドに従う行動についての処理を実行（タスクを実行）することにより、移動を含む行動を実行し、移動するときに、作成した経路計画に従って（後述する、展開済みの移動計画リストLcloseに含まれるロボット１２の移動予測軌跡P.Prを参照して）移動する。
【０１３６】
次のステップＳ１７では、行動を完了したかどうかを判断する。つまり、ＣＰＵ８０は、タスクの実行を終了したかどうかを判断する。ステップＳ１７で“ＹＥＳ”であれば、つまり、行動を完了すれば、図１２に示したステップＳ１に戻る。一方、ステップＳ１７で“ＮＯ”であれば、つまり、行動を完了していなければ、ステップＳ１９で、自己位置を推定し、ステップＳ２１で、人間の位置を検出し、ステップＳ２３で、経路計画の作成処理を実行して、ステップＳ１７に戻る。
【０１３７】
図１４、図１５および図１６は、図１２のステップＳ１３および図１３のステップＳ２３に示した経路計画の作成処理を示すフロー図である。図１４に示すように、ＣＰＵ８０は、経路計画の作成処理を開始すると、ステップＳ５１で、展開済みの移動計画リストLcloseと、展開前の移動計画リストLopenを初期化する。次のステップＳ５３では、初期移動計画P0を作成する。
【０１３８】
ここで、移動計画Pは、時間間隔Δtの累積値P.t、人間の移動予測軌跡P.Pp、ロボット１２の移動予測軌跡P.Prおよび累積値P.tにおける利益P.Uを含む。
【０１３９】
また、上記の初期移動計画P0は、移動計画Pの初期値である。したがって、初期移動計画P0では、累積値P.t＝０であり、人間の移動予測軌跡P.Ppは人間の現在位置のみであり、ロボット１２の移動予測軌跡P.Prはロボット１２の現在位置のみであり、利益P.Uは、人間の現在位置とロボット１２の現在位置に基づいて算出される。ただし、人間の移動予測軌跡P.Ppは、時間間隔Δt毎の人間の位置を時系列順に並べた集合（またはリスト）である。また、ロボット１２の移動予測軌跡P.Prは、時間間隔Δt毎のロボット１２の位置を時系列順に並べた集合（またはリスト）である。
【０１４０】
次に、ステップＳ５５で、初期移動計画を展開前の移動計画リストLopenの先頭に追加し、ステップＳ５７で、展開前の移動計画リストLopenの先頭にある移動計画Pを取り出し、展開済みの移動計画リストLcloseに追加した後に、ステップＳ５９で、取り出した移動計画Pを、展開前の移動計画リストLopenから削除する。
【０１４１】
図１５に示すように、続くステップＳ６１では、累積値P.tが予測時間tと一致するかどうかを判断する。つまり、予測時間ｔ分の移動経路が算出されたかどうかを判断する。上述したように、予測時間tは、実行中のタスクによって予め決定されている。
【０１４２】
ステップＳ６１で“ＹＥＳ”であれば、つまり、累積値P.tが予測時間tと一致すれば、経路計画の作成処理を終了して、図１２および図１３に示したロボット制御処理にリターンする。
【０１４３】
一方、ステップＳ６１で“ＮＯ”であれば、つまり、累積値P.tが予測時間tと一致しなければ、ステップＳ６３で、基準位置を中心とした人間の移動候補点をすべて算出する。ただし、基準位置は、移動候補点を算出するための人間の位置であり、初回は人間の現在位置であり、２回目以降は、Δt秒毎に予測された人間の位置である。
【０１４４】
次のステップＳ６５では、基準位置を中心としたロボット１２の移動候補点をすべて算出する。ただし、基準位置は、移動候補点を算出するためのロボット１２の位置であり、初回はロボット１２の現在位置であり、２回目以降は、Δt秒毎に予測されたロボット１２の位置である。
【０１４５】
続いて、ステップＳ６７で、変数ｍを初期化し（ｍ＝１）、ステップＳ６９で、変数ｎを初期化する（ｎ＝１）。変数ｍは、人間の移動候補点を個別に識別するための変数であり、変数ｎは、ロボット１２の移動候補点を個別に識別するための変数である。
【０１４６】
次に、ステップＳ７１で、ｍ番目の人間の移動候補点を読出し、ステップＳ７３で、ｎ番目のロボット１２の移動候補点を読み出す。そして、図１６に示すステップＳ７５で、時間間隔Δt後の移動計画P（以下、「移動計画P´」という）を作成する。移動計画P´では、累積値P.t＝P.t＋Δtであり、人間の移動予測軌跡P.Ppには人間のｍ番目の移動候補点が追加され、ロボット１２の移動予測軌跡P.Prにはロボット１２のｎ番目の移動候補点が追加され、相互利益P.Uは、人間のｍ番目の移動候補点と、ロボット１２のｎ番目の移動候補点に基づいて算出される。つまり、人間がｍ番目の移動候補点に移動した場合の利益と、ロボット１２がｎ番目の移動候補点に移動した場合の利益の相互利益P.Uが数２に従って算出される。このとき、ステップＳ１１で決定された重みαが用いられる。
【０１４７】
次のステップＳ７７では、移動計画P´が展開済みの移動計画リストLcloseに存在するかどうかを判断する。ステップＳ７７で“ＹＥＳ”であれば、つまり、移動計画P´が展開済みの移動計画リストLcloseに存在すれば、ステップＳ８５に進む。このように、重複する移動計画P´については、展開前の移動計画リストLopenに含まれない。つまり、人間の移動候補点とロボット１２の移動候補点の組み合わせと同じ組み合わせについては、選択肢から除外される。このため、冗長な経路計画が作成されるのが防止される。一方、ステップＳ７７で“ＮＯ”であれば、つまり、移動計画P´が展開済みの移動計画リストLcloseに存在しなければ、ステップＳ７９で、移動計画P´で、人間とロボット１２の衝突が発生するかどうかを判断する。
【０１４８】
ステップＳ７９で“ＹＥＳ”であれば、つまり、移動計画P´で、人間とロボット１２の衝突が発生する場合には、ステップＳ８５に進む。つまり人間とロボット１２の衝突する場合の移動計画P´は、展開前の移動計画リストLopenに含まれない。一方、ステップＳ７９で“ＮＯ”であれば、つまり、移動計画P´で、人間とロボット１２の衝突が発生しない場合には、ステップＳ８１で、移動計画P´を展開前の移動計画リストLopenに追加して、ステップＳ８３で、展開前の移動計画リストLopenの要素を相互利益P.Uの大きい順に並べる。
【０１４９】
続いて、ステップＳ８５で、変数ｎが９であるかどかを判断する。つまり、ＣＰＵ８０は、累積値P.tにおいて、ｍ番目の人間の移動候補点と、すべてのロボット１２の移動候補点の組み合わせのそれぞれについての相互利益P.Uを算出したかどうかを判断する。
【０１５０】
ステップＳ８５で“ＮＯ”であれば、つまり、変数ｎが９でなければ、ステップＳ８７で、変数ｎを１加算して（ｎ＝ｎ＋１）、図１５に示したステップＳ７３に戻る。一方、ステップＳ８５で“ＹＥＳ”であれば、つまり、変数ｎが９であれば、ステップＳ８９で、変数ｍが９であるかどうかを判断する。つまり、ＣＰＵ８０は、累積値P.tにおいて、人間の複数の移動候補点とロボット１２の複数の移動候補点のすべての組み合わせのそれぞれについての相互利益P.Uを算出したかどうかを判断する。
【０１５１】
ステップＳ８９で“ＮＯ”であれば、つまり、変数ｍが９でなければ、ステップＳ９１で、変数ｍを１加算して（ｍ＝ｍ＋１）、図１５に示したステップＳ６９に戻る。一方、ステップＳ８９で“ＹＥＳ”であれば、つまり、変数ｍが９であれば、図１４に示したステップＳ５７に戻る。
【０１５２】
この実施例によれば、ロボットが実行するタスクとは別に、人間とロボットの空間の譲り合いを考慮したロボットの経路計画を作成し、作成した経路計画に従ってロボットを移動させるので、タスクと切り離して譲り合いを実現することができる。したがって、様々な状況に応じた空間の譲り合いを考慮したタスクを作成する必要が無く、開発コストを大幅に低減することができる。
【０１５３】
なお、この実施例では、ロボット１２が経路計画を作成するようにしたが、経路計画はロボット１２と通信可能に接続されたコンピュータで作成するようにしてもよい。かかる場合には、ロボット１２は、人間の現在位置、ロボット１２の現在位置および目的地の情報をネットワーク１４上のコンピュータに送信し、コンピュータのプロセッサは、図１４−図１６に示したような経路計画の作成処理を実行して、経路計画を作成する。そして、コンピュータは、作成した経路計画をロボット１２に送信する。このコンピュータは、一例として、ユーザ端末１６である。
【０１５４】
また、この実施例では、人間およびロボットのそれぞれについて、９つの移動候補点に移動した場合の利益を算出し、相互利益を算出するようにしたが、移動候補点の数は９に限定される必要はない。ＣＰＵまたはコンピュータの処理能力が高い場合には、移動候補点の数は１０以上であってもよい。また、ＣＰＵまたはコンピュータの処理能力が低い場合には、移動候補点の数は９未満にしてもよいが、移動候補点の数を減らし過ぎるのは好ましくない。
【符号の説明】
【０１５５】
１０  …システム
１２  …コミュニケーションロボット
１４  …ネットワーク
１６  …ユーザ端末
６２  …表示装置
６４  …スピーカ
６６  …マイク
７０  …眼カメラ
８０  …ＣＰＵ
１０６  …２次元距離計測装置
１０８  …３次元距離計測措置
１２０  …カメラ
１２４  …アンテナ
【図１】
2020004182.tif 000005
【図２】
2020004182.tif 000006
【図３】
2020004182.tif 000007
【図４】
2020004182.tif 000008
【図５】
2020004182.tif 000009
【図６】
2020004182.tif 000010
【図７】
2020004182.tif 000011
【図８】
2020004182.tif 000012
【図９】
2020004182.tif 000013
【図１０】
2020004182.tif 000014
【図１１】
2020004182.tif 000015
【図１２】
2020004182.tif 000016
【図１３】
2020004182.tif 000017
【図１４】
2020004182.tif 000018
【図１５】
2020004182.tif 000019
【図１６】
2020004182.tif 000020