(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
センシング方法の異なる2種類の測位装置を備える移動体の走行を安定化させる。移動体は、モータと、前記モータを制御して前記移動体を移動させる駆動装置と、互いに異なるセンシング方法によって前記移動体の移動に応じて取得したセンシング結果を示す第1センサデータおよび第2センサデータをそれぞれ出力する第1センサおよび第2センサと、前記第1センサデータを用いて第1推定演算を行って前記移動体の位置を推定する第1測位装置と、前記第2センサデータを用いて第2推定演算を行って前記移動体の位置を推定する第2測位装置と、前記第1測位装置による推定結果の確からしさを示す信頼性データが所定の条件に合致しているか否かに応じて、前記第1測位装置による推定結果および前記第2測位装置による推定結果の一方を前記移動体の位置として選択する演算回路と、を備える。
前記レーザレンジファインダまたは他のレーザレンジファインダから周期的に出力されたセンサデータに基づいて予め作成された地図データを記憶する記憶装置をさらに備え、
前記第1測位装置は、前記第1センサデータと前記地図データとの照合を行って前記移動体の位置を推定する、請求項2に記載の移動体。
前記第2測位装置は、前記第1ロータリエンコーダおよび前記第2ロータリエンコーダの各々から出力された前記第2センサデータを用いて所与の初期位置からの相対的な変位量を計測し、前記初期位置から前記変位量だけ移動した位置を、前記移動体の位置として推定する、請求項4または5に記載の移動体。
前記演算回路は、前記第1測位装置による推定結果を前記移動体の位置として選択しているときにおいて、前記第1信頼性データの値が切替閾値以下になると前記第2測位装置による推定結果を前記移動体の位置として選択する、請求項9に記載の移動体。
前記演算回路は、前記第1測位装置による推定結果として得られた位置と前記第2測位装置による推定結果として得られた位置との差を第2信頼性データとして出力する、請求項9または10に記載の移動体。
前記演算回路は、前記第1測位装置による推定結果を前記移動体の位置として選択しているときにおいて、前記第2信頼性データの値が予め定められた許容値以上になると前記第2測位装置による推定結果を前記移動体の位置として選択する、請求項11に記載の移動体。
前記演算回路は、前記第2測位装置による推定結果を前記移動体の位置として選択しているときにおいて、前記第1信頼性データの値が予め定められた復帰閾値以上になり、かつ、前記第2信頼性データの値が予め定められた前記許容値未満になると、前記第1測位装置による推定結果を前記移動体の位置として選択する、請求項11または12に記載の移動体。
前記演算回路が前記第2測位装置による推定結果を選択しているときは、前記駆動装置は、前記演算回路が前記第1測位装置による推定結果を選択しているときよりも遅い速度で前記移動体を移動させる、請求項9から13のいずれかに記載の移動体。
前記演算回路が前記第2測位装置による推定結果を選択しているときは、前記第1測位装置は、前記第1センサデータと前記第2測位装置による推定結果とを利用して前記第1推定演算を行う、請求項14に記載の移動体。
前記演算回路は、外部から行き先の指示を受け付け、選択した前記移動体の位置を利用して前記駆動装置を制御し前記行き先に向かって前記移動体を移動させる、請求項1から19のいずれかに記載の移動体。
前記演算回路は、前記移動体を移動させているとき、前記第1測位装置による推定結果および前記第2測位装置による推定結果のいずれを選択しているかを示す信号を出力する、請求項1から20のいずれかに記載の移動体。
【発明を実施するための形態】
【0011】
<用語>
本開示の実施形態を説明する前に、本明細書において使用する用語の定義を説明する。
【0012】
「無人搬送車」(AGV)とは、本体に人手または自動で荷物を積み込み、指示された場所まで自動走行し、人手または自動で荷卸しをする無軌道車両を意味する。「無人搬送車」は、無人牽引車および無人フォークリフトを含む。
【0013】
「無人」の用語は、車両の操舵に人を必要としないことを意味しており、無人搬送車が「人(たとえば荷物の積み下ろしを行う者)」を搬送することは除外しない。
【0014】
「無人牽引車」とは、人手または自動で荷物の積み込み荷卸しをする台車を牽引して,指示された場所まで自動走行する無軌道車両である。
【0015】
「無人フォークリフト」とは、荷物移載用のフォークなどを上下させるマストを備え,フォークなどに荷物を自動移載し指示された場所まで自動走行し,自動荷役作業をする無軌道車両である。
【0016】
「無軌道車両」とは、車輪と、車輪を回転させる電気モータまたはエンジンを備える移動体(vehicle)である。
【0017】
「移動体」とは、人または荷物を載せて移動する装置であり、移動のための駆動力(traction)を発生させる車輪、二足または多足歩行装置、プロペラなどの駆動装置を備える。本開示における「移動体」の用語は、狭義の無人搬送車のみならず、モバイルロボットおよびドローンを含む。
【0018】
「自動走行」は、無人搬送車が通信によって接続されるコンピュータの運行管理システムの指令に基づく走行と、無人搬送車が備える制御装置による自律的走行とを含む。自律的走行には、無人搬送車が所定の経路に沿って目的地に向かう走行のみならず、追尾目標に追従する走行も含まれる。また、無人搬送車は、一時的に作業者の指示に基づくマニュアル走行を行ってもよい。「自動走行」は、一般には「ガイド式」の走行および「ガイドレス式」の走行の両方を含むが、本開示では「ガイドレス式」の走行を意味する。
【0019】
「ガイド式」とは、誘導体を連続的または断続的に設置し、誘導体を利用して無人搬送車を誘導する方式である。
【0020】
「ガイドレス式」とは、誘導体を設置せずに誘導する方式である。本開示の実施形態における無人搬送車は、自己位置推定装置を備え、ガイドレス式で走行する。
【0021】
「自己位置推定装置」は、レーザレンジファインダなどの外界センサによって取得されたセンサデータに基づいて環境地図上における自己位置を推定する装置である。
【0022】
「SLAM(スラム)」とは、Simultaneous Localization and Mappingの略語であり、自己位置推定と環境地図作成を同時に行うことを意味する。
【0023】
<基本構成例>
本開示による移動体の具体的な実施形態を説明する前に、本開示による移動体の基本構成例を説明する。
【0024】
図1は、本開示の例示的な実施形態における移動体の基本構成例を示すブロック図である。この例における移動体10は、第1センサ101と、第2センサ102と、第1測位装置103と、第2測位装置104と、演算回路105と、少なくとも1つの電気モータ(以下、単に「モータ」と称する)106と、駆動装置107とを備えている。第1測位装置103は、第1センサ101と演算回路105との間に接続されている。第2測位装置104は、第2センサ102と演算回路105との間に接続されている。駆動装置107は、少なくとも1つのモータ106を制御して移動体10を移動させる。
【0025】
移動体10の典型例は、モータ106に対して機械的に結合した少なくとも1個の駆動輪(不図示)を有し、駆動輪のトラクションによって地上を走行することができる。
【0026】
第1センサ101および第2センサ102は、移動体10が移動している間、互いに異なるセンシング方法によって移動体10の移動に応じた情報を取得する。それぞれのセンシング結果は、移動体10の位置推定に用いられる。第1センサ101および第2センサ102から出力されるデータを、それぞれ第1センサデータおよび第2センサデータと称する。
【0027】
第1センサ101および第2センサ102の各々は、外界センサであってもよいし、内界センサであってもよい。「外界センサ」は、移動体10の外部の状態をセンシングするセンサである。外界センサには、例えば、レーザレンジファインダ、カメラ(または撮像素子)、LIDAR(Light Detection and Ranging)、ミリ波レーダ、および磁気センサがある。「内界センサ」は、移動体10の内部の状態をセンシングするセンサである。内界センサには、例えばロータリエンコーダ(以下、単に「エンコーダ」と称することがある)、加速度センサ、および角加速度センサ(例えばジャイロセンサ)がある。
【0028】
第1センサ101および第2センサ102は、異なる種類のセンサである。例えば、第1センサ101は外界センサであり、第2センサ102は内界センサであり得る。ある実施形態では、第1センサ101は、レーザレンジファインダ(以下、LRFと表記することがある)を含み、第2センサ102は、少なくとも1つのロータリエンコーダを含む。しかし、本開示はそのような形態に限定されない。第1センサ101および第2センサ102の各々は、移動体10の位置を推定するために利用されるデータを出力する限り、特定の種類のセンサに限定されない。第1センサ101および第2センサ102の各々は、例えば、カメラ、撮像装置、撮像素子、磁気センサ、LIDAR、ミリ波レーダ、角速度センサ、または加速度センサなどの機器であってもよい。
【0029】
移動体10が移動している間、第1測位装置103は、第1センサ101から出力された第1センサデータを用いて第1推定演算を行って移動体10の現在の位置を推定する。例えば第1センサ101がレーザレンジファインダである場合、第1測位装置103は、予め用意された地図データと、レーザレンジファインダによって取得されたデータとの照合を行い、地図上のどの位置に移動体が位置しているかを推定する。第1測位装置103は、移動体の位置だけでなく、向き(または姿勢)を推定してもよい。第1測位装置103は、推定結果を示すデータを、第1位置情報として出力する。
【0030】
第2測位装置104は、第2センサ102から出力された第2センサデータを用いて第2推定演算を行って移動体10の現在の位置を推定する。例えば第2センサ102が少なくとも1つのロータリエンコーダを含む場合、第2測位装置104は、予めメモリなどの記録媒体に記録された初期位置の情報と、ロータリエンコーダから出力された車輪の回転状態を示す情報とから、現在の位置を推定することができる。第2測位装置104も、移動体の位置だけでなく、向きを推定してもよい。第2測位装置104は、推定結果を示すデータを、第2位置情報として出力する。
【0031】
移動体10は、レーザレンジファインダから周期的に出力されたセンサデータに基づいて予め作成された地図データを記憶する記憶装置をさらに備えていてもよい。地図データの作成に使用されるレーザレンジファインダ(LRF)は、移動体10に搭載されたLRF(第1センサ101)でもよいし、他のLRFでもよい。この場合、第1測位装置103は、第1センサデータと地図データとの照合を行って移動体10の位置を推定する。この動作を「自己位置推定」と称する。自己位置推定は、座標だけでなく、基準軸からの角度の推定を含んでいてもよい。
【0032】
移動体10は、第1車輪および第2車輪を含む複数の車輪を備える車両であってもよい。その場合、少なくとも1つのモータ106は、第1車輪に機械的に接続された第1モータと、第2車輪に機械的に接続された第2モータとを含み得る。移動体10は、第1モータから第1車輪までの動力伝達機構のいずれかの位置における回転を計測する第1ロータリエンコーダと、第2モータから第2車輪までの動力伝達機構のいずれかの位置における回転を計測する第2ロータリエンコーダとを備えていてもよい。「回転を計測する」とは、「回転方向」および(回転数を考慮した)「回転位置」を少なくとも計測することを意味する。
【0033】
ある実施形態において、第1ロータリエンコーダおよび第2ロータリエンコーダは、それぞれ第1車輪および第2車輪の回転を計測する。その場合、第2測位装置104は、第1ロータリエンコーダおよび第2ロータリエンコーダの各々から出力された第2センサデータを用いて所与の初期位置からの相対的な変位量を計測し、初期位置から変位量だけ移動した位置を、移動体10の位置として推定することができる。初期位置は、移動体10の走行中、定期的にまたは不定期に更新され得る。例えば、演算回路105は、第1測位装置103によって推定された位置(座標)の値で、上記の初期位置の値を更新してもよい。移動体10の走行中、演算回路105は、この初期位置の更新を所定の周期で行ってもよいし、非周期的に行ってもよい。
【0034】
一般に、第1位置情報および第2位置情報の信頼性には差違がある。例えば、第1センサ101がLRFを含み、第2センサ102がエンコーダを含む場合、LRFを用いて取得された第1位置情報の方が、エンコーダを用いて取得された第2位置情報よりも高い信頼性を有する傾向にある。これは、路面状態に依存して生じる車輪の空転、または段差によるずれなどの理由により、エンコーダから出力されるオドメトリデータには誤差が生じ易く、その誤差が蓄積され易いからである。このような信頼性の不一致は、LRFとエンコーダとの組み合わせに限らず、他の2種類のセンサ(例えばカメラとジャイロセンサ等)の組み合わせにおいても生じ得る。このため、第1位置情報および第2位置情報のうち、信頼性が高い方が主に使用され、他方は補助的に使用される。
【0035】
しかし、第1位置情報の方が第2位置情報よりも信頼性が低くなる場合もあり得る。例えば、第1測位装置103がLRFからの第1センサデータと地図データとのマッチングによって自己位置推定を行う形態では、第1測位装置103が実際とは全く異なる座標を誤って出力することがある。これは、例えば、同様の特徴点を含む箇所が経路上に複数存在する場合や、地図作成時には存在しなかった物体(特に壁等と混同し易い物体)が存在する場合に生じ易い。このような場合に第1位置情報を用いた自己位置推定を継続すると、正確な経路を走行できなくなる。その結果、目的の地点に到達できなくなるだけでなく、オーバーランまたは衝突のリスクが生じる。
【0036】
そこで、本開示の実施形態では、移動体10の移動中、演算回路105が、第1測位装置103および第2測位装置104の推定結果のうち、より正確度が高いと推定される推定結果を選択して走行を制御する。これにより、例えば通常時には第1測位装置103によって推定された位置情報を用いて走行し、第1測位装置103による位置情報の信頼性が低いと判定された場合には、第2測位装置04による位置情報を用いた走行に切り替えることができる。
【0037】
演算回路105は、第1位置情報と第2位置情報とに基づいて、移動体10の現在の位置を決定し、駆動装置107を制御する。演算回路105は、第1および第2の位置情報に加えて第1測位装置103による推定結果の確からしさを示す信頼性データを取得する。演算回路105は、信頼性データが所定の条件に合致しているか否かに応じて、第1測位装置103による推定結果および第2測位装置104による推定結果の一方を移動体10の位置として選択する。演算回路105は、例えば外部の装置から行き先の指示を受け付け、選択した移動体10の位置を利用して駆動装置107を制御し、当該行き先に向かって移動体10を移動させる。
【0038】
信頼性データは、第1測位装置103から出力されてもよいし、演算回路105が自ら生成してもよい。例えば第1センサ101がLRFを含む形態では、第1測位装置103は、第1センサデータと地図データとの一致度を示すデータを、第1信頼性データとして出力してもよい。この場合、演算回路105は、第1測位装置103による推定結果を移動体10の位置として選択しているときにおいて、第1信頼性データの値が切替閾値以下になった場合に、第2測位装置104による推定結果を移動体10の位置として選択することができる。逆に、演算回路105は、第2測位装置104による推定結果を移動体10の位置として選択しているときにおいて、第1信頼性データの値が復帰閾値以上になった場合に、第1測位装置103による推定結果を移動体10の位置として選択する状態に戻すことができる。復帰閾値は、切替閾値と同じ値でもよいが、切替閾値よりも大きい値にしてもよい。例えば、第1信頼性データが「%」を単位とする数値で表される場合、復帰閾値を、切替閾値よりも数%から30%程度高い値にすることで、動作をより安定させることができる。
【0039】
第1信頼性データの値が復帰閾値以上になった場合であっても、演算回路105は、第1位置情報が示す座標の動きと第2位置情報が示す座標の動きとが近似していない場合には、第2位置情報が示す位置を移動体10の位置として選択してもよい。第1位置情報が示す座標の動きと第2位置情報が示す座標の動きとが近似していない場合には、以下の2つの場合があり得る。
(1)第1測位装置103による推定結果に基づいて推定した一定時間内(例えば数秒間)における移動体10の移動距離と、第2測位装置104による推定結果に基づいて推定した当該一定時間内における移動体10の移動距離との差が、第1閾値よりも大きい場合
(2)第1測位装置103による推定結果に基づいて推定した当該一定時間内における移動体10の角度変化量と、第2測位装置104による推定結果に基づいて推定した当該一定時間内における移動体10の角度変化量との差が、第2閾値よりも大きい場合
【0040】
演算回路105は、上記(1)および(2)の少なくとも一方に該当する場合には、第1位置情報の信頼度が復帰閾値よりも高い場合でも、第2測位装置104による推定結果を移動体10の位置として選択し、運行を継続してもよい。
【0041】
信頼性データは、第1位置情報が示す座標と、第2位置情報が示す座標との差を示すデータ(「第2信頼性データ」と称する)を含んでいてもよい。この場合、演算回路105は、第1測位装置103による推定結果として得られた位置と第2測位装置104による推定結果として得られた位置との差を第2信頼性データとして出力する。第1位置情報が示す座標を(x1,x1)とし、第2位置情報が示す座標を(x2,y2)とするとき、第2信頼性データは、例えば、(x1−x2)の絶対値、(y1−y2)の絶対値、または(x1−x2)
2+(y1−y2)
2の値もしくはその平方根を示すデータであり得る。演算回路105は、第1測位装置103による推定結果を移動体10の位置として選択しているときにおいて、第2信頼性データの値が予め定められた許容値以上になったとき、第2測位装置104による推定結果を移動体10の位置として選択することができる。逆に、演算回路105は、第2測位装置104による推定結果を移動体10の位置として選択しているときにおいて、第2信頼性データの値が当該許容値またはそれよりも小さい値未満になったとき、第1測位装置103による測定結果を移動体10の位置として選択する状態に戻すことができる。
【0042】
本開示は、移動体における演算回路によって実行されるコンピュータプログラムも含む。そのようなプログラムは、移動体が備えるメモリに格納される。当該コンピュータプログラムは、演算回路に、第1測位装置による推定結果の確からしさを示す信頼性データが所定の条件に合致しているか否かに応じて、前記第1測位装置による推定結果および前記第2測位装置による推定結果の一方を前記移動体の位置として選択させる。
【0043】
<例示的な実施形態>
以下、添付の図面を参照しながら、本開示による移動体および移動体システムのより具体的な実施形態を説明する。なお、必要以上に詳細な説明は省略する場合がある。たとえば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。本発明者らは、当業者が本開示を十分に理解するために添付図面および以下の説明を提供する。これらによって特許請求の範囲に記載の主題を限定することを意図しない。
【0044】
本実施形態は、移動体の一例として無人搬送車を備えたシステムに関する。以下の説明では、略語を用いて、無人搬送車を「AGV」と記述する。本実施形態では、第1センサ101がレーザレンジファインダを含み、第2センサ102が、2つの車輪の回転速度(単位時間当たりの回転数)を計測する2つのロータリエンコーダを含んでいる。
【0045】
(1)システムの基本構成
図2は、本開示による例示的な移動体管理システム100の基本構成例を示している。移動体管理システム100は、少なくとも1台のAGV10と、ユーザ1によって操作される端末装置20と、AGV10の運行管理を行う運行管理装置50とを含む。
【0046】
AGV10は、走行に磁気テープなどの誘導体が不要な「ガイドレス式」走行が可能な無人搬送台車である。AGV10は、自己位置推定を行い、推定の結果を端末装置20および運行管理装置50に送信することができる。AGV10は、運行管理装置50からの指令に従って移動空間S内を自動走行することが可能である。
【0047】
運行管理装置50は各AGV10の位置をトラッキングし、各AGV10の走行を管理するコンピュータシステムである。運行管理装置50は、デスクトップ型PC、ノート型PC、および/または、サーバコンピュータであり得る。運行管理装置50は、複数のアクセスポイント2を介して、各AGV10と通信する。たとえば、運行管理装置50は、各AGV10が次に向かうべき位置の座標のデータを各AGV10に送信する。各AGV10は、定期的に、たとえば100ミリ秒ごとに自身の位置および姿勢を示すデータを運行管理装置50に送信する。指示した位置にAGV10が到達すると、運行管理装置50は、さらに次に向かうべき位置の座標のデータを送信する。AGV10は、端末装置20に入力されたユーザ1の操作に応じて移動空間S内を走行することも可能である。端末装置20の一例はタブレットコンピュータである。典型的には、端末装置20を利用したAGV10の走行は地図作成時に行われ、運行管理装置50を利用したAGV10の走行は地図作成後に行われる。
【0048】
図3は、3台のAGV10a,10bおよび10cが存在する移動空間Sの一例を示している。いずれのAGVも図中の奥行き方向に走行しているとする。AGV10aおよび10bは天板に載置された荷物を搬送中である。AGV10cは、前方のAGV10bに追従して走行している。なお、説明の便宜のため、
図3では参照符号10a,10bおよび10cを付したが、以下では、「AGV10」と記述する。
【0049】
AGV10は、天板に載置された荷物を搬送する方法以外に、自身と接続された牽引台車を利用して荷物を搬送することも可能である。
図4Aは接続される前のAGV10および牽引台車5を示している。牽引台車5の各足にはキャスターが設けられている。AGV10は牽引台車5と機械的に接続される。
図4Bは、接続されたAGV10および牽引台車5を示している。AGV10が走行すると、牽引台車5はAGV10に牽引される。牽引台車5を牽引することにより、AGV10は、牽引台車5に載置された荷物を搬送できる。
【0050】
AGV10と牽引台車5との接続方法は任意である。一例を説明する。AGV10の天板にはプレート6が固定されている。牽引台車5には、スリットを有するガイド7が設けられている。AGV10は牽引台車5に接近し、プレート6をガイド7のスリットに差し込む。差し込みが完了すると、AGV10は、図示されない電磁ロック式ピンをプレート6およびガイド7に貫通させ、電磁ロックをかける。これにより、AGV10と牽引台車5とが物理的に接続される。
【0051】
再び
図2を参照する。各AGV10と端末装置20とは、たとえば1対1で接続されてBluetooth(登録商標)規格に準拠した通信を行うことができる。各AGV10と端末装置20とは、1または複数のアクセスポイント2を利用してWi−Fi(登録商標)に準拠した通信を行うこともできる。複数のアクセスポイント2は、たとえばスイッチングハブ3を介して互いに接続されている。
図2には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との間でも双方向通信が実現される。
【0052】
(2)環境地図の作成
自己位置を推定しながらAGV10が走行できるようにするため、移動空間S内の地図が作成される。AGV10には後述の測位装置およびレーザレンジファインダが搭載されており、レーザレンジファインダの出力を利用して地図を作成できる。
【0053】
AGV10は、ユーザの操作によってデータ取得モードに遷移する。データ取得モードにおいて、AGV10はレーザレンジファインダを用いたセンサデータの取得を開始する。レーザレンジファインダは周期的に例えば赤外線または可視光のレーザビームを周囲に放射して周囲の空間Sをスキャンする。レーザビームは、たとえば、壁、柱等の構造物、床の上に置かれた物体等の表面で反射される。レーザレンジファインダは、レーザビームの反射光を受けて各反射点までの距離を計算し、各反射点の位置が示された測定結果のデータを出力する。各反射点の位置には、反射光の到来方向および距離が反映されている。測定結果のデータは「計測データ」または「センサデータ」と呼ばれることがある。
【0054】
測位装置は、センサデータを記憶装置に蓄積する。移動空間S内のセンサデータの取得が完了すると、記憶装置に蓄積されたセンサデータが外部装置に送信される。外部装置は、たとえば信号処理プロセッサを有し、かつ、地図作成プログラムがインストールされたコンピュータである。
【0055】
外部装置の信号処理プロセッサは、スキャンごとに得られたセンサデータ同士を重ね合わせる。信号処理プロセッサが重ね合わせる処理を繰り返し行うことにより、空間Sの地図を作成することができる。外部装置は、作成した地図のデータをAGV10に送信する。AGV10は、作成した地図のデータを内部の記憶装置に保存する。外部装置は、運行管理装置50であってもよいし、他の装置であってもよい。
【0056】
外部装置ではなくAGV10が地図の作成を行ってもよい。上述した外部装置の信号処理プロセッサが行った処理を、AGV10のマイクロコントローラユニット(マイコン)などの回路が行えばよい。AGV10内で地図を作成する場合には、蓄積されたセンサデータを外部装置に送信する必要が無くなる。センサデータのデータ容量は一般には大きいと考えられる。センサデータを外部装置に送信する必要がないため、通信回線の占有を回避できる。
【0057】
なお、センサデータを取得するための移動空間S内の移動は、ユーザの操作に従ってAGV10が走行することによって実現し得る。たとえば、AGV10は、端末装置20を介して無線でユーザから前後左右の各方向への移動を指示する走行指令を受け取る。AGV10は走行指令にしたがって移動空間S内を前後左右に走行し、地図を作成する。AGV10がジョイスティック等の操縦装置と有線で接続されている場合には、当該操縦装置からの制御信号にしたがって移動空間S内を前後左右に走行し、地図を作成してもよい。レーザレンジファインダを搭載した計測台車を人が押し歩くことによってセンサデータを取得してもよい。
【0058】
なお、
図2および
図3には複数台のAGV10が示されているが、AGVは1台であってもよい。複数台のAGV10が存在する場合、ユーザ1は端末装置20を利用して、登録された複数のAGVのうちから一台のAGV10を選択して、移動空間Sの地図を作成させることができる。
【0059】
地図が作成されると、以後、各AGV10は当該地図を利用して自己位置を推定しながら自動走行することができる。自己位置を推定する処理の説明は後述する。
【0060】
(3)AGVの構成
図5は、本実施形態にかかる例示的なAGV10の外観図である。AGV10は、2つの駆動輪11aおよび11bと、4つのキャスター11c、11d、11e、および11fと、フレーム12と、搬送テーブル13と、走行制御装置14と、レーザレンジファインダ15とを有する。2つの駆動輪11aおよび11bは、AGV10の右側および左側にそれぞれ設けられている。4つのキャスター11c、11d、11e、および11fは、AGV10の4隅に配置されている。なお、AGV10は2つの駆動輪11aおよび11bに接続される複数のモータも有するが
図5には示されていない。また、
図5には、AGV10の右側に位置する1つの駆動輪11aおよび2つのキャスター11cおよび11eと、左後部に位置するキャスター11fが示されているが、左側の駆動輪11bおよび左前部のキャスター11dはフレーム12の蔭に隠れているため明示されていない。4つのキャスター11c、11d、11e、および11fは、自由に旋回することができる。以下の説明では、駆動輪11aおよび駆動輪11bを、それぞれ車輪11aおよび車輪11bとも称する。
【0061】
走行制御装置14は、AGV10の動作を制御する装置であり、主としてマイコン(後述)を含む集積回路、電子部品およびそれらが搭載された基板を含む。走行制御装置14は、上述した、端末装置20とのデータの送受信、および、前処理演算を行う。
【0062】
レーザレンジファインダ15は、たとえば赤外のレーザビーム15aを放射し、当該レーザビーム15aの反射光を検出することにより、反射点までの距離を測定する光学機器である。本実施形態では、AGV10のレーザレンジファインダ15は、たとえばAGV10の正面を基準として左右135度(合計270度)の範囲の空間に、0.25度ごとに方向を変化させながらパルス状のレーザビーム15aを放射し、各レーザビーム15aの反射光を検出する。これにより、0.25度ごと、合計1081ステップ分の角度で決まる方向における反射点までの距離のデータを得ることができる。なお、本実施形態では、レーザレンジファインダ15が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)であることを想定している。しかしながら、高さ方向のスキャンを行ってもよい。
【0063】
AGV10の位置および姿勢と、レーザレンジファインダ15のスキャン結果とにより、AGV10は、空間Sの地図を作成することができる。地図には、AGVの周囲の壁、柱等の構造物、床の上に載置された物体の配置が反映され得る。地図のデータは、AGV10内に設けられた記憶装置に格納される。
【0064】
一般に、移動体の位置および姿勢は、ポーズ(pose)と呼ばれる。二次元面内における移動体の位置および姿勢は、XY直交座標系における位置座標(x, y)と、X軸に対する角度θによって表現される。AGV10の位置および姿勢、すなわちポーズ(x, y, θ)を、以下、単に「位置」と呼ぶことがある。
【0065】
なお、レーザビーム15aの放射位置から見た反射点の位置は、角度および距離によって決定される極座標を用いて表現され得る。本実施形態では、レーザレンジファインダ15は極座標で表現されたセンサデータを出力する。ただし、レーザレンジファインダ15は、極座標で表現された位置を直交座標に変換して出力してもよい。
【0066】
レーザレンジファインダの構造および動作原理は公知であるため、本明細書ではこれ以上の詳細な説明は省略する。なお、レーザレンジファインダ15によって検出され得る物体の例は、人、荷物、棚、壁である。
【0067】
レーザレンジファインダ15は、周囲の空間をセンシングしてセンサデータを取得するための外界センサの一例である。そのような外界センサの他の例としては、イメージセンサおよび超音波センサが考えられる。
【0068】
走行制御装置14は、レーザレンジファインダ15の測定結果と、自身が保持する地図データとを比較して、自身の現在位置を推定することができる。なお、保持されている地図データは、他のAGV10が作成した地図データであってもよい。
【0069】
図6Aは、AGV10の第1のハードウェア構成例を示している。また
図6Aは、走行制御装置14の具体的な構成も示している。
【0070】
AGV10は、走行制御装置14と、レーザレンジファインダ15と、2台のモータ16aおよび16bと、駆動装置17と、車輪11aおよび11bと、2つのロータリエンコーダ18a、18b(以下、単に「エンコーダ18a」および「エンコーダ18b」と称することがある)とを備えている。
【0071】
走行制御装置14は、マイコン14aと、メモリ14bと、記憶装置14cと、通信回路14dと、測位装置14eとを有している。マイコン14a、メモリ14b、記憶装置14c、通信回路14dおよび測位装置14eは通信バス14fで接続されており、相互にデータを授受することが可能である。レーザレンジファインダ15もまた通信インタフェース(図示せず)を介して通信バス14fに接続されており、計測結果である計測データを、マイコン14a、測位装置14eおよび/またはメモリ14bに送信する。
【0072】
マイコン14aは、走行制御装置14を含むAGV10の全体を制御するための演算を行うプロセッサまたは制御回路(コンピュータ)である。典型的にはマイコン14aは半導体集積回路である。マイコン14aは、制御信号であるPWM(Pulse Width Modulation)信号を駆動装置17に送信して駆動装置17を制御し、モータに印加する電圧を調整させる。これによりモータ16aおよび16bの各々が所望の回転速度で回転する。なお、左右のモータ16aおよび16bの駆動を制御する1つ以上の制御回路(例えばマイコン)を、マイコン14aとは独立して設けてもよい。例えば、モータ駆動装置17が、モータ16aおよび16bの駆動をそれぞれ制御する2つのマイコンを備えていてもよい。それらの2つのマイコンは、エンコーダ18aおよび18bから出力されたエンコーダ情報を用いた座標計算をそれぞれ行い、所与の初期位置からのAGV10の移動距離を推定してもよい。また、当該2つのマイコンは、エンコーダ情報を利用してモータ駆動回路17aおよび17bを制御してもよい。
【0073】
メモリ14bは、マイコン14aが実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ14bは、マイコン14aおよび測位装置14eが演算を行う際のワークメモリとしても利用され得る。
【0074】
記憶装置14cは、不揮発性の半導体メモリ装置である。ただし、記憶装置14cは、ハードディスクに代表される磁気記録媒体、または、光ディスクに代表される光学式記録媒体であってもよい。さらに、記憶装置14cは、いずれかの記録媒体にデータを書き込みおよび/または読み出すためのヘッド装置および当該ヘッド装置の制御装置を含んでもよい。
【0075】
記憶装置14cは、走行する空間Sの地図データM、および、1または複数の走行経路のデータ(走行経路データ)Rを記憶する。地図データMは、AGV10が地図作成モードで動作することによって作成され記憶装置14cに記憶される。走行経路データRは、地図データMが作成された後に外部から送信される。本実施形態では、地図データMおよび走行経路データRは同じ記憶装置14cに記憶されているが、異なる記憶装置に記憶されてもよい。
【0077】
端末装置20がタブレットコンピュータである場合には、AGV10はタブレットコンピュータから走行経路を示す走行経路データRを受信する。このときの走行経路データRは、複数のマーカの位置を示すマーカデータを含む。「マーカ」は走行するAGV10の通過位置(経由点)を示す。走行経路データRは、走行開始位置を示す開始マーカおよび走行終了位置を示す終了マーカの位置情報を少なくとも含む。走行経路データRは、さらに、1以上の中間経由点のマーカの位置情報を含んでもよい。走行経路が1以上の中間経由点を含む場合には、開始マーカから、当該走行経由点を順に経由して終了マーカに至る経路が、走行経路として定義される。各マーカのデータは、そのマーカの座標データに加えて、次のマーカに移動するまでのAGV10の向き(角度)および走行速度のデータを含み得る。AGV10が各マーカの位置で一旦停止し、自己位置推定および端末装置20への通知などを行う場合には、各マーカのデータは、当該走行速度に達するまでの加速に要する加速時間、および/または、当該走行速度から次のマーカの位置で停止するまでの減速に要する減速時間のデータを含み得る。
【0078】
端末装置20ではなく、運行管理装置50(例えば、PCおよび/またはサーバコンピュータ)がAGV10の移動を制御してもよい。その場合には、運行管理装置50は、AGV10がマーカに到達する度に、次のマーカへの移動をAGV10に指示してもよい。例えば、AGV10は、運行管理装置50から、次に向かうべき目的位置の座標データ、または、当該目的位置までの距離および進むべき角度のデータを、走行経路を示す走行経路データRとして受信する。
【0079】
AGV10は、作成された地図と走行中に取得されたレーザレンジファインダ15が出力したセンサデータとを利用して自己位置を推定しながら、記憶された走行経路に沿って走行することができる。
【0080】
通信回路14dは、たとえば、Bluetooth(登録商標)および/またはWi−Fi(登録商標)規格に準拠した無線通信を行う無線通信回路である。いずれの規格も、2.4GHz帯の周波数を利用した無線通信規格を含む。たとえばAGV10を走行させて地図を作成するモードでは、通信回路14dは、Bluetooth(登録商標)規格に準拠した無線通信を行い、1対1で端末装置20と通信する。
【0081】
測位装置14eは、地図の作成処理、および、走行時には自己位置の推定処理を行う。測位装置14eは、AGV10の位置および姿勢とレーザレンジファインダのスキャン結果とにより、移動空間Sの地図を作成する。走行時には、測位装置14eは、レーザレンジファインダ15からセンサデータを受け取り、また、記憶装置14cに記憶された地図データMを読み出す。レーザレンジファインダ15のスキャン結果から作成された局所的地図データ(センサデータ)を、より広範囲の地図データMと照合(マッチング)することにより、地図データM上における自己位置(x, y, θ)を同定する。測位装置14eは、局所的地図データが地図データMに一致した程度を表す「信頼度」のデータを生成する。自己位置(x, y, θ)、および、信頼度の各データは、AGV10から端末装置20または運行管理装置50に送信され得る。端末装置20または運行管理装置50は、自己位置(x, y, θ)、および、信頼度の各データを受信して、内蔵または接続された表示装置に表示することができる。
【0082】
本実施形態では、マイコン14aと測位装置14eとは別個の構成要素であるとしているが、これは一例である。マイコン14aおよび測位装置14eの各動作を独立して行うことが可能な1つのチップ回路または半導体集積回路であってもよい。
図6Aには、マイコン14aおよび測位装置14eを包括するチップ回路14gが示されている。以下では、マイコン14aおよび測位装置14eが別個独立に設けられている例を説明する。
【0083】
2台のモータ16aおよび16bは、それぞれ2つの車輪11aおよび11bに取り付けられ、各車輪を回転させる。つまり、2つの車輪11aおよび11bはそれぞれ駆動輪である。本明細書では、モータ16aおよびモータ16bは、それぞれAGV10の右輪および左輪を駆動するモータであるとして説明する。
【0084】
AGV10は、さらに、車輪11aおよび11bの回転位置または回転速度を測定するエンコーダユニット18をさらに備えている。エンコーダユニット18は、第1ロータリエンコーダ18aおよび第2ロータリエンコーダ18bを含む。第1ロータリエンコーダ18aは、モータ16aから車輪11aまでの動力伝達機構のいずれかの位置における回転を計測する。第2ロータリエンコーダ18bは、モータ16bから車輪11bまでの動力伝達機構のいずれかの位置における回転を計測する。エンコーダユニット18は、ロータリエンコーダ18aおよび18bによって取得された信号を、マイコン14aに送信する。マイコン14aは、測位装置14eから受信した信号だけでなく、エンコーダユニット18から受信した信号を利用して、AGV10の移動を制御することもできる。
【0085】
駆動装置17は、2台のモータ16aおよび16bの各々に印加される電圧を調整するためのモータ駆動回路17aおよび17bを有する。モータ駆動回路17aおよび17bの各々はいわゆるインバータ回路を含む。モータ駆動回路17aおよび17bは、マイコン14aまたはモータ駆動回路17a内のマイコンから送信されたPWM信号によって各モータに流れる電流をオンまたはオフし、それによりモータに印加される電圧を調整する。
【0086】
図6Bは、AGV10の第2のハードウェア構成例を示している。第2のハードウェア構成例は、レーザ測位システム14hを有する点、および、マイコン14aが各構成要素と1対1で接続されている点において、第1のハードウェア構成例(
図6A)と相違する。
【0087】
レーザ測位システム14hは、測位装置14eおよびレーザレンジファインダ15を有する。測位装置14eおよびレーザレンジファインダ15は、たとえばイーサネット(登録商標)ケーブルで接続されている。測位装置14eおよびレーザレンジファインダ15の各動作は上述した通りである。レーザ測位システム14hは、AGV10のポーズ(x, y, θ)を示す情報をマイコン14aに出力する。
【0088】
マイコン14aは、種々の汎用I/Oインタフェースまたは汎用入出力ポート(図示せず)を有している。マイコン14aは、通信回路14d、レーザ測位システム14h等の、走行制御装置14内の他の構成要素と、当該汎用入出力ポートを介して直接接続されている。
【0089】
図6Bに関して上述した構成以外は、
図6Aの構成と共通である。よって共通の構成の説明は省略する。
【0090】
本開示の実施形態におけるAGV10は、図示されていない障害物検知センサおよびバンパースイッチなどのセーフティセンサを備えていてもよい。AGV10は、ジャイロセンサなどの慣性計測装置を備えていてもよい。ロータリエンコーダ18aおよび18bまたは慣性計測装置などの内界センサによる測定データを利用すれば、AGV10の移動距離および姿勢の変化量(角度)を推定することができる。これらの距離および角度の推定値は、オドメトリデータと呼ばれ、測位装置14eによって得られる位置および姿勢の情報を補助する機能を発揮し得る。
【0091】
(4)地図データ
図7A〜
図7Fは、センサデータを取得しながら移動するAGV10を模式的に示す。ユーザ1は、端末装置20を操作しながらマニュアルでAGV10を移動させてもよい。あるいは、
図6Aおよび6Bに示される走行制御装置14を備えるユニット、または、AGV10そのものを台車に載置し、台車をユーザ1が手で押す、または牽くことによってセンサデータを取得してもよい。
【0092】
図7Aには、レーザレンジファインダ15を用いて周囲の空間をスキャンするAGV10が示されている。所定のステップ角毎にレーザビームが放射され、スキャンが行われる。なお、図示されたスキャン範囲は模式的に示した例であり、上述した合計270度のスキャン範囲とは異なっている。
【0093】
図7A〜
図7Fの各々では、レーザビームの反射点の位置が、記号「・」で表される複数の黒点4を用いて模式的に示されている。レーザビームのスキャンは、レーザレンジファインダ15の位置および姿勢が変化する間に短い周期で実行される。このため、現実の反射点の個数は、図示されている反射点4の個数よも遥かに多い。測位装置14eは、走行に伴って得られる黒点4の位置を、たとえばメモリ14bに蓄積する。AGV10が走行しながらスキャンを継続して行うことにより、地図データが徐々に完成されてゆく。
図7Bから
図7Eでは、簡略化のためスキャン範囲のみが示されている。当該スキャン範囲は例示であり、上述した合計270度の例とは異なる。
【0094】
地図は、地図作成に必要な量のセンサデータを取得した後、そのセンサデータに基づいて、このAGV10内のマイコン14aまたは外部のコンピュータを用いて作成してもよい。あるいは、移動しつつあるAGV10が取得したセンサデータに基づいてリアルタイムで地図を作成してもよい。
【0095】
図7Fは、完成した地
図40の一部を模式的に示す。
図7Fに示される地図では、レーザビームの反射点の集まりに相当する点群(Point Cloud)によって自由空間が仕切られている。地図の他の例は、物体が占有している空間と自由空間とをグリッド単位で区別する占有格子地図である。測位装置14eは、地図のデータ(地図データM)をメモリ14bまたは記憶装置14cに蓄積する。なお図示されている黒点の数または密度は一例である。
【0096】
こうして得られた地図データは、複数のAGV10によって共有され得る。
【0097】
AGV10が地図データに基づいて自己位置を推定するアルゴリズムの典型例は、ICP(Iterative Closest Point)マッチングである。前述したように、レーザレンジファインダ15のスキャン結果から作成された局所的地図データ(センサデータ)を、より広範囲の地図データMと照合(マッチング)することにより、地図データM上における自己位置(x, y, θ)を推定することができる。
【0098】
(5)運行管理装置の構成例
図8は、運行管理装置50のハードウェア構成例を示している。運行管理装置50は、CPU51と、メモリ52と、位置データベース(位置DB)53と、通信回路54と、地図データベース(地
図DB)55と、画像処理回路56とを有する。
【0099】
CPU51、メモリ52、位置DB53、通信回路54、地
図DB55および画像処理回路56は通信バス57で接続されており、相互にデータを授受することが可能である。
【0100】
CPU51は、運行管理装置50の動作を制御する信号処理回路(コンピュータ)である。典型的にはCPU51は半導体集積回路である。
【0101】
メモリ52は、CPU51が実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ52は、CPU51が演算を行う際のワークメモリとしても利用され得る。
【0102】
位置DB53は、各AGV10の行き先となり得る各位置を示す位置データを格納する。位置データは、たとえば管理者によって工場内に仮想的に設定された座標によって表され得る。位置データは管理者によって決定される。
【0103】
通信回路54は、たとえばイーサネット(登録商標)規格に準拠した有線通信を行う。通信回路54はアクセスポイント2(
図1)と有線で接続されており、アクセスポイント2を介して、AGV10と通信することができる。通信回路54は、AGV10に送信すべきデータを、バス57を介してCPU51から受信する。また通信回路54は、AGV10から受信したデータ(通知)を、バス57を介してCPU51および/またはメモリ52に送信する。
【0104】
地
図DB55は、AGV10が走行する工場等の内部の地図のデータを格納する。当該地図は、地
図40(
図7F)と同じであってもよいし、異なっていてもよい。各AGV10の位置と1対1で対応関係を有する地図であれば、データの形式は問わない。たとえば地
図DB55に格納される地図は、CADによって作成された地図であってもよい。
【0105】
位置DB53および地
図DB55は、不揮発性の半導体メモリ上に構築されてもよいし、ハードディスクに代表される磁気記録媒体、または光ディスクに代表される光学式記録媒体上に構築されてもよい。
【0106】
画像処理回路56はモニタ58に表示される映像のデータを生成する回路である。画像処理回路56は、専ら、管理者が運行管理装置50を操作する際に動作する。本実施形態では特にこれ以上の詳細な説明は省略する。なお、モニタ59は運行管理装置50と一体化されていてもよい。また画像処理回路56の処理をCPU51が行ってもよい。
【0107】
(6)運行管理装置の動作
図9を参照しながら、運行管理装置50の動作の概要を説明する。
図9は、運行管理装置50によって決定されたAGV10の移動経路の一例を模式的に示す図である。
【0108】
AGV10および運行管理装置50の動作の概要は以下のとおりである。以下では、あるAGV10が現在、位置M
1におり、幾つかの位置を通過して、最終的な目的地である位置M
n+1(n:1以上の正の整数)まで走行する例を説明する。なお、位置DB53には位置M
1の次に通過すべき位置M
2、位置M
2の次に通過すべき位置M
3等の各位置を示す座標データが記録されている。
【0109】
運行管理装置50のCPU51は、位置DB53を参照して位置M
2の座標データを読み出し、位置M
2に向かわせる走行指令を生成する。通信回路54は、アクセスポイント2を介して走行指令をAGV10に送信する。
【0110】
CPU51は、AGV10から、アクセスポイント2を介して、定期的に現在位置および姿勢を示すデータを受信する。こうして運行管理装置50は、各AGV10の位置をトラッキングすることができる。CPU51は、AGV10の現在位置が位置M
2に一致したと判定すると、位置M
3の座標データを読み出し、位置M
3に向かわせる走行指令を生成してAGV10に送信する。つまり運行管理装置50は、AGV10がある位置に到達したと判定すると、次に通過すべき位置に向かわせる走行指令を送信する。これにより、AGV10は最終的な目的位置M
n+1に到達することができる。上述した、AGV10の通過位置および目的位置は「マーカ」と呼ばれることがある。
【0111】
(7)オドメトリデータを利用した走行制御の例
次に、ロータリエンコーダ18aおよび18bからのオドメトリデータを利用した走行制御の例を説明する。以下の説明では、AGV10が
図10に示す構成を備えている。
図10は、AGV10の構成例を示すブロック図である。
図10の構成は、第2測位装置19およびディスプレイ30が設けられている点を除き、
図6Bの構成と同じである。第2測位装置19は、エンコーダユニット18とマイコン14aとの間に接続されている。ディスプレイ30は、マイコン14aに接続されている。以下の説明では、測位装置14eを、第2測位装置19と区別するために「第1測位装置14e」と称する。この実施形態では、レーザレンジファインダ15およびエンコーダユニット18は、それぞれ、
図1における第1センサ101および第2センサ102としての機能を有する。マイコン14aは、
図1における演算回路105に相当する。
【0112】
第2測位装置19は、例えばプロセッサなどの処理回路と、メモリとを備える。第2測位装置19は、ロータリエンコーダ18aおよび18bから出力されるデータを取得し、AGV10の位置および姿勢を示すデータ(x, y, θ)を生成してマイコン14aに出力する。第2測位装置19の機能は、マイコン14aに集約されていてもよい。その場合、
図6Aまたは
図6Bに示す構成と同様の構成が用いられる。第2測位装置19の機能を、駆動装置17における制御回路が備えていてもよい。
【0113】
図11は、本実施形態における構成要素間の信号の流れを模式的に示す図である。第1測位装置14eは、LRF15から出力されたデータ(第1センサデータ)を用いて第1推定演算を行い、AGV10の位置および姿勢を推定する。本実施形態における第1推定演算は、第1センサデータと地図データとを照合して、座標(x,y)、角度θ、および信頼度(単位:%)を示すデータを生成する処理である。第1測位装置14eは、座標(x,y)、角度θ、および信頼度を示すデータを、マイコン(演算回路)14aに送る。
【0114】
第2測位装置19は、2つのエンコーダ18aおよび18bから出力されたデータ(第2センサデータ)を用いて第2推定演算を行い、AGV10の位置および姿勢を推定する。第2センサデータは、モータまたは車輪の回転状態または回転速度に関する情報を含む。回転速度と車輪の径とから、単位時間当たりの車輪の移動距離を推定できる。第2推定演算は、AGV10の座標および角度の初期値に、2つのエンコーダ18aおよび18bの出力に基づいて計算される座標および角度の変化量をそれぞれ積算する処理を含む。座標および角度の初期値は、例えば第1測位装置14eによって計算された座標および角度の値で定期的に更新され得る。第2測位装置19は、座標(x,y)および角度θを示すデータを、マイコン14aに送る。
【0115】
以下の説明において、第1測位装置14eが推定した座標および角度を、まとめて「LRF座標」と称し、第2測位装置19が推定した座標および角度を、まとめて「エンコーダ座標」と称することがある。
【0116】
マイコン14aは、第1測位装置14eによる推定結果の確からしさを示す信頼性データが所定の条件に合致しているか否かに応じて、第1測位装置14eによる推定結果および第2測位装置19による推定結果の一方をAGV10の座標および角度として選択する。マイコン14aは、選択した座標および角度を駆動装置17に通知する。駆動装置17は、現在の座標および角度と、目的地における座標および角度との差分から、モータ16aおよび16bのそれぞれの回転速度の指令値を決定する。駆動装置17は、決定した指令値に基づいて、モータ16aおよび16bを制御する。
【0117】
本実施形態における「信頼性データ」は、第1測位装置14eから出力される信頼度のデータ(第1信頼性データ)と、第1測位装置14eによって推定された座標および角度と第2測位装置19によって推定された座標および角度とのそれぞれの差を示すデータ(第2信頼性データ)とを含む。マイコン14aは、基本的には、相対的に信頼性が高いと考えられるLRF座標を用いて走行するように駆動装置17を制御する。その際、第2測位装置19が保持するエンコーダ座標をLRF座標で定期的に上書きする。これにより、両者の座標は定期的に同期する。しかし、第1測位装置14eの出力の信頼性が低いと考えられる状況下では、マイコン14aは、座標の同期を停止し、エンコーダ座標を使用してAGV10の走行を継続する。この場合、マイコン14aは、第1測位装置14eに初期位置同定を実行させるコマンドを発行し、信頼性の回復を試みる。言い換えれば、マイコン14aが第2測位装置19による推定結果を選択しているときは、第1測位装置14eは、第1センサデータと第2測位装置による推定結果とを利用して初期位置同定(第1推定演算)を行う。
【0118】
「初期位置同定」とは、AGV10が地図上のどの場所に位置しているかを探索する処理を指す。初期位置同定では、地図の全域または一部のエリア(例えば1m×1mから50m×50m程度のエリア)にわたって、地図データとLRF15のデータとのマッチングが行われる。本実施形態においては、AGV10の電源投入後または地図の切替後などに、初期位置同定が行われる。初期位置同定によってAGV10の位置が特定されると、その位置を中心とするより狭い範囲(例えば当該位置から数十cm程度の範囲内)を探索する「位置同定」が行われる。この位置同定は、AGV10の移動中に、例えば一定時間(例えば100ミリ秒)ごとに行われ得る。位置同定は、初期位置同定よりも探索範囲が狭く、かつ実行時間も短い。本実施形態では、「初期位置同定」および「位置同定」のいずれも、前述の「第1推定演算」に該当する。
【0119】
マイコン14aは、走行中、信頼性データに基づいて、LRF座標を使用して走行するモードと、エンコーダ座標を使用して走行するモードとを切り替える。マイコン14aは、例えば以下の表1に示す条件に従ってこれらの2つのモードを切り替える。
【0121】
表1の条件では、第1測位装置14eから出力される信頼度が低下した場合だけでなく、LRF座標およびエンコーダ座標のX軸成分の差またはY軸成分の差が許容値以上になった場合にもLRF座標を使用するモードからエンコーダ座標を使用するモードに切り替えられる。このように2つの条件を課す理由は、第1測位装置14eが出力する信頼度が高い場合であっても、実際とは大きく異なる位置が現在の位置として推定される場合があるためである。なお、表1の例では、動作を安定化させるため、信頼度の復帰閾値が切替閾値よりも高く設定されている。
【0122】
次に、
図12を参照して、AGV10の動作を説明する。
図12は、AGV10の動作の例を示すフローチャートである。AGV10の電源が投入されると、マイコン14aは、第1測位装置14eに、初期位置同定を実行させる(ステップS101)。第1測位装置14eは、地図の全域または一部(例えば1m×1mから50m×50m程度の範囲)にわたって探索を行い、AGV10の初期位置を特定する。AGV10の初期位置が特定されると、マイコン14aは、第1測位装置14eに、その位置を中心とするより狭い領域(例えば当該位置から数十cmの範囲内)について位置同定を実行させる(ステップS102)。この位置同定により、AGV10の位置および姿勢(x,y,θ)が決定されると、マイコン14aは、地図切替エリアを走行しているか否かの判定を行う(ステップS103)。地図切替エリアとは、使用中の地図において、隣接する他の地図と重なる領域を指す。
【0123】
図13は、地図切替エリアを説明するための図である。
図13は、1つの地図データが50m×50mの領域をカバーし、4つの地図データM1、M2、M3、M4によって1つの工場の1フロアの全域がカバーされる場合の例を示している。この例では、隣接する2つの地図の境界部分に、幅5mの矩形の重複領域が設けられている。この重複領域が地図切替エリアである。なお、地図データのサイズおよび重複領域の幅は、この例に限定されず、任意に設定してよい。
【0124】
本実施形態では、マイコン14aは、AGV10が地図切替エリアを走行していると判断すると、使用する地図を隣接する他の地図に切り替える処理を行う(ステップS121)。この地図切替処理については
図17および
図18を参照して後述する。
【0125】
マイコン14aは、AGV10が地図切替エリアを走行していないと判断すると、上記の表1の条件(A)が満たされているかを判断する(ステップS104)。ここで、条件(A)の(1)、(2)のいずれも満たされていない場合には、LRF座標の信頼性が十分に高いといえる。この場合、マイコン14aは、第2測位装置19が保持するエンコーダ座標を、LRF座標で上書きする。その後、所定時間(例えば100ミリ秒)経過後、ステップS102に戻り、以下、同様の動作を実行する。
【0126】
ステップS104において、表1の条件(A)の(1)、(2)のいずれかが満たされている場合、マイコン14aは、LRF座標を用いた走行からエンコーダ座標を用いた走行に切り替える(ステップS111)。その後、マイコン14aは、所定時間ごとに、初期位置同定を行う(ステップS112)。この初期位置同定によって推定したLRF座標に基づいて、マイコン14aは、表1の条件(B)が満たされているかを判断する(ステップS113)。ここで条件(B)が満たされている場合には、LRF座標の信頼性が回復したと判断される。この場合、マイコン14aは、エンコーダ座標を用いた走行からエンコーダ座標を用いた走行に戻す(ステップS114)。以後、ステップS102に戻り、同様の動作を実行する。
【0127】
このように、
図12に示す例では、マイコン14aは、第1測位装置14eによる推定結果をAGV10の位置として選択しているときにおいて、第1信頼性データの値(本実施形態では第1測位装置14eが算出する信頼度)が切替閾値以下になると第2測位装置19による推定結果をAGV10の位置として選択する。また、マイコン14aは、第1測位装置14eによる推定結果をAGV10の位置として選択しているときにおいて、第2信頼性データの値(本実施形態ではLRF座標とエンコーダ座標との差)が予め定められた許容値以上になると第2測位装置19による推定結果をAGV10の位置として選択する。マイコン14aが第2測位装置19による推定結果を選択しているときは、第1測位装置14eは、第1センサデータと第2測位装置19による推定結果(座標および角度)とを利用して初期位置同定(第1推定演算)を行う。他方、マイコン14aは、第2測位装置19による推定結果をAGV10の位置として選択しているときにおいて、第1信頼性データの値が予め定められた復帰閾値以上になり、かつ、第2信頼性データの値が予め定められた許容値未満になると、第1測位装置14eによる推定結果をAGV10の位置として選択する。
【0128】
このような動作により、LRF座標の信頼性に応じてモードを切り替え、安定した走行を実現することができる。
【0129】
図12の動作に加えて、マイコン14aは、AGV10の速度を、LRF座標の信頼性に応じて制御してもよい。例えば、マイコン14aは、第2測位装置19による推定結果を選択しているときは、第1測位装置14eによる推定結果を選択しているときよりも遅い速度でAGV10を移動させるように、駆動装置17に指示してもよい。さらに、第1推定演算(初期位置同定)を行って第1測位装置14eが出力した第1信頼性データ(信頼度)の値が予め定められた復帰閾値以上になったときは、駆動装置17に、AGV10の速度をさらに低下させ、第1測位装置14eに、第1推定演算を再度実行させてもよい。第1推定演算を再度行って第1測位装置14eが再度出力した第1信頼性データの値が復帰閾値以上を維持しているときは、駆動装置17に、AGV10の速度を増加させてもよい。他方、第1推定演算を再度行って第1測位装置14eが再度出力した第1信頼性データの値が復帰閾値以上を維持していないときは、駆動装置17に、AGV10の速度を増加させ、所定時間経過後、第1測位装置14eに、第1推定演算を再度実行させてもよい。「復帰閾値以上を維持していないとき」には、第1推定演算(本実施形態では初期位置同定)を複数回行っても、第1信頼性データの値が復帰閾値に満たない状態が連続する場合が含まれる。
【0130】
以下、
図14から
図16を参照しながら、より具体的な動作の例を説明する。
【0131】
図14は、AGV10の動作の一例を模式的に示す図である。
図15は、この例におけるAGV10の速度の時間変化を示す図である。
図16は、この例におけるエンコーダ座標を用いた走行の動作を示すフローチャートである。
【0132】
この例では、AGV10は、LRF座標の信頼性が高いと判断される場合には、LRF座標を用いて第1の速度(例えば50m/分)で位置同定を行いながら走行する。この状態で、LRF座標の信頼度が低下したりLRF座標とエンコーダ座標との差分が突然大きくなったりして上記の切り替え条件(A)を満たすようになると、マイコン14aは、エンコーダ座標を用いた走行に切り替える。このとき、マイコン14aは、AGV10の速度を第1の速度よりも低い第2の速度(例えば20m/分)に低下させる(ステップS201)。これは、エンコーダ座標を用いた走行を高速で行うと、衝突またはオーバーランが生じる可能性が高くなるためである。しかし、第2の速度を小さく設定しすぎると、LRF座標の信頼性が低くなる区間を抜け出すのに長い時間を要する可能性がある。よって、第2の速度は、低すぎず、高すぎない適度な値に設定される。
【0133】
AGV10が第2の速度で走行している間、マイコン14aは、第1測位装置14eに、LRF座標の信頼性が回復するまで、初期位置同定を繰り返すように指示する。第1測位装置14eは、この指示を受け、信頼度が復帰閾値以上に回復するまで初期位置同定を繰り返す(ステップS202−S204)。この例では、繰り返しの上限回数(例えば20回)が設定されている。設定された上限回数だけ初期位置同定を繰り返しても信頼度が復帰閾値まで回復しない場合、マイコン14aは、AGV10を停止させ、運行管理装置50または端末装置20にエラー信号を送信する(ステップS205)。
【0134】
ステップS202の初期位置同定によってLRF座標の信頼度が復帰閾値以上に回復すると、マイコン14aは、AGV10の速度を第2の速度よりもさらに低い第3の速度(例えば7.5m/分)に低下させる(ステップS211)。そして、第1測位装置14eに初期位置同定を再度実行させる(ステップS212)。この初期位置同定においても信頼度が復帰閾値以上である場合(ステップS213におけるYes)、マイコン14aは、LRF座標およびエンコーダ座標のX軸成分の差およびY軸成分の差が、許容値(例:30cm)未満であるかを判定する(ステップS221)。ステップS213またはS221の判定がNoである場合、マイコン14aは、これらの判定がYesになるまで、初期位置同定(ステップS211)を繰り返す。本実施形態では、この繰り返しの上限回数が5回に設定されている。5回繰り返してもステップS221の条件が満たされない場合、マイコン14aは、AGV10の速度を第4の速度(例えば20m/分)に加速させる(ステップS215)。この例では、第4の速度は第2の速度と同じであるが、異なっていてもよい。その後、再度ステップS201に戻る。第4の速度に加速させることで、信頼性が低くなる区間を早期に抜け出せる可能性が高くなる。なお、ステップS215の代わりに、ステップS205に遷移して、AGV10を停止させ、運行管理装置50または端末装置20にエラー信号を送信してもよい。
【0135】
ステップS221における判定がYesの場合、マイコン14aは、第1測位装置14eに位置同定処理を実行させる(ステップS230)。位置同定処理において、第1測位装置14eは、初期位置同定によって決定された位置の周辺の比較的狭いエリア(例えば当該位置から数十cm程度の範囲内)について、LRFのデータとのマッチングを行い、AGV10の座標および角度を決定する。この位置同定の結果、上記の「エンコーダ→LRF」の切り替え条件が満足される場合には、マイコン14aは、エンコーダ座標をLRF座標で上書きし(ステップS231)、LRF座標を用いた走行に切り替える(ステップS232)。そして、速度を第1の速度(例えば50m/分)に増加させる(ステップS233)。以後、通常の動作に戻る。
【0136】
本実施形態では、第2の速度(20m/分)による初期位置同定が成功した後、第3の速度(7.5m/分)に減速させている。この理由は、初期位置同定後の位置同定の探索範囲が狭いことに起因している。位置同定の探索範囲が起点となる座標から数十cm程度の範囲内である場合、AGV10が20m/分で走行すると、数秒以内に探索範囲を超えてしまうおそれがある。マイコン14aが第1測位装置14eに初期位置同定を指示してから位置同定を指示するまでに、例えば数秒程度の時間を要する場合、20m/分のままでは位置同定ができない可能性がある。したがって、本実施形態では、第3の速度として7.5m/分に減速させている。
【0137】
次に、
図17および
図18を参照しながら、地図切替処理(
図12におけるステップS121)の例を説明する。
図17は、LRF座標の信頼性が高い通常時の地図切替処理を模式的に示す図である。
図18は、地図切替エリアを走行中にLRF座標の信頼性が低くなった場合の地図切替処理を模式的に示す図である。この例では、1つの地図が50m×50mの領域をカバーし、隣接する2つの地図が5mの幅の重複領域を有している。各地図の中心が座標の原点であり、横方向(X方向)および縦方向(Y方向)のそれぞれについて、原点から20mから25m離れたエリアが、地図切替エリアである。AGV10は、X方向に第1の速度(この例では50m/分)で地図切替エリアに侵入する。
【0138】
図17に示すように、AGV10がX=22.5mの地点を超えると、マイコン14aは、AGV10の速度を第3の速度(7.5m/分)に低下させる。その後、X=23.75mの地点を超えると、マイコン14aは、使用する座標をLRF座標からエンコーダ座標に切り替え、切替後の地図を用いた初期位置同定を第1測位装置14eに指示する。この初期位置同定によって得られたLRF座標の信頼度が十分に高く、エンコーダ座標との差が十分に低ければ、マイコン14aは、続けて位置同定を第1測位装置14eに指示する。この位置同定によって得られたLRF座標についても信頼度が十分に高く、エンコーダ座標との差が十分に低ければ、マイコン14aは、エンコーダ座標の値をLRF座標の値で更新し、AGV10の移動速度を第1の速度である50m/分に戻し、LRF座標を用いた走行に切り替える。
【0139】
本実施形態では、第1測位装置14eは、地図切替後の初期位置同定を、LRF座標ではなくエンコーダ座標を用いて実行する。これにより、地図切替後の初期位置同定の成功率を高めることができる。
【0140】
他方、地図切替処理の際にLRF座標の信頼性が低い場合、マイコン14aは、
図18に示すように、信頼性が回復するまで、エンコーダ座標を用いた走行を継続する。AGV10がX=23.75mの地点を超えると、使用する地図を切り替え、第1測位装置14eは、初期位置同定を繰り返してLRF座標の信頼性の回復を試みる。信頼性が回復すると、マイコン14aは、LRF座標でエンコーダ座標を上書きし、AGV10の速度を第3の速度から第1の速度に増加させ、LRF座標を用いた走行に切り替える。
【0141】
以上のように、本実施形態によれば、LRF座標の信頼性が低下した場合に、エンコーダ座標を用いた走行に切り替え、信頼性が回復した後、LRF座標を用いた走行に戻す。さらに、速度の制御も併せて行うことにより、さらに安定した走行が可能になる。
【0142】
マイコン14aは、AGV10を移動させているとき、第1測位装置14eによる推定結果および第2測位装置19による推定結果のいずれを選択しているかを示す信号を出力するように構成されていてもよい。例えば、
図10に示すディスプレイ30に、当該信号を出力してもよい。ディスプレイ30は、当該信号を受けて、第1測位装置14eおよび第2測位装置19のいずれの測位方式が選択されているかを示す情報を表示することができる。マイコン14aは、AGV10の外部の装置に当該信号を送信してもよい。外部の装置は、例えば、運行管理装置50または端末装置20であり得る。外部の装置は、AGV10に搭載された光源またはスピーカなどの装置であってもよい。外部の装置は、上記信号を受けて、第1測位装置14eおよび第2測位装置19のいずれの測位方式が選択されているかを、光、音、または文字の情報として提示することができる。これにより、ユーザは、AGV10が現在どの測位方式で運行しているのかを知ることができる。
【0143】
(変形例)
次に、本実施形態の変形例を説明する。
【0144】
上記の表1の切り替え条件は一例であり、他の条件を適用することもできる。例えば、マイコン14aは、表1の条件によらず、以下の(1)、(2)のいずれかに該当する場合には、第2測位装置19による推定結果をAGV10の位置として選択してもよい。
(1)第1測位装置14eによる推定結果に基づいて推定した一定時間内におけるAGV10の移動距離と、第2測位装置19による推定結果に基づいて推定した一定時間内におけるAGV10の移動距離との差または比が、第1閾値よりも大きい場合
(2)第1測位装置14eによる推定結果に基づいて推定した一定時間内におけるAGV10の角度変化量と、第2測位装置19による推定結果に基づいて推定した上記一定時間内におけるAGV10の角度変化量との差または比が、第2閾値よりも大きい場合
【0145】
上記の判定は、第1測位装置14eが出力するLRF座標の動きとエンコーダ座標の動きとが近似しているか否かの判定であるといえる。この判定を「LRF座標の信頼性判定」と称することにする。この判定を行うことにより、第1測位装置14eが出力する信頼度が比較的高い場合でも、位置推定が正確ではないという状況の発生を抑制することができる。他方、両者の座標の差が大きい場合(例えば30cm以上)であっても、上記の(1)、(2)の両方を満足している場合には、第1測位装置14eの座標が正しいとし、第1測位装置14eの座標でエンコーダ座標を上書きしてもよい。
【0146】
より具体的には、下記3つの条件の全てを満たす場合には、第1測位装置14eの座標が正しいと判定してもよい。
・単位時間(例えば1秒間)で、第1測位装置14eが出力する座標を元に計算した移動距離と、第2測位装置19が出力する座標を元に計算した移動距離との差が20%以下であること。
・単位時間(例えば1秒間)で、第1測位装置14eが出力する座標を元に計算した角度の変化量と、第2測位装置19が出力する座標を元に計算した角度の変化量との差が10%以下であること。
・現在の第1測位装置14eが出力する角度と、第2測位装置19が出力する角度との差の絶対値が45度以下であること。
【0147】
具体的な計算式は、例えば以下のとおりである。
・1秒前の第1測位装置14eが出力した座標、角度を(Xr1, Yr1, θr1)、
・現在の第1測位装置14eが出力した座標、角度を(Xr2, Yr2, θr2)、
・1秒前の第2測位装置19が出力した座標、角度を(Xe1, Ye1, θe1)、
・現在の第2測位装置19が出力した座標、角度を(Xe2, Ye2, θe2)、
とする。
図19は、これらの座標および角度の例を示している。通常走行時においては、以下の3つの不等式(1)〜(3)を全て満たす場合に、LRF座標が正しい(合格)と判定する。
0.64 ≦((Xr2-Xr1)
2+(Yr2-Yr1)
2) /( (Xe2-Xe1)
2+(Ye2-Ye1)
2) ≦ 1.44 (1)
|(θe2-θe1)-(θr2-θr1)| ≦ 10° (2)
|θe2 -θr2|≦ 45° (3)
ただし、エンコーダ座標から計算した距離((Xe2-Xe1)
2+(Ye2-Ye1)
2)が停止中とみなせるほど小さい場合は、距離の割合で判断することが不適当である。その場合は、第1測位装置14eが出力する座標から計算される距離((Xr2-Xr1)
2+(Yr2-Yr1)
2)が第1測位装置14eの座標値の通常の揺れの範囲内に入っているか否かで判断してもよい。例えば、第1測位装置14e座標値の通常の揺れの二乗値を500(mm)とすると、上記の式(1)に代えて、次の式(4)を用いてもよい。
((Xr2-Xr1)
2+(Yr2-Yr1)
2) ≦ 500 (mm) (4)
【0148】
マイコン14aは、エンコーダ座標による走行時に、上記の表1(B)(2)の復帰条件を満たしていない場合であっても、以下の条件を全て満たしている場合には、LRF座標でエンコーダ座標を上書きし、LRF座標による走行に復帰してもよい。
・前述のLRF座標の信頼性判定が合格
・現在のLRF座標の信頼度が復帰閾値(例えば40%)以上
・直近の所定回数(例えば5回)の位置同定時の信頼度の平均が復帰閾値(例えば40%)以上
・LRF座標とエンコーダ座標とのX成分およびY成分の差が、いずれも閾値(例えば2m)未満である。
【0149】
この条件によれば、LRF座標とエンコーダ座標とのX成分およびY成分の差のいずれかが許容値(例えば30cm)以上であっても、上記の信頼性判定が合格である場合には、LRF座標による走行に復帰する。このため、上記の表1の条件を適用した場合よりも、LRF座標を用いた走行に復帰し易い傾向にある。
【0150】
(8)他の実施形態
これまでの説明では、主に、移動体がガイドレス式のAGVであり、第1センサがレーザレンジファインダであり、第2センサが2つのロータリエンコーダを含む実施形態を例示した。しかし、本開示は、そのような実施形態に限定されない。
【0151】
例えば、移動体は、路面に設けられた磁気テープまたは白線などの誘導体に沿って移動する「ガイド式」の移動体であってもよい。その場合、第1センサまたは第2センサは、磁気テープを読み取る磁気センサまたは白線を画像認識によって読み取るカメラであってもよい。測位装置は、磁気テープの破損の程度、または白線の汚れの程度、画像処理の際のマッチングの一致度などの様々な情報を信頼性データとして生成し得る。
【0152】
加速度センサまたは角加速度センサを第1センサまたは第2センサとして利用してもよい。測位装置は、これらのセンサから出力されるデータの分散、または急峻に変化するデータの割合などの様々な情報を信頼性データとして生成し得る。
【0153】
上述の実施形態の説明では、一例として二次元空間(床面)を走行するAGVを挙げた。しかしながら本開示は三次元空間を移動する移動体、たとえば飛行体(ドローン)、にも適用され得る。ドローンが飛行しながら三次元空間地図を作成する場合には、二次元空間を三次元空間に拡張することができる。
【0154】
以上の各実施形態における演算回路またはマイコンによって実行される処理は、全て、コンピュータプログラム(ソフトウェア)によっても専用の回路(ハードウェア)によっても実現され得る。