<用語>
「無人搬送車」(AGV:Automatic Guided Vehicle)とは、本体に人手または自動で荷物を積み込み、指示された場所まで自動走行し、人手または自動で荷卸しをする無軌道車両を意味する。「無人搬送車」は、無人牽引車および無人フォークリフトを含む。
「無人」の用語は、車両の操舵に人を必要としないことを意味しており、無人搬送車が「人(例えば荷物の積み下ろしを行う者)」を搬送することは除外しない。
「無人牽引車」とは、人手または自動で荷物の積み込み荷卸しをする台車を牽引して、指示された場所まで自動走行する無軌道車両である。
「無人フォークリフト」とは、荷物移載用のフォークなどを上下させるマストを備え、フォークなどに荷物を自動移載し指示された場所まで自動走行し、自動荷役作業をする無軌道車両である。
「無軌道車両」とは、車輪と、車輪を回転させる電気モータまたはエンジンを備える移動体(vehicle)である。
「移動体」とは、人または荷物を載せて移動する装置であり、移動のための駆動力(traction)を発生させる車輪、二足または多足歩行装置、プロペラなどの駆動装置を備える。本開示における「移動体」の用語は、狭義の無人搬送車のみならず、モバイルロボット、サービスロボット、およびドローンを含む。
「自動走行」は、無人搬送車が通信によって接続されるコンピュータの運行管理システムの指令に基づく走行と、無人搬送車が備える制御装置による自律的走行とを含む。自律的走行には、無人搬送車が所定の経路に沿って目的地に向かう走行のみならず、追尾目標に追従する走行も含まれる。また、無人搬送車は、一時的に作業者の指示に基づくマニュアル走行を行ってもよい。「自動走行」は、一般には「ガイド式」の走行および「ガイドレス式」の走行の両方を含むが、本開示では「ガイドレス式」の走行を意味する。
「ガイド式」とは、誘導体を連続的または断続的に設置し、誘導体を利用して無人搬送車を誘導する方式である。
「ガイドレス式」とは、誘導体を設置せずに誘導する方式である。本開示の実施形態における無人搬送車は、自己位置推定装置を備え、ガイドレス式で走行することができる。
「位置推定装置」は、レーザレンジファインダなどの外界センサによって取得されたセンサデータに基づいて地図上における自己位置を推定する装置である。
「外界センサ」は、移動体の外部の状態をセンシングするセンサである。外界センサには、例えば、レーザレンジファインダ(測域センサともいう)、カメラ(またはイメージセンサ)、LIDAR(Light Detection and Ranging)、ミリ波レーダ、超音波センサ、および磁気センサがある。
「内界センサ」は、移動体の内部の状態をセンシングするセンサである。内界センサには、例えばロータリエンコーダ(以下、単に「エンコーダ」と称することがある)、加速度センサ、および角加速度センサ(例えばジャイロセンサ)がある。
「SLAM(スラム)」とは、Simultaneous Localization and Mappingの略語であり、自己位置推定と地図作成を同時に行うことを意味する。
以下に説明する実施形態では、外界センサはレーザレンジファインダ(LRF)であるとする。ただしLIDARを採用してもよい。
<本開示における移動体の基本構成>
図1Aを参照する。本開示の移動体10は、図1Aに示される例示的な実施形態において、環境(移動体10の周囲)をスキャンしてスキャンデータを周期的に出力するレーザレンジファインダ102を備える。以下では、レーザレンジファインダ102を「LRF102」と略記する。LRF102はレーザ素子から出射されるレーザビームを利用して距離を計測する装置である。LRF102は周期的に例えば赤外線または可視光のレーザビームを周囲に出射して環境をスキャンする。レーザビームは、例えば、壁、柱等の構造物、床の上に置かれた物体などの表面で反射される。LRF102は、レーザビームの反射光を受けて各反射点までの距離を計算し、各反射点の位置が示された測定結果のデータを出力する。各反射点の位置には、反射光の到来方向および距離が反映されている。測定結果のデータ(スキャンデータ)は、「環境計測データ」または「センサデータ」と呼ばれることがある。
距離の計算方法として、LRF102は、例えばTOF(Time Of Flight)方式または位相差方式を採用する。TOF方式では、LRF102は、レーザビームを出射時刻と、反射光の受光時刻との差からレーザビームが往復に要した時間を算出する。光速と往復時間との積が反射点までの往復の距離を示す。これにより、LRF102は反射点までの距離のデータを取得できる。位相差方式では、LRF102は連続光の強度を所定の周波数で変調して出射し、変調した出射光と受信した反射光との位相差を検出する。出射光の位相と反射光の位相との間には、反射点までの往復の距離(光路長)に応じた位相差が生じる。位相差を検出することにより、LRF102は反射点までの距離のデータを取得できる。なお、位相遅れを検出できるのは最大で360度分、すなわち一波長分である。変調周波数の異なった複数の波(複合波)等を使用することにより、距離分解能(位相分解能)および計測距離を大きくすることができる。
LRF102による環境のスキャンは、例えば、LRF102の正面を基準として左右135度(合計270度)の角度範囲の環境に対して行われる。具体的には、LRF102は、水平面内において所定のステップ角度ごとに方向を変化させながらパルス状のレーザビームを出射し、各レーザビームの反射光を検出する。LRF102は、出射したレーザビームと反射光との関係を利用して、ステップ角度ごとに距離を計測する。ステップ角度が0.3度であれば、合計901ステップ分の角度で決まる方向における反射点までの距離の測定データを得ることができる。この例において、LRF102が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)である。しかし、LRF102は、三次元的なスキャンを行ってもよい。
LRF102は、設計時に計測が保証される距離が決められている。本開示では、LRF102は、例えば30mの距離以内に存在する反射点までの距離を示す距離データを取得することが可能である。
以下では、270度の範囲のスキャンの開始時刻を便宜的に「スキャン時刻」と称することがある。例えば-135度から+135度までステップ角度ごとに順次レーザビームを出射してスキャンを行う場合、-135度の角度方向にレーザビームを出射した時刻を「スキャン時刻」と呼ぶ。
スキャンデータの典型例は、スキャンごとに取得される点群(point cloud)を構成する各点の位置座標によって表現され得る。点の位置座標は、移動体10とともに移動するローカル座標系によって規定される。このようなローカル座標系は、移動体座標系またはセンサ座標系と呼ばれ得る。本開示においては、移動体10に固定されたローカル座標系の原点を移動体10の「位置」と定義し、ローカル座標系の向き(orientation)を移動体10の「姿勢」と定義する。以下、位置および姿勢を合わせて「ポーズ」と称することがある。
スキャンデータは、極座標系で表示される場合、各点の位置をローカル座標系における原点からの「方向」および「距離」で示す数値セットから構成され得る。ただし、反射光が検出されなかった場合には、当該角度についての点は存在しない。極座標系の表示は、直交座標系の表示に変換され得る。以下の説明では、簡単のため、LRF102から出力されたスキャンデータは、直交座標系で表示されているとする。
図1Aに示す移動体10は、環境地図(以下、「地図」と称する)の作成を行うこと、および、作成された地図を参照しながら自律的に移動すること、のいずれをも行うことができる。ただし、移動体10が両方行うことは必須ではない。本実施形態においては、少なくとも地図の作成を行うことができればよい。
移動体10は、ストレージ装置104と、信号処理回路106とを備える。ストレージ装置104は、地図作成時にはスキャンデータを蓄積しつつ当該スキャンデータから作成した地図を格納し、更新し、自律移動時には予め作成された地図を格納する。なお、格納される地図は1つでなく複数であり得る。
信号処理回路106は、例えば半導体集積回路であり、CPU(Central Processing Unit)、MPU(Micro Processing Unit)またはASIC(Application Specific IC)であり得る。信号処理回路106は、地図の作成時には地図作成装置として動作し、地図作成後の自律移動時には位置推定装置として動作する。
地図の作成時には、信号処理回路106は、LRF102から取得したスキャンデータの点群を、レーザビームを照射した角度および距離に従って配列する。これにより、そのスキャン範囲に関する部分地図が得られる。続いて信号処理回路106は、次のスキャン時刻のスキャンによって得られた点群をその位置座標を用いて当該部分地図を更新する。ここで言う「位置座標」は、先にスキャンデータを取得した位置を基準とした相対座標、または、ユーザが便宜的に設定した絶対座標で表現され得る。上述の処理を繰り返すことにより、部分地図が逐次更新され、最終的にはスキャンした領域全体の地図が得られる。
なお、ポーズの変化は、例えば移動体10のオドメトリ情報を利用して検出することができる。移動体10が複数の駆動輪を有するAGVである場合を例示すると、各駆動輪の回転速度、または単位時間当たりの回転数を積算すると、移動体10が移動した距離および方向を推定することができる。各駆動輪の回転速度、または単位時間当たりの回転数の情報は「オドメトリ情報」と呼ばれることがある。オドメトリ情報を利用して移動体10のポーズの変化を検出することにより、新たな点群が、地図上のどの位置で取得されたかを推定することができる。オドメトリ情報は、車輪の空転または摩耗などの要因によって誤差を生じやすい。そのため移動体10は、LRF102を利用するSLAM技術により、ポーズの変化を検出しながら地図を作成してもよい。なお移動体10は、地図の作成時に限らず、自己位置を推定しながら移動する際にもオドメトリ情報を利用することもできる。移動体10は、LRF102によるスキャンとオドメトリ情報とを両方用いて自己位置を推定し得る。
異なるスキャン時刻にそれぞれスキャンが行われて得られた複数組の点群には、環境内に存在する同じ物体の概ね同様の位置を示す反射点が含まれ得る。全てを別個独立した点として地図に反映すると地図データのデータ量が非常に大きくなる。そこで信号処理回路106は、データ量を制限するため、地図をメッシュ状に分け、メッシュの1区画には1個の反射点のみが含まれるようスキャンデータの数を制限してもよい。メッシュの1区画のサイズは、例えば実際の環境の10cm四方であり得る。
地図作成後の自律移動時には、信号処理回路106は、LRF102から取得したスキャンデータと、ストレージ装置104から読み出された地図とのマッチングを行い、移動体10のポーズを推定する。このマッチングは、パターンマッチングまたはスキャンマッチングと呼ばれ、種々のアルゴリズムにしたがって実行され得る。マッチングアルゴリズムの典型例は、Iterative Closest Point (ICP:反復最近接点)アルゴリズムである。なお、ストレージ装置104から読み出される地図は、移動体10自身が作成した地図であってもよいし、他の装置が作成した地図であってもよい。
図示されている例において、移動体10は、さらに、駆動装置108、走行制御装置110、通信回路112および入力装置114を備えている。駆動装置108は、移動体10が移動するための駆動力を発生する装置である。駆動装置108の例は、電気モータまたはエンジンによって回転する車輪(駆動輪)、モータまたは他のアクチュエータによって動作する二足または多足歩行装置を含む。車輪は、メカナムホイールなどの全方位ホイールであってもよい。また、移動体10は、空中または水中を移動する移動体、あるいはホバークラフトであってもよく、その場合の駆動装置108は、モータによって回転するプロペラを含む。
走行制御装置110は、駆動装置108を操作して移動体10の移動条件(速度、加速度、移動方向など)を制御する。走行制御装置110は、所定の走行経路に沿って移動体10を移動させてもよく、外部から与えられる指令にしたがって移動させてもよい。信号処理回路106は、移動体10の移動中または停止中において、移動体10の位置および姿勢の推定値を算出する。走行制御装置110は、この推定値を参照して移動体10の走行を制御する。
信号処理回路106および走行制御装置110を、全体として、走行制御装置(制御システム)120と呼んでもよい。走行制御装置120は、プロセッサと、プロセッサの動作を制御するコンピュータプログラムを格納したメモリによって構成され得る。このようなプロセッサおよびメモリは、1個または複数の半導体集積回路によって実現され得る。
通信回路112は、移動体10が外部の管理装置、他の移動体、または操作者のモバイル端末機器などを含む通信ネットワークに接続してデータおよび/または指令のやりとりを行う回路である。通信回路112は、無線通信および/または有線通信のいずれも行い得る。
入力装置114はユーザの指示を受け付ける装置である。入力装置114は、後述する地図作成時に、地図作成に利用される点群の検出範囲(距離、角度範囲)の指定を受け付けるために利用され得る。また入力装置114は、移動条件、走行経路に関する指令の入力を受け付けるためにも利用され得る。入力装置114は、例えば、外部からの指令を受け付ける入力端子、または移動体10に設けられた物理的なボタンである。移動体10にタッチパネルディスプレイが設けられている場合には、入力装置114はタッチパネルまたはソフトウェアボタンであり得る。
上述のストレージ装置104の典型例は、移動体10に搭載され、移動体10とともに移動する記憶装置によって実現されている。しかし、ストレージ装置104は、この例に限定されない。ストレージ装置104は、移動体10の外部に位置し、通信回路112によって移動体10に接続され得る記憶装置またはデータベースであってもよい。このような外部の記憶装置またはデータベースによってストレージ装置104が実現されている場合、地図の作成に利用され得るスキャンデータが移動体10からストレージ装置104へと送信された後、移動体10以外の信号処理回路が地図の作成を行ってもよい。つまり、移動体10が地図の作成を行うことは必須ではない。また、複数の移動体10が共通のストレージ装置104から必要な地図のデータを適宜読み出し、自律走行を行うことも可能になる。
図1Bは、本開示による地図作成システム300の実施形態の構成を示している。地図作成システム300は、移動体10が自己位置を推定するために参照する地図を作成する。地図作成システム300は、LRF102および信号処理回路106を有している。これらの構成および機能は、図1Aに示す移動体10に設けられたLRF102および信号処理回路106の構成および機能と同じである。ただし信号処理回路106は、地図の作成処理を行う機能のみ有していればよく、自律走行のための位置推定処理は必須ではない。
地図作成システム300は、移動体10のような1台の装置内に設けられてもよいし、LRF102および信号処理回路106が2つの装置として別個独立した筐体を有していてもよい。後者の場合、各装置はデータの送受信できるよう、相互に通信回線で接続されていればよい。例えば信号処理回路106が1台のPCで実現され、LRF102が人力で移動する台車に設置されてもよい。そしてPCとLRF102とが有線または無線で接続されていればよい。信号処理回路106が作成した地図のデータを格納するストレージ装置104を適宜設けてもよい。例えば信号処理回路106およびストレージ装置104はそれぞれ、後に図14および図20を参照しながら説明する運行管理装置50のCPU51およびメモリ52であり得る。他の例として、地図作成システム300は、LRF102が取得したスキャンデータをフラッシュメモリ等の記憶装置に一旦保存し、当該記憶装置を信号処理回路106に接続して信号処理回路106が地図を作成する形態も含み得る。
次に、図1Aの移動体10を例示しながら、従来の地図作成方法には精度を向上させる余地が大きいことを説明する。
図2は、移動体10のLRF102から出射される、ステップ角度ごとの複数のレーザビーム(実線)を模式的に示している。説明の便宜のためステップ角度を非常に大きく示している。以下、レーザビーム15aに注目して説明するが、他のレーザビームでも同様の説明が当てはまる。
出射されたレーザビームは、コリメートレンズを通した後も完全な平行光になることはなく、0度ではない発散角を有する。したがって、光軸に垂直な平面によるレーザビームの断面は遠方に行くほど大きくなる。図2ではレーザビーム15aは直線で示されているが、実際には、広がりを有するビーム15wが出射される。なおビーム15wの形状も模式的に示しているに過ぎない。本開示ではLRF102が行う周囲の空間のスキャンは実質的に床面に平行であるとしているため、床面に垂直な方向に関するレーザビームの広がりは考慮していない。
このような広がりを有するレーザビームは、物体が存在する方向の検出誤差を生じさせ得る。
図3は、広がりを有するレーザビーム15wの検出誤差を説明するための図である。LRF102から角度θaの方向にレーザビームが出射されたとする。角度は任意の基準線Sから起算した角度である。径が一定で、かつ十分細いと仮定すれば、レーザビーム15aが出射されることになる。レーザビーム15aは光軸上に存在する物体Gaのみで反射され、LRF102に戻る。レーザビーム15aは、光軸からずれた角度θbまたは角度θcの方向に存在する物体Gbまたは物体Gcでは反射されない。
しかしながら上述のように、LRF102からは広がりを有するレーザビーム15wが放射される。レーザビーム15wは角度θaの方向に存在する物体Gaのみならず、角度θbの方向に存在する物体Gb、および、角度θcの方向に存在する物体Gcでも反射される。つまり、角度θbからθcの間に存在する物体が全て角度θaの方向に存在する物体であるとして検出される。その結果、検出誤差を生じさせる。
図4は、広がりを有するレーザビーム15wが検出誤差を増大させることを説明するための図である。レーザビーム15wは、LRF102から距離L1だけ離れた位置では幅HL1の幅を有するが、距離L2(>L1)だけ離れた位置では幅HL2(>HL1)を有する。幅HL2内に存在する物体は全て、その角度方向に存在する物体として検出される。レーザビーム15wは、距離L1の位置で反射された場合よりも距離L2の位置で反射された場合の方が、より大きな検出誤差を生じさせることが理解される。具体的には、L2=30mの場合、HL2=30~40cmにもなり得る。そのような検出誤差を生じさせるレーザビーム15wを用いてスキャンを行うと、実際に存在する物体がより大きな物体として検出される。
図5は、実際に存在する物体Grealが、より大きな物体Gvirtualとして検出されることを説明するための図である。図の-Xから+X方向に沿ってスキャンが行われるとする。まず、幅を有するレーザビーム15w-1の+X側のビーム端でGrealの初めての反射が検出される。その結果、物体Grealは、実際よりも-X側にビームの半径分だけ広がった位置に端部を有すると検出される。スキャンが継続され、幅を有するレーザビーム15w-2の-X側のビーム端で物体Grealの最後の反射が検出される。その結果、物体Grealは、実際よりも+X側にビームの半径分だけ広がった位置に端部を有すると検出される。つまり、実際の物体Grealは、より大きな物体Gvirtualとして検出される。図4を参照しながら説明したように、反射がより遠方で生じるほど検出誤差が大きくなり、物体Gvirtualは実際の物体Grealよりも大きく検出されてしまう。
図6Aは、移動体10が移動する環境200の例を模式的に示す平面レイアウト図である。環境200は、より広い環境の一部である。図6Aにおいて、太い直線は、例えば建造物の固定壁202を示している。移動体10が図6Aに示す位置でスキャンを行い、地図を作成するとする。
図6Bは、取得された点群を並べて作成された地図202Mを示している。参考のため、建造物の固定壁202を実線で示している。点群202M-1、202M-2および202M-3に含まれる各点の位置の検出誤差は、移動体10から遠い位置ほど大きくなり、地図の歪みが大きくなる。このような歪みの存在は、その地図を参照して自律走行する他の移動体10の走行精度に影響を及ぼす。
本願発明者は、作成する地図の精度を向上させ、自律走行時に自己位置をより正確に推定することを可能にするための検討を行った。その結果、本願発明者は、レーザビーム15wの検出誤差が実際に地図の精度に影響を与え得るのは、遠方から受けた反射光の強度が大きい場合であると考えた。例えば、遠方の物体表面でレーザビーム15wの鏡面反射や再帰反射が発生した場合には、反射光の強度が大きくなる。鏡面反射や再帰反射が発生しなければ、広がったレーザビーム15wの外縁部分が遠方の物体表面で反射されたとしても、その反射光の強度は小さくノイズとして処理され反射点の位置の検出誤差は実質的には生じない。しかしながら遠方の物体表面で鏡面反射や再帰反射が発生する場合には、広がったレーザビーム15wの外縁部分からの反射光の強度も大きいためノイズとして処理されず、反射点の位置の検出誤差を無視できなくなる。その結果、その反射点の位置を利用して地図を作成すると、歪みが大きくなる。
上記検討を経て、本願発明者は、以下の地図作成システムを得た。
本開示による地図作成システム300(図1B)は、LRF102と信号処理回路106とを有している。LRF102は、第1角度範囲内(例えば270度の範囲内)で角度を変えながらレーザビームを出射して反射光を取得する。そしてLRF102は、出射したレーザビームと反射光との関係を利用して、角度ごとに、計測可能な第1距離以内(例えば30m以内)に存在する反射点までの距離を示す距離データを取得する。ここでいう「関係」を例示すると、例えばレーザビームの出射時刻と反射光の検出時刻との時間差、あるいは出射したレーザビームの位相と反射光の位相との位相差、である。
信号処理回路106は、第1角度範囲および第1距離によって規定される計測可能領域の中から、計測可能領域よりも小さい1以上の部分領域を選択し、1以上の部分領域内に含まれる反射点までの距離を示す距離データを用いて地図を作成する。計測可能領域よりも小さい1以上の部分領域の例は、典型的には以下の2つである。
第1例では、第1角度範囲(例えば270度の範囲)と、第1距離よりも短い少なくとも1つの第2距離(例えば10m)とによって規定される部分領域が選択される。これは、比較的近い範囲に存在する物体の反射点を用いて地図を作成することを意味する。第2距離は固定であってもよいし、可変であってもよい。
第2例では、第1角度範囲(例えば270度の範囲)よりも小さい少なくとも1つの第2角度範囲(例えば120度の範囲)と、第1距離(例えば30m)とによって規定される部分領域が選択される。第2例は、一部の角度範囲を除外した残りの角度範囲からの反射光を利用して地図を作成することを想定している。第2例では、反射点が存在する距離に応じて、反射光の強度の閾値(強度閾値)が設定される。第1距離(30m)近傍から強い反射光が得られたような場合には、スキャンデータとして採用し得るものの検出誤差が大きくなる。そこで信号処理回路106は、物体の反射点までの距離に応じた強度閾値と反射光の強度とを比較し、反射光の強度が強度閾値より大きい場合には、その反射光が到来した方向を含む角度範囲を除外する。そして信号処理回路106は、残された少なくとも1つの第2角度範囲に存在する反射点を用いて地図を作成する。第2角度範囲は可変であり得る。移動体10が走行することにより、強い反射光が受信される方向が変わり得るからである。
移動体10が移動することにより、移動体10と物体との相対的な距離が変化する。除外された角度範囲について、信号処理回路106は、刻々変化する物体の反射点までの距離に応じた強度閾値と、反射光の強度との比較を継続する。反射光の強度が強度閾値以下になれば、信号処理回路106は、当該強度閾値以下の範囲を上述の第2角度範囲に組み込み、当該第2角度範囲に存在する反射点を用いて地図を作成する。
以下、図7から図10を参照しながら、上述の第1例および第2例を具体的に説明する。
図7は、移動体10および移動体10の計測可能領域SAを示している。計測可能領域SAは、角度範囲θと、最大計測距離LMAXとによって規定される。基本的な移動体10は白矢印の方向に移動しながら計測可能領域SA内で検出された反射点を用いて地図を作成し、または、計測可能領域SA内で検出された反射点と地図とを照合し、自律移動を行う。
まず、上述の第1例を説明する。第1例は、地図の作成に利用する反射点の検出領域をより小さい領域に固定する例である。
図8Aは、計測可能領域SAと、移動体10が地図作成時に利用する部分領域SBとの関係を示している。図8Aに示されるように、部分領域SBは計測可能領域SAよりも小さい。より具体的には、部分領域SBは、計測可能領域SAと同じ角度範囲θと、計測可能領域SAの最大計測距離LMAXよりも小さい距離閾値LTHとによって規定される。移動体10は、部分領域SB内で掲出された反射点を用いて地図を作成する。図8Aに示される物体Gを例に挙げて説明する。物体Gは、例えば環境内に設置された棚である。なお、以下の説明では物体Gが角度範囲θに存在することを前提として、距離に注目して説明する。
図8Bは、移動体10が移動して物体Gに接近したときの移動体10と物体Gとの位置関係を示している。LRF102は、計測可能領域SAに含まれるが部分領域SBに含まれない領域(部分領域SBの外側の領域)の反射点も計測する。よって、LRF102の出力には物体G上の反射点までの距離は含まれている。しかしながら信号処理回路106は、距離閾値LTHよりも遠い位置に存在する物体G上の反射点を利用した地図の作成を行わない。
図8Cは、移動体10がさらに移動して物体Gに接近したときの移動体10と物体Gとの位置関係を示している。信号処理回路106は、物体G上の反射点までの距離が距離閾値LTH以下であることを検出すると、当該反射点までの距離データを利用して地図を作成する。図8Cには、物体Gの移動体10側の面における反射点の位置を示す点群204が示されている。
上述の処理は、信号処理回路106が、計測可能領域SAの中から部分領域SBを選択し、部分領域SBに含まれる領域からの反射点を利用して地図を作成することを意味する。これにより、距離閾値LTHよりも遠い反射点の位置に含まれ得る検出誤差(歪み)をより小さく抑えることができる。
距離閾値LTHの設定方法は任意である。例えば、ストレージ装置104に、予め決定された距離閾値LTHが選択基準データとして格納されており、信号処理回路106がストレージ装置104から当該選択基準データを読み出して距離閾値LTHとして設定してもよい。あるいは、入力装置114を介してユーザが値を入力し、信号処理回路106が当該値を距離閾値LTHとして設定してもよい。つまり入力装置114は、部分領域の指定をユーザから受け付けることができる。
例示的な実施形態では、最大計測距離LMAXを30mとしたとき、距離閾値LTHは25m未満の距離、例えば20m、15mまたは10mであり得る。
次に、上述の第2例を説明する。第2例は、地図の作成に利用する反射点の検出領域をより小さい領域に可変的に設定する例である。
図9Aは、地図作成時の移動体10の計測可能領域SAを示している。このときの計測可能領域SAは図7に示す例と同じである。移動体10が走行することにより、移動体10と物体Gとの相対距離が小さくなる。その結果、相対距離が最大計測距離LMAX以内になり、物体Gが計測可能領域SA内に入る。
図9Bは、物体Gが計測可能領域SA内に入ったときの移動体10と物体Gとの位置関係を示している。図5を参照しながら説明したように、図9Bでは、斜線で示される実際の物体Gが、破線で示されるように、より大きな物体として検出されていることが模式的に示されている。
本例では、信号処理回路106は、物体Gの反射光の強度をLRF102から、ステップ角度ごとに、距離データとともに反射光の強度を示す強度データを取得する。信号処理回路106は、距離データを用いて物体Gが計測可能領域SA内に存在することを検出する。さらに信号処理回路106は、検出された距離ごとに、強度データと予め決定された強度閾値ITHとを比較して、物体Gの反射光の強度が所定の強度閾値ITHを超えたか否かを判定する。強度閾値ITHは、予め用意された、反射光の強度に関する閾値である。ストレージ装置104は、距離と強度閾値ITHとを対応付けた選択基準データを格納している。選択基準データは、距離と強度閾値ITHとの関数として格納されていてもよいし、複数の距離の値の各々と強度閾値ITHとを対応付けたテーブルとして格納されていてもよい。信号処理回路106はストレージ装置104から当該選択基準データを読み出して、距離に応じた強度閾値ITHを保持しておく。例えば最大計測距離LMAX(例:30m)の強度閾値ITHは、鏡面反射または再帰反射が発生した場合に検出される反射強度よりも小さい値に設定される。
物体Gが計測可能領域SA内に存在すること、および、物体Gの反射光の強度が、物体Gまでの距離に応じて決定される強度閾値ITHを超えたこと、を信号処理回路106が検出すると、信号処理回路106は、当該物体Gの反射点が含まれる計測可能領域SA内の一部を除外領域SVとして設定する。そして信号処理回路106は、計測可能領域SAのうちの除外領域SV以外の領域を、地図を作成するための領域として選択する。例えば、距離が小さいほど大きく、距離が大きいほど小さい強度閾値ITHの関数を採用すると、距離が大きいにもかかわらず強度も大きい反射点を含む領域は除外領域SVに設定され得る。
図9Cは、計測可能領域SA内の除外領域SVと、選択された部分領域SB-1およびSB-2とを例示している。信号処理回路106は、少なくとも物体Gが検出された角度範囲θSVと、最大計測距離LMAXとによって規定される領域を除外領域SVとして設定する。信号処理回路106は、除外領域SV内の反射点を地図の作成に利用せず、部分領域SB-1およびSB-2内の反射点を地図の作成に利用する。部分領域SB-1は、角度範囲θよりも小さい角度範囲θB-1と最大計測距離LMAXとによって規定される。部分領域SB-2は、角度範囲θよりも小さい角度範囲θB-2と最大計測距離LMAXとによって規定される。なお、本開示では残された領域として2つの部分領域SB-1およびSB-2を例示したが、部分領域の数は1つの場合もあり得るし、3つ以上の場合もあり得る。少なくとも1つの部分領域が選択されればよい。
なお、部分領域SB-1およびSB-2から取得される反射光には、最大計測距離LMAXの位置からの反射光も含まれ得る。しかしながら上述のように、広がったレーザビーム15wのビーム外縁部分が物体表面で反射されたとしてもその反射光の強度は小さいためにノイズとして処理され得るため地図の作成に利用されることはない。従って、部分領域SB-1およびSB-2が最大計測距離LMAXまで広がっていてもよい。
図9Dは、移動体10が引き続き移動したときの移動体10と物体Gとの位置関係を示している。除外領域SVを設定した後も、信号処理回路106は、LRF102から物体Gの距離データおよび強度データを継続的に取得する。信号処理回路106は、距離データと選択基準データとを用いて、現在の物体Gの距離に応じた強度閾値ITHを取得し、強度データと当該強度閾値ITHとを比較する。図9Dは、強度データが当該強度閾値ITHよりもまだ僅かに大きい例を示している。参考のため、強度データと強度閾値ITHとが概ね一致する位置を物体Gに接する破線の円弧で示している。
図9Eは、物体Gからの反射光の強度が強度閾値ITH以下になったときの移動体10と物体Gとの位置関係を示している。このときの移動体10と物体Gとの距離を距離LSVとして示している。なおこのときの強度閾値ITHもまた、その強度データを与えた反射点までの距離に応じて求められている。信号処理回路106は、強度データが強度閾値ITH以下になったことを検出すると、角度範囲θSVと、最大計測距離LMAXよりも短い距離LSVとによって規定される部分領域SB-3を、新たに、地図の作成に利用する反射点の検出領域として追加的に選択する。部分領域SB-3の角度範囲θSVは、全体の角度範囲θのうちの角度範囲θB-1およびθB-2以外の範囲である。図9Eには、物体Gの移動体10側の面における反射点の位置を示す点群204が示されている。
部分領域SB-3を追加的に設定する選択した理由は、物体Gの検出誤差が許容可能な範囲に入った時点で、物体Gを地図に反映するためである。例えば、反射光の強度が大きい物体に移動体10が近付き、近傍を通過する場合には除外領域SVが動的に変化する。上述した角度範囲の追加処理がなければ、その物体が存在する領域は常に除外領域SVに設定されてしまい、その物体が地図に反映されなくなる。反射光の強度が強度閾値ITH以下になったことは、移動体10と物体Gとの相対距離が小さくなり、物体Gの検出誤差が許容可能な範囲内に入ったと考えることができる。その時点で物体Gを地図に反映すれば、地図の精度を担保できる。
図9Cの例では、最初に除外領域SVを設定し、残された部分領域SB-1およびSB-2を決定した。しかしながら、その時点で除外領域SVを設定しなくてもよい。信号処理回路106が、物体Gが単に計測可能領域SAに入ったことを検出すると、物体Gを含む全ての反射光の強度が、距離に応じた強度閾値以下である領域を、部分領域SB-1およびSB-2として選択してもよい。
図10は、移動体10が移動する環境200において、上述の第1例または第2例の動作によって取得された点群を並べて作成された地図204Mを示している。図6Bと同様、参考のため、建造物の固定壁202を実線で示している。図6Bの例と異なり、上述の第1例または第2例の動作により、距離閾値LTHよりも遠い位置の反射点は地図の作成に利用されず、距離閾値LTH以下の、近い位置の反射点が地図の作成に利用される。その結果、点群204M-1および204M-2に含まれる各点の位置の検出誤差は十分小さくなる。なお、点群204M-3は、移動体10が図6Aに示す位置に到達する前から、上述の第1例または第2例の動作を行って取得されたことを想定した。
次に、図11から図13を参照しながら、例として移動体10が上記の処理を行う場合の処理フローを説明する。各処理フローは信号処理回路106によって実行される。
図11は、計測範囲を制限した地図の作成処理フローを示す図である。
ステップS10において、信号処理回路106はLRF102に指令を送り、レーザビームの出射を開始させる。本例では、-135度から+135度まで、0.3度のステップ角度ごとにレーザビームを出射させ、周囲の環境のスキャンが行われる。
ステップS12において、信号処理回路106はLRF102からステップ角度ごとの距離データを取得する。距離データは、LRF102が、出射したレーザビームと受信した反射光との関係を利用して算出する。「関係」は上述の通りであるから再度の説明は省略する。なお信号処理回路106は、ステップ角度ごとに、1組の反射点の位置座標データおよび距離データをLRF102から受け取ってもよいし、反射点の方位データと距離データとをLRF102から受け取ってもよい。なお、方位はステップ角度ごとに変化するため既知である。得られた距離データが順序付けられて配列されていれば、方位データを含めることは必須ではない。
ステップS14において、信号処理回路106は、計測可能領域の中から1以上の部分領域を選択する。部分領域は計測可能領域の部分集合である。
ステップS16において、信号処理回路106は、選択した部分領域に含まれる距離データを用いて地図を作成し、処理を終了する。
図12Aおよび図12Bは、図11中のステップS14の具体的な処理のバリエーションである。
図12Aは、部分領域を選択する第1の処理フローを示している。第1の処理フローは、上述の第1例の処理に対応する。
ステップS22において、信号処理回路106はストレージ装置104から選択基準データを読み出す。選択基準データは距離閾値LTHを示す数値である。
ステップS24において、信号処理回路106はLRF102から、計測可能領域SA内の全ての距離データを取得する。
ステップS26において、信号処理回路106は角度範囲θと距離閾値LTHとによって規定される領域を部分領域SBとして選択する。
上述のステップS26およびステップS16(図11)の処理により、全ての距離データの中から、距離閾値LTH以下の距離データが選択され、地図の作成に利用される。なお図12Aの処理では、角度範囲θはLRF102のスキャン範囲と同じであり、既知であるとした。
図12Bは、部分領域を選択する第2の処理フローを示している。第2の処理フローは、上述の第2例の処理に対応する。
ステップS32において、信号処理回路106は、ストレージ装置104から選択基準データを取得する。選択基準データは距離に応じた強度閾値ITHを示す数値である。
ステップS34において、信号処理回路106はLRF102から、スキャン角度ごとに、距離データおよび反射光の強度データを取得する。
ステップS36において、信号処理回路106は、ある距離における強度データ≧その距離における強度閾値ITHとなるスキャン角度を決定する。
ステップS38において、信号処理回路106は、決定したスキャン角度を含む領域を除外領域SVとして決定し、計測可能領域SAのうち除外領域SV以外の領域を、部分領域として選択する。図9の例では、信号処理回路106は、1以上の部分領域SB-1およびSB-2を選択する。選択された部分領域内の反射点が地図の作成に利用される。その後、移動体10の継続的な移動に伴い、信号処理回路106は以下のステップS40および42を実行する。
ステップS40において、信号処理回路106は、除外領域SV内の反射点のうち、ある距離における強度データ≦その距離における強度閾値ITHとなる反射点を決定する。
ステップS42において、信号処理回路106は、決定した反射点を含む領域を、部分領域として追加的に選択する。図9の例では、信号処理回路106は、部分領域SB-1およびSB-2に加え、部分領域SB-3を選択する。選択された部分領域SB-3内の反射点がさらに地図の作成に利用される。
図13は、地図作成時および自己位置推定時のそれぞれにおいて移動体10が利用する計測領域の違いを説明するための一覧図である。最も大きな相違点は、距離閾値LTHを利用する例(上述の第1例、図12A)において利用される部分領域SBは、移動体が自己位置を推定する際に用いるLRF102の計測領域SAよりも狭いことである。または、強度閾値ITHを利用する例(上述の第2例、図12B)において利用される部分領域SB-n(n:1以上の整数)の合計は、移動体が自己位置を推定する際に用いるLRF102の最大の計測領域SAよりも狭いことである。選択した部分領域内の反射点の位置の検出誤差は許容範囲内であるため、当該反射点を用いて地図を作成することにより、作成する地図の精度を向上させることが可能になる。
<例示的な実施形態>
以下、本開示による移動体の実施形態をより詳細に説明する。本実施形態では、移動体の一例として無人搬送車を挙げる。以下の説明では、略語を用いて、無人搬送車を「AGV」と記述する。以下、「AGV」についても、移動体10と同様に参照符号「10」を付す。なおストレージ装置104に相当する構成要素は後述の「メモリ」であり、信号処理回路106に相当する構成要素は後述の「マイコン14a」、「位置推定装置14e」またはこれらを包括する「チップ回路14g」である。
(1)システムの基本構成
図14は、本開示による例示的な移動体管理システム100の基本構成例を示している。移動体管理システム100は、少なくとも1台のAGV10と、AGV10の運行管理を行う運行管理装置50とを含む。図14には、ユーザ1によって操作される端末装置20も記載されている。
AGV10は、走行に磁気テープなどの誘導体が不要な「ガイドレス式」走行が可能な無人搬送台車である。AGV10は、自己位置推定を行い、推定の結果を端末装置20および運行管理装置50に送信することができる。AGV10は、運行管理装置50からの指令にしたがって環境S内を自動走行することが可能である。
運行管理装置50は各AGV10の位置をトラッキングし、各AGV10の走行を管理するコンピュータシステムである。運行管理装置50は、デスクトップ型PC、ノート型PC、および/または、サーバコンピュータであり得る。運行管理装置50は、複数のアクセスポイント2を介して、各AGV10と通信する。例えば、運行管理装置50は、各AGV10が次に向かうべき位置の座標のデータを各AGV10に送信する。各AGV10は、定期的に、例えば250ミリ秒ごとに自身の位置および姿勢(orientation)を示すデータを運行管理装置50に送信する。指示した位置にAGV10が到達すると、運行管理装置50は、さらに次に向かうべき位置の座標のデータを送信する。AGV10は、端末装置20に入力されたユーザ1の操作に応じて環境S内を走行することも可能である。端末装置20の一例はタブレットコンピュータである。
図15は、3台のAGV10a,10bおよび10cが存在する環境Sの一例を示している。いずれのAGVも図中の奥行き方向に走行しているとする。AGV10aおよび10bは天板に載置された荷物を搬送中である。AGV10cは、前方のAGV10bに追従して走行している。なお、説明の便宜のため、図15では参照符号10a,10bおよび10cを付したが、以下では、「AGV10」と記述する。
AGV10は、天板に載置された荷物を搬送する方法以外に、自身と接続された牽引台車を利用して荷物を搬送することも可能である。図16は接続される前のAGV10および牽引台車5を示している。牽引台車5の各足にはキャスターが設けられている。AGV10は牽引台車5と機械的に接続される。図17は、接続されたAGV10および牽引台車5を示している。AGV10が走行すると、牽引台車5はAGV10に牽引される。牽引台車5を牽引することにより、AGV10は、牽引台車5に載置された荷物を搬送できる。
AGV10と牽引台車5との接続方法は任意である。ここでは一例を説明する。AGV10の天板にはプレート6が固定されている。牽引台車5には、スリットを有するガイド7が設けられている。AGV10は牽引台車5に接近し、プレート6をガイド7のスリットに差し込む。差し込みが完了すると、AGV10は、図示されない電磁ロック式ピンをプレート6およびガイド7に貫通させ、電磁ロックをかける。これにより、AGV10と牽引台車5とが物理的に接続される。
再び図14を参照する。各AGV10と端末装置20とは、例えば1対1で接続されてBluetooth(登録商標)規格に準拠した通信を行うことができる。各AGV10と端末装置20とは、1または複数のアクセスポイント2を利用してWi-Fi(登録商標)に準拠した通信を行うこともできる。複数のアクセスポイント2は、例えばスイッチングハブ3を介して互いに接続されている。図14には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との間でも双方向通信が実現される。
(2)地図の作成
自己位置を推定しながらAGV10が走行できるようにするため、環境S内の地図が作成される。AGV10には位置推定装置およびLRF102が搭載されており、LRF102の出力を利用して地図を作成できる。
AGV10は、ユーザの操作によってデータ取得モードに遷移する。データ取得モードにおいて、AGV10はLRF102を用いたセンサデータの取得を開始する。
位置推定装置は、センサデータを記憶装置に蓄積する。環境S内のセンサデータの取得が完了すると、記憶装置に蓄積されたセンサデータが外部装置に送信される。外部装置は、例えば信号処理プロセッサを有し、かつ、地図作成コンピュータプログラムがインストールされたコンピュータである。
外部装置の信号処理プロセッサは、スキャンごとに得られたセンサデータ同士を重ね合わせる。信号処理プロセッサが重ね合わせる処理を繰り返し行うことにより、環境Sの地図を作成することができる。地図は、前述した地図を加工する装置300(図10参照)を用いて加工される。装置300は、地図から選択された特定領域の位置を示すデータを作成する。外部装置は、加工された地図のデータをAGV10に送信する。AGV10は、加工された地図のデータを内部の記憶装置に保存する。外部装置は、運行管理装置50であってもよいし、他の装置であってもよい。
外部装置ではなくAGV10が地図の作成および加工を行ってもよい。上述した外部装置の信号処理プロセッサが行った処理を、AGV10のマイクロコントローラユニット(マイコン)などの回路が行えばよい。AGV10内で地図を作成する場合には、蓄積されたセンサデータを外部装置に送信する必要がなくなる。センサデータのデータ容量は一般には大きいと考えられる。センサデータを外部装置に送信する必要がないため、通信回線の占有を回避できる。
センサデータを取得するための環境S内の移動は、ユーザの操作にしたがってAGV10が走行することによって実現し得る。例えば、AGV10は、端末装置20を介して無線でユーザから前後左右の各方向への移動を指示する走行指令を受け取る。AGV10は走行指令にしたがって環境S内を前後左右に走行し、地図を作成する。AGV10がジョイスティック等の操縦装置と有線で接続されている場合には、当該操縦装置からの制御信号にしたがって環境S内を前後左右に走行し、地図を作成してもよい。LRF102を搭載した計測台車を人が押し歩くことによってセンサデータを取得してもよい。
図14および図15には複数台のAGV10が示されているが、AGVは1台であってもよい。複数台のAGV10が存在する場合、ユーザ1は端末装置20を利用して、登録された複数のAGVのうちから一台のAGV10を選択して、環境Sの地図を作成させることができる。
地図が作成されると、以後、各AGV10は当該地図を利用して自己位置を推定しながら自動走行することができる。
(3)AGVの構成
図18は、本実施形態にかかる例示的なAGV10の外観図である。AGV10は、2つの駆動輪11aおよび11bと、4つのキャスター11c、11d、11eおよび11fと、フレーム12と、搬送テーブル13と、走行制御装置14と、LRF102とを有する。2つの駆動輪11aおよび11bは、AGV10の右側および左側にそれぞれ設けられている。4つのキャスター11c、11d、11eおよび11fは、AGV10の4隅に配置されている。なお、AGV10は、2つの駆動輪11aおよび11bに接続される複数のモータも有するが、複数のモータは図18には示されていない。また、図18には、AGV10の右側に位置する1つの駆動輪11aおよび2つのキャスター11cおよび11eと、左後部に位置するキャスター11fとが示されているが、左側の駆動輪11bおよび左前部のキャスター11dはフレーム12の蔭に隠れているため明示されていない。4つのキャスター11c、11d、11eおよび11fは、自由に旋回することができる。以下の説明では、駆動輪11aおよび駆動輪11bを、それぞれ車輪11aおよび車輪11bとも称する。
走行制御装置14は、AGV10の動作を制御する装置であり、主としてマイコン(後述)を含む集積回路、電子部品およびそれらが搭載された基板を含む。走行制御装置14は、上述した、端末装置20とのデータの送受信、および、前処理演算を行う。
LRF102は、例えば赤外のレーザビーム15aを出射し、当該レーザビーム15aの反射光を検出することにより、反射点までの距離を測定する光学機器である。本実施形態では、AGV10のLRF102は、例えばAGV10の正面を基準として左右135度(合計270度)の範囲の空間に、0.25度ごとに方向を変化させながらパルス状のレーザビーム15aを出射し、各レーザビーム15aの反射光を検出する。これにより、0.25度ごと、合計1081ステップ分の角度で決まる方向における反射点までの距離のデータを得ることができる。なお、本実施形態では、LRF102が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)である。しかしながら、LRF102は高さ方向のスキャンを行ってもよい。
AGV10の位置および姿勢(向き)と、LRF102のスキャン結果とにより、AGV10は、環境Sの地図を作成することができる。地図には、AGVの周囲の壁、柱等の構造物、床の上に載置された物体の配置が反映され得る。地図のデータは、AGV10内に設けられた記憶装置に格納される。
AGV10の位置および姿勢、すなわちポーズ(x,y,θ)を、以下、単に「位置」と呼ぶことがある。
走行制御装置14は、前述したようにして、LRF102の測定結果と、自身が保持する地図データとを比較して、自身の現在位置を推定する。地図データは、他のAGV10が作成した地図データであってもよい。
図19Aは、AGV10の第1のハードウェア構成例を示している。また図19Aは、走行制御装置14の具体的な構成も示している。
AGV10は、走行制御装置14と、LRF102と、2台のモータ16aおよび16bと、駆動装置17と、車輪11aおよび11bとを備えている。
走行制御装置14は、マイコン14aと、メモリ14bと、記憶装置14cと、通信回路14dと、位置推定装置14eとを有している。マイコン14a、メモリ14b、記憶装置14c、通信回路14dおよび位置推定装置14eは通信バス14fで接続されており、相互にデータを授受することが可能である。LRF102もまた通信インタフェース(図示せず)を介して通信バス14fに接続されており、計測結果である計測データを、マイコン14a、位置推定装置14eおよび/またはメモリ14bに送信する。
マイコン14aは、走行制御装置14を含むAGV10の全体を制御するための演算を行うプロセッサまたは制御回路(コンピュータ)である。典型的にはマイコン14aは半導体集積回路である。マイコン14aは、制御信号であるPWM(Pulse Width Modulation)信号を駆動装置17に送信して駆動装置17を制御し、モータに印加する電圧を調整させる。これによりモータ16aおよび16bの各々が所望の回転速度で回転する。
左右のモータ16aおよび16bの駆動を制御する1つ以上の制御回路(例えばマイコン)を、マイコン14aとは独立して設けてもよい。例えば、モータ駆動装置17が、モータ16aおよび16bの駆動をそれぞれ制御する2つのマイコンを備えていてもよい。
メモリ14bは、マイコン14aが実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ14bは、マイコン14aおよび位置推定装置14eが演算を行う際のワークメモリとしても利用され得る。
記憶装置14cは、不揮発性の半導体メモリ装置である。ただし、記憶装置14cは、ハードディスクに代表される磁気記録媒体、または、光ディスクに代表される光学式記録媒体であってもよい。さらに、記憶装置14cは、いずれかの記録媒体にデータを書き込みおよび/または読み出すためのヘッド装置および当該ヘッド装置の制御装置を含んでもよい。
記憶装置14cは、走行する環境Sの地図M、および、1または複数の走行経路のデータ(走行経路データ)Rを記憶する。地図Mは、AGV10が地図作成モードで動作することによって作成され記憶装置14cに記憶される。走行経路データRは、地図Mが作成された後に外部から送信される。本実施形態では、地図Mおよび走行経路データRは同じ記憶装置14cに記憶されているが、異なる記憶装置に記憶されてもよい。
走行経路データRの例を説明する。
端末装置20がタブレットコンピュータである場合には、AGV10はタブレットコンピュータから走行経路を示す走行経路データRを受信する。このときの走行経路データRは、複数のマーカの位置を示すマーカデータを含む。「マーカ」は走行するAGV10の通過位置(経由点)を示す。走行経路データRは、走行開始位置を示す開始マーカおよび走行終了位置を示す終了マーカの位置情報を少なくとも含む。走行経路データRは、さらに、1以上の中間経由点のマーカの位置情報を含んでもよい。走行経路が1以上の中間経由点を含む場合には、開始マーカから、当該走行経由点を順に経由して終了マーカに至る経路が、走行経路として定義される。各マーカのデータは、そのマーカの座標データに加えて、次のマーカに移動するまでのAGV10の向き(角度)および走行速度のデータを含み得る。AGV10が各マーカの位置で一旦停止し、自己位置推定および端末装置20への通知などを行う場合には、各マーカのデータは、当該走行速度に達するまでの加速に要する加速時間、および/または、当該走行速度から次のマーカの位置で停止するまでの減速に要する減速時間のデータを含み得る。
端末装置20ではなく運行管理装置50(例えば、PCおよび/またはサーバコンピュータ)がAGV10の移動を制御してもよい。その場合には、運行管理装置50は、AGV10がマーカに到達する度に、次のマーカへの移動をAGV10に指示してもよい。例えば、AGV10は、運行管理装置50から、次に向かうべき目的位置の座標データ、または、当該目的位置までの距離および進むべき角度のデータを、走行経路を示す走行経路データRとして受信する。
AGV10は、作成された地図と走行中に取得されたLRF102が出力したセンサデータとを利用して自己位置を推定しながら、記憶された走行経路に沿って走行することができる。
通信回路14dは、例えば、Bluetooth(登録商標)および/またはWi-Fi(登録商標)規格に準拠した無線通信を行う無線通信回路である。いずれの規格も、2.4GHz帯の周波数を利用した無線通信規格を含む。例えばAGV10を走行させて地図を作成するモードでは、通信回路14dは、Bluetooth(登録商標)規格に準拠した無線通信を行い、1対1で端末装置20と通信する。
位置推定装置14eは、地図の作成処理、および、走行時には自己位置の推定処理を行う。位置推定装置14eは、AGV10の位置および姿勢とLRF102のスキャン結果とにより、環境Sの地図を作成し得る。走行時には、位置推定装置14eは、LRF102からセンサデータを受け取り、また、記憶装置14cに記憶された地図Mおよび特定領域の位置データを読み出す。LRF102のスキャン結果から作成された局所的地図データ(センサデータ)を、より広範囲の地図Mとのマッチングを行うことにより、地図M上における自己位置(x,y,θ)を同定する。位置推定装置14eは、局所的地図データが地図Mに一致した程度を表す「信頼度」のデータを生成する。自己位置(x,y,θ)、および、信頼度の各データは、AGV10から端末装置20または運行管理装置50に送信され得る。端末装置20または運行管理装置50は、自己位置(x,y,θ)、および、信頼度の各データを受信して、内蔵または接続された表示装置に表示することができる。
本実施形態では、マイコン14aと位置推定装置14eとは別個の構成要素であるとしているが、これは一例である。マイコン14aおよび位置推定装置14eの各動作を独立して行うことが可能な1つのチップ回路または半導体集積回路であってもよい。図19Aには、マイコン14aおよび位置推定装置14eを包括するチップ回路14gが示されている。以下では、マイコン14aおよび位置推定装置14eが別個独立に設けられている例を説明する。
2台のモータ16aおよび16bは、それぞれ2つの車輪11aおよび11bに取り付けられ、各車輪を回転させる。つまり、2つの車輪11aおよび11bはそれぞれ駆動輪である。本明細書では、モータ16aおよびモータ16bは、それぞれAGV10の右輪および左輪を駆動するモータであるとして説明する。
駆動装置17は、2台のモータ16aおよび16bの各々に印加される電圧を調整するためのモータ駆動回路17aおよび17bを有する。モータ駆動回路17aおよび17bの各々はいわゆるインバータ回路を含む。モータ駆動回路17aおよび17bは、マイコン14aまたはモータ駆動回路17a内のマイコンから送信されたPWM信号によって各モータに流れる電流をオンまたはオフし、それによりモータに印加される電圧を調整する。
図19Bは、AGV10の第2のハードウェア構成例を示している。第2のハードウェア構成例は、レーザ測位システム14hを有する点、および、マイコン14aが各構成要素と1対1で接続されている点において、第1のハードウェア構成例(図19A)と相違する。
レーザ測位システム14hは、位置推定装置14eおよびLRF102を有する。位置推定装置14eおよびLRF102は、例えばイーサネット(登録商標)ケーブルで接続されている。位置推定装置14eおよびLRF102の各動作は上述した通りである。レーザ測位システム14hは、AGV10のポーズ(x,y,θ)を示す情報をマイコン14aに出力する。
マイコン14aは、種々の汎用I/Oインタフェースまたは汎用入出力ポート(図示せず)を有している。マイコン14aは、通信回路14d、レーザ測位システム14h等の、走行制御装置14内の他の構成要素と、当該汎用入出力ポートを介して直接接続されている。
図19Bに関して上述した構成以外は、図19Aの構成と共通である。よって共通の構成の説明は省略する。
本開示の実施形態におけるAGV10は、図示されていない障害物検知センサおよびバンパースイッチなどのセーフティセンサを備えていてもよい。
(4)運行管理装置の構成例
図20は、運行管理装置50のハードウェア構成例を示している。運行管理装置50は、CPU51と、メモリ52と、位置データベース(位置DB)53と、通信回路54と、地図データベース(地図DB)55と、画像処理回路56とを有する。
CPU51、メモリ52、位置DB53、通信回路54、地図DB55および画像処理回路56は通信バス57で接続されており、相互にデータを授受することが可能である。
CPU51は、運行管理装置50の動作を制御する信号処理回路(コンピュータ)である。典型的にはCPU51は半導体集積回路である。
メモリ52は、CPU51が実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ52は、CPU51が演算を行う際のワークメモリとしても利用され得る。
位置DB53は、各AGV10の行き先となり得る各位置を示す位置データを格納する。位置データは、例えば管理者によって工場内に仮想的に設定された座標によって表され得る。位置データは管理者によって決定される。
通信回路54は、例えばイーサネット(登録商標)規格に準拠した有線通信を行う。通信回路54はアクセスポイント2(図14)と有線で接続されており、アクセスポイント2を介して、AGV10と通信することができる。通信回路54は、AGV10に送信すべきデータを、バス57を介してCPU51から受信する。また通信回路54は、AGV10から受信したデータ(通知)を、バス57を介してCPU51および/またはメモリ52に送信する。
地図DB55は、AGV10が走行する工場等の内部の地図のデータおよび特定領域の位置データを格納する。各AGV10の位置と1対1で対応関係を有する地図であれば、データの形式は問わない。例えば地図DB55に格納される地図は、CADによって作成された地図であってもよい。
運行管理装置50は、例えばAGV10が特定領域を迂回するようにAGV10の経路を決定し得る。
位置DB53および地図DB55は、不揮発性の半導体メモリ上に構築されてもよいし、ハードディスクに代表される磁気記録媒体、または光ディスクに代表される光学式記録媒体上に構築されてもよい。
画像処理回路56はモニタ58に表示される映像のデータを生成する回路である。画像処理回路56は、専ら、管理者が運行管理装置50を操作する際に動作する。本実施形態では特にこれ以上の詳細な説明は省略する。なお、モニタ58は運行管理装置50と一体化されていてもよい。また画像処理回路56の処理をCPU51が行ってもよい。
上記の包括的な態様は、システム、方法、集積回路、コンピュータプログラム、または記録媒体によって実現されてもよい。あるいは、システム、装置、方法、集積回路、コンピュータプログラム、および記録媒体の任意な組み合わせによって実現されてもよい。
本開示の移動体は、工場、倉庫、建設現場、物流、病院などで荷物、部品、完成品などの物の移動および搬送に好適に利用され得る。