説明

ルートパースペクティブモデル構築方法およびロボット

【課題】 人の理解に適した仕方で路について対話する。
【解決手段】 ロボット(10)は、座標系(x,y)が定義された地図上のルートに従って環境内の路を移動しながら自己位置の検出および路上視の撮影を行うことによって位置情報および画像情報を収集し(S27)、収集した画像情報からランドマークを検出し(S43)、検出したランドマークを含む路上視の視点位置を収集した位置情報に基づいて特定し(S47)、そして検出したランドマークを特定した視点位置に従ってルートに割り付ける(S51,S77)。その後、こうして得られたルートパースペクティブモデルに基づいて路について対話する(S131〜S141)。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ルートパースペクティブモデル構築方法およびロボットに関し、特にたとえば、環境でルートパースペクティブ(路上視)に基づくモデルを構築する方法、および、構築したルートパースペクティブモデルを用いて路について人と対話するロボットに関する。
【背景技術】
【0002】
この種の背景技術の一例として、特許文献1には、地図情報に基づいて目的地までの経路を特定し、特定した経路を音声とジェスチャ(目的地の方向を示す身体動作)により案内する、道案内ロボットが開示されている。この背景技術の主な特徴は、経路の複雑さによってジェスチャを行う身体部位を変える点にある。具体的には、経路が複雑でなければ腕を用い、経路が複雑であれば腕と体を用いてジェスチャを行う。一方、音声による案内では、交差点などの曲り角でとるべき行動が、「赤い看板」といったランドマークを用いて「赤い看板が見える向き(右/左)に曲がってください」のように表現される。ランドマークに関する情報は、地図情報と共に予め地図情報データベースに登録されている。
【特許文献1】特開2010−046780号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
一般に、人が経路案内を行う場合、実際に路上を移動しているとき見えるランドマークを用いることが多い。言い換えると、経路に関する人の理解は、路上から環境を見た視界(ルートビュー)に基づく。
【0004】
これに対して、上記の背景技術では、ランドマークは単に地図上の位置を示すものであって、実際に路上を移動している人から必ずしも見える(視界に入る)とは限らない。たとえば、ある路を往復する場合、往路で正面に見えた看板は、復路では見えない可能性がある。言い換えると、背景技術における経路の表現は、言わば上空から環境を見た視界(サーベイビュー)に基づくものであり、必ずしも人の理解に適していない。
【0005】
それゆえに、この発明の主たる目的は、新規な、ルートパースペクティブモデル構築方法およびロボットを提供することである。
【0006】
この発明の他の目的は、人の理解に適した仕方で路について対話が行える、ルートパースペクティブモデル構築方法およびロボットを提供することである。
【課題を解決するための手段】
【0007】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0008】
第1の発明は、座標系(x,y)が定義された地図(BM,GM,TM)上のルート(Pia,Pib,Rj)に従って環境内の路を移動しながら自己位置の検出および路上視の撮影を行うことによって位置情報および画像情報を収集する収集ステップ(S27)、収集ステップで収集した画像情報からランドマークを検出する第1検出ステップ(S43)、第1検出ステップで検出したランドマークを含む路上視の視点位置を収集ステップで収集した位置情報に基づいて特定する特定ステップ(S47)、および第1検出ステップで検出したランドマークを示す第1情報を特定ステップで特定した視点位置に従ってルートに割り付ける割付ステップ(S51,S77)を備える。
【0009】
なお、上記の各ステップは、典型的にはロボットによって実行されるが、これに限らず、位置検出機能および撮影機能を有する自動走行可能な移動体(無人計測車両など)によって実行されてもよい。または、移動を伴う収集ステップだけ移動体で実行し、他のステップ(第1検出ステップ,特定ステップ,割付ステップなど)は別のコンピュータ装置(PCなど)で実行してもよい。
【0010】
なお、環境内の路は、たとえば屋内の通路や屋外の道路などであり、地図上のパス(Pi)に対応する。地図上のパスは、座標系(x,y)に従う点の集合または関係式などで記述される。
【0011】
単なる「路」,「パス」は、往復の方向(順逆の向き,上り下りともいう)の区別(方向性)を有しておらず、方向性が付加されることで「経路(往路または復路)」,「ルート(往ルートまたは復ルート)」となる。
【0012】
たとえば、ある路(パスPi)について、一方端および他方端にスタートおよびゴールを設定すれば往路(往ルートPia)が形成され、スタートおよびゴールの設定を逆にすれば復路(復ルートPib)が形成される。また、複数の路(複数のパスP1,P2,…)を含む環境内(地図上)でスタートおよびゴールを設定すれば、当該スタートからゴールに至る経路(ルートRj)が形成される。
【0013】
なお、地図は、与えられた地図(BM)でも、自ら収集した情報に基づいて作成した地図(GM,TM)でもよい。
【0014】
なお、ランドマーク(目印)は、ある実施例では、環境内の店舗や施設の名称(看板の文字)であり、光学文字認識(OCR)によって検出されるが、他の実施例では、店舗等の名称と関連付けられたマークや図案、あるいは、信号機や横断歩道のような路の付設物でもよく、形状や幾何学模様も対象とするパターン認識によって検出できる。
【0015】
なお、収集された位置情報および画像情報は、ある実施例では、軌跡情報と位置情報付き連結画像とを含む環境データ(176)の態様で記憶される。
【0016】
なお、第1情報は、ある実施例では文字情報(テキストデータなど)であるが、他の実施例では画像情報(イメージデータなど)でもよい。
【0017】
第1の発明によれば、環境内の路を移動しながら位置情報および画像情報を収集し、収集結果からランドマークを検出してそれが見える視点位置(経路上の撮影場所)を特定し、そして検出したランドマークを示す第1情報を特定した視点位置に従って地図上のルートに割り付けたことで、人の理解に適した仕方で路について対話が行える、ルートパースペクティブモデル(RPM)を構築できる。
【0018】
第2の発明は、第1の発明に従属するルートパースペクティブモデル構築方法であって、地図上で環境内の路に対応するパス(Pi)を計算する第1計算ステップ(S21)をさらに備え、収集ステップでは第1計算ステップで計算したパス(Pi)を往復する往ルートおよび復ルート(Pia&Pib)に従って環境内の路を往復移動しながら位置情報および画像情報の収集を行い、割付ステップは、往ルートおよび復ルートそれぞれについて第1情報の割付を行う第1割付ステップ(S51)を含む。
【0019】
なお、ある実施例では、前向き(つまり移動方向と同じ向き)の路上視を撮影するが、このような場合でも、路を往復移動することで、往路および復路の一方でしか見えないランドマーク(方向性を有する目印:看板,交通標識など)を検出することができる。他の実施例では、2台のカメラを用いて前向きの路上視と後向きの路上視とを同時に撮影することで、往復移動と同様の効果が得られる。または、単一のカメラの向きを変えながら各向きの路上視を時分割的に撮影してもよい。
【0020】
ただし、路上視の方向が前向きとは限らない(カメラの向きを変えることができる)場合には、収集ステップでさらに路上視の方向を検出することによって方向情報を収集し、特定ステップではさらに方向情報に基づいて目印を含む路上視の方向を特定し、割付ステップではこうして特定した路上視の方向とルートの方向との関係を考慮して文字情報の配置を行えば、より好ましい。
【0021】
第2の発明によれば、往復の方向を考慮した対話が可能となる。
【0022】
第3の発明は、第2の発明に従属するルートパースペクティブモデル構築方法であって、第1計算ステップでは環境内の各路に対応する各パス(P1,P2,…)を計算し、収集ステップおよび第1割付ステップでは各パスを往復する往ルートおよび復ルート(P1a&P1b,P2a&P2b,…)について収集および割付を行う。
【0023】
第3の発明によれば、環境内の各経路について対話が可能となる。
【0024】
第4の発明は、第3の発明に従属するルートパースペクティブモデル構築方法であって、地図は環境内の各路をノード(N1,N2,…)およびエッジ(E1,E2,…)の集合で表現したトポロジカル地図(TM)を含み、第1割付ステップでは環境内の各路に対応するトポロジカル地図上の各パスを往復する往ルートおよび復ルート(P1a&P1b,P2a&P2b,…)に含まれるエッジおよび/またはノードに対して第1情報の割付を行う。
【0025】
第4の発明によれば、トポロジカル地図上で往復方向に割付を行うことで、経路案内に適したルートパースペクティブモデルが得られる。
【0026】
第5の発明は、第4の発明に従属するルートパースペクティブモデル構築方法であって、収集ステップではさらに自己位置から周辺環境までの距離計測を行うことで幾何情報を収集し、収集ステップで収集した位置情報および幾何情報に基づいてグリッド地図(GM)を作成する第1作成ステップ(S5)、および第1作成ステップで作成したグリッド地図に基づいてトポロジカル地図(TM)を作成する第2作成ステップ(S7)をさらに備え、第1割付ステップでは第2作成ステップで作成したトポロジカル地図上で第1情報の割付を行う。
【0027】
第5の発明によれば、自ら路を移動して収集した情報に基づいてグリッド地図さらにはトポロジカル地図を作成し、作成したトポロジカル地図上でルートパースペクティブモデルを構築するので、障害物の存在など路の現況を反映した経路案内が行える。
【0028】
第6の発明は、第5の発明に従属するルートパースペクティブモデル構築方法であって、第2作成ステップで作成したトポロジカル地図上でスタートからゴールに至るルート(Rj)を計算する第2計算ステップ(S65)、第2計算ステップで計算したルートに含まれるノードのうちスタートおよびゴール以外の各ノードが冗長ノードに該当するか否かを当該ノードに接続されたエッジの状態に基づいて判別する判別ステップ(S113)、および第2計算ステップで計算したルートに対して、判別ステップで冗長ノードに該当すると判別されたノードを除去する一方、冗長ノードに該当しないと判別されたノードをサブゴール(SG)として残し、そして当該ルートを当該サブゴールで区分してセグメント群(Sgm1,Sgm2,…)化する、セグメンテーションを行うセグメンテーションステップ(S115,S117,S123)をさらに備え、割付ステップは、セグメンテーション後のルートに含まれるサブゴール(SG)に第1情報を割り付ける第2割付ステップ(S77)をさらに含む。
【0029】
なお、冗長ノードとは、たとえば、「進路に関して意思決定を必要としないノードである」や、「経路上の路なりに進む区間に属する曲がり角または交差点に対応するノードである」、といった定義が可能である。
【0030】
第6の発明によれば、ノードおよびエッジで表現されたルートをサブゴールおよびセグメントによる表現に変換したことで、効率的な経路案内が行える。
【0031】
第7の発明は、第6の発明に従属するルートパースペクティブモデル構築方法であって、判別ステップでは当該ノードに接続されたエッジの数および角度に基づいて判別を行う。
【0032】
なお、ある実施例では、図24(A)に示したノードb〜eのように、当該ノードに接続されたエッジの数が“2”、つまり、当該ノードに入るエッジと当該ノードから出るエッジとが各1個の場合、これら2個のエッジ間の角度が鈍角であれば当該ノード(b〜d)は冗長ノードであり、直角または鋭角であれば当該ノード(e)は冗長ノードではないと判別する。
【0033】
また、図24(B)および図24(C)に示したノードcのように、当該ノードに接続されたエッジの数が“3”、つまり、当該ノードに入るエッジが1個に対して、当該ノードから出るエッジが2個であれば、後者2個のうち一方がルートに沿うエッジで他方はルートから外れたエッジとなる。この場合、当該ノードに入るエッジと、当該ノードからルート沿いに出るエッジとの間の角度が鈍角であって、かつ、当該ノードから出る2個のエッジの間の角度が直角または鋭角であれば、当該ノード(図24(B)のノードc)は冗長ノードでないと判別し、一方、当該ノードに入るエッジと、当該ノードからルート沿いに出るエッジとの間の角度が鈍角であって、かつ、当該ノードから出る2個のエッジの間の角度が鈍角であれば、当該ノード(図24(C)のノードc)は冗長ノードであると判別する。なお、図示は省略するが、当該ノードに入るエッジと、当該ノードからルート沿いに出るエッジとの間の角度が直角または鋭角であれば、そのノードから出る2個のエッジの間の角度によらず、当該ノードは冗長ノードでないと判別されてよい。
【0034】
第7の発明によれば、ルートの視認性を考慮したセグメンテーションが可能となる。
【0035】
第8の発明は、第7の発明に従属するルートパースペクティブモデル構築方法であって、判別ステップで冗長ノードに該当しないと判別したノードについて当該ノードに接続されたエッジの数および角度に基づく属性を検出する第2検出ステップ(S73)をさらに備え、第2割付ステップでは第2検出ステップで検出した属性を示す第2情報(「突当り/右向きの曲がり角」,「2分岐の交差点」など)をサブゴールにさらに割り付ける。
【0036】
なお、第2検出ステップで当該ノードの順位(たとえばスタートに近いものから数えて何番目のノードか)に基づく属性をさらに検出し、割付ステップでその属性(「1つ目の角」など)を第2情報に記述してもよい。また、各種の属性を検出する際に、トポロジカル地図に加えて、第1作成ステップで作成したグリッド地図や、収集ステップで収集した位置情報および画像情報なども参照してよい。
【0037】
第9の発明は、第8の発明に従属するルートパースペクティブモデル構築方法であって、第2割付ステップではサブゴールにそこで行わせるべき行動を示す第3情報をさらに割り付ける。
【0038】
なお、第2および第3情報は、ある実施例では、第1情報と同様に文字情報である。
【0039】
第8および第9の発明によれば、サブゴールに第1〜第3情報を一組として割り付けることで、たとえば「本屋のある突き当りの角を右に曲がる」といった理解し易い経路案内が可能になる。
【0040】
第10の発明は、第9の発明に従属するルートパースペクティブモデル構築方法であって、ルート計算ステップではスタートからゴールに至る各ルート(R1,R2,…)を計算し、判別ステップ,セグメンテーションステップ,第1割付ステップおよび第2割付ステップでは各ルートについて判別,セグメンテーション,第1情報の割付ならびに第2および第3情報の割付を行う。
第10の発明によれば、スタートからゴールに至る全ての経路を案内できる。
【0041】
第11の発明は、第10の発明に従属するルートパースペクティブモデル構築方法であって、ルート計算ステップで計算した各ルートの距離および理解し易さを評価して最適ルートを決定する決定ステップ(S83)をさらに備える。
【0042】
第11の発明によれば、距離だけでなく理解し易さも考慮した最適経路を案内できる。
【0043】
第12の発明は、第11の発明に従属するルートパースペクティブモデル構築方法であって、決定ステップでの各ルートの理解しやすさの評価は当該ルートに含まれるサブゴール数および各サブゴールへの第1情報の割付の有無に少なくとも基づく。
【0044】
第13の発明は、第12の発明に従属するルートパースペクティブモデル構築方法であって、決定ステップでの各ルートの理解しやすさの評価はさらに各サブゴールに割り付けられた第2情報の示す属性に基づく。
【0045】
第14の発明は、第6の発明に従属するルートパースペクティブモデル構築方法であって、第1割付ステップで各パスを往復する往ルートおよび復ルート(P1a&P1b,P2a&P2b,…)に含まれるエッジおよび/またはノードに対して第1情報の割付を行うことにより構築された第1ルートパースペクティブモデル(182)を第2計算ステップで計算したルートに沿ってスキャンして第1情報を抽出する抽出ステップ(S71)をさらに備え、第2割付ステップでは抽出ステップで抽出した第1情報をサブゴールに割り付けることで第2ルートパースペクティブモデル(186)を構築する。
【0046】
第14の発明によれば、汎用的な第1RPMから経路案内用の第2RPMを容易に構築できる。経路案内以外の用途のRPMの構築も容易になる。
【0047】
第15の発明は、ロボットであって、座標系(x,y)が定義された地図(BM,GM,TM)を少なくとも記憶する記憶手段(84)、記憶手段に記憶された地図(BM,GM,TM)上のルート(Pia,Pib,Rj)に従って環境内の路を移動しながら自己位置の検出および路上視の撮影を行うことによって位置情報および画像情報を収集する収集手段(36a,36b,40,70,112a,112b,S27)、収集手段で収集した画像情報からランドマークを検出する第1検出手段(S43)、第1検出手段で検出したランドマークを含む路上視の視点位置を収集手段で収集した位置情報に基づいて特定する特定手段(S47)、
第1検出手段で検出したランドマークを示す第1情報を特定手段で特定した視点位置に従ってルートに割り付ける割付手段(S51,S77)、および割付手段で割り付けて得られたルートパースペクティブモデルに基づいて路について対話する対話手段(64,66,S131〜S141)を備える。
【0048】
第15の発明でも、第1の発明と同様にルートパースペクティブモデルを構築して、人の理解に適した仕方で路について対話が行える。
【発明の効果】
【0049】
この発明によれば、人の理解に適した仕方で路について対話が行える、ルートパースペクティブモデル構築方法およびロボットが実現される。
【0050】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0051】
【図1】この発明の一実施例である移動ロボットの外観図を示す図解図である。
【図2】移動ロボットの電気的構成を示すブロック図である。
【図3】移動ロボットが経路案内を行うための環境モデルの階層構造を示す図解図である。
【図4】環境モデルで管理されるルートビューの一例を示す図解図であり、(A)はスタート位置付近での、(B)は突き当たり付近での、そして(C)はゴール付近でのルートビューをそれぞれ示す。
【図5】ルートビューによる経路案内の一例を示す図解図であり、(A)はユーザが路を尋ねる様子を、(B)は移動ロボットが経路案内を行う様子をそれぞれ示す。
【図6】環境データからのルートパースペクティブモデル(RPM)の構築方法の概要を示す図解図であり、(A)は地図の作成処理を、(B)はルートのセグメンテーション処理を、そして(C)はセグメンテーション後のルートに含まれるサブゴールへのランドマーク等の割付処理をそれぞれ示す。
【図7】移動ロボットのメモリマップを示す図解図である。
【図8】移動ロボットのCPU動作の一部を示すフロー図である。
【図9】移動ロボットのCPU動作の他の一部を示すフロー図である。
【図10】移動ロボットのCPU動作のその他の一部を示すフロー図である。
【図11】移動ロボットのCPU動作のさらにその他の一部を示すフロー図である。
【図12】移動ロボットのCPU動作の他の一部を示すフロー図である。
【図13】移動ロボットのCPU動作のその他の一部を示すフロー図である。
【図14】移動ロボットのCPU動作のさらにその他の一部を示すフロー図である。
【図15】移動ロボットのCPU動作の他の一部を示すフロー図である。
【図16】移動ロボットのCPU動作のその他の一部を示すフロー図である。
【図17】環境データ収集処理の詳細を示す図解図であり、(A)は収集対象となる各パスを、(B)はあるパスの往ルートへの割付処理を、そして(C)はそのパスの復ルートへの割付処理をそれぞれ示す。
【図18】地図作成処理の詳細を示す図解図であり、(A)は幾何情報からのグリッド地図作成処理を、(B)はグリッド地図からのトポロジカル地図作成処理をそれぞれ示す。
【図19】汎用RPM構築処理を示す図解図であり、(A)はあるパスの往ルートへの、(B)はそのパスの復ルートへのランドマーク割付処理をそれぞれ示す。
【図20】経路案内用RPM構築処理の一部を示す図解図であり、(A)はスタートおよびゴールの設定処理を、(B)は設定されたスタートからゴールへの可能なルートの計算処理をそれぞれ示す。
【図21】経路案内用RPM構築処理の他の一部を示す図解図であり、(A)は第1ルートの、(B)は第2ルートのセグメンテーション処理をそれぞれ示す。
【図22】経路案内用RPM構築処理のその他の一部を示す図解図であり、(A)は第1ルートの、(B)は第2ルートのパースペクティブモデル構築処理をそれぞれ示す。
【図23】経路案内用RPMの構造の一例を示す図解図である。
【図24】他のルートセグメンテーション処理を示す図解図であり、(A)は分岐のないルートの、(B)は視認が容易な分岐をもつルートの、そして(C)は視認が困難な分岐をもつルートのセグメンテーション処理をそれぞれ示す。
【図25】経路案内用RPM構築処理のさらにその他の一部(最適ルート決定処理)を示す図解図である。
【図26】最適ルート決定のための演算の一例を示す図解図である。
【発明を実施するための形態】
【0052】
図1を参照して、この発明の一実施例である移動ロボット10は、自律型のロボットであり、予め記憶した地図(間取り図)情報および自身に備わる各種センサからのセンサ情報に基づいて自律的に動く(移動および動作する)ことができる。
【0053】
最初、概要を説明する。移動ロボット10は、複数(たとえば4つ)のレーザレンジファインダ(以下“LRF”)40を備えている。LRF40は、自身から目標ないし周辺環境(通路沿いの壁面,道路沿いの付設物や障害物など)までの距離を計測し、距離データを出力する。移動ロボット10は、記憶している地図情報に基づいて移動しながら、LRF40からの距離データ(および図2に示す右左の車輪速度センサ112aおよび112bの出力データ)に基づいて、環境における移動ロボット10自身の位置(自己位置)および移動方向を計算する。なお、位置や方向に関する情報は、共通の座標系たとえば基本地図(BM)の座標系(x,y:図3参照)で記述される。
【0054】
ここで、LRFは一般に、レーザーを照射し、それが目標で反射して戻ってくるまでの時間に基づいて、当該目標までの距離を計測するものである。LRF40は、たとえば、トランスミッタ(図示せず)から照射したレーザーを回転ミラー(図示せず)で反射させて、前方を扇状に一定角度(たとえば0.5度)ずつスキャンすることで、単に目標までの距離を計測するだけでなく、目標の表面に関する2次元距離情報(表面の形状を角度および距離の2変数で記述した情報)も生成することができる。LRF40からの距離データには、このような2次元距離情報が含まれており、移動ロボット10は、2次元距離情報に基づいて目標を識別することができる。
【0055】
なお、移動ロボット10に搭載されて距離を計測するセンサ(距離センサ)は、LRFに限らず、たとえば赤外線距離センサ,レーダ,ソナーなどでもよい。
【0056】
移動ロボット10では、記憶している地図情報とLRF40からの距離データ(2次元距離情報)を含む各種のセンサ情報とに基づいて動き制御情報が生成され、この生成された動き制御情報に基づいて各種モータ(92〜98,110,36aおよび36b)やスピーカ(64)が駆動される。こうして、移動ロボット10の自律的な動き(自動走行,発話動作,指差し動作など)が実現される。
【0057】
また、移動ロボット10は、相互作用指向のロボットでもあり、人のようなコミュニケーション対象との間で、身振り手振りのような身体動作あるいは音声による会話(対話)といったコミュニケーション行動を実行する機能も有している。
【0058】
特に、移動ロボット10は、環境内を自動走行して環境データを収集し、環境データから環境モデルを構築し、そして環境モデルに基づいて路について人(ユーザUr)と対話する(たとえば経路案内を行う:図5参照)ことができる。
【0059】
次に、各要素について詳しく説明する。図1はこの実施例の移動ロボット10の外観を示す正面図である。図1を参照して、移動ロボット10は台車30を含み、台車30の下面には右車輪32aおよび左車輪32b(特に区別しない場合には「車輪32」と記す)ならびに1つの従輪34が設けられる。右車輪32aおよび左車輪32bは、右車輪モータ36aおよび左車輪モータ36b(図2参照)によってそれぞれ独立に駆動され、台車30ひいては移動ロボット10全体を前後左右の任意方向に動かすことができる。また、従輪34は車輪32を補助する補助輪である。
【0060】
台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の赤外線距離センサ40が取り付けられる。これらの赤外線距離センサ40は、センサ取り付けパネル38つまり移動ロボット10自身と、その周囲の物体(人間や障害物など)との距離を測定するものである。
【0061】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、小型のLRF、超音波距離センサまたはミリ波レーダなどを用いることもできるし、これらを適宜組み合わせて用いてもよい。
【0062】
センサ取り付けパネル38の上には、胴体42が直立するように設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した赤外線距離センサ40がさらに設けられており、これによって前方の対象たとえば人間との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、アンテナ118ならびに全方位カメラ46が設けられる。
【0063】
アンテナ118は、図示しない外部コンピュータ(たとえばPC)と無線通信を行うためのアンテナであり、PCからの無線信号を受信し、PCに無線信号を送信する。全方位カメラ46は、移動ロボット10の周囲を撮影するものであり、後述する眼カメラ70とは区別される。全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ40,アンテナ118および全方位カメラ46の設置位置は、当該部位に限定されず適宜変更されてもよい。
【0064】
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
【0065】
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
【0066】
前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当する球体56Rおよび球体56Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人間の手の形をした「手」を用いることも可能である。また、図示は省略するが、台車30の前面、肩関節48Rと肩関節48Lとを含む肩に相当する部位、上腕50R、上腕50L、前腕54R、前腕54L、球体56Rおよび球体56Lには、それぞれ、接触センサ58(図2で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、移動ロボット10は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止して移動ロボット10の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。なお、接触センサ58の設置位置は、当該部位に限定されず、適宜な位置(人の胸、腹、脇、背中および腰に相当する位置)に設けられてもよい。
【0067】
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)は移動ロボット10の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
【0068】
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、移動ロボット10が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66と言うことがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部68Rおよび眼球部68Lが設けられる。眼球部68Rおよび眼球部68Lは、それぞれ眼カメラ70Rおよび眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68と言うことがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70と言うことがある。
【0069】
眼カメラ70は、移動ロボット10自身から見える前方の視界(たとえばルートビュー)や、移動ロボット10に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64、マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【0070】
このように、この実施例の移動ロボット10は、車輪32の独立2軸駆動、肩関節48の3自由度(左右で6自由度)、肘関節52の1自由度(左右で2自由度)、首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
【0071】
図2は移動ロボット10の電気的な構成を示すブロック図である。図2を参照して、移動ロボット10は、CPU80を含む。CPU80は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス82を介して、メモリ84、モータ制御ボード86、センサ入力/出力ボード88および音声入力/出力ボード90に接続される。CPU80は、RTC(Real Time Clock)80aを含んでおり、各センサからの信号ないしデータ(センサ情報)に対してRTCに基づく時刻データを付加する。
【0072】
メモリ84は、図示は省略をするが、不揮発メモリ(保存領域)としてSSD(Solid State Drive)およびROMと、揮発メモリ(一時記憶領域)としてRAMとを含む。SSD,ROMつまり保存領域(140:図7参照)には、移動ロボット10自身の動きやPCとの間の通信を制御するための各種の制御プログラム,地図情報など(後述)が予め記憶される。RAMつまり一時記憶領域(160:図7参照)は、ワークメモリないしバッファメモリとして、送受信データを一時保持したり、制御プログラムによって参照される各種の情報(後述)を更新可能に記憶したりする。
【0073】
モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、CPU80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(図2では、まとめて「右眼球モータ92」と示す。)の回転角度を制御する。同様に、モータ制御ボード86は、CPU80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(図2では、まとめて「左眼球モータ94」と示す。)の回転角度を制御する。
【0074】
また、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図2では、まとめて「右腕モータ96」と示す。)の回転角度を制御する。同様に、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図2では、まとめて「左腕モータ98」と示す。)の回転角度を制御する。
【0075】
さらに、モータ制御ボード86は、CPU80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図2では、まとめて「頭部モータ110」と示す。)の回転角度を制御する。そして、モータ制御ボード86は、CPU80からの制御データを受け、右車輪32aを駆動する右車輪モータ36a、左車輪32bを駆動する左車輪モータ36bの回転角度を、それぞれ個別に制御する。なお、この実施例では、車輪モータ36を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ36と同様に直流モータを用いるようにしてもよい。また、移動ロボット10の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更されてもよい。たとえば、他の実施例では、エアアクチュエータなどが適用されてもよい。
【0076】
センサ入力/出力ボード88は、モータ制御ボード86と同様に、たとえばDSPで構成され、各センサからの信号(センサ情報)を取り込んでCPU80に与える。すなわち、赤外線距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてCPU80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからCPU80に入力される。眼カメラ70からの映像信号も、同様に、CPU80に入力される。また、上述した複数の接触センサ58(図2では、まとめて「接触センサ58」と示す。)からの信号がセンサ入力/出力ボード88を介してCPU80に与えられる。
【0077】
また、センサ入力/出力ボード88には、右車輪32aの回転速度(車輪速)を検出する右車輪速センサ112a、左車輪32bの回転速度を検出する左車輪速センサ112bがさらに接続される。そして、右車輪速センサ112aおよび左車輪速センサ112bからのそれぞれから、一定時間における右車輪32aおよび左車輪32bの回転数(車輪速)に関するデータが、センサ入力/出力ボート88を通じて、CPU80に入力される。
【0078】
音声入力/出力ボード90も、他の入力/出力ボードと同様にたとえばDSPで構成され、図2ではCPU80,メモリ84または音声入力/出力ボード90から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してCPU80に与えられる。
【0079】
また、CPU80は、バス82を介して通信LANボード114に接続される。通信LANボード114は、たとえばDSPで構成され、CPU80から与えられた送信データを無線通信回路116に与え、無線通信回路116は送信データを、アンテナ118からネットワーク200を介して図示しないPC,遠隔操作装置など(以下“PC等”)に送信する。また、通信LANボード114は、無線通信回路116を介してアンテナ118でPC等からデータを受信し、受信したデータをCPU80に与える。
【0080】
図3には、以上のように構成された移動ロボット10が路について人と対話する(たとえば人に経路案内を行う)ための環境モデルが示される。図3を参照して、この環境モデルは、下位層である環境データ層と、中位層であるサーベイビュー層と、上位層であるルートビュー層とで構成され、共通の座標系たとえば基本地図(BM)の座標系(x,y)に従う。
【0081】
サーベイビューとは、環境の外部(たとえば上空)から環境を俯瞰した視界(俯瞰視)であり、ルートビューとは、環境内の路上から環境を見渡した視界(路上視)を意味する。言い換えると、サーベイビューが客観的(objective)な視点に基づく環境認識であるのに対し、ルートビューは主観的(subjective)な視点に基づく環境認識である。このため、サーベイビューによる経路案内では絶対方向(東西南北)が多用されるのと対照的に、ルートビューによる対話では専ら相対方向(左右)が使用される。
【0082】
下位層である環境データ層は、環境データを管理するための層である。環境データは、環境内の路を移動しながら各種センサ(40,46,58,70,112aおよび112b)で計測を行うことにより収集されるデータであり、この実施例では、右左の車輪速センサ112aおよび112bの出力に基づく軌跡情報と、LRF40の出力に基づく幾何情報と、眼カメラ70の出力に基づく連結画像とを含む。
【0083】
より詳しくは、主として右左の車輪速センサ112aおよび112bの出力に基づいて、まず移動ロボット10の自己位置が計算され、計算結果を示す位置情報を蓄積することで、移動ロボット10の移動軌跡を示す軌跡情報が得られる。また、右左の車輪速センサ112aおよび112bからの位置情報とLRFからの2次元距離情報とに基づいて、移動ロボット10が移動可能な領域つまり環境内の路(地図上のパス)を示す幾何情報が得られる。
【0084】
一方、眼カメラ70は、たとえば毎秒30フレームのレートでルートビューの画像を撮影しており、撮影した各画像に計算した位置情報を付加することで、各画像を撮影したときの自己位置つまり視点位置を示す位置情報付きの連結画像(適宜「連結画像」と略記する)が構成される。言い換えると、連結画像とは、各画像を移動軌跡に沿って配列した画像である。なお、全方位カメラ46の出力に基づく画像情報や接触センサ58の出力に基づく触覚情報なども環境データに含めてよい。
【0085】
中位層であるサーベイビュー層は、グリッド地図(GM)およびトポロジカル地図(TM)を管理するための層である。グリッド地図(GM)は、環境内の各路をグリッド(図示せず)の集合で表現した地図であり、上述した軌跡情報および幾何情報に基づいて作成される。トポロジカル地図(TM)は、環境内の各路をノード(N1,N2,…)およびエッジ(E1,E2,…)の集合で表現した地図であり、グリッド地図(GM)に基づいて作成される。
【0086】
上位層であるルートビュー層は、ルートパースペクティブモデル(適宜“RPM”のように略記)を管理するための層である。RPMは、連結画像から検出されたランドマーク(目印)をトポロジカル地図(TM)上のルートに割り付けることにより得られる。ランドマークは、この実施例では、環境内の店舗や施設の名称(看板の文字)であり、光学文字認識(OCR)によって検出される。たとえば、図4(A)〜図4(C)の画像からは、“BOUTIQUE”,“BOOKSTORE”,“GLASSES SHOP”がそれぞれ検出される。トポロジカル地図(TM)上のルートには、検出されたランドマークつまり店舗等の名称(文字情報:たとえば“BOOKSTORE”に対応するテキストデータ)が割り付けられる。
【0087】
なお、ランドマークは、店舗等の名称と関連付けられたマークや図案、あるいは、信号機や横断歩道のような路の付設物でもよく、形状や幾何学模様も対象とするパターン認識によって検出できる。ルートには、検出された店舗等の名称のほか、検出された付設物の名称(たとえば“信号”,“横断歩道”)などがランドマークとして割り付けられる。
【0088】
また、ランドマークは、ここでは文字情報の態様でルートに割り付けられるが、連結画像から抽出された画像情報を割り付けておき、経路案内を行う際に文字情報に変換する方法もある。
【0089】
図4には、図3のトポロジカル地図(TM)上に矢印付の折れ線で示されたルート、つまり環境内のスタート(A地点)からゴール(B地点)に至る経路上でのルートビューの例が示される。図4(A)はA地点の手前でのルートビューを、図4(B)は曲がり角(突き当)の手前でのルートビューを、そして図4(C)はB地点の手前でのルートビューをそれぞれ示す。
【0090】
図5には、図4のようなルートビューによる経路案内の一例が示される。図5(A)はユーザUrからめがね店までの経路を尋ねられている場面を、図5(B)はユーザUrにめがね店までの経路を案内している場面をそれぞれ示す。移動ロボット10は、図5(A)に示すように「めがね店はどこですか」と尋ねられると、進むべき方向を手で示しながら「この通路(洋品店の横の路)をまっすぐ進んで突き当たりの角を右に曲がるとすぐ次の角のところに(めがね店が)あります」のように発話することで、現在位置からめがね店までの経路を案内する。
【0091】
図5に示したようなルートビューによる経路案内を行うための環境モデルがルートパースペクティブモデルであり、A地点からB地点に至るルートのパースペクティブモデルは、たとえば図6に示す手順で構築される。
【0092】
移動ロボット10は、事前に環境内の全ての路を往復走行して環境データを収集しており、最初、こうして収集した環境データに含まれる軌跡情報および幾何情報から、図6(A)に示すようなグリッド地図さらにはトポロジカル地図を作成する。このトポロジカル地図には、ノードN1〜N5およびエッジE1〜E4が含まれている。ノードN1〜N5の座標ならびにエッジE1〜E4の長さおよび方向は、基本地図の座標系(x,y)に従って記述される。
【0093】
次に、上記のトポロジカル地図上で、図6(B)に示すように、A地点およびB地点に対応するノードN1およびN5をスタートおよびゴールに設定すると、スタートであるノードN1からエッジE1,ノードN2,エッジE3,ノードN4およびエッジE4を経てゴールであるノードN5に至るルートRが形成される。このルートRは、ルートセグメンテーションによって、ノードおよびエッジによる表現からセグメントおよびサブゴールによる表現へと変換される。
【0094】
ルートセグメンテーションでは、ルートRに含まれるスタートおよびゴール以外の各ノード(ここではノードN2およびN4)について冗長ノードであるか否かの判別を行い、冗長ノードであると判別されたノード(ここではノードN2)を除去する一方、冗長ノードでないと判別されたノード(ここではノードN4)をサブゴール(SG)として残す。そして、ルートRをサブゴール(SG)でセグメンテーション群(Sgm1およびSgm2)に区分する。言い換えると、スタートとサブゴールSGとの間の2つのエッジE1およびE2は、これらを接続するノードN2が削除されたために統合されて1つのセグメントSgm1となり、サブゴールSGとゴールとの間のエッジE4は単独でセグメントSgm2となる。
【0095】
次に、セグメンテーション後のルートRに含まれるサブゴールSGに対して、図6(C)に示すように、エッジE3(セグメントSgm1の後半部分)に対応する連結画像から抽出されたランドマークである“BOOKSTORE”が、サブゴールSGの属性を示す“突当り/右向きの曲がり角”およびサブゴールSGで行うべき行動を示す“(本屋のある突当りの角を)右に曲がる”と共に割り付けられる。
【0096】
移動ロボット10は、図6(C)のように構築されたルートパースペクティブモデルを参照することで、図5(B)に示すような案内音声を出力する(発話動作を行う)ことができる。
【0097】
なお、ルートRに含まれるスタートおよびゴールに対しても、上記と同様の割付を行ってよい。詳しくは、スタートに対して、エッジE1(セグメントSgm1の前半部分)に対応する連結画像から抽出されたランドマークである“BOUTIQUE”が、スタート直後に行うべき行動を示す“(洋品店の横の路を)まっすぐ進む”と共に割り付けられてよい。ゴールに対しては、エッジE4(セグメントSgm2)に対応する連結画像から抽出されたランドマークである“GLASSES SHOP”が、ゴール直前に行うべき行動を示す“(次の角まで)まっすぐ進む(とめがね店が見える)”と共に割り付けられてよい。
【0098】
なお、上述した例では、路を尋ねられたときルートを検出し、そのルートのパースペクティブモデルを構築して経路案内を行ったが、事前に全てのルートを検出して各ルートのパースペクティブモデルを構築しておき、路を尋ねられたら該当するルートパースペクティブモデルを取出して経路案内を行うようにしてもよい。
【0099】
また、上述した例では、経路案内用RPMつまりスタートからゴールに至るルートのパースペクティブモデルを構築したが、スタートおよびゴールを特定せずに単なる路(方向性を持たないパス)について対話するためのRPMを構築してもよい。このようなRPMとしては、たとえば各路沿いの店舗を紹介する店舗紹介用RPMが挙げられる。さらには、環境内の各路について往復ルートを網羅したルートパースペクティブモデルを汎用RPMとして構築しておき、この汎用RPMから必要に応じて経路案内用RPMや店舗案内用RPMを再構築してもよい。
【0100】
以下には、環境内の各路を自動走行して環境データを収集し、環境データから汎用RPMを構築し、そして汎用RPMから経路案内用RPMを再構築して経路案内を行う場合の処理について、図7のメモリマップ、図8〜図16のフローチャートおよび図17〜図26の図解図を用いて詳しく説明する。
【0101】
図7を参照して、メモリ84は保存領域140および一時記憶領域160を含み、保存領域140には環境モデル構築プログラム142,経路案内プログラム144,動き制御プログラム146および発話テンプレート148が記憶される。環境モデル構築プログラム142は、環境データ176を収集して環境モデル(180,182,184,188)を構築するためのプログラムであり、図8〜図14のフローチャートに対応する。経路案内プログラム144は、環境モデル(180,182,184,188)を用いて経路案内を行うためのプログラムであり、図15のフローチャートに対応する。
【0102】
動き制御プログラム146は、動き制御情報168に基づいて移動ロボット10の動き(移動および動作)を制御するためのプログラムであり、図16のフローチャートに対応する。動き制御プログラム146には、移動制御プログラム146aおよび動作制御プログラム146bが含まれる。移動制御プログラム146aはそれぞれ、図16のステップS153およびS157に対応する。
【0103】
発話テンプレート148は、経路案内用の発話テンプレートであり、たとえば「この路を[まっすぐ,突当りまで]進む」,「[突き当たり,1つ目]の角を[右,左]に曲がる」,「[1,2]番目の交差点を[右折,左折]する」といった定形文を含む。1つの定形文または複数の定形文の組み合わせに対して、ルートパースペクティブモデル(188)から抽出されるランドマーク(本屋),属性(突当り)および行動(右に曲がる)を適用することで、図5(B)に示したような案内文(文字情報)が作成される。
【0104】
なお、経路案内プログラム144は、環境モデル構築プログラム142による構築処理が完了した後に実行される。動き制御プログラム146は、環境モデル構築プログラム142または経路案内プログラム144と並列に(バックグラウンドで)実行される。
【0105】
一時記憶領域160には、基本地図(BM)162,店名DB(データベース)164,パス情報166,動き制御情報168,位置情報170,2次元距離情報172,カメラ画像174,環境データ176,グリッド地図178,トポロジカル地図180,汎用RPM182,スタート&ゴール情報184および経路案内用RPM186が更新可能に記憶される。
【0106】
基本地図162は、移動ロボット10が環境内を自動走行するための地図であり、位置検出および経路検索が可能な汎用的な地図が用いられる。基本地図162によって、環境モデルを構築するための座標系(x,y)が定義される。なお、移動ロボット10自身が過去に作成したグリッド地図(GM)178および/またはトポロジカル地図(TM)180を基本地図162として用いてもよい。店名DB164は、環境内に存在する店舗等の名称(文字情報)が記述されたデータベースである。基本地図162および店名DB164は、環境データ176の収集を開始する前に、図示しないPC等から通信LANボード114および無線通信回路116を通して一時記憶領域160内に取り込まれる。
【0107】
パス情報166は、環境内の走行可能な各路と対応する各パス(P1,P2,…:図17(A)参照)を示す情報であり、基本地図162から計算される。各パスは、両端を有する直線または曲線(両端を連結したループでもよい)であり、互いに接続されることで、環境内の道路(通路)網に対応するパス網が形成される。言い換えると、パスの計算とは、このようなパス網を適宜な数のパスに区分することである。
【0108】
動き制御情報168は、移動ロボット10自身の動きを制御する(各種モータ36a,36b,92〜98および110を駆動する)ための情報であり、移動を制御する(主として右左の車輪モータ36aおよび36bを駆動する)ための移動制御情報168aと、動作を制御する(主として右左の眼球モータ92および94,右左の腕モータ96および98ならびに頭部モータ110を駆動する)ための動作制御情報168bとを含む。
【0109】
位置情報170は、移動ロボット10自身の位置(自己位置)を示す情報であり、自己位置は、主として右および左の車輪速センサ112aおよび112bの出力および基本地図162に基づいて検出される。2次元距離情報172は、移動ロボット10から環境の表面(路沿いの側壁等)までの距離に関する情報であり、LRF40の出力に基づいて検出される。カメラ画像174は、路上を移動中に眼カメラ70で撮影された画像(1フレームの静止画)であり、前述した路上視(ルートビュー)を示す。なお、位置情報170および2次元距離情報172はたとえば1/50秒の周期で、カメラ画像174はたとえば1/30秒周期でそれぞれ更新される。
【0110】
環境データ176は、位置情報170,2次元距離情報172およびカメラ画像174に基づいて作成されるデータであり、図3に示した軌跡情報,幾何情報および連結画像を含む。軌跡情報は、位置情報170を蓄積することにより作成される情報であり、移動ロボット10の移動軌跡を示す。幾何情報は、軌跡情報に沿って2次元距離情報172を整列させることにより作成される情報であり、路の輪郭(路の領域と路以外の領域との境界線)を示す。連結画像は、カメラ画像174に位置情報170を付加したものを蓄積することにより作成される画像であり、路上の各位置で捉えられる視界(ルートビュー)を示す。つまり、連結画像とは、一連の静止画を連結して得られる動画であって、各静止画に自己位置(つまりその静止画の視点位置)が記録された画像をいう。そして、このような環境データ176は、各路を往復移動しながら作成され、各路で作成された往復分の環境データ176が、対応する各パスに割り付けられる(図17参照:後述)。
【0111】
グリッド地図178は、環境データ176に含まれる各パスの幾何情報を統合することにより作成される地図であり、たとえば路か路以外かを示すグリッドの集合で表現される。トポロジカル地図180は、グリッド地図178から所定のアルゴリズムに従って作成される地図であり、グリッド地図178上の特徴点(突き当たりや交差点)に対応するノード(N1,N2,…)、およびノード間を接続するエッジ(E1,E2,…)の集合で表現される。各ノードの位置ならびに各エッジの長さおよび方向は、グリッド地図178上での特徴点の位置ならびに特徴点間を接続する区間の長さおよび方向を反映している(図18参照)。
【0112】
汎用RPM182は、トポロジカル地図180上の各パス(Pi)を往復する往復ルート(PiaおよびPib)のパースペクティブモデルであり、環境データ176に含まれる連結画像に基づいて作成される。スタート&ゴール情報184は、トポロジカル地図180上で設定されたスタート&ゴールを示す情報である。経路案内用RPM186は、トポロジカル地図180上で設定されたスタートからゴールに至るルートのパースペクティブモデルであり、汎用RPM182に基づいて作成される。
【0113】
CPU80は、メモリ84に記憶された各種のプログラム(142〜146)およびデータ(148,162〜186)に基づいて、図8〜図16に示すフローに従う処理を実行する。まず図8を参照して、最初、ステップS1で初期処理を実行する。初期処理では、事前に準備された基本地図162および店名DB164が、通信LANボード114等を通じてメモリ84内に取り込まれる。次に、ステップS3で、環境内を自動走行して環境データ176を収集する。この環境データ収集処理は、詳しくは、図9に示すフローに従って実行される。
【0114】
図9を参照して、まずステップS21で、基本地図162上で走行可能な全てのパス(P1〜Pn:nは1以上の整数)を計算する。たとえば、図17(A)に点線で示した基本地図(BM)から、互いに接続された(または交差する)4つのパスP1〜P4が計算される。次に、ステップS23で変数iに初期値“1”をセットし、ステップS25では、パスPiを往復走行するための移動制御情報168aを生成する。この移動制御情報168aは、バックグラウンドで実行されている動き制御処理(図16参照:後述)に渡され、これによりパスPiの往復走行が実現される。
【0115】
ステップS27では、自己位置の検出を行いながらパスPiを往復走行して環境データ176を収集する。こうして収集された往路側環境データおよび復路側環境データは、次のステップS29で、図17(B)および図17(C)に示すようにパスPiの往ルートPiaおよび復ルートPibそれぞれに割り付けられる。なお、環境データ176に含まれる軌跡情報,幾何情報および連結画像は、基本地図162の座標系(x,y)で記述された位置情報を含んでいるので、基本地図162上で定義された往ルートPiaおよび復ルートPibへの割付が行える。
【0116】
次に、ステップS31で変数iをインクリメントした後、変数iがパス数nを超えたか否かを判別し、NOであればステップS25に戻って上記と同様の処理を繰り返す。これにより、パスP2,P3,…についても、図17(B)および図17(C)と同様に、往ルート(P2a,P2a,…)および復ルート(P2b,P2b,…)それぞれに環境データ176が割り付けられて行く。ステップS33でYESであれば、上位のフロー(図8)に戻る。この時点で、全パスP1〜Pnの往復分の環境データ176がメモリ84内に記憶される結果となる。
再び図8を参照して、次のステップS5では、環境データ176に含まれる幾何情報から、たとえば図18(A)に示すようなグリッド地図178を作成する。グリッド地図178の作成にあたっては、幾何情報の整合性を高めるために、たとえば大域的緩和法などの手法が用いられる。その次のステップS7では、グリッド地図178から、たとえば図18(B)に示すようなトポロジカル地図180を作成する。このトポロジカル地図180は、10個のノード(N1〜N10)および10個のエッジ(E1〜E10)で構成される。そしてステップS9に進み、トポロジカル地図180上で汎用RPM182を構築する。この汎用RPM構築処理は、詳しくは図10に示すフローに従って実行される。
【0117】
ここで図10を参照して、最初のステップS41では、変数iに初期値“1”をセットする。次のステップS43では、往復ルートPiaおよびPibそれぞれに割り付けられた連結画像からランドマークを検出する。ランドマークは、この実施例では看板に描かれた店名(たとえば“BOOKSTORE”,“BOUTIQUE”,“GLASSES SHOP”など:図17(B)および図17(C)参照)であり、店名は、詳しくは図13のフローに従って検出される。
【0118】
ここで図13を参照して、まずステップS91で連結画像を二値化し、ステップS93では二値化後の連結画像からブロフ(白または黒の領域)を抽出する。ステップS95では、抽出したブロフに対して光学文字認識(OCR)を行い、ステップS97では、認識結果について店名DB164とのマッチングをとる。ステップS99では、マッチング結果に基づいて、認識した文字列との間で一致条件(たとえば“8割以上の文字が一致する”など)を満足する店名が存在するか否かを判別する。そして、判別結果がNOであればステップS103で“未検出”を記憶し、YESであればその店名を記憶した後、上位のフロー(図10)に戻る。
【0119】
こうして、たとえば図17(B)および図17(C)に示すように、パスP1の往ルートP1aに割り付けられた連結画像からは、往路側ランドマークとして“BOUTIQUE”,“BOOKSTORE”および“GLASSES SHOP”が検出され、パスP1の復ルートP1aに割り付けられた連結画像からは、復路側ランドマークとして“BOOKSTORE”が検出される。
【0120】
再び図10を参照して、ステップS45では、先のステップS43で店名が検出されたか否かを判別し、NOであればステップS53(後述)に進む。ステップS45でYESであれば、ステップS47に進み、連結画像に付加された位置情報を参照して、当該ランドマークを含む画像の視点位置を特定する。
【0121】
なお、あるランドマークが複数の画像に跨って検出される場合、ステップS47では、各画像の視点位置の集合(つまり視点の軌跡)が特定される。たとえば、図17(B)に示した往路側ランドマーク“BOUTIQUE”は、往路側連結画像の最初の3フレームから検出されるので、“BOUTIQUE”の視点位置としては、これら3フレーム分の視点位置が検出される。ただし、ランドマークを含む各画像の視点位置の集合を全て特定する代わりに、中央の画像の視点位置だけを特定してもよい。
【0122】
その後、ステップS49に進み、ステップS7で作成したトポロジカル地図180上で往復ルートPiaおよびPibを構築する。なお、トポロジカル地図上でルートを構築するとは、そのルートに含まれるノードおよびエッジの集合を特定することをいう。たとえば、往ルートP1aは、ノードN5〜N2,N6およびN9と、エッジE4〜E2,E5およびE9とで構築され、復ルートPibは、ノードN9,N6およびN2〜N5と、エッジE9,E5およびE2〜E4とで構築される。
【0123】
そして、ステップS51で、当該ランドマーク(店名を示す文字情報たとえばテキストデータ)を、特定した視点位置に従って往復ルートPiaおよびPibそれぞれのエッジに割り付ける。たとえば、図17(B)で検出された往路側ランドマーク“BOUTIQUE”,“BOOKSTORE”および“GLASSES SHOP”は、図19(A)に示すように、往ルートP1aのエッジE4,E2およびE5にそれぞれ割り付けられる。また、図17(C)で検出された復路側ランドマーク“BOOKSTORE”は、図19(B)に示すように、復ルートP1bのエッジE5に割り付けられる。
【0124】
なお、各ランドマークをどのエッジに割り付けるかは、そのランドマークを含む画像の視点位置と各エッジとの間の距離の比較に基づいて決定される。典型的には、視点位置に最も近いエッジが割付先となる。ただし、エッジ単位での割り付ける際に、さらにエッジ内で割付位置を変えてもよい。この場合の割付位置は、典型的にはエッジ上で視点位置に最も近い点となる。
【0125】
その後、ステップS53に進んで変数iをインクリメントし、変数iがパス数nを超えたか否かをステップS55で判別する。ステップS55でNOであれば、ステップS43に戻って上記と同様の処理を繰り返す。これにより、ステップS21で計算された全てのパス、たとえば図17(A)に示されたパスP1〜P4ついて、往路側および復路側ランドマークの検出(図17(B)および図17(C)参照)、各ランドマークを含む画像の視点位置特定、トポロジカル地図180上での往復ルートの構築、および往復ルートそれぞれの対応エッジへのランドマーク割付が行われる(図19(A)および図19(B)参照)。ステップS55の判別結果がNOからYESに変化すると、上位のフロー(図8)に戻る。
【0126】
再び図8を参照して、ステップS11では、上記のようにして構築した汎用RPM182を利用して、さらに経路案内用RPM186を構築する。ステップS11の経路案内用RPM構築処理は、詳しくは図11および図12に示すフローに従って実行される。
【0127】
ここで図11および図12を参照して、最初のステップS61では、トポロジカル地図180上で全てのスタートおよびゴールの組を計算する。たとえば、図18(B)に示すトポロジカル地図180の場合、10個のノードN1〜N10を含むので、基本的には、これらの中から2つを選択する順列として10・9=90通りの組が計算される。なお、エッジE1〜E10上に適宜な点を定義して、10個のノードN1〜N10とこうして定義した点とからなる集合の中からスタートおよびゴールの組を計算してもよい。
【0128】
次に、ステップS63に進んで、上記のような計算結果の中から1組を選択し、ステップS65では、選択した組のスタートからゴールに至る全てのルート(R1〜Rm:mは1以上の整数)を計算する。たとえば、図20(A)に示すように、スタートおよびゴールの組としてノードN5およびN6が選択された場合、図20(B)に示すように、スタートであるノードN5からゴールであるノードN6に至る2つのルート(第1ルートおよび第2ルート)R1およびR2が計算される。そして、ステップS67で変数jに初期値“1”をセットした後、ステップS69〜S81のループを通じて各ルートR1,R2,…,Rmのパースペクティブモデルを構築していく。
【0129】
具体的には、まずステップS69で、ルートセグメンテーションを実行することにより、ルートRjの表現をノードおよびエッジによるものからサブゴールおよびセグメントによるものに変換する。たとえば、図20(B)に示した第1ルートR1および第2ルートR2は、図21(A)および図21(B)に示すように変換される。このルートセグメンテーションは、詳しくは図14に示すフローに従って実行される。
【0130】
ここで図14を参照して、最初のステップS111では、ルートRjに含まれるノードのうちスタートおよびゴール以外のノードを1つ選択する。たとえば、図21(A)に示す第1ルートR1ではノードN4〜N2の1つが、図21(B)に示す第2ルートR2ではノードN4およびN7の1つが、ここでの選択の対象となる。次のステップS113では、そのノードが冗長ノードであるか否かを判別し、YESであればそのノードを削除する一方、NOであればそのノードをサブゴール化する。
【0131】
あるノードが冗長であるか否かは、そのノードに対応する曲がり角や交差点でユーザUrが進路について特段の意思決定を行う必要があるか否かに基づいて判別される。具体的には、見通しのよい曲がり角や単に直進すればよい交差点では特段の意思決定は必要ないので、この種の曲がり角や交差点に対応するノードは冗長ノードであると判別される。一方、先の進路が見通せない“突当り”では、その場所に到達して初めて進むべき方向が明らかとなるため、方向転換について意思決定が必要であり、これに対応するノードは冗長ノードでないと判別される。進路の変更や選択を伴う交差点に対応するノードもまた、意思決定を要するため冗長ノードでないと判別される。言い換えると、“まっすぐ”ないし“路なり”に進めばよいノードは冗長ノードであると判別され、方向転換や進路変更が必要なノードは冗長ノードでないと判別される。
【0132】
このような基準に従えば、図21(A)に示す第1ルートR1の場合、ノードN4およびN3はどちらも“まっすぐ”に進めばよい交差点に対応するので冗長ノードとして除去される一方、ノードN2は“突当り”に対応するのでサブゴール化される。図21(B)に示す第2ルートR2の場合、ノードN4およびN7は、どちらも進路変更を要する交差点に該当するのでサブゴール化される。
【0133】
他のルートセグメンテーションの例を図24に示す。図24(A)には、6個のノードa(スタート)〜f(ゴール)を含むルートが示される。このルートは、分岐点(交差点)のない一本道であり、ただ1つの突当り(ノードe)を有する。この場合、スタートおよびゴールを除くノードb〜eのうち、突当りであるノードe以外では、意思決定は不要である。このため、ノードb〜dは冗長ノードとして除去され、ノードeがサブゴール化される。
【0134】
図24(B)には、4個のノードd(スタート),c,a,b(ゴール)を含むルートが示される。このルートでは、ノードcが分岐点となっていて、ノードcの手前でノードaへの分岐路の存在を視認できるため、ノードcでノードa側に向かうかノードb側に向かうかを決定する必要がある。したがって、ノードcはサブゴール化され、ノードaは冗長ノードとして除去される。
【0135】
図24(C)には、4個のノードa(スタート),b,c,d(ゴール)を含むルートが示される。このルートでは、ノードcが分岐点となっているが、ノードcの手前でノードaへの分岐路を視認できないため、ノードcでの意思決定は不要である。したがって、ノードcは、ノードaと共に冗長ノードとして除去される。
【0136】
言い換えると、あるノードが冗長ノードか否かは、そのノード接続されたエッジの数および角度に基づいて判別できる。具体的には、図24(A)に示したノードb〜eのように、そのノードに接続されたエッジの数が“2”、つまり、そのノードに入るエッジとそのノードから出るエッジとが各1個の場合、これら2個のエッジ間の角度が鈍角であればそのノード(b〜d)は冗長ノードであり、直角または鋭角であればそのノード(e)は冗長ノードではないと判別する。
【0137】
また、図24(B)および図24(C)に示したノードcのように、そのノードに接続されたエッジの数が“3”、つまり、そのノードに入るエッジが1個に対して、そのノードから出るエッジが2個であれば、後者2個のうち一方がルートに沿うエッジで他方はルートから外れたエッジとなる。このような場合、そのノードに入るエッジと、そのノードからルート沿いに出るエッジとの間の角度が鈍角であって、かつ、そのノードから出る2個のエッジの間の角度が直角または鋭角であれば、そのノード(図24(B)のノードc)は冗長ノードでないと判別し、一方、そのノードに入るエッジと、そのノードからルート沿いに出るエッジとの間の角度が鈍角であって、かつ、そのノードから出る2個のエッジの間の角度が鈍角であれば、そのノード(図24(C)のノードc)は冗長ノードであると判別する。なお、図示は省略するが、そのノードに入るエッジと、そのノードからルート沿いに出るエッジとの間の角度が直角または鋭角であれば、そのノードから出る2個のエッジの間の角度によらず、そのノードは冗長ノードでないと判別してよい。
【0138】
なお、上記の判別アルゴリズムでは、エッジ間の角度は、鋭角(<90度),直角(=90度),鈍角(>90度)に区分されたが、90度とは異なる角度(たとえば120度)を基準に区分されてもよい。
【0139】
また、注目するノードの接続エッジ数が3以上の場合には、たとえば、そのノードに入るエッジに対して、そのノードから出る2以上のエッジの各々が鈍角であればそのノードは冗長ノードではないと判別する(たとえば図24(B)のノードc)一方、そのノードに入るエッジに対して、そのノードから出る2以上のエッジのうち鈍角のものがただ1つであればそのノードは冗長ノードであると判別する(たとえば図24(C)のノードc)、といった方法が考えられる。
【0140】
その後、ステップS119に進んで、全てのノードを選択し終えたか否かを判別し、NOであればステップS111に戻って、別のノードについて上記と同様の処理を繰り返す。ステップS119の判別結果がNOからYESに変化すると、ステップS121に進み、ルートRjにサブゴールがあるか否かを判別する。ステップS121の判別結果がNOであれば、ステップS125でルートRjをセグメント化する。つまり、サブゴールのないルートRjは、単一のセグメントで表現される(図24(C)参照)。一方、ステップS121の判別結果がYESであれば、ステップS123に進み、ルートRjをサブゴールで区分してセグメント群化する。
【0141】
たとえば、図21(A)に示す第1ルートR1は、1つのサブゴールSG1を含んでおり、このサブゴールSG1で2つのセグメントSgm1,Sgm2に区分される。言い換えると、ノードを失ったエッジE4およびE3は、サブゴールに接続されたエッジE2に統合されてセグメントSgm1となり、エッジE5は、単独でセグメントSgm2となる。こうして、ノードN2〜N6およびエッジE2〜E5で表現された第1ルートR1は、ルートセグメンテーションによって、サブゴールSG1およびセグメントSgm1,Sgm2で表現される結果となる。
【0142】
同様に、図21(B)に示す第2ルートR2は、2つのサブゴールSG2およびSG3を含んでおり、これらのサブゴールSG2およびSG3で3つのセグメントSgm3〜Sgm5に区分される。言い換えると、エッジE4,E6およびE7それぞれがセグメントSgm3,Sgm4およびSgm5となる。こうして、ノードN4〜N7およびエッジE4,E6,E7で表現された第2ルートR2は、サブゴールSG2,SG3およびセグメントSgm3〜Sgm5で表現される結果となる。
【0143】
このようなセグメント化またはセグメント群化の後、上位のフロー(図11および図12)に戻る。再び図11および図12を参照して、ステップS71では、トポロジカル地図180上に構築した汎用RPM182をルートRjに沿ってスキャンすることにより、ルートRj沿いのランドマークを抽出する。たとえば、図21(A)に示す第1ルートR1沿いのランドマークを抽出したい場合、汎用RPM182のうち第1ルートR1に対応する部分、つまり図19(A)に示したパスP1の往ルートP1a内でノードN5からエッジE4,ノードN4,エッジE3,ノードN3,エッジE2,ノードN2およびエッジE5を経てノードN6に至る区間をスキャンする。この結果、サブゴールSG1となったノードN2に入るエッジE2から“BOOKSTORE”が抽出される。なお、エッジE4にも“BOUTIQUE”が割り付けられているが、エッジE4の入るノードN4が除去されたので、これを抽出する必要性は低い。したがって、第1ルートR1沿いのランドマークとして抽出されるのは、エッジE2からの“BOOKSTORE”だけである。
【0144】
一方、図21(B)に示す第2ルートR2沿いのランドマークを抽出したい場合、汎用RPM182のうち第2ルートR2に対応する部分、つまり図17(A)に示したパスP1,P3およびP4に跨って、ノードN5からエッジE4,ノードN4,エッジE6,ノードN7およびエッジE7を経てノードN6に至る区間をスキャンする。この結果、サブゴールSG2となったノードN4に入るエッジE4から“BOUTIQUE”が抽出される。なお、サブゴールSG3となったノードN7に入るエッジE6には、ランドマークは割り付けられていない。したがって、第2ルートR2沿いのランドマークとして抽出されるのは、エッジE4からの“BOUTIQUE”だけである。
【0145】
次に、ステップS73で、ルートRjに含まれる各サブゴールの属性を検出する。属性は、たとえば“突当り”や“交差点”といった幾何的な分類である。なお、“突当り”には“右向き/左向きの曲がり角”といった区別が、“交差点”には“2分岐/3分岐”といった区別が、それぞれ付されてもよい。ステップS113で冗長ノードに該当しないと判別した各ノードについて、当該ノードに出入りするエッジの数および角度を記憶しておくことで、このような各サブゴールの属性を検出することができる。なお、直前のサブゴールから見た相対的な位置を示す“1つ目の角”,“2つ目の角”なども、ここで各サブゴールの属性として検出される。たとえば、あるサブゴールが直前のサブゴールから見て1つ目の角にあるとき、そのサブゴールは“1つ目の角”に分類される。同様に、そのサブゴールが直前のサブゴールから見て2つ目の角にあるとき、そのサブゴールは“2つ目の角”に分類される。
【0146】
次に、ステップS75で、ルートRjに従って進路を切り換えるための各サブゴールでの行動を定義する。たとえば、図21(A)に示す第1ルートR1の場合、サブゴールSG1での行動は“(突当りを)右に曲がる”のように定義される。また、図21(B)に示す第2ルートR2の場合、サブゴールSG2,SG3での行動は“(1つ目の角/交差点を)右に曲がる”,“(1つ目の角/交差点を)左に曲がる”のように定義される。
【0147】
次に、ステップS77で、ルートRjに含まれる各サブゴールに、上記のようにして抽出,検出および定義したランドマーク,属性および行動(を示すランドマーク情報,属性情報および行動情報)を割り付ける。
【0148】
たとえば、図21(A)に示した第1ルートR1の場合、図22(A)に示すように、サブゴールSG1にランドマーク,属性および行動として“BOOKSTORE”,“突当り”および“右に曲がる”が割り付けられる。また、図21(B)に示した第2ルートR2の場合、図22(B)に示すように、サブゴールSG2に“BOUTIQUE”,“1つ目の角/交差点”および“右折する”が、サブゴールSG3には“2つ目の角/交差点”および“左折する”がそれぞれ割り付けられる。
【0149】
一般に、ルートRjのパースペクティブモデル(経路案内用RPM186の一部)は、たとえば図23に示すような構造を有する。図23を参照して、ルートRjは、サブゴールSG1,SG2,…,SGnおよびセグメントSgm1,Sgm2,…,Sgm(n+1)を含み、各サブゴール(SG1,SG2,…,SGn)にランドマーク(1,2,…,n),属性(1,2,…,n)および行動(1,2,…,n)が割り付けられている。なお、このルートRjは、簡単のために1次元で表現されている。
【0150】
そして、各サブゴール(SG1,SG2,…,SGn)へのランドマーク(1,2,…,n)は、汎用RPM182をルートRj沿いにスキャンして得られたものである。具体的には、サブゴールSG1へのランドマーク1は、サブゴールSG1自身に対応するノード(Na)に入るエッジ(Ea)から抽出され、サブゴールSG2のランドマーク2は、サブゴールSG2自身に対応するノード(Nb)に入るエッジ(Eb)から抽出される。他のサブゴール(SG3,…,SGn)へのランドマーク(3,…,n)も同様である。対応するノードにランドマークがなければ、そのサブゴールのランドマークは空欄となる。
【0151】
なお、先述したような、あるパス(Pi)沿いの店舗を紹介するための店舗紹介用RPMは、汎用RPM182をパスPiの往復ルート(PiaおよびPib)に沿ってスキャンして往路側および復路側それぞれのランドマーク(店舗名)を抽出し、抽出したランドマークをパスPiに付け替える(ただし往路側および復路側で重複するものは除外する)ことで構築できる。
【0152】
こうしてルートRjのパースペクティブモデルが完成すると、ステップS79に進み、変数jをインクリメントする。その後、変数jがルート数mを上回ったか否かを次のステップS81で判別し、NOであればステップS69に戻って上記と同様の処理を繰り返す。ステップS81の判別結果がYESであれば、ステップS83に進む。
【0153】
ステップS83では、各ルートR1〜Rmのパースペクティブモデルを参照して、各ルートR1〜Rmの間で距離および理解し易さを比較し、比較結果に基づいてルートR1〜Rmのうち最適ルートを決定する。理解し易さは、具体的にはサブゴール数,各サブゴールの属性,各サブゴールのランドマーク(目印の有無)などに基づいて評価される。
【0154】
たとえば、図22(A)および図22(B)に示した第1ルートR1および第2ルートR2のパースペクティブモデルからは、図25に示すような比較結果が得られる。まず、距離について比較すると、第1ルートR1および第2ルートR2は同等である。
【0155】
次に、理解し易さに関し、サブゴール数について比較すると、第1ルートR1の1個に対して第2ルートR2は2個なので、第1ルートR1の方が、第2ルートR2よりも単純である(進路変更の回数が少ない)点で、基本的に有利である。また、各サブゴールの属性について比較すると、第1ルートR1では唯一のサブゴールSG1が突当りであるのに対して、第2ルートR2では2つのサブゴールSG2,SG3は共に1つ目の角/交差点である。突き当たりは一般に、1つ目の角/交差点よりも理解し易い(ユーザUrに好まれる)ので、各サブゴールの属性を考慮しても、第1ルートR1の方が有利である。
【0156】
さらに、各サブゴールのランドマークについて比較すると、第1ルートR1ではサブゴールSG1に“BOOKSTORE”が付されているのに対し、第2ルートR2では、サブゴールSG2に“BOUTIQUE”が付されているものの、サブゴールSG3にはランドマークがない。ランドマークを欠いたサブゴールは一般に、ランドマーク付きのサブゴールと比べて識別が難しい(ユーザUrに見落とされやすい)ので、第2ルートR2は、ランドマークを欠いたサブゴールSG3を含む点で、第1ルートR1よりも不利である。
【0157】
したがって、図25の比較結果から、距離については第1ルートR1および第2ルートR2は同等であり、理解し易さについては第1ルートR1の方が第2ルートR2よりも有利であると判断されるので、第1ルートR1が最適ルートに決定される結果となる。
【0158】
なお、上述の例では、各ルートの距離が同等なので、最も理解し易いルートが直ちに最適ルートとなったが、一般には、理解し易さと距離とはトレードオフの関係にあり、両者のバランスを考慮して最適ルートを決める必要がある。その場合には、たとえば距離,サブゴール数,ランドマーク数などを変数として、各ルートの好ましさ(有用性)を評価すればよい。評価のための演算の一例を図26に示す。
【0159】
図26の演算によれば、ルートの有用性(Utulity)が、距離を示す変数D、ランドマーク付の突当りの数を示す変数N1、ランドマークの数を示す変数N2、突当りの数を示す変数N3、1つ目の角の数を示す変数N4、および2つ目の角の数を示す変数N5に基づいて評価される。なお、距離は、最も短いルートに対する相対距離である。
【0160】
Utilityは、具体的には、上記の変数D,N1〜N5に重み付けのための係数k0〜k5を乗算して乗算結果を合計する演算式、すなわち“Utility=K0・D+k1・N1+k2・N2+k3・N3+k4・N4+k5・N5”によって計算される。係数k0〜k5には、たとえば“−0.438”,“1.105”,“0.372”,“−0.023”,“0.213”および“−0.484”といった数値が与えられる。これらの数値は、人による経路理解の特徴を考慮して決められたものである。
【0161】
たとえば、係数k1〜k3には、ランドマークが人による経路理解の助けとなる点、そして、特にランドマークを突当りと組み合わせることで経路理解を助ける効果が顕著となる点、などが反映されている。また、係数k1〜k3と係数Dとの間には、ランドマーク付の突当りを含むルートは、それを含まないルートと比べて距離が3倍ほどであっても有用性が高い点、が反映されている。また、係数D,k4およびk5には、経路に2つ目の角が多く含まれていると理解が難しくなる点、そして、2つ目の角が1つ増えることは、距離が2倍ほどになるのと同じくらいルートの有用性を損なう点、などが反映されている。
【0162】
こうして、現在選択している組のルートR1,R2,…の中から最適ルートが決定されると、次のステップS85に進む。
【0163】
再び図11および図12を参照して、ステップS85では、全組を選択し終えたか否かを判別し、NOであればステップS63に戻って上記と同様の処理を繰り返す。これにより、次の組が選択され、その組のスタートからゴールに至るルート1,R2,…のパースペクティブモデルが構築されると共に、それらルート1,R2,…の中から最適ルートが決定される。最後の組についてこのような処理が終わると、ステップS85でYESと判別され、上位のフロー(図8)に戻る。
【0164】
再び図8を参照して、ステップS11の経路案内用RPM構築処理が完了すると、このフローは終了され、図15に示す経路案内のフローが開始される。
【0165】
次に、図15を参照して、ステップS131では、マイク66および音声入力/出力ボード90を通じて取り込まれる音声を認識し、ステップS133では、路を尋ねられたか否かを認識結果に基づいて判別する。ステップS133でNOであれば、ステップS131に戻って同様の処理を繰り返す。ユーザUrが目標(めがね店)までの路を移動ロボット10に尋ねたとすると(図5(A)参照)、ステップS133でYESと判別して、ステップS135に進む。
【0166】
ステップS135では、スタート&ゴール情報184を参照して、現在位置(移動ロボット10自身の自己位置)および目標位置に対応するスタートおよびゴールの組を選択する。そしてステップS137で、経路案内用RPM186から当該組の最適ルートに対応するRPMを取得する。なお、場合によっては(いくつかの選択肢を提示する場合など)、最適ルートに限らず、当該組の全てのルート(または最適ルートを含む一部のルート)のRPMを取得してもよい。
【0167】
その後、ステップS139に進み、上記のようにして取得したRPMからランドマーク,属性および行動を抽出して発話テンプレート148に当てはめる。そしてステップS141で、発話および指差しによる経路案内を行うための動作制御情報168bを生成し、その後、ステップS131に戻って上記と同様の処理を繰り返す。
【0168】
CPU80は、先述した環境データ収集処理(図9参照)または上記の経路案内処理(図15参照)と並列に、図16に示す動き制御処理を実行している。図16を参照して、ステップS151では、移動制御情報168aが生成(更新)されたか否かを判別し、NOであればステップS155に進む。環境データ収集処理のステップS25を通じて移動制御情報168aが生成されると、ステップS151でYESと判別してステップS153に進み、当該移動制御情報168aに基づいて右左の車輪モータ36aおよび36bを駆動する。これにより、環境データ収集のための各パスP1,P2,…の往復走行が実現される。その後、ステップS155に進む。
【0169】
ステップS155では、動作制御情報168bが生成(更新)されたか否かを判別し、NOであればステップS151に戻って上記と同様の処理を繰り返す。経路案内処理のステップS141を通じて動作制御情報168bが生成されると、ステップS155でYESと判別してステップS157に進み、当該動作制御情報168bに基づいて右左の腕モータ96および98ならびにスピーカ64を駆動する。これにより、移動ロボット10の発話および指差しによる経路案内(図5(B)参照)が実現される。その後、ステップS151に戻って上記と同様の処理を繰り返す。
【0170】
なお、上記のフローでは、予め全てのスタートおよびゴールの組についてルートパースペクティブモデルを計算しておいたが、経路案内の度に設定されたスタートおよびゴールの組について計算を行い、結果を蓄積していくようにしてもよい。
【0171】
また、上記のフローでは、汎用RPM182をスキャンして(言い換えると、汎用RPM182で構成された仮想空間内を走行しながら)経路案内用RPM186を構築したが、実際に環境内を走行しながらこれを構築してもよい。つまり、設定されたスタートからゴールに至るルート(Rj)に従って環境内を移動しながら環境データを収集し、収集した環境データから経路案内用RPM186を構築してもよい。
【0172】
以上から明らかなように、この実施例の移動ロボット10は、座標系(x,y)が定義された地図(BM,GM,TM)上のルート(Pia,Pib,Rj)に従って環境内の路を移動しながら自己位置の検出および路上視の撮影を行うことによって位置情報および画像情報を収集し(S27)、収集した画像情報からランドマークを検出し(S43)、検出したランドマークを含む路上視の視点位置を収集した位置情報に基づいて特定し(S47)、そして検出したランドマークを特定した視点位置に従ってルートに割り付ける(S51,S77)。その後、こうして得られたルートパースペクティブモデルに基づいて路について対話する(S131〜S141)。
【0173】
こうして、環境内の路を移動しながら位置情報および画像情報を収集し、収集結果からランドマークを検出してそれが見える視点位置(経路上の撮影場所)を特定し、そして検出したランドマーク(を示す文字情報)を特定した視点位置に従って地図上のルートに割り付けたことで、人の理解に適した仕方で路について対話が行える、ルートパースペクティブモデルを構築できる。
【0174】
なお、以上の説明では、一実施例である移動ロボット10について説明したが、この発明は、無人カートなどロボット以外の移動体、カーナビ、携帯端末(携帯電話,携帯情報端末)などにも適用できる。
【符号の説明】
【0175】
10 …移動ロボット
36a,36b …右左の車輪モータ
40 …LRF(レーザレンジファインダ)
64 …スピーカ
66 …マイク
70 …眼カメラ
80 …CPU
84 …メモリ
98,98 …右左の腕モータ
122a,122b …右左の車輪速センサ

