IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ セコム株式会社の特許一覧

特開2022-152476経路探索装置、経路探索方法及び経路探索プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022152476
(43)【公開日】2022-10-12
(54)【発明の名称】経路探索装置、経路探索方法及び経路探索プログラム
(51)【国際特許分類】
   G01C 21/34 20060101AFI20221004BHJP
   G08G 5/00 20060101ALI20221004BHJP
   G05D 1/00 20060101ALI20221004BHJP
   G05D 1/10 20060101ALI20221004BHJP
   G05D 1/02 20200101ALI20221004BHJP
【FI】
G01C21/34
G08G5/00 A
G05D1/00 Z
G05D1/10
G05D1/02 H
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021055262
(22)【出願日】2021-03-29
(71)【出願人】
【識別番号】000108085
【氏名又は名称】セコム株式会社
(74)【代理人】
【識別番号】100103850
【弁理士】
【氏名又は名称】田中 秀▲てつ▼
(74)【代理人】
【識別番号】100114177
【弁理士】
【氏名又は名称】小林 龍
(74)【代理人】
【識別番号】100066980
【弁理士】
【氏名又は名称】森 哲也
(72)【発明者】
【氏名】天本 晴之
【テーマコード(参考)】
2F129
5H181
5H301
【Fターム(参考)】
2F129AA11
2F129BB03
2F129BB21
2F129BB22
2F129BB26
2F129DD04
2F129DD13
2F129DD15
2F129DD39
2F129EE78
2F129EE79
2F129EE81
2F129EE94
2F129GG18
2F129HH20
5H181AA26
5H181AA27
5H181BB13
5H181CC03
5H181CC14
5H181FF04
5H181FF10
5H181FF14
5H301AA01
5H301AA06
5H301AA10
5H301BB14
5H301CC03
5H301CC04
5H301CC06
5H301CC07
5H301CC08
5H301CC10
5H301FF11
5H301GG08
5H301GG09
5H301GG14
5H301GG17
5H301HH01
5H301KK02
5H301KK03
5H301KK08
5H301KK09
(57)【要約】
【課題】経路探索の対象領域が広くなるのに伴う経路探索の計算量の増大を抑制する。
【解決手段】経路探索装置は、移動可能領域を表す領域データを分割して得られる複数の部分領域の各々に対応するノードと、隣接する部分領域のノード間を接続するエッジと、を有するグラフ構造において、開始位置から目標位置に至る暫定経路を探索する暫定経路探索部133と、暫定経路に基づいて、移動経路を探索する探索対象領域として複数の部分領域のいずれかを選択する探索対象領域設定部134と、探索対象領域として選択された部分領域を再分割して得られる複数の部分領域である複数の第2の部分領域の各々に対応するノードと、隣接する第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、移動経路を探索する移動経路探索部133と、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
移動可能領域内における、開始位置から目標位置に至る移動経路を求める経路探索装置であって、
前記移動可能領域を分割して得られる複数の部分領域の各々に対応するノードと、隣接する前記部分領域のノード間を接続するエッジと、を有するグラフ構造において、前記開始位置から前記目標位置に至る暫定経路を探索する暫定経路探索部と、
前記暫定経路に基づいて、前記移動経路を探索する探索対象領域として前記複数の部分領域のいずれかを選択する探索対象領域設定部と、
前記探索対象領域として選択された前記部分領域を再分割して得られる複数の部分領域である複数の第2の部分領域の各々に対応するノードと、隣接する前記第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、前記移動経路を探索する移動経路探索部と、
を備えることを特徴とする経路探索装置。
【請求項2】
前記移動可能領域が3次元領域である場合に、前記探索対象領域設定部は、前記開始位置及び前記目標位置を焦点とし、これら焦点からの距離の和が前記暫定経路の経路長となる動点の軌跡が作る楕円体の内側に位置する前記部分領域を前記探索対象領域として選択することを特徴とする請求項1に記載の経路探索装置。
【請求項3】
前記移動可能領域が2次元領域である場合に、前記探索対象領域設定部は、前記開始位置及び前記目標位置を焦点とし、これら焦点からの距離の和が前記暫定経路の経路長となる動点の軌跡が作る楕円の内側に位置する前記部分領域を前記探索対象領域として選択することを特徴とする請求項1に記載の経路探索装置。
【請求項4】
前記探索対象領域設定部は、前記複数の部分領域のうち2個以上の前記部分領域と隣接する前記部分領域を前記探索対象領域として選択することを特徴とする請求項2又は3に記載の経路探索装置。
【請求項5】
前記移動可能領域を前記複数の部分領域に分割し、当該部分領域を所定の基準サイズ以下の部分領域に再分割する領域分割部を備え、
前記領域分割部は、前記基準サイズが所定の最小サイズになるまで段階的に減少させながら、前記部分領域を再分割する処理を反復することを特徴とする請求項1~4のいずれか一項に記載の経路探索装置。
【請求項6】
前記領域分割部は、前記移動経路上を移動させる移動体の移動速度に応じて、前記最小サイズを変更することを特徴とする請求項5に記載の経路探索装置。
【請求項7】
前記領域分割部は、前記移動経路の算出を開始してからの経過時間に応じて、前記最小サイズを変更することを特徴とする請求項5又は6に記載の経路探索装置。
【請求項8】
前記暫定経路探索部は、前記第2の部分領域の各々に対応するノードと、隣接する前記第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、前記暫定経路を再探索し、
前記探索対象領域設定部は、再探索された前記暫定経路に基づいて、前記複数の部分領域のいずれかを前記探索対象領域として選択する、
ことを特徴とする請求項1~7のいずれか一項に記載の経路探索装置。
【請求項9】
移動可能領域内における、開始位置から目標位置に至る移動経路を求める経路探索方法であって、
前記移動可能領域を分割して得られる複数の部分領域の各々に対応するノードと、隣接する前記部分領域のノード間を接続するエッジと、を有するグラフ構造において、前記開始位置から前記目標位置に至る暫定経路を探索する処理と、
前記暫定経路に基づいて、前記移動経路を探索する探索対象領域として前記複数の部分領域のいずれかを選択する処理と、
前記探索対象領域として選択された前記部分領域を再分割して得られる複数の部分領域である複数の第2の部分領域の各々に対応するノードと、隣接する前記第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、前記移動経路を探索する処理と、
をコンピュータに実行させることを特徴とする経路探索方法。
【請求項10】
移動可能領域内における、開始位置から目標位置に至る移動経路を求める経路探索プログラムであって、
前記移動可能領域を分割して得られる複数の部分領域の各々に対応するノードと、隣接する前記部分領域のノード間を接続するエッジと、を有するグラフ構造において、前記開始位置から前記目標位置に至る暫定経路を探索する処理と、
前記暫定経路に基づいて、前記移動経路を探索する探索対象領域として前記複数の部分領域のいずれかを選択する処理と、
前記探索対象領域として選択された前記部分領域を再分割して得られる複数の部分領域である複数の第2の部分領域の各々に対応するノードと、隣接する前記第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、前記移動経路を探索する処理と、
をコンピュータに実行させることを特徴とする経路探索プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、経路探索装置、経路探索方法及び経路探索プログラムに関する。
【背景技術】
【0002】
従来、現在位置から所定の目標位置に至る飛行経路が最短となるよう飛行経路を算出し、当該飛行経路に沿って自律的に飛行可能な自律飛行ロボットが提案されている。
【0003】
例えば、特許文献1には、建物や樹木などの障害物を除いた空間(飛行可能空間)を所定サイズのボクセルにて分割し、各ボクセルの重心位置にノードを置いたグラフ構造を求め、当該グラフ構造にA*(エースター)経路探索法などの経路探索アルゴリズムを適用することで、開始位置から目標位置までに至る最短経路を探索し、飛行経路を求める技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2014-119901号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記の従来技術では、経路探索の対象領域が広大となるに従ってボクセル数が増大するため、経路探索のために要する計算量が膨大になるという問題があった。
本発明は、上記の問題点を鑑みてなされたものであり、経路探索の対象領域が広くなるのに伴う経路探索の計算量の増大を抑制することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一形態によれば、移動可能領域内における、開始位置から目標位置に至る移動経路を求める経路探索装置が与えられる。経路探索装置は、移動可能領域を表す領域データを分割して得られる複数の部分領域の各々に対応するノードと、隣接する部分領域のノード間を接続するエッジと、を有するグラフ構造において、開始位置から目標位置に至る暫定経路を探索する暫定経路探索部と、暫定経路に基づいて、移動経路を探索する探索対象領域として複数の部分領域のいずれかを選択する探索対象領域設定部と、探索対象領域として選択された部分領域を再分割して得られる複数の部分領域である複数の第2の部分領域の各々に対応するノードと、隣接する第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、移動経路を探索する移動経路探索部と、を備える。
【0007】
本発明の他の形態によれば、移動可能領域内における、開始位置から目標位置に至る移動経路を求める経路探索方法が与えられる。経路探索方法では、移動可能領域を表す領域データを分割して得られる複数の部分領域の各々に対応するノードと、隣接する部分領域のノード間を接続するエッジと、を有するグラフ構造において、開始位置から目標位置に至る暫定経路を探索する処理と、暫定経路に基づいて、移動経路を探索する探索対象領域として複数の部分領域のいずれかを選択する処理と、探索対象領域として選択された部分領域を再分割して得られる複数の部分領域である複数の第2の部分領域の各々に対応するノードと、隣接する第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、移動経路を探索する処理と、をコンピュータに実行させる。
【0008】
本発明のさらに他の形態によれば、移動可能領域内における、開始位置から目標位置に至る移動経路を求める経路探索プログラムが与えられる。経路探索プログラムは、移動可能領域を表す領域データを分割して得られる複数の部分領域の各々に対応するノードと、隣接する部分領域のノード間を接続するエッジと、を有するグラフ構造において、開始位置から目標位置に至る暫定経路を探索する処理と、暫定経路に基づいて、移動経路を探索する探索対象領域として複数の部分領域のいずれかを選択する処理と、探索対象領域として選択された部分領域を再分割して得られる複数の部分領域である複数の第2の部分領域の各々に対応するノードと、隣接する第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、移動経路を探索する処理と、をコンピュータに実行させる。
【発明の効果】
【0009】
本発明によれば、経路探索の対象領域が広くなるのに伴う経路探索の計算量の増大を抑制できる。
【図面の簡単な説明】
【0010】
図1】本発明の実施形態の移動制御システムの構成の一例を示す概略図である。
図2図1の自律飛行ロボットの機能構成の一例のブロック図である。
図3図1の管理装置の機能構成の一例のブロック図である。
図4】移動可能領域情報が表す移動可能領域の一例を示す図である。
図5】第1階層(最上位階層)での移動可能領域の分割処理の一例の説明図(その1)である。
図6】第1階層での移動可能領域の分割処理の一例の説明図(その2)である。
図7】第1階層での移動可能領域の分割処理の一例の説明図(その3)である。
図8】第1階層での移動可能領域の分割処理の一例の説明図(その4)である。
図9】第1階層のグラフ構造の一例を示す図である。
図10】第1階層の部分領域の外接直方体の一例を示す図である。
図11】第2階層(下位階層)での移動可能領域の分割処理の一例の説明図(その1)である。
図12】第2層での移動可能領域の分割処理の一例の説明図(その2)である。
図13】第2層のグラフ構造の一例を示す図である。
図14】開始位置と目標位置とが設定された状態を示す図である。
図15】第1階層で設定された暫定経路を示す図である。
図16】第1階層における探索対象領域の設定処理の一例の説明図である。
図17】第2階層(下位階層)で設定された暫定経路を示す図である。
図18】第2階層における探索対象領域の設定処理の一例の説明図(その1)である。
図19】第2階層における探索対象領域の設定処理の一例の説明図(その2)である。
図20】第2階層における探索対象領域の設定処理の一例の説明図(その3)である。
図21】第2階層における探索対象領域の設定処理の一例の説明図(その4)である。
図22】実施形態の経路探索方法の一例のフローチャート(その1)である。
図23】実施形態の経路探索方法の一例のフローチャート(その2)である。
図24図22におけるステップS5のサブルーチンの一例のフローチャートである。
【発明を実施するための形態】
【0011】
以下において、図面を参照して本発明の実施形態を説明する。なお、以下に示す本発明の実施形態は、本発明の技術的思想を具体化するための装置や方法を例示するものであって、本発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものではない。本発明の技術的思想は、特許請求の範囲に記載された請求項が規定する技術的範囲内において、種々の変更を加えることができる。
なお、本実施の形態では、移動体として自律飛行ロボットであるドローンの移動を制御する移動制御システムに本発明を適用した場合を例に説明するが、本発明はこれに限定されるものではない。例えば本発明は、2次元的な移動可能領域を走行する自律走行ロボットの移動を制御する移動制御システムに適用してもよい。
【0012】
<システム構成>
以下、本発明を適用した移動制御システム1000の概略構成を示した図1を参照して、本発明の実施の形態の構成を説明する。
(移動制御システム1000)
移動制御システム1000は、管理装置100と、1台以上の自律飛行ロボット200を有する。管理装置100と自律飛行ロボット200の間は所定の閉域網(無線LAN等)を介して通信する。なお、管理装置100が、経路探索装置の一例である。
【0013】
(自律飛行ロボット200)
自律飛行ロボット200は、例えば、クアッドロータ型の小型無人ヘリコプタである。なお、クアッドロータ型の小型無人ヘリコプタに限定されるものではなく、シングルロータ型の小型無人ヘリコプタについても同様に適用することができる。
自律飛行ロボット200は、管理装置100から、移動経路の一例である飛行経路に係る情報(後述する経路情報)を受信し、当該飛行経路に沿って飛行するよう制御する。
【0014】
図2を参照する。自律飛行ロボット200は、位置・姿勢センサ210と、通信部220と、記憶部230と、制御部240と、モータ250と、ロータ260と備える。
位置・姿勢センサ210は、自律飛行ロボット200の現在位置および姿勢を取得する。位置・姿勢センサ210は、例えば、GNSS(Global Navigation Satellite System)等の航法衛星(人工衛星)から送信される電波(航法信号)を受信する受信機、加速度を計測する加速度センサ、方位を計測する電子コンパス、および角速度を計測するジャイロセンサを備えている。
例えば位置・姿勢センサ210の受信機は、複数の航法衛星から送信される航法信号を受信して制御部240に出力するとともに、電子コンパスおよびジャイロセンサは、計測信号を制御部240に出力する。
現在位置を取得するために受信機に代えてレーザスキャナおよび気圧センサを用いるなど、他の既知のセンサを用いて既知の従来技術により現在位置および姿勢を得るための情報を取得するものとしてもよい。
【0015】
通信部220は、管理装置100との間で通信するための通信モジュールである。
記憶部230は、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等の情報記憶装置である。記憶部230は、各種プログラムや各種データを記憶し、制御部240との間でこれらの情報を入出力する。各種データには、位置・姿勢情報232、経路情報234等の制御部240の各処理に用いられる情報が含まれる。
【0016】
位置・姿勢情報232は、位置・姿勢センサ210によって取得された自律飛行ロボット200の現在位置と姿勢とを、予め定められた回数だけ循環記憶した位置と姿勢の履歴である。ここで、履歴内の最新の位置及び姿勢を特に現在位置及び現在姿勢と表記し、それ以外の位置及び姿勢を過去位置及び過去姿勢と表記することがある。
経路情報234は、自律飛行ロボット200が移動する予定である飛行経路に関する情報である。具体的には、飛行経路上における座標列である。経路情報234は、管理装置100から受信する。
【0017】
制御部240は、CPU(Central Processing Unit)等のプロセッサ、ROM、RAM等の周辺機器を備えたコンピュータである。制御部240のプロセッサは、記憶部230に格納されたコンピュータプログラムを実行することにより、以下に説明する制御部240の機能を実現する。
制御部240は、位置・姿勢算出手段242および飛行制御手段244等として機能する。
【0018】
位置・姿勢算出手段242は、位置・姿勢センサ210の出力から3次元的な移動領域(例えば飛行空間)における自律飛行ロボット200の現在位置および姿勢を算出し、位置・姿勢情報232として記憶部230に記憶させる。
例えば位置・姿勢算出手段242は、位置・姿勢センサ210によって出力された航法信号から緯度・経度・高度を求め、予め記憶した変換規則を用いて移動領域の座標系における位置に変換する。
【0019】
また、位置・姿勢算出手段242は、位置・姿勢センサ210によって出力された加速度センサおよびジャイロセンサの計測信号から、移動領域の座標系における現在姿勢を求める。
なお、位置・姿勢センサ210によって出力された電子コンパスの計測信号から、移動領域の座標系における方位を求め、他のセンサからの計測信号を更に用いて現在姿勢を算出してもよい。
以上のように、位置・姿勢センサ210と通信部220と位置・姿勢算出手段242(制御部240)とが共働することにより、自律飛行ロボット200の現在位置及び現在姿勢を検出する。
【0020】
なお、位置・姿勢算出手段242は、現在位置を算出する都度、通信部220を介して当該現在位置を管理装置100に送信する。
飛行制御手段244は、経路情報234、位置・姿勢情報232を参照し、自律飛行ロボット200を経路情報234に記された飛行経路に追従して移動するようモータ250の回転速度を制御する。
具体的には、飛行制御手段244は、経路情報234に記された現在時刻の位置(座標)と、位置・姿勢情報232に記された現在位置との誤差が小さくなるようにモータ250の回転速度を制御する。
【0021】
さらに自律飛行ロボット200には、4つのロータ260と、その回転軸がそれぞれ対応するロータ260に連結された4つのモータ250からなる4つのユニットが搭載されている。
各モータ250は、制御部240に接続されて制御部240から回転速度を指示される。4つのロータ260が独立して回転することにより自律飛行ロボット200に任意方向の加速度を発生させる。
【0022】
(管理装置100)
管理装置100は、所定位置(例えば自律飛行ロボット200の移動領域内)に設置され、自律飛行ロボット200の飛行先である目標位置を決定し、自律飛行ロボット200から受信した現在位置に基づいて、現在位置から目標位置に至る飛行経路を求め、自律飛行ロボット200に送信する。
なお、管理装置100は、遠隔の監視センタに設置してある図示しないセンタ装置と広域網(インターネット、携帯電話網等)を介して通信し、センタ装置からの指示を受け、当該指示に基づいて目標位置を設定したり、センタ装置に自律飛行ロボット200に係る各種情報を送信するようにしてもよい。
【0023】
図3を参照する。管理装置100は、通信部110と、記憶部120と、及び制御部130と、を備える。
通信部110は、自律飛行ロボット200との間で通信するための通信モジュールである。
記憶部120は、ROM、RAM、HDD等の情報記憶装置である。記憶部120は、各種プログラムや各種データを記憶し、制御部130との間でこれらの情報を入出力する。各種データには、移動可能領域情報121、位置情報122、部分領域情報123、グラフ構造情報124、経路情報125等の制御部130の各処理に用いられる情報が含まれる。
【0024】
(移動可能領域情報121)
移動可能領域情報121は、自律飛行ロボット200が飛行可能な3次元空間の空間範囲(立体)を表す座標データからなる情報である。なお、本発明を、2次元的な移動可能領域を走行する自律走行ロボットの移動制御に適用する場合には、移動可能領域情報121は、2次元的な領域情報であってよい。
移動可能領域情報121は、例えば、自律飛行ロボット200が飛行する領域内に存在する障害物の位置や形状に基づいて生成される。障害物以外にも、自律飛行ロボット200の所有者の敷地や、行政機関によって規定される飛行可能高度帯などといった、自律飛行ロボット200が飛行範囲を制限する情報に基づいて生成してもよい。
【0025】
例えば、移動可能領域情報121は、自律飛行ロボット200が飛行する領域を含んだ対象領域をボクセルに等分割したボクセル集合情報を有してよい。移動可能領域情報121は、各ボクセルのボクセルIDと、ボクセルの位置情報と、各ボクセルにおける障害物の有無の情報を有してよい。自律飛行ロボット200が飛行できる移動可能領域は、障害物が存在しないボクセルの集合として表すことができる。
【0026】
(位置情報122)
位置情報122は、自律飛行ロボット200の現在位置及び目標位置を示した情報である。自律飛行ロボット200から現在位置を受信すると、当該自律飛行ロボット200の機体IDと対応付けて位置情報122に記憶する。自律飛行ロボット200の目標位置が設定されると、当該自律飛行ロボット200の機体IDに対応付けて目標位置が位置情報122に記憶される。
【0027】
(部分領域情報123)
部分領域情報123は、移動可能領域情報121が示す移動可能領域を分割して得られる複数の部分領域を示す情報である。部分領域の情報として、例えば部分領域に含まれるボクセルのボクセルIDを有してよい。
部分領域情報123は階層構造を有する。最上位階層である第1階層の部分領域は、移動可能領域全体を、凸領域と凸領域以外の接続領域に分割して得られる部分領域である。
【0028】
第1階層よりも1つ下の階層である第2階層の部分領域は、1つ上の階層である第1階層の部分領域の各々を、階層ごとに設定された基準サイズ以下の領域となるように分割して得られる部分領域である。
同様に、第n階層の部分領域は、第(n-1)階層の部分領域の各々を基準サイズ以下の領域となるように分割して得られる部分領域である。第n階層の基準サイズは、第(n-1)階層の基準サイズよりも小さな値に設定されている。
【0029】
以下、基準サイズの最小値は、例えばボクセルの大きさであってよい。すなわち、最も下位の階層において、移動可能領域はボクセルサイズの部分領域に分割されていてよい。また、基準サイズの最小値は、ボクセルサイズよりも大きな値に設定してもよい。
さらに部分領域情報123は、これらの部分領域におのおの外接する外接直方体の情報を有していてもよい。
【0030】
(グラフ構造情報124)
グラフ構造情報124は、移動可能領域情報121が示す移動可能領域を分割して得られる部分領域(すなわち部分領域情報123により表された部分領域)どうしの位置関係(特に部分領域間の接続関係)を表すグラフ構造の情報である。
グラフ構造情報124は、部分領域情報123と同様に階層構造を有する。第n階層のグラフ構造は、第n階層の部分領域の各々に対応するノードと、互いに隣接している(すなわち互いに接している)第n階層の部分領域の対のノード間を接続するエッジと、を有する。
【0031】
各部分領域のノードの位置は、例えば部分領域の中心位置(重心位置)に最も近く、且つ部分領域内に位置するボクセルの中心位置に設定してよい。
さらにグラフ構造情報124は、第n階層の部分領域のノードと、この部分領域を含む1つ上の第(n-1)階層の部分領域のノードと、を接続するエッジ(以下「階層間エッジ」と表記することがある)の情報を有する。
(経路情報125)
経路情報125は、経路探索部133によって算出される情報であり、開始位置から始まり、各中間ノードの位置を経由し、目標位置に至る経路上の各位置の座標列である。
制御部130は、通信部110を介して経路情報125を自律飛行ロボット200に送信する。自律飛行ロボット200は、受信した経路情報125に基づいて経路情報234を記憶する。例えば経路情報125を経路情報234として記憶する。
【0032】
(制御部130)
制御部130は、CPU等のプロセッサ、ROM、RAM等の周辺機器を備えたコンピュータである。制御部130のプロセッサは、記憶部120に格納されたコンピュータプログラムを実行することにより、以下に説明する制御部130の機能を実現する。
制御部130は、領域分割部131、グラフ生成部132、経路探索部133、および探索対象領域設定部134等として機能する。経路探索部133は、特許請求の範囲に記載の「暫定経路探索部」と「移動経路探索部」の一例である。
【0033】
領域分割部131は、部分領域処理を実行する。部分領域処理では、領域分割部131は、移動可能領域情報121が示す移動可能領域を、凸領域と接続領域とに分割し、分割後の領域を第1階層の部分領域として取得する。また領域分割部131は、第1階層の部分領域を、第2階層の基準サイズ以下の領域となるように分割し、分割後の領域を第2階層の部分領域として取得する。
【0034】
同様に、第(n-1)階層の部分領域を、第n階層の基準サイズ以下の領域となるように分割し、分割後の領域を第n階層の部分領域として取得する処理を、基準サイズが所定の最小値となるまで繰り返す。
領域分割部131は、得られた部分領域の情報を部分領域情報123として記憶部120に記憶する。
【0035】
グラフ生成部132は、グラフ生成処理を実行する。グラフ生成処理では、グラフ生成部132は、各階層毎に、部分領域情報123の部分領域どうしの位置関係を表すグラフ構造を生成する。
また、グラフ生成部132は、第n階層の部分領域のノードと、この部分領域を含む1つ上の第(n-1)階層の部分領域のノードと、を接続する階層間エッジをグラフ構造に追加する。
グラフ生成部132は、生成されたグラフ構造の情報をグラフ構造情報124として記憶部120に記憶する。
【0036】
領域分割部131による部分領域処理及びグラフ生成部132によるグラフ生成処理は、自律飛行ロボット200の移動経路の探索前、例えば自律飛行ロボット200が目標位置への移動を開始する前に1回だけ実行してもよい。
また、自律飛行ロボット200が目標位置への移動を開始した後に、適宜リアルタイムに部分領域処理及びグラフ生成処理を実行してもよい。
自律飛行ロボット200が目標位置への移動を開始した後に部分領域処理及びグラフ生成処理を実行することにより、障害物の移動により移動可能領域が変化しても、移動可能領域が変化に応じて移動経路を変更できる。
【0037】
次に、図4図13を参照して、領域分割部131による部分領域処理とグラフ生成部132によるグラフ生成処理の一例を説明する。
上記のとおり、移動可能領域情報121として、自律飛行ロボット200が飛行する領域を含む対象領域をボクセルに等分割したボクセル集合情報が予め記憶されている。各ボクセルには障害物の有無が記憶されており、移動可能領域は障害物がないボクセルの集合として表現されている。図4は、移動可能領域1の一例を示す図である。
【0038】
まず、領域分割部131は、移動可能領域1を、最上位階層である第1階層の部分領域に分割する。以下、第1階層における部分領域処理について説明する。なお、領域の分割方法は以下の説明に限定されず、領域分割部131は、任意の手法によって移動可能領域1を第1階層の部分領域に分割すれば足りる。
領域分割部131は、移動可能領域1の全てのボクセルについて、ボクセルに最も近い障害物とボクセルとの間の距離値を算出する。
図5を参照する。領域分割部131は、障害物からの距離値が最も大きなボクセル2を選択する。領域分割部131は、選択したボクセル2から直方体を膨張させ、直方体内部が移動可能領域1内のボクセルのみとなる直方体を算出し、この直方体を凸領域3とする。
なお、移動可能領域1の境界は必ずしも平坦であるとは限らない。このため、1つの凸領域を算出する度に、凸領域の外側に接触するボクセルが移動可能領域1内に位置し、且つ当該ボクセルを凸領域に追加しても追加後の領域が依然として凸領域となるかを確認しながら、当該ボクセルを凸領域に追加して凸領域を拡大してもよい。
【0039】
図6を参照する。移動可能領域1から凸領域3を除いた領域から、障害物からの距離値が最も大きなボクセル5を選択し、ボクセル5から直方体を膨張させて凸領域6を算出する。同様に移動可能領域1から凸領域3、6を除いた領域から、障害物からの距離値が最も大きなボクセル8を選択し、ボクセル8から直方体を膨張させて凸領域9を算出する。
【0040】
同様に移動可能領域1から凸領域3、6、9を除いた領域から、障害物からの距離値が最も大きなボクセル11を選択し、図7に示すようにボクセル11から直方体12を膨張させる。直方体12と、算出済みの凸領域3とが干渉した場合には、直方体12を凸領域として設定せずに、凸領域を生成する処理を終了する。
図8を参照する。領域分割部131は、移動可能領域1から凸領域3、6、9を除いた領域のボクセルをクラスタリングし、接続領域13、14、15とする。
以上により領域分割部131は、移動可能領域1を、凸領域3、6、9と接続領域13~15に分割し、第1階層の部分領域として記憶する。
【0041】
次に、グラフ生成部132は、第1階層のグラフ構造を生成する。図9を参照する。グラフ生成部132は、各部分領域3、6、9、13~15の位置を表すノードn3、n6、n9、n13~n15を設定する。
例えば、グラフ生成部132は、各部分領域3、6、9、13~15の中心位置に最も近く、部分領域3、6、9、13~15内に位置するボクセルの中心位置をノードn3、n6、n9、n13~n15としてそれぞれ設定する。
【0042】
グラフ生成部132は、隣接する部分領域どうし(すなわち互いに接している部分領域どうし)のノード間を接続するエッジeを設定する。例えばグラフ生成部132は、互いに接しているボクセル間をエッジで接続したグラフ上で、A*(エースター)経路探索法やダイクストラ法などのアルゴリズムを用いて、エッジeの経路を算出してよい。
グラフ生成部132は、ノードn3、n6、n9、n13~n15がエッジeで接続されたグラフ構造を、第1階層のグラフ構造として記憶する。なお、エッジeの情報として、両端のノードの識別子とエッジ長の情報を記憶すれば足り、エッジの経路情報を記憶しなくてもよい。
図10を参照する。領域分割部131は、各部分領域3、6、9、13~15に外接する外接直方体A3、A6、A9、A13~A15を算出し、部分領域情報123の一部として記憶する。
【0043】
次に、領域分割部131は、第1階層の部分領域3、6、9、13~15の各々を分割して、下位階層(第2階層)の部分領域を生成する。以下、部分領域処理及びグラフ生成処理の説明において、部分領域及びグラフを生成する対象の階層を「注目階層」と表記する。
なお、領域の分割方法は以下の説明に限定されず、領域分割部131は、注目階層よりも1つ上位の階層の部分領域を、注目階層の部分領域に分割すれば足りる。
【0044】
図11を参照する。注目階層の1つ上位の階層(この場合は第1階層)の部分領域が凸領域である場合には、当該部分領域を注目階層の基準サイズで分割する。例えば、凸領域3は、基準サイズの凸領域18、19と、基準サイズよりも小さな残りの凸領域20に分割され、これらの凸領域を注目階層の部分領域18~20とする。凸領域6、9は基準サイズよりも小さいので分割せずに注目階層の部分領域21、22とする。
【0045】
図12を参照する。注目階層の1つ上位の階層の部分領域が接続領域である場合には、上述した第1階層における部分領域処理と同様に凸領域と接続領域に分割する。例えば接続領域14を、凸領域23と接続領域24~26とに分割し、接続領域13を、凸領域29と接続空間28とに分割し、それぞれを注目階層の部分領域とする。
接続領域15は、単一の直方体に含まれるため、分割せずに注目階層の部分領域27とする。
【0046】
図13を参照する。グラフ生成部132は、注目階層(この場合は第2階層)のグラフ構造を生成する。グラフ構造の生成方法は、上述した第1階層におけるグラフ構造の生成方法と同様である。
第2階層のグラフ構造は、第2階層の部分領域18~29のノードn18~n29と、これらのノードn18~n29のうち、隣接する部分領域どうしのノード間を接続するエッジeを含む。
【0047】
以下、同様の処理を繰り返し、第(n-1)階層の部分領域を、第n階層の基準サイズ以下の領域となるように分割し、分割後の領域を第n階層の部分領域として取得する処理と、第n階層のグラフ構造を生成する処理とを、基準サイズが所定の最小値となるまで繰り返す。
なお、部分領域及びグラフ構造が生成された階層のうち最も下位の階層を「最下位階層」と表記する。
最下位階層の基準サイズは、例えばボクセルの大きさであってよい。また、最下位階層の基準サイズはボクセルサイズよりも大きくてもよい。
【0048】
自律飛行ロボット200が目標位置への移動を開始した後に、適宜リアルタイムに部分領域処理及びグラフ生成処理を実行する場合、領域分割部131は、基準サイズの最小値(すなわち最下位階層の基準サイズ)を動的に変更してもよい。例えば、領域分割部131は、自律飛行ロボット200の移動速度に応じて、基準サイズの最小値を変更してよい。例えば、移動速度が高い程、基準サイズの最小値を大きくしてよい。これにより、自律飛行ロボット200の移動速度が高く迅速な移動経路の探索が要求される場合に、早期に経路計算を完了できる。
また例えば、領域分割部131は、部分領域処理及びグラフ生成処理の計算を開始してからの経過時間に応じて基準サイズの最小値を変更してよい。例えば、経過時間が長い程、基準サイズの最小値を大きくしてよい。これにより、早期に経路計算を完了できる。
【0049】
さらに、グラフ生成部132は、第n階層の部分領域のノードと、この部分領域を含む1つ上の第(n-1)階層の部分領域のノードと、を接続する階層間エッジをグラフ構造に追加する。
例えばグラフ生成部132は、互いに接しているボクセル間をエッジで接続したグラフ上で、A*(エースター)経路探索法やダイクストラ法などのアルゴリズムを用いて、階層間エッジの経路を算出してよい。このとき第(n-1)階層の部分領域のみを通過するように経路を算出する。階層間エッジの情報として、両端のノードの識別子とエッジ長の情報を記憶すれば足り、階層間エッジの経路情報を記憶しなくてもよい。
【0050】
なお、上記のグラフ生成処理において、エッジ算出の計算量を低減するために、ボクセル間をエッジで接続したグラフ上でエッジの経路を計算するのに代えて、注目階層の1つ下の階層のグラフ構造上でエッジの経路を計算してもよい。この場合、領域分割部131が最下位階層まで部分領域処理を実行した後に、グラフ生成部132は、最下位階層から順に最上位階層までグラフ構造を生成すればよい。
【0051】
図3を参照する。経路探索部133と探索対象領域設定部134は、経路探索処理を実行する。経路探索処理では、自律飛行ロボット200の移動の開始位置(例えば、自律飛行ロボット200の現在位置)から、指定された目標位置まで、自律飛行ロボット200を移動させる移動経路を探索する。
経路探索処理は、例えば、目標位置を指定されたとき、探索した移動経路上に障害物を検知したとき、探索した移動経路から自律飛行ロボット200が大きく外れたとき、等に実行される。
【0052】
経路探索部133は、各階層のグラフ構造において開始位置から目標位置に至る経路を探索する。これら経路のうち、最下位階層のグラフ構造において探索された経路を、自律飛行ロボット200を移動させる移動経路として最終的に出力する。第1階層と、第2階層以下の下位階層のうち最下位階層以外の階層と、において暫定的に探索される経路を「暫定経路」と表記する。
【0053】
第2階層以下の下位階層である第n階層(n≧2)において開始位置から目標位置に至る経路を探索するとき、探索対象領域設定部134は、第(n-1)階層にて算出された暫定経路に基づいて第(n-1)階層の部分領域を限定し、第n階層の移動経路を探索する探索対象領域として設定する。以下、経路探索処理の説明において、経路探索の対象となる第n階層を「注目階層」と表記することがある。
【0054】
経路探索部133は、グラフ生成部132が生成した第n階層のグラフ構造から、探索対象領域設定部134が設定した第(n-1)階層の探索対象領域に含まれない第n階層の部分領域のノードと、このノードに接続されるエッジを除くことによって、第n階層のグラフ構造を制限し、制限されたグラフ構造において開始位置から目標位置に至る第n階層の経路を探索する。
これにより、移動経路を探索する最下位階層のグラフ構造を制限することができるので、移動可能領域1が広くなるのに伴う経路探索の計算量の増大を抑制できる。
【0055】
次に、図14図21を参照して、経路探索部133及び探索対象領域設定部134による経路探索処理の一例を説明する。
まず、経路探索部133は、図14に示すように移動可能領域1内に開始位置30と目標位置31を設定する。
【0056】
図15を参照する。次に経路探索部133は、第1階層のグラフ構造において、開始位置30から目標位置31に至る暫定経路を生成し、経路長Lを算出する。
このとき経路探索部133は、開始位置30が属する第1階層の部分領域9のノードn9と開始位置30との間の経路32を求める。
経路探索部133は、例えば上記の階層間エッジの情報を用いて経路32を求めてもよい。
【0057】
具体的には、開始位置30を含んだ最下位階層の部分領域のノードから、第1階層のノードn9まで、階層間エッジを順に接続することによって、経路32を求める。
なお、開始位置30が属する部分領域9が凸領域である場合、開始位置30とノードn9とを直接結ぶ経路を経路32としてもよい。
同様に、目標位置31が属する第1階層の部分領域3のノードn3と目標位置31との間の経路33を求める。
【0058】
さらに、第1階層のグラフ構造において、ノードn9からノードn3までの経路34を探索する。
経路探索部133は、経路32と経路34と経路33とを接続して、開始位置30から目標位置31に至る暫定経路(32+34+33)とする。経路探索部133は、経路32の経路長LSと、経路34の経路長LMと、経路33の経路長LGの和を、暫定経路(32+34+33)の経路長L=(LS+LM+LG)として算出する。
【0059】
次に、探索対象領域設定部134は、自律飛行ロボット200の移動経路を探索する対象範囲を移動可能領域1から制限するために、経路探索部133が探索した暫定経路(32+34+33)に基づいて、第1階層の部分領域3、6、9、13~15のいずれかを探索対象領域の候補として選択する。
図16を参照する。例えば、探索対象領域設定部134は、開始位置30及び目標位置31を焦点とし、これら焦点30、31からの距離の和が暫定経路(32+34+33)の経路長Lとなる動点の軌跡が作る楕円体35の内側に位置する部分領域を探索対象領域の候補として選択してよい。ここで「楕円体の内側に位置する」とは、部分領域の少なくとも一部が楕円体内に位置すること(すなわち、部分領域と楕円体が接触していること)を意味する。
【0060】
このような楕円体35の表面の一点と、開始位置30及び目標位置31との間の2直線の距離の和は、暫定経路(32+34+33)の経路長Lと等しい、このため、楕円体35の外側に位置する部分領域を経由する経路の経路長は、暫定経路(32+34+33)の経路長Lよりも長くなる。したがって、探索対象領域設定部134は、楕円体35の外側に位置する部分領域を、最短経路が経由し得ない部分領域として、探索対象領域から除外する。
【0061】
本例では、図16に示すように部分領域3、6、9、13~15が、楕円体35と接触しているため、探索対象領域から除外される部分領域はない。探索対象領域設定部134は、部分領域3、6、9、13~15の全てを探索対象領域の候補として選択する。
なお、楕円体35と部分領域3、6、9、13~15との接触判定の計算を簡単にするために、図10に示す外接直方体A3、A6、A9、A13~A15と楕円体との接触判定に基づいて、部分領域3、6、9、13~15が、楕円体35と接触しているか否かを判定してよい。
なお、移動可能領域1が2次元領域である場合には、焦点30、31からの距離の和が暫定経路(32+34+33)の経路長Lとなる動点の軌跡が作る楕円の内側に位置する部分領域を探索対象領域として選択してよい。
【0062】
また、暫定経路(32+34+33)に基づいて探索対象領域を設定する方法は、上記のような楕円体や楕円を用いる方法に限定されない。暫定経路(32+34+33)を求めることにより開始位置30から目標位置31へ至る最短経路が通り得る範囲が絞り込まれるので、暫定経路(32+34+33)を用いることにより様々な方法で探索対象領域を選択できる。
例えば、暫定経路(32+34+33)に外接する外接直方体の内側に位置する部分領域を探索対象領域として選択してよい。また例えば、暫定経路(32+34+33)から所定距離以内の領域の内側に位置する部分領域を探索対象領域として選択してもよい。
【0063】
次に、探索対象領域設定部134は、暫定経路(32+34+33)に基づいて探索対象領域の候補として選択した部分領域3、6、9、13~15のうち、2個以上の部分領域と隣接する(接する)部分領域を探索対象領域として選択する。すなわち1個の部分領域のみと接する部分領域を探索対象領域から除外する。1個の部分領域のみと接する部分領域を通過する経路は、同じ部分領域から入って戻る経路しかないので、最短経路とならないことは明らかだからである。
【0064】
ただし、開始位置30を含む部分領域9と目標位置31を含む部分領域3は探索対象領域として選択する。
図16に示すように、本例では1個の部分領域のみと接する部分領域はない。したがって、探索対象領域設定部134は、部分領域3、6、9、13~15の全てを探索対象領域として選択して、第1階層における経路探索処理を終了する。
【0065】
図17を参照する。経路探索部133は、第1階層よりも1つ下位の第2階層を注目階層とする。経路探索部133は、第2階層のグラフ構造から、探索対象領域設定部134が選択した第1階層の探索対象領域に含まれない第2階層の部分領域のノードと、このノードに接続されるエッジを除いたグラフ構造において、開始位置30から目標位置31に至る経路を生成する。本例では、第1階層の部分領域3、6、9、13~15の全てが探索対象領域として選択されたため、第2階層のグラフ構造全体において経路を生成する。
最下位階層が第2階層である場合には、経路探索部133は、生成した経路の情報を、自律飛行ロボット200を移動させる移動経路の経路情報125として記憶部120に記憶する。最下位階層が第2階層よりも下位階層である場合には、生成した経路は暫定経路となる。
【0066】
経路探索部133は、第1階層における経路探索処理と同様の処理によって、開始位置30が属する第2階層の部分領域22のノードn22と開始位置30との間の経路40と、目標位置31が属する第2階層の部分領域19のノードn19と目標位置31との間の経路41と、を求める。また、第2階層のグラフ構造において、ノードn22からノードn19までの経路42を探索する。
経路探索部133は、経路40と経路42と経路41とを接続して、開始位置30から目標位置31に至る暫定経路(40+42+41)とし、その経路長Lを算出する。
【0067】
次に、探索対象領域設定部134は、暫定経路(40+42+41)に基づいて、第2階層の部分領域18~29のいずれかを探索対象領域の候補として選択する。暫定経路に基づいて探索対象領域の候補を選択する処理は、第1階層における処理と同様である。
例えば、図18に示すように、開始位置30及び目標位置31を焦点とし、これら焦点30、31からの距離の和が暫定経路(40+42+41)の経路長Lとなる動点の軌跡が作る楕円体43の内側に位置する部分領域を探索対象領域の候補として選択してよい。
【0068】
本例では、部分領域24及び25が楕円体43に接触せず、楕円体43の内側に位置するとはいえないので、部分領域24及び25が探索対象領域から除外される。探索対象領域設定部134は、部分領域24及び25のノードn24、n25及びこれらのノードに接続されるエッジを第2階層のグラフ構造から除外する。
次に、探索対象領域設定部134は、暫定経路(40+42+41)に基づいて探索対象領域の候補として選択した部分領域18~23、26~29のうち、2個以上の部分領域と隣接する部分領域を探索対象領域として選択する。ただし、開始位置30を含む部分領域22と目標位置31を含む部分領域19は探索対象領域として選択する。
【0069】
図19の例では、部分領域18、20、21、23は、1個の他の部分領域のみとしか接しないため、図20に示すように探索対象領域から除外される。部分領域18、20、21、23のノードn18、n20、n21、n23及びこれらのノードに接続されるエッジを、第2階層のグラフ構造から除外する。
【0070】
さらに、残された部分領域19、22、26、27、28、29のうち、1個の他の部分領域のみとしか接しない部分領域26、27を探索対象領域から除外する(図21参照)。部分領域26、27のノードn26、n27及びこれらのノードに接続されるエッジを第2階層のグラフ構造から除外する。
以上の処理を、開始位置30を含む部分領域22と目標位置31を含む部分領域19以外に、1個の他の部分領域のみとしか接しない部分領域がなくなるまで繰り返す。1個の他の部分領域のみとしか接しない部分領域がなくなると、第2階層における経路探索処理を終了する。
【0071】
経路探索部133と探索対象領域設定部134は、注目階層を1階層ずつ下位の階層へ変更しながら、最下位階層が注目階層になるまで経路探索処理を繰り返す。
第n階層の経路を探索するときは、第(n-1)階層の探索対象領域に含まれる第n階層の部分領域のノードと、これらの部分領域のうち隣接する(互いに接する)部分領域のノード間を接続するエッジと、を有するグラフ構造において経路を探索する。
【0072】
例えば、第3階層における経路探索処理では、第2階層の部分領域19、22、28、29に含まれる第3階層の部分領域のノードと、これらの部分領域のうち隣接する部分領域のノード間を接続するエッジと、を有するグラフ構造において経路を探索する。
経路探索部133は、最下位階層において探索した経路の情報を、自律飛行ロボット200を移動させる移動経路の経路情報125として記憶部120に記憶する。これにより、経路探索処理が終了する。
【0073】
なお、ある階層(「階層1」と表記する)における経路探索処理で探索した暫定経路に基づいて、階層1よりも上位の階層(「階層2」と表記する)の部分領域のいずれかを、探索対象領域として選択し直してから、階層2よりも下位の経路探索処理をやり直してもよい。
例えば、第2階層における経路探索処理で探索した暫定経路(40+42+41)に基づいて設定された楕円体43の内側に位置する第1階層の部分領域を、探索対象領域として選択し直し、第2階層以下の経路探索処理をやり直してもよい
第2階層において設定された楕円体43は、第1階層において設定された楕円体35よりも小さいため、より多くの部分領域を探索対象領域から除外できることがある。
【0074】
以上に説明した実施形態では、管理装置100において自律飛行ロボット200の移動経路を求める例について説明した。これに代えて、自律飛行ロボット200によって移動経路を求めてもよい。
すなわち、自律飛行ロボット200の制御部240が、上述の領域分割部131、グラフ生成部132、経路探索部133、探索対象領域設定部134の機能を実現し、自律飛行ロボット200の記憶部230に、移動可能領域情報121、位置情報122、部分領域情報123、グラフ構造情報124を格納してもよい。
【0075】
(動作)
次に、図22及び図23を参照して、実施形態の経路探索方法の一例を説明する。
ステップS1において経路探索部133は、自律飛行ロボット200が移動を開始する開始位置を取得する。
ステップS2において経路探索部133は、自律飛行ロボット200を移動させる目標位置を取得する。
【0076】
経路探索部133と探索対象領域設定部134は、部分領域及びグラフ構造の各階層において、注目領域を最上位階層(第1階層)から最下位階層まで1階層ずつ変更しながら、以下のステップS3~S16を繰り返す。
ステップS3において経路探索部133は、注目領域において開始位置を含む(開始位置が属する)部分領域のノードS1を取得する。
ステップS4において経路探索部133は、注目領域において目標位置を含む(目標位置が属する)部分領域のノードG1を取得する。
【0077】
ステップS5において経路探索部133は、開始位置とノードS1との間の経路長LSを算出する。図24は、ステップS5のサブルーチンの一例のフローチャートである。
ステップS20において経路探索部133は、経路長LSの変数を0に初期化する。
ステップS21において経路探索部133は、開始位置を含んだ最下位階層の部分領域を注目部分領域Cに設定する。
【0078】
ステップS22において経路探索部133は、注目部分領域Cの階層がノードS1の階層と同一であるか否かを判定する。注目部分領域Cの階層がノードS1の階層と同一でない場合(ステップS22:N)に処理はステップS23に進む。
ステップS23において経路探索部133は、注目部分領域Cを含む1つ上の階層の部分領域Uのノードと、注目部分領域Cのノード間を結ぶ階層間エッジのエッジ経路長LEを取得する。
ステップS24において経路探索部133は、経路長LSに経路長LEを加算する。
【0079】
ステップS25において経路探索部133は、部分領域Uを新たな注目部分領域Cとして処理はステップS22に戻る。
一方で、ステップS22の判定において注目部分領域Cの階層がノードS1の階層と同一である場合(ステップS22:Y)に、サブルーチンは終了し、その時点までの経路長LEの累積結果を経路長LSとして、処理を図22のステップS6に戻す。
【0080】
図22を参照する。ステップS6において目標位置とノードG1との間の経路長LGを算出する。経路長LGの算出ルーチンは、経路長LSと同様であり、図24を参照して説明したステップS5のサブルーチンの「開始位置」、「経路長LS」、「ノードS1」を「目標位置」、「経路長LG」、「ノードG1」と読み替えた処理と等しい。
図23を参照する。ステップS7において探索対象領域設定部134は、注目階層が最上位階層(第1階層)であるか否かを判定する。注目階層が最上位階層である場合(ステップS7:Y)に処理はステップS8に進む。注目階層が最上位階層でない場合(ステップS7:N)に処理はステップS11に進む。
【0081】
ステップS8において探索対象領域設定部134は、注目階層の全ての部分領域を探索対象領域の候補に設定する。
ステップS9において探索対象領域設定部134は、ステップS8で設定した探索対象領域の候補のうち、1個の他の部分領域のみにしか隣接しない部分領域を特定する。
ステップS10において探索対象領域設定部134は、ステップS9で特定した部分領域を、注目階層の探索対象領域から除外する。そして注目階層のグラフ構造から、注目階層の探索対象領域に含まれない部分領域のノードと、このノードに接続されるエッジを削除する。その後に処理はステップS12に進む。
【0082】
一方で、ステップS7の判定において注目階層が最上位階層でない場合(ステップS7:N)には、ステップS11において探索対象領域設定部134は、1つ上の階層の探索対象領域に含まれる注目階層の部分領域を、注目階層の探索対象領域に設定する。そして注目階層のグラフ構造から、注目階層の探索対象領域に含まれない部分領域のノードと、このノードに接続されるエッジを削除する。その後に処理はステップS12に進む。
ステップS12において経路探索部133は、注目階層のグラフ構造においてノードS1とノードG1との間の経路を探索し、探索した経路の経路長LMを算出する。
【0083】
ステップS13において探索対象領域設定部134は、開始位置30から目標位置31に至る経路の経路長L=LS+LM+LGを算出する。なお、注目階層が最下位階層である場合にはステップS13~S16を省略してもよい。
ステップS14において探索対象領域設定部134は、開始位置及び目標位置を焦点とし、これら焦点からの距離の和が経路長Lとなる動点の軌跡が作る楕円体を算出する。
ステップS15において探索対象領域設定部134は、楕円体の内側に位置しない部分領域と、1個の他の部分領域のみにしか隣接しない部分領域を特定する。
【0084】
ステップS16において探索対象領域設定部134は、ステップS15で特定した部分領域を、注目階層の探索対象領域から除外する。そして注目階層のグラフ構造から、注目階層の探索対象領域に含まれない部分領域のノードと、このノードに接続されるエッジを削除する。
注目領域が最下位階層となるまでステップS3~S16を繰り返し実行した後、処理はステップS17に進む。
ステップS17において経路探索部133は、最下位階層のグラフ構造において探索した開始位置30から目標位置31に至る経路を、自律飛行ロボット200を移動させる移動経路として出力する。その後に処理は終了する。
【0085】
(実施形態の効果)
(1)管理装置100は、移動可能領域内における、開始位置から目標位置に至る移動経路を求める。経路探索部133は、移動可能領域を表す領域データを分割して得られる複数の部分領域の各々に対応するノードと、隣接する部分領域のノード間を接続するエッジと、を有するグラフ構造において、開始位置から目標位置に至る暫定経路を探索する。探索対象領域設定部134は、暫定経路に基づいて、移動経路を探索する探索対象領域として複数の部分領域のいずれかを選択する。経路探索部133は、探索対象領域として選択された部分領域を再分割して得られる複数の部分領域である複数の第2の部分領域の各々に対応するノードと、隣接する第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、移動経路を探索する。
これにより、移動経路を探索するグラフ構造を制限することができるので、移動可能領域が広くなるのに伴う経路探索の計算量の増大を抑制できる。
【0086】
(2)移動可能領域が3次元領域である場合に、探索対象領域設定部134は、開始位置及び目標位置を焦点とし、これら焦点からの距離の和が暫定経路の経路長となる動点の軌跡が作る楕円体の内側に位置する部分領域を探索対象領域として選択してよい。
移動可能領域が2次元領域である場合に、探索対象領域設定部134は、開始位置及び目標位置を焦点とし、これら焦点からの距離の和が暫定経路の経路長となる動点の軌跡が作る楕円の内側に位置する部分領域を探索対象領域として選択してよい。
これにより、開始位置から目標位置へ至る最短経路が経由しない部分領域を探索対象領域から除外できる。
【0087】
(3)探索対象領域設定部134は、複数の部分領域のうち2個以上の部分領域と隣接する部分領域を探索対象領域として選択してもよい。これにより、開始位置から目標位置へ至る最短経路が経由しない部分領域を探索対象領域から除外できる。
【0088】
(4)グラフ生成部132は、部分領域の各々の所定位置にノードを配置し、隣接する部分領域のノード間を接続するエッジを配置して、グラフ構造を生成してよい。これにより、部分領域どうしの位置関係を表現したグラフ構造を生成できる。
【0089】
(5)領域分割部131は、移動可能領域を表す領域データを複数の部分領域に分割し、当該部分領域を所定の基準サイズ以下の部分領域に再分割し、基準サイズが所定の最小サイズになるまで段階的に減少させながら、部分領域を再分割する処理を反復してよい。
これにより、第n階層の部分領域が、1つ上の階層である第(n-1)階層の部分領域よりも細かな部分領域となるように、階層構造を有する移動可能領域の部分領域を生成できる。このため、より粗い第(n-1)階層で算出した暫定経路に基づいて、より細かな第n階層にて経路を探索する探索対象領域を制限し、経路計算の計算量を軽減できる。
【0090】
(6)領域分割部131は、移動経路上を移動させる移動体の移動速度に応じて、最小サイズを変更してもよい。また、領域分割部131は、移動経路の算出を開始してからの経過時間に応じて、最小サイズを変更してもよい。これにより、例えば経路計算を早期に完了できる。
【0091】
(7)経路探索部133は、第2の部分領域の各々に対応するノードと、隣接する第2の部分領域のノード間を接続するエッジと、を有するグラフ構造において、暫定経路を再探索してよい。探索対象領域設定部134は、再探索された暫定経路に基づいて、第2の部分領域が属する階層よりも上位の階層に属する複数の部分領域のいずれかを探索対象領域として選択してもよい。これにより、より多くの部分領域を探索対象領域から除外することができる。
【符号の説明】
【0092】
100…管理装置、110…通信部、120…記憶部、121…移動可能領域情報、122…位置情報、123…部分領域情報、124…グラフ構造情報、125…経路情報、130…制御部、131…領域分割部、132…グラフ生成部、133…経路探索部、134…探索対象領域設定部、200…自律飛行ロボット、210…位置・姿勢センサ、220…通信部、230…記憶部、232…位置・姿勢情報、234…経路情報、240…制御部、242…位置・姿勢算出手段、244…飛行制御手段、250…モータ、260…ロータ、1000…移動制御システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24