(57)【要約】    【構成】ロボット制御システム１００は、空間を行き交う人々の移動軌跡を記憶する中央制御装置１０および空間内で買い物をするユーザの手伝いをするロボット１４などを含む。空間には、ユーザが買い物をする店舗および人々が行き交う通路が含まれる。中央制御措置１０では人々の通行量と見通し度とが算出され、第三者への邪魔さを示す邪魔度地図が作成される。ロボット１４は自身の大きさを考慮して、邪魔度地図から待機場所候補地図を作成する。そして、ユーザからロボット１４に対して待機が指示されると、ロボット１４は待機場所候補地図から待機場所を検索し、検索された待機場所に移動する    【効果】周囲の人々の邪魔になりにくい場所にロボット１４を待機させることが出来る。【選択図】図１
2014168824.tif 000002
【特許請求の範囲】
【請求項１】
施設および通路を含む空間内において人の移動軌跡を記憶し、自律移動可能なロボットを有する、ロボット制御システムであって、
前記空間内の人の移動軌跡に基づいて人の通行量を算出する第１算出手段、
前記施設から通路への見通し度を算出する第２算出手段、
通行量および見通し度に基づいて、前記空間内における邪魔度を算出する第３算出手段、
邪魔度および前記ロボットの現在位置に基づいて、第１条件に従って前記ロボットの待機場所を検索する検索手段、および
前記検索手段によって検索された待機場所に前記ロボットを移動させる移動手段を備える、ロボット制御システム。
【請求項２】
算出された邪魔度が対応付けられた地図を作成する作成手段をさらに備え、
前記第１条件は、前記地図に基づいて前記ロボットの現在位置から見通せて、現在位置から最短の場所であるという条件である、請求項１記載のロボット制御システム。
【請求項３】
前記検索手段によって前記ロボットの待機場所が検索されないとき、第２条件に従って待機場所を再検索する再検索手段をさらに備え、
前記移動手段は、前記再検索手段によって待機場所が検索されたとき、その待機場所に前記ロボットを移動させる、請求項１または２記載のロボット制御システム。
【請求項４】
前記第２条件は、前記ロボットの現在位置から見通すことが出来ない場所も含めて検索するという条件である、請求項３記載のロボット制御システム。
【請求項５】
前記再検索手段によって検索された待機場所に前記ロボットが移動するときに、その待機場所をユーザに伝達する伝達手段をさらに備える、請求項３または４記載のロボット制御システム。
【請求項６】
前記検索手段は、ユーザから待機を指示されたときに、邪魔度および前記ロボットの現在位置に基づいて前記ロボットの待機場所を検索する、請求項１ないし５のいずれかに記載のロボット制御システム。
【請求項７】
前記第１算出手段は、前記空間の通路を移動する人の通行量を算出し、
前記第３算出手段は、前記空間の通路における邪魔度を算出する、請求項１ないし６のいずれかに従属する、ロボット制御システム。
【請求項８】
施設および通路を含む空間内において人の移動軌跡を記憶し、自律移動可能なロボットを有する、ロボット制御システムのロボット制御方法であって、
前記空間内の人の移動軌跡に基づいて人の通行量を算出し、
前記施設から通路への見通し度を算出し、
通行量および見通し度に基づいて、前記空間内における邪魔度を算出し、
邪魔度および前記ロボットの現在位置に基づいて、所定の条件に従って前記ロボットの待機場所を検索し、そして
検索された待機場所に前記ロボットを移動させる、ロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボット制御システムおよびロボット制御方法に関し、特にたとえば、空間の中を移動するロボットを制御する、ロボット制御システムおよびロボット制御方法に関する。
【背景技術】
【０００２】
背景技術の一例が特許文献１に開示されている。特許文献１の自走式ロボット装置では、ロボットが外部充電装置と接続されると充電池が充電される。そして、充電中のロボットは立設状態に移動するため、ロボットが人の通行や何らかの作業の邪魔にならないようになる。
【０００３】
また、特許文献２の行動制御装置では、ユーザの位置およびユーザの方位などの情報を収集する。そして、ユーザがロボットを必要としていないと判断した場合、行動制御装置はユーザの排他的空間（視界の外など）にロボットを移動させる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−３１９４４７号公報［A47L 9/00, A47L 9/26］
【特許文献２】特開２００８−２４６６６５号公報［B25J 13/00, B25J 5/00］
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、特許文献１の自走式ロボット装置および特許文献２の行動制御装置では、ロボットの周囲を不特定多数の人の移動することについては何ら想定されていない。そのため、多くの人が行動する公共の空間で各特許文献の自走式ロボット装置および行動制御装置を利用した場合、ロボットはその空間内で邪魔にならない場所へ移動することが出来ず、ロボットが人の邪魔をしてしまう可能性がある。
【０００６】
それゆえに、この発明の主たる目的は、新規な、ロボット制御システムおよびロボット制御方法を提供することである。
【０００７】
この発明の他の目的は、ロボットを適切な場所で待機させることが出来る、ロボット制御システムおよびロボット制御方法を提供することである。
【課題を解決するための手段】
【０００８】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために記述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【０００９】
第１の発明は、施設および通路を含む空間内において人の移動軌跡を記憶し、自律移動可能なロボットを有する、ロボット制御システムであって、空間内の人の移動軌跡に基づいて人の通行量を算出する第１算出手段、施設から通路への見通し度を算出する第２算出手段、通行量および見通し度に基づいて、空間内における邪魔度を算出する第３算出手段、邪魔度およびロボットの現在位置に基づいて、第１条件に従ってロボットの待機場所を検索する検索手段、および検索手段によって検索された待機場所にロボットを移動させる移動手段を備える、ロボット制御システムである。
【００１０】
第１の発明では、ロボット制御システム（１００：実施例において対応する部分を例示する参照符号。以下、同じ。）は、たとえばＬＲＦ（１２）などを利用して空間を行き交う人々の移動軌跡を記憶することが可能である。空間には店舗などの施設および通路が含まれ、ロボット（１４）はこのような空間の中を移動する。第１算出手段（１６，Ｓ１１）は、空間を分割するグリッドを利用して空間の中を移動する人の通行量を算出する。第２算出手段（１６，Ｓ１３）は、施設の活動を妨げている状態の度合いを示す値として施設から通路への見通し度を算出する。第３算出手段（１６，Ｓ１５）は、算出された通行量および見通し度に基づいて、空間内の邪魔度を算出する。検索手段（９０，Ｓ１４５）は、算出された邪魔度とロボットの現在地に基づいて、第１条件を満たす待機場所を検索する。そして、移動手段（９０，Ｓ１４９）は、検索された待機場所にロボットを移動させる。
【００１１】
第１の発明によれば、周囲の人々の邪魔になりにくい場所にロボットを待機させることが出来る。
【００１２】
第２の発明は、第１の発明に従属し、算出された邪魔度が対応付けられた地図を作成する作成手段をさらに備え、第１条件は、地図に基づいてロボットの現在位置から見通せて、現在位置から最短の場所であるという条件である。
【００１３】
第２の発明では、作成手段（１６，９０，Ｓ１７，Ｓ１２５）は、たとえば管理人によって施設、通路および障害物の位置情報が設定された地図に対して邪魔度を対応付けた地図を作成する。そして、検索手段は、現在位置から見通すことができ、かつ現在位置から最短の場所を検索する。
【００１４】
第２の発明によれば、ロボットは現在位置から見える場所で待機するため、ユーザは待機しているロボットを見つけやすい。
【００１５】
第３の発明は、第１の発明または第２の発明に従属し、検索手段によってロボットの待機場所が検索されないとき、第２条件に従って待機場所を再検索する再検索手段をさらに備え、移動手段は、再検索手段によって待機場所が検索されたとき、その待機場所にロボットを移動させる。
【００１６】
第３の発明では、再検索手段（９０，Ｓ１５１）は、待機場所が検索されない場合に、第２条件に従って待機場所を再検索する。
【００１７】
第４の発明は、第３の発明に従属し、第２条件は、ロボットの現在位置から見通すことが出来ない場所も含めて検索するという条件である。
【００１８】
第４の発明では、再検索手段は、障害物の有無に関係なく、待機場所を検索する。
【００１９】
第３の発明および第４の発明によれば、待機場所の候補を増やすことが出来る。
【００２０】
第５の発明は、第３の発明または第４の発明のいずれかに従属し、再検索手段によって検索された待機場所にロボットが移動するときに、その待機場所をユーザに伝達する伝達手段をさらに備える。
【００２１】
第５の発明でも、伝達手段（９０，１５５）は、たとえば音声メッセージを利用して、再検索された待機場所をユーザに伝える。
【００２２】
第５の発明によれば、ユーザがロボットの位置を見失わないようにすることが出来る。
【００２３】
第６の発明は、第１の発明ないし第５の発明に従属し、検索手段は、ユーザから待機を指示されたときに、邪魔度およびロボットの現在位置に基づいてロボットの待機場所を検索する。
【００２４】
第６の発明では、検索手段は、たとえば音声コマンドによって待機が指示されたときに、ロボットの待機場所を検索する。
【００２５】
第６の発明によれば、ユーザは、任意のタイミングでロボットを待機させることが出来る。
【００２６】
第７の発明は、第１の発明ないし第６の発明のいずれかに従属し、第１算出手段は、空間の通路を移動する人の通行量を算出し、第３算出手段は、空間の通路における邪魔度を算出する。
【００２７】
第７の発明によれば、通行量および邪魔度を計算する領域を通路領域に限定することで、第１算出手段および第３算出手段の算出時間を短縮することが出来る。
【００２８】
第８の発明は、施設および通路を含む空間内において人の移動軌跡を記憶し、自律移動可能なロボット（１４）を有する、ロボット制御システム（１００）のロボット制御方法であって、空間内の人の移動軌跡に基づいて人の通行量を算出し（Ｓ１１）、施設から通路への見通し度を算出し（Ｓ１３）、通行量および見通し度に基づいて、空間内における邪魔度を算出し（Ｓ１５）、邪魔度およびロボットの現在位置に基づいて、所定の条件に従ってロボットの待機場所を検索し（Ｓ１４５）、そして検索された待機場所にロボットを移動させる（Ｓ１４９）、ロボット制御方法である。
【００２９】
第８の発明でも、第１の発明と同様、ロボットを周囲の人々の邪魔になりにくい場所に待機させることが出来る。
【発明の効果】
【００３０】
この発明によれば、周囲の人々の邪魔になりにくい場所にロボットを待機させることが出来る。
【００３１】
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００３２】
【図１】図１はこの発明の一実施例のロボット制御システムの概要を示す図解図である。
【図２】図２は図１に示す中央制御装置の電気的な構成を示すブロック図である。
【図３】図３は図１に示すロボットの外観を正面から見た図解図である。
【図４】図４は図１に示すロボットの電気的な構成を示すブロック図である。
【図５】図５は図１および図２に示すＬＲＦの計測領域を示す図解図である。
【図６】図６は図５に示すＬＲＦを利用して検出された移動軌跡の一例を示す図解図である。
【図７】図７は図１に示すＬＲＦが設置される或る空間の基本地図の一例を示す図解図である。
【図８】図８は図７に示す基本地図に基づいて作成されたグリッド地図の一例を示す図解図である。
【図９】図９は算出された通行量の一例を示す図解図である。
【図１０】図１０は図８に示すグリッド地図に基づいて作成された地図の他の一例を示す図解図である。
【図１１】図１１は算出された見通し度の一例を示す図解図である。
【図１２】図１２は図８に示すグリッド地図に基づいて作成された地図のその他の一例を示す図解図である。
【図１３】図１３は図１に示すロボットの待機場所の候補を示す地図の一例を示す図解図である。
【図１４】図１４は図２に示すロボットが待機場所を検索して移動する様子を示す図解図であり、図１４（Ａ）は移動するユーザにロボットが追従している状態を示し、図１４（Ｂ）はユーザがロボットに対して待機を指示している様子を示し、図１４（Ｃ）はユーザが店舗へ移動しロボットが待機場所へ移動している様子を示し、図１４（Ｄ）はロボットがユーザを待っている状態を示す。
【図１５】図１５は図２に示す中央制御装置のメモリのメモリマップの一例を示す図解図である。
【図１６】図１６は図４に示すロボットのメモリのメモリマップの一例を示す図解図である。
【図１７】図１７は図２に示す中央制御装置のプロセッサの移動軌跡蓄積処理を示すフロー図である。
【図１８】図１８は図２に示す中央制御装置のプロセッサの邪魔度算出処理を示すフロー図である。
【図１９】図１９は図２に示す中央制御装置のプロセッサの通行量算出処理を示すフロー図である。
【図２０】図２０は図２に示す中央制御装置のプロセッサの見通し度算出処理を示すフロー図である。
【図２１】図２１は図４に示すロボットのプロセッサの待機場所候補地図作成処理を示すフロー図である。
【図２２】図２２は図４に示すロボットのプロセッサの検索制御処理を示すフロー図である。
【図２３】図２３は図４に示すロボットのプロセッサの検索処理を示すフロー図である。
【図２４】図２４は図４に示すロボットのプロセッサの再検索処理を示すフロー図である。
【発明を実施するための形態】
【００３３】
図１を参照して、この実施例のロボット制御システム１００は、ＬＲＦ１２ａ，１２ｂなどを含む数台のＬＲＦが接続される中央制御装置１０およびロボット１４を有する。ＬＲＦ１２ａ，１２ｂは、人（ユーザ）が任意に移動することができる空間（環境）に設置される。人が任意に移動する空間は、ショッピングモール、会社のフロア、博物館またはアトラクション会場などであり、ＬＲＦ１２ａ，１２ｂは様々な空間に設置される。
【００３４】
中央制御装置１０は、一定時間（たとえば、１秒）毎にＬＲＦ１２ａ，１２ｂによって、任意に移動する人の位置を検出し、連続して検出された位置を移動軌跡として記憶する。また、中央制御装置１０は、ネットワーク１０００を介してロボット１４と無線通信を行い、必要であればロボット１４の行動を制御する。空間の中で位置が検出された人には、検出された順番に人ＩＤが付与される。たとえば、最初に検出された人にはＩＤ「００１」が付与され、次に検出された人にはＩＤ「００２」が付与される。
【００３５】
ロボット１４は、相互作用指向のロボット（コミュニケーションロボット）でもあり、人のようなコミュニケーションの対象との間で、身振り手振りのような身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を備えている。また、ロボット１４はコミュニケーションの一環として、ユーザの買い物の手伝いなどのサービスを行う。また、ロボット１４は、サービスを行う上で必要であれば、空間内を自律的に移動したり、中央制御装置１０が付与する行動命令に基づいて動作したりする。
【００３６】
なお、図１では簡単のため、１人しか図示していないが、中央制御装置１０はさらに多くの人の位置を検出し、位置データを記憶することができる。さらに、ロボット１４も同様に１台しか示していないが、中央制御装置１０は２台以上のロボット１４を同時に管理することができる。
【００３７】
図２は中央制御装置１０の電気的な構成を示すブロック図である。図２を参照して、中央制御装置１０は、ＬＲＦ１２ａ，１２ｂおよびプロセッサ１６などを含む。プロセッサ１６は、マイクロコンピュータ或いはＣＰＵと呼ばれることもある。プロセッサ１６には、先述したＬＲＦ１２ａおよびＬＲＦ１２ｂに加えて、他のＬＲＦ１２が接続される。なお、ＬＲＦ１２ａ，１２ｂを区別する必要がない場合、単に「ＬＲＦ１２」と言う。
【００３８】
プロセッサ１６にはメモリ１８、ディスプレイ２０、入力装置２２、通信ＬＡＮボード２４が接続されると共に、移動軌跡データベース（ＤＢ：Ｄａｔａｂａｓｅ）２８も接続される。
【００３９】
ＬＲＦ１２は、レーザーを照射し、物体（人も含む）に反射して戻ってくるまでの時間から当該物体までの距離を計測するものである。たとえば、トランスミッタ（図示せず）から照射したレーザーを回転ミラー（図示せず）で反射させて、前方を扇状に一定角度（たとえば、０．５度）ずつスキャンする。ここで、ＬＲＦ１２としては、Ｈｏｋｕｙｏ社製のレーザーレンジファインダ（型式  ＵＴＭ）を用いることができる。このレーザーレンジファインダを用いた場合には、距離８ｍを±１５ｍｍ程度の誤差で計測可能である。
【００４０】
メモリ１８はＲＯＭ，ＨＤＤおよびＲＡＭを含む。ＲＯＭおよびＨＤＤには、中央制御装置１０の動作を制御するための制御プログラムが予め記憶される。また、ＲＡＭは、プロセッサ１６のワークメモリやバッファメモリとして用いられる。
【００４１】
ディスプレイ２０は中央制御装置１０の管理用ＧＵＩなどを表示する。入力装置２２はマウスおよびキーボードなどを含む。管理者は、ディスプレイ２０に表示されるＧＵＩを確認しながら、入力装置２２のキーボードやマウスを利用して、中央制御装置１０を操作する。
【００４２】
通信ＬＡＮボード２４は、たとえばＤＳＰで構成され、プロセッサ１６から与えられた送信データを無線通信装置２６に与え、無線通信装置２６は送信データを、ネットワーク１０００を介してロボット１４に送信する。たとえば、送信データは、ロボット１４の自立移動に必要なデータや、サービスを行うために必要なデータおよびロボット１４に指示する行動命令の信号（コマンド）などである。また、通信ＬＡＮボード２４は、無線通信装置２６を介してデータを受信し、受信したデータをプロセッサ１６に与える。移動軌跡ＤＢ２８には、ＬＲＦ１２によって検出された人の移動軌跡が記憶される。
【００４３】
図３はこの実施例のロボット１４の外観を示す正面図である。図３を参照して、ロボット１４は台車４０を含み、台車４０の下面にはロボット１４を自律移動させる２つの車輪４２および１つの従輪４４が設けられる。２つの車輪４２は車輪モータ４６（図４参照）によってそれぞれ独立に駆動され、台車４０すなわちロボット１４を前後左右の任意方向に動かすことができる。また、従輪４４は車輪４２を補助する補助輪である。したがって、ロボット１４は、配置された空間内を自律制御によって移動可能である。
【００４４】
台車４０の上には、円柱形のセンサ取り付けパネル４８が設けられ、このセンサ取り付けパネル４８には、多数の赤外線距離センサ５０が取り付けられる。これらの赤外線距離センサ５０は、センサ取り付けパネル４８すなわちロボット１４の周囲の物体（人や障害物など）との距離を測定するものである。
【００４５】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、小型のＬＲＦや、超音波距離センサおよびミリ波レーダなどを用いることもできる。
【００４６】
センサ取り付けパネル４８の上には、胴体５２が直立するように設けられる。また、胴体５２の前方中央上部（人の胸に相当する位置）には、上述した赤外線距離センサ５０がさらに設けられ、ロボット１４の前方の主としてユーザとの距離を計測する。また、胴体５２には、その側面側上端部のほぼ中央から伸びる支柱５４が設けられ、支柱５４の上には、全方位カメラ５６が設けられる。全方位カメラ５６は、ロボット１４の周囲を撮影するものであり、後述する眼カメラ８０とは区別される。この全方位カメラ５６としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ５０および全方位カメラ５６の設置位置は、当該部位に限定されず適宜変更され得る。
【００４７】
胴体５２の両側面上端部（人の肩に相当する位置）には、それぞれ、肩関節５８Ｒおよび肩関節５８Ｌによって、上腕６０Ｒおよび上腕６０Ｌが設けられる。図示は省略するが、肩関節５８Ｒおよび肩関節５８Ｌは、それぞれ、直交する３軸の自由度を有する。すなわち、肩関節５８Ｒは、直交する３軸のそれぞれの軸廻りにおいて上腕６０Ｒの角度を制御できる。肩関節５８Ｒの或る軸（ヨー軸）は、上腕６０Ｒの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節５８Ｌは、直交する３軸のそれぞれの軸廻りにおいて上腕６０Ｌの角度を制御できる。肩関節５８Ｌの或る軸（ヨー軸）は、上腕６０Ｌの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。
【００４８】
また、上腕６０Ｒおよび上腕６０Ｌのそれぞれの先端には、肘関節６２Ｒおよび肘関節６２Ｌが設けられる。図示は省略するが、肘関節６２Ｒおよび肘関節６２Ｌは、それぞれ１軸の自由度を有し、この軸（ピッチ軸）の軸回りにおいて前腕６４Ｒおよび前腕６４Ｌの角度を制御できる。
【００４９】
前腕６４Ｒおよび前腕６４Ｌのそれぞれの先端には、人の手に相当する球体６６Ｒおよび球体６６Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車４０の前面、肩関節５８Ｒと肩関節５８Ｌとを含む肩に相当する部位、上腕６０Ｒ、上腕６０Ｌ、前腕６４Ｒ、前腕６４Ｌ、球体６６Ｒおよび球体６６Ｌには、それぞれ、接触センサ６８（図４で包括的に示す）が設けられる。台車４０の前面の接触センサ６８は、台車４０への人や他の障害物の接触を検知する。したがって、ロボット１４は、自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪４２の駆動を停止してロボット１４の移動を急停止させることができる。また、その他の接触センサ６８は、当該各部位に触れたかどうかを検知する。なお、接触センサ６８の設置位置は、当該部位に限定されず、適宜な位置（人の胸、腹、脇、背中および腰に相当する位置）に設けられてもよい。
【００５０】
胴体５２の中央上部（人の首に相当する位置）には首関節７０が設けられ、さらにその上には頭部７２が設けられる。図示は省略するが、首関節７０は、３軸の自由度を有し、３軸の各軸廻りに角度制御可能である。或る軸（ヨー軸）はロボット１４の真上（鉛直上向き）に向かう軸であり、他の２軸（ピッチ軸、ロール軸）は、それぞれ、それと異なる方向で直交する軸である。
【００５１】
頭部７２には、人の口に相当する位置に、スピーカ７４が設けられる。スピーカ７４は、ロボット１４が、それの周辺の人に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク７６Ｒおよびマイク７６Ｌが設けられる。以下、右のマイク７６Ｒと左のマイク７６Ｌとをまとめてマイク７６と言うことがある。マイク７６は、周囲の音、とりわけコミュニケーションを実行する対象である人の音声を取り込む。さらに、人の目に相当する位置には、眼球部７８Ｒおよび眼球部７８Ｌが設けられる。眼球部７８Ｒおよび眼球部７８Ｌは、それぞれ眼カメラ８０Ｒおよび眼カメラ８０Ｌを含む。以下、右の眼球部７８Ｒと左の眼球部７８Ｌとをまとめて眼球部７８と言うことがある。また、右の眼カメラ８０Ｒと左の眼カメラ８０Ｌとをまとめて眼カメラ８０と言うことがある。
【００５２】
眼カメラ８０は、ロボット１４に接近した人の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ８０は、上述した全方位カメラ５６と同様のカメラを用いることができる。たとえば、眼カメラ８０は、眼球部７８内に固定され、眼球部７８は、眼球支持部（図示せず）を介して頭部７２内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、２軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この２軸の一方は、頭部７２の上に向かう方向の軸（ヨー軸）であり、他方は、一方の軸に直交しかつ頭部７２の正面側（顔）が向く方向に直行する方向の軸（ピッチ軸）である。眼球支持部がこの２軸の各軸廻りに回転されることによって、眼球部７８ないし眼カメラ８０の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ７４、マイク７６および眼カメラ８０の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【００５３】
このように、この実施例のロボット１４は、車輪４２の独立２軸駆動、肩関節５８の３自由度（左右で６自由度）、肘関節６２の１自由度（左右で２自由度）、首関節７０の３自由度および眼球支持部の２自由度（左右で４自由度）の合計１７自由度を有する。
【００５４】
図４はロボット１４の電気的な構成を示すブロック図である。この図４を参照して、ロボット１４は、プロセッサ９０を含む。プロセッサ９０は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス９２を介して、メモリ９４、モータ制御ボード９６、センサ入力／出力ボード９８、音声入力／出力ボード１１０および通信ＬＡＮボード１２２に接続される。
【００５５】
メモリ９４はＲＯＭおよびＲＡＭを含む。ＲＯＭには、ロボット１４の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力（センサ情報）を検知するための検知プログラムや、外部コンピュータ（中央制御装置１０）との間で必要なデータやコマンドを送受信するための通信プログラムなどが記憶される。また、ＲＡＭは、プロセッサ９０のワークメモリやバッファメモリとして用いられる。
【００５６】
モータ制御ボード９６は、たとえばＤＳＰで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、右眼球部７８Ｒの２軸のそれぞれの角度を制御する２つのモータ（図４では、まとめて「右眼球モータ１１２」と示す）の回転角度を制御する。同様に、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、左眼球部７８Ｌの２軸のそれぞれの角度を制御する２つのモータ（図４では、まとめて「左眼球モータ１１４」と示す）の回転角度を制御する。
【００５７】
また、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、肩関節５８Ｒの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節６２Ｒの角度を制御する１つのモータとの計４つのモータ（図４では、まとめて「右腕モータ１１６」と示す）の回転角度を制御する。同様に、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、肩関節５８Ｌの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節６２Ｌの角度を制御する１つのモータとの計４つのモータ（図４では、まとめて「左腕モータ１１８」と示す）の回転角度を制御する。
【００５８】
さらに、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、首関節７０の直交する３軸のそれぞれの角度を制御する３つのモータ（図４では、まとめて「頭部モータ１２０」と示す）の回転角度を制御する。
【００５９】
そして、モータ制御ボード９６は、プロセッサ９０からの制御データを受け、車輪４２を駆動する２つのモータ（図４では、まとめて「車輪モータ４６」と示す）の回転角度を制御する。なお、この実施例では、車輪モータ４６を除くモータは、制御を簡素化するためにステッピングモータ（すなわち、パルスモータ）を用いる。ただし、車輪モータ４６と同様に直流モータを用いるようにしてもよい。また、ロボット１４の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更されてもよい。たとえば、他の実施例では、エアアクチュエータなどが適用されてもよい。
【００６０】
センサ入力／出力ボード９８は、モータ制御ボード９６と同様に、ＤＳＰで構成され、各センサからの信号を取り込んでプロセッサ９０に与える。すなわち、赤外線距離センサ５０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード９８を通じてプロセッサ９０に入力される。また、全方位カメラ５６からの映像信号が、必要に応じてセンサ入力／出力ボード９８で所定の処理を施してからプロセッサ９０に入力される。眼カメラ８０からの映像信号も、同様に、プロセッサ９０に入力される。また、上述した複数の接触センサ６８（図４では、まとめて「接触センサ６８」と示す）からの信号がセンサ入力／出力ボード９８を介してプロセッサ９０に与えられる。
【００６１】
音声入力／出力ボード１１０もまた、同様に、ＤＳＰで構成され、プロセッサ９０から与えられる音声合成データに従った音声または声がスピーカ７４から出力される。また、マイク７６からの音声入力が、音声入力／出力ボード１１０を介してプロセッサ９０に与えられる。
【００６２】
通信ＬＡＮボード１２２は、たとえばＤＳＰで構成され、プロセッサ９０から与えられた送信データを無線通信装置１２４に与え、無線通信装置１２４は送信データを、ネットワーク１０００を介して外部コンピュータ（中央制御装置１０）に送信する。また、通信ＬＡＮボード１２２は、無線通信装置１２４を介してデータを受信し、受信したデータをプロセッサ９０に与える。たとえば、送信データとしては、全方位カメラ５６および目カメラ８０によって撮影された周囲の映像データなどである。
【００６３】
次に、ＬＲＦ１２について詳細に説明する。図５を参照して、ＬＲＦ１２の計測範囲は、半径Ｒ（Ｒ≒８m）の半円形状（扇形）で示される。つまり、ＬＲＦ１２は、その正面方向を中心とした場合に、左右９０度の方向を所定の距離以内で計測可能である。
【００６４】
また、使用しているレーザーは、日本工業規格 ＪＩＳ  Ｃ  ６８０２「レーザー製品の安全基準」におけるクラス１レーザーであり、人の眼に対して影響を及ぼさない安全なレベルである。また、この実施例では、ＬＲＦ１２のサンプリングレートを３７Ｈｚとした。これは、歩行するなどにより移動する人の位置を連続して検出するためである。
【００６５】
さらに、ＬＲＦ１２の各々は、計測範囲が重なるように配置され、図示は省略するが、床面から約９０cmの高さに固定される。この高さは、被験者の胴体と腕（両腕）とを検出可能とするためであり、たとえば、日本人の成人の平均身長から算出される。したがって、中央制御装置１０を設ける場所（地域ないし国）や被験者の年齢ないし年代（たとえば、子供，大人）に応じて、ＬＲＦ１２を固定する高さを適宜変更するようにしてよい。
【００６６】
このような構成の中央制御装置１０では、プロセッサ１６がＬＲＦ１２からの出力（距離データ）に基づいて、パーティクルフィルタを用いて、人の現在位置の変化を推定する。そして、推定された位置の変化が移動軌跡として記憶される。
【００６７】
たとえば、図６を参照して、ＬＲＦ１２ａ，１２ｂは互いに向い合せに設置され、ＬＲＦ１２ａ，１２ｂの計測範囲が重なる範囲は斜線が付されている。斜線の範囲は検出領域とされ、この検出領域内では人の位置が連続的に検出される。そして、連続的に検出された位置の変化が移動軌跡となる。つまり、移動軌跡データは、複数の位置データから構成される。なお、検出領域にはｘ−ｙ座標が設定され、人の位置データは（ｘ，ｙ）の座標で示すことができる。
【００６８】
図７は複数のＬＲＦ１２が設置される空間の基本地図である。図７を参照して、地図が対応する空間は或るショッピングモールの一部である。空間には、店舗などの施設および通路などが含まれる。店舗の領域（以下、店舗領域と言う。）Ｓには、人の視線を遮る壁（障害物）が含まれる。通路の領域（以下、通路領域と言う。）Ａには、エスカレータが設置されている対象外領域Ｎ１、ＬＲＦ１２の検出範囲の外である対象外領域Ｎ２、後述する通行量などの計算を行わない対象外領域Ｎ３および通路上に置かれたベンチＢ１，Ｂ２などが含まれる。また、複数のＬＲＦ１２が通路領域Ａに設置されており、通路領域Ａの略全体が検出領域となる。そのため、移動軌跡ＤＢ２８には、ショッピングモールの通路を行き交う人々の移動軌跡が記憶される。なお、基本地図上の店舗領域Ｓおよび壁などは中央制御装置の管理者によって予め設定される。また、本実施例では、２ｍ以上の高さの構造物を「壁」として設定している。ただし、ガラスの構造物（ショーケース）は人の視線を遮らないため「壁」として設定しない。
【００６９】
ここで、本実施例では、通路を行き交う人々の通行量および店舗の活動を考慮してロボット１４の待機場所の候補を予め決めておき、ユーザから待機が指示されたときにロボット１４が適切な場所で待機するようにする。
【００７０】
図８は通路領域Ａをグリッドによって分割したグリッド地図である。通路領域Ａは、一辺が一定の長さ（たとえば、３３ｃｍ）のグリッドによって分割されている。本実施例では、このグリッドを利用して通路領域Ａの通行量および見通し度を算出する。通行量は、或るグリッドにおける通路を行き交う人々の量を示す値である。見通し度は、「客が店舗内を見る」または「店員が客を見る」と言うことが可能であるかを示す値であり、店舗の活動に対する邪魔さを表現することが出来る。たとえば、見通し度が高い位置でロボット１４が待機した場合、店員は通路を見ることが出来ず、客は店舗の中を見ることが出来ないため、ロボット１４の待機は店舗の活動を邪魔することになる。
【００７１】
まず、空間を行き交う人々の通行量は、グリッド地図の各グリッドにおいて、所定時間（たとえば、５時間）Ｔの間に人が通った回数をカウントすることで算出することが出来る。具体的には、まずグリッド地図の各グリッドと対応する二次元配列を設定し、所定時間Ｔの間に記憶された全ての人の移動軌跡が移動軌跡ＤＢ２８から読み出される。次に、或る人ｐに着目して、或る時刻ｔの移動軌跡の座標に最も近いグリッドと対応する二次元配列の値をインクリメントする。そして、この処理を或る人ｐに対して或る時刻ｔから所定周期Δｔ（たとえば、１秒）毎に繰り返す。これにより、或る人ｐにおける所定時間Ｔの移動軌跡がグリッドに反映される。そして、これらの処理を全ての人に対して行うことで、所定時間Ｔ内に通路領域Ａを通った全ての人の移動軌跡が、グリッドに反映される。
【００７２】
また、全ての人の移動軌跡をグリッドに反映した後、二次元配列の各値を、移動軌跡を観測した時間および空間に依存しない値とする。具体的には、まず各グリッド（二次元配列）の値を所定時間Ｔで割ることで、移動軌跡を観測した時間に依存しない値とする。次に、各グリッドの平均値および標準偏差を求め、各グリッドの値を数１に示す数式によって標準化することで、移動軌跡を観測した空間に依存しない値とする。そして、これらの計算を行うことで得られた値を通行量とする。
【００７３】
[数１]
2014168824.tif 000003
【００７４】
たとえば、或る複数のグリッド（７×７）において、左下から右上、または右上から左下に移動する人が多い場合、複数のグリッドの通行量は図９のように示される。つまり、右上と左下との対角線上のグリッドにおいて通行量が高く示される。
【００７５】
図１０は通路領域Ａの通行量を示すグリッド地図である。なお、グリッド線は簡単のため省略する。図１０から分かるように、右側の入り口周辺の通行量が特に高くなっている。一方、店舗の壁付近では通行量が低くなっている。
【００７６】
続いて、見通し度は、店舗領域Ｓから通路領域Ａの各グリッドを見通すことが出来るかを判断することで算出することが出来る。具体的には、まず店舗領域Ｓも通路領域Ａと同じ大きさのグリッドで分割し、通路領域Ａおよび店舗領域Ｓのグリッドに対応する新しい二次元配列を設定する。次に、店舗領域Ｓの或るグリッドｓから所定距離（たとえば、２．５ｍ）以内に位置する通路領域Ａの或るグリッドａにおいて、２つのグリッド間に障害物（壁）が存在していなければ、対応する二次元配列の値をインクリメントする。そして、この処理を店舗領域Ｓの全てのグリッドに対して施す。そして、このようにしてカウントされた通路領域Ａの各グリッドの値を見通し度とする。
【００７７】
たとえば、或る複数のグリッド（７×５）において、店舗領域Ｓから通路領域Ａを見たときの見通し度は図１１のように示される。つまり、店舗領域Ｓと接している通路領域Ａのグリッドａの見通し度が高くなり、店舗領域Ｓから離れるにつれて見通し度が低くなる。また、店舗領域Ｓと近い通路領域Ａのグリッドａであっても、途中に障害物（壁）が存在している場合は、見通し度は低くなる。
【００７８】
図１２は見通し度を示すグリッド地図である。なお、図１０のグリッド地図と同様、グリッド線は簡単のため省略する。図１２から分かるように、店舗の入り口付近では見通し度が高くなっており、障害物（壁）の周囲は見通し度が低くなっている。つまり、店舗の入り口付近では店舗の活動に対する邪魔さが高くなり、店舗の壁などの周辺では店舗の活動に対する邪魔さが低くなることが分かる。
【００７９】
続いて、このようにして算出された通行量および見通し度を待機場所計算モデルに入力することで、第三者への邪魔さを示すグリッド地図を作製する。この待機場所計算モデルは、複数の人へアンケートから得られた「待機場所として適切な場所」または「待機場所として不適切な場所」を教師データとしてＳＶＭ(Support Vector Machine)に学習させることで予め作成される。また、待機場所計算モデルは、上述のアンケート結果に近似するようにパラメータチューニングが行われている。なお、待機場所計算モデルの作成においてＳＶＭを用いたため、空間に依存しないパラメータチューニングが可能となった。
【００８０】
このようにして作成された「第三者への邪魔さを示すグリッド地図（以下、単に邪魔度地図という。）」では、各グリッドに邪魔度が設定されている。本実施例の邪魔度は、「０」〜「１」の値をとり、「０」に近いほど第三者へ与える影響が小さく、「１」に近いほど第三者へ与える影響が大きい。つまり、「１」が設定されている場所でロボット１４が待機すると人々はロボット１４を邪魔だと感じ、「０」が設定されている場所でロボット１４が待機すると人々はロボット１４を邪魔だと感じにくくなる。
【００８１】
ここで、ロボット１４は１つのグリッドには収まりきらないので、１グリッドの邪魔度を基準として待機場所を検索した場合、検索されたグリッド（待機場所）にロボット１４が移動すると邪魔度が高いグリッドにロボット１４がはみ出してしまう可能性がある。そこで、ロボット１４の大きさに基づいて周囲グリッド（ここでは、９つのグリッド）を設定することで、ロボット１４の大きさに対応できるようにしている。具体的には、邪魔度地図において、グリッド毎に、周囲グリッドの邪魔度の平均値を中心グリッドに再設定する。なお、ロボット１４が１つのグリッドからはみ出さない場合、邪魔度の再設定は不要となる。また、他の実施例では周囲グリッドの値は「９」より小さくてもよいし、大きくてもよい。
【００８２】
図１３は邪魔度が再設定（再計算）された結果に基づいて作成された待機場所候補地図である。この地図において、塗りつぶされているグリッドが「待機場所として適切な場所」を示し、塗りつぶされていないグリッドが「待機場所として不適切な場所」を示す。図１３から分かるように右中央の入り口付近の壁、下側中央の店舗の壁の近くが待機場所として適切であると示されている。一方、入り口の中央、通路の中央および店舗の入り口の前などは、待機場所として不適切だと示されている。
【００８３】
また、待機場所候補地図はロボット１４に記憶されているものであるため、他の地図とは違ってロボット１４の初期位置Ｈが含まれる。たとえば、客は初期位置Ｈでロボット１４とコミュニケーションを行うことで、買い物の手伝いを依頼することが可能である。
【００８４】
図１４（Ａ）−（Ｄ）を参照して、ユーザとロボット１４との実際の行動について説明する。ユーザの後をロボット１４が追従している状態で、ユーザが立ち止り「ちょっと待っててね」とロボット１４に対して待機を指示すると、ロボット１４は待機場所候補地図に基づいて待機場所の検索を開始する。待機場所の検索処理では、複数の待機場所の候補位置のうち、現在位置から候補位置を見通せて、ロボット１４（現在位置）から最も近い場所（第１条件）が選択される。ここでは、ロボット１４右下の候補位置が選択され、ロボット１４は待機場所へ移動し、ユーザは店舗の中へ入っていく。そして、ロボット１４はユーザが戻ってくるまで、待機場所で待機することになる。つまり、周囲の人々の邪魔になりにくい場所でロボット１４を待機させることが出来る。また、ユーザは、任意のタイミングでロボット１４を待機させることが出来る。そして、ロボット１４は現在位置から見える場所で待機するため、ユーザは待機しているロボット１４を見つけやすい。
【００８５】
また、待機場所が検索されない場合、条件を変更して待機場所が再検索される。具体的には、複数の待機場所の候補位置のうち、現在位置から候補位置を見通せない位置も含めて、ロボット１４から最も近い場所が検索される（第２条件）。つまり、待機場所の候補を増やすことが出来る。そして、待機場所が再検索によって見つかった場合、ロボット１４は待機場所を示すメッセージ（たとえば、「あの柱の向こうにいるよ」）をユーザに伝達してから、待機場所へ移動する。これにより、ユーザは、ロボット１４の位置を見失いにくくなる。
【００８６】
なお、再検索によって待機場所が見つけられない場合、ロボット１４は初期位置Ｈに戻る。このとき、ロボット１４は初期位置に戻ることをユーザに伝える。ただし、他の実施例では、初期位置ではなく、ユーザによって予め指定された位置に移動するようにしてもよい。
【００８７】
また、本実施例では、通行量および邪魔度を計算する領域を通路領域Ａに限定することで、待機場所を検索する処理などの処理時間を短縮している。
【００８８】
以下、図１５に示す中央制御装置１０のメモリマップ、図１６に示すロボット１４のメモリマップ、図１７−図２４に示すフロー図を用いて、本実施例の概要を説明する。
【００８９】
図１５は図２に示す中央制御装置１０におけるメモリ１８のメモリマップの一例を示す図解図である。図１５で示すように、メモリ１８はプログラム記憶領域３０２およびデータ記憶領域３０４を含む。プログラム記憶領域３０２には、中央制御装置１０を動作させるためのプログラムとして、移動軌跡蓄積プログラム３１０および邪魔度算出プログラム３１２などが記憶される。また、邪魔度算出プログラム３１２は、通行量算出プログラム３１２ａおよび見通し度算出プログラム３１２ｂをサブルーチンとして含む。
【００９０】
移動軌跡蓄積プログラム３１０は、人の位置を連続して検出することで得た移動軌跡を、移動軌跡ＤＢ２８に記憶するためのプログラムである。邪魔度計算プログラム３１２は、通行量および見通し度に基づいて邪魔度を算出するためのプログラムである。通行量算出プログラム３１２ａは通行量を算出するためのプログラムである。見通し度算出プログラム３１２ｂは見通し度を算出するためのプログラムである。
【００９１】
なお、図示は省略するが、中央制御装置１０を動作させるためのプログラムには、ＬＲＦ１２によって得た距離を位置（座標）データに変換するためのプログラムなども含まれる。
【００９２】
データ記憶領域３０４には、通行量地図データ３３０、見通し度地図データ３３２および邪魔度地図データ３３４などが記憶される。通行量地図データ３３０は、図１０に示すように通行量を示す地図のデータである。見通し度地図データ３３２は、図１２に示すように見通し度を示す地図のデータである。邪魔度地図データ３３６は、各グリッドに邪魔度が対応付けられている地図のデータである。
【００９３】
なお、図示は省略するが、データ記憶領域３０４には、基本地図のデータが記憶されると共に、様々な計算の結果を一時的に格納するバッファや、中央制御装置１０の動作に必要な他のカウンタやフラグなども設けられる。
【００９４】
図１６は図４に示すロボット１４におけるメモリ９４のメモリマップの一例を示す図解図である。メモリ９４はプログラム記憶領域４０２およびデータ記憶領域４０４を含む。プログラム記憶領域４０２にはロボット１４を動作させるためのプログラムとして、待機場所候補地図作成プログラム４１０および検索制御プログラム４１２などが記憶される。また、検索制御プログラム４１２は、検索プログラム４１２ａおよび再検索プログラム４１２ｂをサブルーチンとして含む。
【００９５】
待機場所候補地図作成プログラム４１０は図１３に示すような地図を作成するためのプログラムである。検索制御プログラム４１２は待機場所を検索するロボット１４を制御するためのプログラムである。検索プログラム４１２ａは待機場所を検索するプログラムである。再検索プログラム４１２ｂは最初の検索によって待機場所を見つけられなかった場合に待機場所を再検索するためのプログラムである。
【００９６】
なお、図示は省略するが、ロボット１４を動作させるためのプログラムには、ユーザとのコミュニケーションを行うためのプログラムなども含まれる。
【００９７】
データ記憶領域４０４には、現在位置バッファ４３０および通信バッファ４３２などが設けられると共に、待機場所候補地図データ４３４などが記憶される。現在位置バッファ４３０には、ロボット１４の現在位置を示す座標のデータが一時的に記憶される。通信バッファ４３２には、中央制御装置１０との通信によって得られたデータが一時的に記憶される。待機場所候補地図データ４３４は、図１３に示すように、待機場所の候補を示す地図データであり、各グリッドには再計算された邪魔度が対応付けられている。
【００９８】
なお、図示は省略するが、データ記憶領域３０４には、コミュニケーションに必要な音声データなどが記憶されると共に、様々な計算の結果を一時的に格納するバッファや、ロボット１４の動作に必要な他のカウンタやフラグなども設けられる。
【００９９】
中央制御装置のプロセッサ１６は、Ｌｉｎｕｘ（登録商標）ベースのＯＳや、その他のＯＳの制御下で、図１７に示す移動軌跡蓄積処理、図１８に示す邪魔度算出処理、図１９に示す通行量算出処理および図２０に示す見通し度算出処理などを含む、複数のタスクを処理する。
【０１００】
図１７は移動軌跡蓄積処理のフロー図である。中央制御装置１０の電源がオンにされると、中央制御装置１０のプロセッサ１６は、ステップＳ１で現在時刻を記憶し、ステップＳ３で人の位置情報を検出する。つまり、ステップＳ１で記憶された時刻に対応して、検出領域内に存在する人々の位置座標が検出される。続いて、ステップＳ５でプロセッサ１６は、現在時刻および位置情報を記憶する。つまり、移動軌跡ＤＢ２８に現在時刻および位置情報が記憶される。続いて、ステップＳ７でプロセッサ１６は、終了命令か否かを判断する。たとえば、管理者によって中央制御装置１０の電源をオフにする操作がされたかを判断する。ステップＳ７で“ＮＯ”であれば、つまり、終了命令がなければステップＳ１に戻る。そして、ステップＳ１−Ｓ７の処理が繰り返される。つまり、移動軌跡ＤＢ２８には検出領域内の人々の位置が繰り返して記憶される。一方、ステップＳ７で“ＹＥＳ”であれば、たとえば終了操作がされると、移動軌跡蓄積処理は終了する。なお、このようにして繰り返して記憶された人々の位置の変化が移動軌跡として読み出される。
【０１０１】
図１８は邪魔度算出処理のフロー図である。たとえば、中央制御装置１０の管理者によって邪魔度を算出する操作がされると、プロセッサ１６はステップＳ１１で通行量算出処理を実行する。続いて、ステップＳ１３でプロセッサ１６は、見通し度算出処理を実行する。これらの処理については図１９および図２０に示すフロー図を用いて詳細に説明するため、ここでの説明は省略する。
【０１０２】
続いて、ステップＳ１５でプロセッサ１６は、邪魔度を算出する。つまり、待機場所計算モデルに対して、上述の２つのステップで算出された通行量および見通し度を入力し、邪魔度を求める。続いて、ステップＳ１７でプロセッサ１６は、邪魔度地図を作成する。つまり、算出された邪魔度を各グリッドに対応付けた邪魔度地図を作成する。また、作成された邪魔度地図は、邪魔度地図データ３３４としてメモリ１８に記憶される。そして、ステップＳ１７の処理が終了すると、邪魔度算出処理は終了する。
【０１０３】
なお、ステップＳ１１の処理を実行するプロセッサ１６は第１算出手段として機能し、ステップＳ１３の処理を実行するプロセッサ１６は第２算出手段として機能し、ステップＳ１５の処理を実行するプロセッサ１６は第３算出手段として機能する。また、ステップＳ１７の処理を実行するプロセッサ１７は作成手段として機能する。
【０１０４】
図１９は通行量算出処理のフロー図である。邪魔度算出処理でステップＳ１１が実行されると、ステップＳ３１でプロセッサ１６は、所定時間Ｔの間に記憶された全ての人の移動軌跡を取得する。たとえば、所定時間Ｔが１３時から１８時まで５時間である場合、プロセッサ１６は、その時間帯に記憶された移動軌跡を移動軌跡ＤＢ２８から取得する。
【０１０５】
続いて、ステップＳ３３でプロセッサ１６は、変数ｐを初期化する。変数ｐは移動軌跡と対応する人を指定するための変数であり、後述する処理で任意の人を指定するために変数ｐは初期化される。続いて、ステップＳ３５でプロセッサ１６は、時刻ｔを初期化する。時刻ｔは移動軌跡の座標を指定するための変数として利用される。また、所定時間Ｔが１３時から５時間であれば、時刻ｔは１３時とされる。
【０１０６】
続いて、ステップＳ３７でプロセッサ１６は、時刻ｔにおける人ｐの位置に最も近いグリッドをインクリメントする。たとえば、人ｐに対応する移動軌跡から時刻ｔと対応付けられている座標を特定し、その座標と最も近いグリッドと対応する二次配列の値がインクリメントされる。続いて、ステップＳ３９でプロセッサ１６は、時刻ｔを更新する。たとえば、数２に従う式に基づいて時刻ｔが更新される。
【０１０７】
[数２]
時刻ｔ＝時刻ｔ＋所定周期Δｔ
たとえば、時刻ｔが１３時であり、所定周期Δｔが１秒であれば、時刻ｔは１３時１秒に更新される。
【０１０８】
続いて、ステップＳ４１でプロセッサ１６は、所定時間Ｔ内の人ｐの移動軌跡がグリッドに反映されたか否かを判断する。つまり、プロセッサ１６は、時刻ｔの値が所定時間Ｔの最後の時刻（たとえば、１８時）と一致したかを判断する。ステップＳ４１で“ＮＯ”であれば、つまり人ｐの移動軌跡が全て反映されていなければ、ステップＳ３７に戻る。
【０１０９】
一方、ステップＳ４１で“ＹＥＳ”であれば、つまり人ｐの移動軌跡が全て反映されると、ステップＳ４３でプロセッサ１６は、全ての人の移動軌跡がグリッドに反映されたか否かを判断する。つまり、プロセッサ１６は所定時間Ｔの間に検出された全ての人の移動軌跡に基づいて、各グリッドの値がインクリメントされたかを判断する。具体的には、プロセッサ１６は変数ｐが検出された人の最大値と一致したかを判断する。ステップＳ４３で“ＮＯ”であれば、つまり全ての人の移動軌跡がグリッドに反映されていなければ、ステップＳ４５でプロセッサ１６は変数ｐをインクリメントして、ステップＳ３５に戻る。つまり、次の人を指定するために、変数ｐはインクリメントされる。
【０１１０】
一方、ステップＳ４３で“ＹＥＳ”であれば、つまり全ての人の移動軌跡がグリッドに反映されると、ステップＳ４７でプロセッサ１６は、各グリッドのカウント値を所定時間で割る。つまり、各グリッドの値が移動軌跡を観測した時間に依存しない値にされる。続いて、プロセッサ１６は、ステップＳ４９で全てのグリッドの平均値と標準偏差とを算出し、ステップＳ５１で各グリッドの通行量を標準化する。つまり、各グリッドの値が移動軌跡を観測した空間に依存しない値にされる。そして、標準化された値、つまり通行量を利用して通行量地図が作成され、通行量地図データ３３０としてメモリ１８に記憶される。なお、ステップＳ５１の処理が終了すれば、通行量算出処理を終了し、邪魔度算出処理に戻る。
【０１１１】
図２０は見通し度算出処理のフロー図である。邪魔度算出処理でステップＳ１１が実行されると、ステップＳ７１でプロセッサ１６は、地図上に店舗領域Ｓ、通路領域Ａ、障害物の情報を設定する。たとえば、管理者の操作に応じて、地図上に店舗領域Ｓ、通路領域Ａ、障害物の情報が地図上に設定される。
【０１１２】
続いて、プロセッサ１６は、ステップＳ７３で変数ｓを初期化し、ステップＳ７５で変数ａを初期化する。変数ｓは店舗領域Ｓのグリッドを指定するための変数であり、変数ａは通路領域Ａのグリッドを指定するための変数である。そして、変数ｓ、変数ａを初期化することで、以降の処理で店舗領域Ｓおよび通路領域Ａの各グリッドを任意に指定することが可能となる。
【０１１３】
続いて、ステップＳ７７でプロセッサ１６は、店舗領域Ｓのグリッドｓと通路領域Ａのグリッドａとの距離は閾値より小さいか否かを判断する。つまり、プロセッサ１６は、各変数で指定されたグリッド間の距離が閾値（たとえば、２．５ｍ）より小さいかを判断する。ステップＳ７７で“ＮＯ”であれば、つまり上述の２つのグリッドの距離が閾値より大きければ、ステップＳ８３に進む。一方、ステップＳ７７で“ＹＥＳ”であれば、つまり２つのグリッドの距離が閾値より小さければ、ステップＳ７９でプロセッサ１６は、グリッドｓとグリッドａとの間に障害物があるかを判断する。つまり、グリッドａの位置からグリッドｓの位置を見通すことが出来るかが判断される。ステップＳ７９で“ＹＥＳ”であれば、つまりグリッドａの位置からグリッドｓの位置を見通すことが出来なければ、ステップＳ８３に進む。また、ステップＳ７９で“ＮＯ”であれば、つまりグリッドａの位置からグリッドｓの位置を見通すことが出来れば、ステップＳ８１でプロセッサ１６は、グリッドａの値をインクリメントする。つまり、グリッドａと対応する二次元配列の値がインクリメントされる。
【０１１４】
続いて、ステップＳ８３でプロセッサ１６は、通路領域Ａの検索が終了したか否かを判断する。つまり、プロセッサ１６は変数ａの値が通路領域Ａのグリッドａの総数と一致したかを判断する。ステップＳ８３で“ＮＯ”であれば、つまり通路領域Ａの検索が終了していなければ、ステップＳ８５でプロセッサ１６は、変数ａをインクリメントする。つまり、次のグリッドａが指定される。そして、ステップＳ８５の処理が終了すれば、ステップＳ７７に戻る。
【０１１５】
また、ステップＳ８３で“ＹＥＳ”であれば、つまり通路領域Ａの検索が終了していれば、ステップＳ８７でプロセッサ１６は、店舗領域Ｓの検索が終了したか否かを判断する。つまり、プロセッサ１６は変数ｓの値が店舗領域Ｓのグリッドｓの総数と一致したかを判断する。ステップＳ８７で“ＮＯ”であれば、つまり店舗領域Ｓの検索が終了してなければ、ステップＳ８９でプロセッサ１６は、変数ｓをインクリメントする。つまり、次のグリッドｓが指定される。そして、ステップＳ８９の処理が終了すれば、ステップＳ７５に戻る。
【０１１６】
また、ステップＳ８７で“ＹＥＳ”であれば、つまり店舗領域Ｓの検索が終了していれば、ステップＳ９１でプロセッサ１６は、通路領域Ａの各グリッドａに見通し度を設定する。たとえば、各グリッドの値（二次元配列の値）に基づいて、図１２に示すような見通し度地図が作成される。そして、ステップＳ９１の処理が終了すれば、見通し度算出処理は終了し、邪魔度算出処理に戻る。
【０１１７】
ロボット１４のプロセッサ９０は、ＬｉｎｕｘベースのＯＳや、その他のＯＳの制御下で、図２１に示す待機場所候補地図作成処理、図２２に示す検索制御処理、図２３に示す検索処理および図２４に示す再検索処理を含む、複数のタスクを処理する。
【０１１８】
図２１は待機場所候補地図作成処理のフロー図である。たとえば、ロボット１４の初期設定がされると、ステップＳ１１１でプロセッサ９０は、ロボット１４の大きさに基づいて周囲グリッドの数を設定する。たとえば、上述したように周囲グリッドの数として「９」が設定される。続いて、ステップＳ１１３でプロセッサ９０は、邪魔度地図を取得する。つまり、中央制御装置１０との通信を確立して、邪魔度地図データ３３４が中央制御装置１０から取得される。なお、取得された邪魔度地図データ３３４は通信バッファ４３２に記憶される。続いて、ステップＳ１１５でプロセッサ９０は、変数ｇを初期化する。変数ｇはグリッドを指定するための変数である。そして、以下の処理で任意のグリッドｇを指定するために、変数ｇが初期化される。
【０１１９】
続いて、ステップＳ１１７でプロセッサ９０は、邪魔度地図のグリッドｇを基準として、周囲グリッドの邪魔度の平均値を算出する。つまり、グリッドｇを中心とする９つ（３×３）のグリッドと対応する邪魔度が読み出され、それらの邪魔度の平均値が算出される。続いて、ステップＳ１１９でプロセッサ９０は、算出された邪魔度の平均値をグリッドｇに設定する。つまり、周囲グリッドの中心に位置するグリッドｇに平均値が設定される。続いて、ステップＳ１２１でプロセッサ９０は、変数ｇをインクリメントする。つまり、次のグリッドを指定するために変数ｇがインクリメントされる。
【０１２０】
続いて、ステップＳ１２３でプロセッサ９０は、全てのグリッドに対しいて邪魔度が再計算されたか否かを判断する。つまり、変数ｇの値がグリッドｇの最大値と一致したかが判断される。ステップＳ１２３で“ＮＯ”であれば、つまり全てのグリッドで邪魔度が再計算されていなければ、ステップＳ１１７に戻る。
【０１２１】
また、ステップＳ１２３で“ＹＥＳ”であれば、つまり全てのグリッドで邪魔度が再計算されると、ステップＳ１２５でプロセッサ９０は、再計算された邪魔度に基づいて待機場所候補地図を作成する。たとえば、図１３に示すような待機場所候補地図が作成される。また、作成された地図は、待機場所候補地図データ４３４としてロボット１４のメモリ９４に記憶される。そして、ステップＳ１２５の処理が終了すれば、待機場所候補地図作成処理は終了する。
【０１２２】
なお、待機場所候補地図作成処理は、後述する検索制御処理のサブルーチンとして実行されてもよい。また、ステップＳ１２５の処理を実行するプロセッサ９０は作成手段として機能する。
【０１２３】
図２２は検索制御処理のフロー図である。たとえば、ユーザの買い物を手伝う状態となると、ステップＳ１４１でプロセッサ９０は、ユーザから待機が指示されたか否かを判断する。たとえば、「ちょっと待っててね」などの音声コマンドが入力されたかが判断される。ステップＳ１４１で“ＮＯ”であれば、待機が指示されていなければ、プロセッサ９０はステップＳ１４１の処理を繰り返す。
【０１２４】
また、ステップＳ１４１で“ＹＥＳ”であれば、つまりユーザから待機が指示されると、ステップＳ１４３でプロセッサ９０は、ロボット１４の現在位置を取得する。たとえば、本実施例では現在位置バッファ４３０から現在位置が取得される。なお、ロボット１４の現在位置が中央制御装置１０によって管理されている場合は中央制御装置１０から現在位置が取得される。
【０１２５】
続いて、ステップＳ１４５でプロセッサ９０は、検索処理を実行する。つまり、ロボット１４の待機場所が検索される。この検索処理については、図２３のフロー図を用いて後述するため、ここでの詳細な説明は省略する。なお、ステップＳ１４５の処理を実行するプロセッサ９０は検索手段として機能する。続いて、ステップＳ１４７でプロセッサ９０は、移動先が見つかったか否かを判断する。つまり、検索処理によって待機場所が検索されたか否かを判断する。ステップＳ１４７で“ＹＥＳ”であれば、つまり待機場所が検索されていれば、ステップＳ１４９でプロセッサ９０は、待機場所へ移動する。つまり、プロセッサ９０は、検索された待機場所に移動するよう、ロボット１４を制御する。そして、ステップＳ１４９の処理が終了すれば、検索制御処理は終了する。なお、ステップＳ１４９の処理を実行するプロセッサ９０は移動手段として機能する。
【０１２６】
また、ステップＳ１４７で“ＮＯ”であれば、つまり検索処理によって待機場所が見つけられていなければ、ステップＳ１５１でプロセッサ９０は再検索処理を実行する。この再検索処理については、図２４のフロー図を用いて詳細に説明するため、ここでの詳細な説明は省略する。なお、ステップＳ１５１の処理を実行するプロセッサ９０は再検索手段として機能する。続いて、ステップＳ１５３でプロセッサ９０は、移動先が見つかったかを判断する。つまり、プロセッサ９０は、再検索処理によって移動先が見つかったかを判断する。ステップＳ１５３で“ＹＥＳ”であれば、つまり再検索によって待機場所が見つけられると、プロセッサ９０は、ステップＳ１５５で移動先をユーザに伝え、ステップＳ１４９で待機場所へ移動する。たとえば、ロボット１４は「あの柱の向こうにいるよ」と音声メッセージを出力した後、検索された待機場所へ移動する。なお、ステップＳ１５５の処理を実行するプロセッサ９０は伝達手段として機能する。
【０１２７】
また、ステップＳ１５３で“ＮＯ”であれば、再検索によって待機場所を見つけられなければ、プロセッサ９０は、ステップＳ１５７で初期位置Ｈへ移動することをユーザに伝え、ステップＳ１５９で初期位置へ移動する。たとえば、ロボット１４は「人が多いから最初の所で待ってるね」と音声メッセージを出力した後、初期位置Ｈへ移動する。そして、ステップＳ１５９の処理が終了すれば、検索制御処理は終了する。
【０１２８】
図２３は検索処理のフロー図である。検索制御処理でステップＳ１４５の処理が実行されると、ステップＳ１７１でプロセッサ９０は、邪魔度閾値を最小値に設定する。たとえば、本実施例では邪魔度閾値として「０．１」が設定される。また、他の実施例では、「０」であってもよいし、全てのグリッドから最小値の邪魔度を特定し、特定された邪魔度が邪魔度閾値として設定されてもよい。続いて、ステップＳ１７３でプロセッサ９０は、距離閾値を最大値に設定する。後述するループ処理で、検索された待機場所をより近い待機場所に更新するために、距離閾値に最大値が設定される。なお、距離閾値に設定される最大値は、ロボット１４のプロセッサ９０が扱うことができる最も大きな値であってもよいし、空間において考えられる最大距離（たとえば、空間の対角線の距離）であってもよい。続いて、ステップ１７５でプロセッサ９０は、待機場所にｎｕｌｌを設定する。つまり、待機場所が見つかっていないことを示すために待機場所にｎｕｌｌが設定される。続いて、ステップＳ１７７でプロセッサ９０は、変数ｇを初期化する。つまり、任意のグリッドを指定するために、変数ｇが初期化される。
【０１２９】
続いて、ステップＳ１７９でプロセッサ９０は、グリッドｇの邪魔度が邪魔度閾値より小さいか否かを判断する。つまり、変数ｇで指定されたグリッドが待機場所として適切かが判断される。ステップＳ１７９で“ＮＯ”であれば、つまりグリッドｇの邪魔度が邪魔度閾値より大きければ、ステップＳ１８９に進む。一方、ステップＳ１７９で“ＹＥＳ”であれば、つまりグリッドｇの邪魔度が邪魔度閾値より小さければ、ステップＳ１８１でプロセッサ９０は、現在位置とグリッドｇとの間に障害物があるか否かを判断する。つまり、現在位置からグリッドｇの位置を見通すことが可能であるかを判断する。ステップＳ１８１で“ＹＥＳ”であれば、つまり現在位置からグリッドｇの位置を見通すことが出来なければ、ステップＳ１８９に進む。一方、ステップＳ１８１で“ＮＯ”であれば、つまり現在位置からグリッドｇの位置を見通すことが出来れば、ステップＳ１８３でプロセッサ９０は、現在位置とグリッドｇとの距離が距離閾値より小さいか否かを判断する。ステップＳ１８３で“ＮＯ”であれば、つまり現在位置とグリッドｇとの距離が距離閾値より大きければ、ステップＳ１８９に進む。
【０１３０】
また、ステップＳ１８３で“ＹＥＳ”であれば、つまり現在位置とグリッドｇとの距離が距離閾値より小さければ、ステップＳ１８５でプロセッサ９０は、現在位置とグリッドｇとの距離を距離閾値に設定する。つまり、より近い待機場所を検索するために距離閾値が現在位置とグリッドｇとの距離に変更される。なお、初期状態の距離閾値は最大値であるため、最初にステップＳ１８３が実行された場合は必ず“ＹＥＳ”と判断され、距離閾値が更新される。続いて、ステップＳ１８７でプロセッサ９０は、待機場所としてグリッドｇを設定する。つまり、変数ｇで指定されるグリッドは待機場所として適切であるため、グリッドｇの座標が待機場所として記憶される。
【０１３１】
続いて、ステップＳ１８９でプロセッサ９０は、変数ｇをインクリメントする。つまり次のグリッドを指定するために、変数ｇがインクリメントされる。
【０１３２】
続いて、ステップＳ１９１でプロセッサ９０は、全てのグリッドに対して判定したか否かを判断する。つまり、全てのグリッドに対して、待機場所として適切であるかの判定を行ったかが判断される。具体的には、プロセッサ９０は変数ｇがグリッドの総数と一致したかを判断する。ステップＳ１９１で“ＮＯ”であれば、つまり全てのグリッドに対して判定がされていなければ、ステップＳ１７９に戻る。
【０１３３】
続いて、ステップＳ１９１で“ＹＥＳ”であれば、つまり全てのグリッドに対して判定がされていれば、ステップＳ１９３でプロセッサ９０は、待機場所はｎｕｌｌか否かを判断する。つまり、待機場所が見つかっていない状態であるかが判断される。ステップＳ１９３で“ＮＯ”であれば、つまり待機場所が検索されていれば、検索処理を終了して、検索制御処理に戻る。
【０１３４】
また、ステップＳ１９３で“ＹＥＳ”であれば、つまり待機場所が検索されていなければ、ステップＳ１９５でプロセッサ９０は、邪魔度閾値を大きくする。つまり、現在条件では待機場所を見つけることが出来ないため、待機場所の検索条件を緩和するために邪魔度閾値が数３に示す数式に基づいて大きくされる。
【０１３５】
[数３]
邪魔度閾値＝邪魔度閾値＋補正値Δｔｈ
たとえば、邪魔度閾値が「０．１」であり、補正値Δｔｈが「０．１」であれば、邪魔度閾値は「０．２」となる。
【０１３６】
続いて、ステップＳ１９７でプロセッサ９０は、邪魔度閾値は判定閾値よりも大きいか否かを判断する。たとえば、待機場所として許容できる邪魔度が「０．５」までである場合、判定閾値は「０．５」とされる。そして、ステップＳ１９７では、変更された邪魔度閾値がこの判定閾値よりも大きいかが判断される。ステップＳ１９７で“ＮＯ”であれば、つまり邪魔度閾値が判定閾値よりも小さければ、ステップＳ１７７に戻る。一方、ステップＳ１９７で“ＹＥＳ”であれば、つまり邪魔度閾値が判定閾値よりも大きければ、検索処理を終了して、検索制御処理に戻る。
【０１３７】
図２４は再検索処理のフロー図である。再検索制御処理でステップＳ１５１の処理が実行されると、プロセッサ９０はステップＳ２１１以降の処理を実行する。この再検索処理のステップＳ２１１−Ｓ２１９は検索処理のステップＳ１７１−Ｓ１７９と略同じであり、ステップＳ２２１−Ｓ２３５は検索処理のステップＳ１８３−Ｓ１９７と略同じである。つまり、再検索処理には、現在位置からグリッドｇの位置を見通すことが可能であるかを判断するステップＳ１８１に相当する処理が含まれていない。したがって、再検索処理では、現在位置から見通すことが出来ない場所も含めて待機場所を検索することが可能となる。
【０１３８】
なお、他の実施例では、検索処理（再検索処理）では、ステップＳ１８９の後に、検索された待機場所がロボット１４から一定の距離以内であるかを判断するステップを追加し、追加ステップで“ＹＥＳ”と判断されたときに、検索処理が終了するようにしてもよい。この場合、ロボット１４から一定距離（たとえば、１メートル）以内に待機場所が検索されていれば、他のグリッドを判定せずに検索処理は終了する。そのため、検索処理（再検索処理）の処理時間を短縮することが出来る。
【０１３９】
その他の実施例では、待機場所として邪魔度を優先して検索をするようにしているが、ロボット１４から待機場所までの距離を優先して検索するようにしてもよい。たとえば、ロボット１４の近くに邪魔度が「０．４」の待機場所があり、ロボット１４から離れた場所に邪魔度が「０．３」の待機場所がある場合、上述の実施例では、ロボット１４から離れた待機場所が選択される。これに対してその他の実施例では、ロボット１４から近い待機場所が選択されるようになる。この場合、ロボット１４の移動距離が短くなるため、ユーザは買い物から戻ったときにロボット１４を見つけやすくなる。
【０１４０】
さらにその他の実施例では、図１７−２４に示す処理を中央制御装置が実行するようにしてもよい。また、図１８−２４に示す処理をロボット１４が実行するようにしてもよい。
【０１４１】
また、本実施例のロボット制御システム１００は、ショッピングモールだけでなく、病院およびイベント会場などで利用されてもよい。たとえば、病院の場合は「薬局」や「受け付け」等が本実施例の「店舗（施設）」に相当し、イベント会場の場合は「ブース」、「特設会場」等が本実施例の「店舗（施設）」に相当する。
【０１４２】
また、本実施例では、閾値に対して「より大きい」または「より小さい」との言葉を用いたが、「閾値より大きい」という表現には「閾値以上」の意味も含まれ、「閾値より小さい」と言う表現には「閾値以下」および「閾値未満」の意味が含まれる。
【０１４３】
また、本実施例で説明した複数のプログラムは、データ配信用のサーバのHDDに記憶され、ネットワークを介して本実施例と同等の構成のシステムに配信されてもよい。また、CD, DVD, BD (Blu-ray Disc)などの光学ディスク、USBメモリおよびメモリカードなどの記憶媒体にこれらのプログラムを記憶させた状態で、その記憶媒体が販売または配布されてもよい。そして、上記したサーバや記憶媒体などを通じてダウンロードされた、上記複数のプログラムが、本実施例と同等の構成のシステムに適用された場合、本実施例と同等の効果が得られる。
【０１４４】
そして、本明細書中で挙げた、具体的な数値は、いずれも単なる一例であり、製品の仕様変更などに応じて適宜変更可能である。
【符号の説明】
【０１４５】
１０  …中央制御装置
１２ａ，１２ｂ  …ＬＲＦ
１４  …ロボット
１６  …プロセッサ
１８  …メモリ
２８  …移動軌跡ＤＢ
９０  …プロセッサ
９４  …メモリ
１００  …ロボット制御システム
【図１】
2014168824.tif 000004
【図２】
2014168824.tif 000005
【図３】
2014168824.tif 000006
【図４】
2014168824.tif 000007
【図５】
2014168824.tif 000008
【図６】
2014168824.tif 000009
【図７】
2014168824.tif 000010
【図８】
2014168824.tif 000011
【図９】
2014168824.tif 000012
【図１０】
2014168824.tif 000013
【図１１】
2014168824.tif 000014
【図１２】
2014168824.tif 000015
【図１３】
2014168824.tif 000016
【図１４】
2014168824.tif 000017
【図１５】
2014168824.tif 000018
【図１６】
2014168824.tif 000019
【図１７】
2014168824.tif 000020
【図１８】
2014168824.tif 000021
【図１９】
2014168824.tif 000022
【図２０】
2014168824.tif 000023
【図２１】
2014168824.tif 000024
【図２２】
2014168824.tif 000025
【図２３】
2014168824.tif 000026
【図２４】
2014168824.tif 000027