(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-12
(45)【発行日】2024-04-22
(54)【発明の名称】ビークルユニット、ビークルの制御方法、及びプログラム
(51)【国際特許分類】
G01C 21/04 20060101AFI20240415BHJP
G05D 1/229 20240101ALI20240415BHJP
G05D 1/617 20240101ALI20240415BHJP
G05D 1/695 20240101ALI20240415BHJP
G05D 1/43 20240101ALN20240415BHJP
G05D 1/46 20240101ALN20240415BHJP
G05D 105/20 20240101ALN20240415BHJP
G05D 109/10 20240101ALN20240415BHJP
G05D 109/20 20240101ALN20240415BHJP
【FI】
G01C21/04
G05D1/229
G05D1/617
G05D1/695
G05D1/43
G05D1/46
G05D105:20
G05D109:10
G05D109:20
(21)【出願番号】P 2020130591
(22)【出願日】2020-07-31
【審査請求日】2023-02-02
(73)【特許権者】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(73)【特許権者】
【識別番号】504139662
【氏名又は名称】国立大学法人東海国立大学機構
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】荒木 亮次
(72)【発明者】
【氏名】藤島 泰郎
(72)【発明者】
【氏名】高木 一茂
(72)【発明者】
【氏名】東 俊一
【審査官】松本 泰典
(56)【参考文献】
【文献】特開2020-23283(JP,A)
【文献】特開2020-60924(JP,A)
【文献】特開2004-280213(JP,A)
【文献】特開2014-211851(JP,A)
【文献】特開2009-25898(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/43
(57)【特許請求の範囲】
【請求項1】
進入禁止場所の位置を示す情報と目的位置の情報とに基づいて、自身が移動する経路であるリーダー用経路を設定する第1ビークルと、
前記リーダー用経路に基づいて、自身が移動する経路であるフォロワー用経路を設定する第2ビークルと、
を含
み、
前記第2ビークルは、
前記リーダー用経路から所定距離離れるように、前記フォロワー用経路を設定するフォロワー用経路設定部と、
前記第1ビークルに対する前記第2ビークルの望ましい相対位置を示すフォーメーション情報と、前記第1ビークルの位置情報とを取得する情報取得部と、
前記フォーメーション情報及び前記第1ビークルの位置に基づき、前記第2ビークルの望ましい位置であるフォーメーション位置を算出するフォーメーション位置算出部と、
前記フォロワー用経路及び前記フォーメーション位置に基づき、前記フォロワー用経路のうちで前記フォーメーション位置に最も近い位置を、目標位置として設定する目標位置算出部と、を含む、
ビークルユニット。
【請求項2】
前記第1ビークルは、前記フォロワー用経路を参照することなく前記リーダー用経路を設定する、請求項1に記載のビークルユニット。
【請求項3】
前記第1ビークルは、
移動を予定する領域内において座標毎に設定されたノードと、前記ノード同士を結ぶエッジとを含む無向グラフ情報を取得する無向グラフ情報取得部と、
前記進入禁止場所を通らず、かつ前記目的位置に到達可能な前記エッジである経由エッジを抽出し、前記経由エッジに結ばれる前記ノードを経由ノードとして設定する経由ノード設定部と、
前記経由ノードに基づき前記リーダー用経路を設定するリーダー用経路算出部と、を含む、請求項1又は請求項2に記載のビークルユニット。
【請求項4】
前記経由ノード設定部は、前記エッジを通って前記目的位置まで到達するまでの距離が最短となるように、前記経由エッジを抽出する、請求項3に記載のビークルユニット。
【請求項5】
前記経由ノード設定部は、他のビークルユニットによって抽出された前記経由ノードの情報を取得し、他のビークルユニットによって抽出された前記経由ノード以外のノードから、前記経由ノードを抽出する、請求項3又は請求項4に記載のビークルユニット。
【請求項6】
前記経由ノード設定部は、
他のビークルユニットによって抽出された前記経由ノードのうち、他のビークルユニットの直近の移動先のノードである直近ノードの情報を取得し、
他のビークルユニットの前記直近ノードに結ばれたエッジについて、そのエッジの通行が開始可能になるまでの待ち時間の情報を取得し、
前記目的位置までの距離と、前記待ち時間とに基づき、前記経由エッジを抽出する、請求項3から請求項5のいずれか1項に記載のビークルユニット。
【請求項7】
前記リーダー用経路算出部は、前記経由ノードに基づき、モデル予測制御で前記リーダー用経路を設定する、請求項3から請求項6のいずれか1項に記載のビークルユニット。
【請求項8】
前記リーダー用経路算出部は、前記経由ノードを通るように、前記リーダー用経路を設定する、請求項7に記載のビークルユニット。
【請求項9】
前記リーダー用経路算出部は、前記経由ノード毎に、前記リーダー用経路を設定する、請求項7又は請求項8に記載のビークルユニット。
【請求項10】
前記リーダー用経路算出部は、前記第1ビークルが、前記経由ノードとして設定された第1経由ノードに対して所定距離範囲内に到達したら、次の経由ノードである第2経由ノードまでの前記リーダー用経路を設定する、請求項9に記載のビークルユニット。
【請求項11】
前記リーダー用経路算出部は、前記リーダー用経路が前記進入禁止場所を通らないように、前記リーダー用経路を設定する、請求項7から請求項10のいずれか1項に記載のビークルユニット。
【請求項12】
前記第1ビークルは、他のビークルユニットの前記第1ビークルと情報の送受信を行う、請求項1から請求項
11のいずれか1項に記載のビークルユニット。
【請求項13】
進入禁止場所の位置を示す情報と目的位置情報とに基づいて、第1ビークルが移動する経路であるリーダー用経路を設定するステップと、
前記リーダー用経路に基づいて、第2ビークルが移動する経路であるフォロワー用経路を設定するステップと、
を含
み、
前記フォロワー用経路を設定するステップは、
前記リーダー用経路から所定距離離れるように、前記フォロワー用経路を設定するステップと、
前記第1ビークルに対する前記第2ビークルの望ましい相対位置を示すフォーメーション情報と、前記第1ビークルの位置情報とを取得するステップと、
前記フォーメーション情報及び前記第1ビークルの位置に基づき、前記第2ビークルの望ましい位置であるフォーメーション位置を算出するステップと、
前記フォロワー用経路及び前記フォーメーション位置に基づき、前記フォロワー用経路のうちで前記フォーメーション位置に最も近い位置を、目標位置として設定するステップと、を含む、
ビークルの制御方法。
【請求項14】
進入禁止場所の位置を示す情報と目的位置情報とに基づいて、第1ビークルが移動する経路であるリーダー用経路を設定するステップと、
前記リーダー用経路に基づいて、第2ビークルが移動する経路であるフォロワー用経路を設定するステップと、
を含む、ビークルの制御方法を、コンピュータに実行させ
、
前記フォロワー用経路を設定するステップは、
前記リーダー用経路から所定距離離れるように、前記フォロワー用経路を設定するステップと、
前記第1ビークルに対する前記第2ビークルの望ましい相対位置を示すフォーメーション情報と、前記第1ビークルの位置情報とを取得するステップと、
前記フォーメーション情報及び前記第1ビークルの位置に基づき、前記第2ビークルの望ましい位置であるフォーメーション位置を算出するステップと、
前記フォロワー用経路及び前記フォーメーション位置に基づき、前記フォロワー用経路のうちで前記フォーメーション位置に最も近い位置を、目標位置として設定するステップと、を含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビークルユニット、ビークル、ビークルの制御方法、及びプログラムに関する。
【背景技術】
【0002】
複数のビークルが移動する際に、それぞれのビークルが自身の経路を設定する分散型の制御システムが知られている。例えば特許文献1には、格子状に定義した経路に基づき、ビークル同士が衝突したりデッドロックしたりしないように、それぞれのビークルが経路を設定する旨が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、ビークルの経路設定には改善の余地があり、ビークルの経路を適切に設定することが求められている。
【0005】
本開示は、上述した課題を解決するものであり、ビークルの経路を適切に設定可能な、ビークルユニット、ビークル、ビークルの制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本開示に係るビークルユニットは、進入禁止場所の位置を示す情報と目的位置の情報とに基づいて、自身が移動する経路であるリーダー用経路を設定する第1ビークルと、前記リーダー用経路に基づいて、自身が移動する経路であるフォロワー用経路を設定する第2ビークルと、を含む。
【0007】
上述した課題を解決し、目的を達成するために、本開示に係るビークルは、移動を予定する領域内において座標毎に設定されたノードと、前記ノード同士を結ぶエッジとを含む無向グラフ情報を取得する無向グラフ情報取得部と、進入禁止場所を通らず、かつ目的位置に到達可能な前記エッジである経由エッジを抽出し、前記経由エッジに結ばれる前記ノードを経由ノードとして設定する経由ノード設定部と、前記経由ノードに基づき、モデル予測制御で前記リーダー用経路を設定するリーダー用経路算出部と、を含む。
【0008】
上述した課題を解決し、目的を達成するために、本開示に係るビークルの制御方法は、進入禁止場所の位置を示す情報と目的位置情報とに基づいて、第1ビークルが移動する経路であるリーダー用経路を設定するステップと、前記リーダー用経路に基づいて、第2ビークルが移動する経路であるフォロワー用経路を設定するステップと、を含む。
【0009】
上述した課題を解決し、目的を達成するために、本開示に係るビークルの制御方法は、移動を予定する領域内において座標毎に設定されたノードと、前記ノード同士を結ぶエッジとを含む無向グラフ情報を取得するステップと、進入禁止場所を通らず、かつ目的位置に到達可能な前記エッジである経由エッジを抽出し、前記経由エッジに結ばれる前記ノードを経由ノードとして設定するステップと、前記経由ノードに基づき、モデル予測制御で移動経路であるリーダー用経路を設定するステップと、を含む。
【0010】
上述した課題を解決し、目的を達成するために、本開示に係るプログラムは、進入禁止場所の位置を示す情報と目的位置情報とに基づいて、第1ビークルが移動する経路であるリーダー用経路を設定するステップと、前記リーダー用経路に基づいて、第2ビークルが移動する経路であるフォロワー用経路を設定するステップと、を含む、ビークルの制御方法を、コンピュータに実行させる。
【0011】
上述した課題を解決し、目的を達成するために、本開示に係るプログラムは、移動を予定する領域内において座標毎に設定されたノードと、前記ノード同士を結ぶエッジとを含む無向グラフ情報を取得するステップと、進入禁止場所を通らず、かつ目的位置に到達可能な前記エッジである経由エッジを抽出し、前記経由エッジに結ばれる前記ノードを経由ノードとして設定するステップと、前記経由ノードに基づき、モデル予測制御で移動経路であるリーダー用経路を設定するステップと、を含む、ビークルの制御方法を、コンピュータに実行させる。
【発明の効果】
【0012】
本開示によれば、ビークルの経路を適切に設定できる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、第1実施形態に係るビークル制御システムの模式図である。
【
図2】
図2は、管理システムの模式的なブロック図である。
【
図3】
図3は、第1実施形態に係るリーダービークルの模式的なブロック図である。
【
図4】
図4は、リーダー用経路設定部54の模式的なモデル図である。
【
図5】
図5は、無向グラフ情報の一例を示す模式図である。
【
図6】
図6は、経由ノードの設定の一例を説明する模式図である。
【
図7】
図7は、リーダー用経路の設定を説明する模式図である。
【
図8】
図8は、第1実施形態に係るフォロワービークルの模式的なブロック図である。
【
図9】
図9は、目標位置設定部の模式的なモデル図である。
【
図10】
図10は、フォロワー用経路の一例を説明する模式図である。
【
図11】
図11は、フォーメーション位置及び目的位置を説明する模式図である。
【
図12】
図12は、同じビークルユニットのリーダービークルとフォロワービークルが移動する際の制御フローを説明するフローチャートである。
【
図13】
図13は、第2実施形態における経由エッジの抽出の例を説明する模式図である。
【
図15】
図15は、第3実施形態に係るリーダービークルによって生成されたリーダー用経路の一例を示す模式図である。
【
図16】
図16は、第4実施形態における経由ノードの抽出方法の一例を説明するための模式図である。
【
図17】
図17は、第4実施形態における経由ノードの抽出方法の一例を説明するための模式図である。
【
図18】
図18は、リーダー用経路の更新を説明するための模式図である。
【
図19】
図19は、リーダー用経路の更新を説明するための模式図である。
【発明を実施するための形態】
【0014】
以下に添付図面を参照して、本発明の好適な実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施形態を組み合わせて構成するものも含むものである。
【0015】
(第1実施形態)
(ビークル制御システム)
図1は、第1実施形態に係るビークル制御システムの模式図である。
図1に示すように、第1実施形態に係るビークル制御システム100は、複数のビークル10を含むビークルユニット12と、管理システム14とを含む。ビークル10は、自動で移動可能な移動体であるが、それに限られず、運転者が操作する有人の移動体であってもよい。ビークル10は、地面を走行する移動体としてもよいし、空中を飛行する移動体としてもよいし、水中を移動する移動体としてもよい。したがって、ビークル10は、3次元で移動できる移動体も含むが、以下では説明のため、2次元平面を移動する場合として説明する。2次元平面を移動するビークル10としては、例えば、AGF(Automated Guided Forklift)やAGV(Automated Guided Vehicle)などが挙げられるが、ビークル10の種類は任意であってよい。以下、ビークル10が移動可能な領域、すなわちビークル10が移動を予定している領域を、領域ARとする。領域ARは、本実施形態では2次元平面であり、水平方向に沿った一方向を、X方向とし、水平方向に沿った方向であってX方向と直交する方向を、Y方向とする。なお、領域ARは、3次元空間であってもよい。
【0016】
(ビークルユニット)
ビークルユニット12は、複数のビークル10で構成されるビークル群であり、複数のビークル10で構成される1つのチームであるといえる。1つのビークルユニット12に含まれるビークル10は、同じ目的をもっており、例えば本実施形態では、同じ目的位置Oに移動するという共通の目的を持ったものである。1つのビークルユニット12に属する各ビークル10は、所定のフォーメーション、すなわち所定の位置関係をもって、目的位置Oまで移動するように、経路が設定される。目的位置Oは、領域AR内におけるビークルユニット12の目的地である。
図1の例では、目的位置Oは、1つの座標ではなく所定の面積を占める領域として設定されており、ビークルユニット12に属するそれぞれのビークル10が、その目的位置Oの領域内を目的地としている。ただし、目的位置Oは、領域に限られず、座標として設定されていてもよい。
【0017】
1つのビークルユニット12には、ビークル10として、第1ビークルとしてのリーダービークル10Aと、第2ビークルとしてのフォロワービークル10Bとが含まれている。リーダービークル10Aは、目的位置Oに移動する際に、1つのビークルユニット12のチームのリーダーとして機能する。フォロワービークル10Bは、リーダービークル10Aに追従して移動する。1つのビークルユニット12においては、リーダービークル10Aが1台であり、リーダービークル10A以外のビークル10がフォロワービークル10Bとなるように設定されている。
図1の例では、1つのビークルユニット12に5台のビークル10が属しており、1台がリーダービークル10Aで残りの4台がフォロワービークル10Bとなっている。ただし、1つのビークルユニット12に属するビークル10の数は任意であり、5台以外の複数台のビークルが属してもよいし、1つのビークルユニット12に1台のビークル10のみが属してもよい。1つのビークルユニット12に1台のビークル10のみが属する場合には、そのビークル10は、リーダービークル10Aとなる。
【0018】
なお、本実施形態では、ビークル制御システム100には、複数のビークルユニット12(
図1の例では3チーム)が含まれているが、ビークル制御システム100に含まれるビークルユニット12の数も任意であり、例えば1チームのみが存在してもよい。
【0019】
(管理システム)
管理システム14は、ビークル10を管理するシステムであり、本実施形態では、ビークル10の目的位置Oを設定する。管理システム14は、本実施形態ではWMS(Warehouse Management System)であるが、WMSに限られず任意のシステムであってよい。
【0020】
図2は、管理システムの模式的なブロック図である。管理システム14は、コンピュータであり、
図2に示すように、通信部20と、記憶部22と、制御部24とを含む。通信部20は、リーダービークル10Aなどの外部の装置と通信を行う通信モジュールであり、例えばアンテナなどである。管理システム14は、無線通信で通信を行うが、通信方式は任意であってよい。記憶部22は、制御部24の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAM(Random Access Memory)と、ROM(Read Only Memory)のような主記憶装置と、HDD(Hard Disk Drive)などの外部記憶装置とのうち、少なくとも1つ含む。
【0021】
制御部24は、演算装置、すなわちCPU(Central Processing Unit)である。制御部24は、目的位置情報取得部26を含む。制御部24は、記憶部22からプログラム(ソフトウェア)を読み出して実行することで、目的位置情報取得部26を実現して、その処理を実行する。なお、制御部24は、1つのCPUによってこの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、処理を実行してもよい。また、目的位置情報取得部26を、ハードウェア回路で実現してもよい。
【0022】
目的位置情報取得部26は、ビークルユニット12の目的位置Oの位置情報を取得する。目的位置情報取得部26は、例えばビークルユニット12が実行する作業内容を設定し、作業内容に応じて目的位置Oを設定する。ただし、目的位置情報取得部26による目的位置Oの位置情報の取得方法は任意であり、例えばユーザーにより指定されてもよい。目的位置情報取得部26は、ビークルユニット12の目的位置Oの位置情報を、通信部20を介して、そのビークルユニット12に属するリーダービークル10Aに送信する。
【0023】
なお、管理システム14は必須の構成でなく、例えば、ビークル10が、より好ましくはリーダービークル10Aが、目的位置Oの位置情報を設定してもよい。
【0024】
(ビークルの経路設定)
それぞれのビークル10は、自身で移動する経路を設定する。すなわち、本実施形態に係るビークル制御システム100は、管理システム14がそれぞれのビークル10の情報を集約して経路を設定するシステムではなく、それぞれのビークル10が自身の経路を設定する分散型の群知能システムであるといえる。
【0025】
本実施形態においては、それぞれのビークル10が経路設定を行うにあたり、以下の前提条件を満足していることが好ましい。
1.同じ目的をもつ(本実施形態では同じ目的位置Oとなる)ビークル群を、1つのチーム、すなわち1つのビークルユニット12とする。
2.1つのビークルユニット12に属するビークル10は、所定のフォーメーション(ビークル同士の位置関係)が与えられる。
3.ビークルユニット12の数をIとし、1つのビークルユニット12に属するビークル10の数をJとすると、1つのビークルユニット12には、1台のリーダービークル10Aと、J-1台のフォロワービークル10Bが存在する。
4.リーダービークル10Aは、異なるビークルユニット12に所属するリーダービークル10A、及び、同じビークルユニット12に所属するフォロワービークル10Bと、通信可能である。
5.フォロワービークル10Bは、同じビークルユニット12に所属するリーダービークル10A、及び、同じビークルユニット12に所属する他のフォロワービークル10Bと、通信可能である。
6.ビークル10の位置及び姿勢と速度とは既知であり、計測誤差が所定の許容値以下である。
7.ビークル10間の通信遅れが、所定の許容値以下である。
8.ビークル10は、領域ARの地図情報を保有し、障害物などが存在する進入禁止場所の位置(座標)の真値は既知である。
9.ビークル10は、他のビークル10と衝突しない。
【0026】
また、ビークル10がAGFやAGVなどの地上を走行する移動体である場合には、以下の前提条件が追加される。
10.ビークル10は、非ホノロミックなシステムであり、真横に移動できない。
11.ビークル10は、旋回半径及び速度に制約があり、上下限の範囲外では動作できない。
【0027】
なお、リーダービークル10Aとフォロワービークル10Bとは、1つのビークルユニット12で適切に協調して動作するために、経路の設定方法が異なる。以下、リーダービークル10Aとフォロワービークル10Bとの具体的な構成について説明する。
【0028】
(リーダービークル)
図3は、第1実施形態に係るリーダービークルの模式的なブロック図である。
図3に示すように、リーダービークル10Aは、制御装置30と、通信部32と、位置検出部34と、動力部36とを有する。
【0029】
(通信部)
通信部32は、外部の装置と通信を行う通信モジュールであり、例えばアンテナなどである。リーダービークル10Aは、無線通信で通信を行うが、通信方式は任意であってよい。リーダービークル10Aは、通信部32を介して、管理システム14と通信して、情報の送受信を行う。リーダービークル10Aは、通信部32を介して、同じビークルユニット12に所属するフォロワービークル10Bと通信して、情報の送受信を行う。リーダービークル10Aは、通信部32を介して、異なるビークルユニット12に所属するリーダービークル10Aと通信して、情報の送受信を行う。本実施形態では、リーダービークル10Aは、異なるビークルユニット12に所属するフォロワービークル10Bとは、直接通信を行わない。
【0030】
(位置検出部)
位置検出部34は、リーダービークル10Aの位置及び姿勢、すなわち自己位置及び自己姿勢を検出する。リーダービークル10Aの位置とは、本実施形態においては、領域AR内においてリーダービークル10Aが位置している座標を指し、リーダービークル10Aの姿勢とは、リーダービークル10Aが向いている方向を指す。位置検出部34は、任意の方法で位置及び姿勢を検出してよいが、例えば、位置検出部34の具体的構成例として、グローバル・ポジショニング・システム(GPS:Global Positioning System)等の測位システムを利用して位置を検出するための測位装置が挙げられる。また例えば、位置検出部34は、所定の起点に対する位置を検出する慣性航法装置であってもよい。また例えば、位置検出部34は、レーザ光により位置及び姿勢を検出するものであってもよい。この場合例えば、領域ARに反射体が設けられており、位置検出部34が反射体に向けてレーザ光を照射し、反射体から反射したレーザ光を検出することで、位置及び姿勢が検出できる。
【0031】
(動力部)
動力部36は、リーダービークル10Aを移動させる動力として機能する。動力部36の具体的構成は、リーダービークル10Aの運用形態に応じる。一例として、リーダービークル10Aが地上を走行するビークルである場合、動力部36は、複数の車輪と、当該複数の車輪の一部又は全部を駆動する原動機を含む。ここに例示した動力部36の具体的構成はあくまで一例であってこれに限られるものでない。動力部36は、リーダービークル10Aを移動可能にする動力として機能すればよい。
【0032】
(制御装置)
制御装置30は、リーダービークル10Aの動作を制御する装置である。制御装置30は、コンピュータであり、記憶部40と制御部42とを備える。記憶部40は、制御部42の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAMと、ROMのような主記憶装置と、HDDなどの外部記憶装置とのうち、少なくとも1つ含む。記憶部40が記憶する制御部42用のプログラムは、制御装置30が読み取り可能な記録媒体に記憶されていてもよい。
【0033】
制御部42は、演算装置、すなわちCPUである。制御部42は、目的位置情報取得部50と、自己位置情報取得部52と、リーダー用経路設定部54と、情報送信部56と、移動制御部58とを含む。制御部42は、記憶部40からプログラム(ソフトウェア)を読み出して実行することで、目的位置情報取得部50と自己位置情報取得部52とリーダー用経路設定部54と情報送信部56と移動制御部58とを実現して、それらの処理を実行する。なお、制御部42は、1つのCPUによってこれらの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、これらの処理を実行してもよい。また、目的位置情報取得部50と自己位置情報取得部52とリーダー用経路設定部54と情報送信部56と移動制御部58との少なくとも一部を、ハードウェア回路で実現してもよい。
【0034】
(目的位置情報取得部)
目的位置情報取得部50は、リーダービークル10Aの目標とする移動先である目的位置Oの位置情報を取得する。リーダービークル10Aの目的位置Oは、そのリーダービークル10Aが所属するビークルユニット12の目的位置Oともいえる。目的位置情報取得部50は、通信部32を介して、管理システム14から、目的位置Oの位置情報を取得する。
【0035】
(自己位置情報取得部)
自己位置情報取得部52は、リーダービークル10A自身の位置及び姿勢の情報を取得する。自己位置情報取得部52は、位置検出部34を制御して、リーダービークル10A自身の位置情報(座標情報)及び姿勢情報(向きを示す情報)を取得する。以下、位置情報及び姿勢情報を合わせて、適宜、位置姿勢情報と記載する。自己位置情報取得部52は、所定時間毎に、逐次、リーダービークル10A自身の位置姿勢情報を取得する。また、自己位置情報取得部52は、位置検出部34を用いて、他のビークル10との相対距離を算出してもよい。相対距離を算出して経路生成に用いることで、通信遅れをカバーすることができる。
【0036】
(リーダー用経路設定部)
リーダー用経路設定部54は、リーダービークル10A用の移動経路であるリーダー用経路RAを設定する。リーダー用経路設定部54は、次の式(1)、(2)を達成可能なように、リーダー用経路RAを設定して、リーダービークル10Aへの制御入力を算出する。なお、以降の説明は、ビークル10がAGFやAGVなどの地上を走行する移動体である場合を例としたものであり、ビークル10は、上述のように地面を走行する移動体に限られない。以下の説明における式などは、ビークル10の種類に応じて適宜設定されてよい。
【0037】
【0038】
ここで、iはビークルユニット12の識別番号であり、i=1、2、・・・Iとなり、Iはビークルユニット12の総数である。また、jは1つのビークルユニット12でのビークル10の識別番号であり、j=1、2、・・・Jとなり、Jは1つのビークルユニット12でのビークル10の総数である。リーダービークル10Aの識別番号を1とする。また、kは離散時間であり、k=0、1、2、・・・となる。また、pij(k)は、識別番号がiのビークルユニット12に属する、識別番号がjのビークル10(以降、ビークル10ijとする)の、位置(座標)を指す。qijは、ビークル10ijの目的位置Oの座標である。また、Λは、ビークル10同士の間で接近を許容する距離の最小値である。
【0039】
また、ビークル10ijの位置であるpij(k)と、ビークル10ijの位置姿勢であるp´ij(k)は、次の式(3)、(4)で表される。なお、xij(k)は、ビークル10ijのX方向における位置(座標)であり、yij(k)は、ビークル10ijのY方向における位置(座標)であり、θij(k)は、ビークル10ijのヨー角方向の姿勢角である。Tは転置を示す。
【0040】
【0041】
また、ビークル10ijの進行方向の速度をvij(k)とし、ビークル10ijの前輪舵角をφij(k)とすると、ビークル10ijへの制御入力は、速度であるvrefij(k)と、前輪舵角であるφrefij(k)となる。以下適宜、ビークル10ijへの制御入力を、式(5)に示すurefij(k)とする。
【0042】
【0043】
図4は、リーダー用経路設定部54の模式的なモデル図である。
図4に示すモデルM1Aは、リーダー用経路RAを設定して、リーダービークル10Aへの制御入力を算出するモデルである。
図4に示すモデルM2Aは、リーダービークル10Aの運動モデルである。
図4に示すように、モデルM2Aは、制御入力であるuref
ij(k)が入力値として入力されたら、ビークル10
ijが制御入力に基づき移動することで、位置姿勢であるp´
ij(k)を出力値として出力する。リーダービークル10AのモデルM2Aとしては、ビークル10がAGFやAGVなどの地上を走行する移動体である場合を例にした場合、例えば、次の式(6)-(8)に示す等価二輪モデルを用いてよい。
【0044】
【0045】
なお、x´ij(k)、y´ij(k)、θ´ij(k)は、それぞれ、xij(k)、yij(k)、θij(k)の時間微分値を指す。また、Lは、ビークル10ijのホイールベース長を指す。運動モデルは、このような等価二輪モデルに限られず、ビークルの種類に応じたモデルを適用してよい。
【0046】
図4に示すように、モデルM1Aは、位置姿勢であるp´
ij(k)が入力値として入力されたら、リーダー用経路RAを設定して、リーダービークル10Aへの制御入力であるuref
ij(k)を出力値として出力する。モデルM1Aは、以下の式(9)のように表される。
【0047】
【0048】
Uij(k)は、計画経路であるp´ij(k+1)、p´ij(k+2)、・・・p´ij(k+N)に対応した、ビークル10ijへの制御入力の系列を表す。Uij(k)は、次の式(10)のように定義される。
【0049】
【0050】
なお、fijは評価関数であり、gijは制約条件である。
【0051】
(リーダー用経路の設定)
リーダー用経路設定部54によるリーダー用経路RAの設定方法について、以下、より具体的に説明する。リーダー用経路設定部54は、進入禁止場所の位置を示す情報と目的位置Oの位置情報とに基づいて、リーダービークル10Aが移動する経路であるリーダー用経路RAを設定する。進入禁止場所とは、例えば障害物が存在する場所など、領域AR内において、ビークル10の進入が禁止されたり、ビークル10の進入が不可能だったりする場所を指し、予め位置が設定されている。また、リーダー用経路設定部54は、後述するフォロワービークル10Bが生成するフォロワー用経路RBを参照することなく、リーダー用経路RAを設定する。すなわち、リーダービークル10Aは、フォロワー用経路RBを入力値に用いることなく、言い換えればフォロワー用経路RBを考慮することなく、リーダー用経路RAを設定する。
【0052】
より具体的には、リーダー用経路設定部54は、無向グラフ情報取得部54Aと、経由ノード設定部54Bと、リーダー用経路算出部54Cとを含む。
【0053】
(無向グラフ情報取得部)
図5は、無向グラフ情報の一例を示す模式図である。無向グラフ情報取得部54Aは、無向グラフ情報を取得する。
図5の例に示すように、無向グラフ情報は、領域AR内の座標毎に設定されたノードndと、一対のノードndを結ぶ線であるエッジedとを含む。言い換えれば、無向グラフ情報は、領域AR内におけるそれぞれのノードndの位置情報(座標情報)と、ノードnd同士を結ぶエッジedの位置情報(座標情報)とを含む情報であるといえる。なお、エッジedは直線であるが、直線であることに限られない。
【0054】
無向グラフ情報取得部54Aは、無向グラフ情報を予め生成して記憶部40に記憶させておき、リーダー用経路RAを設定する際には、予め作成した無向グラフ情報を読み出すことで、無向グラフ情報を取得する。以下、無向グラフ情報の生成方法について説明する。
【0055】
無向グラフ情報取得部54Aは、領域ARの地図情報を取得する。領域ARの地図情報とは、領域AR内の進入禁止場所の位置情報や、ビークル10が移動可能な通路などの位置情報を含んだ情報である。領域ARの地図情報は、既知であり予め設定されている。無向グラフ情報取得部54Aは、領域ARの地図情報に基づいて、領域AR内の座標毎にノードndを設定する。無向グラフ情報取得部54Aは、例えば、所定間隔毎に、領域AR内の全域にわたってノードndを設定してよい。そして、無向グラフ情報取得部54Aは、設定したノードndのうちから、一対のノードndを抽出して、抽出した一対のノードndを結ぶ線分を定義する。そして、無向グラフ情報取得部54Aは、領域ARの地図情報から読み出した進入禁止場所の位置情報と、一対のノードndを結ぶ線分の位置情報とから、一対のノードndを結ぶ線分の少なくとも一部分が、進入禁止場所の領域内に位置するかを判断する。言い換えれば、無向グラフ情報取得部54Aは、一対のノードndを結ぶ線分の座標と進入禁止場所の座標とが重なるかを判断する。無向グラフ情報取得部54Aは、一対のノードndを結ぶ線分の少なくとも一部分が進入禁止場所の領域内に位置する場合、その線分をエッジedとして設定しない。一方、無向グラフ情報取得部54Aは、一対のノードndを結ぶ線分の少なくとも一部分が進入禁止場所の領域内に位置しない場合、すなわち一対のノードndを結ぶ線分の全区間が進入禁止場所の領域外に位置する場合、その線分をエッジedとして設定する。無向グラフ情報取得部54Aは、設定したノードndから抽出できる一対のノードndの全ての組み合わせについて、同様の処理を行って、エッジedを設定する。なお、
図5の例では、ノードnd1と他のノードndを結ぶ線分のうち、進入禁止場所AR1を通らない線分が、エッジedとして設定され(
図5の実線)、進入禁止場所AR1を通る線分が、エッジedとして設定されていない(
図5の破線)ことを示している。
【0056】
なお、上述のように、無向グラフ情報取得部54Aは、領域AR内の全域にわたって所定間隔毎にノードndを設定してもよいが、ノードndの設定方法はそれに限られず任意である。例えば、無向グラフ情報取得部54Aは、領域AR内のうちで、進入禁止場所AR1の周縁(例えば頂点など)に位置にノードndを設定してもよい。この場合、ノードndは、進入禁止場所AR1の周縁以外の場所に設定されていなくてもよいし、進入禁止場所AR1の周縁以外の場所にも設定されてもよい。
【0057】
無向グラフ情報取得部54Aは、このようにしてノードndとエッジedを抽出して、ノードndとエッジedの位置情報を、無向グラフ情報として設定する。従って、無向グラフ情報には、進入禁止場所を通るエッジedが含まれず、進入禁止場所を通らないエッジedが含まれることとなる。なお、エッジedの位置情報には、エッジedの長さを示す情報も含まれる。
【0058】
(経由ノード設定部)
経由ノード設定部54Bは、無向グラフ情報に基づき、経由ノードndaを設定する。
図6は、経由ノードの設定の一例を説明する模式図である。経由ノード設定部54Bは、無向グラフ情報に含まれるエッジedのうちから、目的位置Oに到達可能なエッジedを、経由エッジedaとして抽出する。より具体的には、経由ノード設定部54Bは、リーダービークル10A又はビークルユニット12の初期位置から、目的位置Oまでを結ぶエッジedを、経由エッジedaとして抽出する。経由エッジedaは、目的位置Oに応じて、1つのエッジedとなる場合もあるし、ノードndを介して連結する複数のエッジedとなる場合もある。
【0059】
本実施形態では、経由ノード設定部54Bは、エッジedを通って目的位置Oまで到達するまでの距離が最短となるように、経由エッジedaを抽出する。言い換えれば、経由ノード設定部54Bは、エッジedを通って目的位置Oまで到達可能な経路が複数ある場合には、それらの経路のうち、距離が最も短い経路を構成するエッジedを、経由エッジedaとして抽出する。すなわち、経由ノード設定部54Bは、エッジedの長さ(すなわちノードnd間の距離)に重み付けをして、その重み付けに基づき、目的位置Oまで到達するまでのエッジedの合計長さが最短となるように、経由エッジedaを抽出する。経由ノード設定部54Bは、例えばダイクストラ法などのグラフ探索により最短経路を算出することにより、経由エッジedaを抽出してよい。
【0060】
経由ノード設定部54Bは、経由エッジedaに結ばれているノードndを、経由ノードndaとして設定する。経由ノードndaは目的位置Oまでの経由エッジedaに結ばれたポイントであるため、経由ノード設定部54Bは、経由エッジedaや経由ノードndaを抽出することで、目的位置Oまでのおおまなか経路を設定しているといえる。
図6は、初期位置がノードnd1と重なり、目的位置Oがノードnd4と重なった場合の経由ノードndaの例を示している。
図6の例では、ノードnd1とノードnd2とを結ぶエッジed、ノードnd2とノードnd3とを結ぶエッジed、ノードnd3とノードnd4とを結ぶエッジedとが、目的位置Oまでの最短となる経路なので、それらのエッジed(
図6の実線部分)が、経由エッジedaとされ、それらのエッジedに結ばれるノードnd1、nd2、nd3、nd4が、経由ノードndaとして抽出されている。
【0061】
なお、以上の説明では、無向グラフ情報取得部54Aが無向グラフ情報を生成した時点で、進入禁止場所AR1を通るエッジedを除外しており、経由ノード設定部54Bが、進入禁止場所AR1を通らないエッジedのなかから、経由エッジedaを選定していた。ただし、進入禁止場所AR1を通るエッジedを除外するタイミングはそれに限られず、経由ノード設定部54Bは、進入禁止場所AR1を通らず、かつ目的位置Oに到達可能なエッジedを、経由エッジedaとして選定すればよい。例えば、無向グラフ情報取得部54Aは、一対のノードndを通る線分の全てをエッジedとして選定し、経由ノード設定部54Bは、それらのエッジedのうちから、進入禁止場所AR1を通らないエッジedを選定して、選定したエッジedから、上記と同様の方法で、経由エッジeda及び経由ノードndaを選定してよい。
【0062】
(リーダー用経路算出部)
図7は、リーダー用経路の設定を説明する模式図である。リーダー用経路算出部54Cは、経由ノードndaに基づき、リーダー用経路RAを設定する。リーダー用経路算出部54Cは、経由ノードndaに基づき、モデル予測制御(MPC:Model Predictive Control)でリーダー用経路RAを設定する。より詳しくは、リーダー用経路算出部54Cは、経由ノードndaを通るように、すなわち経由ノードndaをウェイポイントとして、モデル予測制御を用いてリーダー用経路RAを設定する。リーダー用経路算出部54Cは、進入禁止場所AR1を通らない経由エッジedaに基づいて設定された経由ノードndaをウェイポイントとするため、リーダービークル10Aが進入禁止場所AR1に進入することを抑制できる。また、リーダー用経路算出部54Cは、最短経路となる経由エッジedaに基づいて設定された経由ノードndaをウェイポイントとするため、リーダー用経路RAが長くなることを抑制して、作業効率を向上できる。
【0063】
リーダー用経路算出部54Cは、経由ノードnda毎に、リーダー用経路RAを設定する。すなわち、
図7に示すように、リーダー用経路算出部54Cは、初期位置(
図7の例ではノードnd1)から、次の経由ノードであるノードnd2までのリーダー用経路RA1を、モデル予測制御を用いて算出する。なお、次の経由ノードとは、前の経由ノードよりも目的位置Oに近く、かつ、前の経由ノードndaに対して経由エッジedaで結ばれている経由ノードであり、言い換えれば、リーダービークル10Aの次のウェイポイントとなる経由ノードを指す。リーダービークル10Aは、算出されたリーダー用経路RA1に沿って、ノードnd2に向けて移動する。リーダービークル10Aがノードnd2に対して所定距離範囲内に近づいたら、リーダー用経路算出部54Cは、次のウェイポイントをノードnd3に切り替えて、ノードnd3を通るリーダー用経路RA2を、モデル予測制御を用いて算出する。同様に、リーダービークル10Aがノードnd3に対して所定距離範囲内に近づいたら、リーダー用経路算出部54Cは、次のウェイポイントをノードnd4に切り替えて、ノードnd4を通るリーダー用経路RA3を、モデル予測制御を用いて算出する。このようにして、目的位置Oであるノードnd4までのリーダー用経路RAが、経由ノードnda毎に順次設定されて、リーダービークル10Aは目的位置Oに適切に到着できる。なお、本実施形態における所定距離は、ゼロとして設定されている。従って、リーダー用経路算出部54Cは、リーダービークル10Aがウェイポイントである経由ノードndaに到着したこと(距離がゼロとなったこと)をトリガとして、ウェイポイントを次の経由ノードndaに切り替えて、到着した経由ノードndaから次の経由ノードndaまでの経路を、リーダー用経路RAとして更新設定する。ただし、所定距離はゼロに限られず、例えば後述の第5実施形態に示すように、任意の長さに設定されてよい。
【0064】
リーダー用経路算出部54Cは、このようにしてリーダー用経路RAを設定して、例えばリーダー用経路RAとリーダービークル10Aの現在の位置姿勢に基づき、設定したリーダー経路RAに沿って移動可能な制御入力を算出する。
【0065】
なお、リーダービークル10Aはビークルユニット12全体の経路を決める役割を有するため、次のウェイポイントまでビークルユニット12全体が到達できるように、モデル予測制御に基づいてリーダー用経路RAを算出するための評価関数であるfi1は、次の式(11)のように定義されることが好ましい。また、リーダー用経路RAを算出するための制約条件であるgi1は、上述の式(6)-(8)に加えて、次の式(12)のように制御入力の上限が設定されてもよい。
【0066】
【0067】
(情報送信部)
図3に示す情報送信部56は、通信部32を介して、リーダービークル10A自身の情報や自身が所属するビークルユニット12に関する情報を送信する。情報送信部56は、自身が所属するビークルユニット12のフォロワービークル10Bに、リーダービークル10A自身の位置姿勢情報と、リーダー用経路設定部54に設定されたリーダー用経路RAの位置情報と、フォーメーション情報とを送信する。フォーメーション情報とは、同じビークルユニット12に所属するビークル10が維持することが望ましいフォーメーションを示す情報であり、より詳しくは、リーダービークル10Aに対するフォロワービークル10Bの望ましい相対位置を示す情報といえる。フォーメーション情報は、フォロワービークル10B毎に設定される。すなわち、リーダービークル10Aに対するフォロワービークル10Bの望ましい相対位置は、フォロワービークル10B毎に設定されて、フォロワービークル10B毎に異なる。フォーメーション情報は、任意に設定されてよい。例えば、フォーメーション情報は、予め設定されていてもよいし、リーダービークル10Aが設定してもよい。
【0068】
(移動制御部)
移動制御部58は、動力部36を制御して、リーダービークル10Aの移動を制御する。移動制御部58は、リーダー用経路設定部54が算出した制御入力に基づいて動力部36を制御することで、リーダービークル10Aをリーダー用経路RAに沿って移動させる。
【0069】
(フォロワービークル)
図8は、第1実施形態に係るフォロワービークルの模式的なブロック図である。
図8に示すように、フォロワービークル10Bは、制御装置70と、通信部72と、位置検出部74と、動力部76とを有する。
【0070】
(通信部)
通信部72は、外部の装置と通信を行う通信モジュールであり、例えばアンテナなどである。フォロワービークル10Bは、無線通信で通信を行うが、通信方式は任意であってよい。フォロワービークル10Bは、通信部72を介して、同じビークルユニット12に所属するリーダービークル10A、及び同じビークルユニット12に所属する他のフォロワービークル10Bと通信して、情報の送受信を行う。本実施形態では、フォロワービークル10Bは、異なるビークルユニット12に所属するビークル10や、管理システム14とは、直接通信を行わない。
【0071】
(位置検出部)
位置検出部74は、フォロワービークル10Bの位置及び姿勢、すなわち自己位置及び自己姿勢を検出する。位置検出部74の構成は、リーダービークル10Aの位置検出部34と同様であるため、説明を省略する。
【0072】
(動力部)
動力部76は、フォロワービークル10Bを移動させる動力として機能する。動力部36の具体的構成は、フォロワービークル10Bの運用形態に応じるが、リーダービークル10Aの動力部36と同様であるため、説明を省略する。
【0073】
(制御装置)
制御装置70は、フォロワービークル10Bの動作を制御する装置である。制御装置70は、コンピュータであり、記憶部80と制御部82とを備える。記憶部80は、制御部82の演算内容やプログラムなどの各種情報を記憶するメモリであり、例えば、RAMと、ROMのような主記憶装置と、HDDなどの外部記憶装置とのうち、少なくとも1つ含む。記憶部80が記憶する制御部82用のプログラムは、制御装置70が読み取り可能な記録媒体に記憶されていてもよい。
【0074】
制御部82は、演算装置、すなわちCPUである。制御部82は、自己位置情報取得部90と、情報取得部92と、目標位置設定部94と、移動制御部96とを含む。制御部82は、記憶部80からプログラム(ソフトウェア)を読み出して実行することで、自己位置情報取得部90と情報取得部92と目標位置設定部94と移動制御部96とを実現して、それらの処理を実行する。なお、制御部82は、1つのCPUによってこれらの処理を実行してもよいし、複数のCPUを備えて、それらの複数のCPUで、これらの処理を実行してもよい。また、自己位置情報取得部90と情報取得部92と目標位置設定部94と移動制御部96との少なくとも一部を、ハードウェア回路で実現してもよい。
【0075】
(自己位置情報取得部)
自己位置情報取得部90は、フォロワービークル10B自身の位置及び姿勢の情報を取得する。自己位置情報取得部90は、位置検出部74を制御して、フォロワービークル10B自身の位置姿勢情報を取得する。自己位置情報取得部90は、所定時間毎に、逐次、フォロワービークル10B自身の位置姿勢情報を取得する。また、自己位置情報取得部90は、位置検出部74を用いて、他のビークル10との相対距離を算出してもよい。相対距離を算出して経路生成に用いることで、通信遅れをカバーすることができる。
【0076】
(情報取得部)
情報取得部92は、通信部72を介して、同じビークルユニット12に所属するリーダービークル10Aと通信して、リーダービークル10Aから情報を取得する。情報取得部92は、同じビークルユニット12に所属するリーダービークル10Aから、リーダービークル10Aの位置姿勢情報と、リーダー用経路RAの位置情報と、フォーメーション情報とを取得する。情報取得部92は、自身のフォロワービークル10Bに対して設定されたフォーメーション情報を、すなわち自身のフォロワービークル10Bのリーダービークル10Aに対する望ましい相対位置を、取得する。情報取得部92は、フォーメーション情報として、すなわちリーダービークル10Aに対するフォロワービークル10Bの相対位置の情報として、リーダービークル10Aからの望ましい相対距離d
j(
図11参照)と、リーダービークル10Aに対する望ましい相対角度Ψ
j(
図11参照)とを取得する。また、情報取得部92は、通信部72を介して、同じビークルユニット12に所属する他のフォロワービークル10Bと通信して、情報を取得する。情報取得部92は、同じビークルユニット12に所属する他のフォロワービークル10Bの位置情報を取得する。
【0077】
(目標位置設定部)
目標位置設定部94は、同じビークルユニット12に属するリーダービークル10Aのリーダー経路RAに基づいて、フォロワービークル10B用の移動経路であるフォロワー用経路RBを設定する。そして、目標位置設定部94は、フォロワー用経路RBに基づいて、フォロワービークル10Bの目標位置OM及び目標姿勢を設定して、目標位置OM及び目標姿勢に基づき、フォロワービークル10Bへの制御入力を算出する。目標位置OMは、フォロワービークル10Bが目標とする移動先の位置であり、最終的な移動先である目的位置Oに至るまでの中途の目的地であるといえる。目標姿勢は、目標位置OMにおいてフォロワービークル10Bがとるべき姿勢を指す。目標位置設定部94は、上述の式(1)、(2)を達成可能なように、フォロワー用経路RBを設定して、フォロワービークル10Bへの制御入力を算出する。
【0078】
図9は、目標位置設定部の模式的なモデル図である。
図9に示すモデルM1Bは、フォロワー用経路RBを設定して、フォロワービークル10Bへの制御入力を算出するモデルである。
図9に示すモデルM2Bは、フォロワービークル10Bの運動モデルである。本実施形態では、モデルM2Bは、リーダービークル10AのモデルM2Aと同様であるため、説明を省略する。
【0079】
図9に示すように、モデルM1Bは、フォロワービークル10B自身の位置姿勢であるp´
ij(k)と、同じビークルユニット12に属するリーダービークル10Aの位置姿勢であるp´
i1(k+1)と、同じビークルユニット12に属する他のフォロワービークル10Bの位置姿勢であるp´
im(k)とが入力値として入力されたら、フォロワー用経路RB、目標位置OM及び目標姿勢を設定して、フォロワービークル10Bへの制御入力であるuref
ij(k)を出力値として出力する。モデルM1Bは、リーダービークル10AのモデルM1Aと同様に、上述の式(9)のように表されるが、評価関数f
ijと制約条件g
ijとが、リーダービークル10Aとは異なる。
【0080】
目標位置設定部94によるフォロワー用経路RB、目標位置OM及び目目標姿勢の設定方法について、以下、より具体的に説明する。目標位置設定部94は、フォロワー用経路設定部94Aと、フォーメーション算出部94Bと、目標位置算出部94Cとを含む。
【0081】
(フォロワー用経路設定部)
図10は、フォロワー用経路の一例を説明する模式図である。フォロワー用経路設定部94Aは、同じビークルユニット12に所属するリーダービークル10Aと追従するように、情報取得部92が取得したリーダー用経路RAに基づき、フォロワー用経路RBを設定する。フォロワー用経路設定部94Aは、リーダー用経路RAから所定距離離れるように、フォロワー用経路RBを設定する。より詳しくは、
図10に示すように、フォロワー用経路設定部94Aは、リーダー用経路RAと、自身のフォロワービークル10Bに対して予め設定された所定距離δ
ijとから、リーダー用経路RAから、リーダー用経路RAに直交する方向に所定距離δ
ijだけ離れた経路を、フォロワー用経路RBとして決定する。フォロワー用経路RBは、リーダー用経路RAに対して所定距離δ
ij離れつつ、平行な経路となる。フォロワー用経路RBがリーダー用経路RBから離れる所定距離δ
ijは、フォロワービークル10B毎に予め設定されており、フォロワービークル10B毎に異なる方向又は長さとなる。所定距離δ
ijは、任意に設定されてよいが、そのフォロワービークル10Bのフォーメーション情報において設定されたリーダービークル10Aとの相対距離に近い値(相対距離に対して所定の数値範囲内)に設定されることが好ましい。
【0082】
すなわち、フォロワー用経路設定部94Aは、フォロワー用経路RBを、次の式(13)-(15)により求める。
【0083】
【0084】
なお、式(13)-(15)においては、jは1でなく、n=1、2、・・・Nである。
【0085】
(フォーメーション算出部)
図11は、フォーメーション位置及び目的位置を説明する模式図である。フォーメーション算出部94Bは、情報取得部92が取得したフォーメーション情報に基づき、すなわちリーダービークル10Aからの相対距離d
jと、リーダービークル10Aに対する相対角度Ψ
jとに基づき、フォロワービークル10Bのフォーメーション位置FMを算出する。フォーメーション位置FMとは、ビークルユニット12のフォーメーションを維持するための、フォロワービークル10Bの望ましい位置を指す。すなわち、フォーメーション情報がリーダービークル10Aに対するフォロワービークル10Bの相対位置であるのに対し、フォーメーション位置FMは、リーダービークル10Aに対する相対位置ではなく、領域ARの座標系におけるフォロワービークル10Bの位置(座標)といえる。フォーメーション算出部94Bは、情報取得部92が取得したリーダービークル10Aの現在の位置から、相対角度Ψ
jの方向に、相対距離d
jだけ離れた位置を、フォーメーション位置FMとして算出する。
【0086】
すなわち、フォーメーション位置FMを式(16)とした場合、フォーメーション算出部94Bは、次の式(17)、(18)により、フォーメーション位置FMを算出する。なお、xfij(k)は、フォーメーション位置FMのX方向における座標であり、yfij(k)は、フォーメーション位置FMのY方向における座標である。
【0087】
【0088】
(目標位置算出部)
目標位置算出部94Cは、フォロワー用経路設定部94Aが設定したフォロワー用経路RBと、フォーメーション算出部94Bが算出したフォーメーション位置FMとに基づき、目標位置OM及び目標姿勢を設定する。目標位置算出部94Cは、フォロワー用経路RB上の位置(座標)のうち、フォーメーション位置FMに最も近い位置を、すなわちフォーメーション位置FMに最も近いフォロワー用経路RB上の位置を、目標位置OMとして設定する。そして、目標位置算出部94Cは、例えば、目標位置OMに到達した際のフォロワービークル10Bの姿勢(進行方向の向き)が、フォロワー用経路RBに沿うように、目的姿勢を設定する。このように目標位置OMを設定することで、できるだけフォーメーションを維持しつつ、大回りなどによって経路が長くなってしまうことを抑制できる。
【0089】
すなわち、目標位置OMのインデクスは、次の式(19)のように表される。
【0090】
【0091】
そのため、次の式(20)を目標位置OM及び目標姿勢とすると、目標位置OM及び目標姿勢は、次の式(21)-(23)のように設定される。
【0092】
【0093】
目標位置算出部94Cは、このようにして目標位置OM及び目標姿勢を設定して、目標位置OM及び目標姿勢に基づき、目標位置OM及び目標姿勢に到達可能なフォロワービークル10Bの制御入力を算出する。なお、フォロワービークル10Bは、目標位置算出部94Cは、リーダービークル10Aがリーダー用経路RAを更新する度に、フォロワー用経路RB、フォーメーション位置FM、目標位置OM及び目標姿勢を更新する。
【0094】
なお、フォロワービークル10Bの式(9)での評価関数fijは、次の式(24)のように設定されることが好ましい。これにより、フォロワービークル10Bの制御入力が算出できる。なお、フォロワービークル10Bの予測ホライズンは1である。フォロワービークル10Bは、リーダー用経路RAに追従するのみであるため、先読みして経路を設定する必要はなく、予測ホライズンは1で十分となる。このように予測ホライズンを1とすることで、演算負荷を低減できる。ただし、フォロワービークル10Bの予測ホライズンは1に限定されない。また、ηx、ηy、ηzは重み係数である。
【0095】
【0096】
また、フォロワービークル10Bの式(9)での制約条件gijは、次の式(25)のように設定されることが好ましい。これにより、リーダービークル10Aとフォロワービークル10Bとが接近した際に、リーダービークル10Aはフォロワービークル10Bを回避しようとせず(動作を変えず)、フォロワービークル10Bがリーダービークル10Aを回避する動作をとることが可能となる。これにより、両者が同時に回避動作を行う際に生じるデッドロックを回避できる。
【0097】
【0098】
なお、フォロワー用経路RBは、リーダー用経路RAに基づいて設定されているため、進入禁止場所AR1を避けるように設定されるが、フォロワービークル10Bは、例えばリーダー用経路RAの位置情報に加えて、進入禁止場所AR1の位置情報も用いることで、進入禁止場所AR1を通らないようにフォロワー用経路RBを設定してよい。また、フォロワービークル10Bは、リーダー用経路RAの位置情報に加えて、同じビークルユニット12の他のフォロワービークル10Bの位置情報を用いて、同じビークルユニット12の他のフォロワービークル10Bに衝突しないように、フォロワー用経路RBを設定してよい。なお、ここでの、他のフォロワービークル10Bに衝突しないようなフォロワー用経路RBは、後述の第3実施形態における障害物回避とは異なる処理に基づいて設定される。ここでのフォロワー用経路RBは、進入禁止場所AR1の位置情報と、同じビークルユニット12の他のフォロワービークル10Bの位置情報とに基づき、フォーメーションやオフセット量を適切に設計することで、設定される。
【0099】
(移動制御部)
移動制御部96は、動力部76を制御して、フォロワービークル10Bの移動を制御する。移動制御部58は、目標位置算出部94Cが算出した制御入力に基づいて動力部36を制御することで、フォロワービークル10Bを目的位置OM及び目的姿勢に向けて移動させる。
【0100】
(演算の他の例)
ここで、式(9)のような非線形制約付き最適化問題の求解には、公知技術であるSQP(Sequential Quadratic Programming)法等の収束計算を利用できる。しかし収束計算は演算時間が長く,予測ホライズンを大きく設定した数十メートル規模の経路計画では,リアルタイムでの経路計画ができない可能性がある。その場合は、リアルタイム計算に特化した公知技術であるC/GMRES法を用いてリーダー用経路RAの生成を行ってもよい。C/GMRES法では、最適解が時間的に連続に変化すると仮定し、その変化を追跡することで解を更新する。制御入力である解をU(t)とし、状態量をp(t)とすると、最適化問題の停留条件を満たすオイラー・ラグランジュ方程式は、次の式(26)のように表される。
【0101】
【0102】
F(U,p,t)は、評価関数、状態方程式、制約条件からなる式である。オイラー・ラグランジュ方程式の誤差が時間とともに滑らかに減衰すると仮定して、次の式(27)のように変形されて(ζ>0)、U´(t)についてさらに変形して、次の式(28)のようになる。
【0103】
【0104】
そして、式(28)をU´(t)について解いて時間微分することで、未知変数U(t)が得られる。方程式を解く際にはGMRES(Generalized Minimal Residual Method)法と呼ばれる連立方程式解法を用いている。このアルゴリズムにおいては、各演算周期で上記の方程式を一回だけ解いて解を更新し、最適化のための収束計算を行わないことで、計算の高速化を実現している。ただし、初回の解を生成するときのみ、ニュートン法を用いてt=0における最適解U(0)を求める。C/GMRES法は、高速に解を更新できる利点がある一方で、SQP法のように不等式制約を陽に考慮できないため、制御入力(速度・前輪舵角)の上下限制約は、スラック変数を用いて等式制約へ変換する必要がある。
【0105】
(制御フロー)
次に、同じビークルユニット12のリーダービークル10Aとフォロワービークル10Bが移動する際の制御フローを説明する。
図12は、同じビークルユニットのリーダービークルとフォロワービークルが移動する際の制御フローを説明するフローチャートである。
図12に示すように、リーダービークル10Aは、無向グラフ情報に基づいて、経由ノードndaを設定する(ステップS10)。より詳しくは、リーダービークル10Aは、無向グラフ情報取得部54Aにより、ノードndと、進入禁止場所AR1を通らないエッジedとを含む無向グラフ情報を読み出す。そして、リーダービークル10Aは、経由ノード設定部54Bにより、目的位置Oまでの経路が最短となるエッジedを経由エッジedaとして抽出し、経由エッジedaに結ばれているノードndを経由ノードndaとして抽出する。次に、リーダービークル10Aは、次の経由ノードndaまでのリーダー用経路RAを設定する(ステップS12)。すなわち、リーダービークル10Aは、リーダー用経路算出部54Cにより、次のウェイポイントとなる経由ノードndaを通るように、モデル予測制御によってリーダー用経路RAを設定する。リーダービークル10Aは、情報送信部56により、同じビークルユニット12に所属するフォロワービークル10Bに、リーダー用経路RAの情報、自身の位置情報、及びフォーメーション情報を送信する(ステップS14)。リーダービークル10Aは、移動制御部58により、リーダー用経路RAに沿って移動する(ステップS16)。
【0106】
その後、目的位置Oに到達していない場合(ステップS18;No)、リーダービークル10Aは、自身が次の経由ノードndaに対して所定距離範囲内に位置しているかを判断し(ステップS20)、次の経由ノードndaに対して所定距離範囲内に位置している場合(ステップS20;Yes)、次の経由ノードndaを、さらに先の経由ノードndaに更新して(ステップS22)、ステップS12に戻り、更新した経由ノードndaまでのリーダー用経路RAを生成して、移動を続ける。すなわち、リーダービークル10Aは、目指している経由ノードndaに対して所定距離範囲内まで到達する度に、目指している経由ノードndaを更新してリーダー用経路RAを生成する。なお、次の経由ノードndaに対して所定距離範囲内に位置していない場合(ステップS20;No)、ステップS16に戻って移動を続ける。
【0107】
一方、フォロワービークル10Bは、自身の位置情報と、他のフォロワービークル10Bの位置情報とを取得し(ステップS30)、同じビークルユニット12のリーダービークル10Aから、リーダー用経路RAの情報、リーダービークル10Aの位置情報、及びフォーメーション情報を取得する(ステップS32)。ステップS30、S32の実行順は任意である。フォロワービークル10Bは、これらの情報を取得したら、リーダー用経路RAに基づいて、フォロワー用経路RBを設定し(ステップS34)、フォロワー用経路RBとフォーメーション情報とに基づき、目標位置OM及び目的姿勢を設定する(ステップS36)。具体的には、フォロワービークル10Bは、フォロワー用経路設定部94Aにより、リーダー用経路RAから所定距離離れるように、フォロワー用経路RBを設定し、フォーメーション算出部94Bにより、リーダービークル10Aの位置及びフォーメーション情報に基づき、フォーメーションを維持するためのフォーメーション位置FMを算出する。そして、フォロワービークル10Bは、フォーメーション位置FMに最も近いリーダー用経路RAの位置を、目標位置OMとして設定する。
【0108】
フォロワービークル10Bは、移動制御部96により、リーダービークル10Aに追従して、目標位置OMに向けて移動する(ステップS40)。フォロワービークル10Bは、目的位置Oに到達しない場合(ステップS42;No)、ステップS30に戻り、目標位置OMを更新しつつ、リーダービークル10Aに追従した移動を続ける。一方、リーダービークル10Aやフォロワービークル10Bは、目的位置Oに到達したら(ステップS18;Yes、ステップS42;Yes)、本処理を終了する。
【0109】
(効果)
以上説明したように、本実施形態においては、1つのビークルユニット12において、リーダービークル10Aが、進入禁止場所AR1を通らないようにリーダー用経路RAを設定してリーダー用経路RAを移動しつつ、フォロワービークル10Bが、リーダー用経路RAに基づいてフォロワー用経路RBを設定して、フォロワー用経路RBに基づいて移動する。このように、本実施形態においては、リーダービークル10Aが主体となって経路を生成し、フォロワービークル10Bは、リーダービークル10Aの経路に基づいて自身の経路を生成して、リーダービークル10Aに追従する。そのため、ビークルユニット12によると、複数のビークル10を適切に協調して移動させることが可能となる。また、本実施形態においては、リーダービークル10Aが、進入禁止場所AR1を通らないようにリーダー用経路RAを設定するため、それぞれのビークル10が自身の経路を生成する分散型制御の場合においても、障害物への衝突を抑制することが可能となる。
【0110】
また、リーダービークル10Aは、無向グラフ情報を用いておおまかな経路を生成した後、すなわち経由ノードndaを設定した後、モデル予測制御によって詳細なリーダー用経路RAを生成する。リーダービークル10Aは、このように無向グラフとモデル予測制御を組み合わせることで、経路を適切に生成することが可能となる。
【0111】
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態に係るビークルユニット12は、他のビークルユニット12のリーダービークル10Aが経由ノードndaとして予約したノードndを用いずに、リーダー用経路RAを生成する点で、第1実施形態とは異なる。第2実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。
【0112】
第2実施形態においては、リーダービークル10Aは、抽出済みノードの情報を取得する。抽出済みノードとは、他のビークルユニット12のリーダービークル10Aによって経由ノードndaとして抽出されているノードndである。すなわち、リーダービークル10Aは、無向グラフ情報に含まれているノードndのうちの、どのノードndが他のビークルユニット12のリーダービークル10Aによって経由ノードndaとして抽出済みであるかの情報を、取得する。リーダービークル10Aは、他のビークルユニット12のリーダービークル10Aと通信して、他のビークルユニット12のリーダービークル10Aから、直接抽出済みノードの情報を取得してもよいし、管理システム14から抽出済みノードの情報を取得してもよい。
【0113】
そして、リーダービークル10Aは、抽出済みノード以外のノードndから、経由ノードndaを抽出する。具体的には、リーダービークル10Aは、経由ノード設定部54Bによって経由エッジedaを抽出する際に、無向グラフ情報に含まれているノードndから、抽出済みノードを除外し、無向グラフ情報に含まれているエッジedから、抽出済みノードに接続されているエッジedを除外する。従って、経由エッジedaを抽出する際の無向グラフ情報には、抽出済みノード以外のノードndと、抽出済みノードに接続されたエッジed以外のエッジedとが、残ることになる。リーダービークル10Aは、抽出済みノードに接続されたエッジed以外のエッジedのうちから、第1実施形態と同様の方法で、経由エッジedaを抽出して、経由ノードndaを抽出する。
【0114】
このように、リーダービークル10Aは、他のビークルユニット12によって予約済みのノードndを経由ノードndaとして使用しないため、他のビークルユニット12との衝突やデッドロックを適切に抑制できる。
【0115】
また、リーダービークル10Aは、経由ノードndaの抽出が完了したら、自身が抽出した経由ノードndaの情報を、抽出済みノードの情報として、他のビークルユニット12のリーダービークル10Aに送信する。リーダービークル10Aは、抽出済みノードの情報を、他のビークルユニット12のリーダービークル10Aに直接送信してもよいし、管理システム14に送信してもよい。リーダービークル10Aは、抽出済みノードの情報の送信が完了してから、移動を開始する。リーダービークル10Aは、目的位置Oまで到着したら、自身が抽出した経由エッジedaを抽出済みエッジから除外する旨の情報を、他のビークルユニット12のリーダービークル10Aに送信する。これにより、他のリーダービークル10Aに使用されていないエッジedが、経由エッジedaとして選択できなくなることが抑制できる。
【0116】
図13は、第2実施形態における経由エッジの抽出の例を説明する模式図である。
図13の例では、1つのビークルユニット12のリーダービークル10A1は、ノードnd1に位置しており、目的位置Oがノードnd4となっている。そして、他の1つのビークルユニット12のリーダービークル10A2は、ノードnd2に位置しており、目的位置Oがノードnd6となっている。そして、リーダービークル10A1が先に経由エッジedaを抽出した場合を例にして説明する。
【0117】
図13のステップS90に示すように、最初に、リーダービークル10A1が、ノードnd1、nd3、nd4を、経由ノードndaとして抽出して、ノードnd1、nd3、nd4が抽出済みノードである旨の情報を、リーダービークル10A2に送信する。
【0118】
図13のステップS92に示すように、その後、リーダービークル10A2が、経由ノードndaを抽出する。この際、ノードnd1、nd3、nd4が抽出済みノードであるため、リーダービークル10A2は、ノードnd1、nd3、nd4に結ばれたエッジedを除いたエッジedから、経由エッジedaを抽出して、経由ノードndaを抽出する。
図13の例では、リーダービークル10A2は、ノードnd2、nd5、nd8、nd7、nd6を、経由ノードndaとして抽出している。
【0119】
このように、
図13の例では、他のビークルユニット12が通過予定のノードndを他のビークルユニット12に通過させないため、ビークルユニット12同士の接近を発生しにくくすることができる。
【0120】
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態に係るリーダービークル10Aは、リーダー用経路RAを設定する際に、リーダー用経路RAが進入禁止場所AR1を通らないように演算を行う点で、第1実施形態とは異なる。第3実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。なお、第3実施形態は、第2実施形態にも適用可能である。
【0121】
第1実施形態においては、進入禁止場所AR1に基づき作成された無向グラフ情報を用いてリーダー用経路RAを生成するため、進入禁止場所AR1内の障害物と交差するリーダー用経路RAが生成されることはない。ただし、例えば狭隘部などを走行する場合には、障害物と接触するリーダー用経路RAが生成される可能性がある。それに対し、第3実施形態に係るリーダービークル10Aは、以降のように評価関数にバリア関数を用いてリーダー用経路RAを生成することで、障害物と接触するリーダー用経路RAが生成される可能性をより低減することが可能となる。以下、具体的に説明する。
【0122】
第3実施形態においては、式(9)で示したモデルM1Aに対して、リーダー用経路RAを生成する際の評価関数fi1を、次の式(29)のように定義する。
【0123】
【0124】
ここで、式(29)の評価関数の第2項が、壁などの静止障害物を回避するためのバリア関数を表し、Bは重み係数を表す。また、関数Cbは、進入禁止場所AR1の端点同士を結ぶベクトルaiと、進入禁止場所AR1の端点からビークル10の位置を結ぶベクトルbiを用いて、次の式(30)のように設定される。
【0125】
【0126】
ここで、ξは定数パラメータ、N
Rは進入禁止場所AR1の端点の個数であり、矩形である場合は4となる。
図14は、関数C
bを説明するための模式図である。
図14に示すように進入禁止場所AR1が矩形である場合には、b
i×a
i=(x-x
i)×(y
i+1-y
i)・(x
i+1-x
i)となる。すなわち、関数C
bは、ベクトルの外積の符号を用いた内外判定を示す関数であるといえる。
【0127】
図15は、第3実施形態に係るリーダービークルによって生成されたリーダー用経路の一例を示す模式図である。
図15の例に示すように、ノードnd0、nd1、nd2、nd3、nd4、nd5、nd6を通る経路において、ノードnd2、nd3、nd4を通る経路は、進入禁止場所AR1に挟まれた狭隘部を通る経路となる。そのため、無向グラフ情報を用いた場合でも、リーダー用経路が、
図15の破線に示すように、進入禁止場所AR1に少しだけ進入してしまうおそれがある。それに対し、第3実施形態においては、式(29)のような評価関数を用いて、関数C
bなどで経路が進入禁止場所AR1内に入らないことを判定基準として、リーダー用経路RAを生成する。そのため、
図15の実線に示すように、リーダー用経路RAが進入禁止場所AR1内を通ることが抑制できる。
【0128】
なお、以上の説明では、リーダー用経路RAを作成する際に式(29)の評価関数を用いるとしたが、フォロワービークル10Bも、同様の評価関数を用いて、フォロワー用経路RBを生成してもよい。これにより、フォロワー用経路RBについても、進入禁止場所AR1内を通ることを適切に抑制できる。
【0129】
(第4実施形態)
次に、第4実施形態について説明する。第4実施形態に係るビークルユニット12は、他のビークルユニット12のリーダービークル10Aの直近のウェイポイントとなる経由ノードndaとして予約したノードndを除外して、リーダー用経路RAを生成する点で、第1実施形態とは異なる。第4実施形態において、第1実施形態と構成が共通する箇所は、説明を省略する。なお、第4実施形態は、第3実施形態にも適用可能である。
【0130】
図16及び
図17は、第4実施形態における経由ノードの抽出方法の一例を説明するための模式図である。第4実施形態においては、リーダービークル10Aは、直近ノードの情報を取得する。直近ノードとは、他のビークルユニット12のリーダービークル10Aによって、次(直後)のウェイポイントとなる経由ノードndaとして選択されているノードndであり、言い換えれば、他のビークルユニット12によって抽出された経由ノードndaのうち、他のビークルユニット12の直近の移動先のノードndであるといえる。すなわち、リーダービークル10Aは、無向グラフ情報に含まれているノードndのうちの、どのノードndが他のビークルユニット12によって直近の移動先のノードndとして選択されているかの情報を、取得する。
【0131】
また、リーダービークル10Aは、直近ノードの情報と共に、直近エッジの情報も取得する。直近エッジとは、他のビークルユニット12が抽出した直近ノード(直近の移動先のノードnd)と、直近ノードの1つ前のノードnd(直近の移動先のノードndに移動する際に移動元となるノードnd)とを結ぶエッジedである。直近エッジとは、他のビークルユニット12が使用中のエッジedであるともいえる。すなわち、リーダービークル10Aは、無向グラフ情報に含まれているエッジedのうちの、どのエッジedが他のビークルユニット12によって使用中であるかの情報を、取得する。リーダービークル10Aは、他のビークルユニット12のリーダービークル10Aと通信して、他のビークルユニット12のリーダービークル10Aから直接、直近ノード及び直近エッジの情報を取得してもよいし、管理システム14から直近ノード及び直近エッジの情報を取得してもよい。
【0132】
リーダービークル10Aは、直近ノード以外のノードndから、経由ノードndaを抽出する。また、リーダービークル10Aは、直近エッジ以外のエッジedから、経由エッジedaを抽出する。具体的には、リーダービークル10Aは、経由ノード設定部54Bによって経由エッジedaを抽出する際に、無向グラフ情報に含まれているノードndから、直近ノードを除外し、無向グラフ情報に含まれているエッジedから、直近エッジを除外する。従って、経由エッジedaを抽出する際の無向グラフ情報には、直近ノード以外のノードndと、直近エッジ以外のエッジedとが、残ることになる。
【0133】
図16を例にすると、1つのビークルユニット12のリーダービークル10A1は、ノードnd1に位置しており、目的位置Oがノードnd4となっている。そして、他の1つのビークルユニット12のリーダービークル10A2は、ノードnd2に位置しており、目的位置Oがノードnd6となっている。そして、リーダービークル10A1が先に移動開始する場合を例にして説明する。ステップS100、S102に示すように、リーダービークル10A1は、ノードnd1、nd3、nd4を、経由ノードndaとして抽出する。そして、リーダービークル10A1は、ノードnd3が直近ノードであり、ノードnd1とノードnd3を結ぶエッジが直近エッジである旨の情報を、リーダービークル10A2に送信してから、直近ノードであるノードnd3への移動を開始する。
【0134】
また、リーダービークル10A2は、直近ノード(
図16ではノードnd3)に結ばれている直近エッジ以外のエッジedである周辺エッジedsに対して、待ち時間に応じた重み付けを行う。待ち時間とは、リーダービークル10A2が、周辺エッジedsの使用を開始するまでに、すなわち周辺エッジedsに接続されているノードndへの移動を開始するまでに待機する時間を指す。
図16の例では、S102に示すように、周辺エッジedsは、ノードnd3-nd2間のエッジed2、ノードnd3-nd4間のエッジed4、ノードnd3-nd6間のエッジed6であり、直近ノードと対になるノードndは、ノードnd2、nd4、nd6となる。直近ノードと対になるノードnd2、nd4、nd6には、リーダービークル10A1の次の移動先となるノードが含まれているため、リーダービークル10A2は、直近ノードと対になるノードに移動するまでに待機が必要となる場合もある。そのため、周辺エッジedsに対して重み付けを行うことで、待ち時間も考慮した適切な経路設計が可能となる。
【0135】
待ち時間に応じた重み付けは、例えば、リーダービークル10A1の次の次の移動先(直近ノードに対して次の移動先)となるノードndの情報に基づき設定される。すなわち、リーダービークル10A1の次の次の移動先(2つ先の移動先)となるノードndと結ばれている周辺エッジedsについては、待ち時間が長くなるように設定されて、リーダービークル10A1の次の次の移動先となるノードndと結ばれていない周辺エッジedsについては、待ち時間が短くなるように設定される。リーダービークル10A2は、リーダービークル10A1の次の次の移動先となるノードndの情報を取得し、その情報に基づき、周辺エッジedsについて、待ち時間に応じた重み付けを行う。
図16の例では、リーダービークル10A1の次の次の移動先は、ノードnd4である。そのため、リーダービークル10A2は、リーダービークル10A1の次の移動先であるノードnd3(直近ノード)に対する周辺エッジedsであるノードnd2、nd4、nd6のうちで、リーダービークル10A1の次の次の移動先であるノードnd4に接続されるエッジed4について、待ち時間が長くなるように重み付けを行う。
【0136】
リーダービークル10A2は、エッジedの長さの重み付けと、待ち時間に応じた重み付けとに基づき、直近エッジ以外のエッジedから、経由エッジedaを抽出する。リーダービークル10A2は、エッジedの長さの重み付けと、待ち時間に応じた重み付けとから、目的位置Oまでの到達時間が早くなるように、経由エッジedaを抽出する。なお、待ち時間の重み付けをゼロとした場合には、目的位置Oまでの距離が最短となることで、目的位置Oまでの到達時間が早くなるので、的位置Oまでの距離が最短となるような経由エッジedaが抽出される。
図16の例では、ステップS102に示すように、リーダービークル10A2は、エッジedの長さの重み付けと、待ち時間に応じた重み付けとに基づき、直近エッジであるノードnd1とノードnd3を結ぶエッジ以外のエッジedのうちから、ノードnd2-ノードnd4間のエッジedと、ノードnd4-ノードnd7間のエッジedと、ノードnd7-ノードnd6間のエッジedとを、経由エッジedaとする。そして、リーダービークル10A2は、ノードnd2、nd4、nd7、nd6を、経由ノードndaとする。
【0137】
その後、ステップS102に示すように、リーダービークル10A2は、ノードnd4が直近ノードである旨の情報をリーダービークル10A1に送信してから、直近ノードであるノードnd4への移動を開始する。以降の処理は、これまでと同様に行われるため、説明を省略する。
【0138】
このように、第4実施形態においては、他のリーダービークル10A1の直近の移動先となるノードndのみを、リーダービークル10A2の移動を禁止するノードndとするため、ビークル10同士の衝突を抑制しつつ、移動を禁止するノードndが増加することを抑えて、ビークル群全体での経路を最適化することが可能となる。すなわち、例えば
図17に示すように、リーダービークル10A1の経由ノードndaをノードnd1、nd3、nd4とし、リーダービークル10A2の経由ノードndaをノードnd2、nd4、nd7、nd6とすることが可能となり、時間差をおいてノードnd4を共有して、経路を最適化できる。また、周辺エッジedsについて待ち時間で重み付けすることで、他のチームが利用するノードndに対して迂回か待機かを選択することができ、ビークル群全体での経路をより適切に最適化することができる。
【0139】
(第5実施形態)
次に、第5実施形態について説明する。第5実施形態においては、リーダービークル10Aは、次のウェイポイントである経由ノードndaに到着する前に、ウェイポイントを更新して次のリーダー用経路RAを設定する点で、第1実施形態とは異なる。第5実施形態において第1実施形態と構成が共通する箇所は、説明を省略する。なお、第5実施形態は、第2実施形態から第4実施形態にも適用可能である。
【0140】
図18及び
図19は、リーダー用経路の更新を説明するための模式図である。第1実施形態においては、リーダー用経路算出部54Cは、
図18のステップS110、S112に示すように、リーダービークル10Aがウェイポイントであるノードnd1に到着したら、ウェイポイントを次のノードnd2に切り替えて、到着したノードnd1から次のノードnd2までの経路を、リーダー用経路RAとして更新設定する。その後も同様に、ステップS114に示すように、リーダービークル10Aがノードnd2に到着したら、ウェイポイントを次のノードnd3に切り替えて、到着したノードnd2から次のノードnd3までの経路を、リーダー用経路RAとして更新設定する。この場合、
図18に示すように、大回りとなってしまい経路が長くなってしまうおそれがある。
【0141】
それに対し、第5実施形態においては、リーダー用経路算出部54Cは、
図19のステップS120、S122に示すように、リーダービークル10Aがウェイポイントであるノードnd1に対して所定距離dの範囲内に到着したら、ウェイポイントを次のノードnd2に切り替えて、現在地から次のノードnd2までの経路を、リーダー用経路RAとして更新設定する。その後も同様に、ステップS124に示すように、リーダービークル10Aがノードnd2に対して所定距離dの範囲内に到着したら、ウェイポイントを次のノードnd3に切り替えて、現在地からから次のノードnd3までの経路を、リーダー用経路RAとして更新設定する。この場合、
図19に示すように、大回りとなることを抑制して、スループットを向上できる。なお、所定距離dは、任意に設定してよく、例えば一定の値に設定されていてもよいし、ノードnd間の距離に対する割合に基づき、ノードndごとに動的に設定してもよいし、環境レイアウトとしてノードndごとに定義してもよい。
【0142】
(効果)
以上説明したように、本実施形態に係るビークルユニット12は、進入禁止場所AR1の位置を示す情報と目的位置Oの情報とに基づいて、自身が移動する経路であるリーダー用経路RAを設定するリーダービークル(第1ビークル)10Aと、リーダー用経路RAに基づいて、自身が移動する経路であるフォロワー用経路RBを設定するフォロワービークル10B(第2ビークル)10Bと、を含む。本実施形態に係るビークルユニット12は、リーダービークル10Aが主体となって経路を生成し、フォロワービークル10Bは、リーダービークル10Aの経路に基づいて自身の経路を生成して、リーダービークル10Aに追従する。そのため、ビークルユニット12によると、複数のビークル10を適切に協調して移動させることが可能となる。また、本実施形態においては、リーダービークル10Aが、進入禁止場所AR1を通らないようにリーダー用経路RAを設定するため、それぞれのビークル10が自身の経路を生成する分散型制御の場合においても、障害物への衝突を抑制することが可能となる。このように、本実施形態に係るビークルユニット12は、ビークルの経路を適切に設定することができる。
【0143】
リーダービークル10Aは、フォロワー用経路RBを参照することなくリーダー用経路RAを設定する。本実施形態に係るビークルユニット12は、リーダービークル10Aがフォロワービークル10Bを考慮することなく経路を生成するため、ビークル毎に適切に役割を配分して、複数のビークル10を適切に協調して移動させることが可能となる。
【0144】
リーダービークル10Aは、移動を予定する領域AR内において座標毎に設定されたノードndと、ノードnd同士を結ぶエッジedとを含む無向グラフ情報を取得する無向グラフ情報取得部54Aと、進入禁止場所AR1を通らず、かつ目的位置Oに到達可能なエッジedである経由エッジedaを抽出し、経由エッジedaに結ばれるノードndを経由ノードndaとして設定する経由ノード設定部54Bと、経由ノードndaに基づきリーダー用経路RAを設定するリーダー用経路算出部54Cと、を含む。このリーダービークル10Aは、無向グラフ情報を用いて生成したおおまかな経路に基づいて、リーダー用経路RAを生成する。リーダービークル10Aは、このように経路生成することで、経路を適切に生成することが可能となる。
【0145】
経由ノード設定部54Bは、エッジedを通って目的位置Oまで到達するまでの距離が最短となるように、経由エッジedaを抽出する。リーダービークル10Aは、このように経由エッジedaを抽出することで、経路を適切に生成することが可能となる。
【0146】
経由ノード設定部54Bは、他のビークルユニット12によって抽出された経由ノードndaの情報を取得し、他のビークルユニット12によって抽出された経由ノードnda以外のノードndから、経由ノードndaを抽出する。リーダービークル10Aは、このように他のビークルユニット12によって選択済みのノードndを使用しないことで、ビークル10同士の衝突やデッドロックを適切に抑制できる。
【0147】
経由ノード設定部54Bは、他のビークルユニット12によって抽出された経由ノードndaのうち、他のビークルユニット12の直近の移動先のノードndである直近ノードの情報を取得し、他のビークルユニット12の直近ノードに結ばれたエッジed(周辺エッジeds)について、そのエッジedの通行が開始可能になるまでの待ち時間の情報を取得し、目的位置Oまでの距離と、待ち時間とに基づき、経由エッジedaを抽出する。リーダービークル10Aは、このように経由エッジedaを抽出することで、待ち時間も考慮した適切な経路設計が可能となる。
【0148】
リーダー用経路算出部54Cは、経由ノードndaに基づき、モデル予測制御でリーダー用経路RAを設定する。このリーダービークル10Aは、無向グラフ情報を用いたおおまかな経路生成と、モデル予測制御による経路生成とを組み合わせる。リーダービークル10Aは、このように経路生成することで、経路を適切に生成することが可能となる。
【0149】
リーダー用経路算出部54Cは、経由ノードndaを通るように、リーダー用経路RAを設定する。リーダービークル10Aは、このように経路生成することで、経路を適切に生成することが可能となる。
【0150】
リーダー用経路算出部54Cは、経由ノードnda毎に、リーダー用経路RAを設定する。リーダービークル10Aは、このように経由ノードnda毎に経路生成することで、経路を適切に生成することが可能となる。
【0151】
リーダー用経路算出部54Cは、リーダービークル10Aが、経由ノードndaとして設定された第1経由ノードに対して所定距離dの範囲内に到達したら、次の経由ノードndaである第2経由ノードまでのリーダー用経路RAを設定する。リーダービークル10Aは、このように経由ノードnda毎に経路生成することで、経路を適切に生成することが可能となる。
【0152】
リーダー用経路算出部54Cは、リーダー用経路RAが進入禁止場所AR1を通らないように、リーダー用経路RAを設定する。リーダーダービークル10Aは、このように経由ノードnda毎に経路生成することで、例えば狭隘部を通る場合にも進入禁止場所AR1に進入してしまうことが抑制されて、経路を適切に生成することが可能となる。
【0153】
フォロワービークル10Bは、リーダー用経路RAから所定距離離れるように、フォロワー用経路RBを設定する。フォロワービークル10Bは、このようにフォロワー用経路RBを設定することで、リーダービークル10Aに衝突しないように、リーダービークル10Aに追従することができる。
【0154】
フォロワービークル10Bは、リーダービークル10Aに対するフォロワービークル10Bの望ましい相対位置を示すフォーメーション情報と、リーダービークル10Aの位置情報とを取得する情報取得部92と、フォーメーション情報及びリーダービークル10Aの位置に基づき、フォロワービークル10Bの望ましい位置であるフォーメーション位置FMを算出するフォーメーション位置算出部94Bと、フォロワー用経路RB及びフォーメーション位置FMに基づき、目標位置OMを設定する目標位置算出部94Cと、を含む。フォロワービークル10Bは、このように目的位置OMを設定するため、リーダービークル10Aに対するフォーメーションを出来るだけ維持しつつ、適切な経路で移動することができる。
【0155】
目標位置算出部94Cは、フォーメーション位置FMに最も近いフォロワー用経路RB上の位置を、目標位置OMとして設定する。フォロワービークル10Bは、このように目的位置OMを設定するため、リーダービークル10Aに対するフォーメーションを出来るだけ維持しつつ、大回りなど経路が長くなってしまうことを抑制できる。
【0156】
第1ビークル10Aは、他のビークルユニット12の第1ビークル10Aと情報の送受信を行う。第1ビークル10Aは、他のビークルユニット12の第1ビークル10Aと情報の送受信を行うことで、他のビークルユニット12との衝突やデッドロックなどを抑制できる。
【0157】
本実施形態に係るビークル10(リーダービークル10A)は、移動を予定する領域AR内において座標毎に設定されたノードndと、ノードnd同士を結ぶエッジedとを含む無向グラフ情報を取得する無向グラフ情報取得部54Aと、進入禁止場所AR1を通らず、かつ目的位置Oに到達可能なエッジedである経由エッジedaを抽出し、経由エッジedaに結ばれるノードndを経由ノードndaとして設定する経由ノード設定部54Bと、経由ノードndaに基づき、モデル予測制御で移動経路であるリーダー用経路RAを設定するリーダー用経路算出部54Cと、を含む。このビークル10は、無向グラフ情報を用いたおおまかな経路生成と、モデル予測制御による経路生成とを組み合わせる。リーダービークル10Aは、このように経路生成することで、経路を適切に生成することが可能となる。
【0158】
本実施形態に係るビークル10の制御方法は、進入禁止場所AR1の位置を示す情報と目的位置Oの情報とに基づいて、リーダービークル10Aが移動する経路であるリーダー用経路RAを設定するステップと、リーダー用経路RAに基づいて、フォロワービークル10Bが移動する経路であるフォロワー用経路RBを設定するステップと、を含む。本実施形態に係る制御方法によると、ビークルの経路を適切に設定することができる。
【0159】
本実施形態に係るビークル10の制御方法は、移動を予定する領域AR内において座標毎に設定されたノードndと、ノードnd同士を結ぶエッジedとを含む無向グラフ情報を取得するステップと、進入禁止場所AR1を通らず、かつ目的位置Oに到達可能なエッジedである経由エッジedaを抽出し、経由エッジedaに結ばれるノードndを経由ノードndaとして設定するステップと、経由ノードndaに基づき、モデル予測制御で移動経路であるリーダー用経路RAを設定するステップと、を含む。本実施形態に係る制御方法によると、ビークルの経路を適切に設定することができる。
【0160】
本実施形態に係るプログラムは、進入禁止場所AR1の位置を示す情報と目的位置Oの情報とに基づいて、リーダービークル10Aが移動する経路であるリーダー用経路RAを設定するステップと、リーダー用経路RAに基づいて、フォロワービークル10Bが移動する経路であるフォロワー用経路RBを設定するステップと、含むビークルの制御方法を、コンピュータに実行させる。本実施形態に係るプログラムによると、ビークルの経路を適切に設定することができる。
【0161】
本実施形態に係るプログラムは、移動を予定する領域AR内において座標毎に設定されたノードndと、ノードnd同士を結ぶエッジedとを含む無向グラフ情報を取得するステップと、進入禁止場所AR1を通らず、かつ目的位置Oに到達可能なエッジedである経由エッジedaを抽出し、経由エッジedaに結ばれるノードndを経由ノードndaとして設定するステップと、経由ノードndaに基づき、モデル予測制御で移動経路であるリーダー用経路RAを設定するステップと、を含むビークルの制御方法を、コンピュータに実行させる。本実施形態に係るプログラムによると、ビークルの経路を適切に設定することができる。
【0162】
以上、本発明の実施形態を説明したが、この実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【符号の説明】
【0163】
10 ビークル
10A リーダービークル(第1ビークル)
10B フォロワービークル(第2ビークル)
12 ビークルユニット
50 目的位置情報取得部
52、90 自己位置情報取得部
54 リーダー用経路設定部
56 情報送信部
58、96 移動制御部
92 情報取得部
94 目標位置設定部
AR1 進入禁止場所
RA リーダー用経路
RB フォロワー用経路