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

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

▶ オムロン株式会社の特許一覧

特開2024-3200情報処理装置、情報処理方法及びコンピュータプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024003200
(43)【公開日】2024-01-11
(54)【発明の名称】情報処理装置、情報処理方法及びコンピュータプログラム
(51)【国際特許分類】
   G05D 1/43 20240101AFI20231228BHJP
【FI】
G05D1/02 P
G05D1/02 S
G05D1/02 H
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023194527
(22)【出願日】2023-11-15
(62)【分割の表示】P 2021182662の分割
【原出願日】2021-11-09
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】広橋 佑紀
(72)【発明者】
【氏名】成瀬 洋介
(72)【発明者】
【氏名】田▲崎▼ 博
(57)【要約】
【課題】移動可能なロボットの集団を効率よく管理できるデータ構造を出力する情報処理装置を提供する。
【解決手段】情報処理装置10は、移動可能なロボットの通行可能な領域と通行不可能な領域とが区別されたマップ及びロボットの大きさに関する情報とを取得する取得部101と、マップの通行可能な領域をロボットの走行方向が定まる第1の領域とロボットの走行方向が定まらない第2の領域とに分け、ロボットの大きさに関する情報を用いて、第1の領域の情報として第1の領域における前記ロボットの擦れ違い可否情報を、第2の領域の情報としてロボットが同時に存在できる台数の情報を格納した所定のデータ構造を生成する処理部102と、処理部102が生成したデータ構造を出力する出力部103と、を備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
移動可能なロボットの通行可能な領域と通行不可能な領域とが区別されたマップ及び前記ロボットの大きさに関する情報とを取得し、
前記マップの前記通行可能な領域を前記ロボットの走行方向が定まる第1の領域と前記ロボットの走行方向が定まらない第2の領域とに分け、前記第2の領域においては領域のみで示された走行経路を前記ロボットに指示するとともに、前記ロボット同士の干渉回避を自律制御に任せるよう前記ロボットに指示する、
情報処理装置。
【請求項2】
前記プロセッサは、前記ロボットのキネマティクス又はダイナミクスを考慮して前記ロボットの経路計画を策定する、請求項1に記載の情報処理装置。
【請求項3】
前記キネマティクス又はダイナミクスは、前記ロボットが直進では速く走行し、曲がる際には遅く走行する特性である、請求項2に記載の情報処理装置。
【請求項4】
前記プロセッサは、前記第1の領域においては前記ロボットが通行する経路を前記ロボットに指示する、請求項1又は請求項2に記載の情報処理装置。
【請求項5】
プロセッサが、
移動可能なロボットの通行可能な領域と通行不可能な領域とが区別されたマップ及び前記ロボットの大きさに関する情報とを取得し、
前記マップの前記通行可能な領域を前記ロボットの走行方向が定まる第1の領域と前記ロボットの走行方向が定まらない第2の領域とに分け、前記第2の領域においては領域のみで示された走行経路を前記ロボットに指示するとともに、前記ロボット同士の干渉回避を自律制御に任せるよう前記ロボットに指示する、
処理を実行する、情報処理方法。
【請求項6】
コンピュータに、
移動可能なロボットの通行可能な領域と通行不可能な領域とが区別されたマップ及び前記ロボットの大きさに関する情報とを取得し、
前記マップの前記通行可能な領域を前記ロボットの走行方向が定まる第1の領域と前記ロボットの走行方向が定まらない第2の領域とに分け、前記第2の領域においては前記ロボットが通行すべき大まかな領域を前記ロボットに指示するとともに、前記ロボット同士の干渉回避を自律制御に任せるよう前記ロボットに指示する、
処理を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
所定のマップを用いてモバイルロボットの移動計画を生成するための技術が提案されている。例えば特許文献1には、環境内の物体の幾何マップを用いて、位置姿勢を確率的に表した物体が占有する空間の分布を表したグリッドマップを生成し、グリッドマップから、物体の位置姿勢の不確実性に応じた距離を用いてボロノイグラフを生成して、ボロノイグラフの上で物体との衝突可能性と経路長をコストとして、与えられた出発点から目的地へ向かう経路の探索を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005-32196号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来技術では環境内の物体の幾何マップを用いてモバイルロボットの移動計画を生成しているが、複数のモバイルロボットについての移動計画は考慮されていない。モバイルロボットの集団を混雑なく管理するため、幾何マップ中に一方通行エリア又は台数制限エリアを設けて、予めモバイルロボットの回避経路を形成するが、回避経路の適切な設定には、人手による工数がかかり、非効率となっている。
【0005】
本発明は、上記の点に鑑みてなされたものであり、従来技術と比較して移動可能なロボットの集団を効率よく管理できるデータ構造を出力する情報処理装置、情報処理方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明に係る情報処理装置は、移動可能なロボットの通行可能な領域と通行不可能な領域とが区別されたマップ及び前記ロボットの大きさに関する情報とを取得する取得部と、前記マップの前記通行可能な領域を前記ロボットの走行方向が定まる第1の領域と前記ロボットの走行方向が定まらない第2の領域とに分け、前記ロボットの大きさに関する情報を用いて、前記第1の領域の情報として前記第1の領域における前記ロボットの擦れ違い可否情報を、前記第2の領域の情報として前記ロボットが同時に存在できる台数の情報を格納した所定のデータ構造を生成する処理部と、前記データ生成部が生成した前記データ構造を出力する出力部と、を備える。これにより、移動可能なロボットの集団を効率よく管理できるデータ構造を出力できる。
【0007】
前記処理部は、前記第1の領域又は前記第2の領域における前記ロボットの移動に対する制限に関する情報を前記データ構造に格納してもよい。これにより、ロボットの移動に対する制限に関する情報を出力できる。
【0008】
前記取得部は、ユーザにより入力された前記制限に関する情報を取得してもよい。これにより、ユーザにより入力された制限に関する情報を出力できる。
【0009】
前記処理部は、前記第2の領域の情報として、前記第2の領域の面積の情報を前記データ構造に格納してもよい。これにより、ロボットの走行方向が定まらない領域の面積の情報を出力できる。
【0010】
前記処理部は、前記第1の領域に関する情報として、前記ロボットの進行方向に関する情報を前記データ構造に格納してもよい。これにより、ロボットの進行方向に関する情報を出力できる。
【0011】
前記処理部は、前記通行可能な領域から前記第2の領域を抽出し、抽出した前記第2の領域を除いた前記通行可能な領域から前記第1の領域を抽出してもよい。これにより、ロボットの走行方向が定まらない領域ではない領域をロボットの走行方向が定まる領域とすることができる。
【0012】
前記取得部は、前記ロボットの機種ごとに異なる前記ロボットの大きさに関する情報を取得してもよい。これにより、ロボットの大きさに関する情報に基づいてデータ構造を出力できる。
【0013】
前記データ構造に格納された情報を反映した前記マップを表示させる表示制御部をさらに備えてもよい。これにより、データ構造に格納された情報を視覚的にマップ上に提示できる。
【0014】
前記処理部は、前記データ構造に格納された情報に基づいた前記ロボットの経路計画を生成してもよい。これにより、データ構造に格納された情報からロボットの経路計画を生成できる。
【0015】
上記目的を達成するために、本発明に係る情報処理方法は、移動可能なロボットの通行可能な領域と通行不可能な領域とが区別されたマップ及び前記ロボットの大きさに関する情報とを取得し、前記マップの前記通行可能な領域を前記ロボットの走行方向が定まる第1の領域と前記ロボットの走行方向が定まらない第2の領域とに分け、前記ロボットの大きさに関する情報を用いて、前記第1の領域の情報として前記第1の領域における前記ロボットの擦れ違い可否情報を、前記第2の領域の情報として前記ロボットが同時に存在できる台数の情報を格納した所定のデータ構造を生成し、生成した前記データ構造を出力する。これにより、移動可能なロボットの集団を効率よく管理できるデータ構造を出力できる。
【0016】
上記目的を達成するために、本発明に係るコンピュータプログラムは、コンピュータに、移動可能なロボットの通行可能な領域と通行不可能な領域とが区別されたマップ及び前記ロボットの大きさに関する情報とを取得し、前記マップの前記通行可能な領域を前記ロボットの走行方向が定まる第1の領域と前記ロボットの走行方向が定まらない第2の領域とに分け、前記ロボットの大きさに関する情報を用いて、前記第1の領域の情報として前記第1の領域における前記ロボットの擦れ違い可否情報を、前記第2の領域の情報として前記ロボットが同時に存在できる台数の情報を格納した所定のデータ構造を生成し、前記第1の領域の情報及び前記第2の領域の情報を格納した所定のデータ構造を生成し、生成した前記データ構造を出力する、処理を実行させる。これにより、移動可能なロボットの集団を効率よく管理できるデータ構造を出力できる。
【発明の効果】
【0017】
本発明によれば、移動可能なロボットの大きさの情報を用いることで従来技術と比較して移動可能なロボットの集団を効率よく管理できるデータ構造を出力する情報処理装置、情報処理方法及びコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【0018】
図1】実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
図2】情報処理装置の機能構成の例を示すブロック図である。
図3】情報処理装置による情報処理の流れを示すフローチャートである。
図4】情報処理装置による情報処理の流れを示すフローチャートである。
図5】情報処理装置がマップからオープンスペース及びエッジを抽出する様子を示す図である。
図6】情報処理装置がマップからオープンスペース及びエッジを抽出する様子を示す図である。
図7】情報処理装置が生成するデータ構造の例を示す図である。
図8】情報処理装置がマップからオープンスペース及びエッジを抽出する様子を示す図である。
図9】情報処理装置が生成するデータ構造の例を示す図である。
図10A】情報処理装置によって生成されたデータ構造に基づいたマップの表現例を示す図である。
図10B】情報処理装置によって生成されたデータ構造に基づいたマップの表現例を示す図である。
図10C】情報処理装置によって生成されたデータ構造に基づいたマップの表現例を示す図である。
図10D】情報処理装置によって生成されたデータ構造に基づいたマップの表現例を示す図である。
図11】情報処理装置がディスプレイに表示するユーザインターフェイスの例を示す図である。
図12A】マップ情報をデータドリブンに抽出する場合の処理を説明する図である。
図12B】マップ情報をデータドリブンに抽出する場合の処理を説明する図である。
図12C】マップ情報をデータドリブンに抽出する場合の処理を説明する図である。
図12D】マップ情報をデータドリブンに抽出する場合の処理を説明する図である。
図13】情報処理装置が生成するデータ構造の例を示す図である。
図14】情報処理装置がディスプレイに表示するユーザインターフェイスの例を示す図である。
図15】モバイルロボットの運行計画の作成のバリエーションを説明する図である。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0020】
図1は、本実施形態に係る情報処理装置10のハードウェア構成を示すブロック図である。本実施形態に係る情報処理装置10は、移動可能なロボットの通行可能な領域と通行不可能な領域とが区別されたマップ及びロボットの大きさに関する情報とに基づいて、所定のデータ構造を生成して出力する装置である。本実施形態に係る情報処理装置10は、係るデータ構造を生成して出力することで、移動可能なロボットの集団を効率よく管理することができる。なお、本実施形態において制御対象とするロボットは、AMR(Autonomous Mobile Robot、自律走行搬送ロボット)である。
【0021】
図1に示すように、情報処理装置10は、メモリ11、CPU(Central Processing Unit)12、ビデオアダプタ13、シリアルポートインターフェイス14、ハードディスクドライブインターフェイス15、及びハードディスクドライブ16を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0022】
メモリ11は、例えばROM(Read Only Memory)及びRAM(Random Access Memory)等からなる記憶領域である。ROMは、各種プログラムおよび各種データを格納する。RAMは、作業領域として一時的にプログラムまたはデータを記憶する。
【0023】
CPU12は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU12は、メモリ11のROMまたはハードディスクドライブ16からプログラムを読み出し、メモリ11のRAMを作業領域としてプログラムを実行する。CPU12は、メモリ11のROMまたはハードディスクドライブ16に記録されているプログラムにしたがって、上記各構成の制御および各種の演算処理を行う。本実施形態では、メモリ11のROMまたはハードディスクドライブ16には所定のデータ構造を生成して出力する情報処理プログラムが格納されている。
【0024】
ビデオアダプタ13は、ディスプレイ20と接続される。ビデオアダプタ13は、ディスプレイ20に表示する各種の情報をディスプレイ20へ出力する。ディスプレイ20は、液晶ディスプレイ、有機ELディスプレイ等の種々の情報表示装置である。
【0025】
シリアルポートインターフェイス14は、マウス30及びキーボード40と接続される。シリアルポートインターフェイス14は、ユーザがマウス30及びキーボード40を操作して入力した内容をCPU12に出力する。
【0026】
ハードディスクドライブ16は、オペレーティングシステムを含む各種プログラム、および各種データを格納する。ハードディスクドライブ16は、ハードディスクドライブインターフェイス15を通じてデータ及びプログラムの読み書きが行われる。
【0027】
上記の情報処理プログラムを実行する際に、情報処理装置10は、上記のハードウェア資源を用いて、各種の機能を実現する。情報処理装置10が実現する機能構成について説明する。
【0028】
図2は、情報処理装置10の機能構成の例を示すブロック図である。
【0029】
図2に示すように、情報処理装置10は、機能構成として、取得部101、処理部102、出力部103、表示制御部104及び保持部105を有する。各機能構成は、CPU12がメモリ11のROMまたはハードディスクドライブ16に記憶された情報処理プログラムを読み出し、実行することにより実現される。
【0030】
取得部101は、移動可能なロボット(以下モバイルロボットとも称する)の通行可能な領域と通行不可能な領域とが区別されたマップ及びモバイルロボットの大きさに関する設定情報111とを取得する。マップは、例えばモバイルロボットが通行不可能な障害物を座標系列で表現したマップ、通行可能な領域と通行不可能な領域とをビットで表現したマップ、Lidar(Light Detection And Ranging、光による検知と測距)で取得された点群情報からなるマップ、等がある。
【0031】
処理部102は、取得部101が取得した情報に基づいて所定のデータ構造を生成する。具体的には、処理部102は、取得部101が取得したマップ上のモバイルロボットが通行可能な領域を、エッジとオープンスペースとに分ける。エッジは、モバイルロボットの走行方向が定まる領域であり、本発明の第1の領域の一例である。オープンスペースは、モバイルロボットの走行方向が定まらない領域であり、本発明の第2の領域の一例である。
【0032】
処理部102は、モバイルロボットの大きさに関する情報を用いて、エッジの情報として、当該エッジにおけるモバイルロボットの擦れ違い又は追い抜きの可否を定める擦れ違い可否情報を定める。処理部102は、エッジの擦れ違い可否情報として、エッジの離合条件の情報をデータ構造に格納する。エッジの離合条件は、複数のモバイルロボットが互いに擦れ違える制約条件である。エッジの離合条件の情報は、例えば、モバイルロボットが同時に並行できる台数、又は擦れ違える台数の情報で表される。当該台数の情報は、例えばモバイルロボットが通行する車線の数という形式で表現されてもよい。すなわち、車線が1つだけの場合は同時に並行できない、又は擦れ違えないエッジであり、車線が2つ以上の場合は同時に並行できる、又は擦れ違えるエッジである。また、エッジの離合条件の情報は、最も幅が狭い部分の道幅の情報で表されてもよい。また処理部102は、オープンスペースの情報としてモバイルロボットが同時にそのオープンスペースに存在できる台数の情報をデータ構造に格納する。そして処理部102は、係る情報が格納されたデータ構造を生成する。
【0033】
処理部102は、マップの通行可能な領域からオープンスペースを抽出し、抽出したオープンスペースを除いた通行可能な領域からエッジを抽出する。具体的なオープンスペース及びエッジの抽出方法については後に詳述する。
【0034】
処理部102は、エッジ又はオープンスペースにおけるモバイルロボットの移動に対する制限に関する情報をデータ構造に格納してもよい。モバイルロボットの移動に対する制限に関する情報は、取得部101によって取得されてもよい。また、処理部102は、オープンスペースの情報として、オープンスペースの面積の情報をデータ構造に格納してもよい。また、処理部102は、エッジに関する情報として、モバイルロボットの進行方向に関する情報をデータ構造に格納してもよい。データ構造に格納された情報の具体例は後に詳述する。
【0035】
処理部102は、生成したデータ構造に基づいて、モバイルロボットの移動計画を生成する処理を実行してもよい。データ構造に基づいたモバイルロボットの移動計画の生成については後に詳述する。
【0036】
処理部102は、擦れ違い可否情報を、エッジの領域中の進行方向に対して定められる最も狭い道幅に基づいて算出してもよい。処理部102は、オープンスペースの容量を、オープンスペースの形状に基づいて算出してもよい。また、処理部102は、擦れ違い可否情報及びオープンスペース容量を、スループットが向上するように走行シミュレーションによって求めても良い。本実施形態において、スループットとは、モバイルロボットの稼働効率をいう。また、処理部102は、擦れ違い可否情報及びオープンスペース容量を、スループットが向上するように実際にモバイルロボットを走行させて、モバイルロボットの走行により得られたデータを用いて求めても良い。
【0037】
出力部103は、処理部102が生成したデータ構造を出力する。出力部103によって出力されたデータ構造は保持部105に格納され得る。表示制御部104は、ユーザインターフェイスをディスプレイ20に表示する制御を行う。より詳細には、表示制御部104は、出力部103が出力したデータ構造を反映させたユーザインターフェイスをディスプレイ20に表示する制御を行う。表示制御部104によってディスプレイ20に表示されるユーザインターフェイスの例は後述する。保持部105は、モバイルロボットが移動する場所のマップ112を保持する。
【0038】
本発明の実施形態に係る情報処理装置10は、係る構成を有することで、移動可能なロボットの大きさの情報を用いたデータ構造を出力することができる。本発明の実施形態に係る情報処理装置10は、移動可能なロボットの大きさの情報を用いることで、従来技術と比較して、移動可能なロボットの集団を効率よく管理するためのデータ構造を出力することができる。
【0039】
次に、情報処理装置10の作用について説明する。
【0040】
図3は、情報処理装置10による情報処理の流れを示すフローチャートである。CPU12がメモリ11のROMまたはハードディスクドライブ16に記憶された情報処理プログラムを読み出して、メモリ11のRAMに展開して実行することにより、情報処理が行なわれる。
【0041】
図3に示したフローチャートは、情報処理装置10がデータ構造を出力する処理のフローチャートである。CPU12は、まずステップS101において、データ構造の出力のために設定情報の入力を受け付ける。設定情報の入力は、所定のユーザインターフェイスによって行われ得る。ユーザインターフェイスの詳細については後述する。ステップS101においてCPU12が受け付ける設定情報は、モバイルロボットの大きさに関する情報を含む情報である。モバイルロボットの大きさに関する情報には、例えばモバイルロボットの形状が円形であれば当該モバイルロボットの半径の情報、モバイルロボットの形状が円形でなければ当該モバイルロボットの外接円の半径の情報がある。また、CPU12は、モバイルロボットと、モバイルロボットが通行する通路の壁との間のバッファ距離の情報を受け付けてもよい。
【0042】
設定情報の入力を受け付けると、続いてCPU12は、ステップS102において、モバイルロボットが通行可能な領域の中から、オープンスペースの候補点を、所定の抽出手法に基づいて抽出する。オープンスペースの候補点の抽出手法の具体例は後述する。
【0043】
オープンスペースの候補点を抽出すると、続いてCPU12は、ステップS103において、抽出した候補点からオープンスペースを、所定の選択手法に基づいて選択する。オープンスペースは複数選択され得る。オープンスペースの選択手法の具体例は後述する。
【0044】
オープンスペースを選択すると、続いてCPU12は、ステップS104において、選択したオープンスペースの容量を、オープンスペース毎に計算する。ここで、オープンスペースの容量とは、そのオープンスペースに同時に存在できるモバイルロボットの台数をいう。従って、CPU12は、ロボットの大きさの情報を用いて、オープンスペースの容量を計算する。
【0045】
オープンスペースの容量を計算すると、続いてCPU12は、ステップS105において、モバイルロボットが通行可能な領域の中の、オープンスペース以外の領域をエッジと定義する。
【0046】
オープンスペース以外の領域をエッジと定義すると、続いてCPU12は、ステップS106において、エッジの離合条件を、所定の計算手法に基づいて計算する。エッジの離合条件は、当該エッジを並行して通行できる、または擦れ違えるモバイルロボットの数で表される。エッジの離合条件の計算手法は後述する。
【0047】
エッジの離合条件を計算すると、続いてCPU12は、ステップS107において、生成したノードとエッジとをデータ構造として出力する。データ構造の具体例は後述する。
【0048】
図4は、情報処理装置10による情報処理の流れを示すフローチャートである。CPU12がメモリ11のROMまたはハードディスクドライブ16に記憶された情報処理プログラムを読み出して、メモリ11のRAMに展開して実行することにより、情報処理が行なわれる。図4に示したフローチャートは、図3に示した情報処理のフローチャートを、ボロノイ図で実現する場合の情報処理の流れである。
【0049】
CPU12は、まずステップS111において、データ構造の出力のために設定情報の入力を受け付ける。設定情報の入力は、所定のユーザインターフェイスによって行われ得る。
【0050】
設定情報の入力を受け付けると、続いてCPU12は、ステップS112において、マップを保持部105から取り出し、マップにおけるモバイルロボットの通行可能な領域と通行不可能な領域との境界の座標系列を基にボロノイ線を生成する。
【0051】
ボロノイ線を生成すると、続いてCPU12は、ステップS113において、ボロノイ線の接続端点数が3つ以上の点をオープンスペース点として抽出する。
【0052】
オープンスペースの候補点を抽出すると、続いてCPU12は、ステップS114において、オープンスペース点を中心した障害物と接する円を描き、当該円の半径を計算する。障害物は、例えば壁などのモバイルロボットの通行可能な領域と通行不可能な領域との境界である。
【0053】
円の半径を計算すると、続いてCPU12は、ステップS115において、オープンスペースの容量を決定する。CPU12は、例えば円の半径と、モバイルロボットの半径とを用いて、オープンスペースの容量を決定してもよい。例えば、円の半径がモバイルロボットの半径の2倍以下であれば、当該オープンスペースにはモバイルロボットが同時に1台しか存在できないので、CPU12は、当該オープンスペースの容量を1と決定する。
【0054】
オープンスペースの容量を決定すると、続いてCPU12は、ステップS116において、オープンスペースとエッジとの接続部を新たなノードとする。
【0055】
オープンスペースとエッジとの接続部を新たなノードとすると、続いてCPU12は、ステップS117において、ボロノイ線の端点を中心とした障害物との内接円の半径を求める。
【0056】
内接円の半径を求めると、続いてCPU12は、ステップS118において、内接円の半径からエッジの離合条件を求める。エッジの離合条件は、当該エッジを並行して通行できる、または擦れ違えるモバイルロボットの数で表される。CPU12は、例えば内接円の半径と、モバイルロボットの半径とを用いて、エッジの離合条件を決定してもよい。例えば、内接円の半径がモバイルロボットの半径の2倍以下であれば、当該エッジにはモバイルロボットが同時に1台しか通行できないので、CPU12は、当該エッジの離合条件を1台と決定する。
【0057】
モバイルロボットの機種が複数存在し、機種ごとに大きさが違う場合が考えられる。モバイルロボットが3種類あり、それぞれAMR1、AMR2、AMR3とする。そして、AMR1の幅が1.0、AMR2の幅が1.5、AMR3の幅が1.7であるとする。この幅は幅が最少のAMR1を単位として規格化した値である。通路幅(車線数)を3.0とすると、AMR1同士は3台まで並走可であり、かつ擦れ違い可である。また、AMR2同士は2台まで並走可であり、かつ擦れ違い可である。また、AMR3同士は並走不可であり、かつ擦れ違いも不可である。また、AMR1とAMR2とは2台まで並走可であり、かつ擦れ違い可である。また、AMR1とAMR3とは2台まで並走可であり、かつ擦れ違い可である。また、AMR2とAMR3なら並走不可であり、かつ擦れ違いも不可である。このように、CPU12はモバイルロボットの機種に応じた離合条件を決定する。もちろん、離合条件を求める際に、モバイルロボットの大きさを規格化した値ではなく、モバイルロボットの実際の大きさの数値を用いてもよい。
【0058】
内接円の半径からモバイルロボットの離合条件を求めると、続いてCPU12は、ステップS119において、生成したノードとエッジをデータ構造として出力する。
【0059】
本発明の実施形態に係る情報処理装置10は、係る処理を実行することで、移動可能なロボットの大きさの情報を用いたデータ構造を出力することができる。本発明の実施形態に係る情報処理装置10は、移動可能なロボットの大きさの情報を用いることで、従来技術と比較して移動可能なロボットの集団を効率よく管理するためのデータ構造を出力することができる。
【0060】
なお、CPU12は、ボロノイ図以外の手法、例えば確率的ロードマップ法又はRRT(Rapidly exploring Random Tree)等によってオープンスペースを特定してもよい。
【0061】
続いて、情報処理装置10による具体的なデータ構造の生成例を示す。
【0062】
図5は、情報処理装置10がマップからオープンスペース及びエッジを抽出する様子を示す図である。マップ200が情報処理装置10に与えられると、情報処理装置10は、マップ200からオープンスペース及びエッジを抽出する。符号210で示したマップ200の一部分を参照すると、情報処理装置10は、オープンスペースには「A1」というIDを付与し、ノードv1とv2との間のエッジには「e1」というIDを付与している。また、情報処理装置10は、各エッジについて離合条件を車線数で表した情報を生成する。そして情報処理装置10は、オープンスペース及びエッジの情報をデータ構造に格納することで、図5に示したように、どこがオープンスペースであり、どこがエッジであり、エッジがどのような離合条件を有しているかを、データ構造に基づいて視覚的に提示できる。
【0063】
図6は、図4に示したフローチャートに基づき、情報処理装置10がマップからオープンスペース及びエッジを抽出する様子を示す図である。
【0064】
図6(a)のように、マップ200が情報処理装置10に与えられると、情報処理装置10は、図6(b)のように、マップにおけるモバイルロボットの通行可能な領域と通行不可能な領域との境界の座標系列を基にボロノイ線を生成する。ボロノイ線を生成すると、続いて情報処理装置10は、図6(c)のように、ボロノイ線の接続端点数が3つ以上の点をオープンスペース点として抽出する。オープンスペースの候補点を抽出すると、続いて情報処理装置10は、図6(d)のように、オープンスペース点を中心した障害物と接する円を描き、当該円の半径を計算する。障害物は、例えば壁などのモバイルロボットの通行可能な領域と通行不可能な領域との境界である。
【0065】
オープンスペース点を中心した障害物と接する円を描き、当該円の半径を計算すると、続いて情報処理装置10は、図6(e)のように、当該円と障害物の接点数を求め、接点数の個数が「ボロノイ線の接続端点数」×2の数になるまで半径を拡大する。続いて情報処理装置10は、図6(f)のように、接点同士の距離が所定の閾値以下になるように、
接点間の距離を調整する。続いて情報処理装置10は、図6(g)のように、得られた接点同士を接続しオープンスペースを生成する。
【0066】
オープンスペースの容量を決定すると、続いて情報処理装置10は、図6(h)のように、オープンスペースとエッジとの接続部を新たなノードとする。オープンスペースとエッジとの接続部を新たなノードとすると、続いて情報処理装置10は、図6(i)のように、ボロノイ線の端点を中心とした障害物との内接円の半径を求める。
【0067】
内接円の半径を求めると、続いて情報処理装置10は、図6(j)のように、内接円の半径からエッジの離合条件を求める。そして、情報処理装置10は、内接円の半径からモバイルロボットの離合条件を求めると、生成したノードとエッジをデータ構造として出力する。このように、情報処理装置10は、マップ200が与えられると、マップ200の内容に基づいてデータ構造を出力することができる。
【0068】
図7は、情報処理装置10が生成するデータ構造の例を示す図である。図7の上段はノードの情報が格納されたテーブルのデータ構造であり、ノードを識別するノードID、当該ノードの座標、当該ノードに接続されているオープンスペースのID(接続OS-ID)の情報が格納されている。なお座標の値は、マップ200の任意の点を原点とした場合の値である。図7の中段はオープンスペースの情報が格納されたテーブルのデータ構造であり、オープンスペースを識別するID(OS-ID)、当該オープンスペースの容量、当該オープンスペースの面積、当該オープンスペースに接続されているノードの情報(接続ノード-ID)が格納されている。図7の下段はエッジの情報が格納されたテーブルのデータ構造であり、エッジID、始点のノード、終点のノード、離合条件、当該エッジの距離の情報が格納されている。なお、始点及び終点は、当該エッジの進行方向が決められていなければどちらのノードであってもよいが、当該エッジの進行方向が決められていれば、始点及び終点はどちらか一方に決められる。
【0069】
情報処理装置10は、このようにデータ構造を生成して出力することで、図5に示したように、どこがオープンスペースであり、どこがエッジであり、エッジがどのような離合条件を有しているかを、データ構造に基づいて視覚的に提示できる。
【0070】
なお、図7に示した例では、オープンスペースの情報とエッジの情報とが、それぞれ別のテーブルに格納されていたが、本発明は係る例に限定されるものでは無い。オープンスペースの情報とエッジの情報とが同一のテーブルに格納されてもよい。
【0071】
図8は、情報処理装置10がマップからオープンスペース及びエッジを抽出する様子を示す図である。マップ200が情報処理装置10に与えられると、情報処理装置10は、マップ200からオープンスペース及びエッジを抽出する。符号21で示したマップ200の一部分を参照すると、情報処理装置10は、オープンスペースには「v6」というIDを付与し、ノードv1とv2との間のエッジには「e1」というIDを付与している。
【0072】
図9は、情報処理装置10が生成するデータ構造の例を示す図である。図9の上段はエッジの情報が格納されたテーブルのデータ構造であり、エッジID、始点のノード、終点のノード、離合条件、当該エッジの距離の情報が格納されている。なお、始点及び終点は、当該エッジの進行方向が決められていなければどちらのノードであってもよいが、当該エッジの進行方向が決められていれば、始点及び終点はどちらか一方に決められる。図9の中段はノードの情報が格納されたテーブルのデータ構造であり、ノードを識別するノードID、当該ノードの座標、当該ノードに接続されているオープンスペースのID(接続ID)、当該フィールドの属性の情報が格納されている。なお座標の値は、マップ200の任意の点を原点とした場合の値である。なお、ノードには容量及び面積の概念が無いので、容量及び面積のフィールドには値が何も入っていない(又はnull値が入っている)。図9の下段はオープンスペースの情報が格納されたテーブルのデータ構造であり、オープンスペースを識別するID、当該オープンスペースの面積、当該オープンスペースの容量、当該オープンスペースに接続されているノードの情報(接続ID)、当該フィールドの属性の情報が格納されている。なお、オープンスペースには座標の概念が無いので、座標のフィールドには値が何も入っていない(又はnull値が入っている)。
【0073】
情報処理装置10は、このようにオープンスペースの情報とエッジの情報とが同一のテーブルに格納することができる。そして、情報処理装置10は、データ構造を生成して出力することで、図8に示したように、どこがオープンスペースであり、どこがエッジであり、エッジがどのような離合条件を有しているかを、データ構造に基づいて視覚的に提示できる。
【0074】
次に、情報処理装置10によって生成されたデータ構造に基づいたマップの表現例を示す。図10A~10Dは、情報処理装置10によって生成されたデータ構造に基づいたマップの表現例を示す図である。情報処理装置10は、例えば図10Aに示したように、エッジの離合条件に応じてエッジの色を変化させて表現してもよい。また、情報処理装置10は、例えば図10Bに示したように、エッジの離合条件に応じてエッジの近傍に数字を表示することで表現してもよい。また、情報処理装置10は、例えば図10Cに示したように、エッジの離合条件に応じて、線の太さを変化させて表現してもよい。また、情報処理装置10は、例えば図10Dに示したように、モバイルロボットの進行方向をエッジ上に示すことでエッジの離合条件を表現してもよい。
【0075】
次に、情報処理装置10が表示するユーザインターフェイスの例を説明する。図11は、情報処理装置10がディスプレイ20に表示するユーザインターフェイスの例を示す図である。ユーザインターフェイス300は、情報処理装置10にデータ構造を出力させるためのユーザインターフェイスである。
【0076】
符号301は、情報処理装置10がマップ及びユーザからの入力情報に基づいてデータ構造を出力する場合にユーザによって選択されるタブである。符号302は、ユーザによる手動設定に基づいてデータ構造を出力する場合にユーザによって選択されるタブである。符号303は、モバイルロボットの大きさに関する情報を入力するためのテキストボックスである。図11の例では、モバイルロボットの大きさに関する情報として、モバイルロボットの半径及び速度制限エリアの壁からの最小幅が入力できる。もちろんモバイルロボットの大きさに関する情報は係る例に限定されるものでは無い。
【0077】
符号304は、情報処理装置10がデータ構造に基づいたモバイルロボットの運行計画を生成する場合に参照すべき制約の対象項目を選択するための領域である。ここで、モバイルロボットの運行計画を生成する場合に参照すべき制約について説明する。モバイルロボットの運行計画を生成する際に、人とモバイルロボットとが同時に複数存在する領域(混流領域)のマップで普遍的にみられる知見、ノウハウ又は暗黙知が存在する。情報処理装置10が符号304の領域で表示する制約は、このような知見、ノウハウ又は暗黙知をリストアップしたものである。本実施形態では8つの制約を提示している。表1に制約の例、及びその制約を設ける理由と、データドリブンによる実現方法とを示す。
【0078】
【表1】
【0079】
図12A図12Dは、マップ情報をデータドリブンに抽出する場合の処理を説明する図である。図12A及び図12Bは、表1の7番の制約が設定された場合の処理を説明する図である。この場合、CPU12はボロノイ線の接続端点数でオープンスペースを抽出し、オープンスペースとエッジとの結合点を全結合のグラフで繋ぐことで、優先通過ラインを定義する。図12Cは、表1の1番、2番、又は6番の制約が設定された場合の処理を説明する図である。この場合、CPU12はボロノイ端点を中心とした車線数×Nの円を描くことで車線数を定義する。図12Dは、表1の8番の制約が設定された場合の処理を説明する図である。この場合、CPU12はエッジの曲がり角に相当する場所では、壁に向かってボロノイ線が一本だけ伸びているという特徴を用いて曲がり角を特定し、速度制限エリアを設ける。
【0080】
なお、表1の3番の制約が設定された場合、CPU12は、ゴール地点に最も近傍のボロノイ端点を見つけ、そのボロノイ端点を中心に仮想壁との内接円を描いて、速度制限エリアを定義する。また、表1の4番の制約が設定された場合、CPU12は、ボロノイ端点を中心とした仮想壁と接触する内接円を描き、速度制限エリアの幅分だけ半径を減らし、モルフォロジ処理によって仮想壁を膨張させて元の座標との差分を求めることにより速度制限エリアを定義する。
【0081】
図13は、情報処理装置10が生成するデータ構造の例を示す図である。図13に示したデータ構造は、図7に示したデータ構造に、ユーザによって指定された制約が追加されたものである。図13の上段は図7の上段と同様である。図13の中段はオープンスペースの情報が格納されたテーブルのデータ構造であり、オープンスペースを識別するID(OS-ID)、当該オープンスペースの容量、当該オープンスペースの面積、当該オープンスペースに接続されているノード(接続ノード-ID)、当該オープンスペースの制約の情報が格納されている。図13の下段はエッジの情報が格納されたテーブルのデータ構造であり、エッジID、始点のノード、終点のノード、離合条件、当該エッジの距離、当該エッジの制約の情報が格納されている。
【0082】
図14は、情報処理装置10がディスプレイ20に表示するユーザインターフェイスの例を示す図である。図14に示したのは、情報処理装置10が生成したデータ構造に基づいてマップ上に情報を重畳して表示するユーザインターフェイスの例である。情報処理装置10は、データ構造に基づいてマップ上に情報を重畳して表示することで、当該マップにおけるモバイルロボットの移動の様子をユーザに予め把握させることができる。
【0083】
情報処理装置10が上述したようなデータ構造を生成して出力することで、モバイルロボットの運行計画の作成工数の低減に寄与できる。
【0084】
図15は、モバイルロボットの運行計画の作成のバリエーションを説明する図である。図15の左側の列は、モバイルロボットの走行を制御するサーバ側からは、モバイルロボットが通るべきルート上の大まかな領域のみを指示し、その中での動き方はモバイルロボットの自動走行による制御に任せる実装形態である。モバイルロボット同士の干渉回避はモバイルロボットの自律制御に任せられることになる。図15の右側の列は、サーバ側がより詳細な空間座標であるウェイポイント点列によってモバイルロボットへ軌道を指示する形態である。この場合、モバイルロボット同士の干渉回避をサーバ側が指示することが可能になる。モバイルロボットの自律制御は、人などの非制御物体との干渉を回避する目的で利用されることになる。図15の上段の行は、モバイルロボットのキネマティクス又はダイナミクスを考慮して経路計画を策定する実施例である。例えば直進ではモバイルロボットは速く走行し、曲がる際にはモバイルロボットは遅く走行するという特性を考えて最適化を行うものである。なお、図15の下段の行は、モバイルロボットのキネマティクス又はダイナミクスを考慮せずに経路計画を策定する実施例である。この場合では、モバイルロボットがゆっくり動作する場合を想定し、経路の所要時間は経路等に比例するものとして扱う。
【0085】
図15の左上の実施例の場合、情報処理装置10は、抽出されたロードマップに対して、モバイルロボットのダイナミクスを考慮した拘束条件の上でMAPF(Multi-Agent Path Finding、マルチエージェント経路探索)問題を定式化して解く。図15の左上の実施例の場合でも、情報処理装置10は、ロードマップ領域に対する離合条件又は容量などの衝突判定の情報を利用して、最適化のサーチ計算量を削減できる。
【0086】
図15の左下の実施例の場合、情報処理装置10は、抽出されたロードマップに対して、モバイルロボットの動きを等速直線運動としてMAPF問題を定式化して解く。図15の左下の実施例の場合でも、情報処理装置10は、ロードマップ領域に対する離合条件又は容量などの衝突判定の情報を利用して、最適化のサーチ計算量を削減できる。なお、図15の左下の実施例において、n1~n5はオープンスペースとして、e1~e7はエッジとして、それぞれ抽出された領域を表している。
【0087】
図15の右上の実施例の場合、情報処理装置10は、グリッド点に対してモバイルロボットのダイナミクスを考慮した拘束条件を定義し、その上でMAPF問題とモーションプラニング問題を同時に解く。情報処理装置10は、グリッド点が属するロードマップ領域情報を利用して、グリッド点間のダイナミクスの定義を(例えば道と交差点で)変更することで計算量を削減できる。図15の右上の実施例の場合でも、情報処理装置10は、ロードマップ領域に対する離合条件又は容量などの衝突判定の情報を利用して、最適化のサーチ計算量を削減できる。
【0088】
なお、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した情報処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、情報処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0089】
また、上記各実施形態では、情報処理のプログラムがROMまたはストレージに予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0090】
10 情報処理装置
200 マップ
300 ユーザインターフェイス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10A
図10B
図10C
図10D
図11
図12A
図12B
図12C
図12D
図13
図14
図15