<用語>
本開示の実施形態を説明する前に、本明細書において使用する用語の定義を説明する。
「無人搬送車」(AGV)とは、本体に人手または自動で荷物を積み込み、指示された場所まで自動走行し、人手または自動で荷卸しをする無軌道車両を意味する。「無人搬送車」は、無人牽引車および無人フォークリフトを含む。
「無人」の用語は、車両の操舵に人を必要としないことを意味しており、無人搬送車が「人(たとえば荷物の積み下ろしを行う者)」を搬送することは除外しない。
「無人牽引車」とは、人手または自動で荷物の積み込み荷卸しをする台車を牽引して、指示された場所まで自動走行する無軌道車両である。
「無人フォークリフト」とは、荷物移載用のフォークなどを上下させるマストを備え、フォークなどに荷物を自動移載し指示された場所まで自動走行し、自動荷役作業をする無軌道車両である。
「無軌道車両」とは、車輪と、車輪を回転させる電気モータまたはエンジンを備える移動体(vehicle)である。
「移動体」とは、人または荷物を載せて移動する装置であり、移動のための駆動力(traction)を発生させる車輪、二足または多足歩行装置、プロペラなどの駆動装置を備える。本開示における「移動体」の用語は、狭義の無人搬送車のみならず、モバイルロボット、サービスロボット、およびドローンを含む。
「自動走行」は、無人搬送車が通信によって接続されるコンピュータの運行管理システムの指令に基づく走行と、無人搬送車が備える制御装置による自律的走行とを含む。自律的走行には、無人搬送車が所定の経路に沿って目的地に向かう走行のみならず、追尾目標に追従する走行も含まれる。また、無人搬送車は、一時的に作業者の指示に基づくマニュアル走行を行ってもよい。「自動走行」は、一般には「ガイド式」の走行および「ガイドレス式」の走行の両方を含むが、本開示では「ガイドレス式」の走行を意味する。
「ガイド式」とは、誘導体を連続的または断続的に設置し、誘導体を利用して無人搬送車を誘導する方式である。
「ガイドレス式」とは、誘導体を設置せずに誘導する方式である。本開示の実施形態における無人搬送車は、自己位置推定装置を備え、ガイドレス式で走行することができる。
「自己位置推定装置」は、レーザレンジファインダなどの外界センサによって取得されたセンサデータに基づいて環境地図上における自己位置を推定する装置である。
「外界センサ」は、移動体の外部の状態をセンシングするセンサである。外界センサには、たとえば、レーザレンジファインダ(測域センサともいう)、カメラ(またはイメージセンサ)、LIDAR(Light Detection and Ranging)、ミリ波レーダ、および磁気センサがある。
「内界センサ」は、移動体の内部の状態をセンシングするセンサである。内界センサには、たとえばロータリエンコーダ(以下、単に「エンコーダ」と称することがある)、加速度センサ、および角加速度センサ(たとえばジャイロセンサ)がある。
「SLAM(スラム)」とは、Simultaneous Localization and Mappingの略語であり、自己位置推定と環境地図作成を同時に行うことを意味する。
<例示的な実施形態>
以下、添付の図面を参照しながら、本開示による移動体および移動体システムの一例を説明する。なお、必要以上に詳細な説明は省略する場合がある。たとえば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。本発明者らは、当業者が本開示を十分に理解するために添付図面および以下の説明を提供する。これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
本開示において説明する移動体は、被搬送物であるワークを載置する載置テーブルを有し、自律的に移動しながらワークを搬送することが可能である。そのような移動体の例は、食品工場においてワークとして食品を搬送する無人搬送車(例えば図6)である。以下、図1および図2を参照しながら、本開示の移動体の構成および動作の概要を説明する。
図1は、本開示の例示的な実施形態における移動体の概略構成を示すブロック図である。移動体101は、搬送テーブル103と、コントローラ105と、駆動装置107とを有する。
搬送テーブル103は、ワークを載置する平板である。ただし平板であることは一例であり、必須ではない。
コントローラ105は、駆動装置107を制御して移動体101を移動させる。コントローラ105は、例えば中央演算処理装置(CPU)またはデジタル信号処理プロセッサなどの集積回路(IC)チップであり得る。コントローラ105は、不図示のメモリに格納されているコンピュータプログラムを実行する。コンピュータプログラムを実行したコントローラ105の制御により、移動体101は後述の動作を行ってワークを搬送する。なお、メモリは、例えばRAMなどの半導体揮発性メモリ、フラッシュROMなどの半導体不揮発性メモリ、およびハードディスクドライブなどのストレージ装置を含み得る。メモリの少なくとも一部は、取り外し可能な記録媒体であってもよい。
駆動装置107は、移動体101を移動させる機構を備えている。駆動装置109は、例えば少なくとも1台の駆動用電気モータ(以下、単に「モータ」と称する)、および、当該モータを制御するモータ制御回路を備え得る。
本実施形態にかかる移動体101のコントローラ105は、コンピュータプログラムに従って、以下の動作を実現する。図2は、移動体101の動作の手順を示すフローチャートである。図2のフローチャートは主としてコントローラ105によって実行される。
ステップS1において、コントローラ105は、ある位置(第1位置)で搬送テーブル103上にワークが載置されたこと、すなわちワークの受け取りを検出する。受け取りは、例えば搬送テーブル103に設けられた重量センサによって検出されても良いし、搬送テーブル103に設けられた物理的なスイッチの押下によって検出されても良い。第1位置は、例えばコンベヤの排出口である。
ステップS2において、コントローラ105は、駆動装置107を制御して、後述のラックが予め設置された位置(第2位置)に移動体101を移動させる。ステップS3において、移動体が第2位置に到着すると、ワークはラックに移設される。例えば、コントローラ105が移動体をラック内に進入させることで、ワークが自動的にラックに移設されても良い。または、コントローラ105が後述の「リフタ」を動作させてラック上に載置することによってワークがラックに移設されても良い。
次に、ステップS4において、コントローラ105は、移動体101の向きを変更させる。例えばコントローラ105は、移動体101をその場で90度旋回させる。その後、コントローラ105は、ステップS5において、ラックに移設されたワークを再度搬送テーブル103上で受け取り、ステップS6において、移動体101をワークの引き渡し位置(第3位置)まで移動させる。
第3位置に到達すると、コントローラ105はステップS7を実行する。ステップS7において、コントローラ105は、ワークを、例えば次のコンベヤに引き渡す。
ここで、ワークの向き(角度)に注目する。移動体101は、搬送の途中で、ワークをラックに仮置きし、所定の角度だけ旋回する。その結果、ワークの仮置きの前後で、旋回した角度分、移動体101とワークとの相対的な位置関係が変化する。例えばコントローラ105が、移動体101をその場で時計回りにK度旋回させたとする。移動体101がワークを再度受け取った後は、ワークは移動体101から見て反時計回りにK度回転したことになる。なお、本実施形態では「K度」は、360度またはその整数倍の回転を含まない、任意の角度である。
移動体の進行方向を基準とするワークの向きに着目すれば、ワーク受け取り時の第1位置におけるワークの向きと、ワーク引き渡し時の第3位置におけるワークの向きとは、互いに異なる。
コンベヤなどの工場設備の配置の事情等から、移動体101がワークを受け取る際のワークの向き、および、移動体101がワークを引き渡す際のワークの向きはそれぞれ独立して決定され得る。移動体101は、受け取り時および引き渡し時のワークの各向きが決定された状況下、ワークを搬送する。そのような、ワークの受け取り時と引き渡し時との間でワークの向きを変えることが要請される場合、上述した移動体101の動作によれば、非常に容易に当該要請に応えることができる。従来、搬送テーブルに旋回機構を搭載して、ワークの向きを変更していたが、本開示の実施形態によれば、旋回機構よりも遙かにコストが低いラックと移動体の動作とによってワークの向きの変更を実現できる。
以下、移動体が無人搬送車である場合のより具体的な例を説明する。本明細書では、略語を用いて、無人搬送車を「AGV」と記述することがある。なお、以下の説明は、矛盾がない限り、AGV以外の移動体、例えば移動ロボット、ドローン、または有人の車両などにも同様に適用することができる。
上述の動作に関連する動作の説明は、「(7)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がジョイスティック等の操縦装置と有線で接続されている場合には、当該操縦装置からの制御信号にしたがって移動空間S内を前後左右に走行し、地図を作成してもよい。レーザレンジファインダを搭載した計測台車を人が押し歩くことによってセンサデータを取得してもよい。
なお、図3および図4には複数台のAGV10が示されているが、AGVは1台であってもよい。複数台のAGV10が存在する場合、ユーザ1は端末装置20を利用して、登録された複数のAGVのうちから一台の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が作成した地図データであってもよい。
図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の駆動を制御する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の位置および姿勢とレーザレンジファインダのスキャン結果とにより、移動空間Sの地図を作成する。走行時には、位置推定装置14eは、レーザレンジファインダ15からセンサデータを受け取り、また、記憶装置14cに記憶された地図データMを読み出す。レーザレンジファインダ15のスキャン結果から作成された局所的地図データ(センサデータ)を、より広範囲の地図データMとのマッチングを行うことにより、地図データM上における自己位置(x, y, θ)を同定する。位置推定装置14eは、局所的地図データが地図データMに一致した程度を表す「信頼度」のデータを生成する。自己位置(x, y, θ)、および、信頼度の各データは、AGV10から端末装置20または運行管理装置50に送信され得る。端末装置20または運行管理装置50は、自己位置(x, y, θ)、および、信頼度の各データを受信して、内蔵または接続された表示装置に表示することができる。
本実施形態では、マイコン14aと位置推定装置14eとは別個の構成要素であるとしているが、これは一例である。マイコン14aおよび位置推定装置14eの各動作を独立して行うことが可能な1つのチップ回路または半導体集積回路であってもよい。図7Aには、マイコン14aおよび位置推定装置14eを包括するチップ回路14gが示されている。以下では、マイコン14aおよび位置推定装置14eが別個独立に設けられている例を説明する。
2台のモータ16aおよび16bは、それぞれ2つの車輪11aおよび11bに取り付けられ、各車輪を回転させる。つまり、2つの車輪11aおよび11bはそれぞれ駆動輪である。本明細書では、モータ16aおよびモータ16bは、それぞれAGV10の右輪および左輪を駆動するモータであるとして説明する。
移動体10は、さらに、車輪11aおよび11bの回転位置または回転速度を測定するエンコーダユニット18をさらに備えている。エンコーダユニット18は、第1ロータリエンコーダ18aおよび第2ロータリエンコーダ18bを含む。第1ロータリエンコーダ18aは、モータ16aから車輪11aまでの動力伝達機構のいずれかの位置における回転を計測する。第2ロータリエンコーダ18bは、モータ16bから車輪11bまでの動力伝達機構のいずれかの位置における回転を計測する。エンコーダユニット18は、ロータリエンコーダ18aおよび18bによって取得された信号を、マイコン14aに送信する。マイコン14aは、位置推定装置14eから受信した信号だけでなく、エンコーダユニット18から受信した信号を利用して、移動体10の移動を制御してもよい。
駆動装置17は、2台のモータ16aおよび16bの各々に印加される電圧を調整するためのモータ駆動回路17aおよび17bを有する。モータ駆動回路17aおよび17bの各々はいわゆるインバータ回路を含む。モータ駆動回路17aおよび17bは、マイコン14aまたはモータ駆動回路17a内のマイコンから送信されたPWM信号によって各モータに流れる電流をオンまたはオフし、それによりモータに印加される電圧を調整する。
図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は、ジャイロセンサなどの慣性計測装置を備えていてもよい。ロータリエンコーダ18aおよび18bまたは慣性計測装置などの内界センサによる測定データを利用すれば、AGV10の移動距離および姿勢の変化量(角度)を推定することができる。これらの距離および角度の推定値は、オドメトリデータと呼ばれ、位置推定装置14eによって得られる位置および姿勢の情報を補助する機能を発揮し得る。
(4)地図データ
図8A~図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)マッチングである。前述したように、レーザレンジファインダ15のスキャン結果から作成された局所的地図データ(センサデータ)を、より広範囲の地図データMとのマッチングを行うことにより、地図データM上における自己位置(x, y, θ)を推定することができる。
AGV10が走行するエリアが広い場合、地図データMのデータ量が多くなる。そのため、地図の作成時間が増大したり、自己位置推定に多大な時間を要するなどの不都合が生じる可能性がある。そのような不都合が生じる場合には、地図データMを、複数の部分地図のデータに分けて作成および記録してもよい。
図9は、4つの部分地図データM1、M2、M3、M4の組み合わせによって1つの工場の1フロアの全域がカバーされる例を示している。この例では、1つの部分地図データは50m×50mの領域をカバーしている。X方向およびY方向のそれぞれにおいて隣接する2つの地図の境界部分に、幅5mの矩形の重複領域が設けられている。この重複領域を「地図切替エリア」と呼ぶ。1つの部分地図を参照しながら走行しているAGV10が地図切替エリアに到達すると、隣接する他の部分地図を参照する走行に切り替える。部分地図の枚数は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)と同じであってもよいし、異なっていてもよい。各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の動作例
次に、AGV10の動作のより具体的な例を説明する。
図12は、ワーク80を搬送する10を模式的に示している。本実施形態では、後述するラックにワーク80を仮置き(移設)するため、ワーク80は、所定の方向に関して搬送テーブル13よりも長い。図12の例では、矢印によって示すAGV10の進行方向と垂直な車幅方向に関して、ワーク80は搬送テーブル13よりも長い。進行方向または他の方向に関して、ワーク80が搬送テーブル13よりも長くてもよい。
図13Aおよび図13Bは、本実施形態による動作を行うAGV10の位置および姿勢の時系列的な変化を示している。搬送に伴うワーク80の向きを明確化するため、ワーク80を示す矩形の1つの角に切り欠きを設けた。
まず図13Aを参照する。以下のAGV10の動作は、コントローラ105(図1)に対応するマイコン14aの制御に従って実現される。
初めに、AGV10は、コンベヤ200から排出されたワーク80を位置P1において受け取る。その後、AGV10は、ラック210が設置された位置P2まで移動する。位置P2には、ラック210が予め設置されている。AGV10の移動は、位置推定装置14eによって推定した位置を用いて行われる。ただし、AGV10は位置推定装置14eを有していなくてもよく、例えば予め定められた動作パターンにしたがって走行してもよい。位置P2に到着すると、ワーク80はラック210に移設される。その後、AGV10はその場で旋回する。
図14Aは、ワーク80を搬送しながらラック210に向かうAGV10を示している。例示的な実施形態では、ラック210は複数本のフレームによって組み立てられた構造体である。参考のため、X軸、Y軸およびZ軸を示した。
ラック210は、X軸方向に所定の幅の開口212を有している。本実施形態では、「所定の幅」は、X軸方向に関して、ワーク80より短い。また、開口212においてワーク80の下面の位置は、ラック210の高さと概ね一致する。また、本実施形態では、ラック210の開口212からY軸方向に向かって、フレーム214が+Z軸方向に傾斜している。これにより、ワーク80を搬送するAGV10が開口212からラック210の内部に進入すると、ワーク80はラック210のY軸方向の2本の横棒によって支持され、やがてAGV10の搬送テーブル13から離脱して、ラック210上に移設される。図14Bは、ラック210に移設されたワーク80を示している。
図14Bの状態で、AGV10はその場で時計回りにK度旋回する。「K度」の一例は半時計回り方向を正とすると、-90度(時計回り方向に90度)である。これにより、AGV10の進行方向の向きを変更することができる。
K度旋回後、AGV10は再び開口212からラック210の外部に出る。その途上、搬送テーブル13と再びワーク80とが再び接触し、やがてAGV10は再度搬送テーブル13上でワーク80を受け取る。図14Cは、ワーク80を受け取り、かつ向きが変更されたAGV10を示している。進行方向が矢印で示されている。なおAGV10の移動経路が破線で例示されている。
図13Bを参照する。ワーク80を再度搬送テーブル13に載置したAGV10は、次に位置P3に向かって走行する。位置P3はワーク80の引き渡し位置であり、例えば他のコンベヤ220へのワーク80の供給口である。位置P3に到着すると、AGV10はワーク80をコンベヤ220に引き渡す。引き渡し処理は、例えば位置P3に設置されたロボットアームを用いて行われ得る。
位置P2にラック210を設け、ワーク80を仮置きしてAGV10を旋回動作させることにより、位置P1で受け取った際のワーク80の向きと、位置P3で引き渡す際のワーク80の向きとを変えることができた。これにより、位置P3におけるコンベヤ220へのワーク80の引き渡し方向がコンベヤ200の排出方向と異なっていても、ワーク80をコンベヤ220に適切に供給することができる。非常に簡易な構造体(ラック210)とAGV10の基本的な動作により、安価にワークの向きを変更する仕組みを実現することができた。
次に、異なる機構を用いたワーク80の向きの変更方法を説明する。
図15は、リフタ機構19が実装されたAGV10を示している。例示的な実施形態では、リフタ機構19は、不図示のモータまたは油圧シリンダによって1以上のX字状アーム(例えばアーム19a、19b)が伸縮し、搬送テーブル13を水平に上昇および下降させる昇降装置である。図示されたリフタ機構19は、パンタグラフ式リフタと呼ばれることがある。なお、リフタ機構19は公知であるから、本明細書ではこれ以上の詳細な説明は省略する。本実施形態では、リフタ機構19の昇降動作は、マイコン14aによって制御される。
以下、図16A~図16Hを参照しながら、リフタ機構19を有するAGV10が、位置P2(図13A、13B)において実行する動作を説明する。位置P2以外の動作は、図13Aおよび図13B等を参照しながら説明した動作と同じである。よって再度の説明は省略する。なお、特に言及する場合を除き、ラック210の構成、搬送テーブル13とワーク80とラック210のX軸方向に関する寸法は、これまでの説明と同じである。
図16Aは、ワーク80を搬送するAGV10とラック210との関係を示す側面図である。参考のため、X軸、Y軸およびZ軸を示した。なお、図16A~図16Hに示す例では、ラック210のフレーム214はY軸に平行である。
図16Bは、ラック210から離れた位置でリフタ機構19を伸長させたAGV10を示している。Z軸方向に関して、ワーク80の下面の位置は、フレーム214の+Z軸側の面よりも高い。この状態でAGV10はラック210の開口212に向かって走行する。
図16Cは、ラック210の開口212に進入したAGV10を示している。リフタ機構19は引き続き伸長した状態である。
図16Dは、搬送テーブル13が下降したAGV10を示している。搬送テーブル13を下降させることにより、ワーク80はラック210上に移設される。
図16Eは、その場で時計回りに90度旋回したAGV10を示している。ワーク80は引き続きラック210上に載置されている。
図16Fは、リフタ機構19を伸長させたAGV10を示している。リフタ機構19の上昇動作によってAGV10の搬送テーブル13が-Z方向からワーク80に接触し、さらにワーク80をラック210から持ち上げる。
図16Gは、その場で時計回りにさらに90度旋回したAGV10を示している。ワーク80は、AGV10の旋回動作に伴って時計回りに90度回転する。
図16Hは、ラック210の開口212から脱出したAGV10を示している。この後、AGV10はリフタ機構19を下降させて、位置P3まで走行する。
上述の動作により、ワーク80の向きは位置P2への到達前後で、90度変化している。図16Bおよび図16Hには、向きが異なるワーク80がそれぞれ示されている。リフタ機構19を設けてワーク80をラック210に一時的に預け、その間にAGV10が旋回することにより、先に説明した例と同様、非常に簡易な構造体(ラック210)とAGV10の基本的な動作により、安価にワークの向きを変更する仕組みを実現することができる。
なお、本例では、AGV10は2回の旋回動作を行っている(図16Eおよび図16G)。しかしながらこれらは一例である。AGV10が図14Cに示すような経路で開口212から脱出できる場合には、2回目の旋回動作を省略することができる。