(58)【調査した分野】(Int.Cl.,DB名)
前記位置推定装置が推定した前記移動体の前記位置、または、前記位置および前記姿勢を画像および/または音声によって表示する表示装置を備える、請求項1から3のいずれかに記載の移動体。
目的地と、前記位置推定装置が推定した前記移動体の前記位置および前記姿勢とに基づいて、ユーザに経路をガイドするナビゲーション装置を備える、請求項5に記載の移動体。
環境をスキャンしてスキャンデータを周期的に出力する外界センサと、座標変換の関係によって連結された第1部分環境地図および第2部分環境地図を含む複数の部分環境地図を記憶する記憶装置とに接続される、移動体の位置推定装置であって、
プロセッサと、
前記プロセッサを動作させるコンピュータプログラムを記憶するメモリと、
を備え、
前記プロセッサは、前記コンピュータプログラムの指令にしたがって、
前記移動体の推定位置が前記第1部分環境地図上から前記第2部分環境地図上に移動したとき、
前記第1部分環境地図上における前記移動体の推定位置および推定姿勢の、前記第2部分環境地図上における対応位置および対応姿勢を、前記座標変換の関係に基づいて決定すること、
前記第2部分環境地図上の前記移動体の位置および姿勢を推定するためのマッチングを開始するタイミングにおける前記第2部分環境地図上の前記対応位置および前記対応姿勢を、前記第1部分環境地図上における前記移動体の推定位置および推定姿勢の履歴に基づいて補正すること、および、
前記補正した前記対応位置および前記対応姿勢を初期値として、前記第2部分環境地図上の前記移動体の前記位置および前記姿勢を推定するための前記マッチングを行うこと、を実行する、位置推定装置。
【発明を実施するための形態】
【0012】
<用語>
「無人搬送車」とは、本体に人手または自動で荷物を積み込み、指示された場所まで自動走行し、人手または自動で荷卸しをする無軌道車両を意味する。「無人搬送車」は、無人牽引車および無人フォークリフトを含む。
【0013】
「無人」の用語は、車両の操舵に人を必要としないことを意味しており、無人搬送車が「人(たとえば荷物の積み下ろしを行う者)」を搬送することは除外しない。
【0014】
「無人牽引車」とは、人手または自動で荷物の積み込み荷卸しをする台車を牽引して、指示された場所まで自動走行する無軌道車両である。
【0015】
「無人フォークリフト」とは、荷物移載用のフォークなどを上下させるマストを備え、フォークなどに荷物を自動移載し指示された場所まで自動走行し、自動荷役作業をする無軌道車両である。
【0016】
「無軌道車両」とは、車輪と、車輪を回転させる電気モータまたはエンジンを備える移動体(vehicle)である。
【0017】
「移動体」とは、人または荷物を載せて移動する装置であり、移動のための駆動力(traction)を発生させる車輪、二足または多足歩行装置、プロペラなどの駆動装置を備える。本開示における「移動体」の用語は、狭義の無人搬送車のみならず、モバイルロボット、サービスロボット、およびドローンを含む。
【0018】
「自動走行」は、無人搬送車が通信によって接続されるコンピュータの運行管理システムの指令に基づく走行と、無人搬送車が備える制御装置による自律的走行とを含む。自律的走行には、無人搬送車が所定の経路に沿って目的地に向かう走行のみならず、追尾目標に追従する走行も含まれる。また、無人搬送車は、一時的に作業者の指示に基づくマニュアル走行を行ってもよい。「自動走行」は、一般には「ガイド式」の走行および「ガイドレス式」の走行の両方を含むが、本開示では「ガイドレス式」の走行を意味する。
【0019】
「ガイド式」とは、誘導体を連続的または断続的に設置し、誘導体を利用して無人搬送車を誘導する方式である。
【0020】
「ガイドレス式」とは、誘導体を設置せずに誘導する方式である。本開示の実施形態における無人搬送車は、位置推定装置を備え、ガイドレス式で走行することができる。
【0021】
「位置推定装置」は、レーザレンジファインダなどの外界センサによって取得されたセンサデータに基づいて環境地図上における自己位置を推定する装置である。
【0022】
「外界センサ」は、移動体の外部の状態をセンシングするセンサである。外界センサには、たとえば、レーザレンジファインダ、カメラ(またはイメージセンサ)、LIDAR(Light Detection and Ranging)、ミリ波レーダ、超音波センサ、および磁気センサがある。
【0023】
「内界センサ」は、移動体の内部の状態をセンシングするセンサである。内界センサには、たとえばロータリエンコーダ(以下、単に「エンコーダ」と称することがある)、加速度センサ、および角加速度センサ(たとえばジャイロセンサ)がある。
【0024】
「SLAM(スラム)」とは、Simultaneous Localization and Mappingの略語であり、自己位置推定と環境地図作成を同時に行うことを意味する。
【0025】
<本開示における移動体の基本構成>
図1を参照する。本開示の移動体10は、
図1に示される例示的な実施形態において、環境をスキャンしてスキャンデータを周期的に出力する外界センサ102を備える。外界センサ102の典型例は、レーザレンジファインダ(LRF)である。LRFは周期的にたとえば赤外線または可視光のレーザビームを周囲に放射して周囲の環境をスキャンする。レーザビームは、たとえば、壁、柱等の構造物、床の上に置かれた物体などの表面で反射される。LRFは、レーザビームの反射光を受けて各反射点までの距離を計算し、各反射点の位置が示された測定結果のデータを出力する。各反射点の位置には、反射光の到来方向および距離が反映されている。測定結果のデータ(スキャンデータ)は、「環境計測データ」または「センサデータ」と呼ばれることがある。
【0026】
外界センサ102による環境のスキャンは、たとえば、外界センサ102の正面を基準として左右135度(合計270度)の範囲の環境に対して行われる。具体的には、水平面内において所定のステップ角度ごとに方向を変化させながらパルス状のレーザビームを放射し、各レーザビームの反射光を検出して距離を計測する。ステップ角度が0.3度であれば、合計901ステップ分の角度で決まる方向における反射点までの距離の測定データを得ることができる。この例において、外界センサ102が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)である。しかし、外界センサは、三次元的なスキャンを行ってもよい。
【0027】
スキャンデータの典型例は、スキャンごとに取得される点群(point cloud)を構成する各点の位置座標によって表現され得る。点の位置座標は、移動体10とともに移動するローカル座標系によって規定される。このようなローカル座標系は、移動体座標系またはセンサ座標系と呼ばれ得る。本開示においては、移動体10に固定されたローカル座標系の原点を移動体10の「位置」と定義し、ローカル座標系の向き(orientation)を移動体10の「姿勢」と定義する。以下、位置および姿勢を合わせて「ポーズ」と称することがある。
【0028】
スキャンデータは、極座標系で表示される場合、各点の位置をローカル座標系における原点からの「方向」および「距離」で示す数値セットから構成され得る。極座標系の表示は、直交座標系の表示に変換され得る。以下の説明では、簡単のため、外界センサから出力されたスキャンデータは、直交座標系で表示されているとする。
【0029】
移動体10は、複数の部分環境地図を記憶する記憶装置104と、位置推定装置(自己位置推定装置)106とを備える。複数の部分環境地図は、座標変換の関係によって連結された第1部分環境地図および第2部分環境地図を含む。複数の部分環境地図は、第1部分環境地図および第2部分環境地図に対して直接または間接的に連結された他の部分環境地図を含んでいても良い。
【0030】
位置推定装置106は、外界センサ102から取得したスキャンデータと、記憶装置104から読み出された複数の部分環境地図のいずれかとのマッチングを行い、移動体10の位置および姿勢、すなわちポーズを推定する。このマッチングは、パターンマッチングまたはスキャンマッチングと呼ばれ、種々のアルゴリズムにしたがって実行され得る。マッチングアルゴリズムの典型例は、Iterative Closest Point(ICP:反復最近接点)アルゴリズムである。
【0031】
図示されている例において、移動体10は、さらに、駆動装置108、自動走行制御装置110、および通信回路112を備えている。駆動装置108は、移動体10が移動するための駆動力を発生する装置である。駆動装置108の例は、電気モータまたはエンジンによって回転する車輪(駆動輪)、モータまたは他のアクチュエータによって動作する二足または多足歩行装置を含む。車輪は、メカナムホイールなどの全方位ホイールであってもよい。また、移動体10が空中または水中を移動する移動体、あるいはホバークラフトであってもよく、その場合の駆動装置108は、モータによって回転するプロペラを含む。
【0032】
自動走行制御装置110は、駆動装置108を操作して移動体10の移動条件(速度、加速度、移動方向など)を制御する。自動走行制御装置110は、所定の走行経路に沿って移動体10を移動させてもよく、外部から与えられる指令にしたがって移動させてもよい。位置推定装置106は、移動体10の移動中または停止中において、移動体10の位置および姿勢の推定値を算出する。自動走行制御装置110は、この推定値を参照して移動体10の走行を制御する。
【0033】
位置推定装置106および自動走行制御装置110を、全体として、走行制御装置120と呼んでもよい。走行制御装置120は、プロセッサと、プロセッサの動作を制御するコンピュータプログラムを格納したメモリによって構成され得る。このようなプロセットおよびメモリは、1個または複数の半導体集積回路によって実現され得る。
【0034】
通信回路112は、移動体10が外部の管理装置、他の移動体、または操作者のモバイル端末機器などを含む通信ネットワークに接続してデータおよび/または指令のやりとりを行う回路である。
【0035】
<環境地図>
図2は、移動体10が移動する環境200の例を模式的に示す平面レイアウト図である。
図2において、太い直線は、たとえば建造物の固定壁202を示している。環境200は、より広い環境の一部である。
【0036】
図3は、
図2に示される環境200の地図(環境地
図M)を構成する第1部分環境地
図M1および第2部分環境地
図M2を示す図である。環境地
図Mは、第1部分環境地
図M1および第2部分環境地
図M2以外の他の部分環境地図を含んでいてもよい。図中の各ドット204は、環境地
図Mを構成する点群の各点に相当する。本開示において、環境地
図Mの点群を「参照点群」と称し、スキャンデータの点群を「データ点群」または「ソース点群」と称する場合がある。マッチングは、たとえば、位置が固定された部分環境地図(参照点群)に対して、スキャンデータ(データ点群)の位置合わせを行うことである。ICPアルゴリズムによるマッチングを行う場合、具体的には、参照点群とデータ点群との間で対応する点のペアが選択され、各ペアを構成する点同士の距離(誤差)を最小化するようにデータ点群の位置および向きが調整される。
【0037】
図3において、ドット204は、簡単のため、複数の線分上に等間隔で配列されている。現実の環境地
図Mにおける点群は、より複雑な配置パターンを有していてもよい。環境地
図Mは、点群地図に限定されず、直線または曲線を構成要素とする地図であってもよいし、占有格子地図であってもよい。すなわちスキャンデータと環境地
図Mとの間でマッチングを行うことが可能な構造を環境地
図Mが備えていればよい。
【0038】
移動体10が
図3に示される位置PAにあるとき、位置PAで外界センサが取得したスキャンデータと第1部分環境地
図M1とのマッチングが行われる。その結果、移動体10の位置および姿勢の推定値が求められる。移動体10の位置および姿勢は、第1部分環境地
図M1の座標系によって表現される。また、移動体10が、位置PBを通過して位置PCに移動したときは、位置PCで外界センサが取得したスキャンデータと第2部分環境地
図M2とのマッチングが行われる。その結果、移動体10の位置および姿勢の推定値が求められる。このときの移動体10の位置および姿勢は、第1部分環境地
図M1の座標系ではなく、第2部分環境地
図M2の座標系によって表現される。このように、移動体10の位置および姿勢の「値」は、移動体10の位置に応じて選択された部分環境地図の座標系で表現され得る。一方、位置PBは、第1部分環境地
図M1と第2部分環境地
図M2との重複領域内である。このため、移動体10が
図3の位置PBにあるとき、移動体10の位置および姿勢は、第1部分環境地
図M1の座標系による値、および、第2部分環境地
図M2の座標系による値の両方を有し得る。
【0039】
移動体10が第1部分環境地
図M1と第2部分環境地
図M2との重複領域内に位置していないときでも、第1部分環境地
図M1の座標系と第2部分環境地
図M2の座標系との関係が既知であれば、一方の座標系における値から他方の座標系における値に変換することができる。
【0040】
図4に示されるように、第1部分環境地
図M1および第2部分環境地
図M2を含む複数の部分環境地図の配置は、平行であるとは限らない。このような場合、第1部分環境地
図M1の座標系と第2部分環境地
図M2の座標系との間の変換には、単純な並進移動だけではなく、回転移動も必要になる。
【0041】
図5は、第1部分環境地
図M1の座標系(X1Y1座標系)および第2部分環境地
図M2の座標系(X2Y2座標系)との関係を模式的に示す図である。
図5に示される例において、移動体10の位置は、X1Y1座標系ではP1=(x1,y1)の値を有し、X2Y2座標系ではP2=(x2,y2)の値を有する。移動体10の姿勢(向き)は、X1Y1座標系ではθ1の値を持ち、X2Y2座標系ではθ2の値を持つ。ここで、θ2−θ1=βである。すなわち、X2Y2座標系は、X1Y1座標系を角度βだけ反時計回りに回転させ、Q=(Δx,Δy)だけ並進させた座標系である。
【0042】
図5には、移動体10のローカル座標系(センサ座標系)であるUV座標系も示されている。スキャンデータは、UV座標系によって表現される。第i部分環境地図(iは1以上の整数)Mi上における移動体10の位置は、第i部分環境地
図Miの座標系MiにおけるUV座標系の原点の座標値(xi,yi)である。移動体10の姿勢(向き)は、第i部分環境地
図Miの座標系Miに対するUV座標系の向き(θi)である。θiは半時計回りを「正」とする。
【0043】
X1Y1座標系における移動体10の状態を
1P = (x1,y1,θ1,1)、X2Y2座標系における移動体10の状態を
2P= (x2,y2,θ2,1)で表す場合、以下の関係が成立する。
【数1】
ここで、数1の右辺における変換行列を下記の数2に示すように、
1T
2で表すことができる。このとき、数1の式は下記の数3の式で簡単に表される。
【数2】
【数3】
【0044】
また、数1の式から数4の式が導かれる。
【数4】
【0045】
以下の数5に示すように、
1T
2の逆行列を
2T
1で表すと、数6の式が得られる。
【数5】
【数6】
【0046】
上記の数1および数4の関係式は、第1部分環境地
図M1と第2部分環境地
図M2との関係を規定している。このような関係が定まることにより、X1Y1座標系における移動体10の位置および姿勢を示す(x1,y1,θ1)と、X2Y2座標系における移動体10の位置および姿勢を示す(x2,y2,θ2)との間で、相互変換が可能になる。本開示では、ある部分環境地図の座標系と他の部分環境地図の座標系との配置関係が既知であるとき、これらの「部分環境地図は連結されている」と定義する。
【0047】
本開示の実施形態では、第1部分環境地
図M1と第2部分環境地
図M2とが連結されているため、たとえば
図3の位置PBに移動体10があるとき、数4の式を用いることにより、第1部分環境地
図M1における移動体10の位置および姿勢(x1,y1,θ1)から、第2部分環境地
図M2における移動体10の位置および姿勢(x2,y2,θ2)を算出することができる。
【0048】
第1部分環境地
図M1と第2部分環境地
図M2とを「連結」するには、地図作成時において、第1部分環境地
図M1と第2部分環境地
図M2との境界領域または重複領域内の物理的に同一の位置および姿勢を有する移動体10について、第1部分環境地
図M1および第2部分環境地
図M2のそれぞれの座標系で値を取得すればよい。具体的には、その位置にある移動体10の位置推定装置に、第1部分環境地
図M1を用いた自己位置推定と第2部分環境地
図M2を用いた自己位置推定を実行させ、(x1,y1,θ1)および(x2,y2,θ2)をそれぞれ出力させればよい。位置推定装置の動作は後述する。(x1,y1,θ1)および(x2,y2,θ2)が既知であれば、数1または数4の式から、未知数であるΔx、Δy、およびβを算出することができる。その結果、並進および回転によって規定される変換行列のパラメータ(Δx,Δy,β)が決定され、「連結」が確立する。
【0049】
図6Aは、相互に連結された第1部分環境地
図M1から第2部分環境地
図M2に切り替わる時刻=tにおける、移動体10の位置および姿勢、すなわちポーズ(x1,y1,θ1)を模式的に示す図である。
図6Aには、第1部分環境地
図M1のX1Y1座標系が記載されている。一方、
図6Bは、時刻=tにおける移動体10の位置および姿勢(x2,y2,θ2)、および時刻=t+Δtにおける移動体10の位置および姿勢(x2’,y2’,θ2’)を模式的に示す図である。
図6Bには、第2部分環境地
図M2のX2Y2座標系が記載されている。
【0050】
時刻=tにおいて、第1部分環境地
図M1から第2部分環境地
図M2への切り替えを行う場合、第2部分環境地
図M2を記憶装置104(
図1)から読み出し、マッチングを開始するには、たとえばΔtの時間が必要になる。このため、時間Δtの間に移動体10の位置および姿勢は、(x2,y2,θ2)から(x2’,y2’,θ2’)に変化する。
【0051】
たとえば移動体10の駆動輪にエンコーダが取り付けられている場合は、移動体10の位置および姿勢の変化量(Δx2,Δy2,Δθ2)=(x2’−x2,y2’−y2,θ2’−θ2)を計測によって取得することができる。そして、後述するマッチングを行うときには、エンコーダ出力に基づいて(x2,y2,θ2)から補正した値、すなわち(x2’,y2’,θ2’)を初期値として用いることが可能である。
【0052】
しかし、本開示の実施形態では、エンコーダなどの内界センサの出力は用いることなく、部分環境地図の切り替え後のマッチングを行う。この点の詳細は、後述する。
【0053】
<マッチング>
図7Aは、第1部分環境地
図M1を示す図である。
図7Bは、外界センサが時刻tに取得したスキャンデータSD(t)の例を模式的に示す図である。
図7BにおけるスキャンデータSD(t)は、移動体10とともに位置および姿勢が変わるセンサ座標系で表示されている。わかりやすさのため、スキャンデータSD(t)を構成する点は白丸で記載されている。スキャンデータSD(t)は、外界センサ102の真正面をV軸として、V軸から時計周りに90°回転した方向をU軸とするUV座標系によって表現される(
図5参照)。UV座標系の原点に移動体10、より正確には外界センサ102が位置している。本開示では、移動体10が前進するとき、移動体10は、外界センサ102の真正面、すなわちV軸の方向に進む。
【0054】
図7Cは、第1部分環境地
図M1に対するスキャンデータSD(t)のマッチングが完了した状態を模式的に示す図である。マッチングが完了した状態では、外界センサ102がスキャンデータSD(t)を取得したときのセンサ座標系の位置および姿勢と第1部分環境地
図M1の座標系の位置および姿勢との関係が確定する。こうして、時刻tにおける移動体10の位置(センサ座標系の原点)および姿勢(センサ座標系の向き)の推定値が決定される(位置同定)。
【0055】
図8Aは、スキャンデータを構成する点群が初期の位置から回転および並進して、環境地図の点群に近づく様子を模式的に示す図である。時刻tにおけるスキャンデータの点群を構成するK個の点のうちのk番目(k=1、2、・・・、K−1、K)の点の座標値をZ
t,k、この点に対応する環境地図上の点の座標値をm
kとする。このとき、2つの点群における対応点の誤差は、K個の対応点について計算した誤差の二乗和であるΣ(Z
t,k-m
k)
2をコスト関数として評価することができる。Σ(Z
t,k-m
k)
2を小さくするように回転および並進の剛体変換を決定する。剛体変換は、回転の角度および並進のベクトルをパラメータとして含む変換行列(同次変換行列)によって規定される。
【0056】
図8Bは、スキャンデータの剛体変換後の位置および姿勢を示す図である。
図8Bに示される例において、スキャンデータと環境地図とのマッチングは完了しておらず、2つの点群の間には、まだ大きな誤差(位置ずれ)が存在している。この位置ずれを縮小するため、剛体変換をさらに行う。こうして、誤差が所定値を下回る大きさになったとき、マッチングは完了する。
【0057】
図9は、マッチングによって求められた時刻tにおける推定位置および推定姿勢を示す移動体10が記載された第1部分環境地図を示す図である。
【0058】
図10Aは、時刻tにおける第2部分環境地
図M2上の移動体10の位置および姿勢を示す図である。
図10Bは、時刻t+Δtにおける第2部分環境地
図M2上の移動体10の位置および姿勢を示す図である。時刻tでは、第2部分環境地
図M2の読み出しは完了しておらず、時刻t+Δtにおいて、第2部分環境地
図M2に対するマッチングの開始が可能になる。
【0059】
図11は、時刻t+Δtに外界センサから取得したスキャンデータSD(t+Δt)の例を模式的に示す図である。このスキャンデータSDを第2部分環境地
図M2にマッチングさせるとき、移動体10の初期値として、
図10Aに示されている移動体10の位置および姿勢を用いると、
図12Aに示されるように、スキャンデータSD(t+Δt)の点群と第2部分環境地
図M2の点群との間の位置ずれが大きい。このため、マッチングに要する時間が増加したり、あるいは、マッチングが所定時間内に完了せず、位置同定に失敗するという可能性がある。このような可能性がある場合、部分環境地図の切り替え時に、移動体を停止させたり、減速させたりする措置が必要になることもある。しかし、移動体10の初期値として、
図10Bに示されている位置および姿勢を用いると、
図12Bに示されるように、スキャンデータSD(t+Δt)の点群と第2部分環境地
図M2の点群との間の位置ずれが小さくなる。その結果、マッチングに要する時間が短縮し、マッチングの信頼度も向上する。
【0060】
このように部分環境地図の切り替え時に移動体10が移動するという課題は、従来、移動体10の移動量をエンコーダなどの内界センサの出力に基づいて計測することによって解決していた。しかし、本開示の実施形態では、以下の方法により、内界センサによる移動量の測定を行うことなく、上記の課題を解決する。
【0061】
まず、部分環境地図の切り替え開始時刻をt、部分環境地図の切り替えに要する時間をΔtとする。また、部分環境地図の切り替え前における移動体10の位置および姿勢の最新の推定値が出力される時刻をt−Δsで表す。具体的には、移動体10の位置および姿勢の推定値は、周期的、たとえば20〜40ミリ秒ごとに出力され得る。この例において、Δsはたとえば25ミリ秒である。
【0062】
図13は、時刻t−Δs、t、t+Δtにおける移動体10の位置を模式的に示す平面図である。時刻t−Δsにおける移動体10の位置の推定値(出力値)と、時刻tにおける移動体10の位置の推定値(出力値)とから、移動体10の時間Δsあたりにおける位置および姿勢の変化率が算出される。この変化率を用いることにより、時刻t+Δtにおける移動体10の位置の予測値を決定することができる。位置の変化率(移動速度)は、時刻t−Δsにおける位置の代わりに、あるいは、時刻t−Δsにおける位置に加えて、時刻t−2×Δs、時刻t−3×Δsなどの、過去の複数の位置を参照して決定してもよい。
【0063】
一方、部分環境地図の切り替えに要する時間Δtは、50ミリ秒程度である。一般に、ΔtはΔsよりも大きい。ここでは、部分環境地図の切り替えが行われる場所で移動体10の姿勢(向き)はほとんど変化しないと仮定している。このため、Δtの間に姿勢の変化は無視することが可能である。しかし、部分環境地図の切り替えが行われる場所で移動体10の姿勢の変化を考慮してもよい。その場合、過去の複数の位置で取得した姿勢の推定値に基づいて、時刻t+Δtにおける姿勢を予測することができる。
【0064】
ここで留意すべき点は、時間Δsあたりにおける移動体10の「位置の変化率(移動速度)」は、ベクトルであるため、用いる地図の座標系に依存する。このため、第1部分環境地
図M1に基づいて算出された「位置の変化率」は、前述の連結関係を規定する座標変換を行うことにより、第2部分環境地
図M2の座標系における「位置の変化率」に換算される。すなわち、第1部分環境地
図M1上における移動体10の推定位置および推定姿勢の履歴に基づいて、第1部分環境地
図M1上における移動体10の移動速度を決定した後、移動速度に基づいて、第2部分環境地
図M1上の移動体10の位置および姿勢を予測することができる。
【0065】
図6Aおよび
図6Bを再び参照する。まず、時刻tにおける第1部分環境地
図M1の座標系上の位置および姿勢(x1,y1,θ1)に対応する、時刻tにおける第2部分環境地
図M2の座標系上の対応位置および対応姿勢(x2,y2,θ2)を変換行列によって算出する。すなわち、第2部分環境地
図M2上における対応位置および対応姿勢を、座標変換の関係に基づいて決定する。さらに、「位置の変化率」に基づいて、時刻tにおける第2部分環境地
図M2上の位置および姿勢の値(x2,y2,θ2)を、時刻t+Δtにおける第2部分環境地
図M2上の位置および姿勢の値(x2’,y2’,θ2’)に補正する。ここで、θ2’=θ2の近似式を用いている。
【0066】
このように本開示の実施形態では、まず、第1部分環境地
図M1上における移動体10の推定位置および推定姿勢の、第2部分環境地
図M2上における対応位置および対応姿勢を部分環境地図の連結関係に基づいて算出する。そして、これらの対応位置および対応姿勢を、第1部分環境地
図M1上における移動体10の推定位置および推定姿勢の履歴に基づいて補正する。補正の計算に必要な時間Δtは、第2部分環境地
図M2上の移動体10の位置および姿勢は、推定するためのマッチングを開始するタイミング(時刻t+Δ)に依存して決定される。さらに、このようにして補正された対応位置および対応姿勢を初期値として、第2部分環境地
図M2上の移動体10の位置および姿勢を推定するためのマッチングが行われる。
【0067】
位置同定によって取得された時刻t−Δsおよび時刻tにおける移動体10の位置および姿勢の推定値から、時刻t+Δtにおける移動体10の位置および姿勢の予測値を決定する方法は、上記の例に限定されない。
【0068】
最初に、時刻t−Δsおよび時刻tにおける第1部分環境地
図M1上の「位置の変化率」に基づいて、時刻t+Δtにおける第1部分環境地
図M1の座標系上の位置および姿勢の予測値を算出してもよい。その後、時刻t+Δtにおける第1部分環境地
図M1の座標系上の位置および姿勢の予測値を、第2部分環境地
図M2の座標系上の値に変換行列によって変換してもよい。
【0069】
あるいは、最初に、位置同定によって取得された時刻t−Δsおよび時刻tにおける移動体10の位置および姿勢の推定値を、それぞれ、第2部分環境地
図M2上の値に変換行列によって変換してもよい。その後、第2部分環境地
図M2の座標系における「位置の変化率」を算出し、時刻t+Δtにおける移動体10の位置および姿勢の予測値を決定しても良い。
【0070】
上記の方法により、本開示の実施形態では、第1部分環境地
図M1上における移動体10の推定位置および推定姿勢の履歴に基づいて、第1部分環境地
図M1上における移動体10の移動速度を決定した後、この移動速度に基づいて、時刻t+Δtにおける第2部分環境地
図M1上の移動体10の位置および姿勢を予測することができる。そのため、地図切り替え後の時刻t+Δtに開始するマッチングの初期値として、内界センサの出力を用いることなく、適切な値を取得することができる。
【0071】
<位置推定装置の動作フロー>
図1および
図14から
図16を参照しながら、本開示の実施形態における位置推定装置の動作フローを説明する。
【0073】
ステップS10において、位置推定装置106は、移動体10の位置が部分環境地図の切り替え位置にあるか否かを判定する。Noであれば、ステップS20に進む。ステップS20については後述する。Yesであれば、ステップS12に進む。
【0074】
ステップS12において、位置推定装置106は、部分環境地図を切り替える。このとき、
図1の記憶装置104から移動体10の位置に応じて選択された部分環境地図を読み出す。読み出された部分環境地図は、位置推定装置106のメモリ(不図示)に記憶される。このとき、切り替え前の部分環境地図がメモリから消去される必要はない。このメモリの記憶容量は、記憶装置104の記憶容量よりも小さく、不要な部分環境地図はメモリから消去され得る。
【0075】
ステップS14において、記憶装置104から新たに読み出す次の部分環境地図と前の部分環境地図との間の連結関係から、次の部分環境地図上における移動体の位置および姿勢を算出して取得する。このとき、位置推定装置106は、数4の変換行列を用いた変換を実行する。
【0076】
ステップS16において、位置推定装置106は、次の部分環境地図上のマッチングを開始するタイミングでの移動体の位置および姿勢の予測値を算出する。
【0077】
ステップS20において、位置推定装置106は、部分環境地図を切り替えた直後は、上記の予測値を初期値としてマッチングを開始し、位置同定計算を実行する。
【0078】
以下、
図15を参照して、ステップS20における位置同定計算を、より詳細に説明する。
【0079】
まず、ステップS22において、位置推定装置106は、外界センサ102からスキャンデータを取得する。
【0080】
ステップS24において、位置推定装置106は、ステップS16で算出した予測値を用いて初期位置合わせを行う。部分環境地図を切り替えていないとき、すなわちステップS10の判定が「No」だったときは、時刻tにおける位置および姿勢を初期値としてマッチングを行うことができる。しかし、
図13を参照しながら説明した方法により、最新のスキャンデータを取得した時刻における位置および姿勢の予測値を算出し、予測値を初期値としてマッチングを行ってもよい。
【0081】
ステップS30において、本実施形態における位置推定装置106は、ICPアルゴリズムによる位置ずれ補正を行う。
【0082】
以下、
図16を参照して、ステップS30における位置ずれ補正を説明する。
【0083】
まず、ステップS32において、対応点の探索を行う。具体的には、スキャンデータに含まれる点群を構成する各点に対応する、部分環境地図上の点を選択する。
【0084】
ステップS34において、スキャンデータと部分環境地図との間にある対応点間距離を縮小するように、スキャンデータの回転および並進の剛体変換(座標変換)を行う。これは、対応点間距離、すなわち、対応点の誤差の総和(二乗和)を小さくするように、座標変換行列のパラメータを最適化することである。この最適化は反復計算によって行われる。
【0085】
ステップS36において、反復計算が収束したか否かを判定する。具体的には、座標変換行列のパラメータを変化させても対応点の誤差の総和(二乗和)の減少量が所定値を下回ったとき、収束したと判定する。収束しなかったときは、ステップS32に戻り、対応点の探索からの処理を繰りかえす。ステップS36において、収束したと判定されたときは、ステップS38に進む。
【0086】
ステップS38では、座標変換行列を用いてスキャンデータの座標値をセンサ座標系の値から部分環境地図の座標系の値に変換する。
【0087】
本開示の移動体によれば、部分環境地図の切り替え後において、マッチングに要する時間が大きく増加したり、あるいは、マッチングが所定時間内に完了せず、位置同定に失敗するという可能性が低減する。このため、部分環境地図の切り替え時に、移動体を停止させたり、減速させりする措置が不要になる。
【0088】
また、ロータリエンコーダなどの内界センサの出力を用いて位置および姿勢の推定を行う必要がなくなる。特にロータリエンコーダは、車輪がスリップしたときには大きな誤差が発生し、その誤差は累積されるため、測定値の信頼度が低い。さらにロータリエンコーダによる測定は、メカナムホイールなどの全方位ホイール、二足または多足歩行装置を用いて移動する移動体、あるいは、バークラフトおよびドローンなどの飛行体には適用できない。これに対して、本開示による位置推定装置は、多用な駆動装置によって移動する種々の移動体に適用可能である。
【0089】
本開示の移動体は、駆動装置を備えている必要がない。たとえばユーザによって駆動される手押し車であってもよい。このような移動体は、位置推定装置から取得した移動体の位置、または、位置および姿勢をユーザのために表示装置の地図上に表示したり、音声で伝えてもよい。
【0090】
図17は、本開示による移動体10の他の構成例を示す図である。この図に示される移動体10は、位置推定装置106から出力された移動体の位置、または、位置および姿勢の情報を用いてユーザを案内するナビゲーション装置114を備えている。このナビゲーション装置114は、画像または音声により、ユーザを案内するため表示装置116に接続されている。表示装置116は、現在位置および目的位置を地図上に表示したり、「停止」または「右に曲がれ」などの音声を発したりすることができる。このため、ユーザは、移動体10を押して目的地まで移動させることができる。このような移動体10の例は、手押し車、その他のカートである。
【0091】
図17に示される構成を備えた移動体10によれば、ナビゲーション装置114内のメモリ(不図示)に予め記憶された目的地または経路に基づいて、ルート案内が実行される。
【0092】
<例示的な実施形態>
以下、本開示による移動体の実施形態をより詳細に説明する。本実施形態では、移動体の一例として無人搬送車を挙げる。以下の説明では、略語を用いて、無人搬送車を「AGV:Automatic Guided Vehicle)」と記述する。以下、「AGV」についても、移動体10と同様に参照符号「10」を付す。
【0093】
(1)システムの基本構成
図18は、本開示による例示的な移動体管理システム100の基本構成例を示している。移動体管理システム100は、少なくとも1台のAGV10と、AGV10の運行管理を行う運行管理装置50とを含む。
図18には、ユーザ1によって操作される端末装置20も記載されている。
【0094】
AGV10は、走行に磁気テープなどの誘導体が不要な「ガイドレス式」走行が可能な無人搬送台車である。AGV10は、自己位置推定を行い、推定の結果を端末装置20および運行管理装置50に送信することができる。AGV10は、運行管理装置50からの指令にしたがって環境S内を自動走行することが可能である。
【0095】
運行管理装置50は各AGV10の位置をトラッキングし、各AGV10の走行を管理するコンピュータシステムである。運行管理装置50は、デスクトップ型PC、ノート型PC、および/または、サーバコンピュータであり得る。運行管理装置50は、複数のアクセスポイント2を介して、各AGV10と通信する。たとえば、運行管理装置50は、各AGV10が次に向かうべき位置の座標のデータを各AGV10に送信する。各AGV10は、定期的に、たとえば250ミリ秒ごとに自身の位置および姿勢(orientation)を示すデータを運行管理装置50に送信する。指示した位置にAGV10が到達すると、運行管理装置50は、さらに次に向かうべき位置の座標のデータを送信する。AGV10は、端末装置20に入力されたユーザ1の操作に応じて環境S内を走行することも可能である。端末装置20の一例はタブレットコンピュータである。
【0096】
図19は、3台のAGV10a,10bおよび10cが存在する環境Sの一例を示している。いずれのAGVも図中の奥行き方向に走行しているとする。AGV10aおよび10bは天板に載置された荷物を搬送中である。AGV10cは、前方のAGV10bに追従して走行している。なお、説明の便宜のため、
図19では参照符号10a,10bおよび10cを付したが、以下では、「AGV10」と記述する。
【0097】
AGV10は、天板に載置された荷物を搬送する方法以外に、自身と接続された牽引台車を利用して荷物を搬送することも可能である。
図20は接続される前のAGV10および牽引台車5を示している。牽引台車5の各足にはキャスターが設けられている。AGV10は牽引台車5と機械的に接続される。
図21は、接続されたAGV10および牽引台車5を示している。AGV10が走行すると、牽引台車5はAGV10に牽引される。牽引台車5を牽引することにより、AGV10は、牽引台車5に載置された荷物を搬送できる。
【0098】
AGV10と牽引台車5との接続方法は任意である。ここでは一例を説明する。AGV10の天板にはプレート6が固定されている。牽引台車5には、スリットを有するガイド7が設けられている。AGV10は牽引台車5に接近し、プレート6をガイド7のスリットに差し込む。差し込みが完了すると、AGV10は、図示されない電磁ロック式ピンをプレート6およびガイド7に貫通させ、電磁ロックをかける。これにより、AGV10と牽引台車5とが物理的に接続される。
【0099】
再び
図18を参照する。各AGV10と端末装置20とは、たとえば1対1で接続されてBluetooth(登録商標)規格に準拠した通信を行うことができる。各AGV10と端末装置20とは、1または複数のアクセスポイント2を利用してWi−Fi(登録商標)に準拠した通信を行うこともできる。複数のアクセスポイント2は、たとえばスイッチングハブ3を介して互いに接続されている。
図18には2台のアクセスポイント2a,2bが記載されている。AGV10はアクセスポイント2aと無線で接続されている。端末装置20はアクセスポイント2bと無線で接続されている。AGV10が送信したデータはアクセスポイント2aで受信された後、スイッチングハブ3を介してアクセスポイント2bに転送され、アクセスポイント2bから端末装置20に送信される。また、端末装置20が送信したデータは、アクセスポイント2bで受信された後、スイッチングハブ3を介してアクセスポイント2aに転送され、アクセスポイント2aからAGV10に送信される。これにより、AGV10および端末装置20の間の双方向通信が実現される。複数のアクセスポイント2はスイッチングハブ3を介して運行管理装置50とも接続されている。これにより、運行管理装置50と各AGV10との間でも双方向通信が実現される。
【0100】
(2)環境地図の作成
自己位置を推定しながらAGV10が走行できるようにするため、環境S内の地図が作成される。AGV10には位置推定装置およびLRFが搭載されており、LRFの出力を利用して地図を作成できる。
【0101】
AGV10は、ユーザの操作によってデータ取得モードに遷移する。データ取得モードにおいて、AGV10はLRFを用いたセンサデータの取得を開始する。
【0102】
位置推定装置は、センサデータを記憶装置に蓄積する。環境S内のセンサデータの取得が完了すると、記憶装置に蓄積されたセンサデータが外部装置に送信される。外部装置は、たとえば信号処理プロセッサを有し、かつ、地図作成コンピュータプログラムがインストールされたコンピュータである。
【0103】
外部装置の信号処理プロセッサは、スキャンごとに得られたセンサデータ同士を重ね合わせる。信号処理プロセッサが重ね合わせる処理を繰り返し行うことにより、環境Sの地図を作成することができる。外部装置は、作成した地図のデータをAGV10に送信する。AGV10は、作成した地図のデータを内部の記憶装置に保存する。外部装置は、運行管理装置50であってもよいし、他の装置であってもよい。
【0104】
外部装置ではなくAGV10が地図の作成を行ってもよい。上述した外部装置の信号処理プロセッサが行った処理を、AGV10のマイクロコントローラユニット(マイコン)などの回路が行えばよい。AGV10内で地図を作成する場合には、蓄積されたセンサデータを外部装置に送信する必要がなくなる。センサデータのデータ容量は一般には大きいと考えられる。センサデータを外部装置に送信する必要がないため、通信回線の占有を回避できる。
【0105】
なお、センサデータを取得するための環境S内の移動は、ユーザの操作にしたがってAGV10が走行することによって実現し得る。たとえば、AGV10は、端末装置20を介して無線でユーザから前後左右の各方向への移動を指示する走行指令を受け取る。AGV10は走行指令にしたがって環境S内を前後左右に走行し、地図を作成する。AGV10がジョイスティック等の操縦装置と有線で接続されている場合には、当該操縦装置からの制御信号にしたがって環境S内を前後左右に走行し、地図を作成してもよい。LRFを搭載した計測台車を人が押し歩くことによってセンサデータを取得してもよい。
【0106】
なお、
図18および
図19には複数台のAGV10が示されているが、AGVは1台であってもよい。複数台のAGV10が存在する場合、ユーザ1は端末装置20を利用して、登録された複数のAGVのうちから一台のAGV10を選択して、環境Sの地図を作成させることができる。
【0107】
地図が作成されると、以後、各AGV10は当該地図を利用して自己位置を推定しながら自動走行することができる。
【0108】
(3)AGVの構成
図22は、本実施形態にかかる例示的なAGV10の外観図である。AGV10は、2つの駆動輪11aおよび11bと、4つのキャスター11c、11d、11eおよび11fと、フレーム12と、搬送テーブル13と、走行制御装置14と、LRF15とを有する。2つの駆動輪11aおよび11bは、AGV10の右側および左側にそれぞれ設けられている。4つのキャスター11c、11d、11eおよび11fは、AGV10の4隅に配置されている。なお、AGV10は、2つの駆動輪11aおよび11bに接続される複数のモータも有するが、複数のモータは
図22には示されていない。また、
図22には、AGV10の右側に位置する1つの駆動輪11aおよび2つのキャスター11cおよび11eと、左後部に位置するキャスター11fとが示されているが、左側の駆動輪11bおよび左前部のキャスター11dはフレーム12の蔭に隠れているため明示されていない。4つのキャスター11c、11d、11eおよび11fは、自由に旋回することができる。以下の説明では、駆動輪11aおよび駆動輪11bを、それぞれ車輪11aおよび車輪11bとも称する。
【0109】
走行制御装置14は、AGV10の動作を制御する装置であり、主としてマイコン(後述)を含む集積回路、電子部品およびそれらが搭載された基板を含む。走行制御装置14は、上述した、端末装置20とのデータの送受信、および、前処理演算を行う。
【0110】
LRF15は、たとえば赤外のレーザビーム15aを放射し、当該レーザビーム15aの反射光を検出することにより、反射点までの距離を測定する光学機器である。本実施形態では、AGV10のLRF15は、たとえばAGV10の正面を基準として左右135度(合計270度)の範囲の空間に、0.25度ごとに方向を変化させながらパルス状のレーザビーム15aを放射し、各レーザビーム15aの反射光を検出する。これにより、0.25度ごと、合計1081ステップ分の角度で決まる方向における反射点までの距離のデータを得ることができる。なお、本実施形態では、LRF15が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)である。しかしながら、LRF15は高さ方向のスキャンを行ってもよい。
【0111】
AGV10の位置および姿勢(向き)と、LRF15のスキャン結果とにより、AGV10は、環境Sの地図を作成することができる。地図には、AGVの周囲の壁、柱等の構造物、床の上に載置された物体の配置が反映され得る。地図のデータは、AGV10内に設けられた記憶装置に格納される。
【0112】
AGV10の位置および姿勢、すなわちポーズ(x,y,θ)を、以下、単に「位置」と呼ぶことがある。
【0113】
走行制御装置14は、前述したようにして、LRF15の測定結果と、自身が保持する地図データとを比較して、自身の現在位置を推定する。地図データは、他のAGV10が作成した地図データであってもよい。
【0114】
図23Aは、AGV10の第1のハードウェア構成例を示している。また
図23Aは、走行制御装置14の具体的な構成も示している。
【0115】
AGV10は、走行制御装置14と、LRF15と、2台のモータ16aおよび16bと、駆動装置17と、車輪11aおよび11bとを備えている。
【0116】
走行制御装置14は、マイコン14aと、メモリ14bと、記憶装置14cと、通信回路14dと、位置推定装置14eとを有している。マイコン14a、メモリ14b、記憶装置14c、通信回路14dおよび位置推定装置14eは通信バス14fで接続されており、相互にデータを授受することが可能である。LRF15もまた通信インタフェース(図示せず)を介して通信バス14fに接続されており、計測結果である計測データを、マイコン14a、位置推定装置14eおよび/またはメモリ14bに送信する。
【0117】
マイコン14aは、走行制御装置14を含むAGV10の全体を制御するための演算を行うプロセッサまたは制御回路(コンピュータ)である。典型的にはマイコン14aは半導体集積回路である。マイコン14aは、制御信号であるPWM(Pulse Width Modulation)信号を駆動装置17に送信して駆動装置17を制御し、モータに印加する電圧を調整させる。これによりモータ16aおよび16bの各々が所望の回転速度で回転する。
【0118】
左右のモータ16aおよび16bの駆動を制御する1つ以上の制御回路(たとえばマイコン)を、マイコン14aとは独立して設けてもよい。たとえば、モータ駆動装置17が、モータ16aおよび16bの駆動をそれぞれ制御する2つのマイコンを備えていてもよい。
【0119】
メモリ14bは、マイコン14aが実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ14bは、マイコン14aおよび位置推定装置14eが演算を行う際のワークメモリとしても利用され得る。
【0120】
記憶装置14cは、不揮発性の半導体メモリ装置である。ただし、記憶装置14cは、ハードディスクに代表される磁気記録媒体、または、光ディスクに代表される光学式記録媒体であってもよい。さらに、記憶装置14cは、いずれかの記録媒体にデータを書き込みおよび/または読み出すためのヘッド装置および当該ヘッド装置の制御装置を含んでもよい。
【0121】
記憶装置14cは、走行する環境Sの地図データ(複数の部分環境地図を含む環境地
図M)、および、1または複数の走行経路のデータ(走行経路データ)Rを記憶する。環境地
図Mは、AGV10が地図作成モードで動作することによって作成され記憶装置14cに記憶され得る。走行経路データRは、地
図Mが作成された後に外部から送信される。本実施形態では、環境地
図Mおよび走行経路データRは同じ記憶装置14cに記憶されているが、異なる記憶装置に記憶されてもよい。
【0123】
端末装置20がタブレットコンピュータである場合には、AGV10はタブレットコンピュータから走行経路を示す走行経路データRを受信する。このときの走行経路データRは、複数のマーカの位置を示すマーカデータを含む。「マーカ」は走行するAGV10の通過位置(経由点)を示す。走行経路データRは、走行開始位置を示す開始マーカおよび走行終了位置を示す終了マーカの位置情報を少なくとも含む。走行経路データRは、さらに、1以上の中間経由点のマーカの位置情報を含んでもよい。走行経路が1以上の中間経由点を含む場合には、開始マーカから、当該走行経由点を順に経由して終了マーカに至る経路が、走行経路として定義される。各マーカのデータは、そのマーカの座標データに加えて、次のマーカに移動するまでのAGV10の向き(角度)および走行速度のデータを含み得る。AGV10が各マーカの位置で一旦停止し、自己位置推定および端末装置20への通知などを行う場合には、各マーカのデータは、当該走行速度に達するまでの加速に要する加速時間、および/または、当該走行速度から次のマーカの位置で停止するまでの減速に要する減速時間のデータを含み得る。
【0124】
端末装置20ではなく運行管理装置50(たとえば、PCおよび/またはサーバコンピュータ)がAGV10の移動を制御してもよい。その場合には、運行管理装置50は、AGV10がマーカに到達する度に、次のマーカへの移動をAGV10に指示してもよい。たとえば、AGV10は、運行管理装置50から、次に向かうべき目的位置の座標データ、または、当該目的位置までの距離および進むべき角度のデータを、走行経路を示す走行経路データRとして受信する。
【0125】
AGV10は、作成された地図と走行中に取得されたLRF15が出力したセンサデータとを利用して自己位置を推定しながら、記憶された走行経路に沿って走行することができる。
【0126】
通信回路14dは、たとえば、Bluetooth(登録商標)および/またはWi−Fi(登録商標)規格に準拠した無線通信を行う無線通信回路である。いずれの規格も、2.4GHz帯の周波数を利用した無線通信規格を含む。たとえばAGV10を走行させて地図を作成するモードでは、通信回路14dは、Bluetooth(登録商標)規格に準拠した無線通信を行い、1対1で端末装置20と通信する。
【0127】
位置推定装置14eは、地図の作成処理、および、走行時には自己位置の推定処理を行う。位置推定装置14eは、AGV10の位置および姿勢とLRFのスキャン結果とにより、環境Sの地図を作成する。走行時には、位置推定装置14eは、LRF15からセンサデータを受け取り、また、記憶装置14cに記憶された環境地
図Mを読み出す。LRF15のスキャン結果から作成された局所的地図データ(センサデータ)を、より広範囲の環境地
図Mとのマッチングを行うことにより、環境地
図M上における自己位置(x,y,θ)を同定する。位置推定装置14eは、局所的地図データが環境地
図Mに一致した程度を表す「信頼度」のデータを生成する。自己位置(x,y,θ)、および、信頼度の各データは、AGV10から端末装置20または運行管理装置50に送信され得る。端末装置20または運行管理装置50は、自己位置(x,y,θ)、および、信頼度の各データを受信して、内蔵または接続された表示装置に表示することができる。
【0128】
本実施形態では、マイコン14aと位置推定装置14eとは別個の構成要素であるとしているが、これは一例である。マイコン14aおよび位置推定装置14eの各動作を独立して行うことが可能な1つのチップ回路または半導体集積回路であってもよい。
図23Aには、マイコン14aおよび位置推定装置14eを包括するチップ回路14gが示されている。以下では、マイコン14aおよび位置推定装置14eが別個独立に設けられている例を説明する。
【0129】
2台のモータ16aおよび16bは、それぞれ2つの車輪11aおよび11bに取り付けられ、各車輪を回転させる。つまり、2つの車輪11aおよび11bはそれぞれ駆動輪である。本明細書では、モータ16aおよびモータ16bは、それぞれAGV10の右輪および左輪を駆動するモータであるとして説明する。
【0130】
駆動装置17は、2台のモータ16aおよび16bの各々に印加される電圧を調整するためのモータ駆動回路17aおよび17bを有する。モータ駆動回路17aおよび17bの各々はいわゆるインバータ回路を含む。モータ駆動回路17aおよび17bは、マイコン14aまたはモータ駆動回路17a内のマイコンから送信されたPWM信号によって各モータに流れる電流をオンまたはオフし、それによりモータに印加される電圧を調整する。
【0131】
図23Bは、AGV10の第2のハードウェア構成例を示している。第2のハードウェア構成例は、レーザ測位システム14hを有する点、および、マイコン14aが各構成要素と1対1で接続されている点において、第1のハードウェア構成例(
図23A)と相違する。
【0132】
レーザ測位システム14hは、位置推定装置14eおよびLRF15を有する。位置推定装置14eおよびLRF15は、たとえばイーサネット(登録商標)ケーブルで接続されている。位置推定装置14eおよびLRF15の各動作は上述した通りである。レーザ測位システム14hは、AGV10のポーズ(x,y,θ)を示す情報をマイコン14aに出力する。
【0133】
マイコン14aは、種々の汎用I/Oインタフェースまたは汎用入出力ポート(図示せず)を有している。マイコン14aは、通信回路14d、レーザ測位システム14h等の、走行制御装置14内の他の構成要素と、当該汎用入出力ポートを介して直接接続されている。
【0134】
図23Bに関して上述した構成以外は、
図23Aの構成と共通である。よって共通の構成の説明は省略する。
【0135】
本開示の実施形態におけるAGV10は、図示されていない障害物検知センサおよびバンパースイッチなどのセーフティセンサを備えていてもよい。
【0136】
(4)運行管理装置の構成例
図24は、運行管理装置50のハードウェア構成例を示している。運行管理装置50は、CPU51と、メモリ52と、位置データベース(位置DB)53と、通信回路54と、地図データベース(地
図DB)55と、画像処理回路56とを有する。
【0137】
CPU51、メモリ52、位置DB53、通信回路54、地
図DB55および画像処理回路56は通信バス57で接続されており、相互にデータを授受することが可能である。
【0138】
CPU51は、運行管理装置50の動作を制御する信号処理回路(コンピュータ)である。典型的にはCPU51は半導体集積回路である。
【0139】
メモリ52は、CPU51が実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ52は、CPU51が演算を行う際のワークメモリとしても利用され得る。
【0140】
位置DB53は、各AGV10の行き先となり得る各位置を示す位置データを格納する。位置データは、たとえば管理者によって工場内に仮想的に設定された座標によって表され得る。位置データは管理者によって決定される。
【0141】
通信回路54は、たとえばイーサネット(登録商標)規格に準拠した有線通信を行う。通信回路54はアクセスポイント2(
図18)と有線で接続されており、アクセスポイント2を介して、AGV10と通信することができる。通信回路54は、AGV10に送信すべきデータを、バス57を介してCPU51から受信する。また通信回路54は、AGV10から受信したデータ(通知)を、バス57を介してCPU51および/またはメモリ52に送信する。
【0142】
地
図DB55は、AGV10が走行する工場等の内部の地図のデータを格納する。各AGV10の位置と1対1で対応関係を有する地図であれば、データの形式は問わない。たとえば地
図DB55に格納される地図は、CADによって作成された地図であってもよい。
【0143】
位置DB53および地
図DB55は、不揮発性の半導体メモリ上に構築されてもよいし、ハードディスクに代表される磁気記録媒体、または光ディスクに代表される光学式記録媒体上に構築されてもよい。
【0144】
画像処理回路56はモニタ58に表示される映像のデータを生成する回路である。画像処理回路56は、専ら、管理者が運行管理装置50を操作する際に動作する。本実施形態では特にこれ以上の詳細な説明は省略する。なお、モニタ58は運行管理装置50と一体化されていてもよい。また画像処理回路56の処理をCPU51が行ってもよい。
【0145】
上述の実施形態の説明では、一例として二次元空間(床面)を走行するAGVを挙げた。しかしながら本開示は三次元空間を移動する移動体、たとえば飛行体(ドローン)、にも適用され得る。ドローンが飛行しながら三次元空間地図を作成する場合には、二次元空間を三次元空間に拡張することができる。
【0146】
上記の包括的な態様は、システム、方法、集積回路、コンピュータプログラム、または記録媒体によって実現されてもよい。あるいは、システム、装置、方法、集積回路、コンピュータプログラム、および記録媒体の任意な組み合わせによって実現されてもよい。