歩行者の軌跡を予測して自己の回避行動を決定するロボット
【課題】周囲の通行への影響を抑制しながら歩行者と安全にすれ違う。
【解決手段】自律的に行動するロボットRは、自己とすれ違う歩行者Thの軌跡を示す歩行者モデルを記憶しており、自己および歩行者Thの位置を検出して、検出結果および歩行者モデルに基づいて自己とすれ違う歩行者Thの軌跡を予測し、予測結果に応じて自己の回避行動を決定する。
【解決手段】自律的に行動するロボットRは、自己とすれ違う歩行者Thの軌跡を示す歩行者モデルを記憶しており、自己および歩行者Thの位置を検出して、検出結果および歩行者モデルに基づいて自己とすれ違う歩行者Thの軌跡を予測し、予測結果に応じて自己の回避行動を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、自律的に行動するロボットに関し、特にたとえば、歩行者とすれ違う際に当該歩行者の軌跡を予測して自己の回避行動を決定するロボットに関する。
【背景技術】
【0002】
この種の背景技術の一例として、特許文献1には、歩行者の進路を予測し、予測結果がロボットへ向かう進路であるか否かを判定して、歩行者の進路がロボットへ向かう進路であると判定された場合に、歩行者の進路からロボットを退避移動させるようにロボットの走行進路を変更する、自律移動型のロボットが開示されている。
【特許文献1】特開2007−229816号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
ところで、一般に、歩行者同士がすれ違う際には、双方が回避行動をとる(つまり進路を少しずつ譲り合う)ことが多い。歩行者は、すれ違う相手がロボットの場合にも回避行動をとる可能性が高く、むしろ相手が人の場合よりも大きい回避行動をとる傾向が見られる。
【0004】
そこで、歩行者も回避行動をとると予想される場合には、ロボットは、自己の回避行動を小さくすることで、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる。
【0005】
しかしながら、上記の背景技術では、歩行者側が回避行動をとる可能性について何ら考慮していないので、ロボット側の回避行動を制御することができなかった。
【0006】
それゆえに、この発明の主たる目的は、新規な、自律行動型のロボットを提供することである。
【0007】
この発明の他の目的は、歩行者とすれ違う際に当該歩行者の回避行動(軌跡)を予測することで、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる、自律行動型のロボットを提供することである。
【課題を解決するための手段】
【0008】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0009】
第1の発明は、自律的に行動するロボットであって、自己とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、自己の位置を検出する第1検出手段、歩行者の位置を検出する第2検出手段、第1および第2検出手段の検出結果と歩行者モデルとに基づいて自己とすれ違う歩行者の軌跡を予測する予測手段、および予測手段の予測結果に応じて自己の回避行動を決定する回避行動決定手段を備える。
【0010】
第1の発明では、ロボット(10)は、自己(ロボット自身)とすれ違う歩行者の軌跡を示す歩行者モデル(150)を記憶手段(140)に記憶しており、自己の位置を第1検出手段(S5)で、歩行者の位置を第2検出手段(S7)でそれぞれ検出して、これらの検出結果と歩行者モデルとに基づいて、自己とすれ違う歩行者の軌跡を予測手段(S39〜S45,S61〜S65)で予測する。そして、この予測結果に応じて、自己の回避行動を回避行動決定手段(S67〜S75)で決定する。
【0011】
なお、歩行者が自己とすれ違うか否かは、たとえば、歩行者および自己が共に回避行動をとらなかったと仮定して、歩行者および自己それぞれについて、現時点(T=0)までの軌跡に基づいて所定時間後(T=T0)までの軌跡を予測し、予測した2つの軌跡を比較することにより判定する。ある実施例では、時刻T0におけるロボットの位置を中心とする半径Dのすれ違い判定円を利用して、時刻T0以前に歩行者がすれ違い判定円内に入ればすれ違うと判定し、時刻T0以前に歩行者がすれ違い判定円内に入らなければすれ違わないと判定する。
【0012】
第1の発明によれば、自己とすれ違う歩行者の軌跡を予測して自己の回避行動を決定するので、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる。
【0013】
第2の発明は、第1の発明に従属するロボットであって、予測手段は、歩行者モデルに従って予測した予測軌跡と第2検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し(S39〜S45)、計算した一致度合いが閾値よりも高い場合には歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には歩行者モデルに基づく補間によって当該実測軌跡から後の軌跡をそれぞれ予測する(S61〜S65)。
【0014】
なお、補間は、ある実施例では線形補間であるが、非線形補間でもよい。
【0015】
第2の発明によれば、ある時点(T=T0−T1)までの予測軌跡および実測軌跡の一致度合いに応じて、その後の軌跡の予測方法を切り換える(具体的には、一致度合いが高ければ歩行者モデルに従う予測を継続し、一致度合いが低ければ歩行者モデルに基づく補間による予測に切り換える)ので、歩行者モデルを用いて精度よく軌跡を予測することができる。
【0016】
第3の発明は、第1または第2の発明に従属するロボットであって、回避行動決定手段は、予測手段の予測結果に基づいて、自己とすれ違う歩行者を、当該歩行者が自己を大きく避ける場合には小さく、当該歩行者が自己を避けないか小さく避ける場合には大きく、避けるように自己の回避経路を計算する計算手段(S67)を含む。
【0017】
第3の発明によれば、自己とすれ違う歩行者との間の距離を極力一定以上に保つことができる。
【0018】
第4の発明は、第3の発明に従属するロボットであって、回避行動決定手段は、予測手段の予測結果および計算手段の計算結果に基づいて、自己とすれ違う歩行者との間の最近接距離が閾値以上であるか否かを判別する判別手段(S69)、および、判別手段によって最近接距離が閾値以上であると判別された場合に自己を計算手段の計算結果に従って移動させるための移動制御情報(168a)を作成する第1作成手段(S71)を含む。
【0019】
第4の発明によれば、歩行者と一定以上の距離を保って安全にすれ違うことができる。
【0020】
第5の発明は、第4の発明に従属するロボットであって、回避行動決定手段は、判別手段によって最近接距離が閾値未満であると判別された場合に自己を停止させるための移動制御情報(168a)を作成する第2作成手段(S73)をさらに含む。
【0021】
第5の発明によれば、一定以上の距離を保てない場合には緊急停止することで、安全性が高まる。
【0022】
第6の発明は、第5の発明に従属するロボットであって、回避行動決定手段は、判別手段によって最近接距離が閾値未満であると判別された場合に音声および/または身振り手振りによって当該歩行者の回避行動を誘発する動作を行わせるための動作制御情報(168b)を作成する第3作成手段をさらに含む。
【0023】
第6の発明によれば、一定以上の距離を保てない場合には、自ら緊急停止するだけでなく、歩行者側の回避行動を誘発することで、いっそう安全性が高まる。
【0024】
第7の発明は、移動体(10A)を自律的に移動させるための制御システム(100)であって、移動体とすれ違う歩行者の軌跡を示す歩行者モデル(150)が記憶された記憶手段(140)、移動体の位置を検出する第1検出手段(S5)、
歩行者の位置を検出する第2検出手段(S7)、第1および第2検出手段の検出結果と歩行者モデル(150)とに基づいて移動体とすれ違う歩行者の軌跡を予測する予測手段(S39〜S45,S61〜S65)、および予測手段の予測結果に応じて移動体の回避経路を計算する計算手段(S67)を備える。
【0025】
第8の発明は、制御プログラム(142,144)であって、移動体(10)を自律的に移動させるための制御システム(100)のコンピュータ(12)を、移動体とすれ違う歩行者の軌跡を示す歩行者モデル(150)が記憶された記憶手段(140)、移動体の位置を検出する第1検出手段(S5)、歩行者の位置を検出する第2検出手段(S7)、第1および第2検出手段の検出結果と歩行者モデル(150)とに基づいて移動体とすれ違う歩行者の軌跡を予測する予測手段(S39〜S45,S61〜S65)、および予測手段の予測結果に応じて移動体の回避経路を計算する計算手段(S67)として機能させる。
【0026】
第7,第8の各発明によれば、移動体とすれ違う歩行者の軌跡を予測して移動体の回避経路を計算するので、周囲の通行への影響を抑制しながら移動体を歩行者と安全にすれ違わせることができる。
【発明の効果】
【0027】
この発明によれば、歩行者とすれ違う際に当該歩行者の回避行動(軌跡)を予測することで、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる、自律行動型のロボットが実現される。また、周囲の通行への影響を抑制しながら移動体を歩行者と安全にすれ違わせることができる、制御装置および制御プログラムが実現される。
【0028】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0029】
【図1】この発明の一実施例である移動ロボットの外観図を示す図解図である。
【図2】移動ロボットの電気的構成を示すブロック図である。
【図3】移動ロボットが自律的に行動する環境の一例を示す図解図である。
【図4】移動ロボットのメモリマップを示す図解図である。
【図5】歩行者位置情報のデータ構造を示す図解図である。
【図6】移動ロボットのCPU動作の一部を示すフロー図である。
【図7】移動ロボットのCPU動作の他の一部を示すフロー図である。
【図8】移動ロボットのCPU動作のその他の一部を示すフロー図である。
【図9】移動ロボットのCPU動作のさらにその他の一部を示すフロー図である。
【図10】移動ロボットが歩行者とすれ違うか否かを判定する方法を示す図解図である。
【図11】移動ロボットが歩行者とすれ違う際(対面すれ違い時)にとる回避行動の一例を示す図解図である。
【図12】移動ロボットが歩行者から追い越される際(追い越しすれ違い時)にとる回避行動の他の一例を示す図解図である。
【図13】線形補間による歩行者の予測軌跡とそれに対応する移動ロボットの回避経路の例を示す図解図であり、(A)は歩行者側の回避量が歩行者モデルよりも小さい場合を、(B)は歩行者側の回避量が歩行者モデルよりも大きい場合をそれぞれ示す。
【図14】この発明の他の実施例を示すブロック図である。
【発明を実施するための形態】
【0030】
図1を参照して、この発明の一実施例である移動ロボット10は、自律行動型のロボットであり、予め記憶した地図(間取り図)情報および自身に備わる各種センサからのセンサ情報に基づいて自律的に行動する(移動および動作する)ことができる。
【0031】
最初、概要を説明する。移動ロボット10は、複数(たとえば4つ)のレーザレンジファインダ(以下“LRF”)40を備えている。LRF40は、自身から目標(歩行者,障害物など)ないし周辺環境(通路沿いの壁面,道路沿いの建造物など)までの距離を計測し、距離データを出力する。移動ロボット10は、自身が行動する環境(En:図3参照)に関する地図情報(162:図4参照)を記憶しており、この地図情報に基づいて移動しながら、LRF40から距離データ(および図2に示す右左の車輪速度センサ112aおよび112bの出力データ)を取得して、取得した距離データ等に基づいて環境における移動ロボット10自身の位置(自己位置)および移動方向を計算し、さらに目標(歩行者)の位置および移動方向をも計算する。
【0032】
ここで、LRFは一般に、レーザーを照射し、それが目標で反射して戻ってくるまでの時間に基づいて、当該目標までの距離を計測するものである。LRF40は、たとえば、トランスミッタ(図示せず)から照射したレーザーを回転ミラー(図示せず)で反射させて、前方を扇状に一定角度(たとえば0.5度)ずつスキャンすることで、単に目標までの距離を計測するだけでなく、目標の表面に関する2次元距離情報(表面の形状を角度および距離の2変数で記述した情報)も生成することができる。LRF40からの距離データには、このような2次元距離情報が含まれており、移動ロボット10は、2次元距離情報に基づいて目標を識別することができる。
【0033】
なお、移動ロボット10に搭載されて距離を計測するセンサ(距離センサ)は、LRFに限らず、たとえば赤外線距離センサ,レーダ,ソナーなどでもよい。
【0034】
移動ロボット10では、記憶している地図情報とLRF40からの距離データ(2次元距離情報)を含む各種のセンサ情報とに基づいて動作制御情報が生成され、この生成された動作制御情報に基づいて各種モータ(92〜98,110,36aおよび36b)やスピーカ(64)が駆動される。こうして、移動ロボット10の自律的な行動たとえば自動走行,発話動作,身体動作(身振り手振り)などが実現される。
【0035】
特に、移動ロボット10は、歩行者とすれ違う際に、歩行者モデル(150)に基づき歩行者の回避行動(移動ロボット10を避けて迂回する軌跡)を予測して、周囲の通行への影響も抑制しつつ歩行者との衝突を回避するように、自己の回避行動を決定(たとえば回避経路を計算したり緊急停止したり警告音を発したり)することができる。
【0036】
次に、各要素について詳しく説明する。図1は、この実施例の移動ロボット10の外観を示す正面図である。図1を参照して、移動ロボット10は台車30を含み、台車30の下面には右車輪32aおよび左車輪32b(特に区別しない場合には「車輪32」と記す)ならびに1つの従輪34が設けられる。右車輪32aおよび左車輪32bは、右車輪モータ36aおよび左車輪モータ36b(図2参照)によってそれぞれ独立に駆動され、台車30ひいては移動ロボット10全体を前後左右の任意方向に動かすことができる。また、従輪34は車輪32を補助する補助輪である。
【0037】
台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の赤外線距離センサ40が取り付けられる。これらの赤外線距離センサ40は、センサ取り付けパネル38つまり移動ロボット10自身と、その周囲の物体(人間や障害物など)との距離を測定するものである。
【0038】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、小型のLRF、超音波距離センサまたはミリ波レーダなどを用いることもできるし、これらを適宜組み合わせて用いてもよい。
【0039】
センサ取り付けパネル38の上には、胴体42が直立するように設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した赤外線距離センサ40がさらに設けられており、これによって前方の対象たとえば人間との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、アンテナ118ならびに全方位カメラ46が設けられる。
【0040】
アンテナ118は、図示しない外部コンピュータ(たとえばPC)と無線通信を行うためのアンテナであり、PCからの無線信号を受信し、PCに無線信号を送信する。全方位カメラ46は、移動ロボット10の周囲を撮影するものであり、後述する眼カメラ70とは区別される。全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ40,アンテナ118および全方位カメラ46の設置位置は、当該部位に限定されず適宜変更されてもよい。
【0041】
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
【0042】
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
【0043】
前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当する球体56Rおよび球体56Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車30の前面、肩関節48Rと肩関節48Lとを含む肩に相当する部位、上腕50R、上腕50L、前腕54R、前腕54L、球体56Rおよび球体56Lには、それぞれ、接触センサ58(図2で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、移動ロボット10は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止して移動ロボット10の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。なお、接触センサ58の設置位置は、当該部位に限定されず、適宜な位置(人の胸、腹、脇、背中および腰に相当する位置)に設けられてもよい。
【0044】
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)は移動ロボット10の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
【0045】
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、移動ロボット10が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66と言うことがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部68Rおよび眼球部68Lが設けられる。眼球部68Rおよび眼球部68Lは、それぞれ眼カメラ70Rおよび眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68と言うことがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70と言うことがある。
【0046】
眼カメラ70は、移動ロボット10自身から見える前方の視界や、移動ロボット10に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【0047】
このように、この実施例の移動ロボット10は、車輪32の独立2軸駆動、肩関節48の3自由度(左右で6自由度)、肘関節52の1自由度(左右で2自由度)、首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
【0048】
図2は、移動ロボット10の電気的な構成を示すブロック図である。図2を参照して、移動ロボット10は、CPU80を含む。CPU80は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。CPU80は、RTC(Real Time Clock)80aを含んでおり、各センサからの信号ないしデータ(センサ情報)に対してRTCに基づく時刻データを付加する。また、CPU80は、任意の時刻からの経過時間を計時するためのタイマ(T)も含む。
【0049】
メモリ84は、図示は省略をするが、不揮発メモリ(保存領域)としてSSD(Solid State Drive)およびROMと、揮発メモリ(一時記憶領域)としてRAMとを含む。SSD,ROMつまり保存領域(140:図8参照)には、移動ロボット10自身の位置(自己位置)および歩行者の位置を検出して回避行動を決定するための各種のプログラム(後述)が予め記憶される。RAMつまり一時記憶領域(160:図8参照)は、ワークメモリないしバッファメモリとして、地図情報を一時保持したり、プログラムによって参照される各種の情報(後述)を更新可能に記憶したりする。
【0050】
モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、CPU80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(図2では、まとめて「右眼球モータ92」と示す。)の回転角度を制御する。同様に、モータ制御ボード86は、CPU80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(図2では、まとめて「左眼球モータ94」と示す。)の回転角度を制御する。
【0051】
また、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図2では、まとめて「右腕モータ96」と示す。)の回転角度を制御する。同様に、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図2では、まとめて「左腕モータ98」と示す。)の回転角度を制御する。
【0052】
さらに、モータ制御ボード86は、CPU80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図2では、まとめて「頭部モータ110」と示す。)の回転角度を制御する。そして、モータ制御ボード86は、CPU80からの制御データを受け、右車輪32aを駆動する右車輪モータ36a、左車輪32bを駆動する左車輪モータ36bの回転角度を、それぞれ個別に制御する。なお、この実施例では、車輪モータ36を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ36と同様に直流モータを用いるようにしてもよい。また、移動ロボット10の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更されてもよい。たとえば、他の実施例では、エアアクチュエータなどが適用されてもよい。
【0053】
センサ入力/出力ボード88は、モータ制御ボード86と同様に、たとえばDSPで構成され、各センサからの信号(センサ情報)を取り込んでCPU80に与える。すなわち、赤外線距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてCPU80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからCPU80に入力される。眼カメラ70からの映像信号も、同様に、CPU80に入力される。また、上述した複数の接触センサ58(図2では、まとめて「接触センサ58」と示す。)からの信号がセンサ入力/出力ボード88を介してCPU80に与えられる。
【0054】
また、センサ入力/出力ボード88には、右車輪32aの回転速度(車輪速)を検出する右車輪速センサ112a、左車輪32bの回転速度を検出する左車輪速センサ112bがさらに接続される。そして、右車輪速センサ112aおよび左車輪速センサ112bからのそれぞれから、一定時間における右車輪32aおよび左車輪32bの回転数(車輪速)に関するデータが、センサ入力/出力ボート88を通じて、CPU80に入力される。
【0055】
音声入力/出力ボード90も、他の入力/出力ボードと同様にたとえばDSPで構成され、図2ではCPU80,メモリ84または音声入力/出力ボード90から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してCPU80に与えられる。
【0056】
また、CPU80は、バス82を介して通信LANボード114に接続される。通信LANボード114は、たとえばDSPで構成され、CPU80から与えられた送信データを無線通信回路116に与え、無線通信回路116は送信データを、アンテナ118からネットワーク200を介して図示しないPC,遠隔操作装置など(以下“PC等”)に送信する。また、通信LANボード114は、無線通信回路116を介してアンテナ118でPC等からデータを受信し、受信したデータをCPU80に与える。
【0057】
以上のように構成された移動ロボット10は、たとえば図3に示すように、ショッピングセンタなどの環境En内を自動走行しつつ、自己および歩行者(ID:0,1,2,…)の位置を検出し、自己とすれ違う歩行者(ここでは歩行者“0”)を特定してその軌跡を予測し、予測結果に応じた回避行動をとる(歩行者と一定以上の距離を保ってすれ違う回避経路を計算する)ことで、周囲(たとえば歩行者“1”,“2”)の通行への影響を抑制しながら、歩行者“0”と安全にすれ違うことができる。
【0058】
以下には、移動ロボット10が行う回避行動およびそれを実現するためにCPU80が実行する情報処理について、図4のメモリマップ、図6〜図9のフローチャート、ならびに図5および図10〜図13の図解図を用いて詳しく説明する。
【0059】
図4を参照して、メモリ84は保存領域140および一時記憶領域160を含み、保存領域140には位置検出プログラム142,回避行動決定プログラム144,行動制御プログラム146および歩行者モデル150が記憶され、一時記憶領域160には地図情報162,自己位置情報164,歩行者位置情報166および行動制御情報168が一時記憶される。
【0060】
位置検出プログラム142は、LRF40からの距離データ(および右左の車輪速度センサ112aおよび112bの出力データ)と地図情報162とに基づいて移動ロボット10自身および歩行者の位置を検出し、さらに検出結果に基づいて各々の移動方向および軌跡を計算するためのプログラムであり、図6のフローチャートに対応する。位置検出プログラム142の検出結果は、自己位置情報164および歩行者位置情報166(後述)に反映される。
【0061】
すなわち、自己位置情報164には、移動ロボット10自身について、現時点における位置および移動方向、ならびに現時点までの軌跡が記述される。歩行者位置情報166には、図5に示すように、各歩行者について、歩行者ID,現時点における位置および移動方向、ならびに現時点までの軌跡が記述され、さらにロボットとすれ違う時刻も記述される。
【0062】
回避行動決定プログラム144は、自己位置情報164および歩行者位置情報166と歩行者モデル150とに基づいて、自己とすれ違う歩行者の回避行動を予測し、予測結果に応じて自己の回避行動を決定するためのプログラムであり、図7および図8のフローチャートに対応する。回避行動決定プログラム144の決定結果は、行動制御情報168に反映される。
【0063】
行動制御プログラム146は、行動制御情報168に基づいて移動ロボット10の行動(移動および動作)を制御するためのプログラムであり、図9に示すフローチャートに対応する。行動制御プログラム146には移動制御プログラム146aおよび動作制御プログラム146bが含まれ、行動制御情報168には移動制御情報168aおよび動作制御情報168bが含まれている。移動制御プログラム146aは、移動制御情報168aに基づいて移動ロボット10の移動を制御するためのプログラムであり、図9のステップS85に対応する。動作制御プログラム146bは、動作制御情報168bに基づいて移動ロボット10の動作を制御するためのプログラムであり、図9のステップS89に対応する。
【0064】
歩行者モデル150は、歩行者がロボットとすれ違う際にとる回避行動(ロボットを避けて迂回する軌跡)を示すモデルであり、対面すれ違い時のモデル(図11参照)および追い越しすれ違い時のモデル(図12参照)を含む。なお、歩行者モデル150は、事前に歩行者がロボットとすれ違う際にとる回避行動を計測した結果に基づいて作成される。
【0065】
CPU80は、メモリ84に記憶された各種のプログラム(142〜146)およびデータ(150,162〜186)に基づいて、図6のフローに従う位置検出処理と、図7および図8のフローに従う回避行動制御処理と、図9のフローに従う行動制御処理とを並列的に実行する。
【0066】
まず、位置検出処理について説明する。図6を参照して、最初、ステップS1で終了処理が行われたか否かを判別し、YESであればこの位置検出処理を終了する。ステップS1でNOであれば、ステップS3でLRF40から距離データを取得した後、ステップS5およびS7に進んで自己および歩行者の位置検出を行う。
【0067】
具体的には、ステップS5で、取得した距離データおよび地図情報162に基づいて自己位置を検出する。また、前回の検出結果と今回の検出結果との比較に基づいて移動方向を計算し、さらに、初回から今回までの一連の検出結果から軌跡を計算する。これらの検出結果および計算結果は、自己位置情報164に記述される。
【0068】
ステップS7では、取得した距離データおよび地図情報162に基づいて各歩行者(ID:0,1,2,…,L)の位置を検出する。また、各歩行者について、前回の検出結果と今回の検出結果との比較に基づいて移動方向を計算し、さらに、初回から今回までの一連の検出結果から軌跡を計算する。これらの検出結果および計算結果は、歩行者位置情報166に記述される。
【0069】
その後、ステップS1に戻って、上記と同様の処理を(たとえば50分の1秒毎に)繰り返す。こうして、自己位置情報164および歩行者位置情報166は、最新の距離データに基づきアルタイムに更新される。
【0070】
なお、ステップS5およびS7で位置検出等を行う際には、LRF40から距離データに加えて、右左の車輪側センサ112aおよび112bの出力も参照してよい。パーティクルフィルタ,カルマンフィルタ等の時系列フィルタを用いて位置や移動方向を推定することも可能である。
【0071】
次に、回避行動決定処理について説明する。図7を参照して、最初のステップS21で終了処理が行われたか否かを判別し、YESであればこの回避行動決定処理を終了する。ステップS21でNOであれば、ステップS23で変数Xに初期値“0”をセットした後、ステップS25に進む。
【0072】
ステップS25では、タイマTをリセット(T=0)およびスタートする。次のステップS27では、変数Xが現時点で検出されている歩行者の数L(以下“歩行者数L”)を超えた(X>Lである)か否かを判別し、ここでNOであればステップS29〜S35を、YESであればステップS37〜S47を実行する。
【0073】
X≦Lの場合、まずステップS29で、自己位置情報164から自己の軌跡を、歩行者位置情報166から歩行者Xの軌跡をそれぞれ取得する。そして、図10に示すように、自己(ロボットR)および歩行者Xそれぞれの軌跡(実測軌跡)に基づいて、時刻T0までのそれぞれの軌跡を予測する。次に、ステップS31で、自己および歩行者Xそれぞれの予測軌跡に基づいて、歩行者Xおよび自己が共に回避行動をとらなかった場合に、歩行者Xは自己とT0秒以内にすれ違うか否かを判定する。
【0074】
このステップS31の判定は、たとえば図10に示すような、時刻T0における移動ロボット10(図中“ロボットR”)の位置を中心とする半径Dのすれ違い判定円を利用して行われる。移動ロボット10は、時刻T0までの歩行者Xおよび自己それぞれの予測軌跡を互いに比較して、時刻T0以前に歩行者Xがすれ違い判定円内に入ればステップS31でYESと判定し、時刻T0以前に歩行者Xがすれ違い判定円内に入らなければステップS31でNOと判定する。
【0075】
テップS31でYESであれば、ステップS33で自己と歩行者Xがすれ違う時刻を計算した後、ステップS35に進む。ステップS31でNOであれば、ステップS33をスキップしてステップS35に進む。歩行者Xに関するステップS31の判定結果およびステップS33の計算結果は、歩行者位置情報166(図5参照)に反映される。
【0076】
ステップS35では、変数Xをインクリメントする(X=X+1)。その後、ステップS25に戻って上記と同様の処理を繰り返す。このステップS25〜S35のループ処理によって、各歩行者(0,1,2,…,L)についての判定結果および計算結果が、歩行者位置情報166に順次反映されていく。
【0077】
こうして歩行者0〜Lに関する歩行者位置情報166が完成した後に、ステップS35のインクリメントを経てステップS25に戻ると、次のステップS27の判別結果はYESとなって、ステップS37〜S47の一連の処理が実行される。
【0078】
ステップS37では、歩行者位置情報166を参照して、歩行者0〜Lのうち自己とすれ違う時刻が最も早い歩行者を特定し、その歩行者を歩行者Thとする。ステップS39では、図11または図12に示すように、歩行者モデル150に従って、歩行者Thの(T0−T1)秒後までの軌跡を予測する。そして、ステップS41で、タイマTの値を参照して、(T0−T1)秒が経過したか否かを判別し、NOであれば一定時間毎に同様の判別を繰り返す。
【0079】
ステップS41の判別結果がNOからYESに変化すると、ステップS43に進んで、歩行者位置情報166から歩行者Thの(T0−T1)秒後までの軌跡を取得する。次のステップS45では、ステップS39で予測した軌跡(予測軌跡)と、ステップS43で取得した軌跡(実測軌跡)とを比較して、両者の一致度合いを計算する。なお、一致度合いは、簡単には、実測軌跡が予測軌跡と完全に一致する場合を“1”とし、実測軌跡が単なる直進である場合を“0”として、0から1までの数値で表現すればよい。
【0080】
その次のステップS47では、こうして計算した一致度合いに基づいて、歩行者Thとの衝突を避ける回避行動を決定する。この回避行動決定処理が完了すると、ステップS21に戻って上記と同様の処理を繰り返す。
【0081】
上記ステップS47の回避行動決定処理は、詳しくは図8に示すフロー(サブルーチン)に従って実行される。図8を参照して、最初、ステップS61で一致度合いが閾値(たとえば0.9)より高いか否かを判別し、ここでYESであれば、ステップS63で歩行者モデル150に従って歩行者ThのT0秒後までの軌跡を予測した後、ステップS67に進む。一方、ステップS61でNOであれば、ステップS65で、歩行者Thの(T0−T1)秒後までの実測軌跡から、歩行者ThのT0秒後までの軌跡を、たとえば歩行者モデル150に基づく線形補間によって予測する。いずれかの方法で予測を行った後、ステップS67に進む。
【0082】
ステップS67では、ステップS63またはS65の予測結果に基づいて、歩行者Thと一定以上の距離(たとえばE. T. Hallが定義する社会的距離:1.2m以上)を極力保つように、自己の回避経路を決定する。
【0083】
したがって、図11に実線で示したように、歩行者Thが歩行者モデル(150)の示す軌跡に沿って移動した場合(一致度合い=1)、移動ロボット10は、歩行者モデルに対応する回避経路(歩行者モデルの示す軌跡に対して点対称な軌跡)をとる。つまり、歩行者Thと移動ロボット10は、少しずつ均等に避け合うことで、すれ違い時に一定以上の距離が保たれる。一方、図11に点線で示したように、歩行者Thが全く避けずに直進した場合には(一致度合い=0)、すれ違い時に一定以上の距離が保たれるように、大きく回避する経路をとる。
【0084】
また、上記2つの場合の中間の例として、図13(A)に示したように、歩行者Thがある程度避けたものの、歩行者モデルの示す軌跡ほどには避けなかった場合、“T=0”〜“T=(T0−T1)”の期間における予測軌跡および実測軌跡の比較に基づいて、両者の一致度合いが、たとえば“0.6”のように計算される。この一致度合いは、閾値よりも小さいので、“T=(T0−T1)”〜“T=T0”の期間における予測軌跡は、実測軌跡から、歩行者モデルに基づく線形補間によって、たとえば図13(A)に二点差線で示されるように計算される。そして、この予測軌跡に対応する回避経路として、すれ違い時に一定以上の距離が保たれるという条件下で、図13(A)に太い実線で示されるような回避経路、つまり歩行者モデルに対応する回避経路と人が避けない場合の回避経路とを適宜な比率で内分したような回避経路が計算される。この回避経路では、回避を開始するタイミングも、歩行者モデルに対応する回避経路の場合より早くなっている。
【0085】
このように、歩行者Thが少ししか避けない場合には、移動ロボット10は、大きく(素早く)避けることで、すれ違い時に一定以上の距離を保つことができる。
【0086】
さらに、もう一つの例として、図13(B)に示したように、歩行者Thが歩行者モデルの示す軌跡よりも大きく避けた場合、“T=0”〜“T=(T0−T1)”の期間における予測軌跡および実測軌跡の比較に基づいて一致度合いが計算され、計算結果がたとえば0.6であれば、“T=(T0−T1)”〜“T=T0”の期間における予測軌跡は、実測軌跡から、同様の歩行者モデルに基づく線形補間によって、たとえば図13(B)に二点差線で示されるように計算される。そして、この予測軌跡に対応する回避経路として、図13(B)に太い実線で示されるような回避経路、つまり歩行者モデルに対応する回避経路と人が避けない場合の回避経路とを適宜な比率で外分したような回避経路が計算される。この回避経路では、回避を開始するタイミングも、歩行者モデルに対応する回避経路の場合より遅くなっている。このように、歩行者Thが大きく避けた場合には、移動ロボット10は、小さく(ゆっくり)避けても、すれ違い時に一定以上の距離を保つことができる。
【0087】
なお、図11および図13では、歩行者ThとロボットRは対面してすれ違っているが、歩行者ThがロボットRを追い越す際にも、同様の手順で回避経路が計算される。具体的には、図12に実線で示すように、歩行者が歩行者モデルの示す軌跡に沿ってロボットRを追い越す場合、ロボットRは、すれ違い時に一定以上の距離が保たれるという条件下で、歩行者モデルに対応する回避経路(歩行者が避ける向きとは反対の向きに小さく回避する経路)をとる。一方、図12に点線で示すように、歩行者が背後からロボットRを避けることなく直進してくる場合、ロボットRは、同様の条件下で、歩行者に対して大きく避ける回避経路をとる。
【0088】
こうして回避経路の計算が完了すると、ステップS69に進む。再び図8を参照して、ステップS69では、ステップS63またはS65で予測した軌跡(歩行者Th側の回避経路)とステップS67で計算した自己の回避経路との比較に基づいて、歩行者Thとすれ違う際の最近接距離が一定(1.2m)以上であるか否かを判別する。ここYESであれば、ステップS67の計算結果に従う移動制御情報168aをステップS71で作成し、その後、上位のフロー(図7)に戻る。
【0089】
ステップS69でNOであれば、ステップS73で緊急停止を示す移動制御情報168aを作成する。場合によっては、さらにステップS75で、スピーカ64から警告音を出力したり身振り手振りで危険を知らせたりするための動作制御情報168bを作成してもよい。その後、上位のフロー(図7)に戻る。
【0090】
次に、行動制御処理について説明する。図9を参照して、最初、終了処理が行われたか否かをステップS81で判別し、YESであればこの行動制御処理を終了する。ステップS81でNOであれば、ステップS83で移動制御情報168aが生成されたか否かをさらに判別し、ここでYESであればステップS85を経てステップS87に進む。ステップS83でNOであれば、直ちにステップS87に進む。
【0091】
ステップS85では、回避行動決定処理の結果が反映された移動制御情報168aに基づいて、右左の車輪モータ36aおよび36bを駆動する。その結果、移動ロボット10は、歩行者Thの軌跡に応じた回避経路に沿って移動し、一定以上の距離を保って歩行者Thとすれ違うことができる。歩行者thと一定以上の距離を保つことができない場合には、緊急停止によって衝突またはニアミスを回避する。
【0092】
ステップS87では、動作制御情報168bが生成されたか否かをさらに判別し、ここでYESであればステップS89を経てステップS81に戻る。ステップS87でNOであれば、直ちにステップS81に戻る。
【0093】
ステップS89では、回避行動決定処理の結果が反映された動作制御情報168bに基づいて、スピーカ64や頭部モータ110、右左の腕モータ96および98などを駆動する。その結果、移動ロボット10は、警告音や身振り手振りによって、ぶつかってきそうな歩行者Thの注意さらには回避行動を促すことができる。
【0094】
以上から明らかなように、この実施例の移動ロボット10は、自己とすれ違う歩行者(Th:図11〜図13参照)の軌跡を示す歩行者モデル150をメモリ84の保存領域140に記憶している。CPU40は、自己および歩行者の位置を検出して(S5,S7)、検出結果および歩行者モデル150に基づいて自己とすれ違う歩行者の軌跡を予測し(S39〜S45,S61〜S65)、予測結果に応じて自己の回避行動を決定する(S67〜S75)。したがって、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる。
【0095】
なお、この実施例では、歩行者の属性は特に考慮していないが、たとえば年齢層(子供/大人/高齢者)や性別といった属性毎に歩行者モデルを準備して、歩行者の軌跡を予測する際にその属性を検出して該当する歩行者モデルを用いたり、自己の回避行動を決定する際に歩行者の属性によって回避の程度や行動内容を変えたりしてもよい。これによって、たとえば、高齢者とすれ違う場合に距離を大きくとったり、子供とすれ違う場合に発話による注意喚起を行ったり、といったきめ細かな対応が可能になる。
【0096】
なお、この実施例では、移動ロボット10が自己および歩行者の位置を検出したが、図示しない位置検出システムにその一部または全部を担当させてもよい。この場合、位置検出システムは、環境Enに配置されたLRF,赤外線距離センサなどの距離計測装置(図示せず)を含み、こうした距離計測装置からの計測データ(さらには移動ロボット10に搭載されたLRF40からの距離データ)に基づいて移動ロボット10および歩行者の位置を検出し、検出結果を移動ロボット10に通知する。移動ロボット10は、通知された位置に基づいて、上述と同様の回避行動制御処理(図7,図8参照)を実行する。
【0097】
以上の説明では、一例として移動ロボット10について説明したが、この発明は、無人カートなどロボット以外の移動体にも適用できる。この場合、移動体を自律的に移動させる(自動走行させる)ための制御システム(のコンピュータ)が、上述と同様の回避行動制御処理を実行する。このような制御システムを図14に示す。
【0098】
図14を参照して、ロボット,無人カートといった移動体10Aを制御する制御システム100は、キーボードなどの入力器12a,モニタなどの表示器12b,CPU12cおよびメモリ12dなどを備えたコンピュータ12と、環境に配置された複数のLRF14とを含む。メモリ12dには、図4に示したものと同様のプログラム(142〜146),歩行者モデル150および情報(162〜168)が格納され(ただし、無人カートの場合には、動作制御プログラム146bおよび動作制御情報168bは省略してよい)、CPU12cは、これらのプログラムに従って図6〜図9に示すフローと同様の処理(たたし“自己”は“移動体”と読み替える)を実行する。このような制御システム100(のコンピュータ12)の制御下で、移動体10Aの自律的な移動が実現される。
【符号の説明】
【0099】
10 …移動ロボット
10A …移動体
12 …コンピュータ
36a,36b …右左の車輪モータ
40,14 …LRF(レーザレンジファインダ)
64 …スピーカ
80 …CPU
84 …メモリ
98,98 …右左の腕モータ
122a,122b …右左の車輪速センサ
【技術分野】
【0001】
この発明は、自律的に行動するロボットに関し、特にたとえば、歩行者とすれ違う際に当該歩行者の軌跡を予測して自己の回避行動を決定するロボットに関する。
【背景技術】
【0002】
この種の背景技術の一例として、特許文献1には、歩行者の進路を予測し、予測結果がロボットへ向かう進路であるか否かを判定して、歩行者の進路がロボットへ向かう進路であると判定された場合に、歩行者の進路からロボットを退避移動させるようにロボットの走行進路を変更する、自律移動型のロボットが開示されている。
【特許文献1】特開2007−229816号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
ところで、一般に、歩行者同士がすれ違う際には、双方が回避行動をとる(つまり進路を少しずつ譲り合う)ことが多い。歩行者は、すれ違う相手がロボットの場合にも回避行動をとる可能性が高く、むしろ相手が人の場合よりも大きい回避行動をとる傾向が見られる。
【0004】
そこで、歩行者も回避行動をとると予想される場合には、ロボットは、自己の回避行動を小さくすることで、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる。
【0005】
しかしながら、上記の背景技術では、歩行者側が回避行動をとる可能性について何ら考慮していないので、ロボット側の回避行動を制御することができなかった。
【0006】
それゆえに、この発明の主たる目的は、新規な、自律行動型のロボットを提供することである。
【0007】
この発明の他の目的は、歩行者とすれ違う際に当該歩行者の回避行動(軌跡)を予測することで、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる、自律行動型のロボットを提供することである。
【課題を解決するための手段】
【0008】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0009】
第1の発明は、自律的に行動するロボットであって、自己とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、自己の位置を検出する第1検出手段、歩行者の位置を検出する第2検出手段、第1および第2検出手段の検出結果と歩行者モデルとに基づいて自己とすれ違う歩行者の軌跡を予測する予測手段、および予測手段の予測結果に応じて自己の回避行動を決定する回避行動決定手段を備える。
【0010】
第1の発明では、ロボット(10)は、自己(ロボット自身)とすれ違う歩行者の軌跡を示す歩行者モデル(150)を記憶手段(140)に記憶しており、自己の位置を第1検出手段(S5)で、歩行者の位置を第2検出手段(S7)でそれぞれ検出して、これらの検出結果と歩行者モデルとに基づいて、自己とすれ違う歩行者の軌跡を予測手段(S39〜S45,S61〜S65)で予測する。そして、この予測結果に応じて、自己の回避行動を回避行動決定手段(S67〜S75)で決定する。
【0011】
なお、歩行者が自己とすれ違うか否かは、たとえば、歩行者および自己が共に回避行動をとらなかったと仮定して、歩行者および自己それぞれについて、現時点(T=0)までの軌跡に基づいて所定時間後(T=T0)までの軌跡を予測し、予測した2つの軌跡を比較することにより判定する。ある実施例では、時刻T0におけるロボットの位置を中心とする半径Dのすれ違い判定円を利用して、時刻T0以前に歩行者がすれ違い判定円内に入ればすれ違うと判定し、時刻T0以前に歩行者がすれ違い判定円内に入らなければすれ違わないと判定する。
【0012】
第1の発明によれば、自己とすれ違う歩行者の軌跡を予測して自己の回避行動を決定するので、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる。
【0013】
第2の発明は、第1の発明に従属するロボットであって、予測手段は、歩行者モデルに従って予測した予測軌跡と第2検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し(S39〜S45)、計算した一致度合いが閾値よりも高い場合には歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には歩行者モデルに基づく補間によって当該実測軌跡から後の軌跡をそれぞれ予測する(S61〜S65)。
【0014】
なお、補間は、ある実施例では線形補間であるが、非線形補間でもよい。
【0015】
第2の発明によれば、ある時点(T=T0−T1)までの予測軌跡および実測軌跡の一致度合いに応じて、その後の軌跡の予測方法を切り換える(具体的には、一致度合いが高ければ歩行者モデルに従う予測を継続し、一致度合いが低ければ歩行者モデルに基づく補間による予測に切り換える)ので、歩行者モデルを用いて精度よく軌跡を予測することができる。
【0016】
第3の発明は、第1または第2の発明に従属するロボットであって、回避行動決定手段は、予測手段の予測結果に基づいて、自己とすれ違う歩行者を、当該歩行者が自己を大きく避ける場合には小さく、当該歩行者が自己を避けないか小さく避ける場合には大きく、避けるように自己の回避経路を計算する計算手段(S67)を含む。
【0017】
第3の発明によれば、自己とすれ違う歩行者との間の距離を極力一定以上に保つことができる。
【0018】
第4の発明は、第3の発明に従属するロボットであって、回避行動決定手段は、予測手段の予測結果および計算手段の計算結果に基づいて、自己とすれ違う歩行者との間の最近接距離が閾値以上であるか否かを判別する判別手段(S69)、および、判別手段によって最近接距離が閾値以上であると判別された場合に自己を計算手段の計算結果に従って移動させるための移動制御情報(168a)を作成する第1作成手段(S71)を含む。
【0019】
第4の発明によれば、歩行者と一定以上の距離を保って安全にすれ違うことができる。
【0020】
第5の発明は、第4の発明に従属するロボットであって、回避行動決定手段は、判別手段によって最近接距離が閾値未満であると判別された場合に自己を停止させるための移動制御情報(168a)を作成する第2作成手段(S73)をさらに含む。
【0021】
第5の発明によれば、一定以上の距離を保てない場合には緊急停止することで、安全性が高まる。
【0022】
第6の発明は、第5の発明に従属するロボットであって、回避行動決定手段は、判別手段によって最近接距離が閾値未満であると判別された場合に音声および/または身振り手振りによって当該歩行者の回避行動を誘発する動作を行わせるための動作制御情報(168b)を作成する第3作成手段をさらに含む。
【0023】
第6の発明によれば、一定以上の距離を保てない場合には、自ら緊急停止するだけでなく、歩行者側の回避行動を誘発することで、いっそう安全性が高まる。
【0024】
第7の発明は、移動体(10A)を自律的に移動させるための制御システム(100)であって、移動体とすれ違う歩行者の軌跡を示す歩行者モデル(150)が記憶された記憶手段(140)、移動体の位置を検出する第1検出手段(S5)、
歩行者の位置を検出する第2検出手段(S7)、第1および第2検出手段の検出結果と歩行者モデル(150)とに基づいて移動体とすれ違う歩行者の軌跡を予測する予測手段(S39〜S45,S61〜S65)、および予測手段の予測結果に応じて移動体の回避経路を計算する計算手段(S67)を備える。
【0025】
第8の発明は、制御プログラム(142,144)であって、移動体(10)を自律的に移動させるための制御システム(100)のコンピュータ(12)を、移動体とすれ違う歩行者の軌跡を示す歩行者モデル(150)が記憶された記憶手段(140)、移動体の位置を検出する第1検出手段(S5)、歩行者の位置を検出する第2検出手段(S7)、第1および第2検出手段の検出結果と歩行者モデル(150)とに基づいて移動体とすれ違う歩行者の軌跡を予測する予測手段(S39〜S45,S61〜S65)、および予測手段の予測結果に応じて移動体の回避経路を計算する計算手段(S67)として機能させる。
【0026】
第7,第8の各発明によれば、移動体とすれ違う歩行者の軌跡を予測して移動体の回避経路を計算するので、周囲の通行への影響を抑制しながら移動体を歩行者と安全にすれ違わせることができる。
【発明の効果】
【0027】
この発明によれば、歩行者とすれ違う際に当該歩行者の回避行動(軌跡)を予測することで、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる、自律行動型のロボットが実現される。また、周囲の通行への影響を抑制しながら移動体を歩行者と安全にすれ違わせることができる、制御装置および制御プログラムが実現される。
【0028】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0029】
【図1】この発明の一実施例である移動ロボットの外観図を示す図解図である。
【図2】移動ロボットの電気的構成を示すブロック図である。
【図3】移動ロボットが自律的に行動する環境の一例を示す図解図である。
【図4】移動ロボットのメモリマップを示す図解図である。
【図5】歩行者位置情報のデータ構造を示す図解図である。
【図6】移動ロボットのCPU動作の一部を示すフロー図である。
【図7】移動ロボットのCPU動作の他の一部を示すフロー図である。
【図8】移動ロボットのCPU動作のその他の一部を示すフロー図である。
【図9】移動ロボットのCPU動作のさらにその他の一部を示すフロー図である。
【図10】移動ロボットが歩行者とすれ違うか否かを判定する方法を示す図解図である。
【図11】移動ロボットが歩行者とすれ違う際(対面すれ違い時)にとる回避行動の一例を示す図解図である。
【図12】移動ロボットが歩行者から追い越される際(追い越しすれ違い時)にとる回避行動の他の一例を示す図解図である。
【図13】線形補間による歩行者の予測軌跡とそれに対応する移動ロボットの回避経路の例を示す図解図であり、(A)は歩行者側の回避量が歩行者モデルよりも小さい場合を、(B)は歩行者側の回避量が歩行者モデルよりも大きい場合をそれぞれ示す。
【図14】この発明の他の実施例を示すブロック図である。
【発明を実施するための形態】
【0030】
図1を参照して、この発明の一実施例である移動ロボット10は、自律行動型のロボットであり、予め記憶した地図(間取り図)情報および自身に備わる各種センサからのセンサ情報に基づいて自律的に行動する(移動および動作する)ことができる。
【0031】
最初、概要を説明する。移動ロボット10は、複数(たとえば4つ)のレーザレンジファインダ(以下“LRF”)40を備えている。LRF40は、自身から目標(歩行者,障害物など)ないし周辺環境(通路沿いの壁面,道路沿いの建造物など)までの距離を計測し、距離データを出力する。移動ロボット10は、自身が行動する環境(En:図3参照)に関する地図情報(162:図4参照)を記憶しており、この地図情報に基づいて移動しながら、LRF40から距離データ(および図2に示す右左の車輪速度センサ112aおよび112bの出力データ)を取得して、取得した距離データ等に基づいて環境における移動ロボット10自身の位置(自己位置)および移動方向を計算し、さらに目標(歩行者)の位置および移動方向をも計算する。
【0032】
ここで、LRFは一般に、レーザーを照射し、それが目標で反射して戻ってくるまでの時間に基づいて、当該目標までの距離を計測するものである。LRF40は、たとえば、トランスミッタ(図示せず)から照射したレーザーを回転ミラー(図示せず)で反射させて、前方を扇状に一定角度(たとえば0.5度)ずつスキャンすることで、単に目標までの距離を計測するだけでなく、目標の表面に関する2次元距離情報(表面の形状を角度および距離の2変数で記述した情報)も生成することができる。LRF40からの距離データには、このような2次元距離情報が含まれており、移動ロボット10は、2次元距離情報に基づいて目標を識別することができる。
【0033】
なお、移動ロボット10に搭載されて距離を計測するセンサ(距離センサ)は、LRFに限らず、たとえば赤外線距離センサ,レーダ,ソナーなどでもよい。
【0034】
移動ロボット10では、記憶している地図情報とLRF40からの距離データ(2次元距離情報)を含む各種のセンサ情報とに基づいて動作制御情報が生成され、この生成された動作制御情報に基づいて各種モータ(92〜98,110,36aおよび36b)やスピーカ(64)が駆動される。こうして、移動ロボット10の自律的な行動たとえば自動走行,発話動作,身体動作(身振り手振り)などが実現される。
【0035】
特に、移動ロボット10は、歩行者とすれ違う際に、歩行者モデル(150)に基づき歩行者の回避行動(移動ロボット10を避けて迂回する軌跡)を予測して、周囲の通行への影響も抑制しつつ歩行者との衝突を回避するように、自己の回避行動を決定(たとえば回避経路を計算したり緊急停止したり警告音を発したり)することができる。
【0036】
次に、各要素について詳しく説明する。図1は、この実施例の移動ロボット10の外観を示す正面図である。図1を参照して、移動ロボット10は台車30を含み、台車30の下面には右車輪32aおよび左車輪32b(特に区別しない場合には「車輪32」と記す)ならびに1つの従輪34が設けられる。右車輪32aおよび左車輪32bは、右車輪モータ36aおよび左車輪モータ36b(図2参照)によってそれぞれ独立に駆動され、台車30ひいては移動ロボット10全体を前後左右の任意方向に動かすことができる。また、従輪34は車輪32を補助する補助輪である。
【0037】
台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の赤外線距離センサ40が取り付けられる。これらの赤外線距離センサ40は、センサ取り付けパネル38つまり移動ロボット10自身と、その周囲の物体(人間や障害物など)との距離を測定するものである。
【0038】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、小型のLRF、超音波距離センサまたはミリ波レーダなどを用いることもできるし、これらを適宜組み合わせて用いてもよい。
【0039】
センサ取り付けパネル38の上には、胴体42が直立するように設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した赤外線距離センサ40がさらに設けられており、これによって前方の対象たとえば人間との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、アンテナ118ならびに全方位カメラ46が設けられる。
【0040】
アンテナ118は、図示しない外部コンピュータ(たとえばPC)と無線通信を行うためのアンテナであり、PCからの無線信号を受信し、PCに無線信号を送信する。全方位カメラ46は、移動ロボット10の周囲を撮影するものであり、後述する眼カメラ70とは区別される。全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ40,アンテナ118および全方位カメラ46の設置位置は、当該部位に限定されず適宜変更されてもよい。
【0041】
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
【0042】
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
【0043】
前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当する球体56Rおよび球体56Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車30の前面、肩関節48Rと肩関節48Lとを含む肩に相当する部位、上腕50R、上腕50L、前腕54R、前腕54L、球体56Rおよび球体56Lには、それぞれ、接触センサ58(図2で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、移動ロボット10は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止して移動ロボット10の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。なお、接触センサ58の設置位置は、当該部位に限定されず、適宜な位置(人の胸、腹、脇、背中および腰に相当する位置)に設けられてもよい。
【0044】
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)は移動ロボット10の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
【0045】
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、移動ロボット10が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66と言うことがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部68Rおよび眼球部68Lが設けられる。眼球部68Rおよび眼球部68Lは、それぞれ眼カメラ70Rおよび眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68と言うことがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70と言うことがある。
【0046】
眼カメラ70は、移動ロボット10自身から見える前方の視界や、移動ロボット10に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【0047】
このように、この実施例の移動ロボット10は、車輪32の独立2軸駆動、肩関節48の3自由度(左右で6自由度)、肘関節52の1自由度(左右で2自由度)、首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
【0048】
図2は、移動ロボット10の電気的な構成を示すブロック図である。図2を参照して、移動ロボット10は、CPU80を含む。CPU80は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。CPU80は、RTC(Real Time Clock)80aを含んでおり、各センサからの信号ないしデータ(センサ情報)に対してRTCに基づく時刻データを付加する。また、CPU80は、任意の時刻からの経過時間を計時するためのタイマ(T)も含む。
【0049】
メモリ84は、図示は省略をするが、不揮発メモリ(保存領域)としてSSD(Solid State Drive)およびROMと、揮発メモリ(一時記憶領域)としてRAMとを含む。SSD,ROMつまり保存領域(140:図8参照)には、移動ロボット10自身の位置(自己位置)および歩行者の位置を検出して回避行動を決定するための各種のプログラム(後述)が予め記憶される。RAMつまり一時記憶領域(160:図8参照)は、ワークメモリないしバッファメモリとして、地図情報を一時保持したり、プログラムによって参照される各種の情報(後述)を更新可能に記憶したりする。
【0050】
モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、CPU80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(図2では、まとめて「右眼球モータ92」と示す。)の回転角度を制御する。同様に、モータ制御ボード86は、CPU80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(図2では、まとめて「左眼球モータ94」と示す。)の回転角度を制御する。
【0051】
また、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図2では、まとめて「右腕モータ96」と示す。)の回転角度を制御する。同様に、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図2では、まとめて「左腕モータ98」と示す。)の回転角度を制御する。
【0052】
さらに、モータ制御ボード86は、CPU80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図2では、まとめて「頭部モータ110」と示す。)の回転角度を制御する。そして、モータ制御ボード86は、CPU80からの制御データを受け、右車輪32aを駆動する右車輪モータ36a、左車輪32bを駆動する左車輪モータ36bの回転角度を、それぞれ個別に制御する。なお、この実施例では、車輪モータ36を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ36と同様に直流モータを用いるようにしてもよい。また、移動ロボット10の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更されてもよい。たとえば、他の実施例では、エアアクチュエータなどが適用されてもよい。
【0053】
センサ入力/出力ボード88は、モータ制御ボード86と同様に、たとえばDSPで構成され、各センサからの信号(センサ情報)を取り込んでCPU80に与える。すなわち、赤外線距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてCPU80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからCPU80に入力される。眼カメラ70からの映像信号も、同様に、CPU80に入力される。また、上述した複数の接触センサ58(図2では、まとめて「接触センサ58」と示す。)からの信号がセンサ入力/出力ボード88を介してCPU80に与えられる。
【0054】
また、センサ入力/出力ボード88には、右車輪32aの回転速度(車輪速)を検出する右車輪速センサ112a、左車輪32bの回転速度を検出する左車輪速センサ112bがさらに接続される。そして、右車輪速センサ112aおよび左車輪速センサ112bからのそれぞれから、一定時間における右車輪32aおよび左車輪32bの回転数(車輪速)に関するデータが、センサ入力/出力ボート88を通じて、CPU80に入力される。
【0055】
音声入力/出力ボード90も、他の入力/出力ボードと同様にたとえばDSPで構成され、図2ではCPU80,メモリ84または音声入力/出力ボード90から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してCPU80に与えられる。
【0056】
また、CPU80は、バス82を介して通信LANボード114に接続される。通信LANボード114は、たとえばDSPで構成され、CPU80から与えられた送信データを無線通信回路116に与え、無線通信回路116は送信データを、アンテナ118からネットワーク200を介して図示しないPC,遠隔操作装置など(以下“PC等”)に送信する。また、通信LANボード114は、無線通信回路116を介してアンテナ118でPC等からデータを受信し、受信したデータをCPU80に与える。
【0057】
以上のように構成された移動ロボット10は、たとえば図3に示すように、ショッピングセンタなどの環境En内を自動走行しつつ、自己および歩行者(ID:0,1,2,…)の位置を検出し、自己とすれ違う歩行者(ここでは歩行者“0”)を特定してその軌跡を予測し、予測結果に応じた回避行動をとる(歩行者と一定以上の距離を保ってすれ違う回避経路を計算する)ことで、周囲(たとえば歩行者“1”,“2”)の通行への影響を抑制しながら、歩行者“0”と安全にすれ違うことができる。
【0058】
以下には、移動ロボット10が行う回避行動およびそれを実現するためにCPU80が実行する情報処理について、図4のメモリマップ、図6〜図9のフローチャート、ならびに図5および図10〜図13の図解図を用いて詳しく説明する。
【0059】
図4を参照して、メモリ84は保存領域140および一時記憶領域160を含み、保存領域140には位置検出プログラム142,回避行動決定プログラム144,行動制御プログラム146および歩行者モデル150が記憶され、一時記憶領域160には地図情報162,自己位置情報164,歩行者位置情報166および行動制御情報168が一時記憶される。
【0060】
位置検出プログラム142は、LRF40からの距離データ(および右左の車輪速度センサ112aおよび112bの出力データ)と地図情報162とに基づいて移動ロボット10自身および歩行者の位置を検出し、さらに検出結果に基づいて各々の移動方向および軌跡を計算するためのプログラムであり、図6のフローチャートに対応する。位置検出プログラム142の検出結果は、自己位置情報164および歩行者位置情報166(後述)に反映される。
【0061】
すなわち、自己位置情報164には、移動ロボット10自身について、現時点における位置および移動方向、ならびに現時点までの軌跡が記述される。歩行者位置情報166には、図5に示すように、各歩行者について、歩行者ID,現時点における位置および移動方向、ならびに現時点までの軌跡が記述され、さらにロボットとすれ違う時刻も記述される。
【0062】
回避行動決定プログラム144は、自己位置情報164および歩行者位置情報166と歩行者モデル150とに基づいて、自己とすれ違う歩行者の回避行動を予測し、予測結果に応じて自己の回避行動を決定するためのプログラムであり、図7および図8のフローチャートに対応する。回避行動決定プログラム144の決定結果は、行動制御情報168に反映される。
【0063】
行動制御プログラム146は、行動制御情報168に基づいて移動ロボット10の行動(移動および動作)を制御するためのプログラムであり、図9に示すフローチャートに対応する。行動制御プログラム146には移動制御プログラム146aおよび動作制御プログラム146bが含まれ、行動制御情報168には移動制御情報168aおよび動作制御情報168bが含まれている。移動制御プログラム146aは、移動制御情報168aに基づいて移動ロボット10の移動を制御するためのプログラムであり、図9のステップS85に対応する。動作制御プログラム146bは、動作制御情報168bに基づいて移動ロボット10の動作を制御するためのプログラムであり、図9のステップS89に対応する。
【0064】
歩行者モデル150は、歩行者がロボットとすれ違う際にとる回避行動(ロボットを避けて迂回する軌跡)を示すモデルであり、対面すれ違い時のモデル(図11参照)および追い越しすれ違い時のモデル(図12参照)を含む。なお、歩行者モデル150は、事前に歩行者がロボットとすれ違う際にとる回避行動を計測した結果に基づいて作成される。
【0065】
CPU80は、メモリ84に記憶された各種のプログラム(142〜146)およびデータ(150,162〜186)に基づいて、図6のフローに従う位置検出処理と、図7および図8のフローに従う回避行動制御処理と、図9のフローに従う行動制御処理とを並列的に実行する。
【0066】
まず、位置検出処理について説明する。図6を参照して、最初、ステップS1で終了処理が行われたか否かを判別し、YESであればこの位置検出処理を終了する。ステップS1でNOであれば、ステップS3でLRF40から距離データを取得した後、ステップS5およびS7に進んで自己および歩行者の位置検出を行う。
【0067】
具体的には、ステップS5で、取得した距離データおよび地図情報162に基づいて自己位置を検出する。また、前回の検出結果と今回の検出結果との比較に基づいて移動方向を計算し、さらに、初回から今回までの一連の検出結果から軌跡を計算する。これらの検出結果および計算結果は、自己位置情報164に記述される。
【0068】
ステップS7では、取得した距離データおよび地図情報162に基づいて各歩行者(ID:0,1,2,…,L)の位置を検出する。また、各歩行者について、前回の検出結果と今回の検出結果との比較に基づいて移動方向を計算し、さらに、初回から今回までの一連の検出結果から軌跡を計算する。これらの検出結果および計算結果は、歩行者位置情報166に記述される。
【0069】
その後、ステップS1に戻って、上記と同様の処理を(たとえば50分の1秒毎に)繰り返す。こうして、自己位置情報164および歩行者位置情報166は、最新の距離データに基づきアルタイムに更新される。
【0070】
なお、ステップS5およびS7で位置検出等を行う際には、LRF40から距離データに加えて、右左の車輪側センサ112aおよび112bの出力も参照してよい。パーティクルフィルタ,カルマンフィルタ等の時系列フィルタを用いて位置や移動方向を推定することも可能である。
【0071】
次に、回避行動決定処理について説明する。図7を参照して、最初のステップS21で終了処理が行われたか否かを判別し、YESであればこの回避行動決定処理を終了する。ステップS21でNOであれば、ステップS23で変数Xに初期値“0”をセットした後、ステップS25に進む。
【0072】
ステップS25では、タイマTをリセット(T=0)およびスタートする。次のステップS27では、変数Xが現時点で検出されている歩行者の数L(以下“歩行者数L”)を超えた(X>Lである)か否かを判別し、ここでNOであればステップS29〜S35を、YESであればステップS37〜S47を実行する。
【0073】
X≦Lの場合、まずステップS29で、自己位置情報164から自己の軌跡を、歩行者位置情報166から歩行者Xの軌跡をそれぞれ取得する。そして、図10に示すように、自己(ロボットR)および歩行者Xそれぞれの軌跡(実測軌跡)に基づいて、時刻T0までのそれぞれの軌跡を予測する。次に、ステップS31で、自己および歩行者Xそれぞれの予測軌跡に基づいて、歩行者Xおよび自己が共に回避行動をとらなかった場合に、歩行者Xは自己とT0秒以内にすれ違うか否かを判定する。
【0074】
このステップS31の判定は、たとえば図10に示すような、時刻T0における移動ロボット10(図中“ロボットR”)の位置を中心とする半径Dのすれ違い判定円を利用して行われる。移動ロボット10は、時刻T0までの歩行者Xおよび自己それぞれの予測軌跡を互いに比較して、時刻T0以前に歩行者Xがすれ違い判定円内に入ればステップS31でYESと判定し、時刻T0以前に歩行者Xがすれ違い判定円内に入らなければステップS31でNOと判定する。
【0075】
テップS31でYESであれば、ステップS33で自己と歩行者Xがすれ違う時刻を計算した後、ステップS35に進む。ステップS31でNOであれば、ステップS33をスキップしてステップS35に進む。歩行者Xに関するステップS31の判定結果およびステップS33の計算結果は、歩行者位置情報166(図5参照)に反映される。
【0076】
ステップS35では、変数Xをインクリメントする(X=X+1)。その後、ステップS25に戻って上記と同様の処理を繰り返す。このステップS25〜S35のループ処理によって、各歩行者(0,1,2,…,L)についての判定結果および計算結果が、歩行者位置情報166に順次反映されていく。
【0077】
こうして歩行者0〜Lに関する歩行者位置情報166が完成した後に、ステップS35のインクリメントを経てステップS25に戻ると、次のステップS27の判別結果はYESとなって、ステップS37〜S47の一連の処理が実行される。
【0078】
ステップS37では、歩行者位置情報166を参照して、歩行者0〜Lのうち自己とすれ違う時刻が最も早い歩行者を特定し、その歩行者を歩行者Thとする。ステップS39では、図11または図12に示すように、歩行者モデル150に従って、歩行者Thの(T0−T1)秒後までの軌跡を予測する。そして、ステップS41で、タイマTの値を参照して、(T0−T1)秒が経過したか否かを判別し、NOであれば一定時間毎に同様の判別を繰り返す。
【0079】
ステップS41の判別結果がNOからYESに変化すると、ステップS43に進んで、歩行者位置情報166から歩行者Thの(T0−T1)秒後までの軌跡を取得する。次のステップS45では、ステップS39で予測した軌跡(予測軌跡)と、ステップS43で取得した軌跡(実測軌跡)とを比較して、両者の一致度合いを計算する。なお、一致度合いは、簡単には、実測軌跡が予測軌跡と完全に一致する場合を“1”とし、実測軌跡が単なる直進である場合を“0”として、0から1までの数値で表現すればよい。
【0080】
その次のステップS47では、こうして計算した一致度合いに基づいて、歩行者Thとの衝突を避ける回避行動を決定する。この回避行動決定処理が完了すると、ステップS21に戻って上記と同様の処理を繰り返す。
【0081】
上記ステップS47の回避行動決定処理は、詳しくは図8に示すフロー(サブルーチン)に従って実行される。図8を参照して、最初、ステップS61で一致度合いが閾値(たとえば0.9)より高いか否かを判別し、ここでYESであれば、ステップS63で歩行者モデル150に従って歩行者ThのT0秒後までの軌跡を予測した後、ステップS67に進む。一方、ステップS61でNOであれば、ステップS65で、歩行者Thの(T0−T1)秒後までの実測軌跡から、歩行者ThのT0秒後までの軌跡を、たとえば歩行者モデル150に基づく線形補間によって予測する。いずれかの方法で予測を行った後、ステップS67に進む。
【0082】
ステップS67では、ステップS63またはS65の予測結果に基づいて、歩行者Thと一定以上の距離(たとえばE. T. Hallが定義する社会的距離:1.2m以上)を極力保つように、自己の回避経路を決定する。
【0083】
したがって、図11に実線で示したように、歩行者Thが歩行者モデル(150)の示す軌跡に沿って移動した場合(一致度合い=1)、移動ロボット10は、歩行者モデルに対応する回避経路(歩行者モデルの示す軌跡に対して点対称な軌跡)をとる。つまり、歩行者Thと移動ロボット10は、少しずつ均等に避け合うことで、すれ違い時に一定以上の距離が保たれる。一方、図11に点線で示したように、歩行者Thが全く避けずに直進した場合には(一致度合い=0)、すれ違い時に一定以上の距離が保たれるように、大きく回避する経路をとる。
【0084】
また、上記2つの場合の中間の例として、図13(A)に示したように、歩行者Thがある程度避けたものの、歩行者モデルの示す軌跡ほどには避けなかった場合、“T=0”〜“T=(T0−T1)”の期間における予測軌跡および実測軌跡の比較に基づいて、両者の一致度合いが、たとえば“0.6”のように計算される。この一致度合いは、閾値よりも小さいので、“T=(T0−T1)”〜“T=T0”の期間における予測軌跡は、実測軌跡から、歩行者モデルに基づく線形補間によって、たとえば図13(A)に二点差線で示されるように計算される。そして、この予測軌跡に対応する回避経路として、すれ違い時に一定以上の距離が保たれるという条件下で、図13(A)に太い実線で示されるような回避経路、つまり歩行者モデルに対応する回避経路と人が避けない場合の回避経路とを適宜な比率で内分したような回避経路が計算される。この回避経路では、回避を開始するタイミングも、歩行者モデルに対応する回避経路の場合より早くなっている。
【0085】
このように、歩行者Thが少ししか避けない場合には、移動ロボット10は、大きく(素早く)避けることで、すれ違い時に一定以上の距離を保つことができる。
【0086】
さらに、もう一つの例として、図13(B)に示したように、歩行者Thが歩行者モデルの示す軌跡よりも大きく避けた場合、“T=0”〜“T=(T0−T1)”の期間における予測軌跡および実測軌跡の比較に基づいて一致度合いが計算され、計算結果がたとえば0.6であれば、“T=(T0−T1)”〜“T=T0”の期間における予測軌跡は、実測軌跡から、同様の歩行者モデルに基づく線形補間によって、たとえば図13(B)に二点差線で示されるように計算される。そして、この予測軌跡に対応する回避経路として、図13(B)に太い実線で示されるような回避経路、つまり歩行者モデルに対応する回避経路と人が避けない場合の回避経路とを適宜な比率で外分したような回避経路が計算される。この回避経路では、回避を開始するタイミングも、歩行者モデルに対応する回避経路の場合より遅くなっている。このように、歩行者Thが大きく避けた場合には、移動ロボット10は、小さく(ゆっくり)避けても、すれ違い時に一定以上の距離を保つことができる。
【0087】
なお、図11および図13では、歩行者ThとロボットRは対面してすれ違っているが、歩行者ThがロボットRを追い越す際にも、同様の手順で回避経路が計算される。具体的には、図12に実線で示すように、歩行者が歩行者モデルの示す軌跡に沿ってロボットRを追い越す場合、ロボットRは、すれ違い時に一定以上の距離が保たれるという条件下で、歩行者モデルに対応する回避経路(歩行者が避ける向きとは反対の向きに小さく回避する経路)をとる。一方、図12に点線で示すように、歩行者が背後からロボットRを避けることなく直進してくる場合、ロボットRは、同様の条件下で、歩行者に対して大きく避ける回避経路をとる。
【0088】
こうして回避経路の計算が完了すると、ステップS69に進む。再び図8を参照して、ステップS69では、ステップS63またはS65で予測した軌跡(歩行者Th側の回避経路)とステップS67で計算した自己の回避経路との比較に基づいて、歩行者Thとすれ違う際の最近接距離が一定(1.2m)以上であるか否かを判別する。ここYESであれば、ステップS67の計算結果に従う移動制御情報168aをステップS71で作成し、その後、上位のフロー(図7)に戻る。
【0089】
ステップS69でNOであれば、ステップS73で緊急停止を示す移動制御情報168aを作成する。場合によっては、さらにステップS75で、スピーカ64から警告音を出力したり身振り手振りで危険を知らせたりするための動作制御情報168bを作成してもよい。その後、上位のフロー(図7)に戻る。
【0090】
次に、行動制御処理について説明する。図9を参照して、最初、終了処理が行われたか否かをステップS81で判別し、YESであればこの行動制御処理を終了する。ステップS81でNOであれば、ステップS83で移動制御情報168aが生成されたか否かをさらに判別し、ここでYESであればステップS85を経てステップS87に進む。ステップS83でNOであれば、直ちにステップS87に進む。
【0091】
ステップS85では、回避行動決定処理の結果が反映された移動制御情報168aに基づいて、右左の車輪モータ36aおよび36bを駆動する。その結果、移動ロボット10は、歩行者Thの軌跡に応じた回避経路に沿って移動し、一定以上の距離を保って歩行者Thとすれ違うことができる。歩行者thと一定以上の距離を保つことができない場合には、緊急停止によって衝突またはニアミスを回避する。
【0092】
ステップS87では、動作制御情報168bが生成されたか否かをさらに判別し、ここでYESであればステップS89を経てステップS81に戻る。ステップS87でNOであれば、直ちにステップS81に戻る。
【0093】
ステップS89では、回避行動決定処理の結果が反映された動作制御情報168bに基づいて、スピーカ64や頭部モータ110、右左の腕モータ96および98などを駆動する。その結果、移動ロボット10は、警告音や身振り手振りによって、ぶつかってきそうな歩行者Thの注意さらには回避行動を促すことができる。
【0094】
以上から明らかなように、この実施例の移動ロボット10は、自己とすれ違う歩行者(Th:図11〜図13参照)の軌跡を示す歩行者モデル150をメモリ84の保存領域140に記憶している。CPU40は、自己および歩行者の位置を検出して(S5,S7)、検出結果および歩行者モデル150に基づいて自己とすれ違う歩行者の軌跡を予測し(S39〜S45,S61〜S65)、予測結果に応じて自己の回避行動を決定する(S67〜S75)。したがって、周囲の通行への影響を抑制しながら歩行者と安全にすれ違うことができる。
【0095】
なお、この実施例では、歩行者の属性は特に考慮していないが、たとえば年齢層(子供/大人/高齢者)や性別といった属性毎に歩行者モデルを準備して、歩行者の軌跡を予測する際にその属性を検出して該当する歩行者モデルを用いたり、自己の回避行動を決定する際に歩行者の属性によって回避の程度や行動内容を変えたりしてもよい。これによって、たとえば、高齢者とすれ違う場合に距離を大きくとったり、子供とすれ違う場合に発話による注意喚起を行ったり、といったきめ細かな対応が可能になる。
【0096】
なお、この実施例では、移動ロボット10が自己および歩行者の位置を検出したが、図示しない位置検出システムにその一部または全部を担当させてもよい。この場合、位置検出システムは、環境Enに配置されたLRF,赤外線距離センサなどの距離計測装置(図示せず)を含み、こうした距離計測装置からの計測データ(さらには移動ロボット10に搭載されたLRF40からの距離データ)に基づいて移動ロボット10および歩行者の位置を検出し、検出結果を移動ロボット10に通知する。移動ロボット10は、通知された位置に基づいて、上述と同様の回避行動制御処理(図7,図8参照)を実行する。
【0097】
以上の説明では、一例として移動ロボット10について説明したが、この発明は、無人カートなどロボット以外の移動体にも適用できる。この場合、移動体を自律的に移動させる(自動走行させる)ための制御システム(のコンピュータ)が、上述と同様の回避行動制御処理を実行する。このような制御システムを図14に示す。
【0098】
図14を参照して、ロボット,無人カートといった移動体10Aを制御する制御システム100は、キーボードなどの入力器12a,モニタなどの表示器12b,CPU12cおよびメモリ12dなどを備えたコンピュータ12と、環境に配置された複数のLRF14とを含む。メモリ12dには、図4に示したものと同様のプログラム(142〜146),歩行者モデル150および情報(162〜168)が格納され(ただし、無人カートの場合には、動作制御プログラム146bおよび動作制御情報168bは省略してよい)、CPU12cは、これらのプログラムに従って図6〜図9に示すフローと同様の処理(たたし“自己”は“移動体”と読み替える)を実行する。このような制御システム100(のコンピュータ12)の制御下で、移動体10Aの自律的な移動が実現される。
【符号の説明】
【0099】
10 …移動ロボット
10A …移動体
12 …コンピュータ
36a,36b …右左の車輪モータ
40,14 …LRF(レーザレンジファインダ)
64 …スピーカ
80 …CPU
84 …メモリ
98,98 …右左の腕モータ
122a,122b …右左の車輪速センサ
【特許請求の範囲】
【請求項1】
自律的に行動するロボットであって、
自己とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、
自己の位置を検出する第1検出手段、
歩行者の位置を検出する第2検出手段、
前記第1および第2検出手段の検出結果と前記歩行者モデルとに基づいて自己とすれ違う歩行者の軌跡を予測する予測手段、および
前記予測手段の予測結果に応じて自己の回避行動を決定する回避行動決定手段を備える、ロボット。
【請求項2】
前記予測手段は、
前記歩行者モデルに従って予測した予測軌跡と前記第2検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し、
計算した一致度合いが閾値よりも高い場合には前記歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には前記歩行者モデルに基づく補間によって当該実測軌跡から後の軌跡をそれぞれ予測する、請求項1記載のロボット。
【請求項3】
前記回避行動決定手段は、前記予測手段の予測結果に基づいて、自己とすれ違う歩行者を、当該歩行者が自己を大きく避ける場合には小さく、当該歩行者が自己を避けないか小さく避ける場合には大きく、避けるように自己の回避経路を計算する計算手段を含む、請求項1または2記載のロボット。
【請求項4】
前記回避行動決定手段は、
前記予測手段の予測結果および前記計算手段の計算結果に基づいて、自己とすれ違う歩行者との間の最近接距離が閾値以上であるか否かを判別する判別手段、および
前記判別手段によって最近接距離が閾値以上であると判別された場合に自己を前記計算手段の計算結果に従って移動させるための移動制御情報を作成する第1作成手段を含む、請求項3記載のロボット。
【請求項5】
前記回避行動決定手段は、前記判別手段によって最近接距離が閾値未満であると判別された場合に自己を停止させるための移動制御情報を作成する第2作成手段をさらに含む、請求項4記載のロボット。
【請求項6】
前記回避行動決定手段は、前記判別手段によって最近接距離が閾値未満であると判別された場合に音声および/または身振り手振りによって当該歩行者の回避行動を誘発する動作を行わせるための動作制御情報を作成する第3作成手段をさらに含む、請求項5記載のロボット。
【請求項7】
移動体を自律的に移動させるための制御システムであって、
前記移動体とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、
前記移動体の位置を検出する第1検出手段、
歩行者の位置を検出する第2検出手段、
前記第1および第2検出手段の検出結果と前記歩行者モデルとに基づいて前記移動体とすれ違う歩行者の軌跡を予測する予測手段、および
前記予測手段の予測結果に応じて前記移動体の回避経路を計算する計算手段を備える、制御システム。
【請求項8】
移動体を自律的に移動させるための制御システムのコンピュータを、
前記移動体とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、
前記移動体の位置を検出する第1検出手段、
歩行者の位置を検出する第2検出手段、
前記第1および第2検出手段の検出結果と前記歩行者モデルとに基づいて前記移動体とすれ違う歩行者の軌跡を予測する予測手段、および
前記予測手段の予測結果に応じて前記移動体の回避経路を計算する計算手段として機能させる、制御プログラム。
【請求項1】
自律的に行動するロボットであって、
自己とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、
自己の位置を検出する第1検出手段、
歩行者の位置を検出する第2検出手段、
前記第1および第2検出手段の検出結果と前記歩行者モデルとに基づいて自己とすれ違う歩行者の軌跡を予測する予測手段、および
前記予測手段の予測結果に応じて自己の回避行動を決定する回避行動決定手段を備える、ロボット。
【請求項2】
前記予測手段は、
前記歩行者モデルに従って予測した予測軌跡と前記第2検出手段が検出した位置に基づく実測軌跡との一致度合いを計算し、
計算した一致度合いが閾値よりも高い場合には前記歩行者モデルに従って当該予測軌跡から後の軌跡を、低い場合には前記歩行者モデルに基づく補間によって当該実測軌跡から後の軌跡をそれぞれ予測する、請求項1記載のロボット。
【請求項3】
前記回避行動決定手段は、前記予測手段の予測結果に基づいて、自己とすれ違う歩行者を、当該歩行者が自己を大きく避ける場合には小さく、当該歩行者が自己を避けないか小さく避ける場合には大きく、避けるように自己の回避経路を計算する計算手段を含む、請求項1または2記載のロボット。
【請求項4】
前記回避行動決定手段は、
前記予測手段の予測結果および前記計算手段の計算結果に基づいて、自己とすれ違う歩行者との間の最近接距離が閾値以上であるか否かを判別する判別手段、および
前記判別手段によって最近接距離が閾値以上であると判別された場合に自己を前記計算手段の計算結果に従って移動させるための移動制御情報を作成する第1作成手段を含む、請求項3記載のロボット。
【請求項5】
前記回避行動決定手段は、前記判別手段によって最近接距離が閾値未満であると判別された場合に自己を停止させるための移動制御情報を作成する第2作成手段をさらに含む、請求項4記載のロボット。
【請求項6】
前記回避行動決定手段は、前記判別手段によって最近接距離が閾値未満であると判別された場合に音声および/または身振り手振りによって当該歩行者の回避行動を誘発する動作を行わせるための動作制御情報を作成する第3作成手段をさらに含む、請求項5記載のロボット。
【請求項7】
移動体を自律的に移動させるための制御システムであって、
前記移動体とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、
前記移動体の位置を検出する第1検出手段、
歩行者の位置を検出する第2検出手段、
前記第1および第2検出手段の検出結果と前記歩行者モデルとに基づいて前記移動体とすれ違う歩行者の軌跡を予測する予測手段、および
前記予測手段の予測結果に応じて前記移動体の回避経路を計算する計算手段を備える、制御システム。
【請求項8】
移動体を自律的に移動させるための制御システムのコンピュータを、
前記移動体とすれ違う歩行者の軌跡を示す歩行者モデルが記憶された記憶手段、
前記移動体の位置を検出する第1検出手段、
歩行者の位置を検出する第2検出手段、
前記第1および第2検出手段の検出結果と前記歩行者モデルとに基づいて前記移動体とすれ違う歩行者の軌跡を予測する予測手段、および
前記予測手段の予測結果に応じて前記移動体の回避経路を計算する計算手段として機能させる、制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−200818(P2012−200818A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−67591(P2011−67591)
【出願日】平成23年3月25日(2011.3.25)
【国等の委託研究の成果に係る記載事項】(出願人による申告)JST戦略的創造研究推進事業/チーム型研究(CREST)、研究領域「共生社会に向けた人間調和型情報技術の構築」、研究課題名「ロボットによる街角の情報環境の構築」、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願日】平成23年3月25日(2011.3.25)
【国等の委託研究の成果に係る記載事項】(出願人による申告)JST戦略的創造研究推進事業/チーム型研究(CREST)、研究領域「共生社会に向けた人間調和型情報技術の構築」、研究課題名「ロボットによる街角の情報環境の構築」、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】
[ Back to top ]