(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024024555
(43)【公開日】2024-02-22
(54)【発明の名称】衝突条件付与装置、方法、プログラム、及び経路生成装置
(51)【国際特許分類】
G05D 1/43 20240101AFI20240215BHJP
【FI】
G05D1/02 S
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022127476
(22)【出願日】2022-08-09
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和4年6月30日 https://ieeexplore.ieee.org/document/9811344にて公開
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】笠浦 一海
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA03
5H301AA10
5H301BB14
5H301CC03
5H301CC06
5H301LL01
5H301LL02
5H301LL03
5H301LL06
5H301LL11
5H301LL14
(57)【要約】
【課題】ロードマップ上のマルチエージェントの連続的な時間における経路生成を短時間で行うことを可能にする。
【解決手段】抽出部32が、複数の頂点、及び頂点間を接続する複数の辺を含むロードマップ40上を複数のエージェントが移動する場合において、エージェント同士が衝突する可能性のある頂点-辺ペア、及び辺-辺ペアを抽出し、算出部34が、頂点-辺ペアの頂点に一方のエージェントが存在する時刻と、辺の端点から他方のエージェントが移動を開始する時刻との差、及び、辺-辺ペアの一方の辺の端点から一方のエージェントが移動を開始する時刻と、他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、両エージェントの衝突が起こる時間区間を算出し、各ペアに含まれる頂点及び辺の識別情報と時間区間とを対応付けた衝突条件情報をロードマップ40に付与する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数の頂点、及び前記頂点間を接続する複数の辺を含むロードマップ上を複数のエージェントが移動する場合において、前記頂点に存在する前記エージェント又は前記辺を移動する前記エージェント同士が衝突する可能性のある前記頂点と前記辺との第1ペア、及び前記エージェント同士が衝突する可能性のある一方の辺と他方の辺との第2ペアを抽出する抽出部と、
前記第1ペアの各々の前記頂点に一方のエージェントが存在する時刻と、前記辺の端点から他方の前記エージェントが移動を開始する時刻との差、及び、前記第2ペアの各々の前記一方の辺の端点から一方のエージェントが移動を開始する時刻と、前記他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、前記一方のエージェントと前記他方のエージェントとの衝突が起こる時間区間を算出する算出部と、
前記第1ペアに含まれる前記頂点及び前記辺の識別情報と前記時間区間とを対応付けた情報、及び前記第2ペアに含まれる2つの前記辺の各々の識別情報と前記時間区間とを対応付けた情報を、前記エージェント同士が衝突する条件として前記ロードマップに付与する付与部と、
を含む衝突条件付与装置。
【請求項2】
前記抽出部は、与えられた点の集合の中で点間の距離が一定以下の点のペアを列挙するアルゴリズム、与えられた点の集合の中で与えられた領域内に存在する点を列挙するアルゴリズム、及び与えられた線分の集合の中で交差している線分のペアを列挙するアルゴリズムを用いて、前記ロードマップに含まれる前記複数の頂点及び前記複数の辺の中から前記第1ペア及び前記第2ペアを抽出する請求項1に記載の衝突条件付与装置。
【請求項3】
前記抽出部は、前記エージェントを直径が所定値の円と仮定した場合、前記ロードマップに含まれる前記複数の頂点及び前記複数の辺から、
辺の端点の少なくとも一方と頂点との距離が前記所定値未満の場合、及び頂点から辺へ引いた垂線の長さが前記所定値未満の場合の少なくとも一方を満たす頂点と辺とのペアを前記第1ペアとして抽出し、
一方の辺の端点の少なくとも一方と他方の辺との距離が前記所定値未満の場合、及び辺同士が交差している場合の少なくとも一方を満たす辺と辺とのペアを前記第2ペアとして抽出する
請求項1に記載の衝突条件付与装置。
【請求項4】
請求項1~請求項3のいずれか1項に記載の衝突条件付与装置により前記エージェント同士が衝突する条件が付与された前記ロードマップ上を移動する複数のエージェントの各々の経路であって、前記経路に含まれる前記頂点に前記エージェントが存在する時刻及び前記辺の端点から前記エージェントが移動を開始する時刻が、前記条件の時間区間に含まれないような経路を生成する生成部を含む経路生成装置。
【請求項5】
前記生成部は、前記エージェントの経路を1つずつ順次生成する場合において、第1エージェントの経路を生成し、次に第2エージェントの経路を生成する際に、前記第1エージェントについて生成された経路に含まれる前記頂点に前記エージェントが存在する時刻及び前記辺の端点から前記エージェントが移動を開始する時刻との差が、前記時間区間に含まれない時刻に、前記第2エージェントが前記頂点に存在するか、前記辺の端点から移動を開始するような経路を生成する請求項4に記載の経路生成装置。
【請求項6】
抽出部が、複数の頂点、及び前記頂点間を接続する複数の辺を含むロードマップ上を複数のエージェントが移動する場合において、前記頂点に存在する前記エージェント又は前記辺を移動する前記エージェント同士が衝突する可能性のある前記頂点と前記辺との第1ペア、及び前記エージェント同士が衝突する可能性のある一方の辺と他方の辺との第2ペアを抽出し、
算出部が、前記第1ペアの各々の前記頂点に一方のエージェントが存在する時刻と、前記辺の端点から他方の前記エージェントが移動を開始する時刻との差、及び、前記第2ペアの各々の前記一方の辺の端点から一方のエージェントが移動を開始する時刻と、前記他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、前記一方のエージェントと前記他方のエージェントとの衝突が起こる時間区間を算出し、
付与部が、前記第1ペアに含まれる前記頂点及び前記辺の識別情報と前記時間区間とを対応付けた情報、及び前記第2ペアに含まれる2つの前記辺の各々の識別情報と前記時間区間とを対応付けた情報を、前記エージェント同士が衝突する条件として前記ロードマップに付与する
衝突条件付与方法。
【請求項7】
コンピュータを、
複数の頂点、及び前記頂点間を接続する複数の辺を含むロードマップ上を複数のエージェントが移動する場合において、前記頂点に存在する前記エージェント又は前記辺を移動する前記エージェント同士が衝突する可能性のある前記頂点と前記辺との第1ペア、及び前記エージェント同士が衝突する可能性のある一方の辺と他方の辺との第2ペアを抽出する抽出部、
前記第1ペアの各々の前記頂点に一方のエージェントが存在する時刻と、前記辺の端点から他方の前記エージェントが移動を開始する時刻との差、及び、前記第2ペアの各々の前記一方の辺の端点から一方のエージェントが移動を開始する時刻と、前記他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、前記一方のエージェントと前記他方のエージェントとの衝突が起こる時間区間を算出する算出部、及び、
前記第1ペアに含まれる前記頂点及び前記辺の識別情報と前記時間区間とを対応付けた情報、及び前記第2ペアに含まれる2つの前記辺の各々の識別情報と前記時間区間とを対応付けた情報を、前記エージェント同士が衝突する条件として前記ロードマップに付与する付与部
として機能させるための衝突条件付与プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、衝突条件付与装置、衝突条件付与方法、衝突条件付与プログラム、及び経路生成装置に関する。
【背景技術】
【0002】
一つの環境内を、大きさを持つ複数のエージェントが互いに衝突することなくそれぞれの出発点からそれぞれの目的点へと移動する経路を探索する問題は、MAPF(Multi-Agent Path Finding)と呼ばれる。一般的なMAPF問題では、環境内でエージェントが移動可能な経路を表現したグリッドグラフ又はロードマップ上で、各エージェントの移動を離散的な時間の下で決定する。
【0003】
MAPF問題に関する技術として、例えば、走行路の競合、隣接したノードを考慮し、複数の無人車が効率よく目的ノードへ移動するための動作及び経路を計画する運行管理制御装置が提案されている(特許文献1)。この装置では、各無人車の移動経路及びノード予約シーケンスと、搬送物の位置や搬送先などと、各無人車の現在位置、移動方向などと、走行路上の各ノードの座標と、その接続関係およびコストなどと、ペトリネットモデルのデータとがメモリに記憶される。また、この装置は、メモリに記憶された情報を用いて、無人車の最適な走行経路、動作順序を決定する。
【0004】
また、例えば、複数の走行路を含む走行路ネットワークを走行する複数の移動体に対する運行計画を行う運航計画システムが提案されている(特許文献2)。このシステムは、複数の移動体の位置情報と、走行路ネットワークの構造を表す走行路構造情報と、走行路ネットワークにおける複数の指定領域について、複数の移動体に対してそれぞれ通過する1つ以上の指定領域の順序を指定した複数の経路計画と、に基づき、走行路で移動体同士の競合が発生しないように、複数の移動体が走行路を走行するタイミングを指定した複数の走行タイミング計画を生成する。
【0005】
また、シングルエージェントについて、移動障害物がある場合の経路探索を連続的な時間の下で行うSIPP(Safe Interval Path Planning)という手法が提案されている(非特許文献1)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平10-312217号公報
【特許文献2】特開2020-149370号公報
【非特許文献】
【0007】
【非特許文献1】Mike Phillips and Maxim Likhachev, "SIPP: Safe Interval Path Planning for Dynamic Environments ", Computer Science 2011 IEEE International Conference on Robotics and Automation, 9 May 2011.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、各エージェントの移動を離散的な時間の下で決定する場合、時間を全てのエージェントに共通のターンに分け、エージェントの行動はターン毎に決定されることになる。これによりエージェント間の衝突を避けるための制限が大きくなり、経路探索が困難になる場合があるという問題がある。
【0009】
離散的な時間におけるMAPF問題を、SIPPのような連続的な時間を扱う手法と組み合わせることで、MAPF問題を連続的な時間の場合に拡張することも考えられる。しかし、非グリッドグラフであるロードマップにSIPPを適用する場合、エージェント同士の衝突判定が計算上のボトルネックになる。なぜなら、SIPPを適用するためには、ロードマップ上の全ての移動障害物と、どのタイミングで、どの箇所で衝突が起こり得るかを事前に把握しておく必要がある。そのため、マルチエージェントの場合、何らかの優先度順に1つずつエージェントの経路を決定していくことになる。この場合、エージェントの数が増えると、膨大な計算が必要となり、MAPF問題の解である各エージェントの経路を、現実的な時間で生成することが困難となる。
【0010】
本発明は、上記の点に鑑みてなされたものであり、ロードマップ上のマルチエージェントの連続的な時間における経路生成を短時間で行うことを可能にすることを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するために、本発明に係る衝突条件付与装置は、複数の頂点、及び前記頂点間を接続する複数の辺を含むロードマップ上を複数のエージェントが移動する場合において、前記頂点に存在する前記エージェント又は前記辺を移動する前記エージェント同士が衝突する可能性のある前記頂点と前記辺との第1ペア、及び前記エージェント同士が衝突する可能性のある一方の辺と他方の辺との第2ペアを抽出する抽出部と、前記第1ペアの各々の前記頂点に一方のエージェントが存在する時刻と、前記辺の端点から他方の前記エージェントが移動を開始する時刻との差、及び、前記第2ペアの各々の前記一方の辺の端点から一方のエージェントが移動を開始する時刻と、前記他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、前記一方のエージェントと前記他方のエージェントとの衝突が起こる時間区間を算出する算出部と、前記第1ペアに含まれる前記頂点及び前記辺の識別情報と前記時間区間とを対応付けた情報、及び前記第2ペアに含まれる2つの前記辺の各々の識別情報と前記時間区間とを対応付けた情報を、前記エージェント同士が衝突する条件として前記ロードマップに付与する付与部と、を含んで構成される。
【0012】
また、前記抽出部は、与えられた点の集合の中で点間の距離が一定以下の点のペアを列挙するアルゴリズム、与えられた点の集合の中で与えられた領域内に存在する点を列挙するアルゴリズム、及び与えられた線分の集合の中で交差している線分のペアを列挙するアルゴリズムを用いて、前記ロードマップに含まれる前記複数の頂点及び前記複数の辺の中から前記第1ペア及び前記第2ペアを抽出してもよい。
【0013】
また、前記抽出部は、前記エージェントを直径が所定値の円と仮定した場合、前記ロードマップに含まれる前記複数の頂点及び前記複数の辺から、辺の端点の少なくとも一方と頂点との距離が前記所定値未満の場合、及び頂点から辺へ引いた垂線の長さが前記所定値未満の場合の少なくとも一方を満たす頂点と辺とのペアを前記第1ペアとして抽出し、一方の辺の端点の少なくとも一方と他方の辺との距離が前記所定値未満の場合、及び辺同士が交差している場合の少なくとも一方を満たす辺と辺とのペアを前記第2ペアとして抽出してもよい。
【0014】
また、上記目的を達成するために、本発明に係る経路生成装置は、上記の衝突条件付与装置により前記エージェント同士が衝突する条件が付与された前記ロードマップ上を移動する複数のエージェントの各々の経路であって、前記経路に含まれる前記頂点に前記エージェントが存在する時刻及び前記辺の端点から前記エージェントが移動を開始する時刻が、前記条件の時間区間に含まれないような経路を生成する生成部を含んで構成される。
【0015】
また、前記生成部は、前記エージェントの経路を1つずつ順次生成する場合において、第1エージェントの経路を生成し、次に第2エージェントの経路を生成する際に、前記第1エージェントについて生成された経路に含まれる前記頂点に前記エージェントが存在する時刻及び前記辺の端点から前記エージェントが移動を開始する時刻との差が、前記時間区間に含まれない時刻に、前記第2エージェントが前記頂点に存在するか、前記辺の端点から移動を開始するような経路を生成してもよい。
【0016】
また、上記目的を達成するために、本発明に係る衝突条件付与方法は、抽出部が、複数の頂点、及び前記頂点間を接続する複数の辺を含むロードマップ上を複数のエージェントが移動する場合において、前記頂点に存在する前記エージェント又は前記辺を移動する前記エージェント同士が衝突する可能性のある前記頂点と前記辺との第1ペア、及び前記エージェント同士が衝突する可能性のある一方の辺と他方の辺との第2ペアを抽出し、算出部が、前記第1ペアの各々の前記頂点に一方のエージェントが存在する時刻と、前記辺の端点から他方の前記エージェントが移動を開始する時刻との差、及び、前記第2ペアの各々の前記一方の辺の端点から一方のエージェントが移動を開始する時刻と、前記他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、前記一方のエージェントと前記他方のエージェントとの衝突が起こる時間区間を算出し、付与部が、前記第1ペアに含まれる前記頂点及び前記辺の識別情報と前記時間区間とを対応付けた情報、及び前記第2ペアに含まれる2つの前記辺の各々の識別情報と前記時間区間とを対応付けた情報を、前記エージェント同士が衝突する条件として前記ロードマップに付与する方法である。
【0017】
また、上記目的を達成するために、本発明に係る衝突条件付与プログラムは、コンピュータを、複数の頂点、及び前記頂点間を接続する複数の辺を含むロードマップ上を複数のエージェントが移動する場合において、前記頂点に存在する前記エージェント又は前記辺を移動する前記エージェント同士が衝突する可能性のある前記頂点と前記辺との第1ペア、及び前記エージェント同士が衝突する可能性のある一方の辺と他方の辺との第2ペアを抽出する抽出部、前記第1ペアの各々の前記頂点に一方のエージェントが存在する時刻と、前記辺の端点から他方の前記エージェントが移動を開始する時刻との差、及び、前記第2ペアの各々の前記一方の辺の端点から一方のエージェントが移動を開始する時刻と、前記他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、前記一方のエージェントと前記他方のエージェントとの衝突が起こる時間区間を算出する算出部、及び、前記第1ペアに含まれる前記頂点及び前記辺の識別情報と前記時間区間とを対応付けた情報、及び前記第2ペアに含まれる2つの前記辺の各々の識別情報と前記時間区間とを対応付けた情報を、前記エージェント同士が衝突する条件として前記ロードマップに付与する付与部として機能させるためのプログラムである。
【発明の効果】
【0018】
本発明に係る衝突条件付与装置、方法、プログラム、及び経路生成装置によれば、ロードマップ上のマルチエージェントの連続的な時間における経路生成を短時間で行うことを可能にすることができる。
【図面の簡単な説明】
【0019】
【
図1】経路生成装置のハードウェア構成を示すブロック図である。
【
図2】経路生成装置の機能構成の例を示すブロック図である。
【
図4】ロードマップのデータ構成の一例を示す図である。
【
図5】頂点-辺ペア及び辺-辺ペアを説明するための図である。
【
図6】衝突条件の時間区間を説明するための図である
【
図7】衝突条件付きロードマップのデータ構成の一例を示す図である。
【
図9】時間区間を含む衝突条件を用いた経路生成を説明するための図である。
【
図10】衝突条件に時間区間を含まない場合の経路生成を説明するための図である。
【
図11】デッドロックが生じている例を示す図である。
【
図12】衝突条件付与処理の流れを示すフローチャートである。
【
図13】経路生成処理の流れを示すフローチャートである。
【
図14】本手法と比較手法とを比較した実験結果を示すグラフである。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0021】
図1は、本実施形態に係る経路生成装置10のハードウェア構成を示すブロック図である。
図1に示すように、経路生成装置10は、CPU(Central Processing Unit)12、メモリ14、記憶装置16、入力装置18、出力装置20、記憶媒体読取装置22、及び通信I/F(Interface)24を有する。各構成は、バス26を介して相互に通信可能に接続されている。
【0022】
記憶装置16には、後述する衝突条件付与処理及び経路生成処理を実行するための経路生成プログラムが格納されている。CPU12は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU12は、記憶装置16からプログラムを読み出し、メモリ14を作業領域としてプログラムを実行する。CPU12は、記憶装置16に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0023】
メモリ14は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置16は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0024】
入力装置18は、例えば、キーボードやマウス等の、各種の入力を行うための装置である。出力装置20は、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための装置である。出力装置20として、タッチパネルディスプレイを採用することにより、入力装置18として機能させてもよい。記憶媒体読取装置22は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。通信I/F24は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0025】
次に、本実施形態に係る経路生成装置10の機能構成について説明する。
図2は、経路生成装置10の機能構成の例を示すブロック図である。
図2に示すように、経路生成装置10は、機能構成として、衝突条件付与部30と、生成部38とを含む。衝突条件付与部30は、さらに、抽出部32と、算出部34と、付与部36とを含む。衝突条件付与部30は、本発明の「衝突条件付与装置」の一例である。各機能構成は、CPU12が記憶装置16に記憶された経路生成プログラムを読み出し、メモリ14に展開して実行することにより実現される。
【0026】
衝突条件付与部30は、ロードマップ40を取得する。
図3に、ロードマップ40の一例を示す。
図3に示すように、ロードマップ40は、複数の頂点、及び頂点間を接続する複数の辺を含む。
図3において、黒点が頂点、頂点間を接続する線分が辺である。
図3に示すように、ロードマップ40は、グリッドグラフとは異なり、各辺の長さは共通ではなく、各頂点は二次元平面で任意の位置をとることができ、また、辺同士が交差する場合も許容する平面グラフである。
【0027】
図4に、ロードマップ40のデータ構成の一例を示す。
図4の例では、ロードマップ40は、頂点情報テーブル42と、辺情報テーブル44とを含む。頂点情報テーブル42には、各頂点の識別情報である頂点IDと、各頂点の位置情報とが対応付けて記憶されている。辺情報テーブル44には、各辺の識別情報である辺IDと、各辺の2つの端点に相当する頂点の頂点IDとが対応付けて記憶されている。
【0028】
衝突条件付与部30は、取得したロードマップ40に衝突条件(詳細は後述)を付与して、衝突条件付きロードマップ50として記憶する。以下、ロードマップ40に衝突条件を付与する機能構成である、衝突条件付与部30の抽出部32、算出部34、及び付与部36の各々について説明する。
【0029】
抽出部32は、ロードマップ40上を複数のエージェントが移動する場合において、頂点に存在するエージェント又は辺を移動するエージェント同士が衝突する可能性のある箇所を抽出する。抽出部32は、衝突する可能性のある個所として、
図5に示すような頂点と辺とのペア、及び辺と辺とのペアを抽出する。この頂点と辺とのペアは、本発明の「第1ペア」の一例であり、辺と辺とのペアは、本発明の「第2ペア」の一例である。以下では、頂点と辺とのペアを「頂点-辺ペア」、辺と辺とのペアを「辺-辺ペア」と表記する。
【0030】
図5の頂点-辺ペアでは、A1は、ある頂点に存在するエージェント、A2は、ある辺の端点から移動を開始するエージェントを表している。この場合、エージェントA2が辺に沿って移動することにより、ある頂点に存在するエージェントA1と衝突する可能性があるため、このような頂点-辺ペアが衝突する可能性のある個所として抽出される。また、
図5の辺-辺ペアでは、A1は、ある辺の端点から移動を開始するエージェント、A2は、他の辺の端点から移動を開始するエージェントを表している。この場合、エージェントA1及びA2がそれぞれ辺に沿って移動することにより衝突する可能性があるため、このような辺-辺ペアが衝突する可能性のある個所として抽出される。
【0031】
具体的には、抽出部32は、以下のようなアルゴリズムを用いて、ロードマップ40に含まれる複数の頂点及び複数の辺の中から、頂点-辺ペア及び辺-辺ペアを抽出する。
(1)与えられた点の集合の中で点間の距離が一定以下の点のペアを列挙するアルゴリズム
(2)与えられた点の集合の中で与えられた領域内に存在する点を列挙するアルゴリズム
(3)与えられた線分の集合の中で交差している線分のペアを列挙するアルゴリズム
【0032】
上記(1)については、Fixed -Radius Near Neighbors Algorithm等が知られている。このアルゴリズムは、点をグリッド上のバケットに分け、隣接又は同じバケットにある点のペアについて距離を計算するというものである。このアルゴリズムの時間計算量はO(V+M)である。ただし、Vは点の総数、Mは見つけられるペアの数である。
【0033】
上記(2)についてはPartition tree等が知られている。このアルゴリズムは、事前に点の集合をうまく再帰的に分割することで領域探索を楽にするものである。この他にも、上記(2)のアルゴリズムとしては、事前計算は重いが一度のクエリが軽いものなど、種々のアルゴリズムがある。
【0034】
上記(3)については、Bentley-Ottmann Algorithm等が知られている。このアルゴリズムは平面走査しながら走査線と交わっている線分を管理し、交差を検出するものである。このアルゴリズムの時間計算量はO((E+M)logE)である。ただし、Eは線分の総数、Mは見つけられるペアの数である。
【0035】
より具体的には、抽出部32は、ロードマップ40が二次元平面上にあり、辺は全て線分で、エージェントは全て同じ半径rの円形であるという仮定の下、下記の方法により頂点-辺ペア及び辺-辺ペアを抽出する。なお、ロードマップ40において、頂点を多くとれば曲線は線分で近似できる。また、エージェントは衝突条件を厳しくするために大きめの円で形を近似してもよい。したがって、上記仮定は実用上問題にならないと考えられる。
【0036】
抽出部32は、(i)辺の端点の少なくとも一方と頂点との距離が2r未満の場合、及び(ii)頂点から辺へ引いた垂線の長さが2r未満の場合の少なくとも一方を満たす頂点と辺とのペアを頂点-辺ペアとして抽出する。(i)を満たすペアは上記(1)のアルゴリズムを適用することで、(ii)を満たすペアは上記(2)のアルゴリズムを適用することで効率的に抽出することができる。
【0037】
また、抽出部32は、一方の辺の端点の少なくとも一方と他方の辺との距離が2r未満の場合、及び(ii)辺同士が交差している場合の少なくとも一方を満たす辺と辺とのペアを辺-辺ペアとして抽出する。(i)を満たすペアは上記(2)のアルゴリズムを適用することで、(ii)を満たすペアは上記(3)のアルゴリズムを適用することで効率的に抽出することができる。
【0038】
算出部34は、抽出部32により抽出された頂点-辺ペア及び辺-辺ペアの各々について、その頂点に存在するエージェント又は辺を移動するエージェント同士の衝突が起こる時間的な条件を算出する。
【0039】
具体的には、算出部34は、頂点-辺ペアの頂点に一方のエージェントが存在する時刻と、辺の端点から他方のエージェントが移動を開始する時刻との差について、一方のエージェントと他方のエージェントとの衝突が起こる時間区間を算出する。また、算出部34は、辺-辺ペアの一方の辺の端点から一方のエージェントが移動を開始する時刻と、他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、一方のエージェントと他方のエージェントとの衝突が起こる時間区間を算出する。
【0040】
例えば、
図6に示すように、辺E1の端点を時刻t1にエージェントA1が出発し、辺E2の端点を時刻t2にエージェントA2が出発するとする。
図6の例の場合、辺E1上を移動するエージェントA1と、辺E2上を移動するエージェントA2とが衝突する可能性がある箇所は辺E1と辺E2とが交差する付近(
図6中の網掛部分)である。また、エージェントA1とエージェントA2とが衝突するか否かは、時刻t1と時刻t2との差に依存する。例えば、
図6の例で、エージェントA1及びA2が同じ速度で移動する場合、t1とt2とがほぼ同時刻であれば、エージェントA1とエージェントA2とは衝突しない、すなわち、両エージェントはすれ違える。一方、t1よりt2の方が所定時間後であり、この時間差により、両エージェントが衝突する可能性がある箇所に同時に到達する場合には、衝突が発生する。
【0041】
このような状況を考慮して、算出部34は、時刻t1と時刻t2との時間差(t1-t2)が時間区間a~bの範囲内のときに、両エージェントが衝突するという場合の時間区間a~bを算出する。算出部34は、例えば、Collision Detection for Agents in Multi-Agent Pathfinding(参考文献1)の手法を適用して、時間区間a~bを算出する。
参考文献1:Thayne T. Walker, Nathan R. Sturtevant, "Collision Detection for Agents in Multi-Agent Pathfinding", moarXiv:1908.09707v3 [cs.RO], 15 Nov 2019.
【0042】
付与部36は、頂点-辺ペアに含まれる頂点の頂点ID及び辺の辺IDと、その頂点-辺ペアについて算出部34で算出された時間区間とを含むタプルを衝突条件情報として生成する。同様に、付与部36は、辺-辺ペアに含まれる2つの辺の各々の辺IDと、その辺-辺ペアについて算出部34で算出された時間区間とを含むタプルを衝突条件情報として生成する。そして、付与部36は、生成したタプルの集合を、ロードマップ40に付与し、衝突条件付きロードマップ50として、経路生成装置10の所定の記憶領域に記憶する。
【0043】
図7に、衝突条件付きロードマップ50のデータ構成の一例を示す。
図7の例では、衝突条件付きロードマップ50は、
図4に示すロードマップ40のデータ構成に衝突条件46が付与されたものとなっている。なお、
図7において、衝突条件の1つであるタプル(E1,E2,a<t1-t2<b)は、辺E1及びE2からなる辺-辺ペアの辺E1及び辺E2の各々の端点をエージェントが出発する時刻t1と時刻t2との差の時間区間がa~bであることを表している。
【0044】
生成部38は、衝突条件付きロードマップ50上を移動する複数のエージェントの各々の経路を生成する。具体的には、生成部38は、経路に含まれる頂点にエージェントが存在する時刻及び辺の端点からエージェントが移動を開始する時刻が、衝突条件の時間区間に含まれないような経路を生成する。例えば、生成部38は、
図8に示すように、エージェント毎に、出発点となる頂点から目的点となる頂点までに経由する各頂点と、その頂点から次の頂点へ向けて出発する時刻との組み合わせの系列を経路として生成する。
【0045】
より具体的には、生成部38は、エージェントの経路を1つずつ順次生成する場合において、第1エージェントの経路を生成し、次に第2エージェントの経路を生成する。生成部38は、例えば、A*アルゴリズムを用いて各エージェントの経路を生成する。この場合、生成部38は、出発点から、ある頂点を通って目的点まで辿り着く場合の最短経路を探索し、既に最短の到達時刻が確定している頂点V及び頂点Vから出ている辺を選択する。生成部38は、選択した頂点V及び頂点Vから出ている辺が含まれる衝突条件を、衝突条件付きロードマップ50に付与された衝突条件から取得する。該当する衝突条件が存在する場合、生成部38は、先に生成された他のエージェントの経路のうち、選択した辺の端点を出発する時刻を取得する。生成部38は、取得した衝突条件に含まれる時間区間を制約として、頂点Vの出発時刻を調整し、辺を辿った先にある頂点への到達時刻の候補を求める。生成部38は、この処理を、目的点への最短の到達時刻が確定するまで続け、探索の履歴をもとに目的点から最適な辺を逆に辿ることで経路を生成する。
【0046】
例えば、
図9に示すように、エージェントA1について、辺E1を経由する経路であって、辺E1の端点である頂点V1から時刻τ11に移動を開始して辺E1に沿って移動する経路が生成されているとする。次に、エージェントA2の経路の生成において、ある辺から頂点V2に到達し、頂点V2を端点とする辺E2が選択されたとする。また、辺E1と辺E2とは、辺-辺ペアとして抽出されており、(E1,E2,a<t1-t2<b)という衝突条件が付与されているとする。この場合、生成部38は、a<τ11-τ21<bを満たさないような時刻τ21に頂点V2を出発して辺E2を移動する経路を生成する。生成部38は、時間区間を満たさないような時刻τ21が存在しない場合、又は、そのような時刻τ21を採用した場合に頂点V2でのエージェントの待ち時間が所定時間以上になる場合には、頂点V2を端点とする他の辺を選択し直す。また、1つ前の辺にさかのぼって次の辺を選択し直してもよい。
【0047】
なお、生成部38は、各エージェントの経路の生成のアルゴリズムとして、出発点から順次、次の辺を選択することで経路を生成するアルゴリズムを採用してもよい。この場合も、辺を選択する際に、衝突条件に基づく出発時刻の調整を行えばよい。
【0048】
ここで、
図10を参照して、衝突条件に時間区間が含まれない場合であって、離散的な時間の下で、グリッドグラフを用いて経路生成を行う場合について説明する。ある時刻tにおけるエージェントA1及びエージェントA2の移動方向が矢印で示す方向の場合、両エージェントの衝突を回避するため、
図10の網掛で示す箇所が衝突する可能性のある個所として、経路生成の際の制約となる。
【0049】
また、特許文献1に記載の発明のように、ペトリネットモデルを用いた経路計画等でも、衝突箇所に時間的条件を示さず、少しでも衝突している箇所は、同時に使うことを禁止している。これらは、衝突の可能性を実際より大きく見積もっており、経路生成の計算コストの増加や、
図11に示すようなデッドロックの原因になりうる。
【0050】
一方、本実施形態では、衝突条件に時間区間を含めることで、衝突の可能性がある箇所において、同時に使うことが禁止される部分は、
図6に示すように、必要最小限の範囲とすることができる。そのため、探索される解(経路)の空間が増え、解が見つかる機会が増加することで、経路生成の成功率が上昇すると共に、経路生成のための計算コストを削減できる。
【0051】
次に、本実施形態に係る経路生成装置10の作用について説明する。
図12は、経路生成装置10のCPU12により実行される衝突条件付与処理の流れを示すフローチャートである。また、
図13は、経路生成装置10のCPU12により実行される経路生成処理の流れを示すフローチャートである。CPU12が記憶装置16から経路生成プログラムを読み出して、メモリ14に展開して実行することにより、CPU12が経路生成装置10の各機能構成として機能し、
図12に示す衝突条件付与処理、及び
図13に示す経路生成処理が実行される。以下、衝突条件付与処理、及び経路生成処理の各々について詳述する。
【0052】
まず、
図12に示す衝突条件付与処理について説明する。
【0053】
ステップS10で、抽出部32が、ロードマップ40を取得する。次に、ステップS12で、抽出部32が、ロードマップ40上を複数のエージェントが移動する場合において、頂点に存在するエージェント又は辺を移動するエージェント同士が衝突する可能性のある箇所として、頂点-辺ペア及び辺-辺ペアを抽出する。
【0054】
次に、ステップS14で、算出部34が、頂点-辺ペアの頂点に一方のエージェントが存在する時刻と、辺の端点から他方のエージェントが移動を開始する時刻との差について、両エージェントの衝突が起こる時間区間を算出する。また、算出部34が、辺-辺ペアの一方の辺の端点から一方のエージェントが移動を開始する時刻と、他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、両エージェントの衝突が起こる時間区間を算出する。
【0055】
次に、ステップS16で、付与部36が、頂点-辺ペアの頂点ID及び辺の辺ID、及び、辺-辺ペアの2つの辺IDの各々と、算出された時間区間とを含むタプルを衝突条件情報として生成する。そして、付与部36が、生成したタプルの集合を、ロードマップ40に付与し、衝突条件付きロードマップ50として、経路生成装置10の所定の記憶領域に記憶し、衝突条件付与処理は終了する。
【0056】
次に、
図13に示す経路生成処理について説明する。ここでは、各エージェントにエージェントIDとして、Ai(i=1,2,・・・,N、Nはエージェントの個数)が付与されているものとする。
【0057】
ステップS30で、生成部38が、エージェントIDを特定する変数iに1を設定する。次に、ステップS32のループ処理で、衝突条件付きロードマップ50を用いて、エージェントAiの出発点から、ある頂点を通って目的点まで辿り着く場合の最短経路を探索する。詳細には、ステップS34で、生成部38が、既に最短の到達時刻が確定している頂点V及び頂点Vから出ている辺を選択する。
【0058】
次に、ステップS36で、生成部38が、選択した頂点V及び頂点Vから出ている辺が含まれる衝突条件を、衝突条件付きロードマップ50に付与された衝突条件から取得する。また、生成部38が、先に生成された他のエージェントの経路のうち、取得した衝突条件に含まれる辺の端点の出発時刻t1を取得する。
【0059】
次に、ステップS38で、生成部38が、頂点VをエージェントAiが出発する出発時刻t2を、取得した他のエージェントの出発時刻t1との差が、取得した衝突条件に含まれる時間区間外となるように調整し、辺を辿った先にある頂点への到達時刻の候補を求める。調整可能な時刻が存在しない場合には、ステップS34に戻り、生成部38が頂点V及び頂点Vから出ている辺を選択し直す。生成部38は、上記ステップS34~S38の処理を、目的点への最短の到達時刻が確定するまで繰り返す。目的点への最短の到達時刻が確定した場合は、ステップS32のループ処理を終了し、ステップS40へ移行する。ステップS40では、生成部38が、探索の履歴をもとに目的点から最適な辺を逆に辿ることで経路を生成する。
【0060】
次に、ステップS42で、生成部38が、iがエージェントの個数であるNとなったか否かを判定する。i=Nの場合には、ステップS46へ移行し、i≠Nの場合には、ステップS44へ移行する。ステップS44では、生成部38が、iを1インクリメントして、ステップS32に戻る。ステップS46では、生成部38が、上記ステップS40で生成された各エージェントの経路を出力し、経路生成処理は終了する。
【0061】
以上説明したように、本実施形態に係る経路生成装置は、衝突条件付与部が、ロードマップ上を複数のエージェントが移動する場合において、エージェント同士が衝突する可能性のある頂点-辺ペア、辺-辺ペアを抽出する。そして、衝突条件付与部が、頂点-辺ペアの頂点に一方のエージェントが存在する時刻と、辺の端点から他方のエージェントが移動を開始する時刻との差について、両エージェントの衝突が起こる時間区間を算出する。また、衝突条件付与部が、辺-辺ペアの一方の辺の端点から一方のエージェントが移動を開始する時刻と、他方の辺の端点から他方のエージェントが移動を開始する時刻との差について、両エージェントの衝突が起こる時間区間を算出する。そして、衝突条件付与部が、各ペアに含まれる頂点及び辺のIDと算出した時間区間とを対応付けた衝突条件をロードマップに付与する。このように、衝突の可能性がある箇所に時間区間を含む衝突条件が付与されたロードマップを事前に用意することで、ロードマップ上のマルチエージェントの連続的な時間における経路生成を短時間で行うことができる。
【0062】
また、衝突条件に時間区間を含めることで、衝突する箇所を最小限に見積もることができるため、探索される解(経路)の空間が増え、解が見つかる機会が増加することで、経路生成の成功率が上昇すると共に、経路生成のための計算コストを削減できる。
【0063】
現状においては、環境をグリッドに分け、グリッドに特化したプランニングアルゴリズムを用いるか、又は、人の手で作られたロードマップや、何らかの手法により得られたロードマップを用い、CCBS(Continuous Conflict Based Search)のような衝突判定のみを必要とするアルゴリズムにより経路生成を行う手法が考えられる。前者の手法は、環境の形状がグリッドで表現し難い場合には、適用が困難である。また、後者の手法として一般的に知られているアルゴリズムには時間計算量の現実的な保証がないため、経路生成に時間がかかる場合がある。
【0064】
本実施形態のようにロードマップに対して、時間区間を含む衝突条件を付与することで、様々なロードマップに対して、PSIPP(Prioritized Safe Interval Path Planning)のような、時間コストの小さいアルゴリズムを用いて経路を得ることができる。
【0065】
また、本実施形態では、衝突条件付与部が、衝突の可能性がある箇所を抽出する際に、既存のアルゴリズムを用いて、効率的に該当箇所である頂点-辺ペア及び辺-辺ペアを抽出することができる。
【0066】
ここで、本実施形態の手法(以下、「本手法」という)と比較手法とを比較した実験結果について説明する。本実験では、障害物のある環境上でよく知られた方法PRM(Probabilistic Road Map)で構築されたロードマップ上のMAPF問題を解いた。また、既存手法であるCCBS、及び時間区間を含む衝突条件が付与されていないロードマップを用いたPSIPPを比較手法とした。
【0067】
図14は、経路生成(プランニング)の成功率のグラフであり、横軸はエージェント数である。また、左のグラフは、障害物がある環境での実験結果、右のグラフは障害物がない環境での実験である。比較手法では、数十台のプランニングが限界であったのに対し、本手法では100台以上のエージェントについてもプランニングに成功した。さらに、障害物のない環境では、2000台近いエージェントについても、30秒の時間制限の下でプランニングに成功した。
【0068】
本発明は、工場や倉庫など、決められた場所の中で、多数のロボットが物品の運搬や見回り、清掃等の作業のため移動を行う状況において、それらのロボットの安全な経路を短時間で計算することに応用できる。
【0069】
なお、上記実施形態では、経路生成装置の中に衝突条件付与部を含む構成について説明したが、衝突条件付与部の機能構成を含む衝突条件付与装置と、生成部を含む経路生成装置とを、それぞれ異なる装置で実現してもよい。この場合、衝突条件付与装置から出力される衝突条件付きロードマップは、PSIPP以外の手法を適用した経路生成装置で利用されてもよいし、経路生成以外の用途で使用されてもよい。
【0070】
また、上記実施形態では、全てのエージェントのサイズが同一である仮定で説明したが、エージェントのサイズはそれぞれ異なっていてもよい。この場合、頂点-辺ペア及び辺-辺ペアを抽出する際に用いるエージェントの半径rとして、サイズが最大のエージェントの外接円の半径を用いればよい。
【0071】
また、エージェントの速度も等速でなくてもよく、エージェント毎かつ辺毎に、ある決められた速度制限及び加速度制限の下で加減速を行うようにしてもよい。この場合、エージェントの加減速を考慮して、衝突条件に含まれる時間区間との比較を行うようにすればよい。
【0072】
また、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した衝突条件付与処理及び経路生成処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、衝突条件付与処理及び経路生成処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0073】
また、上記実施形態では、経路生成プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0074】
10 経路生成装置
12 CPU
14 メモリ
16 記憶装置
18 入力装置
20 出力装置
22 記憶媒体読取装置
24 通信I/F
26 バス
30 衝突条件付与部
32 抽出部
34 算出部
36 付与部
38 生成部
40 ロードマップ
42 頂点情報テーブル
44 辺情報テーブル
46 衝突条件
50 衝突条件付きロードマップ