(57)【特許請求の範囲】
【請求項１】
自律的に行動するロボットであって、
自己とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、
自己の位置を検出する第１検出手段、
歩行者の位置を検出する第２検出手段、
前記第１および第２検出手段の検出結果と前記歩行者モデルとに基づいて自己とすれ違う歩行者の軌跡を予測する予測手段、および
前記予測手段の予測結果に応じて自己の回避行動を決定する回避行動決定手段を備え、
前記予測手段は、
前記歩行者モデルに従って予測した予測軌跡と前記第２検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し、
計算した一致度合いが閾値よりも高い場合には前記歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には前記歩行者モデルに基づいて当該実測軌跡から後の軌跡をそれぞれ予測する、ロボット。
【請求項２】
前記予測手段は、計算した一致度合いが閾値よりも低い場合には前記歩行者モデルに基づく補間によって当該実測軌跡から後の軌跡を予測する、請求項１記載のロボット。
【請求項３】
前記回避行動決定手段は、前記予測手段の予測結果に基づいて、自己とすれ違う歩行者を、当該歩行者が自己を大きく避ける場合には小さく、当該歩行者が自己を避けないか小さく避ける場合には大きく、避けるように自己の回避経路を計算する計算手段を含む、請求項１または２記載のロボット。
【請求項４】
前記回避行動決定手段は、
前記予測手段の予測結果および前記計算手段の計算結果に基づいて、自己とすれ違う歩行者との間の最近接距離が閾値以上であるか否かを判別する判別手段、および
前記判別手段によって最近接距離が閾値以上であると判別された場合に自己を前記計算手段の計算結果に従って移動させるための移動制御情報を作成する第１作成手段を含む、請求項３記載のロボット。
【請求項５】
前記回避行動決定手段は、前記判別手段によって最近接距離が閾値未満であると判別された場合に自己を停止させるための移動制御情報を作成する第２作成手段をさらに含む、請求項４記載のロボット。
【請求項６】
前記回避行動決定手段は、前記判別手段によって最近接距離が閾値未満であると判別された場合に音声および／または身振り手振りによって当該歩行者の回避行動を誘発する動作を行わせるための動作制御情報を作成する第３作成手段をさらに含む、請求項５記載のロボット。
【請求項７】
移動体を自律的に移動させるための制御システムであって、
前記移動体とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、
前記移動体の位置を検出する第１検出手段、
歩行者の位置を検出する第２検出手段、
前記第１および第２検出手段の検出結果と前記歩行者モデルとに基づいて前記移動体とすれ違う歩行者の軌跡を予測する予測手段、および
前記予測手段の予測結果に応じて前記移動体の回避経路を計算する計算手段を備え、
前記予測手段は、
前記歩行者モデルに従って予測した予測軌跡と前記第２検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し、
計算した一致度合いが閾値よりも高い場合には前記歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には前記歩行者モデルに基づいて当該実測軌跡から後の軌跡をそれぞれ予測する、制御システム。
【請求項８】
移動体を自律的に移動させるための制御システムのコンピュータを、
前記移動体とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、
前記移動体の位置を検出する第１検出手段、
歩行者の位置を検出する第２検出手段、
前記第１および第２検出手段の検出結果と前記歩行者モデルとに基づいて前記移動体とすれ違う歩行者の軌跡を予測する予測手段、および
前記予測手段の予測結果に応じて前記移動体の回避経路を計算する計算手段として機能させ、
前記予測手段は、
前記歩行者モデルに従って予測した予測軌跡と前記第２検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し、
計算した一致度合いが閾値よりも高い場合には前記歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には前記歩行者モデルに基づいて当該実測軌跡から後の軌跡をそれぞれ予測する、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自律的に行動するロボットに関し、特にたとえば、歩行者とすれ違う際に当該歩行者の軌跡を予測して自己の回避行動を決定するロボットに関する。
【背景技術】
【０００２】
この種の背景技術の一例として、特許文献１には、歩行者の進路を予測し、予測結果がロボットへ向かう進路であるか否かを判定して、歩行者の進路がロボットへ向かう進路であると判定された場合に、歩行者の進路からロボットを退避移動させるようにロボットの走行進路を変更する、自律移動型のロボットが開示されている。
【特許文献１】特開２００７−２２９８１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ところで、一般に、歩行者同士がすれ違う際には、双方が回避行動をとる（つまり進路を少しずつ譲り合う）ことが多い。歩行者は、すれ違う相手がロボットの場合にも回避行動をとる可能性が高く、むしろ相手が人の場合よりも大きい回避行動をとる傾向が見られる。
【０００４】
そこで、歩行者も回避行動をとると予想される場合には、ロボットは、自己の回避行動を小さくすることで、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる。
【０００５】
しかしながら、上記の背景技術では、歩行者側が回避行動をとる可能性について何ら考慮していないので、ロボット側の回避行動を制御することができなかった。
【０００６】
それゆえに、この発明の主たる目的は、新規な、自律行動型のロボットを提供することである。
【０００７】
この発明の他の目的は、歩行者とすれ違う際に当該歩行者の回避行動（軌跡）を予測することで、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる、自律行動型のロボットを提供することである。
【課題を解決するための手段】
【０００８】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
第１の発明は、自律的に行動するロボットであって、自己とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、自己の位置を検出する第１検出手段、歩行者の位置を検出する第２検出手段、第１および第２検出手段の検出結果と歩行者モデルとに基づいて自己とすれ違う歩行者の軌跡を予測する予測手段、および予測手段の予測結果に応じて自己の回避行動を決定する回避行動決定手段を備え、予測手段は、歩行者モデルに従って予測した予測軌跡と第２検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し、計算した一致度合いが閾値よりも高い場合には歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には歩行者モデルに基づいて当該実測軌跡から後の軌跡をそれぞれ予測する。
【００１０】
第１の発明では、ロボット（１０）は、自己（ロボット自身）とすれ違う歩行者の軌跡を示す歩行者モデル（１５０）を記憶手段（１４０）に記憶しており、自己の位置を第１検出手段（Ｓ５）で、歩行者の位置を第２検出手段（Ｓ７）でそれぞれ検出して、これらの検出結果と歩行者モデルとに基づいて、自己とすれ違う歩行者の軌跡を予測手段（Ｓ３９〜Ｓ４５，Ｓ６１〜Ｓ６５）で予測する。そして、この予測結果に応じて、自己の回避行動を回避行動決定手段（Ｓ６７〜Ｓ７５）で決定する。ただし、予測手段は、歩行者モデルに従って予測した予測軌跡と第２検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し（Ｓ３９〜Ｓ４５）、計算した一致度合いが閾値よりも高い場合には歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には歩行者モデルに基づいて当該実測軌跡から後の軌跡をそれぞれ予測する（Ｓ６１〜Ｓ６５）。
【００１１】
なお、歩行者が自己とすれ違うか否かは、たとえば、歩行者および自己が共に回避行動をとらなかったと仮定して、歩行者および自己それぞれについて、現時点（Ｔ＝０）までの軌跡に基づいて所定時間後（Ｔ＝Ｔ０）までの軌跡を予測し、予測した２つの軌跡を比較することにより判定する。ある実施例では、時刻Ｔ０におけるロボットの位置を中心とする半径Ｄのすれ違い判定円を利用して、時刻Ｔ０以前に歩行者がすれ違い判定円内に入ればすれ違うと判定し、時刻Ｔ０以前に歩行者がすれ違い判定円内に入らなければすれ違わないと判定する。
【００１２】
第１の発明によれば、自己とすれ違う歩行者の軌跡を予測して自己の回避行動を決定するので、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる。しかも、ある時点（Ｔ＝Ｔ０−Ｔ１）までの予測軌跡および実測軌跡の一致度合いに応じて、その後の軌跡の予測方法を切り換える（具体的には、一致度合いが高ければ歩行者モデルに従う予測を継続し、一致度合いが低ければ歩行者モデルに基づく予測に切り換える）ので、歩行者モデルを用いて精度よく軌跡を予測することができる。
【００１３】
第２の発明は、第１の発明に従属するロボットであって、予測手段は、計算した一致度合いが閾値よりも低い場合には歩行者モデルに基づく補間によって当該実測軌跡から後の軌跡を予測する（Ｓ６１〜Ｓ６５）。
【００１４】
なお、補間は、ある実施例では線形補間であるが、非線形補間でもよい。
【００１５】
第２の発明によれば、ある時点（Ｔ＝Ｔ０−Ｔ１）までの予測軌跡および実測軌跡の一致度合いに応じて、その後の軌跡の予測方法を切り換える（具体的には、一致度合いが高ければ歩行者モデルに従う予測を継続し、一致度合いが低ければ歩行者モデルに基づく補間による予測に切り換える）ので、歩行者モデルを用いて精度よく軌跡を予測することができる。
【００１６】
第３の発明は、第１または第２の発明に従属するロボットであって、回避行動決定手段は、予測手段の予測結果に基づいて、自己とすれ違う歩行者を、当該歩行者が自己を大きく避ける場合には小さく、当該歩行者が自己を避けないか小さく避ける場合には大きく、避けるように自己の回避経路を計算する計算手段（Ｓ６７）を含む。
【００１７】
第３の発明によれば、自己とすれ違う歩行者との間の距離を極力一定以上に保つことができる。
【００１８】
第４の発明は、第３の発明に従属するロボットであって、回避行動決定手段は、予測手段の予測結果および計算手段の計算結果に基づいて、自己とすれ違う歩行者との間の最近接距離が閾値以上であるか否かを判別する判別手段（Ｓ６９）、および、判別手段によって最近接距離が閾値以上であると判別された場合に自己を計算手段の計算結果に従って移動させるための移動制御情報（１６８ａ）を作成する第１作成手段（Ｓ７１）を含む。
【００１９】
第４の発明によれば、歩行者と一定以上の距離を保って安全にすれ違うことができる。
【００２０】
第５の発明は、第４の発明に従属するロボットであって、回避行動決定手段は、判別手段によって最近接距離が閾値未満であると判別された場合に自己を停止させるための移動制御情報（１６８ａ）を作成する第２作成手段（Ｓ７３）をさらに含む。
【００２１】
第５の発明によれば、一定以上の距離を保てない場合には緊急停止することで、安全性が高まる。
【００２２】
第６の発明は、第５の発明に従属するロボットであって、回避行動決定手段は、判別手段によって最近接距離が閾値未満であると判別された場合に音声および／または身振り手振りによって当該歩行者の回避行動を誘発する動作を行わせるための動作制御情報（１６８ｂ）を作成する第３作成手段をさらに含む。
【００２３】
第６の発明によれば、一定以上の距離を保てない場合には、自ら緊急停止するだけでなく、歩行者側の回避行動を誘発することで、いっそう安全性が高まる。
【００２４】
第７の発明は、移動体（１０Ａ）を自律的に移動させるための制御システム（１００）であって、移動体とすれ違う歩行者の軌跡を示す歩行者モデル（１５０）が記憶された記憶手段（１４０）、移動体の位置を検出する第１検出手段（Ｓ５）、
歩行者の位置を検出する第２検出手段（Ｓ７）、第１および第２検出手段の検出結果と歩行者モデル（１５０）とに基づいて移動体とすれ違う歩行者の軌跡を予測する予測手段（Ｓ３９〜Ｓ４５，Ｓ６１〜Ｓ６５）、および予測手段の予測結果に応じて移動体の回避経路を計算する計算手段（Ｓ６７）を備え、予測手段は、歩行者モデルに従って予測した予測軌跡と第２検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し（Ｓ３９〜Ｓ４５）、計算した一致度合いが閾値よりも高い場合には歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には歩行者モデルに基づいて当該実測軌跡から後の軌跡をそれぞれ予測する（Ｓ６１〜Ｓ６５）。
【００２５】
第８の発明は、制御プログラム（１４２，１４４）であって、移動体（１０）を自律的に移動させるための制御システム（１００）のコンピュータ（１２）を、移動体とすれ違う歩行者の軌跡を示す歩行者モデル（１５０）が記憶された記憶手段（１４０）、移動体の位置を検出する第１検出手段（Ｓ５）、歩行者の位置を検出する第２検出手段（Ｓ７）、第１および第２検出手段の検出結果と歩行者モデル（１５０）とに基づいて移動体とすれ違う歩行者の軌跡を予測する予測手段（Ｓ３９〜Ｓ４５，Ｓ６１〜Ｓ６５）、および予測手段の予測結果に応じて移動体の回避経路を計算する計算手段（Ｓ６７）として機能させ、予測手段は、歩行者モデルに従って予測した予測軌跡と第２検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し（Ｓ３９〜Ｓ４５）、計算した一致度合いが閾値よりも高い場合には歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には歩行者モデルに基づいて当該実測軌跡から後の軌跡をそれぞれ予測する（Ｓ６１〜Ｓ６５）。
【００２６】
第７，第８の各発明によれば、移動体とすれ違う歩行者の軌跡を予測して移動体の回避経路を計算するので、周囲の通行への影響を抑制しながら移動体を歩行者と安全にすれ違わせることができる。
【発明の効果】
【００２７】
この発明によれば、歩行者とすれ違う際に当該歩行者の回避行動（軌跡）を予測することで、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる、自律行動型のロボットが実現される。また、周囲の通行への影響を抑制しながら移動体を歩行者と安全にすれ違わせることができる、制御装置および制御プログラムが実現される。
【００２８】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２９】
【図１】この発明の一実施例である移動ロボットの外観図を示す図解図である。
【図２】移動ロボットの電気的構成を示すブロック図である。
【図３】移動ロボットが自律的に行動する環境の一例を示す図解図である。
【図４】移動ロボットのメモリマップを示す図解図である。
【図５】歩行者位置情報のデータ構造を示す図解図である。
【図６】移動ロボットのＣＰＵ動作の一部を示すフロー図である。
【図７】移動ロボットのＣＰＵ動作の他の一部を示すフロー図である。
【図８】移動ロボットのＣＰＵ動作のその他の一部を示すフロー図である。
【図９】移動ロボットのＣＰＵ動作のさらにその他の一部を示すフロー図である。
【図１０】移動ロボットが歩行者とすれ違うか否かを判定する方法を示す図解図である。
【図１１】移動ロボットが歩行者とすれ違う際（対面すれ違い時）にとる回避行動の一例を示す図解図である。
【図１２】移動ロボットが歩行者から追い越される際（追い越しすれ違い時）にとる回避行動の他の一例を示す図解図である。
【図１３】線形補間による歩行者の予測軌跡とそれに対応する移動ロボットの回避経路の例を示す図解図であり、（Ａ）は歩行者側の回避量が歩行者モデルよりも小さい場合を、（Ｂ）は歩行者側の回避量が歩行者モデルよりも大きい場合をそれぞれ示す。
【図１４】この発明の他の実施例を示すブロック図である。
【発明を実施するための形態】
【００３０】
図１を参照して、この発明の一実施例である移動ロボット１０は、自律行動型のロボットであり、予め記憶した地図（間取り図）情報および自身に備わる各種センサからのセンサ情報に基づいて自律的に行動する（移動および動作する）ことができる。
【００３１】
最初、概要を説明する。移動ロボット１０は、複数（たとえば４つ）のレーザレンジファインダ（以下“ＬＲＦ”）４０を備えている。ＬＲＦ４０は、自身から目標（歩行者，障害物など）ないし周辺環境（通路沿いの壁面，道路沿いの建造物など）までの距離を計測し、距離データを出力する。移動ロボット１０は、自身が行動する環境（Ｅｎ：図３参照）に関する地図情報（１６２：図４参照）を記憶しており、この地図情報に基づいて移動しながら、ＬＲＦ４０から距離データ（および図２に示す右左の車輪速度センサ１１２ａおよび１１２ｂの出力データ）を取得して、取得した距離データ等に基づいて環境における移動ロボット１０自身の位置（自己位置）および移動方向を計算し、さらに目標（歩行者）の位置および移動方向をも計算する。
【００３２】
ここで、ＬＲＦは一般に、レーザーを照射し、それが目標で反射して戻ってくるまでの時間に基づいて、当該目標までの距離を計測するものである。ＬＲＦ４０は、たとえば、トランスミッタ（図示せず）から照射したレーザーを回転ミラー（図示せず）で反射させて、前方を扇状に一定角度（たとえば０．５度）ずつスキャンすることで、単に目標までの距離を計測するだけでなく、目標の表面に関する２次元距離情報（表面の形状を角度および距離の２変数で記述した情報）も生成することができる。ＬＲＦ４０からの距離データには、このような２次元距離情報が含まれており、移動ロボット１０は、２次元距離情報に基づいて目標を識別することができる。
【００３３】
なお、移動ロボット１０に搭載されて距離を計測するセンサ（距離センサ）は、ＬＲＦに限らず、たとえば赤外線距離センサ，レーダ，ソナーなどでもよい。
【００３４】
移動ロボット１０では、記憶している地図情報とＬＲＦ４０からの距離データ（２次元距離情報）を含む各種のセンサ情報とに基づいて動作制御情報が生成され、この生成された動作制御情報に基づいて各種モータ（９２〜９８，１１０，３６ａおよび３６ｂ）やスピーカ（６４）が駆動される。こうして、移動ロボット１０の自律的な行動たとえば自動走行，発話動作，身体動作（身振り手振り）などが実現される。
【００３５】
特に、移動ロボット１０は、歩行者とすれ違う際に、歩行者モデル（１５０）に基づき歩行者の回避行動（移動ロボット１０を避けて迂回する軌跡）を予測して、周囲の通行への影響も抑制しつつ歩行者との衝突を回避するように、自己の回避行動を決定（たとえば回避経路を計算したり緊急停止したり警告音を発したり）することができる。
【００３６】
次に、各要素について詳しく説明する。図１は、この実施例の移動ロボット１０の外観を示す正面図である。図１を参照して、移動ロボット１０は台車３０を含み、台車３０の下面には右車輪３２ａおよび左車輪３２ｂ（特に区別しない場合には「車輪３２」と記す）ならびに１つの従輪３４が設けられる。右車輪３２ａおよび左車輪３２ｂは、右車輪モータ３６ａおよび左車輪モータ３６ｂ（図２参照）によってそれぞれ独立に駆動され、台車３０ひいては移動ロボット１０全体を前後左右の任意方向に動かすことができる。また、従輪３４は車輪３２を補助する補助輪である。
【００３７】
台車３０の上には、円柱形のセンサ取り付けパネル３８が設けられ、このセンサ取り付けパネル３８には、多数の赤外線距離センサ４０が取り付けられる。これらの赤外線距離センサ４０は、センサ取り付けパネル３８つまり移動ロボット１０自身と、その周囲の物体（人間や障害物など）との距離を測定するものである。
【００３８】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、小型のＬＲＦ、超音波距離センサまたはミリ波レーダなどを用いることもできるし、これらを適宜組み合わせて用いてもよい。
【００３９】
センサ取り付けパネル３８の上には、胴体４２が直立するように設けられる。また、胴体４２の前方中央上部（人の胸に相当する位置）には、上述した赤外線距離センサ４０がさらに設けられており、これによって前方の対象たとえば人間との距離を計測する。また、胴体４２には、その側面側上端部のほぼ中央から伸びる支柱４４が設けられ、支柱４４の上には、アンテナ１１８ならびに全方位カメラ４６が設けられる。
【００４０】
アンテナ１１８は、図示しない外部コンピュータ（たとえばＰＣ）と無線通信を行うためのアンテナであり、ＰＣからの無線信号を受信し、ＰＣに無線信号を送信する。全方位カメラ４６は、移動ロボット１０の周囲を撮影するものであり、後述する眼カメラ７０とは区別される。全方位カメラ４６としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ４０，アンテナ１１８および全方位カメラ４６の設置位置は、当該部位に限定されず適宜変更されてもよい。
【００４１】
胴体４２の両側面上端部（人の肩に相当する位置）には、それぞれ、肩関節４８Ｒおよび肩関節４８Ｌによって、上腕５０Ｒおよび上腕５０Ｌが設けられる。図示は省略するが、肩関節４８Ｒおよび肩関節４８Ｌは、それぞれ、直交する３軸の自由度を有する。すなわち、肩関節４８Ｒは、直交する３軸のそれぞれの軸廻りにおいて上腕５０Ｒの角度を制御できる。肩関節４８Ｒの或る軸（ヨー軸）は、上腕５０Ｒの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節４８Ｌは、直交する３軸のそれぞれの軸廻りにおいて上腕５０Ｌの角度を制御できる。肩関節４８Ｌの或る軸（ヨー軸）は、上腕５０Ｌの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。
【００４２】
また、上腕５０Ｒおよび上腕５０Ｌのそれぞれの先端には、肘関節５２Ｒおよび肘関節５２Ｌが設けられる。図示は省略するが、肘関節５２Ｒおよび肘関節５２Ｌは、それぞれ１軸の自由度を有し、この軸（ピッチ軸）の軸回りにおいて前腕５４Ｒおよび前腕５４Ｌの角度を制御できる。
【００４３】
前腕５４Ｒおよび前腕５４Ｌのそれぞれの先端には、人の手に相当する球体５６Ｒおよび球体５６Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車３０の前面、肩関節４８Ｒと肩関節４８Ｌとを含む肩に相当する部位、上腕５０Ｒ、上腕５０Ｌ、前腕５４Ｒ、前腕５４Ｌ、球体５６Ｒおよび球体５６Ｌには、それぞれ、接触センサ５８（図２で包括的に示す）が設けられる。台車３０の前面の接触センサ５８は、台車３０への人間や他の障害物の接触を検知する。したがって、移動ロボット１０は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪３２の駆動を停止して移動ロボット１０の移動を急停止させることができる。また、その他の接触センサ５８は、当該各部位に触れたかどうかを検知する。なお、接触センサ５８の設置位置は、当該部位に限定されず、適宜な位置（人の胸、腹、脇、背中および腰に相当する位置）に設けられてもよい。
【００４４】
胴体４２の中央上部（人の首に相当する位置）には首関節６０が設けられ、さらにその上には頭部６２が設けられる。図示は省略するが、首関節６０は、３軸の自由度を有し、３軸の各軸廻りに角度制御可能である。或る軸（ヨー軸）は移動ロボット１０の真上（鉛直上向き）に向かう軸であり、他の２軸（ピッチ軸、ロール軸）は、それぞれ、それと異なる方向で直交する軸である。
【００４５】
頭部６２には、人の口に相当する位置に、スピーカ６４が設けられる。スピーカ６４は、移動ロボット１０が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク６６Ｒおよびマイク６６Ｌが設けられる。以下、右のマイク６６Ｒと左のマイク６６Ｌとをまとめてマイク６６と言うことがある。マイク６６は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部６８Ｒおよび眼球部６８Ｌが設けられる。眼球部６８Ｒおよび眼球部６８Ｌは、それぞれ眼カメラ７０Ｒおよび眼カメラ７０Ｌを含む。以下、右の眼球部６８Ｒと左の眼球部６８Ｌとをまとめて眼球部６８と言うことがある。また、右の眼カメラ７０Ｒと左の眼カメラ７０Ｌとをまとめて眼カメラ７０と言うことがある。
【００４６】
眼カメラ７０は、移動ロボット１０自身から見える前方の視界や、移動ロボット１０に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ７０は、上述した全方位カメラ４６と同様のカメラを用いることができる。たとえば、眼カメラ７０は、眼球部６８内に固定され、眼球部６８は、眼球支持部（図示せず）を介して頭部６２内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、２軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この２軸の一方は、頭部６２の上に向かう方向の軸（ヨー軸）であり、他方は、一方の軸に直交しかつ頭部６２の正面側（顔）が向く方向に直行する方向の軸（ピッチ軸）である。眼球支持部がこの２軸の各軸廻りに回転されることによって、眼球部６８ないし眼カメラ７０の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ６４、マイク６６および眼カメラ７０の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【００４７】
このように、この実施例の移動ロボット１０は、車輪３２の独立２軸駆動、肩関節４８の３自由度（左右で６自由度）、肘関節５２の１自由度（左右で２自由度）、首関節６０の３自由度および眼球支持部の２自由度（左右で４自由度）の合計１７自由度を有する。
【００４８】
図２は、移動ロボット１０の電気的な構成を示すブロック図である。図２を参照して、移動ロボット１０は、ＣＰＵ８０を含む。ＣＰＵ８０は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス８２を介して、メモリ８４、モータ制御ボード８６、センサ入力／出力ボード８８および音声入力／出力ボード９０に接続される。ＣＰＵ８０は、ＲＴＣ(Real Time Clock)８０ａを含んでおり、各センサからの信号ないしデータ（センサ情報）に対してＲＴＣに基づく時刻データを付加する。また、ＣＰＵ８０は、任意の時刻からの経過時間を計時するためのタイマ（Ｔ）も含む。
【００４９】
メモリ８４は、図示は省略をするが、不揮発メモリ（保存領域）としてＳＳＤ(Solid State Drive)およびＲＯＭと、揮発メモリ（一時記憶領域）としてＲＡＭとを含む。ＳＳＤ，ＲＯＭつまり保存領域（１４０：図８参照）には、移動ロボット１０自身の位置（自己位置）および歩行者の位置を検出して回避行動を決定するための各種のプログラム（後述）が予め記憶される。ＲＡＭつまり一時記憶領域（１６０：図８参照）は、ワークメモリないしバッファメモリとして、地図情報を一時保持したり、プログラムによって参照される各種の情報（後述）を更新可能に記憶したりする。
【００５０】
モータ制御ボード８６は、たとえばＤＳＰで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、右眼球部６８Ｒの２軸のそれぞれの角度を制御する２つのモータ（図２では、まとめて「右眼球モータ９２」と示す。）の回転角度を制御する。同様に、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、左眼球部６８Ｌの２軸のそれぞれの角度を制御する２つのモータ（図２では、まとめて「左眼球モータ９４」と示す。）の回転角度を制御する。
【００５１】
また、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、肩関節４８Ｒの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節５２Ｒの角度を制御する１つのモータとの計４つのモータ（図２では、まとめて「右腕モータ９６」と示す。）の回転角度を制御する。同様に、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、肩関節４８Ｌの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節５２Ｌの角度を制御する１つのモータとの計４つのモータ（図２では、まとめて「左腕モータ９８」と示す。）の回転角度を制御する。
【００５２】
さらに、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、首関節６０の直交する３軸のそれぞれの角度を制御する３つのモータ（図２では、まとめて「頭部モータ１１０」と示す。）の回転角度を制御する。そして、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、右車輪３２ａを駆動する右車輪モータ３６ａ、左車輪３２ｂを駆動する左車輪モータ３６ｂの回転角度を、それぞれ個別に制御する。なお、この実施例では、車輪モータ３６を除くモータは、制御を簡素化するためにステッピングモータ（すなわち、パルスモータ）を用いる。ただし、車輪モータ３６と同様に直流モータを用いるようにしてもよい。また、移動ロボット１０の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更されてもよい。たとえば、他の実施例では、エアアクチュエータなどが適用されてもよい。
【００５３】
センサ入力／出力ボード８８は、モータ制御ボード８６と同様に、たとえばＤＳＰで構成され、各センサからの信号（センサ情報）を取り込んでＣＰＵ８０に与える。すなわち、赤外線距離センサ４０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード８８を通じてＣＰＵ８０に入力される。また、全方位カメラ４６からの映像信号が、必要に応じてセンサ入力／出力ボード８８で所定の処理を施してからＣＰＵ８０に入力される。眼カメラ７０からの映像信号も、同様に、ＣＰＵ８０に入力される。また、上述した複数の接触センサ５８（図２では、まとめて「接触センサ５８」と示す。）からの信号がセンサ入力／出力ボード８８を介してＣＰＵ８０に与えられる。
【００５４】
また、センサ入力／出力ボード８８には、右車輪３２ａの回転速度（車輪速）を検出する右車輪速センサ１１２ａ、左車輪３２ｂの回転速度を検出する左車輪速センサ１１２ｂがさらに接続される。そして、右車輪速センサ１１２ａおよび左車輪速センサ１１２ｂからのそれぞれから、一定時間における右車輪３２ａおよび左車輪３２ｂの回転数（車輪速）に関するデータが、センサ入力／出力ボート８８を通じて、ＣＰＵ８０に入力される。
【００５５】
音声入力／出力ボード９０も、他の入力／出力ボードと同様にたとえばＤＳＰで構成され、図２ではＣＰＵ８０，メモリ８４または音声入力／出力ボード９０から与えられる音声合成データに従った音声または声がスピーカ６４から出力される。また、マイク６６からの音声入力が、音声入力／出力ボード９０を介してＣＰＵ８０に与えられる。
【００５６】
また、ＣＰＵ８０は、バス８２を介して通信ＬＡＮボード１１４に接続される。通信ＬＡＮボード１１４は、たとえばＤＳＰで構成され、ＣＰＵ８０から与えられた送信データを無線通信回路１１６に与え、無線通信回路１１６は送信データを、アンテナ１１８からネットワーク２００を介して図示しないＰＣ，遠隔操作装置など（以下“ＰＣ等”）に送信する。また、通信ＬＡＮボード１１４は、無線通信回路１１６を介してアンテナ１１８でＰＣ等からデータを受信し、受信したデータをＣＰＵ８０に与える。
【００５７】
以上のように構成された移動ロボット１０は、たとえば図３に示すように、ショッピングセンタなどの環境Ｅｎ内を自動走行しつつ、自己および歩行者（ＩＤ：０，１，２，…）の位置を検出し、自己とすれ違う歩行者（ここでは歩行者“０”）を特定してその軌跡を予測し、予測結果に応じた回避行動をとる（歩行者と一定以上の距離を保ってすれ違う回避経路を計算する）ことで、周囲（たとえば歩行者“１”，“２”）の通行への影響を抑制しながら、歩行者“０”と安全にすれ違うことができる。
【００５８】
以下には、移動ロボット１０が行う回避行動およびそれを実現するためにＣＰＵ８０が実行する情報処理について、図４のメモリマップ、図６〜図９のフローチャート、ならびに図５および図１０〜図１３の図解図を用いて詳しく説明する。
【００５９】
図４を参照して、メモリ８４は保存領域１４０および一時記憶領域１６０を含み、保存領域１４０には位置検出プログラム１４２，回避行動決定プログラム１４４，行動制御プログラム１４６および歩行者モデル１５０が記憶され、一時記憶領域１６０には地図情報１６２，自己位置情報１６４，歩行者位置情報１６６および行動制御情報１６８が一時記憶される。
【００６０】
位置検出プログラム１４２は、ＬＲＦ４０からの距離データ（および右左の車輪速度センサ１１２ａおよび１１２ｂの出力データ）と地図情報１６２とに基づいて移動ロボット１０自身および歩行者の位置を検出し、さらに検出結果に基づいて各々の移動方向および軌跡を計算するためのプログラムであり、図６のフローチャートに対応する。位置検出プログラム１４２の検出結果は、自己位置情報１６４および歩行者位置情報１６６（後述）に反映される。
【００６１】
すなわち、自己位置情報１６４には、移動ロボット１０自身について、現時点における位置および移動方向、ならびに現時点までの軌跡が記述される。歩行者位置情報１６６には、図５に示すように、各歩行者について、歩行者ＩＤ，現時点における位置および移動方向、ならびに現時点までの軌跡が記述され、さらにロボットとすれ違う時刻も記述される。
【００６２】
回避行動決定プログラム１４４は、自己位置情報１６４および歩行者位置情報１６６と歩行者モデル１５０とに基づいて、自己とすれ違う歩行者の回避行動を予測し、予測結果に応じて自己の回避行動を決定するためのプログラムであり、図７および図８のフローチャートに対応する。回避行動決定プログラム１４４の決定結果は、行動制御情報１６８に反映される。
【００６３】
行動制御プログラム１４６は、行動制御情報１６８に基づいて移動ロボット１０の行動（移動および動作）を制御するためのプログラムであり、図９に示すフローチャートに対応する。行動制御プログラム１４６には移動制御プログラム１４６ａおよび動作制御プログラム１４６ｂが含まれ、行動制御情報１６８には移動制御情報１６８ａおよび動作制御情報１６８ｂが含まれている。移動制御プログラム１４６ａは、移動制御情報１６８ａに基づいて移動ロボット１０の移動を制御するためのプログラムであり、図９のステップＳ８５に対応する。動作制御プログラム１４６ｂは、動作制御情報１６８ｂに基づいて移動ロボット１０の動作を制御するためのプログラムであり、図９のステップＳ８９に対応する。
【００６４】
歩行者モデル１５０は、歩行者がロボットとすれ違う際にとる回避行動（ロボットを避けて迂回する軌跡）を示すモデルであり、対面すれ違い時のモデル（図１１参照）および追い越しすれ違い時のモデル（図１２参照）を含む。なお、歩行者モデル１５０は、事前に歩行者がロボットとすれ違う際にとる回避行動を計測した結果に基づいて作成される。
【００６５】
ＣＰＵ８０は、メモリ８４に記憶された各種のプログラム（１４２〜１４６）およびデータ（１５０，１６２〜１８６）に基づいて、図６のフローに従う位置検出処理と、図７および図８のフローに従う回避行動制御処理と、図９のフローに従う行動制御処理とを並列的に実行する。
【００６６】
まず、位置検出処理について説明する。図６を参照して、最初、ステップＳ１で終了処理が行われたか否かを判別し、ＹＥＳであればこの位置検出処理を終了する。ステップＳ１でＮＯであれば、ステップＳ３でＬＲＦ４０から距離データを取得した後、ステップＳ５およびＳ７に進んで自己および歩行者の位置検出を行う。
【００６７】
具体的には、ステップＳ５で、取得した距離データおよび地図情報１６２に基づいて自己位置を検出する。また、前回の検出結果と今回の検出結果との比較に基づいて移動方向を計算し、さらに、初回から今回までの一連の検出結果から軌跡を計算する。これらの検出結果および計算結果は、自己位置情報１６４に記述される。
【００６８】
ステップＳ７では、取得した距離データおよび地図情報１６２に基づいて各歩行者（ＩＤ：０，１，２，…，Ｌ）の位置を検出する。また、各歩行者について、前回の検出結果と今回の検出結果との比較に基づいて移動方向を計算し、さらに、初回から今回までの一連の検出結果から軌跡を計算する。これらの検出結果および計算結果は、歩行者位置情報１６６に記述される。
【００６９】
その後、ステップＳ１に戻って、上記と同様の処理を（たとえば５０分の１秒毎に）繰り返す。こうして、自己位置情報１６４および歩行者位置情報１６６は、最新の距離データに基づきアルタイムに更新される。
【００７０】
なお、ステップＳ５およびＳ７で位置検出等を行う際には、ＬＲＦ４０から距離データに加えて、右左の車輪側センサ１１２ａおよび１１２ｂの出力も参照してよい。パーティクルフィルタ，カルマンフィルタ等の時系列フィルタを用いて位置や移動方向を推定することも可能である。
【００７１】
次に、回避行動決定処理について説明する。図７を参照して、最初のステップＳ２１で終了処理が行われたか否かを判別し、ＹＥＳであればこの回避行動決定処理を終了する。ステップＳ２１でＮＯであれば、ステップＳ２３で変数Ｘに初期値“０”をセットした後、ステップＳ２５に進む。
【００７２】
ステップＳ２５では、タイマＴをリセット（Ｔ＝０）およびスタートする。次のステップＳ２７では、変数Ｘが現時点で検出されている歩行者の数Ｌ（以下“歩行者数Ｌ”）を超えた（Ｘ＞Ｌである）か否かを判別し、ここでＮＯであればステップＳ２９〜Ｓ３５を、ＹＥＳであればステップＳ３７〜Ｓ４７を実行する。
【００７３】
Ｘ≦Ｌの場合、まずステップＳ２９で、自己位置情報１６４から自己の軌跡を、歩行者位置情報１６６から歩行者Ｘの軌跡をそれぞれ取得する。そして、図１０に示すように、自己（ロボットＲ）および歩行者Ｘそれぞれの軌跡（実測軌跡）に基づいて、時刻Ｔ０までのそれぞれの軌跡を予測する。次に、ステップＳ３１で、自己および歩行者Ｘそれぞれの予測軌跡に基づいて、歩行者Ｘおよび自己が共に回避行動をとらなかった場合に、歩行者Ｘは自己とＴ０秒以内にすれ違うか否かを判定する。
【００７４】
このステップＳ３１の判定は、たとえば図１０に示すような、時刻Ｔ０における移動ロボット１０（図中“ロボットＲ”）の位置を中心とする半径Ｄのすれ違い判定円を利用して行われる。移動ロボット１０は、時刻Ｔ０までの歩行者Ｘおよび自己それぞれの予測軌跡を互いに比較して、時刻Ｔ０以前に歩行者Ｘがすれ違い判定円内に入ればステップＳ３１でＹＥＳと判定し、時刻Ｔ０以前に歩行者Ｘがすれ違い判定円内に入らなければステップＳ３１でＮＯと判定する。
【００７５】
テップＳ３１でＹＥＳであれば、ステップＳ３３で自己と歩行者Ｘがすれ違う時刻を計算した後、ステップＳ３５に進む。ステップＳ３１でＮＯであれば、ステップＳ３３をスキップしてステップＳ３５に進む。歩行者Ｘに関するステップＳ３１の判定結果およびステップＳ３３の計算結果は、歩行者位置情報１６６（図５参照）に反映される。
【００７６】
ステップＳ３５では、変数Ｘをインクリメントする（Ｘ＝Ｘ＋１）。その後、ステップＳ２５に戻って上記と同様の処理を繰り返す。このステップＳ２５〜Ｓ３５のループ処理によって、各歩行者（０，１，２，…，Ｌ）についての判定結果および計算結果が、歩行者位置情報１６６に順次反映されていく。
【００７７】
こうして歩行者０〜Ｌに関する歩行者位置情報１６６が完成した後に、ステップＳ３５のインクリメントを経てステップＳ２５に戻ると、次のステップＳ２７の判別結果はＹＥＳとなって、ステップＳ３７〜Ｓ４７の一連の処理が実行される。
【００７８】
ステップＳ３７では、歩行者位置情報１６６を参照して、歩行者０〜Ｌのうち自己とすれ違う時刻が最も早い歩行者を特定し、その歩行者を歩行者Ｔｈとする。ステップＳ３９では、図１１または図１２に示すように、歩行者モデル１５０に従って、歩行者Ｔｈの（Ｔ０−Ｔ１）秒後までの軌跡を予測する。そして、ステップＳ４１で、タイマＴの値を参照して、（Ｔ０−Ｔ１）秒が経過したか否かを判別し、ＮＯであれば一定時間毎に同様の判別を繰り返す。
【００７９】
ステップＳ４１の判別結果がＮＯからＹＥＳに変化すると、ステップＳ４３に進んで、歩行者位置情報１６６から歩行者Ｔｈの（Ｔ０−Ｔ１）秒後までの軌跡を取得する。次のステップＳ４５では、ステップＳ３９で予測した軌跡（予測軌跡）と、ステップＳ４３で取得した軌跡（実測軌跡）とを比較して、両者の一致度合いを計算する。なお、一致度合いは、簡単には、実測軌跡が予測軌跡と完全に一致する場合を“１”とし、実測軌跡が単なる直進である場合を“０”として、０から１までの数値で表現すればよい。
【００８０】
その次のステップＳ４７では、こうして計算した一致度合いに基づいて、歩行者Ｔｈとの衝突を避ける回避行動を決定する。この回避行動決定処理が完了すると、ステップＳ２１に戻って上記と同様の処理を繰り返す。
【００８１】
上記ステップＳ４７の回避行動決定処理は、詳しくは図８に示すフロー（サブルーチン）に従って実行される。図８を参照して、最初、ステップＳ６１で一致度合いが閾値（たとえば０．９）より高いか否かを判別し、ここでＹＥＳであれば、ステップＳ６３で歩行者モデル１５０に従って歩行者ＴｈのＴ０秒後までの軌跡を予測した後、ステップＳ６７に進む。一方、ステップＳ６１でＮＯであれば、ステップＳ６５で、歩行者Ｔｈの（Ｔ０−Ｔ１）秒後までの実測軌跡から、歩行者ＴｈのＴ０秒後までの軌跡を、たとえば歩行者モデル１５０に基づく線形補間によって予測する。いずれかの方法で予測を行った後、ステップＳ６７に進む。
【００８２】
ステップＳ６７では、ステップＳ６３またはＳ６５の予測結果に基づいて、歩行者Ｔｈと一定以上の距離（たとえばE. T. Hallが定義する社会的距離：１．２ｍ以上）を極力保つように、自己の回避経路を決定する。
【００８３】
したがって、図１１に実線で示したように、歩行者Ｔｈが歩行者モデル（１５０）の示す軌跡に沿って移動した場合（一致度合い＝１）、移動ロボット１０は、歩行者モデルに対応する回避経路（歩行者モデルの示す軌跡に対して点対称な軌跡）をとる。つまり、歩行者Ｔｈと移動ロボット１０は、少しずつ均等に避け合うことで、すれ違い時に一定以上の距離が保たれる。一方、図１１に点線で示したように、歩行者Ｔｈが全く避けずに直進した場合には（一致度合い＝０）、すれ違い時に一定以上の距離が保たれるように、大きく回避する経路をとる。
【００８４】
また、上記２つの場合の中間の例として、図１３（Ａ）に示したように、歩行者Ｔｈがある程度避けたものの、歩行者モデルの示す軌跡ほどには避けなかった場合、“Ｔ＝０”〜“Ｔ＝（Ｔ０−Ｔ１）”の期間における予測軌跡および実測軌跡の比較に基づいて、両者の一致度合いが、たとえば“０．６”のように計算される。この一致度合いは、閾値よりも小さいので、“Ｔ＝（Ｔ０−Ｔ１）”〜“Ｔ＝Ｔ０”の期間における予測軌跡は、実測軌跡から、歩行者モデルに基づく線形補間によって、たとえば図１３（Ａ）に二点差線で示されるように計算される。そして、この予測軌跡に対応する回避経路として、すれ違い時に一定以上の距離が保たれるという条件下で、図１３（Ａ）に太い実線で示されるような回避経路、つまり歩行者モデルに対応する回避経路と人が避けない場合の回避経路とを適宜な比率で内分したような回避経路が計算される。この回避経路では、回避を開始するタイミングも、歩行者モデルに対応する回避経路の場合より早くなっている。
【００８５】
このように、歩行者Ｔｈが少ししか避けない場合には、移動ロボット１０は、大きく（素早く）避けることで、すれ違い時に一定以上の距離を保つことができる。
【００８６】
さらに、もう一つの例として、図１３（Ｂ）に示したように、歩行者Ｔｈが歩行者モデルの示す軌跡よりも大きく避けた場合、“Ｔ＝０”〜“Ｔ＝（Ｔ０−Ｔ１）”の期間における予測軌跡および実測軌跡の比較に基づいて一致度合いが計算され、計算結果がたとえば０．６であれば、“Ｔ＝（Ｔ０−Ｔ１）”〜“Ｔ＝Ｔ０”の期間における予測軌跡は、実測軌跡から、同様の歩行者モデルに基づく線形補間によって、たとえば図１３（Ｂ）に二点差線で示されるように計算される。そして、この予測軌跡に対応する回避経路として、図１３（Ｂ）に太い実線で示されるような回避経路、つまり歩行者モデルに対応する回避経路と人が避けない場合の回避経路とを適宜な比率で外分したような回避経路が計算される。この回避経路では、回避を開始するタイミングも、歩行者モデルに対応する回避経路の場合より遅くなっている。このように、歩行者Ｔｈが大きく避けた場合には、移動ロボット１０は、小さく（ゆっくり）避けても、すれ違い時に一定以上の距離を保つことができる。
【００８７】
なお、図１１および図１３では、歩行者ＴｈとロボットＲは対面してすれ違っているが、歩行者ＴｈがロボットＲを追い越す際にも、同様の手順で回避経路が計算される。具体的には、図１２に実線で示すように、歩行者が歩行者モデルの示す軌跡に沿ってロボットＲを追い越す場合、ロボットＲは、すれ違い時に一定以上の距離が保たれるという条件下で、歩行者モデルに対応する回避経路（歩行者が避ける向きとは反対の向きに小さく回避する経路）をとる。一方、図１２に点線で示すように、歩行者が背後からロボットＲを避けることなく直進してくる場合、ロボットＲは、同様の条件下で、歩行者に対して大きく避ける回避経路をとる。
【００８８】
こうして回避経路の計算が完了すると、ステップＳ６９に進む。再び図８を参照して、ステップＳ６９では、ステップＳ６３またはＳ６５で予測した軌跡（歩行者Ｔｈ側の回避経路）とステップＳ６７で計算した自己の回避経路との比較に基づいて、歩行者Ｔｈとすれ違う際の最近接距離が一定（１．２ｍ）以上であるか否かを判別する。ここＹＥＳであれば、ステップＳ６７の計算結果に従う移動制御情報１６８ａをステップＳ７１で作成し、その後、上位のフロー（図７）に戻る。
【００８９】
ステップＳ６９でＮＯであれば、ステップＳ７３で緊急停止を示す移動制御情報１６８ａを作成する。場合によっては、さらにステップＳ７５で、スピーカ６４から警告音を出力したり身振り手振りで危険を知らせたりするための動作制御情報１６８ｂを作成してもよい。その後、上位のフロー（図７）に戻る。
【００９０】
次に、行動制御処理について説明する。図９を参照して、最初、終了処理が行われたか否かをステップＳ８１で判別し、ＹＥＳであればこの行動制御処理を終了する。ステップＳ８１でＮＯであれば、ステップＳ８３で移動制御情報１６８ａが生成されたか否かをさらに判別し、ここでＹＥＳであればステップＳ８５を経てステップＳ８７に進む。ステップＳ８３でＮＯであれば、直ちにステップＳ８７に進む。
【００９１】
ステップＳ８５では、回避行動決定処理の結果が反映された移動制御情報１６８ａに基づいて、右左の車輪モータ３６ａおよび３６ｂを駆動する。その結果、移動ロボット１０は、歩行者Ｔｈの軌跡に応じた回避経路に沿って移動し、一定以上の距離を保って歩行者Ｔｈとすれ違うことができる。歩行者ｔｈと一定以上の距離を保つことができない場合には、緊急停止によって衝突またはニアミスを回避する。
【００９２】
ステップＳ８７では、動作制御情報１６８ｂが生成されたか否かをさらに判別し、ここでＹＥＳであればステップＳ８９を経てステップＳ８１に戻る。ステップＳ８７でＮＯであれば、直ちにステップＳ８１に戻る。
【００９３】
ステップＳ８９では、回避行動決定処理の結果が反映された動作制御情報１６８ｂに基づいて、スピーカ６４や頭部モータ１１０、右左の腕モータ９６および９８などを駆動する。その結果、移動ロボット１０は、警告音や身振り手振りによって、ぶつかってきそうな歩行者Ｔｈの注意さらには回避行動を促すことができる。
【００９４】
以上から明らかなように、この実施例の移動ロボット１０は、自己とすれ違う歩行者（Ｔｈ：図１１〜図１３参照）の軌跡を示す歩行者モデル１５０をメモリ８４の保存領域１４０に記憶している。ＣＰＵ４０は、自己および歩行者の位置を検出して（Ｓ５，Ｓ７）、検出結果および歩行者モデル１５０に基づいて自己とすれ違う歩行者の軌跡を予測し（Ｓ３９〜Ｓ４５，Ｓ６１〜Ｓ６５）、予測結果に応じて自己の回避行動を決定する（Ｓ６７〜Ｓ７５）。したがって、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる。
【００９５】
なお、この実施例では、歩行者の属性は特に考慮していないが、たとえば年齢層（子供／大人／高齢者）や性別といった属性毎に歩行者モデルを準備して、歩行者の軌跡を予測する際にその属性を検出して該当する歩行者モデルを用いたり、自己の回避行動を決定する際に歩行者の属性によって回避の程度や行動内容を変えたりしてもよい。これによって、たとえば、高齢者とすれ違う場合に距離を大きくとったり、子供とすれ違う場合に発話による注意喚起を行ったり、といったきめ細かな対応が可能になる。
【００９６】
なお、この実施例では、移動ロボット１０が自己および歩行者の位置を検出したが、図示しない位置検出システムにその一部または全部を担当させてもよい。この場合、位置検出システムは、環境Ｅｎに配置されたＬＲＦ，赤外線距離センサなどの距離計測装置（図示せず）を含み、こうした距離計測装置からの計測データ（さらには移動ロボット１０に搭載されたＬＲＦ４０からの距離データ）に基づいて移動ロボット１０および歩行者の位置を検出し、検出結果を移動ロボット１０に通知する。移動ロボット１０は、通知された位置に基づいて、上述と同様の回避行動制御処理（図７，図８参照）を実行する。
【００９７】
以上の説明では、一例として移動ロボット１０について説明したが、この発明は、無人カートなどロボット以外の移動体にも適用できる。この場合、移動体を自律的に移動させる（自動走行させる）ための制御システム（のコンピュータ）が、上述と同様の回避行動制御処理を実行する。このような制御システムを図１４に示す。
【００９８】
図１４を参照して、ロボット，無人カートといった移動体１０Ａを制御する制御システム１００は、キーボードなどの入力器１２ａ，モニタなどの表示器１２ｂ，ＣＰＵ１２ｃおよびメモリ１２ｄなどを備えたコンピュータ１２と、環境に配置された複数のＬＲＦ１４とを含む。メモリ１２ｄには、図４に示したものと同様のプログラム（１４２〜１４６），歩行者モデル１５０および情報（１６２〜１６８）が格納され（ただし、無人カートの場合には、動作制御プログラム１４６ｂおよび動作制御情報１６８ｂは省略してよい）、ＣＰＵ１２ｃは、これらのプログラムに従って図６〜図９に示すフローと同様の処理（たたし“自己”は“移動体”と読み替える）を実行する。このような制御システム１００（のコンピュータ１２）の制御下で、移動体１０Ａの自律的な移動が実現される。
【符号の説明】
【００９９】
１０  …移動ロボット
１０Ａ  …移動体
１２  …コンピュータ
３６ａ，３６ｂ  …右左の車輪モータ
４０，１４  …ＬＲＦ（レーザレンジファインダ）
６４  …スピーカ
８０  …ＣＰＵ
８４  …メモリ
９８，９８  …右左の腕モータ
１２２ａ，１２２ｂ  …右左の車輪速センサ
【図１】
0005768273.tif 000002
【図２】
0005768273.tif 000003
【図３】
0005768273.tif 000004
【図４】
0005768273.tif 000005
【図５】
0005768273.tif 000006
【図６】
0005768273.tif 000007
【図７】
0005768273.tif 000008
【図８】
0005768273.tif 000009
【図９】
0005768273.tif 000010
【図１０】
0005768273.tif 000011
【図１１】
0005768273.tif 000012
【図１２】
0005768273.tif 000013
【図１３】
0005768273.tif 000014
【図１４】
0005768273.tif 000015