【特許請求の範囲】
【請求項1】
座標系が定義された地図上のルートに従って環境内の路を移動しながら自己位置の検出および路上視の撮影を行うことによって位置情報および画像情報を収集する収集ステップ、
前記収集ステップで収集した画像情報からランドマークを検出する第1検出ステップ、
前記第1検出ステップで検出したランドマークを含む路上視の視点位置を前記収集ステップで収集した位置情報に基づいて特定する特定ステップ、および
前記第1検出ステップで検出したランドマークを示す第1情報を前記特定ステップで特定した視点位置に従って前記ルートに割り付ける割付ステップを備える、ルートパースペクティブモデル構築方法。
【請求項2】
前記地図上で前記環境内の路に対応するパスを計算する第1計算ステップをさらに備え、
前記収集ステップでは前記第1計算ステップで計算したパスを往復する往ルートおよび復ルートに従って前記環境内の路を往復移動しながら位置情報および画像情報の収集を行い、
前記割付ステップは、前記往ルートおよび復ルートそれぞれについて第1情報の割付を行う第1割付ステップを含む、請求項1記載のルートパースペクティブモデル構築方法。
【請求項3】
前記第1計算ステップでは前記環境内の各路に対応する各パスを計算し、前記収集ステップおよび前記第1割付ステップでは各パスを往復する往ルートおよび復ルートについて収集および割付を行う、請求項2記載のルートパースペクティブモデル構築方法。
【請求項4】
前記地図は前記環境内の各路をノードおよびエッジの集合で表現したトポロジカル地図を含み、
前記第1割付ステップでは前記環境内の各路に対応する前記トポロジカル地図上の各パスを往復する往ルートおよび復ルートに含まれるエッジおよび/またはノードに対して第1情報の割付を行う、請求項3記載のルートパースペクティブモデル構築方法。
【請求項5】
前記収集ステップではさらに自己位置から周辺環境までの距離計測を行うことで幾何情報を収集し、
前記収集ステップで収集した位置情報および幾何情報に基づいてグリッド地図を作成する第1作成ステップ、および
前記第1作成ステップで作成したグリッド地図に基づいてトポロジカル地図を作成する第2作成ステップをさらに備え、
前記第1割付ステップでは前記第2作成ステップで作成したトポロジカル地図上で第1情報の割付を行う、請求項4記載のルートパースペクティブモデル構築方法。
【請求項6】
前記第2作成ステップで作成したトポロジカル地図上でスタートからゴールに至るルートを計算する第2計算ステップ、
前記第2計算ステップで計算したルートに含まれるノードのうちスタートおよびゴール以外の各ノードが冗長ノードに該当するか否かを当該ノードに接続されたエッジの状態に基づいて判別する判別ステップ、および
前記第2計算ステップで計算したルートに対して、前記判別ステップで冗長ノードに該当すると判別されたノードを除去する一方、冗長ノードに該当しないと判別されたノードをサブゴールとして残し、そして当該ルートを当該サブゴールで区分してセグメント群化する、セグメンテーションを行うセグメンテーションステップをさらに備え、
前記割付ステップは、前記セグメンテーション後のルートに含まれるサブゴールに第1情報を割り付ける第2割付ステップをさらに含む、請求項5記載のルートパースペクティブモデル構築方法。
【請求項7】
前記判別ステップでは当該ノードに接続されたエッジの数および角度に基づいて判別を行う、請求項6記載のルートパースペクティブモデル構築方法。
【請求項8】
前記判別ステップで冗長ノードに該当しないと判別したノードについて当該ノードに接続されたエッジの数および角度に基づく属性を検出する第2検出ステップをさらに備え、
前記第2割付ステップでは前記第2検出ステップで検出した属性を示す第2情報をサブゴールにさらに割り付ける、請求項7記載のルートパースペクティブモデル構築方法。
【請求項9】
前記第2割付ステップではサブゴールにそこで行わせるべき行動を示す第3情報をさらに割り付ける、請求項8記載のルートパースペクティブモデル構築方法。
【請求項10】
前記ルート計算ステップではスタートからゴールに至る各ルートを計算し、前記判別ステップ,前記セグメンテーションステップ,前記第1割付ステップおよび前記第2割付ステップでは各ルートについて判別,セグメンテーション,第1情報の割付ならびに第2および第3情報の割付を行う、請求項9記載のルートパースペクティブモデル構築方法。
【請求項11】
前記ルート計算ステップで計算した各ルートの距離および理解し易さを評価して最適ルートを決定する決定ステップをさらに備える、請求項10記載のルートパースペクティブモデル構築方法。
【請求項12】
前記決定ステップでの各ルートの理解しやすさの評価は当該ルートに含まれるサブゴール数および各サブゴールへの第1情報の割付の有無に少なくとも基づく、請求項11記載のルートパースペクティブモデル構築方法。
【請求項13】
前記決定ステップでの各ルートの理解しやすさの評価はさらに各サブゴールに割り付けられた第2情報の示す属性に基づく、請求項12記載のルートパースペクティブモデル構築方法。
【請求項14】
前記第1割付ステップで各パスを往復する往ルートおよび復ルートに含まれるエッジおよび/またはノードに対して第1情報の割付を行うことにより構築された第1ルートパースペクティブモデルを前記第2計算ステップで計算したルートに沿ってスキャンして第1情報を抽出する抽出ステップをさらに備え、
前記第2割付ステップでは前記抽出ステップで抽出した第1情報をサブゴールに割り付けることで、第2ルートパースペクティブモデルを構築する、請求項6記載のルートパースペクティブモデル構築方法。
【請求項15】
座標系が定義された地図を少なくとも記憶する記憶手段、
前記記憶手段に記憶された地図上のルートに従って環境内の路を移動しながら自己位置の検出および路上視の撮影を行うことによって位置情報および画像情報を収集する収集手段、
前記収集手段で収集した画像情報からランドマークを検出する第1検出手段、
前記第1検出手段で検出したランドマークを含む路上視の視点位置を前記収集手段で収集した位置情報に基づいて特定する特定手段、
前記第1検出手段で検出したランドマークを示す第1情報を前記特定手段で特定した視点位置に従って前記ルートに割り付ける割付手段、および
前記割付手段で割り付けて得られたルートパースペクティブモデルに基づいてコミュニケーションを行うコミュニケーション手段を備える、ロボット。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2012−181081(P2012−181081A)
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願番号】特願2011−43674(P2011−43674)
【出願日】平成23年3月1日(2011.3.1)
【国等の委託研究の成果に係る記載事項】(出願人による申告)JST戦略的創造研究推進事業/チーム型研究(CREST)、研究領域「共生社会に向けた人間調和型情報技術の構築」、研究課題名「ロボットによる街角の情報環境の構築」、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】