(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023145129
(43)【公開日】2023-10-11
(54)【発明の名称】経路生成装置、経路生成方法、および経路生成プログラム
(51)【国際特許分類】
G01C 21/34 20060101AFI20231003BHJP
G08G 1/00 20060101ALI20231003BHJP
G08G 1/16 20060101ALI20231003BHJP
【FI】
G01C21/34
G08G1/00 X
G08G1/16 D
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022052431
(22)【出願日】2022-03-28
(71)【出願人】
【識別番号】000144027
【氏名又は名称】株式会社ミツバ
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】岩田 知之
(72)【発明者】
【氏名】榎本 孝史
【テーマコード(参考)】
2F129
5H181
【Fターム(参考)】
2F129AA03
2F129CC13
2F129DD02
2F129DD62
2F129EE52
2F129HH12
5H181AA27
5H181LL01
5H181LL02
(57)【要約】
【課題】より改善された修正経路を生成すること。
【解決手段】経路生成装置10は、地図上の経路を構成する経路点を間引くとともに、かかる間引き後の経路点を障害物に接触させない範囲で適宜移動させて、
間引き後の隣合う経路点同士を結線する処理を行う経路整形部3と、整形された経路点同士の間隔が閾値を越えている2つの経路点を抽出して、抽出された2つの経路点の間に、地図内の障害物と交差しない中点を、経路点として設定する経路修正部4と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
地図上の経路を構成する経路点を間引くとともに、かかる間引き後の経路点を障害物に接触させない範囲で適宜移動させて、間引き後の隣合う経路点同士を結線する処理を行う経路整形部と、
整形された経路点同士の間隔が閾値を越えている2つの経路点を抽出して、抽出された2つの経路点の間に、前記地図内の障害物と交差しない中点を、前記経路点として設定する経路修正部と、を備える、
経路生成装置。
【請求項2】
前記経路修正部は、前記中点が前記障害物と交差する場合、当該中点の位置を移動させる、
請求項1に記載の経路生成装置。
【請求項3】
前記経路修正部は、前記中点を包含する形状の検査パターンを前記中点と一体的に配置し、前記検査パターンが前記障害物と交差しなくなるように、前記検査パターンを移動させる、
請求項2に記載の経路生成装置。
【請求項4】
前記経路修正部は、前記経路の進行方向を基準とした左右側の一方向に前記検査パターンを移動させる、
請求項3に記載の経路生成装置。
【請求項5】
前記経路修正部は、前記検査パターンを移動させた場合でも前記障害物と交差している場合、前記検査パターンを、前記左右側の他方向に移動させる、
請求項4に記載の経路生成装置。
【請求項6】
前記経路修正部は、前記検査パターンが前記障害物と交差しなくなった場合、前記中点の位置を前記2つの経路点の間の経路点として設定する、
請求項5に記載の経路生成装置。
【請求項7】
前記経路修正部は、前記検査パターンが前記障害物と交差しなくなった場合、当該2つの経路点および設定された前記経路点を再結線する、
請求項6に記載の経路生成装置。
【請求項8】
請求項1に記載の経路生成装置において、
前記地図のデータを読み出す地図読出部と、指定された前記地図内の出発地および到着地を用いて経路の探索を行う経路探索部と、を備え、
前記経路修正部は、前記経路探索部によって探索された経路の経路点を間引くとともに、かかる間引き後の経路点を障害物に接触させない範囲で適宜移動させて、
間引き後の隣合う経路点同士を結線する、
経路生成装置。
【請求項9】
地図上の経路を構成する経路点を間引くとともに、間引き後の経路点を障害物に接触させない範囲で適宜移動させて、間引き後の隣合う経路点同士を結線する処理を行い、
整形された経路点同士の間隔が閾値を越えている2つの経路点を抽出し、
抽出された2つの経路点の間に、前記地図内の障害物と交差しない中点を、前記経路点として設定する、
経路生成方法。
【請求項10】
コンピュータを、
地図上の経路を構成する経路点を間引くとともに、かかる間引き後の経路点を障害物に接触させない範囲で適宜移動させて、間引き後の隣合う経路点同士を結線する処理を行う経路整形部と、
整形された経路点同士の間隔が閾値を越えている2つの経路点を抽出して、抽出された2つの経路点の間に、前記地図内の障害物と交差しない中点を、前記経路点として設定する経路修正部と、
して機能させるための経路生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、経路生成装置、経路生成方法、および経路生成プログラムに関する。
【背景技術】
【0002】
例えば特許文献1では、住宅の間取図の情報に基づいて、ユーザが通過できる経路を探索し、探索した経路に平滑化等の後処理を施して最終的な経路を生成する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術では、例えば自律移動ロボット等が移動するための経路を、RRT*(RRTstar)などのアルゴリズムで生成し、当該経路を後処理による間引きやスムージングを適用して最終的な経路を生成した場合に、生成された修正経路が壁等の障害物と交差してしまう場合があった。
【0005】
本発明の目的は、より改善された修正経路を生成することが可能な経路生成装置を提供することにある。
【課題を解決するための手段】
【0006】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0007】
本発明の代表的な実施の形態による経路生成装置は、
地図上の経路を構成する経路点を間引くとともに、かかる間引き後の経路点を障害物に接触させない範囲で適宜移動させて、間引き後の隣合う経路点同士を結線する処理を行う経路整形部と、
経路点同士の間隔が閾値を越えている2つの経路点を抽出して、抽出された2つの経路点の間に、前記地図内の障害物と交差しない中点を、前記経路点として設定する経路修正部と、を備える。
【発明の効果】
【0008】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0009】
すなわち、本発明の代表的な実施の形態によれば、より改善された修正経路を生成することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施の形態における経路生成装置の制御構成を示す機能ブロック図である。
【
図2】経路探索部によって探索されたオリジナル経路および経路整形部によって整形された経路を説明する図である。
【
図3】
図2の(2)における整形経路が障害物Mbと干渉する場合を抽出して示す部分拡大図である。
【
図4】整形経路CRを構成する隣合う経路点CRn,CRn+1の間に中点MPを設ける処理を説明する部分拡大図である。
【
図5】整形経路CRの進行方向ベクトルVdm、進行方向ベクトルVdmを基準とした右方向ベクトルVrdおよび左方向ベクトルVldを説明する部分拡大図である。
【
図6】検査パターンEPを配置する処理を説明する部分拡大図である。
【
図7】検査パターンEPを移動する際の障害物Mbとの干渉状態を例示する部分拡大図である。
【
図8】検査パターンEPを移動する際の障害物Mbとの干渉状態を例示する部分拡大図である。
【
図9】中継点を通る経路を生成するように再結線する処理を説明する部分拡大図である。
【
図10】従来技術を適用した比較例の経路と、本実施の形態の経路生成装置を用いて作成した経路とを比較して示す図である。
【
図11】
図1に示す経路生成装置における処理手順の形態を示すフローチャートである。
【発明を実施するための形態】
【0011】
(実施の形態1)
以下、本発明の実施の形態を、図面を参照しつつ説明する。以下で説明する各実施の形態は、本発明を実現するための一例であり、本発明の技術範囲を限定するものではない。なお、実施例において、同一の機能を有する部材には同一の符号を付し、その繰り返しの説明は、特に必要な場合を除き省略する。
【0012】
<概要>
以下に説明する経路生成装置は、任意の環境地図を使用し、当該環境地図中で、自律移動ロボット等が移動可能な経路を探索、整形、修正、設定等するための装置である。本実施の形態の経路生成装置は、従来よりも改善された修正経路を生成することができる。
【0013】
<経路生成装置の構成>
図1は、本発明の実施の形態1に係る経路生成装置の構成の一例を示す構成図である。
図1に示すように、経路生成装置10は、環境地図情報読出部1と、経路探索部2と、経路整形部3と、経路修正部4と、経路平滑化部5と、記憶部6と、を備える。また、図示しないが、経路生成装置10は、液晶ディスプレイなどの表示部、マウスやキーボードなどの操作入力部を備える。かかる経路生成装置10は、一台のコンピュータに実装することができ、また、例えばプリンタや通信装置などの任意の周辺装置を備えることができる。
【0014】
上記のうち、符号1~5で示される各ブロックは、CPU、MPUなどのハードウェアプロセッサが担う機能として実現することができる。なお、これら各ブロックは、適宜、別個のプロセッサを用いても構わない。記憶部6は、HDD、ROM、RAMなどの任意のデータ記憶媒体が使用され得る。
【0015】
環境地図情報読出部1は、記憶部6から環境地図のデータを読み出す処理を行う。環境地図の種類は、特に限定されるものではなく任意であるが、ここでは、特記する場合を除き、自律移動ロボット等が移動可能な幅を有する通路が形成された地図であることを前提として説明する。また、以下は、環境地図中の通路以外の部分は障害物であることを前提とする(適宜、
図2中の黒色の部分を参照)。
【0016】
環境地図情報読出部1によって読み出された環境地図のデータは、RAM等の作業領域に展開され、さらには上述した表示部に表示することができる。なお、読み出された環境地図のデータは、プリンタ等を通じて用紙などに印刷することもできる。総じて、環境地図情報読出部1は、経路設定前の環境地図の情報を読み出して出力する処理を行う。
【0017】
経路探索部2は、出力された環境地図から、上述したRRT*(RRTstar)などのアルゴリズムを用いて、自律移動ロボット等が移動するための経路を探索する。なお、経路探索部2による経路探索に先立って、例えば、上述した操作入力部を用いて、出発点(スタート地点)、到着点(ゴール地点)、適宜の中間通過点などを設定することができる。この場合、経路探索部2は、出力された環境地図から、設定された出発点、到着点、中間通過点を通る経路を探索して、探索結果の経路を出力する。以下は、説明の便宜等のため、経路探索部2によって探索された経路を「オリジナル経路」と称する場合がある。
【0018】
図2中の上側の(1)は、ディスプレイ(表示画面)に出力された環境地
図Mに対して、経路探索部2が経路を探索し、オリジナル経路ORとして出力した状態を示している。なお、図中の「START」および「GOAL」で示す位置は、予め設定された出発点(スタート地点)および到着点(ゴール地点)であり、他の図についても同様である。また、以下は、特記しない限り、中間通過点を設定していない事例を前提とする。
【0019】
経路整形部3は、出力された探索結果の経路すなわちオリジナル経路ORを整形して出力する。具体的には、経路整形部3は、経路探索部2から出力されたオリジナル経路ORの経路点を間引くとともに、かかる間引き後の経路点を、障害物に接触させない範囲で適宜移動させて、間引き後の隣合う経路点同士を結線して整形経路CRとして出力する。なお、経路整形部3から出力された整形経路CRは、オリジナル経路ORを修正した形態という意味では修正経路とも言えるが、経路修正部4から出力される修正経路と区別するため、ここでは整形経路と称する。
【0020】
図2中の下側の(2)は、
図2(1)の画面に対して、経路整形部3によってオリジナル経路ORが整形され、整形経路CRとして出力した状態を示している。
【0021】
なお、表示画面への表示態様の具体例としては、
図2の(1)では、環境地
図Mのレイヤー(第1のレイヤー)に、出力されたオリジナル経路ORのレイヤー(第2のレイヤー)を重畳して表示する。また
図2中の下側の(2)では、さらに第3のレイヤーとして、オリジナル経路ORの経路点を間引いて整形した整形経路CRのレイヤーを重畳して表示する。
【0022】
経路修正部4は、経路整形部3によって整形された整形経路CRをさらに修正し、修正経路として出力する(適宜、
図9に符号Rrjで示す経路を参照)。具体的には、経路修正部4は、中継点の必要箇所の算出、仮中継点の設定、検査パターンの設定、検査パターンの移動方向算出、および検査パターンの移動、交差判定、中継点決定、経路点結線という一連の処理を実行する。
図1の右側には、経路修正部4における上記の処理を機能ブロック化して示す。
【0023】
すなわち、経路修正部4は、中継点必要箇所算出部41と、仮中継点設定部42と、検査パターン設定部43と、検査パターン移動方向算出部44と、検査パターン移動部45と、交差判定部46と、中継点決定部47と、経路点結線部48と、を有する。これら各部の機能については後述する。
【0024】
経路平滑化部5は、経路修正部4によって修正(いわば再修正)された経路に平滑化(スムージング)の処理を施すことにより、経路間の結線を滑らかにする。
【0025】
次に、
図2(2)~
図10を参照して、従来技術における課題および経路修正部4が実行する処理の詳細について、具体例に則して説明する。
【0026】
図2(2)中、右側に抽出して示す拡大部分は、従来の経路生成の処理における課題等を説明する図である。この部分拡大図に示すように、経路探索部2が出力したオリジナル経路ORは障害物Mbに干渉していないのに対して、経路整形部3が出力した整形経路CRの経路では、経路点CRnと経路点CRn+1とを結んだ経路が障害物Mb(この例では通路が略直角に曲がる部分)と交差すなわち干渉していることが分かる。
【0027】
これは、経路整形部3で行う処理のうち、間引き後の経路点(この例では経路点CRnおよび経路点CRn+1の少なくとも一方)を、障害物Mbに接触させない範囲で適宜移動させる処理において、これら経路点CRnと経路点CRn+1とを結ぶ経路が出来るだけ短くなるように移動させるためであることが判明した。
【0028】
他の観点からは、経路整形部3で上記のような処理が行われることによって、整形経路CRの経路が障害物Mbと交差する箇所では、交差しない箇所(この例では通路が直線状の部分)と比較して、隣り合う経路点間の距離が長くなることが判明した(適宜、
図2(2)中に示す整形経路CRの各々の経路点を参照)。
【0029】
そこで、本実施の形態では、経路生成装置10の経路修正部4が以下のような処理を行うことで、整形経路CRの経路が障害物Mbと交差する箇所の経路を再構成する。
【0030】
まず、経路修正部4は、中継点必要箇所算出部41の機能を遂行する。ここで、中継点必要箇所算出部41は、経路整形部3により出力された整形経路CRにおいて、経路点の間隔が閾値を越えている箇所すなわち、整形経路CR中の隣り合う2つの経路点のうち、点同士の距離が閾値を越えている2つの経路点CRnおよびCRn+1を全て抽出する。より具体的には、中継点必要箇所算出部41は、整形経路CRにおける隣り合う2つの経路点の距離を算出し、当該算出値が閾値を越えているか否かを判定し、越えていると判定された当該2つの経路点CRnおよびCRn+1を抽出する処理を、整形経路CRのSTARTの経路点からGOALの経路点に至るまで、繰り返し行う。
【0031】
ここで、閾値の値は、特に制限されるものではなく、また、上述した操作入力部を通じてユーザが任意に設定(初期値を変更)することができる。但し、閾値の値は、整形経路CRを構成する他の経路点の距離よりも長い値であることを要するため、初期値の一例としては、他の経路点の距離の2倍の値とする。
【0032】
なお、
図2中の(2)を参照すると、STARTからGOALに至るまでの整形経路CR中、障害物、この例では直角に曲がるように張り出している壁の部分が、左下側、下側、上側、右上側の4か所にある。このうち、左下側の障害物は、START地点の位置との関係で、オリジナル経路ORおよび整形経路CRとのいずれとも交差せず、このため、整形経路CRの対応する2つの経路点も閾値を越えない。これに対して、下側、上側、右上側の3か所の障害物は、オリジナル経路ORでは交差しないが、整形経路CRではそれぞれ交差しているものとする。
【0033】
以下は、説明の繰り返し等を省くため、
図2(2)の拡大抽出図で示す上側の障害物Mbとの交差およびかかる交差を解消するための経路修正部4が行う処理の詳細を、
図3以降を参照して詳細に説明する。
【0034】
図3は、
図2の(2)における整形経路CRが障害物Mbと干渉する場合を抽出して示す部分拡大図である。
図3中、矢印Dは、オリジナル経路ORにおける進行方向を示している。また、経路点CRnおよびCRn+1は、整形経路CR中の隣り合う2つの経路点のうち、点同士の距離が閾値を越えている経路点であって、添え字nはSTART地点の経路点が1とした場合のn番目の点である旨を意味する。また、添え字n+1は、n番目の経路点の次点すなわち進行方向における次の点である旨を意味する。
【0035】
続いて、経路修正部4は、仮中継点設定部42の機能を遂行する。ここで、仮中継点設定部42は、中継点必要箇所算出部41によって抽出された、経路点CRnと経路点CRn+1との間に、仮中継点としての中点MPを設定する。
【0036】
図4は、整形経路CRを構成する隣合う経路点CRn,CRn+1の間に中点MP(仮中継点)を設定する処理を説明する部分拡大図である。この例では、経路点CRnと経路点CRn+1との中間位置に中点MPを設ける場合について図示しているが(
図5(1)も参照)、障害物の形状等によっては、中点MPを、経路点CRnに近い側に配置する或いは逆に経路点CRn+1に近い側に配置してもよい。
【0037】
また、仮中継点設定部42は、中継点必要箇所算出部41によって抽出された、経路点CRnと経路点CRn+1との進行方向ベクトルVdmを算出する。さらに、仮中継点設定部42は、算出された進行方向ベクトルVdmに対して、右側と左側を定義する。ここで、
図5は、整形経路CRの進行方向ベクトルVdm、進行方向ベクトルVdmを基準とした右方向ベクトルVrdおよび左方向ベクトルVldを説明する部分拡大図である。
【0038】
すなわち、
図3で上述した矢印Dおよび
図5の(1)を参照して分かるように、この例では、進行方向ベクトルVdmは、経路点CRnから経路点CRn+1に向かう矢印、より詳しくは、経路点CRnから中点MPを経て経路点CRn+1に向かう矢印となる。また、
図5の(2)を参照すると、この例では、進行方向ベクトルVdmを時計回りに90度回転させた矢印が右方向ベクトルVrdと定義され、進行方向ベクトルVdmを反時計回りに90度回転させた矢印が左方向ベクトルVldと定義される。
【0039】
なお、右方向ベクトルVrdおよび左方向ベクトルVldの定義は、必ずしも上記に限定されるものではない。他にも例えば、右方向ベクトルVrdについて、進行方向ベクトルVdmを時計回りに30度、45度、60度など、任意の角度に回転させた矢印と定義してもよく、左方向ベクトルVldの定義についても同様である。
【0040】
続いて、経路修正部4は、検査パターン設定部43の機能を遂行する。ここで、検査パターン設定部43は、仮中継点設定部42によって設定された中点MPに対して、
図6の(1)に示すような検査パターンEPを設定する。より具体的には、検査パターン設定部43は、中点MPの座標を中心とする半径bの円形検査パターン(バイナリビットマップ)を配置する。なお、半径bの値は、特に制限されるものではなく、また、上述した操作入力部を通じてユーザが任意に設定(初期値を変更)することができる。
【0041】
図6の(2)は、
図6の(1)に示す検査パターンEPを中点MPに配置(設定)した状態を示している。
図6の(2)に示す例では、中点MPに、検査パターンEPの中央の部分すなわちパターン中央EPmを一致させて、中点MPと検査パターンEPとを合体すなわち一体化させた構成を示している。
【0042】
なお、
図6に示す例では、検査パターンEPの外縁形状を円形とした場合を例示するが、かかる形状はこれに限定されるものではなく、他にも例えば、4角形や6角形などの多角形状としてもよい。さらに他の例として、検査パターンEPの外縁形状として、左右で非対象の形状、例えば右方向ベクトルVrd方向と左方向ベクトルVld方向とで径の異なる半円を組み合わせた形状であってもよい。
【0043】
次に、経路修正部4は、交差判定部46の機能を遂行する。ここで、交差判定部46は、検査パターン設定部43によって設定された検査パターンEPと、対応する障害物Mbとが交差するか否かを判定する。なお、この例では、経路生成の環境地
図Mは、バイナリビットマップで表され、具体的には、通路となる通過可能領域は1で表され、壁などの障害物Mbの領域は0で表されているものとする。したがって、交差判定部46が行う交差判定の一具体例としては、検査パターンEPの円の外縁を表す二次元座標値のいずれかが、環境地
図M中の障害物Mbすなわち0で表されている二次元座標値と一致する場合、交差すると判定する。一方、交差判定部46は、検査パターンEPの円の外縁を表す二次元座標値のいずれもが、環境地
図M中の障害物Mbすなわち0で表されている二次元座標値と一致しない場合、交差しないと判定する。
【0044】
ここで、交差判定部46によって交差するとの判定結果が出力された場合、経路修正部4は、検査パターン移動方向算出部44の機能を遂行する。ここで、検査パターン移動方向算出部44は、交差するとの判定結果に応じて、当該中点MP(仮中継点)を移動させる方向を決定する処理を行う。検査パターン移動方向算出部44による、中点MP(仮中継点)を移動させる方向を決定する処理の一具体例としては、上述した右方向ベクトルVrdおよび左方向ベクトルVldのいずれか一方に移動させる決定を行う。
【0045】
一具体例では、交差するとの判定結果が出力された場合に、検査パターン移動方向算出部44は、上記の決定を、予め定められた移動量の上限値または上限回数(m回)だけ連続して繰り返す。この理由は、仮に中点MP(仮中継点)を移動させる方向(右方向ベクトルVrd、左方向ベクトルVldの別)が妥当であっても、1回だけの移動では障害物Mbとの交差が解消されない場合があり得るからである。
【0046】
なお、上述した移動量またはmの値は、操作入力部を通じてユーザが任意に設定(初期値を変更)することができる。一具体例では、移動量の上限値(初期値)としては、検査パターンEPの半径の整数倍、例えばb×2の2bとする。
【0047】
次に、経路修正部4は、検査パターン移動部45の機能を遂行する。ここで、検査パターン移動部45は、検査パターン移動方向算出部44によって決定された移動方向(右方向ベクトルVrd、左方向ベクトルVldの別)に従って、中点MP(仮中継点)を移動させる処理を行う。
【0048】
そして、経路修正部4は、上記の移動量の上限値または上限回数を限度として、検査パターンEPの外縁が障害物Mbと交差しなくなるまで、上述した交差判定部46による交差判定、検査パターン移動方向算出部44による移動方向決定、および検査パターン移動部45による検査パターンEPひいては中点MP(仮中継点)の移動の処理を繰り返す。
【0049】
総じて、検査パターン移動部45は、検査パターンが障害物に干渉しなくなるように、検査パターンEPの(座標)位置を移動させる機能を担う。
【0050】
かくして、上記のような一連の処理を行うことで、障害物Mbと整形経路CRとの干渉を解消することができる。
【0051】
ここで、経路修正部4は、上述した交差判定により交差しない旨の判定結果が出力された場合、中継点決定部47および経路点結線部48の機能を順次実行する。ここで、中継点決定部47は、検査パターンEPひいては仮中継点としての中点MPの位置を、中継点として設定する(確定させる)処理を行う。そして、経路点結線部48は、経路点CRnと設定(確定)された経路点とを結線し、さらに、当該経路点と次の経路点CRn+1とを結線する処理を行う。
【0052】
一方で、障害物Mbが複雑な形状である等の種々の要因により、上記のような処理を繰り返しても障害物Mbとの交差が解消されない場合があり得る。
図7の(1)および(2)は、検査パターンEPを右方向ベクトルVrdに従って移動する際の障害物Mbとの干渉状態を例示する部分拡大図であり、
図7に示す例では、検査パターンEPの移動方向が妥当でないことが分かる。このような場合、経路修正部4は、以下の処理を行う。
【0053】
経路修正部4は、検査パターン移動部45の機能を遂行する。このとき、検査パターン移動部45は、直前に検査パターン移動方向算出部44によって決定された移動方向(右方向ベクトルVrd、左方向ベクトルVldの別)とは反対方向に、中点MP(仮中継点)を移動させる処理を行う。そして、上述と同様に、事前に設定された移動量または移動回数を上限として、検査パターンEPの外縁が障害物Mbと交差しなくなるまで、上述した交差判定部46による交差判定、検査パターン移動方向算出部44による移動方向決定、および検査パターン移動部45による検査パターンEPひいては中点MP(仮中継点)の移動の処理を繰り返す。
【0054】
図8の(1)、(2)および(3)は、検査パターンEPを、
図7とは逆の左方向ベクトルVldの方向に移動する際の障害物Mbとの干渉状態を例示する部分拡大図である。ここでも同様に、移動量の上限値または上限回数は事前に設けておき(例えば移動量の上限を2bとする)、その限度内で検査パターンEPを移動させる。そして、障害物Mbとの交差が無くなった場合は、その地点に中点MPを移動して中継点とする。
【0055】
なお、経路修正部4は、この逆方向移動の処理によっても障害物Mbとの交差が解消されない場合、再び検査パターン設定部43による検査パターンEPの設定の処理に戻る。このとき、検査パターン設定部43は、
図6(1)で上述した半径bの値を変える、例えば直前状態と比べて半分の値に小さく設定した円形検査パターン(バイナリビットマップ)を配置し、上述した交差判定、移動方向決定、および検査パターンEPひいては中点MP(仮中継点)の移動の処理を繰り返す。
【0056】
そして、障害物Mbとの交差が解消された旨の判定結果が得られた場合、経路修正部4は、当該中継点EPmを経路点として挿入(設定ないし確定)し、各々の経路点を再結線することにより、上述した整形経路を修正した修正経路を生成する。
図9は、中継点EPmを通る経路を生成するように再結線する処理を説明する部分拡大図である。ここで、経路点の結線、すなわち上述した経路点結線部48が行う結線処理の一具体例としては、スプライン内挿を用いることができる。
【0057】
このような一連の処理を行う本実施に形態によれば、
図9中に示すように、障害物Mbとの交差(干渉)を解消した再結線経路Rrjを含む、より改善された経路(修正経路)を生成することができる。
【0058】
かくして、実施の形態1では、整形経路CRを構成し閾値距離を越えている経路点CRと経路点CRn+1との間に設けた中点MPに対し、当該中点MPよりも大きな外形の検査パターンEPを設定する。そして、本実施の形態では、設定された検査パターンEPおよび中点MPを、進行方向ベクトルVdmを基準とした右方向ベクトルVrd又は左方向ベクトルVldのいずれかの方向に移動させ、検査パターンEPの外形が障害物Mbと干渉しない位置まで移動した場合、検査パターンEPの中央ひいては中点MPを中継点として再結線を行う。このような一連の処理を行う本実施の形態の経路生成装置10によれば、
図9に示すように、オリジナル経路ORにおける経路点の数を間引きつつ、最小限の中継点の追加により、障害物Mbと干渉しないオリジナル経路ORに近似した修正経路を生成することができる。
【0059】
図10は、従来技術を適用した比較例の経路と、本実施の形態の経路生成装置10を用いて作成した経路とを比較して示す図である。
図10中の左側の(1)は、従来技術の手法による修正経路を示しており、上述した整形経路CRに対応した経路となっている。これに対し、
図10中右側の(2)は、本実施の形態の経路生成装置10を用いて作成した修正経路を示している。
【0060】
図10の(1)に示す従来技術では、スプライン内挿とサンプリング一定化の手法を用いて修正経路を生成しており、左上側に円で囲った領域の経路において、右側に曲がる壁部分と干渉している部分があることが分かる。これに対して、
図10の(2)に示す例では、上述した中継点EPmを経路点として挿入した後に、従来と同様のスプライン内挿とサンプリング一定化の手法を用いて修正経路を生成した。このように、本実施の形態の手法を用いて修正経路を生成することにより、左上側に円で囲った領域の経路において、右側に曲がる壁部分との干渉が解消されている。
【0061】
次に、
図11のフローチャートを参照して、経路生成装置10が行う処理の流れについて説明する。なお、このフローチャートは、上述した環境地図情報読出部1によって環境地図が読み出されてディスプレイ(表示画面)に表示され(例えば
図2に示す環境地
図Mを参照)、かつ、出発地点(START)と目的地点(GOAL)が設定された後の処理に対応する。
【0062】
ステップS1において、経路生成装置10は、上述した経路探索部2を実行して、経路生成の処理を行う。この処理によって、ディスプレイ(表示画面)に読み出されている環境地
図Mに対して、オリジナル経路OR(
図2の(1)を参照)が重畳して表示される。
【0063】
ステップS2において、経路生成装置10は、経路整形部3を実行して、整形経路CRを生成する。このステップS2の処理により、オリジナル経路OR(
図2の(1)を参照)の経路点の間引き等が行われた整形経路CRが表示される(
図2の(2)を参照)。
【0064】
ステップS3において、経路生成装置10は、経路修正部4の中継点必要箇所算出部41を実行して、整形経路CRにおいて経路点の間隔が閾値を越えている箇所すなわち、整形経路CR中の隣り合う2つの経路点のうち、点同士の距離が閾値を越えている2つの経路点CRnおよびCRn+1を全て抽出する。
【0065】
ステップS4において、経路生成装置10は、経路修正部4の仮中継点設定部42を実行することにより、
図4で上述したように、抽出された2つの経路点CRnおよびCRn+1の間に中点MPを設定する。さらに、経路生成装置10は、経路修正部4の検査パターン設定部43を実行することにより、
図6で上述したような検査パターンEPを中点MP上に設定する。
【0066】
また、ステップS5において、経路修正部4は、抽出された2つの経路点CRnおよびCRn+1の進行方向ベクトルを算出する(
図5中の矢印Vdmを参照)。なお、上述したステップS4とこのステップS5の実行順序は逆であってもよい。
【0067】
ステップS6において、経路生成装置10は、経路修正部4の交差判定部46を実行することにより、新たに設定された中点MP(仮中継点)を経由する経路が障害物と交差するか否かを判定する。この交差判定は、上述のように、検査パターンEPの外縁が障害物Mbと一致するか否かを基準として行うことができる。
【0068】
ここで、経路生成装置10は、障害物と交差する(ステップS6:YES)と判定した場合にはステップS7に移行する。一方、経路生成装置10は、障害物と交差しない(ステップS6:NO)と判定した場合にはステップS8に移行する。
【0069】
ステップS7において、経路生成装置10は、経路修正部4の検査パターン移動方向算出部44および検査パターン移動部45を実行することにより、検査パターンEPおよび中点MPを、右方向ベクトルVrdまたは左方向ベクトルVldのいずれか、この例では右方向ベクトルVrdに従って移動させる。ここで、経路生成装置10は、移動後の中点MPを、仮の中継点EPmとして設定する(
図6および
図7の(2)を参照)。
【0070】
この後、経路生成装置10は、ステップS6の判定ステップに戻り、仮の中継点EPmおよびこれを含む経路が障害物と交差するか否かを、上述した手法を用いて判定する。
【0071】
そして、上述と同様に、経路生成装置10は、障害物と交差する(ステップS6:YES)と判定した場合にはステップS7に移行する。続くステップS7では、経路生成装置10は、当該中継点EPを、これまでとは逆の左方向ベクトルVldに従って移動させる。経路生成装置10は、移動後の中継点EPを、仮のないし新たな中継点EPとして設定する(
図8の(2)を参照)。
【0072】
このようにして、経路生成装置10は、新たな中継点EPm(およびこれを含む経路)が障害物と交差していない(ステップS6:NO)と判定するまでは、ステップS6の交差判定およびステップS7の仮の中継点EPを移動させる処理を繰り返す。
【0073】
そして、経路生成装置10は、交差判定部46によって検査パターンEPおよび中継点EPが障害物Mbと交差しない(ステップS6:NO)と判定された場合、ステップS8に移行する。
【0074】
障害物Mbと交差していない(ステップS6:NO)と判定された後のステップS8において、経路生成装置10は、経路修正部4の中継点決定部47および経路点結線部48を実行することにより、中継点EPを確定させ、かかる当該中継点EPを経由する経路を再結線し、ステップS9に移行する。
【0075】
ステップS9において、経路生成装置10は、経路修正部4の中継点必要箇所算出部41を実行することにより、整形経路CRにおいて、経路点の間隔が閾値を越えている箇所(中継点必要箇所)がなくなったか否かについて判定する。ここで、経路生成装置10は、中継点必要箇所がなくなっていない(ステップS9:NO)と判定した場合、ステップS4に処理を戻し、上述したステップS4以下の処理を繰り返し実行する。一方、経路生成装置10は、中継点必要箇所がなくなった(ステップS9:YES)と判定した場合、スタートからゴールまでの全ての経路において経路修正できたものと判断して、一連の処理を終了させる。
【0076】
以上、詳細に説明したように、本実施形態の経路生成装置10によれば、より改善された修正経路を生成することができる。
【0077】
なお、上述した実施の形態では、経路生成装置10として、移動体が移動する経路を生成する装置を例示したが、これに限定されず、他にも例えば、特許文献1に記載されているような人間が移動するための経路など、種々の経路生成装置に適用することができる。
【0078】
その他、本発明は上記した実施の形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。
【0079】
また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0080】
また、上述した実施の形態に係る経路生成装置によれば、より改善された経路を生成することができるため、経路生成に関する作業効率が改善され、余計な工程ないしコストを抑えることができるので、全体的にエネルギーの消費を抑えることができる。よって、国連が主導する持続可能な開発目標(SDGs)において、特に目標7(手ごろで信頼でき、持続可能かつ近代的なエネルギーへのアクセスを確保する)および目標13(気候変動とその影響に立ち向かうため、緊急対策を取る)に貢献することが可能となる。
【符号の説明】
【0081】
10…経路生成装置、1…環境地図情報読出部、2…経路探索部、3…経路整形部、4…経路修正部、5…経路平滑化部、6…記憶部、41…中継点必要箇所算出部、42…仮中継点設定部、43…検査パターン設定部、44…検査パターン移動方向算出部、45…検査パターン移動部、46…交差判定部、47…中継点決定部、48…経路点結線部、M…環境地図、Mb…障害物、OR…オリジナル経路、CR…整形経路、CRn,CRn+1…修正後の隣合う経路点、D…進行方向を示す矢印、MP…中点、Vdm…進行方向ベクトル、Vrd…右方向ベクトル、Vld…左方向ベクトル、EP…検査パターン、b…検査パターンの半径、EPm…検査パターンの中央、Rrj…再結線経路(修正経路)。