<用語>
本発明の実施形態を説明する前に、本明細書において使用する用語の定義を説明する。
「無人搬送車」(AGV(Automated guided vehicle))とは、本体に人手または自動で荷物を積み込み、指示された場所まで自動走行し、人手または自動で荷卸しをする無軌道車両を意味する。「無人搬送車」は、無人牽引車および無人フォークリフトを含む。
「無人」の用語は、車両の操舵に人を必要としないことを意味しており、無人搬送車が「人(たとえば荷物の積み下ろしを行う者)」を搬送することは除外しない。
「無人牽引車」とは、人手または自動で荷物の積み込み荷卸しをする台車を牽引して、指示された場所まで自動走行する無軌道車両である。
「無人フォークリフト」とは、荷物移載用のフォークなどを上下させるマストを備え、フォークなどに荷物を自動移載し指示された場所まで自動走行し、自動荷役作業をする無軌道車両である。
「無軌道車両」とは、車輪と、車輪を回転させる電気モータまたはエンジンを備える移動体(vehicle)である。
「移動体」とは、人または荷物を載せて移動する装置であり、移動のための駆動力(traction)を発生させる車輪、二足または多足歩行装置、プロペラなどの駆動装置を備える。本発明における「移動体」の用語は、狭義の無人搬送車のみならず、モバイルロボット、サービスロボット、およびドローンを含む。
「自動走行」は、無人搬送車が通信によって接続されるコンピュータの運行管理システムの指令に基づく走行と、無人搬送車が備える制御装置による自律的走行とを含む。自律的走行には、無人搬送車が所定の経路に沿って目的地に向かう走行のみならず、追尾目標に追従する走行も含まれる。また、無人搬送車は、一時的に作業者の指示に基づくマニュアル走行を行ってもよい。「自動走行」は、一般には「ガイド式」の走行および「ガイドレス式」の走行の両方を含むが、本発明では「ガイドレス式」の走行を意味する。
「ガイド式」とは、誘導体を連続的または断続的に設置し、誘導体を利用して無人搬送車を誘導する方式である。
「ガイドレス式」とは、誘導体を設置せずに誘導する方式である。本発明の実施形態における無人搬送車は、自己の位置を推定する位置推定装置を備え、ガイドレス式で走行することができる。
「位置推定装置」は、レーザレンジファインダなどの外界センサによって取得されたセンサデータに基づいて環境地図上における自己位置を推定する装置である。
「外界センサ」は、移動体の外部の状態をセンシングするセンサである。外界センサには、たとえば、レーザレンジファインダ(測域センサともいう)、カメラ(またはイメージセンサ)、LIDAR(Light Detection and Ranging)、ミリ波レーダ、および磁気センサがある。
「内界センサ」は、移動体の内部の状態をセンシングするセンサである。内界センサには、たとえばロータリエンコーダ(以下、単に「エンコーダ」と称することがある)、加速度センサ、および角加速度センサ(たとえばジャイロセンサ)がある。
「SLAM(スラム)」とは、Simultaneous Localization and Mappingの略語であり、自己位置推定と環境地図作成を同時に行うことを意味する。
<例示的な実施形態>
以下、添付の図面を参照しながら、本発明にかかる移動体および移動体システムの一例を説明する。なお、必要以上に詳細な説明は省略する場合がある。たとえば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。本発明者らは、当業者が本発明を十分に理解するために添付図面および以下の説明を提供する。これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
本発明において説明する移動体は、ステレオカメラで周囲の空間を撮影し、生成した画像(以下「環境画像」と呼ぶ。)と、空間の各位置に関連付けられた複数の基準画像とを利用して自己位置を推定する。「基準画像」は、事前に撮影された空間の画像である。推定した自己位置を利用して、移動体は自律的に移動することが可能である。そのような移動体の例は、無人搬送車(例えば後述の図6)である。
より具体的に説明する。移動体は、環境画像から複数の特徴点を抽出して複数の基準画像と照合する。照合は、複数の特徴点が有する関係が、複数の基準画像のどの基準画像に最もよく現われているかの観点で行われる。移動体はさらに、環境画像に含まれる画像オブジェクトを検出する。画像オブジェクトは、例えば床面に描かれた標示であり、レーン、中央分離帯、荷物の搬送先等として定義される直線、点線、記号、文字および/または色である。移動体は、照合結果および検出結果を利用することにより、自己位置を推定する。つまり、移動体は、環境画像から特徴点を抽出し、同時に環境画像に含まれる画像オブジェクトの意味を考慮して、自己位置を推定することができる。
図1は、本発明の例示的な実施形態における移動体の概略構成を示すブロック図である。移動体101は、ステレオカメラ103と、位置推定装置105と、記憶装置106と、コントローラ107と、駆動装置109とを備えている。なお、ある実施形態では位置推定装置105およびコントローラ107は、それぞれ別個の半導体集積回路チップであるが、他の実施形態では、位置推定装置105およびコントローラ107は1つの半導体集積回路チップであり得る。
駆動装置109は、移動体101を移動させる機構を備えている。駆動装置109は、例えば少なくとも1台の駆動用電気モータ(以下、単に「モータ」と称する)、および、当該モータを制御するモータ制御回路を備え得る。
ステレオカメラ103は、移動体101の移動に応じて周囲の空間を繰り返し撮影して撮影毎に環境画像を生成する。撮影間隔は、例えば100ミリ秒である。
位置推定装置105は、記憶装置106に記憶された地図を参照する。「地図」とは、本来的には、移動体101が移動可能な空間の状況を、縮小し、記号化することで視覚化された平面的な線図である。しかしながら本明細書では、移動体101の動作開始前に撮影された空間の画像の集合を、「地図」と呼ぶことがある。このような基準画像の集合を地図と呼ぶ理由は、各基準画像が、空間内の各位置と関連付けられ、各位置を特定可能な特徴を含むからである。後述のように、移動体101は、撮影した環境画像の特徴点が、どの基準画像に存在するかを検出する。特徴点が所定以上の割合で一致したと判断された画像に関連付けられた位置が、移動体101の現在位置である。このような基準画像の集合を、本明細書では「地図」の範疇として捉える。
位置推定装置105は、ステレオカメラ103から出力された環境画像から複数の特徴点を抽出し、抽出結果と基準画像の集合とを照合し、照合結果に基づき移動体の位置および姿勢を推定する。位置推定装置105は、推定した移動体の位置および姿勢(orientation)を示す情報(本明細書において「位置情報」と称する)を順次出力する。
コントローラ107は、例えば、半導体集積回路であるマイクロコントローラユニット(マイコン)である。コントローラ107は、位置推定装置105から出力された位置情報を参照しながら駆動装置109を制御して、移動体101を移動させる。
本実施形態では、位置推定装置105は、環境画像から抽出された複数の特徴点と、基準画像の集合とを照合した際、両者が一致した程度を示す信頼度を出力する。コントローラ107は、走行中に当該信頼度が予め定められた閾値未満になり、かつ、環境画像中の画像オブジェクトが検出可能である場合には、照合結果を利用せず、環境画像の画像オブジェクトの検出結果を利用して自己位置を推定してもよい。移動体101は、1枚の環境画像を取得できればよいので、例えばGPSが利用できない屋内等の環境であっても自己位置を推定することができる。また、移動体101は、画像オブジェクトを利用することにより、特徴点が少ない、または、特徴点が大きく変動した場合でも、自己位置の推定精度を保つことができる。
図2は、本発明の例示的な移動体101の動作の概要を示すフローチャートである。フローチャートによる処理は、本来、ある1つのCPU、MPUまたはマイクロコントローラによって実行される処理の手順を示している。しかしながら図2のフローチャートは、理解の便宜のため、位置推定装置105およびコントローラ107の処理を混在させて示している。位置推定装置105およびコントローラ107は、互いにデータの授受を行いながら、各々の処理を実行する。ステップS1〜S5は位置推定装置105の処理である。ステップS6はコントローラ107の処理である。
ステップS1において、位置推定装置105は、ステレオカメラ103が周囲の空間を繰り返し撮影して撮影毎に生成した環境画像を受け取る。位置推定装置105は、ステップS2において、環境画像から複数の特徴点を抽出する。特徴点は、例えば画像内のエッジである。ステレオカメラ103は、複眼の視差情報によって奥行きの情報も取得できるため、エッジの前後または左右で奥行きが異なる場合には、当該エッジを、空間内に存在する物の境界線であると判断できる。
ステップS3において、位置推定装置105は、複数の特徴点と、複数の基準画像の各々とを照合する。例えば位置推定装置105は、抽出された複数の特徴点が有する関係が、複数の基準画像のどの基準画像に最もよく現われているかを照合する。位置推定装置105は、両者が一致する程度を、「一致度」として出力する。なお、複数の特徴点と全ての基準画像とを毎回照合すると処理に時間を要するため、照合する範囲を一部の基準画像に限定してもよい。
ステップS4において、位置推定装置105は、環境画像の中から画像オブジェクトを検出する。画像オブジェクトの例は上述の通りである。
ステップS5において、位置推定装置105は、ステップS3での照合結果、および/または、ステップS4での検出結果を利用して自己位置を推定し、位置情報を出力する。
ステップS6において、コントローラ107は、位置推定装置105から出力された位置情報を起点として、指定された目的地に向かって駆動装置109を駆動させて移動体101を移動させる。なお、ステップS6は、理解の便宜のために含めた処理であり、位置同定処理自体に必須ではない。そのため、図2ではステップS6を破線で示している。
なお、基準画像の撮影から時間が経過した場合、実際の空間の状況が変化することにより、実際の空間と基準画像とが相違する可能性が高くなる。このため、基準画像の撮影から時間が経過すると、基準画像は「地図」としての精度が低下する場合がある。そこで、移動体101は、通信回路を有し、この通信回路を介して外部から最新の基準画像を取得してもよい。通信回路は、更新された基準画像を外部の装置、例えば後述の運行管理装置、から受信する。
以下、本発明にかかる移動体が無人搬送車である場合のより具体的な例を説明する。本明細書では、略語を用いて、無人搬送車を「AGV」と記述することがある。なお、以下の説明は、矛盾がない限り、AGV以外の移動体、例えば移動ロボット、ドローン、または有人の車両などにも同様に適用することができる。
まず、下記項目(1)〜(6)において、外界センサとしてレーザレンジファインダを有するAGVの基本的な構成および動作を説明する。その後、項目(7)において、本実施形態にかかるAGV、すなわち、外界センサとしてステレオカメラを有するAGVの構成および動作を説明する。
(1)システムの基本構成
図3は、本発明かかる例示的な移動体管理システム100の基本構成例を示している。移動体管理システム100は、少なくとも1台のAGV10と、AGV10の運行管理を行う運行管理装置50とを含む。図3には、ユーザ1によって操作される端末装置20も記載されている。
AGV10は、走行に磁気テープなどの誘導体が不要な「ガイドレス式」走行が可能な無人搬送台車である。AGV10は、自己位置推定を行い、推定の結果を端末装置20および運行管理装置50に送信することができる。AGV10は、運行管理装置50からの指令に従って移動空間S内を自動走行することが可能である。AGV10は、さらに、人または他の移動体に追従して移動する「追尾モード」で動作することが可能である。
運行管理装置50は、各AGV10の位置をトラッキングし、各AGV10の走行を管理するコンピュータシステムである。運行管理装置50は、デスクトップ型PC、ノート型PC、および/または、サーバコンピュータであり得る。運行管理装置50は、複数のアクセスポイント2を介して、各AGV10と通信する。たとえば、運行管理装置50は、各AGV10が次に向かうべき位置の座標のデータを各AGV10に送信する。各AGV10は、定期的に、たとえば100ミリ秒ごとに自身の位置および姿勢(orientation)を示すデータを運行管理装置50に送信する。指示した位置にAGV10が到達すると、運行管理装置50は、さらに次に向かうべき位置の座標のデータを送信する。AGV10は、端末装置20に入力されたユーザ1の操作に応じて移動空間S内を走行することも可能である。端末装置20の一例はタブレットコンピュータである。典型的には、端末装置20を利用したAGV10の走行は地図作成時に行われ、運行管理装置50を利用したAGV10の走行は地図作成後に行われる。
図4は、3台のAGV10a、10bおよび10cが存在する移動空間Sの一例を示している。いずれのAGVも図中の奥行き方向に走行しているとする。AGV10aおよび10bは天板に載置された荷物を搬送中である。AGV10cは、前方のAGV10bに追従して走行している。なお、説明の便宜のため、図4では参照符号10a、10bおよび10cを付したが、以下では、「AGV10」と記述する。
AGV10は、天板に載置された荷物を搬送する方法以外に、自身と接続された牽引台車を利用して荷物を搬送することも可能である。図5Aは、接続される前のAGV10および牽引台車5を示している。牽引台車5の各足にはキャスターが設けられている。AGV10は牽引台車5と機械的に接続される。図5Bは、接続されたAGV10および牽引台車5を示している。AGV10が走行すると、牽引台車5はAGV10に牽引される。牽引台車5を牽引することにより、AGV10は、牽引台車5に載置された荷物を搬送できる。
AGV10と牽引台車5との接続方法は任意である。ここでは一例を説明する。AGV10の天板にはプレート6が固定されている。牽引台車5には、スリットを有するガイド7が設けられている。AGV10は、牽引台車5に接近し、プレート6をガイド7のスリットに差し込む。差し込みが完了すると、AGV10は、図示されない電磁ロック式ピンをプレート6およびガイド7に貫通させ、電磁ロックをかける。これにより、AGV10と牽引台車5とが物理的に接続される。
再び図3を参照する。各AGV10と端末装置20とは、たとえば1対1で接続されてBluetooth(登録商標)規格に準拠した通信を行うことができる。各AGV10と端末装置20とは、1または複数のアクセスポイント2を利用してWi−Fi(登録商標)に準拠した通信を行うこともできる。複数のアクセスポイント2は、たとえばスイッチングハブ3を介して互いに接続されている。図3には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には位置推定装置およびレーザレンジファインダが搭載されており、レーザレンジファインダの出力を利用して地図を作成できる。
AGV10は、ユーザの操作によってデータ取得モードに遷移する。データ取得モードにおいて、AGV10は、レーザレンジファインダを用いたセンサデータの取得を開始する。レーザレンジファインダは、周期的にたとえば赤外線または可視光のレーザビームを周囲に放射して周囲の移動空間Sをスキャンする。レーザビームは、たとえば、壁、柱等の構造物、床の上に置かれた物体等の表面で反射される。レーザレンジファインダは、レーザビームの反射光を受けて各反射点までの距離を計算し、各反射点の位置が示された測定結果のデータを出力する。各反射点の位置には、反射光の到来方向および距離が反映されている。測定結果のデータは「計測データ」または「センサデータ」と呼ばれることがある。
位置推定装置は、センサデータを記憶装置に蓄積する。移動空間S内のセンサデータの取得が完了すると、記憶装置に蓄積されたセンサデータが外部装置に送信される。外部装置は、たとえば信号処理プロセッサを有し、かつ、地図作成プログラムがインストールされたコンピュータである。
外部装置の信号処理プロセッサは、スキャンごとに得られたセンサデータ同士を重ね合わせる。信号処理プロセッサが重ね合わせる処理を繰り返し行うことにより、移動空間Sの地図を作成することができる。外部装置は、作成した地図のデータをAGV10に送信する。AGV10は、作成した地図のデータを内部の記憶装置に保存する。外部装置は、運行管理装置50であってもよいし、他の装置であってもよい。
外部装置ではなくAGV10が地図の作成を行ってもよい。この場合、上述した外部装置の信号処理プロセッサが行った処理を、AGV10のマイクロコントローラユニット(マイコン)などの回路が行えばよい。AGV10内で地図を作成する場合には、蓄積されたセンサデータを外部装置に送信する必要が無くなる。センサデータのデータ容量は、一般には大きいと考えられる。センサデータを外部装置に送信する必要がないため、通信回線の占有を回避できる。
なお、センサデータを取得するための移動空間S内の移動は、ユーザの操作に従ってAGV10が走行することによって実現し得る。たとえば、AGV10は、端末装置20を介して無線でユーザから前後左右の各方向への移動を指示する走行指令を受け取る。AGV10は、走行指令にしたがって移動空間S内を前後左右に走行し、地図を作成する。AGV10がジョイスティック等の操縦装置と有線で接続されている場合には、AGV10は、当該操縦装置からの制御信号にしたがって移動空間S内を前後左右に走行し、地図を作成してもよい。レーザレンジファインダを搭載した計測台車を人が押し歩くことによってセンサデータを取得してもよい。
なお、図3および図4には複数台のAGV10が示されているが、AGVは1台であってもよい。複数台のAGV10が存在する場合、ユーザ1は、端末装置20を利用して、登録された複数のAGVのうちから一台のAGV10を選択して、選択したAGV10に移動空間Sの地図を作成させることができる。
地図が作成されると、以後、各AGV10は、当該地図を利用して自己位置を推定しながら自動走行することができる。自己位置を推定する処理の説明は後述する。
(3)AGVの構成
図6は、例示的な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に接続される複数のモータも有するが、複数のモータは図6には示されていない。また、図6には、AGV10の右側に位置する1つの駆動輪11aおよび2つのキャスター11cおよび11eと、左後部に位置するキャスター11fとが示されているが、左側の駆動輪11bおよび左前部のキャスター11dはフレーム12の蔭に隠れているため明示されていない。4つのキャスター11c、11d、11eおよび11fは、自由に旋回することができる。以下の説明では、駆動輪11aおよび駆動輪11bを、それぞれ車輪11aおよび車輪11bとも称する。
AGV10は、さらに、障害物を検知するための少なくとも1つの障害物センサ19を備えている。図6の例では、フレーム12の4隅に4つの障害物センサ19が設けられている。障害物センサ19の個数および配置は、図6の例とは異なっていてもよい。障害物センサ19は、例えば、赤外線センサ、超音波センサ、またはステレオカメラなどの、距離計測が可能な装置であり得る。障害物センサ19が赤外線センサである場合、例えば一定時間ごとに赤外線を出射し、反射された赤外線が戻ってくるまでの時間を計測することにより、一定距離以内に存在する障害物を検知することができる。AGV10は、少なくとも1つの障害物センサ19から出力された信号に基づいて経路上の障害物を検知したとき、その障害物を回避する動作を行う。障害物を回避する動作は、例えば、障害物を避けて移動する動作である。
走行制御装置14は、AGV10の動作を制御する装置であり、主としてマイコン(後述)を含む集積回路、電子部品およびそれらが搭載された基板を含む。走行制御装置14は、上述した、端末装置20とのデータの送受信、および前処理演算を行う。
レーザレンジファインダ15は、たとえば赤外線または可視光のレーザビーム15aを放射し、当該レーザビーム15aの反射光を検出することにより、反射点までの距離を測定する光学機器である。AGV10のレーザレンジファインダ15は、たとえばAGV10の正面を基準として左右135度(合計270度)の範囲の空間に、0.25度ごとに方向を変化させながらパルス状のレーザビーム15aを放射し、各レーザビーム15aの反射光を検出する。これにより、0.25度ごと、合計1081ステップ分の角度で決まる方向における反射点までの距離のデータを得ることができる。なお、レーザレンジファインダ15が行う周囲の空間のスキャンは実質的に床面に平行であり、平面的(二次元的)である。しかしながら、レーザレンジファインダ15は高さ方向のスキャンを行ってもよい。
AGV10の位置および姿勢(向き)と、レーザレンジファインダ15のスキャン結果とにより、AGV10は、移動空間Sの地図を作成することができる。地図には、AGVの周囲の壁、柱等の構造物、床の上に載置された物体の配置が反映され得る。地図のデータは、AGV10内に設けられた記憶装置に格納される。
一般に、移動体の位置および姿勢は、ポーズ(pose)と呼ばれる。二次元面内における移動体の位置および姿勢は、XY直交座標系における位置座標(x,y)と、X軸に対する角度θによって表現される。AGV10の位置および姿勢、すなわちポーズ(x,y,θ)を、以下、単に「位置」と呼ぶことがある。
レーザビーム15aの放射位置から見た反射点の位置は、角度および距離によって決定される極座標を用いて表現され得る。レーザレンジファインダ15は極座標で表現されたセンサデータを出力する。ただし、レーザレンジファインダ15は、極座標で表現された位置を直交座標に変換して出力してもよい。
レーザレンジファインダの構造および動作原理は公知であるため、本明細書ではこれ以上の詳細な説明は省略する。レーザレンジファインダ15によって検出され得る物体の例は、人、荷物、棚、壁である。
レーザレンジファインダ15は、周囲の空間をセンシングしてセンサデータを取得するための外界センサの一例である。そのような外界センサの他の例としては、イメージセンサおよび超音波センサが考えられる。
走行制御装置14は、レーザレンジファインダ15の測定結果と、自身が保持する地図データとを比較して、AGV10の現在位置を推定することができる。なお、保持されている地図データは、他のAGV10が作成した地図データであってもよい。
図7Aは、AGV10の第1のハードウェア構成例を示している。また図7Aは、走行制御装置14の具体的な構成も示している。
AGV10は、走行制御装置14と、レーザレンジファインダ15と、2台のモータ16aおよび16bと、駆動装置17と、車輪11aおよび11bと、2つのロータリエンコーダ18aおよび18bとを備えている。
走行制御装置14は、マイコン14aと、メモリ14bと、記憶装置14cと、通信回路14dと、位置推定装置14eとを有している。マイコン14a、メモリ14b、記憶装置14c、通信回路14dおよび位置推定装置14eは通信バス14fで接続されており、相互にデータを授受することが可能である。レーザレンジファインダ15もまた通信インタフェース(図示せず)を介して通信バス14fに接続されており、計測結果である計測データを、マイコン14a、位置推定装置14eおよび/またはメモリ14bに送信する。
マイコン14aは、走行制御装置14を含むAGV10の全体を制御するための演算を行うプロセッサまたは制御回路(コンピュータ)である。典型的にはマイコン14aは半導体集積回路である。マイコン14aは、制御信号であるPWM(Pulse Width Modulation)信号を駆動装置17に送信して駆動装置17を制御し、モータ16aおよび16bに印加する電圧を調整させる。これによりモータ16aおよび16bの各々が所望の回転速度で回転する。
左右のモータ16aおよび16bの駆動を制御する1つ以上の制御回路(たとえばマイコン)を、マイコン14aとは独立して設けてもよい。たとえば、駆動装置17が、モータ16aおよび16bの駆動をそれぞれ制御する2つのマイコンを備えていてもよい。それらの2つのマイコンは、ロータリエンコーダ18aおよび18bから出力されたエンコーダ情報を用いた座標計算をそれぞれ行い、所定の初期位置からのAGV10の移動距離を推定してもよい。また、当該2つのマイコンは、エンコーダ情報を利用してモータ駆動回路17aおよび17bを制御してもよい。
メモリ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は、作成された地図と、走行中に取得されたレーザレンジファインダ15が出力したセンサデータとを利用して自己位置を推定しながら、記憶された走行経路に沿って走行することができる。
通信回路14dは、たとえば、Bluetooth(登録商標)および/またはWi−Fi(登録商標)規格に準拠した無線通信を行う無線通信回路である。いずれの規格も、2.4GHz帯の周波数を利用した無線通信規格を含む。たとえばAGV10を走行させて地図を作成するモードでは、通信回路14dは、Bluetooth(登録商標)規格に準拠した無線通信を行い、1対1で端末装置20と通信する。
位置推定装置14eは、地図の作成処理、および、走行時には自己位置の推定処理を行う。位置推定装置14eは、AGV10の位置および姿勢と、レーザレンジファインダ15のスキャン結果とにより、移動空間Sの地図を作成する。走行時には、位置推定装置14eは、レーザレンジファインダ15からセンサデータを受け取り、また、記憶装置14cに記憶された地図データMを読み出す。位置推定装置14eは、レーザレンジファインダ15のスキャン結果から作成された局所的地図データ(センサデータ)と、より広範囲の地図データMとのマッチングを行うことにより、地図データM上における自己位置(x,y,θ)を同定する。位置推定装置14eは、局所的地図データが地図データMに一致した程度を表す「信頼度」のデータを生成する。自己位置(x,y,θ)、および、信頼度の各データは、AGV10から端末装置20または運行管理装置50に送信され得る。端末装置20または運行管理装置50は、自己位置(x,y,θ)、および、信頼度の各データを受信して、内蔵または接続された表示装置に表示することができる。
本実施形態では、マイコン14aと位置推定装置14eとは別個の構成要素であるとしているが、これは一例である。マイコン14aおよび位置推定装置14eは、マイコン14aおよび位置推定装置14eの各動作を独立して行うことが可能な1つのチップ回路または半導体集積回路であってもよい。図7Aには、マイコン14aおよび位置推定装置14eを包括するチップ回路14gが示されている。以下では、マイコン14aおよび位置推定装置14eが別個独立に設けられている例を説明する。
2台のモータ16aおよび16bは、それぞれ2つの車輪11aおよび11bに取り付けられ、各車輪11aおよび11bを回転させる。つまり、2つの車輪11aおよび11bはそれぞれ駆動輪である。本明細書では、モータ16aおよびモータ16bは、それぞれAGV10の右輪(車輪11a)および左輪(車輪11b)を駆動するモータであるとして説明する。
移動体10は、さらに、車輪11aおよび11bの回転位置または回転速度を測定するエンコーダユニット18を備えている。エンコーダユニット18は、ロータリエンコーダ18aおよびロータリエンコーダ18bを含む。ロータリエンコーダ18aは、モータ16aから車輪11aまでの動力伝達機構のいずれかの位置における回転を計測する。ロータリエンコーダ18bは、モータ16bから車輪11bまでの動力伝達機構のいずれかの位置における回転を計測する。エンコーダユニット18は、ロータリエンコーダ18aおよび18bによって取得された信号を、マイコン14aに送信する。マイコン14aは、位置推定装置14eから受信した信号だけでなく、エンコーダユニット18から受信した信号を利用して、移動体10の移動を制御してもよい。
駆動装置17は、2台のモータ16aおよび16bの各々に印加される電圧を調整するためのモータ駆動回路17aおよび17bを有する。モータ駆動回路17aおよび17bの各々はいわゆるインバータ回路を含む。モータ駆動回路17aは、マイコン14aまたはモータ駆動回路17a内のマイコンから送信されたPWM信号によってモータ16aに流れる電流をオンまたはオフし、それによりモータ16aに印加される電圧を調整する。モータ駆動回路17bは、マイコン14aまたはモータ駆動回路17b内のマイコンから送信されたPWM信号によってモータ16bに流れる電流をオンまたはオフし、それによりモータ16bに印加される電圧を調整する。
図7Bは、AGV10の第2のハードウェア構成例を示している。第2のハードウェア構成例は、レーザ測位システム14hを有する点、および、マイコン14aが各構成要素と1対1で接続されている点において、第1のハードウェア構成例(図7A)と相違する。
レーザ測位システム14hは、位置推定装置14eおよびレーザレンジファインダ15を有する。位置推定装置14eおよびレーザレンジファインダ15は、たとえばイーサネット(登録商標)ケーブルで接続されている。位置推定装置14eおよびレーザレンジファインダ15の各動作は上述した通りである。レーザ測位システム14hは、AGV10のポーズ(x,y,θ)を示す情報をマイコン14aに出力する。
マイコン14aは、種々の汎用I/Oインタフェースまたは汎用入出力ポート(図示せず)を有している。マイコン14aは、通信回路14d、レーザ測位システム14h等の、走行制御装置14内の他の構成要素と、当該汎用入出力ポートを介して直接接続されている。
図7Bに関して上述した構成以外は、図7Aの構成と共通である。よって共通の構成の説明は省略する。
AGV10は、図示されていないバンパースイッチなどのセーフティセンサを備えていてもよい。AGV10は、ジャイロセンサなどの慣性計測装置を備えていてもよい。AGV10は、ロータリエンコーダ18aおよび18bまたは慣性計測装置などの内界センサによる測定データを利用すれば、AGV10の移動距離および姿勢の変化量(角度)を推定することができる。これらの距離および角度の推定値は、オドメトリデータと呼ばれ、位置推定装置14eによって得られる位置および姿勢の情報を補助する機能を発揮し得る。
(4)地図データ
図8A、図8B、図8C、図8D、図8E、および図8Fは、センサデータを取得しながら移動するAGV10を模式的に示す図である。ユーザ1は、端末装置20を操作しながらマニュアルでAGV10を移動させてもよい。あるいは、図7Aおよび図7Bに示される走行制御装置14を備えるユニット、または、AGV10そのものを台車に載置し、台車をユーザ1が手で押す、または牽くことによってセンサデータを取得してもよい。
図8Aには、レーザレンジファインダ15を用いて周囲の空間をスキャンするAGV10が示されている。所定のステップ角毎にレーザビームが放射され、スキャンが行われる。なお、図示されたスキャン範囲は模式的に示した例であり、上述した合計270度のスキャン範囲とは異なっている。
図8A〜図8Fの各々では、レーザビームの反射点の位置が、記号「・」で表される複数の黒点4を用いて模式的に示されている。レーザビームのスキャンは、レーザレンジファインダ15の位置および姿勢が変化する間に短い周期で実行される。このため、現実の反射点の個数は、図示されている黒点4の個数よりも遥かに多い。位置推定装置14eは、走行に伴って得られる黒点4の位置を、たとえばメモリ14bに蓄積する。地図データは、AGV10が走行しながらスキャンを継続して行うことにより、徐々に完成されてゆく。図8Bから図8Eでは、簡略化のためスキャン範囲のみが示されている。当該スキャン範囲は例示であり、上述した合計270度の例とは異なる。
地図は、地図作成に必要な量のセンサデータを取得した後、そのセンサデータに基づいて、このAGV10内のマイコン14aまたは外部のコンピュータを用いて作成してもよい。あるいは、地図は、移動しつつあるAGV10が取得したセンサデータに基づいてリアルタイムで作成してもよい。
図8Fは、完成した地図40の一部を模式的に示す図である。図8Fに示される地図では、レーザビームの反射点の集まりに相当する点群(Point Cloud)によって自由空間が仕切られている。地図の他の例は、物体が占有している空間と自由空間とをグリッド単位で区別する占有格子地図である。位置推定装置14eは、地図のデータ(地図データM)をメモリ14bまたは記憶装置14cに蓄積する。なお図示されている黒点の数または密度は一例である。
こうして得られた地図データは、複数のAGV10によって共有され得る。
AGV10が地図データに基づいて自己位置を推定するアルゴリズムの典型例は、ICP(Iterative Closest Point)マッチングである。前述したように、AGV10は、レーザレンジファインダ15のスキャン結果から作成された局所的地図データ(センサデータ)に対して、より広範囲の地図データMとのマッチングを行うことにより、地図データM上における自己位置(x,y,θ)を推定することができる。
AGV10が走行するエリアが広い場合、地図データMのデータ量が多くなる。そのため、地図の作成時間が増大したり、自己位置推定に多大な時間を要したりなどの不都合が生じる可能性がある。そのような不都合が生じる場合には、地図データMを、複数の部分地図のデータに分けて作成および記録してもよい。
図9は、4つの部分地図データM1、M2、M3、M4の組み合わせによって1つの工場の1フロアの全域がカバーされる例を示している。この例では、1つの部分地図データは、50m×50mの領域をカバーしている。X方向およびY方向のそれぞれにおいて隣接する2つの地図の境界部分に、幅5mの矩形の重複領域が設けられている。この重複領域を「地図切替エリア」と呼ぶ。AGV10は、1つの部分地図を参照しながら走行し、地図切替エリアに到達すると、隣接する他の部分地図を参照する走行に切り替える。部分地図の枚数は、4枚に限らず、AGV10が走行するフロアの面積、地図作成および自己位置推定を実行するコンピュータの性能に応じて適宜設定してよい。部分地図データのサイズおよび重複領域の幅も、上記の例に限定されず、任意に設定してよい。
(5)運行管理装置の構成例
図10は、運行管理装置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(図3)と有線で接続されており、アクセスポイント2を介して、AGV10と通信することができる。通信回路54は、AGV10に送信すべきデータを、バス57を介してCPU51から受信する。また通信回路54は、AGV10から受信したデータ(通知)を、バス57を介してCPU51および/またはメモリ52に送信する。
地図DB55は、AGV10が走行する工場等の内部の地図のデータを格納する。当該地図は、地図40(図8F)と同じであってもよいし、異なっていてもよい。地図DB55に格納される地図は、各AGV10の位置と1対1で対応関係を有する地図であれば、データの形式は問わない。たとえば地図DB55に格納される地図は、CADによって作成された地図であってもよい。
位置DB53および地図DB55は、不揮発性の半導体メモリ上に構築されてもよいし、ハードディスクに代表される磁気記録媒体、または光ディスクに代表される光学式記録媒体上に構築されてもよい。
画像処理回路56は、モニタ58に表示される映像のデータを生成する回路である。画像処理回路56は、専ら、管理者が運行管理装置50を操作する際に動作する。なお、モニタ59は、運行管理装置50と一体化されていてもよい。また画像処理回路56の処理をCPU51が行ってもよい。
(6)運行管理装置の動作
図11を参照しながら、運行管理装置50の動作の概要を説明する。図11は、運行管理装置50によって決定されたAGV10の移動経路の一例を模式的に示す図である。
AGV10および運行管理装置50の動作の概要は以下のとおりである。以下では、あるAGV10が現在、位置M1にあり、幾つかの位置を通過して、最終的な目的地である位置Mn+1(n:1以上の正の整数)まで走行する例を説明する。なお、位置DB53には、位置M1の次に通過すべき位置M2、位置M2の次に通過すべき位置M3等の各位置を示す座標データが記録されている。
運行管理装置50のCPU51は、位置DB53を参照して位置M2の座標データを読み出し、位置M2に向かわせる走行指令を生成する。通信回路54は、アクセスポイント2を介して走行指令をAGV10に送信する。
CPU51は、AGV10から、アクセスポイント2を介して、定期的に現在位置および姿勢を示すデータを受信する。こうして運行管理装置50は、各AGV10の位置をトラッキングすることができる。CPU51は、AGV10の現在位置が位置M2に一致したと判定すると、位置M3の座標データを読み出し、位置M3に向かわせる走行指令を生成してAGV10に送信する。つまり運行管理装置50は、AGV10がある位置に到達したと判定すると、次に通過すべき位置に向かわせる走行指令を送信する。これにより、AGV10は、最終的な目的位置Mn+1に到達することができる。上述した、AGV10の通過位置および目的位置は、「マーカ」と呼ばれることがある。
(7)AGVの構成・動作例
上述した項目(1)〜(6)は、一般的なAGVの構成および動作である。以下、本実施形態にかかるAGVの構成および動作のより具体的な例を説明する。なお、AGVには、これまでと同じ参照符号「10」を付して説明する。
図12は、本実施形態にかかるAGV10の構成を示している。
構成上、図12のAGV10が図7AのAGV10と相違する点は、図7Aのレーザレンジファインダ15が、図12ではステレオカメラ25に変更されている点である。他は共通である。
ステレオカメラ25は、対象物を複数の異なる方向から同時に撮影することにより、画像のみならず、奥行き方向の情報も記録できるようにしたカメラである。本実施形態では、ステレオカメラ25は、水平方向に数センチメートルから数十センチメートル離れて並べて配置された2つのデジタルカメラである。2つのデジタルカメラは、ステレオカメラ25の右眼および左眼に対応し、それぞれがレンズとレンズに入射した光を受ける撮像素子とを有する。各撮像素子は、画像信号を出力するCMOSイメージセンサまたはCCDイメージであり得る。ステレオカメラ25は、同期して撮影された左右のデジタルカメラの画像の視差を算出し、視差に対応する被写体までの距離を算出する演算回路を備えている。視差の算出方法は公知であるから、本明細書において具体的な説明は省略する。
なお、図7Bの構成に関しても、レーザレンジファインダ15をステレオカメラ25に変更すれば、本実施形態にかかるAGV10として採用することができる。図7Bの構成に対応する、ステレオカメラ25を有するAGV10の図示は省略する。
なお、本実施形態にかかるAGV10は、ステレオカメラおよびレーザレンジファインダを有していてもよい。すなわち、本実施形態は、レーザレンジファインダの使用を排除するものではない。
一方、データに関して図12のAGV10が図7AのAGV10と相違する点は、地図データMの実体である。外界センサとしてステレオカメラ25を採用したことに伴い、図12における記憶装置14cには、空間の各位置に関連付けられた複数の基準画像が格納されている。各基準画像は、空間80(図13A参照)を予め撮影して取得された画像である。基準画像を撮影時の位置は予め分かっているため、各基準画像には各基準画像の空間80内の位置情報を関連付けることができる。
図13Aは、AGV10が走行する空間80を、ステレオカメラ25によって撮影した環境画像90の例を模式的に示している。図示される環境画像90は、例えばステレオカメラ25の左眼の画像であるとし、右眼の画像の記載は省略する。図中の破線の矩形は、環境画像90の範囲、換言するとステレオカメラ25の左眼の視野を表している。
空間80には種々の設置物が存在する。例えば、図13Aには、キャビネット82、奥行き方向に細長い机84が存在することが理解される。
AGV10の位置推定装置14eは、ステレオカメラ25から環境画像90を受け取り、環境画像90を解析する。ここでいう「解析」とは、特徴点の抽出、および、画像オブジェクトの検出である。
AGV10の位置推定装置14eは、予め「画像処理規則」を有している。「画像処理規則」は、特徴点を抽出する規則と、画像オブジェクトを検出する規則を含む。
特徴点を抽出する規則は、環境画像90内の、隣接する画素間の輝度差が閾値以上である両方の画素を、特徴点であると認定する規則である。より端的には、特徴点を抽出する規則は、環境画像90内の「エッジ」を構成する画素群を、特徴点にする規則である。特徴点は、他の方法によって決定されてもよく、その方法が特徴点を抽出する規則として規定されていればよい。位置推定装置14eは、環境画像90内に、特徴点を抽出する規則に合致する画素が存在する場合に、当該画素を特徴点として検出する。
画像オブジェクトを検出する規則は、平行な2本の白線を画像オブジェクトであると認定する規則である。本実施形態では、画像オブジェクトを検出する規則の例として、平行な2本の白線は、空間80の床面に描かれた、AGV10の走行専用レーンの標示である、という意味がシステム管理者によって与えられている。画像オブジェクトを検出する規則の他の例として、平行な2本の白線の間の白の点線は中央分離帯であるとし、黄色の直線は、積載物の置き場所である、という規則を設けることもできる。位置推定装置14eは、環境画像90内に、画像オブジェクトを検出する規則に合致する画素群が存在する場合に、当該画素群を画像オブジェクトとして検出する。
図13Aには、解析結果として、「○」(例えば符号91)で表現された、抽出された多数の特徴点と、平行な2本の白線の画像オブジェクト92Aおよび92Bが示されている。
上述の例では、特徴点および画像オブジェクトは、いずれも環境画像90の全体から抽出され、検出されることを想定していた。
しかしながら、本実施形態は、特徴点の抽出対象領域および画像オブジェクトの検出対象領域を予め定めておいてもよい。図13Bは、環境画像90を、特徴点の抽出対象の領域90Aと、画像オブジェクトの検出対象の領域90Bとに分けた例を模式的に示している。本実施形態は、環境画像90を解析する領域を制限することにより、処理負荷を軽減することができる。図13Bでは、領域90Aで特徴点を示す「○」が抽出され、領域90Bで画像オブジェクト92Aおよび92Bが検出されていることを示している。
図13Bの例では、領域90Bが領域90Aの下方に位置している。その理由は、画像オブジェクトを検出する規則が、床面に描かれた標示を画像オブジェクトであるとして検出することを想定しているからである。したがって、領域90Aおよび90Bの位置関係は、上述した「画像処理規則」に応じて決定され得る。さらに、領域90Aおよび90Bは、環境画像90を2分割した一方と他方でなくてもよいし、領域90Aおよび/または90Bがそれぞれ複数設けられてもよい。
AGV10の位置推定装置14eは、抽出した複数の特徴点を、記憶装置14cに地図データMとして記憶された複数の基準画像の各々と照合する。より具体的に説明する。複数の基準画像は、予め撮影されて記憶装置14cに記憶されている。このとき、位置推定装置14eは、各基準画像に、上述した特徴点を抽出する規則を適用して、各基準画像内の特徴点を予め抽出しておく。これにより、位置推定装置14eは、抽出した特徴点同士を照合することができる。例えば位置推定装置14eは、環境画像90の複数の特徴点の位置関係が、どの基準画像の複数の特徴点の位置関係と相関が大きいかを判定する。その結果、位置推定装置14eは、抽出した特徴点と相関が最も大きくなる特徴点を有する基準画像を決定する。
相関を算出する方法は任意である。相関の大きさは、相関係数の大きさを求めることによって定量的に評価することができる。例えば環境画像90の特徴点と、ある基準画像の特徴点との相関係数は、共分散を環境画像90の特徴点の標準偏差で除算し、かつ、基準画像の特徴点の標準偏差で除算することによって求められる。
なお、本実施形態は、各基準画像とともに、または各基準画像に代えて、特徴点を表すデータを記憶装置14cに記憶させてもよい。これにより、位置推定装置14eは、各基準画像の特徴点を都度抽出する必要がなくなる。
位置推定装置14eは、決定した基準画像に関連付けられている位置を、AGV10の現在の位置であると推定する。
位置推定装置14eは、検出した画像オブジェクトの意味から、自己位置を推定することができる。そのために、本実施形態は、画像オブジェクトと空間80内の位置とを関連付けたデータを予め用意しておく。例えば、位置に応じて特定の画像オブジェクトの見え方(向き、大きさ等)が変わり得るため、見え方と、見え方に応じた位置とを関連付けることができる。特定の画像オブジェクトが空間80内に1箇所しか存在しない場合には、画像オブジェクトと位置とを一意に関連付けることができる。あるいは、複数の画像オブジェクトが存在する場合には、空間80内で当該組み合わせが検出される位置が限定され得るため、位置を関連付けることができる。このように、位置推定装置14eは、画像オブジェクトと当該データとを利用することによっても、検出した画像オブジェクトの位置を決定することができる。
図14は、特徴点を用いた自己位置の推定と、画像オブジェクトを用いた自己位置の推定とを混在させて走行するAGV10を説明するための図である。AGV10は、図面の右方向に走行しつつあるとする。また、位置110の近傍は、環境画像の特徴点と基準画像の特徴点とが比較的よく一致し、走行に伴う位置の変化を精度良く検出することができているとする。なお、位置110の近傍においても、AGV10の位置推定装置14eは、画像オブジェクトに基づく自己位置推定を行い、特徴点に基づく自己位置推定を補間し、位置推定精度を向上させてもよい。このときの位置推定装置14eの処理は、図2に示すフローチャートによって表されている。よって再度の説明は省略する。
AGV10が走行を継続して位置Pに到達すると、位置Pの両側の壁112が単調であること等により、環境画像の特徴点と基準画像の特徴点との一致の程度である信頼度が閾値未満にまで低下し、自己位置の推定精度が低下する場合が生じ得る。そのような位置は、事前に把握可能である。そこで、そのような位置には、例えば2本の白線114を用意し、2本の白線114に、位置に応じて複数のマークを付与しておく。AGV10は、2本の白線114の検出に伴って各マークを検出し得る。本実施の形態において各マークと位置情報とを関連付けたデータを用意すれば、位置推定装置14eは、自己位置を精度よく推定できる。この場合、AGV10は、特徴点の照合結果は利用せず、画像オブジェクトによる自己位置推定を行えばよい。このときの位置推定装置14eの処理は、図2に示すフローチャートにおいて、結果的にステップS4およびS5が実行されることを意味する。
上述の実施形態では、AGV10は予め基準画像の集合を保持し、ステレオカメラ25によって取得した画像の特徴点と、各基準画像の特徴点とを比較することで、現在の位置を推定した。しかしながら、本発明は、そのような基準画像を予め用意しておかなくても、AGV10に自己位置を推定させながら動作させることが可能である。
例えば、AGV10が、ある被写体に近付きながら、ステレオカメラ25で当該被写体を撮影する状況を考える。ステレオカメラ25の左眼および右眼の画像に存在する被写体像のある特徴点の視差(特徴点の変位量および変位方向)は、AGV10の移動に伴って変化する。視差の変化量は、AGV10が被写体に近付いた距離に比例する。AGV10が被写体から離れる場合や、被写体を右または左に見ながら移動する場合も同様である。つまり、AGV10は、視差の変化から、前回の撮影時から今回の撮影時までのAGV10の相対的な移動量を算出できる。移動を開始する絶対座標が正しく与えられさえすれば、AGV10は、相対的な移動量を累積して現在の位置を把握しながら移動することができる。上記方法によれば、本発明は、基準画像を予め用意する必要はない。
さらに、本発明は、AGV10に画像オブジェクトを認識させ、当該オブジェクトに何らかの意味、例えば走行禁止領域を示すという意味、を与えておけば、AGV10をその意味に従って走行させることができる。例えば、画像オブジェクトが黄色で、Xcmの幅を有し、Ycm以上の長さを有する場合には、積載物を置く領域である、という意味を持たせておく。一般に、AGV10は、積載物の荷下ろしのために当該領域に近接して停止することはあっても、横切ることはない。そこで、走行中のAGV10が上述の条件に合致する画像オブジェクトを検出した場合は、AGV10は、走行途中に画像オブジェクトに対応する線を横切らないように走行させることができる。
上記の包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラム、または記録媒体によって実現されてもよい。あるいは、システム、装置、方法、集積回路、コンピュータプログラム、および記録媒体の任意な組み合わせによって実現されてもよい。
本出願は、2018年3月30日に出願された日本特許出願である特願2018−068382号に基づく優先権を主張し、当該日本特許出願に記載されたすべての記載内容を援用する。