(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022018224
(43)【公開日】2022-01-27
(54)【発明の名称】情報処理装置と情報処理方法およびプログラム
(51)【国際特許分類】
G05D 1/02 20200101AFI20220120BHJP
G01C 21/34 20060101ALI20220120BHJP
G09B 29/00 20060101ALI20220120BHJP
G09B 29/10 20060101ALI20220120BHJP
【FI】
G05D1/02 J
G01C21/34
G09B29/00 Z
G09B29/10 A
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2020121176
(22)【出願日】2020-07-15
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100093241
【弁理士】
【氏名又は名称】宮田 正昭
(74)【代理人】
【識別番号】100101801
【弁理士】
【氏名又は名称】山田 英治
(74)【代理人】
【識別番号】100095496
【弁理士】
【氏名又は名称】佐々木 榮二
(74)【代理人】
【識別番号】100086531
【弁理士】
【氏名又は名称】澤田 俊夫
(74)【代理人】
【識別番号】110000763
【氏名又は名称】特許業務法人大同特許事務所
(72)【発明者】
【氏名】吉川 典史
(72)【発明者】
【氏名】福永 大輔
【テーマコード(参考)】
2C032
2F129
5H301
【Fターム(参考)】
2C032HC08
2C032HC17
2C032HD26
2F129AA03
2F129AA06
2F129BB19
2F129BB26
2F129BB40
2F129CC15
2F129CC16
2F129CC17
2F129DD03
2F129DD04
2F129FF02
2F129FF15
2F129FF17
2F129FF18
2F129FF20
2F129FF32
2F129FF57
2F129GG17
2F129HH18
2F129HH19
2F129HH21
2F129HH22
5H301AA01
5H301BB05
5H301CC03
5H301CC06
5H301CC10
5H301GG07
5H301GG09
5H301GG17
5H301KK03
5H301KK08
5H301KK19
(57)【要約】 (修正有)
【課題】移動体の通行可能領域が変化する環境で移動体の密度を高くしても、移動体を効率よく運用可能とする。
【解決手段】経路地図生成部33は、障害物が存在する環境において、移動体が移動可能な領域である移動可能領域の障害物間に、障害物から等しい距離の点群からなる境界線を設定して、障害物からの距離と障害物間を移動する移動体の大きさに応じて境界線に対して車線数を決定して、車線数情報を有する経路地図を生成する。また、経路地図生成部33は、移動可能領域が変化したとき、経路地図を更新する。経路計画部37は、経路地図に基づき、移動体の数が車線数情報で示された車線数を超えないように移動体毎の経路を計画する。移動体20は、経路計画部37で生成された経路計画に基づき移動タスクを実行する。移動体の通行可能領域が変化する環境でも複数の移動体を効率よく運用できる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
障害物が存在する環境において、移動体が移動可能な領域である移動可能領域の障害物間に、前記障害物のうち異なる2つの障害物から等しい距離の点群からなる境界線を設定して、前記障害物から前記境界線までの距離と前記環境を移動する移動体の大きさに応じて前記境界線に対して車線数を決定する経路地図生成部
を備える情報処理装置。
【請求項2】
前記車線数は、前記移動体が同時に通行可能な数に対応する
請求項1に記載の情報処理装置
【請求項3】
前記経路地図生成部は、前記移動可能領域に対してVoronoi領域分割を行い、前記境界線を設定する
請求項1に記載の情報処理装置。
【請求項4】
前記移動体の大きさは、移動方向に対して直交する移動体幅の最大値である
請求項1に記載の情報処理装置。
【請求項5】
前記移動体の大きさはマージンを含む
請求項1に記載の情報処理装置。
【請求項6】
前記経路地図生成部は、前記境界線と前記境界線に対して決定された車線数に基づき、車線数情報を有する経路地図を生成する
請求項1に記載の情報処理装置。
【請求項7】
前記経路地図生成部は、前記境界線の分岐点と端点、および前記車線数の変化点にノードを設定して、ノード間がエッジで結ばれたトポロジカルマップを前記経路地図として生成する
請求項1に記載の情報処理装置。
【請求項8】
前記経路地図生成部は、前記ノード間の距離が第1閾値よりも短い場合、前記ノード間の距離が閾値よりも短い2つのノードに替えて前記ノード間に新たな1つのノードを設定する
請求項6に記載の情報処理装置。
【請求項9】
前記経路地図生成部は、前記ノード間のエッジと境界線との最大離間距離が閾値よりも大きい場合、前記ノード間の境界線上にノードを新たに設定して、前記ノード間のエッジを前記新たに設定したノードを介したエッジに分割する
請求項6に記載の情報処理装置。
【請求項10】
前記経路地図生成部は、前記ノード間の距離が前記第1閾値よりも長い第2閾値よりも長い場合、前記ノード間の境界線上にノードを新たに設定して、前記ノード間のエッジを前記新たに設定したノードを介したエッジに分割する
請求項7に記載の情報処理装置。
【請求項11】
前記経路地図生成部は、前記境界線に対して決定した車線数を、前記境界線に対応するエッジの車線数情報とする
請求項6に記載の情報処理装置。
【請求項12】
前記経路地図生成部は、前記ノードに接続されているエッジの中で最小の車線数を前記ノードの車線数情報とする
請求項6に記載の情報処理装置。
【請求項13】
前記経路地図生成部は、前記境界線に対して決定された車線数と等しい数のエッジを設けて両端にノードを設定して、ノードとエッジの車線数が1である車線地図を前記経路地図として生成する
請求項6に記載の情報処理装置。
【請求項14】
前記経路地図生成部は、前記移動可能領域の変化に応じて前記経路地図を更新する
請求項5に記載の情報処理装置。
【請求項15】
前記車線数情報を有する経路地図を用いて前記移動体の経路を計画する経路計画部をさらに備える
請求項5に記載の情報処理装置。
【請求項16】
前記経路計画部は、移動体の数が前記車線数情報で示された車線数を超えないように移動体毎の経路を計画する
請求項14に記載の情報処理装置。
【請求項17】
前記経路地図生成部は、前記移動体の大きさとして、異なる複数の大きさの移動体に応じた基底車線幅を用いて前記車線数を決定して、
前記経路計画部は、前記異なる複数の大きさの移動体毎に占有する基底車線幅の車線数を用いて前記経路を計画する
請求項14に記載の情報処理装置。
【請求項18】
障害物が存在する環境において、移動体が移動可能な領域である移動可能領域の障害物間に、前記障害物のうち異なる2つの障害物から等しい距離の点群からなる境界線を設定することと、
前記障害物から前記境界線までの距離と前記環境を移動する移動体の大きさに応じて前記境界線に対して車線数を決定すること
を含む情報処理方法。
【請求項19】
前記決定された車線数に基づき、車線数情報を有する経路地図を生成することを含む
請求項18に記載の情報処理方法。
【請求項20】
経路地図の生成をコンピュータで実行させるプログラムであって、
障害物が存在する環境において、移動体が移動可能な領域である移動可能領域の障害物間に、前記障害物のうち異なる2つの障害物から等しい距離の点群からなる境界線を設定する手順と、
前記障害物から前記境界線までの距離と前記環境を移動する移動体の大きさに応じて前記境界線に対して車線数を決定する手順と、
前記境界線と前記境界線に対して決定された車線数に基づき、車線数情報を有する経路地図を生成する手順と
を前記コンピュータで実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この技術は、情報処理装置と情報処理方法およびプログラムに関し、移動体の通行可能領域が変化する環境で移動体の密度を高くしても、移動体を効率よく運用可能とする。
【背景技術】
【0002】
従来、移動体を用いたシステムが様々な目的、例えば物品の搬送、設備の点検、警備、などで用いられている。移動体が移動するためには、環境上の静的・動的障害物(他の移動ロボットも含む)に衝突しないように目的地まで到達する必要がある。そこで、例えば特許文献1では、複数のロボットが動作する任意の環境を示す地図の生成や更新と、環境内の1または複数のロボットよって使用されるデータの提供が、マネージャによって行われている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、既存の方法で生成される経路地図では、すれ違いが可能であるか判別できない。したがって、例えば狭い一本道を別の移動体が対向して近づいてくる場合や、直交する狭い交差点で別の移動体が出合い頭に真横から同時に交差点に進入してきた場合、2台の移動体が見合ったまま身動きが取れない状況(ストールともいう)となってしまう。
【0005】
そこで、この技術では、移動体の通行可能領域が変化する環境で移動体の密度を高くしても、移動体を効率よく運用可能とする情報処理装置と情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
この技術の第1の側面は、
障害物が存在する環境において、移動体が移動可能な領域である移動可能領域の障害物間に、前記障害物のうち異なる2つの障害物から等しい距離の点群からなる境界線を設定して、前記障害物から前記境界線までの距離と前記環境を移動する移動体の大きさに応じて前記境界線に対して車線数を決定する経路地図生成部
を備える情報処理装置にある。
【0007】
この技術において、経路地図生成部は、障害物が存在する環境において、移動体が移動可能な領域である移動可能領域に対して例えばVoronoi領域分割を行い、障害物から等しい距離の点群からなる境界線を障害物間に設定して、障害物からの距離と障害物間を移動する移動体の大きさに応じて境界線に対して車線数を決定して、境界線と境界線に対して決定された車線数に基づき、車線数情報を有する経路地図を生成する。車線数は、移動体が同時に通行可能な数に対応しており、移動体の大きさは、移動方向に対して直交する移動体幅の最大値であり、マージンを含んでもよい。
【0008】
経路地図生成部は、境界線の分岐点と端点、および車線数の変化点にノードを設定して、ノード間の距離が第1閾値よりも短い場合、ノード間の距離が閾値よりも短い2つのノードに替えてノード間に新たな1つのノードを設定する。また、経路地図生成部は、ノード間の距離が第1閾値よりも長い第2閾値よりも長い場合、ノード間の境界線上にノードを新たに設定して、ノード間のエッジを新たに設定したノードを介したエッジに分割する。さらに、経路地図生成部は、ノード間を結んだエッジと境界線との最大離間距離が閾値よりも大きい場合、ノード間の境界線上にノードを新たに設定して、ノード間のエッジを新たに設定したノードを介したエッジに分割する。経路地図生成部は、境界線に対して決定した車線数を、境界線に対応するエッジの車線数情報、ノードに接続されているエッジの中で最小の車線数をノードの車線数情報として、ノード間がエッジで結ばれており車線数情報を有するトポロジカルマップを経路地図として生成する。また、経路地図生成部は、境界線に対して決定された車線数の数だけエッジを設けて両端にノードを設定して、ノードとエッジの車線数が1である車線地図を経路地図として生成してもよい。経路地図生成部は、移動可能領域の変化に応じて経路地図を更新する。
【0009】
また、情報処理装置は、車線数情報を有する経路地図を用いて移動体の経路を計画する経路計画部をさらに備えて、経路計画部は、移動体の数が車線数情報で示された車線数を超えないように移動体毎の経路を計画する。また、経路地図生成部は、移動体の大きさとして、異なる複数の大きさの移動体に応じた基底車線幅を用いて車線数を決定して、経路計画部は、異なる複数の大きさの移動体毎に占有する基底車線幅の車線数を用いて経路を計画してもよい。
【0010】
この技術の第2の側面は、
障害物が存在する環境において、移動体が移動可能な領域である移動可能領域の障害物間に、前記障害物のうち異なる2つの障害物から等しい距離の点群からなる境界線を設定することと、
前記障害物から前記境界線までの距離と前記環境を移動する移動体の大きさに応じて前記境界線に対して車線数を決定すること
を含む情報処理方法にある。
【0011】
この技術の第3の側面は、
経路地図の生成をコンピュータで実行させるプログラムであって、
障害物が存在する環境において、移動体が移動可能な領域である移動可能領域の障害物間に、前記障害物のうち異なる2つの障害物から等しい距離の点群からなる境界線を設定する手順と、
前記障害物から前記境界線までの距離と前記環境を移動する移動体の大きさに応じて前記境界線に対して車線数を決定する手順と、
前記境界線と前記境界線に対して決定された車線数に基づき、車線数情報を有する経路地図を生成する手順と
を前記コンピュータで実行させるプログラムにある。
【0012】
なお、本技術のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、光ディスクや磁気ディスク、半導体メモリなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ上でプログラムに応じた処理が実現される。
【図面の簡単な説明】
【0013】
【
図1】移動体制御システムの構成を示した図である。
【
図3】経路地図の生成動作を例示したフローチャートである。
【
図5】Voronoi領域分割の分割結果を示した図である。
【
図6】車線数情報を付与した境界線を示した図である。
【
図7】処理4-1と処理4-3を行った場合の処理結果を示した図である。
【
図8】領域ARに対して処理4-4と処理4-5を行った場合を説明するための図である。
【
図9】処理4-4と処理4-5を行った場合の処理結果を示した図である。
【
図10】処理4-6と処理4-7を行った場合の処理結果を示した図である。
【
図11】車線地図の生成を説明するための図である。
【発明を実施するための形態】
【0014】
以下、本技術を実施するための形態について説明する。なお、説明は以下の順序で行う。
1.移動体制御システムの構成
2.移動体とサーバの構成
3.移動体とサーバの動作
3-1.経路地図の生成について
3-2.経路計画の生成について
3-3.経路地図と経路計画の生成の変形例について
3-4.車線地図の利用について
4.応用例
【0015】
<1.移動体制御システムの構成>
図1は、移動体制御システムの構成を示している。移動体制御システム10は、複数の移動体20とサーバ30を用いて構成されている。
【0016】
移動体制御システム10では、移動体20を用いて行う移動タスクをサーバ30で受け付けて、サーバ30は移動タスクを実行するための経路計画を生成して移動体20に提供する。移動体20は、サーバ30から供給された経路計画で示された経路を移動するように軌道を計画して移動タスクを実行する。
【0017】
移動タスクは、ロボットや無人搬送車(AGV:Automated Guided Vehicle)等である移動体20の移動を伴うタスクであり、移動タスクは、任意の移動体または所定の機能や能力を有する移動体、あるいは指定された移動体等で行う場合がある。また、移動タスクは、単にある地点に到達してタスクを行う(検査など)場合もあれば、更に別の地点への移動(搬送など)等を行う場合もある。
【0018】
サーバ30は、ユーザ等から入力された移動タスクを、どの移動体に割り当てるか(もしくは既存の割り当てを変更するか)を決めるタスク計画を行う。タスク計画は、特に限定することなく様々な手法を用いてもよい。例えば、任意の移動体を利用する場合には、移動タスクの目的地に最も近い空き移動体を選ぶ方法や、空き移動体がない場合は最も割り当てられているタスクが少ない移動体を選ぶ方法等を用いる。
【0019】
サーバ30は、移動タスクを割り当てる移動体を決定したら、その時点の経路地図を元に経路計画を生成する。経路地図とは、例えば環境に中間目的地候補となる中継ノード群と、直接通行可能な中継ノード間を結んだエッジ群で構成されたトポロジカルマップとして表現される。経路地図を用いる手法では、現在地と最終目的地の間で、どの中継ノードやエッジを経由するかを決定する経路計画を最初に行い、次ノードまでの移動を軌道計画によって行うことで、ノードを用いることなく現在地から最終目的地までの軌道を計算して移動する場合に比べて軌道の計算量を削減している。経路計画の手法としてはダイクストラアルゴリズムなどが用いられることが多い。経路計画は、他の移動体の経路計画を変えずに、対象の移動体の経路計画を追加する方法でもよく、他の移動体の経路計画の見直しを含めて全体の最適化を行ってもよい。
【0020】
<2.移動体とサーバの構成>
次に移動体(例えば無軌道の無人搬送車)とサーバの構成について説明する。
図2は、移動体とサーバの構成を例示している。
【0021】
移動体20は、センサ部21、周辺地図生成部22、自己位置推定部23、通信部24、軌道計画部25、駆動制御部26、駆動部27を有している。
【0022】
センサ部21は、外界センサと内界センサを有している。センサ部21の外界センサは、移動体の周辺環境に関する情報(例えば周囲の物体等に関する情報)を取得する。外界センサは、例えば測距センサ(LIDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)やTOF(Time Of Flight),ステレオカメラ等)が用いられる。外界センサは、周囲の物体までの距離を示すセンシングデータ(「測距データ」ともいう)を生成して周辺地図生成部22や自己位置推定部23へ出力する。また、センサ部21の内界センサは、移動体自身に関する情報(例えば移動体の位置や姿勢およびその変化等を示す情報)を取得する。内界センサは、例えば位置センサや角度センサ、加速度センサ、ジャイロセンサ等が用いられる。内界センサは、生成したセンシングデータ(「内界センシングデータ」ともいう)を自己位置推定部23へ出力する。
【0023】
周辺地図生成部22は、センサ部21で生成された測距データに基づき周辺に位置する物体等を示す地図情報を生成する。周辺地図生成部22は、生成した地図情報を通信部24と軌道計画部25へ出力する。
【0024】
自己位置推定部23は、センサ部21で生成された内界センシングデータあるいは内界センシングデータと外界センサで生成された測距データに基づき自己位置を推定して、推定した自己位置を示す自己位置情報を通信部24と軌道計画部25へ出力する。
【0025】
通信部24は、ネットワークに接続されてサーバ30と無線通信を行う。無線通信は、例えば、LTE、WCDMA(登録商標)、5Gなどのいずれかを使用するセルラ通信を含んでもよく、Wi-Fi、ブルートゥース(登録商標)などのいずれかを使用する近距離無線通信を含んでもよい。通信部24は、サーバ30と無線通信を行い、周辺地図生成部22で生成した地図情報や自己位置推定部23で推定した自己位置をサーバ30へ送信する。なお、移動体20は、通信部24から自己の大きさや性能等示す移動体情報をサーバ30へ送信してもよい。通信部24は、サーバ30から送信された情報、例えば経路計画を受信して軌道計画部25へ出力する。
【0026】
軌道計画部25は、サーバ30から供給された経路計画で示された経路を移動体20が移動するように、周辺地図生成部22で生成された地図情報と自己位置推定部23の推定結果を用いて、移動体20の軌道を計画する。経路計画では、後述するように、移動体の通行が可能な経路を示す経路地図と移動体に割り当てた移動タスクに基づいて、目的地までのノードが順に示されており、軌道計画部25は、現在地から最初のノードまでの軌道、現在のノードから次のノードまでの軌道を決定する。軌道計画部25は、軌道探索アルゴリズムとして例えばA*アルゴリズムやRRT(Rapidly-exploring Random Tree)アルゴリズムを用いて、移動体20の周辺環境の認識と、次のノードあるいは目的地に向けた軌道探索を行い、その時点での最適な移動速度や角速度等の決定を繰り返すことで、動的な障害物があっても衝突を回避して移動動作を行えるようにする。軌道計画部25は、決定した軌道を駆動制御部26へ出力する。
【0027】
駆動制御部26は、移動体20が軌道計画部25で決定した軌道を移動するように駆動信号を生成して駆動部27へ出力する。
【0028】
駆動部27は、車輪と駆動源(例えばモータ)等を用いて構成されており、駆動制御部26からの駆動信号に基づき駆動源で車輪を駆動して移動体20を移動させる。
【0029】
サーバ30は、通信部31、移動可能領域地図生成部32、経路地図生成部33、地図記憶部34、移動体情報記憶部35、タスク計画部36、経路計画部37を有している。
【0030】
通信部31は、移動体20の通信部24と無線通信を行うことができるように構成されている。無線通信は、上述のようにセルラ通信を含んでもよく、近距離無線通信を含んでもよい。通信部31は、移動体20と無線通信を行い、移動体20で生成された地図情報や推定された自己位置を示す自己位置情報を受信する。通信部31は、受信した地図情報や自己位置情報を移動可能領域地図生成部32へ出力する。また、通信部31は、移動体情報を受信して移動体情報記憶部35へ出力する。また、通信部31は経路計画部37で生成された経路計画を移動体20へ送信する。
【0031】
移動可能領域地図生成部32は、移動体20のそれぞれで生成された地図情報を統合して、環境全体で移動体20の通行が可能な領域を示す移動可能領域地図を生成する。移動可能領域地図生成部32は生成した移動可能領域地図を経路地図生成部33へ出力する。また、移動可能領域地図生成部32は、移動体と別個に設けられている外界センサで取得されたセンシングデータに基づいて移動可能領域地図を生成してもよく、外部機器等から予め生成されている移動可能領域地図を取得してもよい。さらに、移動可能領域地図生成部32は、移動可能領域の変化に応じて移動可能領域地図を更新する。例えば、移動可能領域地図生成部32は、障害物の設置や移動・撤去等によって移動体20の通行が可能な移動可能領域が変化したことを判別したとき移動可能領域地図を自動的に更新する。
【0032】
経路地図生成部33は、移動可能領域地図生成部32で生成された移動可能領域地図に基づいて、通路と通路幅に関した車線数情報を有する経路地図を生成する。なお、経路地図の生成の詳細については後述する。また、経路地図生成部33は、移動可能領域地図生成部32で移動可能領域が変化したことが判別されて移動可能領域地図が更新された場合に経路地図を自動的に更新する。
【0033】
地図記憶部34は、経路地図生成部33で生成された経路地図を記憶する。また、移動体情報記憶部35は、移動体毎の移動体情報を記憶する。移動体情報は、上述したように移動体20との通信によって取得してもよく、予めユーザが移動体情報を入力してもよい。
【0034】
タスク計画部36は、ユーザ等から行われた移動タスク要求を受け付けて、移動タスクを行う移動体を決定する。さらに、タスク計画部36は、移動体と移動体に割り当てた移動タスクを示すタスク割り当て情報を経路計画部37へ出力する。
【0035】
経路計画部37は、割り当てられた移動タスクを行うための経路計画を移動体毎に生成する。経路計画の生成では、経路地図生成部33で生成された経路地図で示されている通路と車線数情報に基づき、目的地までの経路を決定して、例えば移動経路上のノードを順に示したリストを生成する。また、経路計画部37は、複数の移動体で移動タスクを行う場合にシステム全体の移動効率が高くなるように経路を決定する。さらに、経路計画部37は、経路地図が更新された場合や新たなタスク割り当て情報が供給された場合、経路計画の更新処理を行う。例えば、経路計画部37は、移動経路の車線数情報が更新された場合や、新たに受け付けた移動タスクを行う移動体の移動経路の重複等を生じる場合、更新された車線数情報や他の移動体の経路等を考慮して新たな経路計画を生成する。経路計画部37は、移動体毎に生成した経路計画を対応する移動体20へ通信部31を介して送信する。
【0036】
<3.移動体とサーバの動作>
サーバは、障害物が存在する環境において、移動体が移動可能な領域である移動可能領域の障害物間に、障害物から等しい距離の点群からなる境界線を設定して、障害物からの距離と障害物間を移動する移動体の大きさに応じて境界線に対して車線数を決定する。また、サーバは、境界線と境界線に対して決定された車線数に基づき、車線数情報を有する経路地図を生成する。例えば、サーバは、境界線の分岐点と端点、および車線数の変化点にノードを設定して、ノード間がエッジで結ばれたトポロジカルマップを経路地図として自動的に生成する。
【0037】
また、サーバは、移動タスクを実行する移動体を選択して、選択した移動体に進行方向のノードを順次割り当てて通過したノードを解放すると共に、ノードやエッジでは決定されている車線数に応じて同時に存在する移動体の数を制限して経路計画を生成する。さらに、サーバは、経路地図が更新された場合、更新された経路地図と各移動体の現在地を元に改めて経路計画を生成する。サーバは生成した経路計画を移動体へ送信する。移動体は、サーバで生成された経路計画で示された経路を移動するように軌道を計画して移動タスクを実行する。
【0038】
<3-1.経路地図の生成について>
次に、車線数情報を有する経路地図の生成について説明する。
図3は、経路地図の生成動作を例示したフローチャートである。
【0039】
ステップST1で移動可能領域地図生成部は移動可能領域地図を生成する。移動可能領域地図生成部32は、例えば各移動体で生成された地図情報を統合して、環境全体で移動体の通行が可能な領域を示す移動可能領域地図を生成してステップST2に進む。なお、移動可能領域地図生成部32は、移動体と別個に設けられている外界センサで取得されたセンシングデータに基づき移動可能領域地図を生成してもよく、外部機器等から移動可能領域地図を取得してもよい。なお、
図4は、移動可能領域地図を例示しており、検出された障害物が線(あるいは点)で示されている。障害物とは、環境上に存在する物体を指し、例えばラックや段ボール箱、机、椅子といったものの他、人や自律移動ロボットなどの移動体も含む。また、壁や柱といった環境を区画する物体もこれに含まれる。
【0040】
ステップST2で経路地図生成部は移動可能領域の骨格を示す境界線を抽出する。経路地図生成部33は、ステップST1で生成された移動可能領域地図から移動可能領域の骨格を示す境界線を抽出する。骨格を示す境界線の抽出は、例えばVoronoi領域分割手法を用いる。2次元におけるVoronoi領域分割とは、平面上にあらかじめ点が複数配置されているとき、「最も近い点がどれか」によって平面を領域分割する手法である。経路地図生成部33は、移動可能領域全体に対してVoronoi領域分割を行い、異なる2つの障害物への距離が同じという特徴をもつ点群である境界線を、骨格を示す境界線として抽出してステップST3に進む。なお、
図5は、Voronoi領域分割の分割結果を示しており、
図4に示す移動可能領域地図を用いてステップST2の処理を行った場合である。
【0041】
ステップST3で経路地図生成部は車線数情報を生成する。経路地図生成部33は、ステップST2で抽出した境界線について、移動体が同時に通行可能な数に対応する車線数を示す車線数情報を生成する。例えば、骨格を示す境界線上の各点において、障害物までの距離Wが移動体の大きさの1/2倍(以下「サイズR」とする)よりも小さい場合、移動体は通行することができない。そこで、経路地図生成部33は、移動体が通行できない境界線を削除する。なお、移動体の大きさは、移動方向に対して直交する移動体幅の最大値である。また、移動体が無軌道のAGV(Automatic Guided Vehicle)等である場合、移動体幅は搬送する物品を含めたサイズである。さらに移動体の大きさにはマージンを含めてもよい。なお、搬送する物品を含めた移動体幅は、割り当てられた移動タスクによって判別することが可能であり、例えば移動タスクによってどのような物品を搬送するか明らかであれば、搬送する物品と移動体の形状等に基づいて移動体幅を算出できる。
【0042】
経路地図生成部33は、境界線が分離している場合、最も総距離が長い境界線のみを残して他を削除する。さらに、経路地図生成部33は、残っている境界線に対して車線数情報の生成を行う。経路地図生成部33は、例えば境界線から障害物までの距離WがサイズRのN倍以上で(N+1)倍よりも小さい場合、その境界線の車線数情報を車線数Nとする。経路地図生成部33は、生成した車線数情報を境界線に付与してステップST4に進む。
【0043】
図6は、車線数情報を付与した境界線を示しており、
図5に示すVoronoi領域分割の分割結果に対してステップST3の処理を行った場合である。
図6では、移動体が通行できない通路を示す境界線を削除して、残った境界線が分離している場合には最も総距離が長い境界線のみを残して他の境界線を削除している。なお、
図6では、車線数が「2」である境界線を太線、車線数が「1」である境界線を細線で示している。
【0044】
ステップST4で経路地図生成部はトポロジカルマップを生成する。経路地図生成部33は、車線数情報が付与された境界線に対してノードを付与して、ノード間をエッジで接続してトポロジカルマップを生成する。経路地図生成部33は、車線数情報が付与された境界線に対して以下の処理を行い、トポロジカルマップを生成する。
【0045】
・処理4-1.境界線の端点,分岐点,車線数の変化点にノードを設定する。
・処理4-2.ノード間の境界線に代えて、ノード間を直線で結ぶエッジを設定する。
【0046】
図7は、処理4-1と処理4-2を行った場合の処理結果を示しており、
図6に示す車線数情報を有する境界線に対して処理を行った場合である。
【0047】
・処理4-3.ノード間の距離が第1閾値Lth1よりも短い場合、ノード間の距離が閾値よりも短い2つのノードに替えてノード間に新たな1つのノードを設定することで、ノードまとめ処理を行う。なお、第1閾値Lth1は、2つのノードを1つにまとめても、移動体の移動経路の違いが所定量よりも少ない距離とする。
【0048】
・処理4-4.ノード間のエッジと境界線との最大離間距離が閾値DSthよりも大きい場合、ノード間の境界線上にノードを新たに設定して、ノード間のエッジを新たに設定したノードを介したエッジに分割する。
【0049】
・処理4-5.エッジ長が第2閾値Lth2(Lth1<Lth2)よりも長い場合、ノード間の境界線上にノードを新たに設定して、ノード間のエッジを新たに設定したノードを介したエッジに分割する。なお、第2閾値Lth2は、例えば移動体幅よりも少し大きな値として、移動経路を細かに設定できるようにする。
【0050】
図8は、
図7に示す領域ARに対して処理4-4と処理4-5を行った場合を説明するための図である。なお、
図8の(a)は処理前、
図8の(b)は処理後を示している。例えばノードNd1とノードNd2を結ぶエッジと境界線との最大離間距離が距離DSaで閾値DSthよりも大きい場合、ノードNd1とノードNd2との間の境界線上にノードNdaを新たに設定して、ノードNd1とノードNd2を結ぶエッジをノードNd1とノードNdaを結ぶエッジとノードNdaとノードNd2を結ぶエッジに分割する。また、ノードNd4とノードNd5を結ぶエッジと境界線との最大離間距離が距離DScで閾値DSthよりも大きい場合、ノードNd4とノードNd5との間の境界線上にノードNdcを新たに設定して、ノードNd4とノードNd5を結ぶエッジをノードNd4とノードNdcを結ぶエッジとノードNdcとノードNd5を結ぶエッジに分割する。
【0051】
また、例えばノードNd3とノードNd4を結ぶエッジが第2閾値Lth2よりも長い場合、ノードNd3とノードNd4との間の境界線上にノードNdbを新たに設定して、ノードNd3とノードNd4を結ぶエッジをノードNd3とノードNdbを結ぶエッジとノードNdbとノードNd4を結ぶエッジに分割する。同様に、ノードNd6とノードNd7を結ぶエッジ、ノードNd6とノードNd8を結ぶエッジが第2閾値Lth2よりも長い場合、ノードNd6とノードNd7との間およびノードNd6とノードNd8との間の境界線上にノードNdd,Ndeを新たに設定してノードの分割を行う。
【0052】
したがって、
図7の処理結果に対しては、処理4-4と処理4-5を行うと
図9の処理結果が得られる。
【0053】
・処理4-6.各エッジの車線数情報を、エッジに対応する境界線に対して決定した車線数Nとする。
・処理4-7.各ノードの車線数情報を、ノードに接続されているエッジの中で最小の車線数とする。
【0054】
図10は、
図9に示す処理結果に対して処理4-6と処理4-7を行った場合の処理結果を示している。
【0055】
経路地図生成部33は、ステップST1で生成された移動可能領域地図を用いてステップST2からステップST4の処理を行い、例えば
図10に示す車線数情報を有したトポロジカルマップを生成して、経路地図として地図記憶部34に記憶させる。
【0056】
<3-2.経路計画の生成について>
次に経路計画の生成について説明する。上述したように経路地図生成部33で生成されて地図記憶部34に記憶されている経路地図は、ノードとエッジで構成されているトポロジカルマップであり、エッジ長は一定距離以下になるように制限されたものである。また、経路地図では、各ノードに同時に何台の移動体が存在可能かを示す車線数情報が付与されている。
【0057】
経路計画部37は、経路地図生成部33で生成されたトポロジカルマップ(経路地図)を、時系列のステップ数だけ用いて経路計画の生成を行う。すなわち、時系列のトポロジカルマップの一つは、将来の時刻におけるトポロジカルマップを示しており、移動体は時系列の1つのステップの間に移動し続けることで、エッジで接続されている隣接ノードに移動できるとする。
【0058】
経路計画では、各時系列ステップのトポロジカルマップを時系列順に並べて、隣接するトポロジカルマップ間について、
・元のトポロジカルマップにおいて同じ位置に相当するノードについては、トポロジカルマップ間を新しいエッジで結ぶ。この場合、1つの時系列ステップの間に移動体は同じノードに待機することを示す。
・元のトポロジカルマップにおいてエッジで接続されている隣接ノードについても、トポロジカルマップ間を新しいエッジで結ぶ。この場合、1つの時系列ステップの間に隣接ノードに移動することを示す。
【0059】
このように、時間方向に隣接するトポロジカルマップ間を上述のようにエッジで結ぶことで、各時系列ステップでのトポロジカルマップが結合された時系列トポロジカルマップを構成できる。
【0060】
経路計画部37は、時系列トポロジカルマップ上で、1つの時系列ステップで必ず次の時系列ステップのトポロジカルマップのどこかのノードに移動するという制約を満たした形でノードを辿っていき、目的地となる位置のノードに到達する形式で経路計画を生成する。また、経路計画部37は、ノードやエッジに付与されている車線数情報で示された車線数を超えないように、移動体の数を制限して経路の設定を行い、通過したノードを解放する。
【0061】
新しい移動体の経路計画を追加する場合、最も簡易な方法として、例えば他の移動体の経路計画により車線数の上限に達している時系列トポロジカルマップ上のノードを除外して、1つの時系列ステップで必ず次の時系列ステップのトポロジカルマップのどこかのノードに移動するという制約を満たした経路を選択する。例えば、経路計画部37は、ダイクストラアルゴリズムで経路探索する際に、上記制約を満たす経路のみを探索対象として制限する。
【0062】
また、新たな移動体の経路計画を追加する際の別な方法として、改めて全移動体の経路計画をまとめてやり直してもよい。具体的には、「1つの時系列ステップで必ず次の時系列ステップのトポロジカルマップのどこかのノードに移動する」という制約条件と、「ある時系列トポロジカルマップのノード上に車線数以上の移動体が存在してはいけない」という制約を満たした経路計画を全探索等により選択する。例えば、経路計画部37は、文献「Optimal Multi-Robot Path Planning on Graphs:Complete Algorithms and Effective Heuristics, Jingjin Yu Steven M. LaValle, 2015」で示されている方法を用いる。
【0063】
経路計画部37は、生成した移動体毎の経路計画を対応する移動体へ送信して、移動体は、経路計画部37で生成された経路計画に基づき移動制御を行い、移動タスクを完了させる。
【0064】
このように、車線数情報を有する経路地図を生成すれば、障害物のレイアウトが動的に変化して移動体の通行可能領域が変化する環境でも、車線数情報を有する経路地図に基づき経路計画を生成することで、移動体を多く用いてもストール等を生じることなく移動タスクを処理できるようになる。また、車線数情報を有した経路地図が生成するだけでなく、移動可能領域の変化に応じて経路地図が自動的に更新されるので、障害物のレイアウトの変更に応じて経路地図を手動で再設定する必要がなく、低コストで効率のよい運用を容易に行うことができる。
【0065】
<3-3.経路地図と経路計画の生成の変形例について>
ところで、複数の移動体を用いる場合、異なる形状の移動体が用いられる場合もある。この場合、異なる形状の移動体の移動体情報は移動体情報記憶部35に記憶されており、異なる形状の移動体の幅から基底車線幅を決定して、基底車線幅を用いて車線数を算出する。さらに、経路計画では、異なる形状の移動体がそれぞれ占有する車線数に基づき、移動体の経路を計画する。この場合、車線数は、移動体が同時に通行可能な数に対応しているが、移動体のそのものの数を常に示すものではなく、基底車線幅を用いて算出した車線数は、後述するように同時に通行可能な移動体の数を算出可能とするための数として用いられる。
【0066】
次に、移動体制御システム10で例えば3種類の移動体MOa,MOb,MOcを用いる場合について説明する。移動体MOaの移動体幅MWa,移動体MObは移動体幅MWb、移動体MOcは移動体幅MWcであり、移動体MOaの移動時に必要なマージンを幅ma、移動体MObの移動時に必要なマージンを幅mb、移動体MOcの移動時に必要なマージンを幅mcとする。なお、移動体幅は上述のように搬送する物品を含めたサイズとする。この場合、移動体MOaの移動時には幅(MWa+ma)が占有される。同様に、移動体MObの移動時には幅(MWb+mb)、移動体MOcの移動時には幅(MWc+mc)が占有される。したがって、式(1)と式(2)と式(3)を満たす基底車線幅BWを算出する。なお、占有車線数Ka,Kb,Kcは自然数であり、マージンの幅ma,mb,mcは基底車線幅BWよりも小さい値である。
MWa+ma=Ka×BW ・・・(1)
MWb+mb=Kb×BW ・・・(2)
MWc+mc=Kc×BW ・・・(3)
【0067】
例えば、幅(MWa+ma)=40cm、幅(MWb+mb)=60cm、幅(MWc+mc)=100cmである場合、各幅の最大公約数である20cmを基底車線幅BWとする。この場合、移動体MOaの移動では2ライン(Ka=2)、移動体MObの移動では3ライン(Kb=3)、移動体MOcの移動では5ライン(Kc=5)を占有する。
【0068】
経路地図生成部33は、異なる形状の移動体が用いられる場合、移動体情報記憶部35に記憶されている移動体毎の移動体情報に基づいて決定した基底車線幅BWを基準として各ノードの車線数を算出する。具体的には、
図3のステップST3において、基底車線幅BWの1/2倍をサイズRとして車線数Nを算出する。
【0069】
経路計画部37は、異なる形状の移動体が用いられる場合、移動体毎に占有車線数を設定して、いずれのタイミングにおいても各ノードでの総占有車線数が車線数を超えないように経路計画を生成する。
【0070】
具体的には、上述のように基底車線幅BWは20cm、移動体MOaの占有車線数は2ライン(Ka=2)、移動体MObの占有車線数は3ライン(Kb=3)、移動体MOcの占有車線数は5ラインとする。この場合、車線数が6ラインであるノードには、3台の移動体MOa(総占有車線数=2×3ライン)、2台の移動体MOb(総占有車線数=3×2ライン)、または1台の移動体MOc(総占有車線数=1×5ライン)、あるいは1台の移動体MOaと1台の移動体MOb(総占有車線数=2+3ライン)が存在可能となる。しかし、移動体MOcと他の移動体MOa,MObは同時に存在することができない(総占有車線数>6ライン)。したがって、経路計画部37は、ノードの車線数を超えないように、移動体毎の占有車線数に基づき経路を設定する。例えば、新たに移動体MObの経路計画を行う場合、移動体MObの占有車線数が3ラインであるときは、車線数の空きが2以下であるノードを除外して経路の探索を行い、経路計画を生成する。
【0071】
<3-4.車線地図の利用について>
ところで、上述の実施の形態では、車線数情報がノードとエッジに付与されたトポロジカルマップを経路地図として生成する場合を示したが、車線数と等しい数のエッジを設けて両端にノードを設定して、ノードとエッジの車線数が1である車線地図を経路地図として用いて経路計画を生成することもできる。
【0072】
車線地図の生成では次の処理を行う。
・処理5-1.車線数Nのエッジの両端ノードの近傍にそれぞれ新しいN個のノード(以下「WP:way point」と呼ぶ)を生成し、WP間をエッジで結び車線数を「1」とする。
・処理5-2.WP同士をメッシュ状にエッジで結び(総当たりでエッジで結び)車線数を「1」とする。
【0073】
図11は、車線地図の生成を説明するための図であり、
図11の(a)は、車線数情報がノードとエッジに付与されたトポロジカルマップを例示しており、
図11の(b)は、トポロジカルマップに対応した車線地図を例示している。ノードとエッジに車線数情報が付与されているトポロジカルマップに対して処理5-1と処理5-2を行うと、WPとエッジの車線数が「1」である車線地図を生成できる。
【0074】
図12は、
図10に示す経路地図を用いて生成した車線地図を示しており、経路地図の車線数情報で車線数が「1」である通路には1本のエッジ、車線数が「2」である通路には2本のエッジが設けられている。
【0075】
経路計画部37は、車線数情報を有する経路地図を用いた場合と同様にして、車線地図を用いて経路を計画する。
【0076】
経路計画部37は、経路地図に基づいて経路計画を生成する場合(車線地図を用いない場合)、車線数NのノードをN台以下の移動体が通行可能として経路が決定されるため、N台以下の移動体の並走やすれ違いに必要とされるスペースがあることが保証されている。しかし、実際の並走やすれ違いでは、移動体の軌道計画によって接触や衝突が生じないように制御する必要がある。例えば、すれ違いを生じる場合、移動体は通路の中央を通行中に他の移動体の存在を検知したとき、減速や方向転換による衝突回避動作を行う必要があり、移動速度の低下等を招く。
【0077】
しかし、経路計画部37は、車線地図に基づいて経路計画を生成する場合、並走やすれ違いが可能なように、各移動体が通行する車線を指定できる。したがって、移動体は、軌道計画によって接触や衝突が生じないように減速動作や回避動作を行う場合が少なくなり、車線地図を用いていない経路計画に比べて移動速度の低下等が少なく、効率よく移動タスクを処理できる。
【0078】
<4.応用例>
本開示に係る技術は、様々な分野へ適用することができる。例えば、本開示に係る技術は、自動車、電気自動車、ハイブリッド電気自動車、自動二輪車、自転車、パーソナルモビリティ、船舶、ロボット等のいずれかの種類の移動体に搭載される装置として実現されてもよい。また、工場における生産工程で用いられる機器や建設分野で用いられる機器、農業や林業等で用いられる機器に搭載される装置として実現されてもよい。このような分野に適用すれば、移動体の通行可能領域が作業状況に応じて変化する環境でも、複数の機器を用いて効率よく作業等を行うことが可能となる。
【0079】
明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0080】
例えば、プログラムは記録媒体としてのハードディスクやSSD(Solid State Drive)、ROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、BD(Blu-Ray Disc(登録商標))、磁気ディスク、半導体メモリカード等のリムーバブル記録媒体に、一時的または永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【0081】
また、プログラムは、リムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトからLAN(Local Area Network)やインターネット等のネットワークを介して、コンピュータに無線または有線で転送してもよい。コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0082】
なお、本明細書に記載した効果はあくまで例示であって限定されるものではなく、記載されていない付加的な効果があってもよい。また、本技術は、上述した技術の実施の形態に限定して解釈されるべきではない。この技術の実施の形態は、例示という形態で本技術を開示しており、本技術の要旨を逸脱しない範囲で当業者が実施の形態の修正や代用をなし得ることは自明である。すなわち、本技術の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【0083】
また、本技術の情報処理装置は以下のような構成も取ることができる。
(1) 障害物が存在する環境において、移動体が移動可能な領域である移動可能領域の障害物間に、前記障害物のうち異なる2つの障害物から等しい距離の点群からなる境界線を設定して、前記障害物から前記境界線までの距離と前記環境を移動する移動体の大きさに応じて前記境界線に対して車線数を決定する経路地図生成部
を備える情報処理装置。
(2) 前記車線数は、前記移動体が同時に通行可能な数に対応する(1)に記載の情報処理装置。
(3) 前記経路地図生成部は、前記移動可能領域に対してVoronoi領域分割を行い、前記境界線を設定する(1)または(2)に記載の情報処理装置。
(4) 前記移動体の大きさは、移動方向に対して直交する移動体幅の最大値である(1)乃至(3)のいずれかに記載の情報処理装置。
(5) 前記移動体の大きさは、マージンを含む(1)乃至(4)のいずれかに記載の情報処理装置。
(6) 前記経路地図生成部は、前記境界線と前記境界線に対して決定された車線数に基づき、車線数情報を有する経路地図を生成する(1)乃至(5)のいずれかに記載の情報処理装置。
(7) 前記経路地図生成部は、前記境界線の分岐点と端点、および前記車線数の変化点にノードを設定して、ノード間がエッジで結ばれたトポロジカルマップを前記経路地図として生成する(1)乃至(6)のいずれかに記載の情報処理装置。
(8) 前記経路地図生成部は、前記ノード間の距離が第1閾値よりも短い場合、前記ノード間の距離が閾値よりも短い2つのノードに替えて前記ノード間に新たな1つのノードを設定する(7)に記載の情報処理装置。
(9) 前記経路地図生成部は、前記ノード間のエッジと境界線との最大離間距離が閾値よりも大きい場合、前記ノード間の境界線上にノードを新たに設定して、前記ノード間のエッジを前記新たに設定したノードを介したエッジに分割する(7)または(8)に記載の情報処理装置。
(10) 前記経路地図生成部は、前記ノード間の距離が前記第1閾値よりも長い第2閾値よりも長い場合、前記ノード間の境界線上にノードを新たに設定して、前記ノード間のエッジを前記新たに設定したノードを介したエッジに分割する(8)または(9)のいずれかに記載の情報処理装置。
(11) 前記経路地図生成部は、前記境界線に対して決定した車線数を、前記境界線に対応するエッジの車線数情報とする(7)乃至(10)のいずれかに記載の情報処理装置。
(12) 前記経路地図生成部は、前記ノードに接続されているエッジの中で最小の車線数を前記ノードの車線数情報とする(7)乃至(11)のいずれかに記載の情報処理装置。
(13) 前記経路地図生成部は、前記境界線に対して決定された車線数と等しい数のエッジを設けて両端にノードを設定して、ノードとエッジの車線数が1である車線地図を前記経路地図として生成する(7)乃至(10)のいずれかに記載の情報処理装置。
(14) 前記経路地図生成部は、前記移動可能領域の変化に応じて前記経路地図を更新する(6)乃至(13)のいずれかに記載の情報処理装置。
(15) 前記車線数情報を有する経路地図を用いて前記移動体の経路を計画する経路計画部をさらに備える(6)乃至(14)のいずれかに記載の情報処理装置。
(16) 前記経路計画部は、移動体の数が前記車線数情報で示された車線数を超えないように移動体毎の経路を計画する(15)に記載の情報処理装置。
(17) 前記経路地図生成部は、前記移動体の大きさとして、異なる複数の大きさの移動体に応じた基底車線幅を用いて前記車線数を決定して、
前記経路計画部は、前記異なる複数の大きさの移動体毎に占有する基底車線幅の車線数を用いて前記経路を計画する(15)または(16)に記載の情報処理装置。
【符号の説明】
【0084】
10・・・移動体制御システム
20・・・移動体
21・・・センサ部
22・・・周辺地図生成部
23・・・自己位置推定部
24,31・・・通信部
25・・・軌道計画部
26・・・駆動制御部
27・・・駆動部
30・・・サーバ
32・・・移動可能領域地図生成部
33・・・経路地図生成部
34・・・地図記憶部
35・・・移動体情報記憶部
36・・・タスク計画部
37・・・経路計画部