(57)【要約】  本開示の移動体は、周囲の空間をセンシングしてセンサデータを周期的に出力する外界センサ(106)と、地図データを記憶する記憶装置(108)と、センサデータおよび地図データを利用して移動体の位置を推定する処理を行い、位置の推定値を順次出力する測位装置(110)と、演算回路(120)とを備える。演算回路は、測位装置が第１時刻における移動体の位置の推定値を出力した後、第２時刻における移動体の位置を推定する処理を開始するとき、第１時刻から第２時刻までの間に移動体が移動する距離および方向に基づいて、第１時刻における位置の推定値を補正し、補正後の推定値を第２時刻における移動体の位置の初期位置として測位装置に与える。
2018179960.tif 000002
【特許請求の範囲】
【請求項１】
移動体であって、
モータと、
前記モータを制御して前記移動体を移動させる駆動装置と、
周囲の空間をセンシングしてセンサデータを周期的に出力する外界センサと、
地図データを記憶する記憶装置と、
前記センサデータおよび前記地図データを利用して前記移動体の位置を推定する処理を行い、前記位置の推定値を順次出力する測位装置と、
演算回路と
を備え、
前記演算回路は、前記測位装置が第１時刻における前記移動体の位置の推定値を出力した後、第２時刻における前記移動体の位置を推定する処理を開始するとき、前記第１時刻から前記第２時刻までの間に前記移動体が移動する距離および方向に基づいて、前記第１時刻における前記位置の推定値を補正し、補正後の推定値を前記第２時刻における前記移動体の位置の初期位置として前記測位装置に与える、移動体。
【請求項２】
前記測位装置は、前記移動体の位置の推定値を出力するとき、推定の信頼度を示す情報を出力し、
前記演算回路は、前記第１時刻から前記第２時刻までの間において、前記測位装置から出力された前記移動体の位置の推定値についての信頼度が設定値未満になったとき、前記補正後の推定値を前記第２時刻における前記移動体の位置の初期位置として前記測位装置に与える、請求項１に記載の移動体。
【請求項３】
前記演算回路は、前記第１時刻から前記第２時刻までの間において、前記測位装置からの要求に応答して、前記補正後の推定値を前記第２時刻における前記移動体の位置の初期位置として前記測位装置に与える、請求項１に記載の移動体。
【請求項４】
前記測位装置は、前記演算回路から与えられた前記第２時刻における前記移動体の位置の初期位置と、前記第２時刻までに前記外界センサから出力された前記センサデータとを利用して、前記第２時刻における前記移動体の位置を推定し、前記第２時刻における前記移動体の位置の推定値を第３時刻に出力する、請求項１から３のいずれかに記載の移動体。
【請求項５】
前記測位装置は、前記演算回路から与えられた前記第２時刻における前記移動体の位置の初期位置と、前記外界センサから出力された前記センサデータとを利用して、前記移動体の位置を推定し、前記移動体の位置の推定値を第３時刻に出力する、請求項１から３のいずれかに記載の移動体。
【請求項６】
前記演算回路は、前記駆動装置の動作状態に応じて、前記第１時刻から前記第２時刻までの間に前記移動体が移動する距離および方向を決定する、請求項１から５のいずれかに記載の移動体。
【請求項７】
前記移動体は、オドメトリ情報を出力する内界センサをさらに備えており、
前記演算回路は、前記内界センサから出力された前記オドメトリ情報を利用して、前記第１時刻から前記第２時刻までの間に前記移動体が移動する距離および方向を決定する、請求項１から５のいずれかに記載の移動体。
【請求項８】
前記地図データは、前記移動体が移動しているときに前記外界センサから周期的に出力された前記センサデータに基づいて作成されたデータである、請求項１から７のいずれかに記載の移動体。
【請求項９】
前記駆動装置は、前記移動体の位置の指令値と前記測位装置から出力された前記移動体の位置の推定値とに基づいて前記モータを制御する、請求項１から８のいずれかに記載の移動体。
【請求項１０】
周囲の空間をセンシングしてセンサデータを周期的に出力する外界センサを備える移動体に搭載されて使用される自己位置推定装置であって、
地図データを記憶する記憶装置と、
前記センサデータおよび前記地図データを利用して前記移動体の位置を推定する処理を行い、前記位置の推定値を順次出力する測位装置と、
演算回路と、
を備え、
前記演算回路は、前記測位装置が第１時刻における前記移動体の位置の推定値を出力した後、第２時刻における前記移動体の位置を推定する処理を開始するとき、前記第１時刻から前記第２時刻までの間に前記移動体が移動する距離および方向に基づいて、前記第１時刻における前記位置の推定値を補正し、補正後の推定値を前記第２時刻における前記移動体の位置の初期位置として前記測位装置に与える、自己位置推定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、移動体、および当該移動体に用いられる自己位置推定装置に関する。
【背景技術】
【０００２】
ドローン（無人航空機）、自動運転カー、および自律移動ロボットなどの移動体（以下、単に「移動体」と称する）の位置を高い精度で推定する位置推定技術の開発が進められている。自己位置推定を行う移動体は、レーザ測域センサなどの外界センサを備え、移動しながら周囲の空間をセンシングしてセンサデータを取得する。たとえば、センサデータから作成した移動体周囲の局所的地図データを、より広範囲の環境地図データと照合（マッチング）することにより、環境地図上における自己位置を同定することが可能になる。【０００３】
特開２０１６−２２４６８０号公報は、第１自己位置推定部と第２自己位置推定部とを備え、ステップごとに推定処理を実行する自己位置推定装置を開示している。第１自己位置推定部は、センサデータおよび環境地図から移動体の最新位置の確率分布を求め、この確率分布に基づいて第１自己位置を推定する。第２自己位置推定部は、オドメトリによって取得される、前回のステップから現在のステップまでの移動距離および移動方向を、前回のステップで推定された最終自己位置に加算して第２自己位置を推定する。この自己位置推定装置では、第１自己位置および第２自己位置の重みづけ平均値が現在のステップにおける最終自己位置とされる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−２２４６８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特開２０１６−２２４６８０号公報の装置によれば、第２自己位置は、前回のステップから現在のステップまでの固定された時間における移動体の移動（１ステップ分の移動）に基づいて算出される。また、１ステップ分の移動は、前回のステップから現在のステップまでの固定された時間においてオドメトリによって測定される。【０００６】
上記の装置では、第１自己位置推定部による第１自己位置の推定に失敗したとき、または、推定の信頼度が低いとき、移動体の移動速度が高いと正確度の高い推定が実現しないという課題がある。【０００７】
本開示の実施形態は、移動速度によらず、正確度の高い位置推定を実現し得る移動体、および当該移動体に用いられる自己位置推定装置を提供する。
【課題を解決するための手段】
【０００８】
本開示の移動体は、例示的な実施形態において、モータと、前記モータを制御して前記移動体を移動させる駆動装置と、周囲の空間をセンシングしてセンサデータを周期的に出力する外界センサと、地図データを記憶する記憶装置と、前記センサデータおよび前記地図データを利用して前記移動体の位置を推定する処理を行い、前記位置の推定値を順次出力する測位装置と、演算回路とを備える。前記演算回路は、前記測位装置が第１時刻における前記移動体の位置の推定値を出力した後、第２時刻における前記移動体の位置を推定する処理を開始するとき、前記第１時刻から前記第２時刻までの間に前記移動体が移動する距離および方向に基づいて、前記第１時刻における前記位置の推定値を補正し、補正後の推定値を前記第２時刻における前記移動体の位置の初期位置として前記測位装置に与える。【０００９】
本開示の自己位置推定装置は、例示的に実施形態において、周囲の空間をセンシングしてセンサデータを周期的に出力する外界センサを備える移動体に搭載されて使用される自己位置推定装置であって、地図データを記憶する記憶装置と、前記センサデータおよび前記地図データを利用して前記移動体の位置を推定する処理を行い、前記位置の推定値を順次出力する測位装置と演算回路とを備える。前記演算回路は、前記測位装置が第１時刻における前記移動体の位置の推定値を出力した後、第２時刻における前記移動体の位置を推定する処理を開始するとき、前記第１時刻から前記第２時刻までの間に前記移動体が移動する距離および方向に基づいて、前記第１時刻における前記位置の推定値を補正し、補正後の推定値を前記第２時刻における前記移動体の位置の初期位置として前記測位装置に与える。
【発明の効果】
【００１０】
本発明の移動体の実施形態によれば、測位装置による移動体の位置推定に必要な初期位置を決定するとき、測位装置の処理時間に応じて移動体の移動距離および方向を算出することができる。このため、逐次処理の１ステップの期間に限定されず、より正確度の高い初期位置を測位装置に与えることが可能になる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本開示による移動体の基本構成例を示すブロツク図である。
【図２】図２は、従来例について、外界センサ１０６からセンサデータが周期的に出力されるタイミング、および、測位装置１１０から位置推定値が出力されるタイミングの例を示す図である。
【図３】図３は、本開示による移動体について、外界センサ１０６からセンサデータが周期的に出力されるタイミング、および、測位装置１１０から位置推定値が出力されるタイミングの例を示す図である。
【図４】図４は、工場内の通路１を走行する例示的なＡＧＶ１０を示す図である。
【図５】図５は、ＡＧＶ１０の走行を管理する例示的な管理システム１０００の概要を示す図である。
【図６】図６は、ＡＧＶ１０の走行経路に設定される各目的位置（▲）の例を示す図である。
【図７Ａ】図７Ａは、継続的に移動するＡＧＶ１０の移動経路の例を示す図である。
【図７Ｂ】図７Ｂは、継続的に移動するＡＧＶ１０の移動経路の例を示す図である。
【図７Ｃ】図７Ｃは、継続的に移動するＡＧＶ１０の移動経路の例を示す図である。
【図８】図８は、例示的なＡＧＶ１０の外観図である。
【図９】図９は、ＡＧＶ１０のハードウェアの構成を示す図である。
【図１０】図１０は、移動しながらＬＲＦ１５を用いて周囲の空間をスキャンするＡＧＶ１０を示す図である。
【図１１】図１１は、移動しながらマップを生成するＡＧＶ１０を示す図である。
【図１２】図１２は、移動しながらマップを生成するＡＧＶ１０を示す図である。
【図１３】図１３は、移動しながらマップを生成するＡＧＶ１０を示す図である。
【図１４】図１４は、移動しながらマップを生成するＡＧＶ１０を示す図である。
【図１５】図１５は、完成したマップ３０を模式的に示す図である。
【図１６】図１６は、一般的な位置同定処理の手順を模式的に示す図である。
【図１７】図１７は、一般的な位置同定処理の手順を模式的に示す図である。
【図１８】図１８は、一般的な位置同定処理の手順を模式的に示す図である。
【図１９】図１９は、自己位置を見失った後の位置同定処理の例を示すフローチャートである。
【図２０】図２０は、走行管理装置２０のハードウェア構成を示す図である。
【発明を実施するための形態】
【００１２】
本開示による移動体の具体的な実施形態を説明する前に、本開示による移動体の基本構成例を説明する。
【００１３】
図１は、本開示による移動体の基本構成例を示している。この例における移動体１００は、電気モータ（以下、単に「モータ」と称する。）１０２と、モータ１０２を制御して移動体１００を移動させる駆動装置１０４と、周囲の空間をセンシングしてセンサデータを周期的に出力する外界センサ１０６とを備えている。移動体１０の典型例は、モータ１０２に対して機械的に結合した少なくとも１個の駆動輪（不図示）を有し、駆動輪のトラクションによって地上を走行することができる移動体である。
【００１４】
移動体１００は、さらに自己位置推定装置２００を備えている。自己位置推定装置２００は、周囲環境の地図データ（マップデータ）を記憶する記憶装置１０８と、センサデータおよび地図データを利用して移動体１００の位置を推定する測位装置１１０と、種々の演算を実行する演算回路１２０とを有している。測位装置１１０は、移動体１００が移動しているとき、または停止しているとき、移動体１００の位置（自己位置）の推定値を順次出力する。演算回路１２０は、測位装置１１０に必要な位置情報を算出して測位装置１１０に与える。
【００１５】
以下、自己位置推定装置２００の動作を詳細に説明する。
【００１６】
まず、図２を参照して、自己位置推定装置２００における従来の動作例を説明する。図２は、外界センサ１０６からセンサデータが周期的に出力されるタイミング、および、測位装置１１０から位置推定値が出力されるタイミングの例を示す図である。図２の黒丸は、センサデータの出力タイミングを示している。センサデータは、外界センサ１０６から周期Ｔｓで出力される。一方、測位装置１１０からは、周期Ｔｐで位置推定値が出力される。
【００１７】
図２の例において、時刻ｔ１、ｔ２、ｔ３では、それぞれ、位置推定値ｘ１、ｘ２、ｘ３が正常に出力された。しかし、時刻ｔ４では、位置推定値として「不定」を示す情報、または、非常に信頼度の低い位置推定値が出力された。このような場合、測位装置１１０は、次の位置推定に必要な現在の位置情報を失い、周期Ｔｐで継続して位置推定値を出力することができなくなる。このため、移動体１００の現在の位置として、時刻ｔ３に出力された信頼度の高い位置推定値ｘ３を測位装置１１０に与えることが必要になる。測位装置１１０は、たとえばＩＣＰ（Iterative Closest Point）マッチングアルゴリズムによって自己位置推定を行う。測位装置１１０は、モンテカルロ法によるパーティクルフィルタを用いた確率的な位置推定を行ってもよい。測位装置１１０は、初期位置として位置推定値ｘ３を取得すると、位置同定処理を開始する。
【００１８】
移動体１００の走行速度（移動速度）が高くなると、周期Ｔｐの時間が経過する間に移動体１００の移動する距離が長くなる。たとえば、移動体１００の移動速度が５メートル／秒、周期Ｔｐが１００ミリ秒の場合、時刻ｔ４の時点で時刻ｔ３の位置推定値ｘ３から０．５メートルもシフトする。また、時刻ｔ４から周期Ｔｐだけ時間が経過した時刻ｔ５では、移動体１００は時刻ｔ３の位置推定値ｘ３から１メートルもシフトしてしまう。移動体１００の走行を停止しないかぎり、移動体１００の位置は時刻ｔ３の位置推定値ｘ３からさらに遠ざかっていく。
【００１９】
一方、外界センサ１０６からは、周期Ｔｐよりも短い周期Ｔｓでセンサデータが継続して出力される。移動体１００の現在の位置を推定するためには、最新のセンサデータを用いて位置同定処理を行うべきである。しかし、この位置同定処理に必要な移動体１００の初期位置が現実の位置から大きくずれていると、位置同定処理に長時間を要し、あるいは、位置同定が実現しないという問題がある。
【００２０】
特開２０１６−２２４６８０号公報に開示されている装置は、逐次処理の各ステップにおける移動体１００の移動距離および方向をオドメトリによって取得している。１ステップの期間は、周期Ｔｐに相当する。したがって、この装置によれば、時刻ｔ４で自己位置を見失ったときは、時刻ｔ３から時刻ｔ４までの移動距離および方向を、時刻ｔ３の位置推定値ｘ３に加算した値（第２自己位置）を初期位置として用いることになる。なお、特許文献１に開示されている装置では、パーティクルフィルタを用いて確率的な自己位置推定が実行されている。しかし、本開示による移動体および自己位置推定装置では、自己位置推定のアルゴリズムは、確率的である必要はなく、パターンマッチングによるアルゴリズムであってもよい。
【００２１】
このような従来例には、以下の課題がある。
【００２２】
センサデータを取得してから地図データと照合するには、１回または複数回のスキャンによって取得したセンサデータから局所的地図データを作成する必要がある。このため、自己位置を見失った時刻ｔ４における位置をオドメトリによって算出したとしても、照合に用いられるセンサデータの取得を実際に完了する時刻ｔ６までに移動体１００はさらに移動することになる。このため、より正確度の高い初期位置を与えないと、次の位置同定にも失敗する可能性がある。このことは、自己位置を見失った後も、停止または減速することなく高速で走行することが求められるような移動体では、特に問題になる。
【００２３】
本開示による移動体では、上記の課題を解決するため、図１の演算回路１２０が以下の処理を実行する。図３を参照して、この処理を説明する。
【００２４】
図３に示されるように、時刻ｔ３（第１時刻）における移動体１００の位置の推定値ｘ３を測位装置１１０が出力した後、時刻ｔ４で自己位置を見失った（位置推定値「不定」）とする。この場合において、演算回路１２０は、時刻ｔ６（第２時刻）における移動体１００の位置を推定する位置同定処理を開始する。このとき、演算回路１２０は、時刻ｔ３（第１時刻）から時刻ｔ６（第２時刻）までの間に移動体１００が移動する距離および方向に基づいて、時刻ｔ３（第１時刻）における位置の推定値ｘ３を補正する。演算回路１２０は、補正後の推定値（ｘ３＋Δｘ）を、時刻ｔ６（第２時刻）における移動体１００の位置の初期位置として測位装置１１０に与える。
【００２５】
図３の例において、補正後の推定値（ｘ３＋Δｘ）が測位装置１１０に与えられるタイミングは時刻ｔ５である。時刻ｔ５から時刻ｔ６までの時間は、極端な場合、零であってもよい。時刻ｔ５＝時刻ｔ６のとき、補正量Δｘは、時刻ｔ３から時刻ｔ５までの間に、たとえばオドメトリによって取得された移動距離および方向である。しかし、時刻ｔ５から時刻ｔ６までの期間（ｔ６−ｔ５）が無視できない場合は、その期間（ｔ６−ｔ５）における移動体の移動距離および方向を計算によって求め、補正量Δｘに含めてもよい。次々に取得されるセンサデータを用いて局所位置データを作成する処理に時間を要する場合、時刻ｔ３から時刻ｔ６までの期間は非常に長くなり得る。このような場合、上記の処理時間に応じて時刻ｔ６における移動体１００の位置を初期位置として決定することが好ましい。
【００２６】
以上の説明から明らかなように、補正後の推定値（ｘ３＋Δｘ）は、時刻ｔ６（第２時刻）における移動体１００の「予測位置」と呼んでも良い。このように本開示によれば、自己位置を見失った後に開始する自己位置同定処理の初期位置として、センサデータ取得後の処理に必要な時間を考慮し、移動体１００の移動速度および方向に基づく予想位置を算出する。このため、初期位置の正確度が向上し、自己位置同定処理が適切に開始できる。その結果、移動体の減速または停止を行うことなく、スムーズな走行を継続し得る。
【００２７】
ある態様において、測位装置１１０は、移動体１００の位置の推定値を出力するとき、推定の信頼度を示す情報を出力してもよい。この態様において、演算回路１２０は、第１時刻から第２時刻までの間において、測位装置１１０から出力された移動体の位置の推定値についての信頼度が設定値未満になったとき、補正後の推定値を第２時刻における移動体の位置の初期位置として測位装置１１０に与える。推定の信頼度は、パターンマッチングによる一致度の評価値、または確率的な指標であり得る。信頼度が予め設定された値よりも低いとき、自己位置を見失ったとすることができる。
【００２８】
他の態様において、演算回路１２０は、第１時刻から第２時刻までの間において、測位装置１１０からの要求に応答して、補正後の推定値を第２時刻における移動体１００の位置の初期位置として測位装置１１０に与える。この態様によれば、たとえば、「不定」または信頼度の低い位置推定値が測位装置１１０から出力される前に、測位装置１１０が演算回路１２０に「補正後の推定値」を算出するように指示することも可能になる。演算回路１２０による「補正後の推定値」の算出開始を早めることができれば、第１時刻から第２時刻までの間隔を短くできるため、自己位置を見失っている期間を短縮することが可能になる。
【００２９】
測位装置１１０は、演算回路１２０から与えられた第２時刻における移動体１００の位置の初期位置と、第２時刻および第２時刻以前に外界センサ１０６から出力されたセンサデータとを利用して、第２時刻における移動体１００の位置を推定する。測位装置１１０は、第２時刻における移動体１００の位置の推定値を第３時刻に出力する。第２時刻における移動体１００の位置推定値が出力されることにより、演算回路１２０は、この位置推定値に基づいて移動体１００の走行を制御することが可能になる。
【００３０】
ある実施形態において、演算回路１２０は、駆動装置１０４の動作状態に応じて、第１時刻から第２時刻までの間に移動体１００が移動する距離および方向を決定する。このような距離および方向は、モータ１０２を制御する駆動装置１０４の動作状態から把握することが可能である。たとえばトラクションを生成するモータ１０２の個数が２個の場合、個々のモータ１０２の回転速度から移動体１００の移動速度および移動方向を決定することができる。モータ１０２の回転速度は駆動装置１０４の動作状態によって規定されるため、モータ１０２の回転状態を直接に検出するセンサが無くても、駆動装置の動作状態に基づいて移動体１００の移動速度などを決定することができる。また、駆動装置１０４の動作状態は、演算回路１２０が駆動装置１０４に与える指令の中身から知ることができる。
【００３１】
他の実施形態において、移動体１００は、オドメトリ情報を出力する内界センサをさらに備えている。内界センサの例は、モータまたは車輪の回転速度を測定するロータエンコーダ、ジャイロセンサなどの慣性計測ユニットを含む。車輪の回転速度は、駆動装置の動作状態から推定することも可能である。このような実施形態における演算回路１２０は、内界センサから出力されたオドメトリ情報を利用して、第１時刻から第２時刻までの間に前記移動体が移動する距離および方向を決定し得る。
【００３２】
地図データは、移動体１００が移動しているときに外界センサ１０６から周期的に出力されたセンサデータに基づいて作成されたデータであってもよいし、他の方法によって作成された地図データであってもよい。地図データは、複数のゾーンのそれぞれの地図データが統合されたデータであってもよい。地図データの典型例は、占有格子地図であるが、これに限定されない。
【００３３】
駆動装置１０４は、移動体１００の位置の指令値と測位装置１１０から出力された移動体１００の位置の推定値とに基づいてモータ１０２を制御する。この指令値は、図１に示されてないコントローラから駆動装置１０４に与えられてもよい。
【００３４】
［実施形態］
以下、添付の図面を参照しながら、本開示による移動体の実施形態を説明する。本明細書では、移動体の一例として無人搬送車を挙げる。無人搬送車はＡＧＶ（Ａｕｔｏｍａｔｅｄ  Ｇｕｉｄｅｄ  Ｖｅｈｉｃｌｅ）とも呼ばれており、本明細書でも「ＡＧＶ」と記述する。
【００３５】
図４は、たとえば工場内の通路１を走行するＡＧＶ１０を示す。図５は、本例による、ＡＧＶ１０の走行を管理する管理システム１０００の概要を示す。図示される例では、ＡＧＶ１０は地図データ（マップデータ）を有し、自身が現在どの位置を走行しているかを認識しながら走行する。ＡＧＶ１０の走行経路は、図５の走行管理装置２０からの指令に従う。ＡＧＶ１０は、指令に従って、内蔵された複数のモータをそれぞれ駆動し、車輪を回転させることによって移動する。指令は無線により、走行管理装置２０からＡＧＶ１０に送られる。ＡＧＶ１０と走行管理装置２０との通信は、たとえば工場の天井付近に設けられた無線アクセスポイント２ａ、２ｂ等を利用して行われ得る。通信は、たとえばＷｉ−Ｆｉ（登録商標）規格に準拠する。なお、図４には１台のＡＧＶ１０のみが示されているが、複数台のＡＧＶ１０が走行してもよい。当該複数台のＡＧＶ１０の各々の走行は、走行管理装置２０によって管理されていてもよいし、されていなくてもよい。
【００３６】
管理システム１０００に含まれるＡＧＶ１０および走行管理装置２０の動作の概要は以下のとおりである。
【００３７】
ＡＧＶ１０は、走行管理装置２０からの指令（第ｎ指令（（ｎ：正の整数）））に従って、第ｎ位置から、目的位置である第（ｎ＋１）位置（以下「位置Ｍn+1」などと記述する。）に向かって移動中であるとする。なお、目的位置は、たとえばＡＧＶ１０ごとに管理者によって決定され得る。
【００３８】
ＡＧＶ１０が目的とする位置Ｍn+1に到達すると、ＡＧＶ１０は走行管理装置２０に宛てて到達通知（以下「通知」と記述する。）を送信する。通知は無線アクセスポイント２ａを介して走行管理装置２０に送られる。本実施形態では、ＡＧＶ１０は、周囲をセンシングする外界センサの出力と、地図データとを照合して自己位置を同定する。そして自己位置が当該位置Ｍn+1に一致するか否かを判定すればよい。
【００３９】
通知を受信すると、走行管理装置２０は、ＡＧＶ１０を位置Ｍn+1から位置Ｍn+2まで移動させるための次の指令（第（ｎ＋１）指令）を生成する。第（ｎ＋１）指令は、位置Ｍn+2の位置座標を含み、さらに加速時間、定速走行時の移動速度等の数値を含み得る。走行管理装置２０は、ＡＧＶ１０に宛てて当該第（ｎ＋１）指令を送信する。
【００４０】
第（ｎ＋１）指令を受信すると、ＡＧＶ１０は、第（ｎ＋１）指令を解析して、位置Ｍn+1から位置Ｍn+2までの移動に必要な前処理演算を行う。前処理演算は、たとえば、ＡＧＶ１０の各車輪を駆動するための各モータの回転速度、回転時間等を決定するための演算である。
【００４１】
図６は、ＡＧＶ１０の走行経路に設定される各目的位置（▲）の例を示す。隣り合う２つの目的位置の間隔は固定値でなくてもよく、管理者によって決定され得る。
【００４２】
ＡＧＶ１０は、走行管理装置２０からの指令に応じて種々の方向に移動することが可能である。図７Ａ〜図７Ｃは、連続的に移動するＡＧＶ１０の移動経路の例を示す。
【００４３】
図７Ａは、直進時のＡＧＶ１０の移動経路を示す。ＡＧＶ１０は、位置Ｍn+1への到達後、前処理演算を行い、演算結果に従って各モータを動作させて、次の位置Ｍn+2に直線的に移動を継続することができる。
【００４４】
図７Ｂは、位置Ｍn+1において左折し、位置Ｍn+2に向けて移動するＡＧＶ１０の移動経路を示す。ＡＧＶ１０は、位置Ｍn+1への到達後、前処理演算を行い、演算結果に従って、進行方向右側に位置する少なくとも１台のモータを回転させる。そしてその場で角度θだけ半時計回りに回転すると、ＡＧＶ１０は位置Ｍn+2に向けて全てのモータを等速で回転させ、直進する。
【００４５】
図７Ｃは、位置Ｍn+1から位置Ｍn+2まで円弧状に移動するときのＡＧＶ１０の移動経路を示す。ＡＧＶ１０は、位置Ｍn+1への到達後、前処理演算を行い、演算結果に従って内周側のモータよりも外周側のモータの回転速度を速める。これにより、ＡＧＶ１０は次の位置Ｍn+2に向けて円弧状の経路で移動を継続することができる。
【００４６】
図８は、本実施形態にかかる例示的なＡＧＶ１０の外観図である。また図９は、ＡＧＶ１０のハードウェアの構成を示す。
【００４７】
ＡＧＶ１０は、４つの車輪１１ａ〜１１ｄと、フレーム１２と、搬送テーブル１３と、走行制御装置１４と、レーザレンジファインダ（ＬＲＦ）１５とを有する。なお、図８には、前輪１１ａ、後輪１１ｂおよび後輪１１ｃは示されているが、前輪１１ｄはフレーム１２の蔭に隠れているため明示されていない。
【００４８】
走行制御装置１４は、ＡＧＶ１０の動作を制御する装置であり、自己位置推定装置としても機能する。走行制御装置１４は、主としてマイコン（後述）を含む複数の集積回路、複数の電子部品および、当該複数の集積回路および当該複数の電子部品が搭載された基板を含む。走行制御装置１４は、上述した、走行管理装置２０とのデータの送受信、および、前処理演算を行う。
【００４９】
ＬＲＦ１５は、たとえば赤外のレーザビーム１５ａを目標物に照射し、レーザビーム１５ａの反射光を検出することにより、目標物までの距離を測定する測域センサである。ＬＲＦ１５は、図１の外界センサ１０６に相当する。周囲の空間をセンシングしてセンサデータを取得するための外界センサの他の例は、イメージセンサおよび超音波センサを含む。本実施形態では、ＡＧＶ１０のＬＲＦ１５は、たとえばＡＧＶ１０の正面を基準として左右１３５度（合計２７０度）の範囲の空間に、０．２５度ごとに方向を変化させながらパルス状のレーザビーム１５ａを放射し、各レーザビーム１５ａの反射光を検出する。これにより、角度２７０度の範囲を０．２５度ごとに分割した合計約１０８０の異なる方向のそれぞれについて、ＡＧＶ１０から反射点までの距離のデータを得ることができる。２７０度および０．２５度の数値は、例示であり、スキャンの態様はＬＲＦ１５の種類に応じて異なる。ＬＲＦ１５による１回のスキャンに要する時間は、たとえば数ミリから数十ミリ秒である。ＬＲＦ１５は、周囲の空間をセンシングしながら周期的（たとえば数十ミリ秒毎）にセンサデータを出力する。
【００５０】
ＡＧＶ１０の位置および姿勢と、ＬＲＦ１５のスキャン結果とにより、ＡＧＶ１０の周囲における物体の配置状態を知ることができる。一般に、移動体の位置および姿勢は、ポーズ（ｐｏｓｅ）と呼ばれる。２次元面内における移動体の位置および姿勢は、それぞれ、ＸＹ直交座標系における位置座標（ｘ, ｙ）、およびＸ軸に対する角度θによって表現される。ＡＧＶ１０の位置および姿勢、すなわちポーズ（ｘ, ｙ, θ）を、以下、単に「位置」または「位置座標」と呼ぶことがある。
【００５１】
後述する測位装置は、ＬＲＦ１５のスキャン結果から作成された局所的地図データを、より広範囲の環境地図データと照合（マッチング）することにより、環境地図上における自己位置（ｘ, ｙ, θ）を同定することが可能になる。
【００５２】
なお、レーザビーム１５ａの放射の中心位置から見た反射点の位置は、角度および距離によって決定される極座標を用いて表現され得る。この極座標は、ＡＧＶ１０とともに移動する局所的な座標である。本実施形態では、ＬＲＦ１５は極座標で表現されたセンサデータを出力する。ただし、ＬＲＦ１５は、極座標で表現された位置を直交座標に変換して出力してもよい。
【００５３】
ＬＲＦの構造および動作原理は公知であるため、本明細書ではこれ以上の詳細な説明は省略する。なお、ＬＲＦ１５によって検出され得る物体の例は、人、荷物、棚、壁である。
【００５４】
本明細書では、センサから出力されたデータを「センサデータ」と呼ぶ。ＬＲＦ１５から出力された「センサデータ」は、角度θと距離Ｌとを一組とした複数組のベクトルデータである。角度θは、前述したように、たとえば−１３５度から＋１３５度の範囲で０．２５度ずつ変化する。角度は、ＡＧＶ１０の正面を基準として右側を正、左側を負として表現され得る。距離Ｌは、角度θごとに計測された物体までの距離である。距離Ｌは、レーザビーム１５ａの放射時刻と反射光の受信時刻との差（つまりレーザビームの往復の所要時間）の半分を、光速で除算して得られる。
【００５５】
図９を参照する。図９には、ＡＧＶ１０の走行制御装置１４の具体的な構成も示されている。
【００５６】
この例におけるＡＧＶ１０は、走行制御装置１４と、ＬＲＦ１５と、４台のモータ１６ａ〜１６ｄと、駆動装置１７とを備えている。
【００５７】
走行制御装置１４は、マイコン１４ａと、メモリ１４ｂと、記憶装置１４ｃと、通信回路１４ｄと、測位装置１４ｅとを有している。マイコン１４ａ、メモリ１４ｂ、記憶装置１４ｃ、通信回路１４ｄおよび測位装置１４ｅは通信バス１４ｆで接続されており、相互にデータを授受することが可能である。またＬＲＦ１５もまた通信インタフェース（図示せず）を介して通信バス１４ｆに接続されており、測定結果である測定データを、マイコン１４ａ、測位装置１４ｅおよび／またはメモリ１４ｂに送信する。
【００５８】
マイコン１４ａは、走行制御装置１４を含むＡＧＶ１０の全体を制御するための演算を行う制御回路（コンピュータ）である。マイコン１４ａは、図１の演算回路１２０として動作することができる。典型的にはマイコン１４ａは半導体集積回路である。マイコン１４ａは、ＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）信号を駆動装置１７に送信して駆動装置１７を制御し、モータに流れる電流を調整させる。これによりモータ１６ａ〜１６ｄの各々が所望の回転速度で回転する。
【００５９】
メモリ１４ｂは、マイコン１４ａが実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ１４ｂは、マイコン１４ａおよび測位装置１４ｅが演算を行う際のワークメモリとしても利用され得る。
【００６０】
記憶装置１４ｃは、地図データを記憶する不揮発性の半導体メモリ装置である。ただし、記憶装置１４ｃは、ハードディスクに代表される磁気記録媒体、または、光ディスクに代表される光学式記録媒体であってもよく、さらにいずれかの記録媒体にデータを書き込みおよび／または読み出すためのヘッド装置および当該ヘッド装置の制御装置を含んでもよい。地図データの詳細は図５０を参照しながら後述する。記憶装置１４ｃは、図１の記憶装置１０８に相当する。
【００６１】
通信回路１４ｄは、たとえばＷｉ−Ｆｉ（登録商標）規格に準拠した無線通信を行う無線通信回路である。
【００６２】
測位装置１４ｅは、ＬＲＦ１５からセンサデータを受け取り、また、記憶装置１４ｃに記憶された地図データを読み出す。測位装置１４ｅがＬＲＦ１５からセンサデータを受け取るタイミングは、ＬＲＦ１５がセンサデータを出力するタイミングと一致している必要はない。たとえばＬＲＦ１５がセンサデータを２５ミリ秒ごとに出力し、測位装置１４ｅは、１００ミリ秒ごとにセンサデータを受け取っても良い。測位装置１４ｅは、センサデータと地図データとを照合して自己位置を同定する処理を行う。測位装置１４ｅの具体的な動作は後述する。
【００６３】
なお、本実施形態では、マイコン１４ａと測位装置１４ｅとは別個の構成要素であるとしているが、これは一例である。マイコン１４ａおよび測位装置１４ｅの各動作を独立して行うことが可能な１つのチップ回路または半導体集積回路であってもよい。図９には、マイコン１４ａおよび測位装置１４ｅを包括するチップ回路１４ｇが示されている。本明細書では、マイコン１４ａ、測位装置１４ｅおよび／またはチップ回路１４ｇは、コンピュータ、演算回路、または、処理回路と呼ぶことがある。なお、以下では、マイコン１４ａおよび測位装置１４ｅが別個独立に設けられている例で説明する。
【００６４】
４台のモータ１６ａ〜１６ｄは、それぞれ４つの車輪１１ａ〜１１ｄに取り付けられ、各車輪を回転させる。１台のＡＧＶ１０に搭載されるモータの個数は４個に限定されない。また、トラクションのためのモータは４つの車輪１１ａ〜１１ｄの全てに取り付けられる必要はなく、典型的には、２個の車輪に取り付けられる。ＡＧＶ１０には、操舵のための車輪およびモータが設けられていてもよいし、他の用途のモータが搭載されていてもよい。
【００６５】
駆動装置１７は、４台のモータ１６ａ〜１６ｄの各々に流れる電流を調整するためのモータ駆動回路１７ａ〜１７ｄを有する。駆動装置１７は、図１の駆動装置１０４に相当する。モータ駆動回路１７ａ〜１７ｄの各々はいわゆるインバータ回路であり、マイコン１４ａから送信されたＰＷＭ信号によって各モータに流れる電流をオンまたはオフし、それによりモータに流れる電流を調整する。
【００６６】
次に、本開示によるＡＧＶ１０がマップを生成する処理の一例を説明する。
【００６７】
本実施形態における地図データは、ＳＬＡＭ（Simultaneous Localization and Mapping）技術によって作成され得る。ＡＧＶ１０は、たとえば、ＡＧＶ１０が使用される工場内を実際に走行しながらＬＲＦ１５を動作させて周囲の空間をスキャンし、自己の位置を推定しながらマップを生成する。またはＡＧＶ１０は、管理者に制御されながら特定の経路を走行し、ＬＲＦ１５によって取得したセンサデータからマップを生成してもよい。地図データの作成は、ＡＧＶ１０の移動中に「オンライン処理」で行ってもよいし、ＡＧＶ１０の移動中に取得した大量のセンサデータを用いて、ＡＧＶ１０の外部に位置するコンピュータによって「オフライン処理」で行ってもよい。
【００６８】
図１０から図１４はそれぞれ、移動しながらマップを生成するＡＧＶ１０を示す。図１０には、ＬＲＦ１５を用いて周囲の空間をスキャンするＡＧＶ１０が示されている。所定の角度ごとにレーザビームが放射され、スキャンが行われる。
【００６９】
図１０から図１４の各々では、レーザビームの反射点の位置が、図１０の点４のような、記号「・」で表される複数の点を用いて示されている。これらの複数の点は、点群データ（Point Cloud Data）を形成している。測位装置１４ｅは、走行に伴って得られる黒点４の位置を、たとえばメモリ１４ｂに蓄積する。ＡＧＶ１０が走行しながらスキャンを継続して行うことにより、マップが徐々に完成されてゆく。図１１から図１４では、簡略化のためスキャン範囲のみが示されている。当該スキャン範囲も例示であり、上述した合計２７０度の例とは異なる。
【００７０】
図１５は、完成したマップ３０の一部を模式的に示す。測位装置１４ｅは、マップ３０のデータをメモリ１４ｂまたは記憶装置１４ｃに蓄積する。なお図示されている黒点の数または密度は一例である。
【００７１】
図１６から図１８は、一般的な位置同定処理の手順を模式的に示す。ＡＧＶは、ＳＬＡＭ技術によって取得した、図１６のマップ３０に相当するマップ（以下、「参照マップ３０」と称する。）を事前に取得している。ＡＧＶは走行時に、所定の時間間隔で、図１６に示すセンサデータ３２を取得し、参照マップ３０上における自己位置を同定する処理を実行する。
【００７２】
まず、ＡＧＶは、参照マップ３０上でＡＧＶの位置および角度を変化させた種々の局所地図（たとえば局所地図３４ａ、３４ｂ、３４ｃ）を順次設定し、その各々に含まれる複数の反射点とセンサデータ３２に含まれる反射点とを照合する。このような照合は、たとえば、前述したＩＣＰマッチングによって行うことができる。照合を効率的に実行するためには、参照マップ３０上におけるＡＧＶの位置および角度、すなわちポーズを適切に設定する必要がある。本実施形態では、図３を参照しながら説明した方法で図９のマイコン１４ａが初期位置を設定し、測位装置１４ｅに与える。
【００７３】
図１７は、照合の結果、一致したと判定された点（たとえば点５）を記号「■」で模式的に示す。たとえば、対応する特徴間の距離（誤差）の二乗平均が最小になる局所地図３４ｄが選択されると、その局所地図３４ｄに対応するＡＧＶの位置および角度から、照合によって推定されたＡＧＶの位置および位置が決まる。図１８では、同定された自己位置３６が、記号「Ｘ」で表されている。
【００７４】
図１６に示されるような照合を行うには、最新のセンサデータと、そのセンサデータを取得したときのＡＧＶの位置、正確にはポーズが必要である。ＡＧＶが自己位置を見失わない場合、前回の推定位置（同定位置）に初期位置として現在の自己位置を高い精度で推定することが可能である。そのような推定値の更新は、たとえば１００ミリ秒周期で実現し得る。しかし、図２を参照して説明したように、ＡＧＶが自己位置を見失った場合、照合開始に必要なＡＧＶの位置（初期位置）が現実のＡＧＶの位置から大きくシフトしていると、照合に長い時間がかかる。このため、ＡＧＶは照合のために停止または減速する必要が発生する。本開示の実施形態によれば、図３を参照しながら説明したように、自己位置を見失った場合、ＡＧＶの移動距離および方向ならびに処理時間に応じて初期位置を適切に予想する。このため、適切な初期位置に基づいて、効率的な照合処理が実現する。
【００７５】
図１９は、自己位置を見失った後の位置同定処理の例を示すフローチャートである。図９および図１９を参照しながら、位置同定処理の例を説明する。
【００７６】
まず、図９のマイコン１４ａは、自己位置を見失った後、図１９のステップＳ１０において、オドメトリ情報を取得する。「自己位置を見失った後」とは、図３における時刻ｔ４以降を意味する。オドメトリ情報は、不図示のロータリエンコーダなどから取得され得る。
【００７７】
次に、ステップＳ２０において、マイコン１４ａは前回の同定位置を補正し、照合に必要な初期位置を算出する。具体的には、オドメトリ情報に基づいて、マイコン１４ａはＡＧＶの移動速度を算出する。また、マイコン１４ａは、最新のセンサデータを取得する時刻（図３の時刻ｔ６）までの時間を決定し、この時間および移動速度に基づいて、ＡＧＶの移動距離を算出する。さらに、マイコン１４ａは、この移動距離およびＡＧＶの移動方向から、最新のセンサデータを取得する時刻（図３の時刻ｔ６）におけるＡＧＶの位置を予測する。
【００７８】
ステップＳ３０において、マイコン１４ａは、予測した位置を照合のための初期位置として測位装置１４ｅに与える。
【００７９】
ステップＳ４０において、測位装置１４ｅはＬＲＦ１５から最新のセンサデータを取得する。
【００８０】
ステップＳ５０において、測位装置１４ｅは、上記の初期位置と最新のセンサデータとを用いて位置同定のための照合を開始する。測位装置１４ｅは、照合が完了し、自己位置を同定した後、その自己位置を位置推定値として出力する。
【００８１】
図２０は、走行管理装置２０のハードウェア構成を示す。走行管理装置２０は、ＣＰＵ２１と、メモリ２２と、記憶装置２３と、通信回路２４と、画像処理回路２５とを有する。ＣＰＵ２１、メモリ２２、記憶装置２３、通信回路２４、および画像処理回路２５は通信バス２７で接続されており、相互にデータを授受することが可能である。
【００８２】
ＣＰＵ２１は、走行管理装置２０の動作を制御する信号処理回路（コンピュータ）である。典型的にはＣＰＵ２１は半導体集積回路である。
【００８３】
メモリ２２は、ＣＰＵ２１が実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ２２は、ＣＰＵ２１が演算を行う際のワークメモリとしても利用され得る。
【００８４】
記憶装置２３は、ＡＧＶ１０が作成した地図データを格納している。記憶装置２３は、不揮発性の半導体メモリであってもよいし、ハードディスクに代表される磁気記録媒体、光ディスクに代表される光学式記録媒体であってもよい。
【００８５】
記憶装置２３には、走行管理装置２０として機能するために必要な、ＡＧＶ１０の行き先となり得る各位置を示す位置データも格納され得る。位置データは、たとえば管理者によって工場内に仮想的に設定された座標によって表され得る。位置データは管理者によって決定される。
【００８６】
通信回路２４は、たとえばイーサネット（登録商標）規格に準拠した有線通信を行う。通信回路２４は無線アクセスポイント２ａ、２ｂ等と有線で接続されており、無線アクセスポイント２ａ、２ｂ等を介して、ＡＧＶ１０と通信することができる。
【００８７】
通信回路２４は、ＡＧＶ１０が向かうべき位置のデータおよび指令を、バス２７を介してＣＰＵ２１から受信してＡＧＶ１０に送信する。このデータおよび指令は、図９に示されるＡＧＶ１０の通信回路１４ｄが受信する。通信回路２４は、ＡＧＶ１０の通信回路１４ｄ（図９）から受信したデータ（たとえば通知および位置情報）を、バス２７を介してＣＰＵ２１および／またはメモリ２２に送信する。ＡＧＶ１０は、測位装置１４ｅが出力した自己位置情報（位置および角度）を周期的に走行管理装置２０の通信回路２４に送信する。この周期は、たとえば１００ミリ秒から１秒であり得る。
【００８８】
画像処理回路２５は外部モニタ２９に表示する映像データを生成する回路である。画像処理回路２５は、専ら、管理者が走行管理装置２０を操作する際に動作する。本実施形態では特にこれ以上の詳細な説明は省略する。なお、モニタ２９は走行管理装置２０と一体化されていてもよい。また画像処理回路２５の処理をＣＰＵ２１が行ってもよい。
【産業上の利用可能性】
【００８９】
本開示の技術は、自己位置を同定する処理を行う移動体に広く用いられ得る。
【符号の説明】
【００９０】
２ａ、２ｂ・・・無線アクセスポイント、１０・・・自動搬送車（ＡＧＶ）、１４・・・走行制御装置、１４ａ・・・マイコン、１４ｂ・・・メモリ、１４ｃ・・・記憶装置、１４ｄ・・・通信回路、１４ｅ・・・測位装置、１５・・・ＬＲＦ、１６ａ〜１６ｄ・・・モータ、１７・・・駆動装置、１７ａ〜１７ｄ・・・モータ駆動回路、２０・・・走行管理装置
【図１】
2018179960.tif 000003
【図２】
2018179960.tif 000004
【図３】
2018179960.tif 000005
【図４】
2018179960.tif 000006
【図５】
2018179960.tif 000007
【図６】
2018179960.tif 000008
【図７Ａ】
2018179960.tif 000009
【図７Ｂ】
2018179960.tif 000010
【図７Ｃ】
2018179960.tif 000011
【図８】
2018179960.tif 000012
【図９】
2018179960.tif 000013
【図１０】
2018179960.tif 000014
【図１１】
2018179960.tif 000015
【図１２】
2018179960.tif 000016
【図１３】
2018179960.tif 000017
【図１４】
2018179960.tif 000018
【図１５】
2018179960.tif 000019
【図１６】
2018179960.tif 000020
【図１７】
2018179960.tif 000021
【図１８】
2018179960.tif 000022
【図１９】
2018179960.tif 000023
【図２０】
2018179960.tif 000024
【国際調査報告】
2018179960.tif 000025
2018179960.tif 000026
2018179960.tif 000027