(57)【特許請求の範囲】
【請求項１】
予め設定された移動エリア内を自律移動する自律移動体に用いられ、
前記自律移動体は、駆動装置と、前記移動エリアの地図情報を記憶する記憶装置と、前記移動エリア内における自己の移動量を検出する自己移動量検出装置と、前記移動エリア内における自己の周囲の環境情報を検出する環境情報検出装置とを備え、
前記移動エリア内における前記自律移動体のｘ座標、ｙ座標及び姿勢を認識しつつ、前記駆動装置、前記記憶装置、前記自己移動量検出装置及び前記環境情報検出装置を制御する自律移動体制御装置であって、
前記自己移動量検出装置が検出した前記自律移動体の移動量に基づき、前記自律移動体の第１推定ｘ座標、第１推定ｙ座標及び第１推定姿勢からなる第１仮想値を演算する第１演算部と、
前記環境情報検出装置が検出した前記環境情報に基づき、確率的手法によって前記自律移動体の第２推定ｘ座標、第２推定ｙ座標及び第２推定姿勢からなる複数の第２仮想値を演算する第２演算部と、
各前記第２推定ｘ座標の第１分散状態が第１基準状態を超えているか否かと、各前記第２推定ｙ座標の第２分散状態が第２基準状態を超えているか否かと、各前記第２推定姿勢の第３分散状態が第３基準状態を超えているか否かとを判断する判断部と、
前記第１分散状態が前記第１基準状態を超えず、前記第２分散状態が前記第２基準状態を超えず、かつ前記第３分散状態が前記第３基準状態を超えていなければ、各前記第２仮想値と、各前記第２仮想値に対して前記第１仮想値とのマッチング率を加味したものとを重み付けすることにより、主特定第２仮想値を決定する主決定部と、
前記主特定第２仮想値を前記第１仮想値に置き換えて確定値とする第１出力モードを実行し、前記駆動装置に出力する第１出力モード部と、
前記第１分散状態が前記第１基準状態を超えている場合、又は前記第２分散状態が前記第２基準状態を超えている場合、又は前記第３分散状態が前記第３基準状態を超えている場合には、各前記第２仮想値と、各前記第２仮想値に対して前記第１仮想値とのマッチング率を加味したものとを重み付けするとともに、前記第１分散状態が前記第１基準状態を超えた各前記第２推定ｘ座標、前記第２分散状態が前記第２基準状態を超えた各前記第２推定ｙ座標及び前記第３分散状態が前記第３基準状態を超えた前記第２推定姿勢を除外することにより、副特定第２仮想値を決定する副決定部と、
前記副特定第２仮想値を前記第１仮想値に置き換えて確定値とする第２出力モードを実行し、前記駆動装置に出力する第２出力モード部とを有することを特徴とする自律移動体制御装置。
【請求項２】
前記自律移動体制御装置は、前記確定値に基づき、前記確定値と前記第１仮想値との変位量を演算する第３演算部と、
前記変位量が閾値を超えなければ、前記第１仮想値を確定値とする第３出力モードを実行し、前記駆動装置に出力する第３出力モード部と、
前記変位量が前記閾値を超えれば、前記第１出力モード又は前記第２出力モードを実行させる補正モード部とを有する請求項１記載の自律移動体制御装置。
【請求項３】
前記確率的手法は、ＳＬＡＭアルゴリズムに基づくパーティクルフィルタである請求項１又は２記載の自律移動体制御装置。
【請求項４】
前記自律移動体は、自律走行する産業車両である請求項１乃至３のいずれか１項記載の自律移動体制御装置。
【請求項５】
前記駆動装置は、複数の駆動輪と、操舵装置と、電動モータとを有し、
前記自己移動量検出装置は、各前記駆動輪の回転数、前記操舵装置の舵角及び前記電動モータの回転数の少なくとも１つを測定するエンコーダである請求項１乃至４のいずれか１項記載の自律移動体制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は自律移動体制御装置に関する。
【背景技術】
【０００２】
従来から、移動エリアに磁気テープやレール等を敷設することで特定の移動経路を形成し、この移動経路に沿って移動体を自動で移動させる技術が多々提案されている。これに対し、近年では、移動エリアに特定の移動経路を形成することなく、移動エリア内を自律移動する自律移動体の研究も行われている。このような自律移動体は、例えば特許文献１に開示されている。
【０００３】
特許文献１に開示された自律移動体は、駆動装置と、記憶装置と、自己移動量検出装置と、自律移動体制御装置とを備えている。駆動装置は、複数の車輪やモータ等で構成されている。自己移動量検出装置は、移動エリア内における自律移動体の移動量を検出する。記憶装置は移動エリアの地図情報を記憶している。環境情報検出装置は、移動エリア内における自己の周囲の環境情報を検出する。自律移動体制御装置は、駆動装置、記憶装置、自己移動量検出装置及び環境情報検出装置を制御する。
【０００４】
具体的には、自律移動体制御装置は、環境情報検出装置を作動させて環境情報を検出し、この環境情報から自律移動体の周囲の幾何学的特徴に基づく幾何学形状データを生成する。そして、この幾何学形状データと、記憶装置から読み込んだ地図情報とを照合し、確率的手法によって、地図情報のうちで幾何学形状データと最も重なり合う箇所の座標及び姿勢を求める。自律移動体制御装置は、上記のように求められた座標及び姿勢を移動エリア内における自律移動体の現在の座標及び姿勢として認識するとともに、駆動装置及び自己移動量検出装置を制御して自律移動体を移動エリア内で移動させる。これらの処理を繰り返すことにより、自律移動体制御装置は、移動エリア内における自律移動体の現在の座標及び姿勢を補正しつつ、移動エリア内で自律移動体を自律移動させる。
【０００５】
ところで、移動エリアには、幾何学的特徴が多数存在する環境のみで構成される場合に限らず、幾何学特徴が多数存在する環境と、幾何学形特徴に乏しいに環境とが混在し得る。このような幾何学形特徴に乏しいに環境では、自律移動体制御装置が確率的手法によって自律移動体の現在の座標及び姿勢を求めることは困難である。幾何学形特徴に乏しいに環境では、確率的手法によって複数の座標及び姿勢が演算されてしまうためである。
【０００６】
そこで、上記の自律移動体制御装置では、幾何学特徴が多数存在する環境においては、確率的手法によって移動エリア内における自律移動体の座標及び姿勢を求めて自律移動体を自律移動させる。一方、幾何学特徴が乏しい環境においては、確率的手法による自律移動体の座標及び姿勢の演算を行わず、環境情報から検出した移動エリア内の障害物に接触しないように自律移動体を進行方向に自律移動させる。
【０００７】
このように、自律移動体制御装置は、移動エリア内の環境に応じて、駆動装置、記憶装置、自己移動量検出装置及び環境情報検出装置の制御を切り替えることによって、移動エリア内における目的地まで自律移動体を自律移動させることが可能となっている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１４−６７２２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、従来の自律移動体制御装置では、障害物に接触しないように自律移動体を移動させている時間や距離が長くなれば、移動エリア内における自律移動体の座標及び姿勢と、移動エリア内における自律移動体の真の座標及び姿勢とのずれが大きくなる。この結果、この自律移動体制御装置では、移動エリア内で自律移動体を精度高く自律移動させることができないおそれがある。
【００１０】
本発明は、上記従来の実情に鑑みてなされたものであって、移動エリア内で自律移動体を精度高く自律移動させることが可能な自律移動体制御装置を提供することを解決すべき課題としている。
【課題を解決するための手段】
【００１１】
本発明の自律移動体制御装置は、予め設定された移動エリア内を自律移動する自律移動体に用いられ、
前記自律移動体は、駆動装置と、前記移動エリアの地図情報を記憶する記憶装置と、前記移動エリア内における自己の移動量を検出する自己移動量検出装置と、前記移動エリア内における自己の周囲の環境情報を検出する環境情報検出装置とを備え、
前記移動エリア内における前記自律移動体のｘ座標、ｙ座標及び姿勢を認識しつつ、前記駆動装置、前記記憶装置、前記自己移動量検出装置及び前記環境情報検出装置を制御する自律移動体制御装置であって、
前記自己移動量検出装置が検出した前記自律移動体の移動量に基づき、前記自律移動体の第１推定ｘ座標、第１推定ｙ座標及び第１推定姿勢からなる第１仮想値を演算する第１演算部と、
前記環境情報検出装置が検出した前記環境情報に基づき、確率的手法によって前記自律移動体の第２推定ｘ座標、第２推定ｙ座標及び第２推定姿勢からなる複数の第２仮想値を演算する第２演算部と、
各前記第２推定ｘ座標の第１分散状態が第１基準状態を超えているか否かと、各前記第２推定ｙ座標の第２分散状態が第２基準状態を超えているか否かと、各前記第２推定姿勢の第３分散状態が第３基準状態を超えているか否かとを判断する判断部と、
前記第１分散状態が前記第１基準状態を超えず、前記第２分散状態が前記第２基準状態を超えず、かつ前記第３分散状態が前記第３基準状態を超えていなければ、各前記第２仮想値と、各前記第２仮想値に対して前記第１仮想値とのマッチング率を加味したものとを重み付けすることにより、主特定第２仮想値を決定する主決定部と、
前記主特定第２仮想値を前記第１仮想値に置き換えて確定値とする第１出力モードを実行し、前記駆動装置に出力する第１出力モード部と、
前記第１分散状態が前記第１基準状態を超えている場合、又は前記第２分散状態が前記第２基準状態を超えている場合、又は前記第３分散状態が前記第３基準状態を超えている場合には、各前記第２仮想値と、各前記第２仮想値に対して前記第１仮想値とのマッチング率を加味したものとを重み付けするとともに、前記第１分散状態が前記第１基準状態を超えた各前記第２推定ｘ座標、前記第２分散状態が前記第２基準状態を超えた各前記第２推定ｙ座標及び前記第３分散状態が前記第３基準状態を超えた前記第２推定姿勢を除外することにより、副特定第２仮想値を決定する副決定部と、
前記副特定第２仮想値を前記第１仮想値に置き換えて確定値とする第２出力モードを実行し、前記駆動装置に出力する第２出力モード部とを有することを特徴とする。
【００１２】
本発明の自律移動体制御装置では、自己移動量検出装置が検出した移動量に基づき、第１演算部が自律移動体の第１仮想値を演算する。また、環境情報検出装置が検出した環境情報に基づき、第２演算部が確率的手法によって自律移動体の複数の第２仮想値を演算する。第２仮想値は、自律移動体の第２推定ｘ座標、第２推定ｙ座標及び第２推定姿勢からなる。このように確率的手法によって演算された各第２仮想値では、各第２推定ｘ座標同士と、各第２推定ｙ座標同士と、各第２推定姿勢同士とがそれぞれ一定の範囲で分散する。この分散状態は、環境情報検出装置が検出した環境情報、すなわち、移動エリア内における自律移動体の周囲の幾何学的特徴によって変化する。
【００１３】
ここで、この自律移動体制御装置では、各第２仮想値における各第２推定ｘ座標の第１分散状態が第１基準状態を超えず、各第２推定ｙ座標の第２分散状態が第２基準状態を超えず、各第２推定姿勢の第３分散状態が第３基準状態を超えていなければ、主決定部が各第２仮想値から主特定第２仮想値を決定する。また、第１出力モード部が第１出力モードを実行する。第１出力モードでは、主特定第２仮想値を第１仮想値に置き換えることによって、移動エリア内における自律移動体のｘ座標、ｙ座標及び姿勢である確定値とするとともに、この確定値を駆動装置に出力する。こうして、自律移動体制御装置は、移動エリア内で自律移動体を自律移動させる。
【００１４】
一方、第１分散状態が第１基準状態を超えている場合、又は第２分散状態が第２基準状態を超えている場合、又は第３分散状態が第３基準状態を超えている場合は、確率的手法によって移動エリアにおける自律移動体のｘ座標、ｙ座標及び姿勢を一意的に求めることが困難であることを意味する。そこで、このような場合には、自律移動体制御装置では、副決定部が各第２仮想値から副特定第２仮想値を決定する。そして、第２出力モード部が第２出力モードを実行する。第２出力モードでは、副特定第２仮想値を第１仮想値に置き換えて確定値とするとともに、この確定値を駆動装置に出力する。こうして、自律移動体制御装置は、移動エリア内で自律移動体を自律移動させる。
【００１５】
このように、この自律移動体制御装置では、幾何学的特徴が多数存在する場合に、確率的手法によって求められた各第２仮想値から主特定第２仮想値を決定するだけでなく、幾何学的特徴が乏しい場合であっても、各第２仮想値から副特定第２仮想値を決定する。これにより、この自律移動体制御装置では、自律移動体の移動量に基づく第１仮想値を演算しつつ、この第１仮想値を主特定第２仮想値又は副特定第２仮想値に置き換えて確定値とすることができる。このため、この自律移動体制御装置では、移動エリアにおける自律移動体のｘ座標、ｙ座標及び姿勢を精度高く認識することが可能となる。
【００１６】
したがって、本発明の自律移動体制御装置によれば、移動エリア内で自律移動体を精度高く自律移動させることが可能である。
【００１７】
本発明の自律移動体制御装置は、確定値に基づき、確定値と第１仮想値との変位量を演算する第３演算部と、変位量が閾値を超えなければ、第１仮想値を確定値とする第３出力モードを実行し、駆動装置に出力する第３出力モード部と、変位量が閾値を超えれば、第１出力モード又は第２出力モードを実行させる補正モード部とを有することが好ましい。
【００１８】
第１出力モード又は第２出力モードにおいて得られた確定値に対して第１仮想値の変位量が閾値を超えない場合、すなわち、確定値に基づいた移動エリア内における自律移動体のｘ座標、ｙ座標及び姿勢に対して、第１推定ｘ座標、第１推定ｙ座標及び第１推定姿勢の精度が高い場合には、さらに第１仮想値を主特定第２仮想値又は副特定第２仮想値に置き換えて確定値とする必要性が乏しい。そこで、確定値に対する第１仮想値の変位量が閾値を超えない場合には、第１仮想値をそのまま確定値とすることにより、自律移動体制御装置は処理負担を軽減しつつ、自律移動体を自律移動させることが可能となる。
【００１９】
主決定部は、各第２仮想値と、各第２仮想値に対して第１仮想値とのマッチング率を加味したものとを重み付けすることにより、主特定第２仮想値を決定する。同様に、副決定部は、各第２仮想値と、各第２仮想値に対して第１仮想値とのマッチング率を加味したものとを重み付けすることにより、副特定第２仮想値を決定する。このため、各第２仮想値のうち、最適な値を主特定第２仮想値や副特定第２仮想値とすることができる。このため、より精度高く確定値を求めることが可能となる。
【００２０】
確率的手法は、ＳＬＡＭアルゴリズムに基づくパーティクルフィルタであることが好ましい。この場合には、比較的容易に精度の高い複数の第２仮想値を演算することが可能となる。
【００２１】
自律移動体は、自律走行する産業車両であることが好ましい。産業車両が自律走行する工場や倉庫等の移動エリアでは、そのレイアウトが頻繁に変化するために産業車両の周囲の環境の幾何学的特徴が乏しい場合が多く、確率的手法によって自律移動体のｘ座標、ｙ座標及び姿勢を一意的に求めることが困難となる場合が生じ易い。このため、産業車両に本発明の自律移動体制御装置を用いれば、移動エリア内で産業車両を精度高く自律走行させることが可能となり、作業効率を向上させることが可能となる。
【発明の効果】
【００２２】
本発明の自律移動体制御装置によれば、移動エリア内で自律移動体を精度高く自律移動させることが可能である。
【図面の簡単な説明】
【００２３】
【図１】図１は、実施例の自律移動体制御装置が採用された産業車両を示す模式図である。
【図２】図２は、産業車両が移動エリア内を自律走行する状態を示す模式図である。
【図３】図３は、実施例の自律移動体制御装置が移動エリア内で産業車両を自律走行させる際の制御フローである。
【図４】図４は、図２のＡ地点における特定パーティクルの分散状態を示す模式図である。
【図５】図５は、図４における特定パーティクルの分散状態に基づき、各特定パーティクルにおける第２推定ｘ座標、第２推定ｙ座標及び第２推定姿勢を示す一覧表である。
【図６】図６は、図４における特定パーティクルの分散状態に基づき、各第２推定ｘ座標の分布を示すグラフである。
【図７】図７は、図４における特定パーティクルの分散状態に基づき、各第２推定ｙ座標の分布を示すグラフである。
【図８】図８は、図２のＢ地点における特定パーティクルの分散状態を示す模式図である。
【図９】図９は、図８における特定パーティクルの分散状態に基づき、各特定パーティクルにおける第２推定ｘ座標、第２推定ｙ座標及び第２推定姿勢を示す一覧表である。
【図１０】図１０は、図８における特定パーティクルの分散状態に基づき、各第２推定ｘ座標の分布を示すグラフである。
【図１１】図１１は、図８における特定パーティクルの分散状態に基づき、各第２推定ｙ座標の分布を示すグラフである。
【発明を実施するための形態】
【００２４】
以下、本発明を具体化した実施例を図面を参照しつつ説明する。
【００２５】
図１に示すように、実施例のＣＰＵ１は、自動搬送車３に搭載されている。ＣＰＵ１は本発明の自律移動体制御装置の一例である。自動搬送車３は、作業者が運転を行うことなく、図２に示す倉庫５内を自律走行可能な産業車両であり、本発明の自律移動体の一例である。また、倉庫５は本発明の移動エリアの一例である。
【００２６】
倉庫５内は、複数の壁面５０によって、互いに大きさが異なる第１〜４室５１〜５４が区画されている他、第１〜４室５１〜５４と接続する廊下５５が区画されている。第１〜４室５１〜５４内には、各種の荷物棚５６の他、作業机５７等が配置されている。
【００２７】
廊下５５は第１〜４廊下５５ａ〜５５ｄによって構成されている。第１廊下５５ａは、第１室５１と接続して南北方向に延びている。第２廊下５５ｂは、第３室５３と接続するとともに、第１廊下５５ａと第３廊下５５ｃと第４廊下５５ｄとに接続しており、東西方向に延びている。第３廊下５５ｃは、第４室５４と接続するとともに第２廊下５５ｂと接続しており、南北方向に延びている。第４廊下５５ｄは、第２室５２と接続するとともに第２廊下５５ｂと接続しており、南北方向に延びている。
【００２８】
図１に示すように、自動搬送車３は、上記のＣＰＵ１の他に、複数の駆動輪７、ＲＯＭ９、ＲＡＭ１１、エンコーダ１３、外界センサ１５及び情報入力部１７を備えている。また、図示を省略するものの、自動搬送車３は、公知の操舵装置及び電動モータ等を備えている。
【００２９】
各駆動輪７は、操舵装置及び電動モータ等とともに駆動装置１９を構成しており、倉庫５内で自動搬送車３を走行させることが可能となっている。
【００３０】
ＲＯＭ９には、自動搬送車３を自律走行させるための制御プログラムが記録されている。制御プログラムは、具体的には、ＳＬＡＭ（Simultaneous Localization and Mapping）アルゴリズムであり、確率的手法としてのパーティクルフィルタを実行する。
【００３１】
ＲＡＭ１１は本発明における記憶装置の一例であり、倉庫５の地図情報を記憶している。この地図情報は、図２に示す倉庫５の東西方向をｘ軸とするとともに、倉庫５の南北方向をｙ軸とした際の倉庫５内の座標情報である。また、図１に示すＲＡＭ１１は、後述する第１〜３基準状態や閾値を記憶している。さらに、ＲＡＭ１１は、後述する情報入力部１７に入力された経路情報の他、第１、２仮想値や確定値等を一時的に記憶可能となっている。
【００３２】
エンコーダ１３は、本発明における自己移動量検出装置の一例であり、各駆動輪７の回転数や操舵装置の舵角を計測することにより、倉庫５内における自動搬送車３移動量を検出可能となっている。なお、エンコーダ１３は、電動モータの回転数を計測することにより、倉庫５内における自動搬送車３移動量を検出するように構成されても良い。また、エンコーダ１３に換えて、自己移動量検出装置としてＧＰＳ装置等を採用しても良い。
【００３３】
外界センサ１５は、本発明における環境情報検出装置の一例であり、倉庫５内における自動搬送車３の周囲の環境情報を検出可能となっている。具体的には、外界センサ１５は自動搬送車３の下部に取り付けられており、図２のハッチングで示すように、自動搬送車３の進行方向における一定の範囲にレーザを照射する。そして、壁面５０や荷物棚５６等に反射して外界センサ１５戻ってきたレーザにより、壁面５０や荷物棚５６等に基づく自動搬送車３の周囲の幾何学的特徴を環境情報として検出する。また同時に、外界センサ１５は、壁面５０等から自動搬送車３までの距離を計測する。
【００３４】
情報入力部１７は、操作ディスプレイやキーボード等で構成されており、作業者が自動搬送車３の現在地及び目的地等の経路情報を入力することが可能となっている。
【００３５】
ＣＰＵ１は、これらの駆動装置１９、ＲＯＭ９、ＲＡＭ１１、エンコーダ１３、外界センサ１５及び情報入力部１７を制御して自動搬送車３を自律走行させる。具体的には、ＣＰＵ１は、本発明における第１演算部、第２演算部、第３演算部、判断部、主決定部、副決定部、第１出力モード部、第２出力モード部、第３出力モード部及び補正モード部として各演算処理を行う。これにより、ＣＰＵ１は、後述する第１出力モード又は第２出力モード又は第３出力モードを実行しつつ、倉庫５内で自動搬送車３を自律走行させる。
【００３６】
次に、第１室５１内の荷物棚５６にある荷物（図示略）を自動搬送車３が第４室５４内の荷物棚５６まで搬送する場合を例に、倉庫５内で自動搬送車３を自律走行させる際のＣＰＵ１の各演算処理を具体的に説明する。
【００３７】
図３に示すように、自動搬送車３を自律走行させるに当たっては、まず、ＣＰＵ１は、ＲＡＭ１１に記憶された倉庫５の地図情報と、情報入力部１７から入力された経路情報とに基づき、自動搬送車３の現在位置と、目的地である第４室５４との地図情報上における座標を演算する。そして、ＣＰＵ１は、駆動装置１９を制御することにより、第４室５４に向けて自動搬送車３の走行を開始する（ステップＳ１０１）。
【００３８】
自動搬送車３が走行することにより、エンコーダ１３は、各駆動輪７の回転数や操舵装置の舵角を計測して自動搬送車３の移動量を検出する。そして、この移動量に基づき、ＣＰＵ１は、自動搬送車３の第１推定ｘ座標、第１推定ｙ座標及び第１推定姿勢θからなる第１仮想値を演算する（ステップＳ１０２）。この姿勢θは、自動搬送車３の進行方向において、ｘ軸方向に対するｙ軸方向への傾きである。なお、ＣＰＵ１に演算された第１仮想値はＲＡＭ１１に記憶される。
【００３９】
また、自動搬送車３が走行することにより、外界センサ１５は、自動搬送車３の周囲の幾何学的特徴を検出する（ステップＳ１０３）。そして、ＣＰＵ１は、幾何学的特徴に基づき、パーティクルフィルタによって自動搬送車３の第２推定ｘ座標、第２推定ｙ座標及び第２推定姿勢θからなる複数の第２仮想値を演算する。具体的には、ＣＰＵ１は、自動搬送車３の仮想体である多数のパーティクルを自動搬送車３の周囲に分散させる。そして、各パーティクルから、外界センサ１５によって検出された幾何学的特徴と一定の尤度でマッチングする特定パーティクルを複数個抽出する。こうして抽出された各特定パーティクルのｘ座標、ｙ座標及び姿勢θから、上記の各第２仮想値、すなわち、各第２推定ｘ座標、各第２推定ｙ座標及び各第２推定姿勢θを演算する（ステップＳ１０４）。各第２仮想値についてもＲＡＭ１１に記憶される。
【００４０】
次に、ＣＰＵ１は、ＲＡＭ１１内に記憶された情報を基に、既に第１出力モード又は第２出力モードを実行したことがあるか否かを判断する（ステップＳ１０５）。そして、第１出力モード又は第２出力モードを実行したことがある場合（ステップＳ１０５：ＹＥＳ）には、ＣＰＵ１は、既に行った第１出力モード又は第２出力モードで得られた確定値に基づいて、上記の第１仮想値の変位量を演算する（ステップＳ１０６）。この変位量の演算は、具体的には、第１推定ｘ座標、第１推定ｙ座標及び第１推定姿勢θと、確定値に基づく倉庫５内における現在の自動搬送車３のｘ座標、ｙ座標及び姿勢θとを比較することによって行う。なお、第１出力モード、第２出力モード及び確定値についての詳細は後述する。
【００４１】
こうして演算された第１仮想値の変位量について、ＣＰＵ１は、予め設定されてＲＡＭ１１に記憶されている閾値を超えているか否かを判断する（ステップＳ１０７）。ここで、変位量が閾値を超えていなければ（ステップＳ１０７：ＮＯ）、倉庫５内における自動搬送車３の現在のｘ座標、ｙ座標及び姿勢θに対して、第１推定ｘ座標、第１推定ｙ座標及び第１推定姿勢θの精度が高いことを意味する。このため、ＣＰＵ１は、第３出力モードを実行する（ステップＳ１０８）。第３出力モードでは、ＣＰＵ１は、第１仮想値の第１推定ｘ座標、第１推定ｙ座標及び第１推定姿勢θを倉庫５自動搬送車３の現在のｘ座標、ｙ座標及び姿勢θである確定値とする。こうして、ＰＣＵ１は、倉庫５内における自動搬送車３の現在のｘ座標、ｙ座標及び姿勢θを認識する。そして、ＣＰＵ１は、この確定値をＲＡＭ１１に記憶させるともに、駆動装置１９に出力することによって、自動搬送車３を自律走行させる。なお、第３出力モードでは、第１出力モード又は第２出力モードで得られた以前の確定値をＲＡＭ１１から消去しない。
【００４２】
一方、変位量が閾値を超えている場合（ステップＳ１０７：ＹＥＳ）は、既に行った第１出力モード又は第２出力モードにおいて得られた確定値に対して、第１推定ｘ座標、第１推定ｙ座標及び第１推定姿勢θのずれが大きく、第１仮想値の精度が低いことを意味する。このような場合にまで第１仮想値を確定値とすれば、ＣＰＵ１が認識する倉庫５内における自動搬送車３のｘ座標、ｙ座標及び姿勢θと、倉庫５内における自動搬送車３の現在のｘ座標、ｙ座標及び姿勢θとの誤差が大きくなる。そこで、変位量が閾値を超えている場合には、ＣＰＵ１は、第３出力モードを実行せずに、補正モード部として後述するステップＳ１０９以降の処理を実行し、第１仮想値を第２仮想値に置き換えることで第１仮想値を補正して確定値を求める演算処理を行う。また、自動搬送車３を自律走行させた直後のように、第１出力モード又は第２出力モードを一度も実行したことがない場合（ステップＳ１０５：ＮＯ）についても、ＣＰＵ１は、上記のステップＳ１０６〜Ｓ１０８の処理を行わずに、ステップＳ１０９以降の処理を実行する。
【００４３】
ところで、上記のステップＳ１０４で抽出された各特定パーティクルは一定の範囲で分散するため、パーティクルフィルタによって演算された各第２仮想値では、各第２推定ｘ座標同士と、各第２推定ｙ座標同士と、各第２推定姿勢θ同士とがそれぞれ一定の範囲で分散することとなる。この分散状態は、外界センサ１５によって検出された自動搬送車３の周囲の幾何学的特徴によって変化する。
【００４４】
具体的には、図２に示す第１〜４室５１〜５４では、室内に多くの荷物棚５６の他、作業机５７等が配置されているため、外界センサ１５によって検出される幾何学的特徴が多数存在する。このように、自動搬送車３の周囲に幾何学的特徴が多数存在する環境では、パーティクルフィルタによって演算された各第２仮想値の精度が高くなる。このため、例えば、地図情報上のｘ座標、ｙ座標及び姿勢θが「ｘＡ：ｙＡ：θＡ」となる第１室５１のＡ地点においてパーティクルフィルタを実行すれば、図４に示すように、抽出された各特定パーティクルＰ１〜Ｐ１０は、Ａ地点に近い範囲で分散する。つまり、第１室５１のＡ地点のように、幾何学的特徴が多数存在する環境では、各第２推定ｘ座標の分散状態である第１分散状態、各第２推定ｙ座標の分散状態である第２分散状態及び各第２推定姿勢θの分散状態である第３分散状態がそれぞれ小さくなる。
【００４５】
一方、図２に示す廊下５５のように、自動搬送車３の周囲に壁面５０しか存在しない状態が長く続く環境では、外界センサ１５によって検出される幾何学的特徴が乏しくなる。このように、自動搬送車３の周囲の幾何学的特徴が乏しい環境では、パーティクルフィルタによって演算された各第２仮想値の精度が低くなる。このため、例えば、地図情報上のｘ座標、ｙ座標及び姿勢θが「ｘＢ：ｙＢ：θＢ」となる第２廊下５５ｂのＢ地点においてパーティクルフィルタを実行すれば、図８に示すように、抽出された各特定パーティクルＰ１〜Ｐ１０は、Ｂ地点から遠い範囲で分散する。つまり、幾何学的特徴が乏しい環境では、幾何学的特徴が多数存在する環境に比べて、各第２推定ｘ座標の第１分散状態、各第２推定ｙ座標の第２分散状態及び各第２推定姿勢θの第３分散状態がそれぞれ大きくなる。特に、第２廊下５５ｂのように、倉庫５の東西方向に壁面５０のみが連続して存在する環境では、自動搬送車３の進行方向である第２推定ｘ座標の第１分散状態が大きくなる。なお、図４及び図８に示す各特定パーティクルＰ１〜Ｐ１０の分散状態は一例であり、たとえ第１〜４室５１〜５４内であっても外界センサ１５によって検出される幾何学的特徴が乏しい場合があり得る。同様に、廊下５５であっても、外界センサ１５が幾何学的特徴を多数検出する場合があり得る。
【００４６】
そこで、図３に示すように、ＣＰＵ１は、各第２推定ｘ座標の第１分散状態が第１基準状態を超えているか否かと、各第２推定ｙ座標の第２分散状態が第２基準状態を超えているか否かと、各第２推定姿勢θの第３分散状態が第３基準状態を超えているか否かとを判断する（ステップＳ１０９）。
【００４７】
第１分散状態が第１基準状態を超えているか否かを判断するに当たって、本実施例では、まず初めにＣＰＵ１は、各第２推定ｘ座標の平均値から絶対値で２以上離れて存在する第２推定ｘ座標の割合を求める。そして、このようにして求められた第２推定ｘ座標の割合について、ＣＰＵ１は、「絶対値で２以上離れて存在する第２推定ｘ座標の割合が５割以下」とする第１基準状態を満たしているか否かを判断する。この第１基準状態は予め設定されており、ＲＡＭ１１に記憶されている。ここで、絶対値で２以上離れて存在する第２推定ｘ座標の割合が５割よりも少なければ、ＣＰＵ１は、第１分散状態が第１基準状態を超えていないと判断する。なお、上記の絶対値や第１基準状態の数値は一例であり、他の数値を用いることも可能である。
【００４８】
同様に、第２分散状態が第１基準状態を超えているか否かを判断するに当たっても、ＣＰＵ１は、各第２推定ｙ座標の平均値から絶対値で２以上離れて存在する第２推定ｙ座標の割合を求める。そして、このようにして求められた第２推定ｙ座標の割合について、「絶対値で２以上離れて存在する第２推定ｙ座標の割合が３割以下」とする第２基準状態を満たしているか否かを判断する。この第２基準状態も予め設定されており、ＲＡＭ１１に記憶されている。ここで、絶対値で２以上離れて存在する第２推定ｙ座標の割合が３割よりも少なければ、ＣＰＵ１は、第２分散状態が第２基準状態を超えていないと判断する。なお、上記の絶対値や第２基準状態の数値も一例であり、他の数値を用いることも可能である。
【００４９】
また、第３分散状態が第３基準状態を超えているか否かを判断するに当たっても、ＣＰＵ１は、各第２推定姿勢θの平均値から絶対値で３以上離れて存在する第２推定姿勢θの割合を求める。そして、このようにして求められた第２推定姿勢θの割合について、「絶対値で３以上離れて存在する第２推定姿勢θの割合が１割以下」とする第３基準状態を満たしているか否かを判断する。この第３基準状態も予め設定されており、ＲＡＭ１１に記憶されている。ここで、絶対値で３以上離れて存在する第２推定姿勢θの割合が１割よりも少なければ、ＣＰＵ１は、第３分散状態が第３基準状態を超えていないと判断する。なお、上記の絶対値や第３基準状態の数値も一例であり、他の数値を用いることも可能である。
【００５０】
これらを基に第１〜３分散状態が第１〜３基準状態をそれぞれ超えているか否を判断する。具体的には、Ａ地点では、図５及び図６に示すように、Ａ地点のｘ座標（ｘＡ）の値をゼロとした際の各第２推定ｘ座標の平均値は「−０．２」となる。そして、この平均値から絶対値で２以上離れて存在する第２推定ｘ座標の個数は１つであることから、その割合は１割である。このため、ＣＰＵ１は、Ａ地点では、第１分散状態は第１基準状態を超えていないと判断する。なお、このように判断するに際して、平均値における小数点以下は切り上げている。
【００５１】
また、図５及び図７に示すように、Ａ地点のｙ座標（ｙＡ）の値をゼロとした際の各第２推定ｙ座標の平均値は「ゼロ」となる。そして、この平均値から絶対値で２以上離れて存在する第２推定ｙ座標の個数は２つであることから、その割合は２割である。このため、ＣＰＵ１は、Ａ地点では、第２分散状態は第２基準状態を超えていないと判断する。
【００５２】
さらに、図５に示すように、Ａ地点の姿勢θ（θＡ）の値をゼロとした際の各第２推定姿勢θの平均値は「０．０５」となる。そして、この平均値から絶対値で３以上離れて存在する第２推定姿勢θは存在しない。このため、ＣＰＵ１は、Ａ地点では、第３分散状態は第３基準状態を超えていないと判断する。
【００５３】
このように、Ａ地点では、各第２仮想値における各第２推定ｘ座標の第１分散状態が第１基準状態を超えておらず、また、各第２推定ｙ座標の第２分散状態が第２基準状態を超えておらず、さらに、各第２推定姿勢θの第３分散状態が第３基準状態を超えていないことになる（ステップＳ１０９：ＮＯ）。
【００５４】
この場合、ＣＰＵ１は、パーティクルフィルタによって演算された各第２仮想値、つまり、各第２推定ｘ座標、各第２推定ｙ座標及び各第２推定姿勢θから、主特定第２仮想値を決定する（ステップＳ１１０）。この主特定第２仮想値は、ＣＰＵ１が各第２仮想値と、各第２仮想値に対して第１仮想値とのマッチング率を加味したものとを重み付けすることによって決定される。また、主特定第２仮想値はＲＡＭ１１に記憶される。
【００５５】
そして、ＣＰＵ１は第１出力モードを実行する（ステップＳ１１１）。第１出力モードでは、ＣＰＵ１は、主特定第２仮想値を第１仮想値に置き換えることによって確定値とする。つまり、ＣＰＵ１は、主特定第２仮想値における第２推定ｘ座標、第２推定ｙ座標及び第２推定姿勢θが倉庫５内における自動搬送車３の現在のｘ座標、ｙ座標及び姿勢θであると認識する。そして、ＣＰＵ１は、この確定値をＲＡＭ１１に記憶させるともに、駆動装置１９に出力することによって、自動搬送車３を自律走行させる。ここで、既にＲＡＭ１１に以前の確定値が記憶されている場合には、新たに得られた確定値を上書きする。また、ＣＰＵ１は、第１出力モードを実行したことについてもＲＡＭ１１に記憶させる。
【００５６】
一方、Ｂ地点では、図９及び図１０に示すように、Ｂ地点のｘ座標（ｘＢ）の値をゼロとした際の各第２推定ｘ座標の平均は「ゼロ」となる。そして、この平均値から絶対値で２以上離れて存在する第２推定ｘ座標の個数は７つであることから、その割合は７割である。このため、ＣＰＵ１は、Ｂ地点では、第１分散状態が第１基準状態を超えていると判断する。
【００５７】
また、図９及び図１１に示すように、Ｂ地点のｙ座標（ｙＢ）の値をゼロとした際の各第２推定ｙ座標の平均は「ゼロ」となる。そして、この平均値から絶対値で２以上離れて存在する第２推定ｙ座標の個数は２つであることから、その割合は２割である。このため、ＣＰＵ１は、Ｂ地点では、第２分散状態は第２基準状態を超えていないと判断する。
【００５８】
さらに、図９に示すように、Ｂ地点の姿勢θ（θＢ）の値をゼロとした際の各第２推定姿勢θの平均は「０．０５」となる。そして、この平均値から絶対値で３以上離れて存在する第２推定姿勢θは存在しない。このため、ＣＰＵ１は、Ｂ地点では、第３分散状態は第３基準状態を超えていないと判断する。
【００５９】
このように、Ｂ地点では、各第２仮想値において、各第２推定ｙ座標の第２分散状態が第２基準状態を超えておらず、また、各第２推定姿勢θの第３分散状態が第３基準状態を超えていないものの、各第２推定ｘ座標の第１分散状態は、第１基準状態を超えていることとなる（ステップＳ１０９：ＹＥＳ）。
【００６０】
この場合、ＣＰＵ１は、パーティクルフィルタによって演算された各第２仮想値のうち、各第２推定ｙ座標及び各第２推定姿勢θから副特定第２仮想値を決定する（ステップＳ１１２）。つまり、上記の主特定第２仮想値を決定する場合と異なり、副特定第２仮想値を決定するに当たっては、第１分散状態が第１基準状態を超えた各第２推定ｘ座標は除外される。また、副特定第２仮想値の決定に当たっても、ＣＰＵ１は、各第２仮想値と、各第２仮想値に対して第１仮想値とのマッチング率を加味したものとを重み付けすることによって行う。この副特定第２仮想値はＲＡＭ１１に記憶される。
【００６１】
そして、ＣＰＵ１は第２出力モードを実行する（ステップＳ１１３）。第２出力モードでは、ＣＰＵ１は、副特定第２仮想値を第１仮想値に置き換えることによって、倉庫５内における自動搬送車３の現在のｘ座標、ｙ座標及び姿勢θである確定値とする。ここで、副特定第２仮想値の決定に当たって各第２推定ｘ座標が除外されている。このため、ＣＰＵ１は、副特定第２仮想値における第２推定ｙ座標及び第２推定姿勢θが倉庫５内における自動搬送車３の現在のｙ座標及び姿勢θであると認識し、第１仮想値における第１推定ｘ座標が倉庫５内における自動搬送車３の現在のｘ座標であると認識する。そして、ＣＰＵ１は、この確定値をＲＡＭ１１に記憶させるともに、駆動装置１９に出力することによって、自動搬送車３を自律走行させる。この場合についても、既にＲＡＭ１１に以前の確定値が記憶されていれば、新たに得られた確定値を上書きする。また、ＣＰＵ１は、第２出力モードを実行したことについてもＲＡＭ１１に記憶させる。
【００６２】
なお、上記のように、Ｂ地点では、第１分散状態のみが第１基準状態を超える結果となっているが、幾何学的特徴が乏しい他の地点では、例えば、第２分散状態のみが第２基準状態を超える結果となる場合もあり得る。このような場合には、副特定第２仮想値を決定するに当たって各第２推定ｙ座標は除外され、各第２推定ｘ座標及び各第２推定姿勢θから副特定第２仮想値が決定されることとなる。同様に、第３分散状態が第３基準状態を超えた場合には、副特定第２仮想値を決定するに際して各第２推定姿勢θは除外される。
【００６３】
こうして、ＣＰＵ１は、自動搬送車３が目的地である第４室５４に到達していなければ（ステップＳ１１４：ＮＯ）、上記のステップＳ１０２〜ステップＳ１１３を繰り返すことにより、第１〜３出力モードのいずれかを実行する。これにより、ＣＰＵ１は、自動搬送車３について、図２の矢印で示すように、第１室５１から第１廊下５５ａを通って第２廊下５５ｂに至り、第２廊下５５ｂから第３廊下５５ｃを通って第４室５４に至る経路を通って、第４室５４まで自律走行させることが可能となっている。そして、自動搬送車３が第４室５４に到達すれば（ステップＳ１１４：ＹＥＳ）、ＣＰＵ１は自動搬送車３の制御を終了する。
【００６４】
このように、このＣＰＵ１では、第１室５１のＡ地点のように、自動搬送車３の周囲に幾何学的特徴が多数存在する場合に、パーティクルフィルタによって求められた各第２仮想値から主特定第２仮想値を決定するだけでなく、第２廊下５５ｂのＢ地点のように、自動搬送車３の周囲の幾何学的特徴が乏しい場合であっても、各第２仮想値から副特定第２仮想値を決定する。これにより、このＣＰＵ１では、自動搬送車３の移動量に基づく第１仮想値を演算しつつ、この第１仮想値を主特定第２仮想値又は副特定第２仮想値に置き換えて確定値とすることができる。
【００６５】
特に、ＣＰＵ１が用いられている自動搬送車３では、自動走行する倉庫５等において、上記の第２廊下５５ｂのように、自己の周囲の環境の幾何学的特徴が乏しい場合が多くなる。このような場合であっても、ＣＰＵ１は、第１仮想値を副特定第２仮想値に置き換えて確定値とすることができる。ここで、第１仮想値を副特定第２仮想値に置き換えて確定値することにより、ＣＰＵ１は、副特定第２仮想値における第２推定ｙ座標及び第２推定姿勢θが倉庫５内における自動搬送車３の現在のｙ座標及び姿勢θであると認識するものの、倉庫５内における自動搬送車３の現在のｘ座標については、第１仮想値における第１推定ｘ座標として認識する。このように、第１仮想値を副特定第２仮想値に置き換えて確定値する場合には、確定値の一部に、補正がされていない第１仮想値、換言すれば、変位量が閾値を超えた第１仮想値が含まれることとなる。しかし、この場合であっても、変位量が閾値を超えた第１仮想値のみで確定値とする場合に比べて、倉庫５内における自動搬送車３の真のｘ座標、ｙ座標及び姿勢θとの誤差を小さくすることができる。この結果、このＣＰＵ１では、外界センサ１５によって検出された自動搬送車３の周囲の幾何学的特徴が多数存在する場合だけでなく、自動搬送車３の周囲の幾何学的特徴が乏しい場合であっても、倉庫５内における自動搬送車３のｘ座標、ｙ座標及び姿勢θを精度高く認識することが可能となる。このため、ＣＰＵ１は、自動搬送車３の作業効率を向上させることが可能となっている。
【００６６】
したがって、本発明のＣＰＵ１によれば、倉庫５内で自動搬送車３を精度高く自律走行させることが可能である。
【００６７】
特に、ＣＰＵ１は、既に第１出力モード又は第２出力モードを実行し、その際に得られた確定値をＲＡＭ１１が記憶している場合には、その確定値に基づいて第１仮想値の変位量を演算する。そして、変位量が閾値を超えていなければ、第１仮想値を確定値とする第３出力モードを実行する。これにより、ＣＰＵ１は、第１仮想値の精度が高く、第１仮想値を主特定第２仮想値又は副特定第２仮想値に置き換えて確定値とする必要性が乏しい場合には、処理負担を軽減しつつ、自動搬送車３を自律走行させることが可能となっている。
【００６８】
また、ＣＰＵ１は、ＳＬＡＭアルゴリズムに基づくパーティクルフィルタによって各第２仮想値を演算する。このため、ＣＰＵ１は、比較的容易に精度の高い複数の第２仮想値を演算することが可能となっている。
【００６９】
さらに、ＣＰＵ１は、主特定第２仮想値や副特定第２仮想値を決定するに当たり、パーティクルフィルタによって演算された各第２仮想値と、各第２仮想値に対して第１仮想値とのマッチング率を加味したものとを重み付けする。このため、各第２仮想値のうち、最適な値を主特定第２仮想値や副特定第２仮想値とすることができ、ＣＰＵ１は、より精度高く確定値を求めることが可能となっている。
【００７０】
以上において、本発明を実施例に即して説明したが、本発明は上記実施例に制限されるものではなく、その趣旨を逸脱しない範囲で適宜変更して適用できることはいうまでもない。
【００７１】
例えば、ＣＰＵ１を自動搬送車３の外部に設け、ＣＰＵ１は、無線通信によって、駆動装置１９、ＲＯＭ９、ＲＡＭ１１、エンコーダ１３、外界センサ１５及び情報入力部１７を遠隔制御する構成としても良い。
【００７２】
また、実施例では、１つのＣＰＵ１が第１演算部、第２演算部、第３演算部、判断部、主決定部、副決定部、第１出力モード部、第２出力モード部、第３出力モード部及び補正モード部として各演算処理を行う。しかし、これに限らずＣＰＵ１を複数とし、各ＣＰＵ１に上記の演算処理を分担させても良い。
【００７３】
さらに、ＣＰＵ１は、パーティクルフィルタ以外の確率的手法によって複数の第２仮想値を演算しても良く、複数の確率的手法を組み合わせることによって、各第２仮想値を演算しても良い。
【００７４】
また、自動搬送車３は、上記の自律走行を行う場合と、作業者の運転によって走行する場合とを切り替え可能に構成されても良い。
【産業上の利用可能性】
【００７５】
本発明は、自律移動が可能なロボット、自動車及び産業車両等に利用可能である。
【符号の説明】
【００７６】
１…ＣＰＵ（自律移動体制御装置、第１演算部、第２演算部、第３演算部、判断部、主決定部、副決定部、第１出力モード部、第２出力モード部、第３出力モード部、補正モード部）
３…自動搬送車（自律移動体、産業車両）
５…倉庫（移動エリア）
１１…ＲＡＭ（記憶装置）
１３…エンコーダ（自己移動量検出装置）
１５…外界センサ（環境情報検出装置）
１９…駆動装置
【図１】
0006642026.tif 000002
【図２】
0006642026.tif 000003
【図３】
0006642026.tif 000004
【図４】
0006642026.tif 000005
【図５】
0006642026.tif 000006
【図６】
0006642026.tif 000007
【図７】
0006642026.tif 000008
【図８】
0006642026.tif 000009
【図９】
0006642026.tif 000010
【図１０】
0006642026.tif 000011
【図１１】
0006642026.tif 000012