(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023141294
(43)【公開日】2023-10-05
(54)【発明の名称】占有格子地図生成装置、プログラムおよび占有格子地図生成方法
(51)【国際特許分類】
G05D 1/02 20200101AFI20230928BHJP
G06T 11/60 20060101ALI20230928BHJP
【FI】
G05D1/02 H
G06T11/60 300
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022047531
(22)【出願日】2022-03-23
(71)【出願人】
【識別番号】509328928
【氏名又は名称】株式会社日立プラントコンストラクション
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】森 敬仁
(72)【発明者】
【氏名】和田 政臣
(72)【発明者】
【氏名】篠田 直哉
【テーマコード(参考)】
5B050
5H301
【Fターム(参考)】
5B050BA17
5B050DA04
5B050EA07
5B050EA28
5H301AA01
5H301CC03
5H301CC06
5H301CC10
5H301GG08
5H301GG09
5H301GG14
5H301GG17
(57)【要約】
【課題】自律走行型ロボットの仕様に合った占有格子地図の生成を可能とする。
【解決手段】占有格子地図生成装置100は、占有格子地
図140の作成機能を有する自律走行ロボットに備わり、周辺のオブジェクトを測定するセンサの分解能と、自律走行ロボットが走行する領域の3次元データ130とを取得する取得部111と、3次元データ130に示される領域にあるオブジェクトの大きさを、領域を区切る格子を基に算出する際の誤差を求める誤差算出部113と、センサを用いて、領域にあるオブジェクトを検出する分解能である検出分解能の範囲内で、誤差が所定値以下である格子のサイズを算出する格子サイズ算出部112と、占有格子地
図140の格子のサイズが、格子サイズ算出部112が算出した格子のサイズである占有格子地図を生成する地図生成部114とを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
占有格子地図の作成機能を有する自律走行ロボットに備わり、周辺のオブジェクトを測定するセンサの分解能と、前記自律走行ロボットが走行する領域の3次元データとを取得する取得部と、
前記3次元データに示される前記領域にあるオブジェクトの大きさを、前記領域を区切る格子を基に算出する際の誤差を求める誤差算出部と、
前記センサを用いて、前記領域にあるオブジェクトを検出する分解能である検出分解能の範囲内で、前記誤差が所定値以下である前記格子のサイズを算出する格子サイズ算出部と、
前記格子サイズ算出部が算出した格子のサイズの格子で前記領域を区切り、前記3次元データを基に格子ごとにオブジェクトの有無を判定して、占有格子地図を生成する地図生成部とを備える
占有格子地図生成装置。
【請求項2】
前記3次元データは、前記領域内にあるオブジェクトの3次元モデルデータであり、
前記オブジェクトの大きさは、前記領域の所定の高さにおける当該オブジェクトの断面積であり、
前記領域を区切る格子は、2次元の格子であり、
前記誤差算出部が算出する誤差は、
1つの前記格子において前記オブジェクトが占める割合が所定値以上である前記格子の数に、前記格子の面積を乗じて求めた当該オブジェクトの第1の大きさ、および、前記3次元モデルデータが示す当該オブジェクトの第2の大きさにおいて、
前記第1の大きさまたは前記第2の大きさに対する、前記第1の大きさと前記第2の大きさとの差の比である
請求項1に記載の占有格子地図生成装置。
【請求項3】
前記3次元データは、前記領域内にあるオブジェクトの3次元モデルデータであり、
前記オブジェクトの大きさは、当該オブジェクトの体積であり、
前記領域を区切る格子は、3次元の格子であり、
前記誤差算出部が算出する誤差は、
1つの前記格子において前記オブジェクトが占める割合が所定値以上である前記格子の数に、前記格子の体積を乗じて求めた当該オブジェクトの第1の大きさ、および、前記3次元モデルデータが示す当該オブジェクトの第2の大きさにおいて、
前記第1の大きさまたは前記第2の大きさに対する、前記第1の大きさと前記第2の大きさとの差の比である
請求項1に記載の占有格子地図生成装置。
【請求項4】
前記3次元データは、前記領域内にあるオブジェクトの3次元点群データであり、
前記オブジェクトの大きさは、前記領域の所定の高さにおける当該オブジェクトの断面の周が通る前記格子の数に基づく周長であり、
前記誤差算出部が算出する誤差は、
前記オブジェクトの3次元点群データに含まれ、前記領域の所定の高さにある点であって、1つの前記格子に含まれる当該点の数を当該格子の面積で除した密度が所定値以上である当該格子の数である第1の格子数、および、当該オブジェクトの点群データに含まれる点を1つ以上含む前記格子の数である第2の格子数において、
前記第1の格子数または前記第2の格子数に対する、前記第1の格子数と前記第2の格子数との差の比である
請求項1に記載の占有格子地図生成装置。
【請求項5】
前記3次元データは、前記領域内にあるオブジェクトの3次元点群データであり、
前記オブジェクトの大きさは、前記領域の所定の高さにおける当該オブジェクトの断面の周が通る前記格子の数に基づく周長であり、
前記誤差算出部が算出する誤差は、
前記オブジェクトの3次元点群データに含まれ、前記領域の所定の高さにある点であって、1つの前記格子に含まれる当該点の数を当該格子の辺の長さで除した密度が所定値以上である当該格子の数である第1の格子数、および、当該オブジェクトの点群データに含まれる点を1つ以上含む前記格子の数である第2の格子数において、
前記第1の格子数または前記第2の格子数に対する、前記第1の格子数と前記第2の格子数との差の比である
請求項1に記載の占有格子地図生成装置。
【請求項6】
前記センサの分解能は、最小測長と最大測長と角度分解能とで示され、
前記検出分解能の範囲の下限は、2×前記最小測長×tan(前記角度分解能/2)であり、
前記検出分解能の範囲の上限は、2×前記最大測長×tan(前記角度分解能/2)である
請求項1に記載の占有格子地図生成装置。
【請求項7】
前記誤差算出部が大きさの誤差を算出する対象となるオブジェクトは、前記領域にあるオブジェクトのなかで大きさが最小となるオブジェクト、または、選択されたオブジェクトである
請求項1に記載の占有格子地図生成装置。
【請求項8】
コンピュータを、
占有格子地図の作成機能を有する自律走行ロボットに備わり、周辺のオブジェクトを測定するセンサの分解能と、前記自律走行ロボットが走行する領域の3次元データとを取得する取得部と、
前記3次元データに示される前記領域にあるオブジェクトの大きさを、前記領域を区切る格子を基に算出する際の誤差を求める誤差算出部と、
前記センサを用いて、前記領域にあるオブジェクトを検出する分解能である検出分解能の範囲内で、前記誤差が所定値以下である前記格子のサイズを算出する格子サイズ算出部と、
前記格子サイズ算出部が算出した格子のサイズの格子で前記領域を区切り、前記3次元データを基に格子ごとにオブジェクトの有無を判定して、占有格子地図を生成する地図生成部と
を備える占有格子地図生成装置として機能させるためのプログラム。
【請求項9】
占有格子地図生成装置が、
占有格子地図の作成機能を有する自律走行ロボットに備わり、周辺のオブジェクトを測定するセンサの分解能と、前記自律走行ロボットが走行する領域の3次元データとを取得するステップと、
前記3次元データに示される前記領域にあるオブジェクトの大きさを、前記領域を区切る格子を基に算出する際の誤差を求めるステップと、
前記センサを用いて、前記領域にあるオブジェクトを検出する分解能である検出分解能の範囲内で、前記誤差が所定値以下である前記格子のサイズを算出するステップと、
算出された格子のサイズの格子で前記領域を区切り、前記3次元データを基に格子ごとにオブジェクトの有無を判定して、占有格子地図を生成するステップとを実行する
占有格子地図生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律走行型ロボットの環境地図を生成する占有格子地図生成装置、プログラムおよび占有格子地図生成方法に関する。
【背景技術】
【0002】
ビルやプラント、建設現場などにおいて、物品運搬や清掃作業、遠隔作業を行う自律走行型のロボットの導入が進んでいる。ロボットは、SLAM(Simultaneous Localization and Mapping)という技術を用いて、自己位置推定と、走行領域の環境地図の作成とを同時に行っている。ロボットはカメラやLiDAR(Laser Imaging Detection and Ranging)を搭載し、これらのセンサを用いて走行領域にあるオブジェクト(障害物)を計測して、環境地図を作成する。環境地図とは、例えば占有格子地図であって、走行領域が格子(グリッド)で区切られ、区切られた領域(格子)ごとにオブジェクトの有無を示している。なお、未走行の領域は未知領域と扱われる。
【0003】
走行領域のレイアウト変更(オブジェクトの変化)があると、ロボットが走行して環境地図を再作成する必要がある。変更が頻繁にあると、ロボットの管理者の負担が大きくなる。特許文献1に記載の地図情報提供システムでは、走行領域の3次元点群データを記憶するサーバが、自律移動装置(ロボット)が指定する高さの2次元点群データを切り出して、自律移動装置に配信する。このような地図情報提供システムを用いることで、自律移動装置が環境地図を更新する必要がなくなり、管理者の負担を削減することができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ロボットの環境地図は、一般には占有格子地図であり、作成するには格子サイズを決定する必要がある。格子サイズは管理者が決定してもよいが、ロボットの仕様に合わせた格子サイズに合わせる必要がある。しかしながら、特許文献1には、格子サイズについての記載がない。
本発明は、このような背景を鑑みてなされたものであり、自律走行型ロボットの仕様に合った占有格子地図の生成を可能とする占有格子地図生成装置、プログラムおよび占有格子地図生成方法を提供することを課題とする。
【課題を解決するための手段】
【0006】
上記した課題を解決するため、本発明に係る占有格子地図生成装置は、占有格子地図の作成機能を有する自律走行ロボットに備わり、周辺のオブジェクトを測定するセンサの分解能と、前記自律走行ロボットが走行する領域の3次元データとを取得する取得部と、前記3次元データに示される前記領域にあるオブジェクトの大きさを、前記領域を区切る格子を基に算出する際の誤差を求める誤差算出部と、前記センサを用いて、前記領域にあるオブジェクトを検出する分解能である検出分解能の範囲内で、前記誤差が所定値以下である前記格子のサイズを算出する格子サイズ算出部と、前記占有格子地図の格子のサイズが、前記格子サイズ算出部が算出した格子のサイズである前記占有格子地図を生成する地図生成部とを備える。
【発明の効果】
【0007】
本発明によれば、自律走行型ロボットの仕様に合った占有格子地図の生成を可能とする占有格子地図生成装置、プログラムおよび占有格子地図生成方法を提供することができる。上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0008】
【
図1】第1実施形態に係る占有格子地図生成装置の機能ブロック図である。
【
図2】第1実施形態に係る占有格子地図の一例を示す図である。
【
図3】第1実施形態に係るセンサの仕様を説明するための図である。
【
図4】第1実施形態に係る設定画面の画面構成図である。
【
図5】第1実施形態に係る格子に基づくオブジェクトの断面積の算出を説明するための図である。
【
図6】第1実施形態に係る占有格子地図生成処理のフローチャートである。
【
図7】第1実施形態に係る占有格子地図生成処理のフローチャートである。
【
図8】第2実施形態に係るオブジェクトの断面の周を示す点を含む格子に基づくオブジェクトの周長の誤差を説明するための図である。
【発明を実施するための形態】
【0009】
≪占有格子地図生成装置の概要≫
以下に本発明を実施するための形態(実施形態)における占有格子地図生成装置を説明する。自律走行型ロボット(ロボット)は、LiDARなどのセンサを備え、走行しながら占有格子地図を作成する。これに対して占有格子地図生成装置は、ロボットが走行する領域(走行領域)の3次元モデルを基に、ロボットに代わってロボット用の占有格子地図を生成する。
【0010】
ロボットに代わって、占有格子地図生成装置が占有格子地図を生成することで、作成に必要な時間と手間を削減することができる。特に走行領域が広い場合には、削減効果が大きい。また、ロボットが複数台ある場合には、ロボットそれぞれが地図を作成する時間を削減することができ、効果が大きくなる。
【0011】
なお格子とは、一般には地図や図面などに縦横に引かれた格子状の直線を示すが、本願では、直線で区切られた領域である矩形も格子と記す。また、格子は2次元(矩形)と限らず、3次元(直方体)であってもよい。また、格子の1辺の長さを格子のサイズ、または格子サイズと記す。
【0012】
≪占有格子地図生成装置の構成≫
図1は、第1実施形態に係る占有格子地図生成装置100の機能ブロック図である。占有格子地図生成装置100はコンピュータであり、制御部110、記憶部120、および入出力部180を備える。入出力部180には、ディスプレイやキーボード、マウスなどのユーザインターフェイス機器が接続される。入出力部180が通信デバイスを備え、他の装置とのデータ送受信が可能であってもよい。また入出力部180にメディアドライブが接続され、記録媒体を用いたデータのやり取りが可能であってもよい。
【0013】
≪占有格子地図生成装置:記憶部≫
記憶部120は、ROM(Read Only Memory)やRAM(Random Access Memory)、SSD(Solid State Drive)などの記憶機器を含んで構成される。記憶部120には、3次元データ130、占有格子地
図140、センサ仕様121、生成パラメータ122、およびプログラム128が記憶される。
【0014】
3次元データ130は、ロボットが走行する領域の3次元モデルデータであって、例えばCADシステムで作成されたデータである。3次元データ130には、ロボットの走行領域にあるオブジェクト(障害物)のデータが含まれる。
占有格子地
図140は、占有格子地図生成装置100が生成した地図であり、ロボットに搭載される地図である。占有格子地
図140は、ロボットの走行領域を分割する(区切る)格子(グリッド、メッシュ)ごとにオブジェクトの有無を示す。
図2は、第1実施形態に係る占有格子地図の一例を示す図である。ハッチングされた格子には、オブジェクトが存在することを示している。
【0015】
図1に戻って、記憶部120の説明を続ける。センサ仕様121は、ロボットが備え、占有格子地図の生成に用いられるセンサの仕様である。センサとしては、例えばLiDARがあり、この場合のセンサ仕様121には、センサの最小測長、最大測長、および角度分解能がある。センサ仕様121は、センサの設置位置の高さ(走行領域面からの高さ)を含んでもよい。
【0016】
図3は、第1実施形態に係るセンサ610の仕様を説明するための図である。センサ610は、ロボットに備わる占有格子地図を生成するための、例えばLiDARなどのセンサである。なおセンサ610は、ロボットが自己の位置を推定するためのセンサとして用いられてもよい。2αはセンサ610の角度分解能であり、水平方向での分解能である。r
minは最小測長、r
maxは最大測長である。すると、センサ610から最小測長にあるオブジェクトの分解能は、2r
mintanαであり、最大測長にあるオブジェクトの分解能は、2r
maxtanαである。
【0017】
以上に説明したようにセンサ610の分解能は、最小測長と最大測長と角度分解能とで示される。検出分解能の範囲の下限は、2×最小測長×tan(角度分解能/2)である。また、検出分解能の範囲の上限は、2×最大測長×tan(角度分解能/2)である。
【0018】
図1に戻って、記憶部120の説明を続ける。生成パラメータ122は、占有格子地
図140を生成する処理である占有格子地図生成処理(後記する
図6、
図7参照)のパラメータである。パラメータの詳細は後記する。
プログラム128は、占有格子地図生成処理の記述を含む。
【0019】
≪占有格子地図生成装置:制御部≫
制御部110は、CPU(Central Processing Unit)を含んで構成され、取得部111、格子サイズ算出部112、誤差算出部113、および地図生成部114が備わる。
取得部111は、ロボットが走行する領域の3次元モデルデータ、ロボットのセンサの仕様、および占有格子地図生成処理のパラメータを取得して、それぞれ3次元データ130、センサ仕様121、生成パラメータ122に格納する。
【0020】
図4は、第1実施形態に係る設定画面510の画面構成図である。設定画面510において、占有格子地図生成装置100の利用者(例えばロボットの管理者)は、ロボットのセンサ仕様、および占有格子地図生成処理のパラメータを設定する。右下の「OK」ボタンが押下されると取得部111は、設定された内容をセンサ仕様121、および生成パラメータ122に格納する。なお、ロボットのセンサ仕様には、センサ610(
図3参照)の分解能を含む。
【0021】
以上に説明したように占有格子地図生成装置100は、占有格子地
図140の作成機能を有する自律走行ロボットに備わり、周辺のオブジェクトを測定するセンサ610の分解能と、自律走行ロボットが走行する領域の3次元データとを取得する取得部111を備える。
【0022】
図1に戻って制御部110の説明を続ける。格子サイズ算出部112は、占有格子地図生成装置100の出力である占有格子地
図140の格子サイズ(格子1辺の長さ)を算出する。格子サイズ算出部112は、後記する誤差算出部113が算出する誤差が、設定された誤差(
図4記載の「許容誤差」参照)内になるような格子サイズを算出する。なお格子サイズ算出部112が算出する格子サイズは、最小測長にあるオブジェクトの分解能(
図2記載の2r
mintanα)以上、最大測長にあるオブジェクトの分解能(
図2記載の2r
maxtanα)以下である。
【0023】
以上に説明したように占有格子地図生成装置100は、センサ610を用いて、領域にあるオブジェクトを検出する分解能である検出分解能の範囲内で、誤差が所定値以下である格子のサイズを算出する格子サイズ算出部112を備える。
【0024】
誤差算出部113は、走行領域を格子で区切って、格子を基にオブジェクトの大きさを算出した場合の誤差を算出する。算出手法については、後記する
図5を参照して詳細に説明する。第1実施形態におけるオブジェクトの大きさとは、センサ610が設置された高さ(
図4記載の「設置高さ」参照)におけるオブジェクトの断面積である。センサ610が設置された高さが不明(未設定)の場合には、所定値として例えば高さ0(走行領域面)とする。
【0025】
以上に説明したように占有格子地図生成装置100は、3次元データに示される領域にあるオブジェクトの大きさを、領域を区切る格子を基に算出する際の誤差を求める誤差算出部113を備える。
【0026】
地図生成部114は、格子サイズ算出部112が算出した格子のサイズの格子で走行領域を区切り、3次元データ130を基に格子ごとにオブジェクトの有無を判定して、占有格子地
図140を生成する。
【0027】
以上に説明したように占有格子地図生成装置100は、占有格子地
図140の格子のサイズが、格子サイズ算出部112が算出した格子のサイズである占有格子地
図140を生成する地図生成部114を備える。
【0028】
≪格子に基づくオブジェクトの断面積≫
図5は、第1実施形態に係る格子に基づくオブジェクトの断面積の算出を説明するための図である。
図5の上側にある格子状
図620の格子サイズは2であり、下側にある格子状
図630の格子サイズは1である。
図5において円619は、走行領域にある(円柱状の)オブジェクトのセンサ610が設置された高さにおける断面を示す。換言すれば、格子状
図620,630は、センサ610が設置された高さにおける走行領域の平面図である。
【0029】
格子に基づくオブジェクトの断面積は、格子が示す領域(矩形)のなかでオブジェクトが占める割合が設定値以上を示す格子の数と、格子の面積との積である。この設定値とは、設定画面510(
図4参照)の「占有率閾値」のことである。以下の説明では、設定値は50%であるとする。
【0030】
図5上側の格子状
図620においてオブジェクトが占める割合が50%以上である格子は、中央付近の格子623を含む4つ、および、その左右上下隣の格子622を含む8つの計12である。格子621を含む角にある格子におけるオブジェクトが占める割合は50%未満である。格子1辺の長さは2であり、格子状
図620における格子に基づくオブジェクトの断面積は12×4=48である。円619の半径は3.67であり、面積は42.3である。よって誤差は|48-42.3|/42.3=13.5%となる。
【0031】
格子状
図630の格子サイズは1である。格子631,635におけるオブジェクトの占める割合は50%以上であり、格子632,634では50%以下である。すると格子状
図630における格子に基づくオブジェクトの断面積は44である。誤差は|44-42.3|/42.3=4.0%となる。格子サイズが小さい方が、誤差が小さく、面積算出の精度が高くなる。
上記の誤差は、格子に基づくオブジェクトの断面積と、オブジェクトの3次元データにおける断面積との差の、オブジェクトの3次元データにおける断面積に対する比である。誤差は、差の、格子に基づくオブジェクトの断面積に対する比であってもよい。
【0032】
以上に説明したように3次元データ130は、領域内にあるオブジェクトの3次元モデルデータである。オブジェクトの大きさは、領域の所定の高さ(センサ610(
図3参照)が設置された高さ)における当該オブジェクトの断面積である。領域を区切る格子は、2次元の格子である。
また誤差算出部113が算出する誤差は、1つの格子においてオブジェクトが占める割合が所定値以上である格子の数に、格子の面積を乗じて求めた当該オブジェクトの第1の大きさ、および、3次元モデルデータが示す当該オブジェクトの第2の大きさにおいて、第1の大きさまたは第2の大きさに対する、第1の大きさと第2の大きさとの差の比である。
【0033】
≪占有格子地図生成処理≫
図6および
図7は、第1実施形態に係る占有格子地図生成処理のフローチャートである。
図6および
図7を参照しながら、占有格子地図生成装置100が、ロボットに代わって占有格子地
図140を生成する処理を説明する。生成された占有格子地
図140は、ロボットに搭載(ロード)される。ロボットは、環境地図作成のための走行なしに本来の作業(例えば物品運搬)を行うことができるようになる。
【0034】
ステップS21において地図生成部114は、走行領域の3次元データ130を断面図に変換する。詳しくは、地図生成部114は3次元データを基にロボットのセンサの高さにおける走行領域にあるオブジェクトの断面図を生成する。
ステップS22において地図生成部114は、ステップS21で生成された断面図に含まれるオブジェクトの断面のなかで面積が最小となるオブジェクトを特定する。
【0035】
以下、ステップS23~S29の処理により、占有格子地
図140の格子サイズが求められる。
ステップS23において格子サイズ算出部112は、格子サイズを最大に設定する。最大の格子サイズとは、ロボットのセンサが検出可能なオブジェクトの分解能の最大値であり、最大測長距離にあるオブジェクトの分解能である2r
maxtanα(
図3参照)である。
【0036】
ステップS24において格子サイズ算出部112は、格子サイズを変えながらステップS25~S28を繰り返す処理を開始する。
ステップS25において誤差算出部113は、格子サイズにおける格子に基づくステップS22で特定されたオブジェクトの面積の誤差を算出する。
【0037】
ステップS26において格子サイズ算出部112は、ステップS25で算出された誤差が設定値である許容誤差(
図4参照)以下であれば(ステップS26→YES)ステップS30(
図7参照)に進み、許容誤差超であれば(ステップS26→NO)ステップS27に進む。
ステップS27において格子サイズ算出部112は、格子サイズを格子サイズ調整幅(
図4参照)分小さくする。
【0038】
ステップS28において格子サイズ算出部112は、ステップS27で小さくした格子サイズが最小以下であれば(ステップS28→YES)ステップS29に進み、最小超であれば(ステップS28→NO)ステップS25に戻る。最小の格子サイズとは、ロボットのセンサが検出可能なオブジェクトの分解能の最小値であり、最小測長距離にあるオブジェクトの分解能である2r
mintanα(
図3参照)である。
ステップS29において格子サイズ算出部112は、格子サイズを最小の格子サイズである2r
mintanαとする。
【0039】
図7に移って、占有格子地図生成処理の説明を続ける。
ステップS30において地図生成部114は、走行領域を格子サイズの格子で分割する(区切る)。
ステップS31において地図生成部114は、ステップS30で走行領域を分割する格子ごとにステップS32~S34を繰り返す処理を開始する。
【0040】
ステップS32において地図生成部114は、ステップS21での変換結果である断面図において格子内にオブジェクトがあれば(ステップS32→有)ステップS33に進み、なければ(ステップS32→無)ステップS34に進む。
ステップS33において地図生成部114は、格子にオブジェクト有と設定する。
ステップS34において地図生成部114は、格子にオブジェクト無と設定する。
【0041】
≪占有格子地図生成装置の特徴≫
占有格子地図生成装置100は、3次元モデルデータを基にロボット用の占有格子地
図140を生成する。占有格子地
図140の格子サイズが小さいほど地図の精度は高くなる(
図5参照)が、格子数が増加するためオブジェクト(障害物)の有無を判定するロボットの処理コストが高くなる。占有格子地図生成装置100は、格子サイズが最大(ステップS23参照)から始めて、小さくしながら(ステップS27参照)誤差が許容誤差以下(ステップS26参照)となる格子サイズを求めている。このようにすることで占有格子地図生成装置100は、ロボットに合った(センサの分解能に見合った)占有格子地
図140を生成する。
ロボットに代わって、占有格子地図生成装置100が占有格子地
図140を生成することで、作成に必要な時間と手間を削減することができる。特に走行領域が広い場合や、ロボットが複数台ある場合に有効である。
【0042】
≪変形例:3次元の占有格子地図≫
上記した第1実施形態における占有格子地
図140は、ロボットのセンサの高さにおける走行領域の占有格子地図である。3次元の占有格子地図を生成することも可能である。
図5を用いて説明した格子に基づくオブジェクトの断面積の算出手法は、体積の算出手法として用いることができる。詳しくは、格子に基づくオブジェクトの体積を、3次元の格子が示す領域のなかでオブジェクトが占める割合が設定値以上を示す格子の数と、格子の体積との積とすればよい。3次元の格子の縦・横・高さは同一である必要はなく、水平方向分解能の最大値と垂直方向分解能の最大値から始めて、それぞれ小さくしながら、縦・横の格子サイズと高さの格子サイズを求めてもよい。
【0043】
以上に説明したように3次元データ130は、領域内にあるオブジェクトの3次元モデルデータである。オブジェクトの大きさは、当該オブジェクトの体積である。領域を区切る格子は、3次元の格子である。
また誤差算出部113が算出する誤差は、1つの格子においてオブジェクトが占める割合が所定値以上である格子の数に、格子の体積を乗じて求めた当該オブジェクトの第1の大きさ、および、3次元モデルデータが示す当該オブジェクトの第2の大きさにおいて、第1の大きさまたは第2の大きさに対する、第1の大きさと第2の大きさとの差の比である。
【0044】
≪その他の変形例≫
上記した第1実施形態における占有格子地
図140を生成する基になる3次元データ130は、3次元モデルデータであった。走行領域の2次元の地図であってもよい。この場合、占有格子地図生成処理(
図6参照)は、ステップS22から始まることになる。
上記した第1実施形態においては、地図生成部114が最小オブジェクトを特定している(ステップS22参照)が、占有格子地図生成装置100の利用者に問い合わせて最小オブジェクトを特定してもよい。
【0045】
以上に説明したように誤差算出部113が大きさの誤差を算出する対象となるオブジェクトは、領域にあるオブジェクトのなかで大きさが最小となるオブジェクト、または、選択されたオブジェクトである。
【0046】
≪第2実施形態≫
第1実施形態において、占有格子地
図140を生成する基になる3次元データ130は走行領域にあるオブジェクトの3次元モデルデータである。第2実施形態における3次元データ130は、例えばLiDARで測定された3次元点群データである。以下では、3次元点群における誤差算出部113Aの誤差算出手法を説明する。第1実施形態の誤差算出部113は、オブジェクトについて、格子に基づく断面積と、3次元データ130に基づく断面積との誤差を算出している。第2実施形態の誤差算出部113Aは、オブジェクト(の断面)の周が通る格子に着目して周長の誤差を算出する。
第2実施形態の地図生成部114Aは、格子が点を含む場合にはオブジェクト有、含まない場合にはオブジェクト無と設定する(ステップS32~S34参照)。
【0047】
≪オブジェクトの断面の周を示す点を含む格子数に基づくオブジェクトの周長の誤差≫
図8は、第2実施形態に係るオブジェクトの断面の周を示す点を含む格子に基づくオブジェクトの周長の誤差を説明するための図である。
図8の上側にある格子状
図640の格子サイズは2であり、下側にある格子状
図650の格子サイズは1である。
【0048】
格子状
図640に記載の黒丸は、点群データの点であって、オブジェクトの円状である断面(
図5記載の円619参照)の周を示す。これらの点の高さ(走行領域からの高さ)は、ロボットのセンサ610の高さ(
図4の設置高さ参照)に所定の誤差を含んで一致する。所定の誤差は、例え点群データに含まれる点間の距離の半分である。格子状
図640の周長の誤差は、点を1つでも含む格子の数と、所定密度の点を含む格子の数と差に基づいて算出される。
【0049】
格子サイズが2である格子状
図640において点を1つでも含む格子数(周長)は12である。格子641は2つの点を含み、単位面積当たりの点の数である密度は2/4=0.5である。格子642は3つの点を含み、密度は3/4=0.75である。格子643は4つの点を含み、密度は4/4=1である。密度が所定値1以上である格子数(周長)は4である。誤差の比は、|12-4|/12=66.7%である。なお、この所定値は設定値であり、設定画面510(
図4参照)で利用者によって設定される値である。
【0050】
格子サイズが1である格子状
図650において点を1つでも含む格子(周長)は20である。格子651,652,654,655は2つの点を含み、密度は2/1=2である。格子653は1つの点を含み、密度は1/1=1である。密度が所定値1以上である格子数(周長)は20である。誤差の比は、|20-20|/20=0%である。格子サイズが小さい方が、誤差が小さく、面積算出の精度が高くなる。
【0051】
以上に説明したように3次元データ130は、領域内にあるオブジェクトの3次元点群データであり、オブジェクトの大きさは、領域の所定の高さ(センサ610が設置された高さ)における当該オブジェクトの断面の周が通る格子の数に基づく周長である。
また誤差算出部113が算出する誤差は、オブジェクトの3次元点群データに含まれ、領域の所定の高さにある点であって、1つの格子に含まれる当該点の数を当該格子の面積で除した密度が所定値以上である当該格子の数である第1の格子数、および、当該オブジェクトの点群データに含まれる点を1つ以上含む格子の数である第2の格子数において、第1の格子数または前記第2の格子数に対する、第1の格子数と第2の格子数との差の比である。
【0052】
≪変形例:密度≫
第2実施形態においてオブジェクトの断面の周長の誤差は、1つでも点を含む格子の数と、所定密度以上の点を含む格子の数との誤差であった。格子の単位面積当たりに含まれる点の数ではなく、格子サイズ当たりの点の数としてもよい。
【0053】
格子サイズが2である格子状
図640において点を1つでも含む格子数(周長)は12である。格子641は2つの点を含み、単位格子サイズ当たりの点の数である密度は2/2=1である。格子642は3つの点を含み、密度は3/2=1.5である。格子643は4つの点を含み、密度は4/2=2である。密度が所定値1.5以上である格子数(周長)は8である。誤差の比は、|12-8|/12=33.3%である。
【0054】
格子サイズが1である格子状
図650において点を1つでも含む格子(周長)は20である。格子651,652,654,655は2つの点を含み、単位格子サイズ当たりの点の数である密度は2/1=2である。格子653は1つの点を含み、密度は1/1=1である。密度が所定値1.5以上である格子数(周長)は20である。誤差の比は、|20-20|/20=0%である。格子サイズが小さい方が、誤差が小さく、面積算出の精度が高くなる。
【0055】
以上に説明したように3次元データ130は、領域内にあるオブジェクトの3次元点群データであり、オブジェクトの大きさは、領域の所定の高さ(センサ610が設置された高さ)における当該オブジェクトの断面の周が通る格子の数に基づく周長である。
また誤差算出部113が算出する誤差は、オブジェクトの3次元点群データに含まれ、領域の所定の高さにある点であって、1つの格子に含まれる当該点の数を当該格子の辺の長さで除した密度が所定値以上である当該格子の数である第1の格子数、および、当該オブジェクトの点群データに含まれる点を1つ以上含む格子の数である第2の格子数において、第1の格子数または第2の格子数に対する、第1の格子数と第2の格子数との差の比である。
【0056】
第2実施形態において、所定値の密度は利用者により設定される値であるが、3次元点群データの仕様(測定したLiDARの仕様)に基づいて設定される値でもよい。例えば単位面積当たりに含まれる点群の点数の所定比としてもよい。
【0057】
≪変形例:3次元の占有格子地図≫
上記した第2実施形態における占有格子地
図140は、ロボットのセンサの高さにおける走行領域の占有格子地図である。3次元の占有格子地図を生成することも可能である。
図8を用いて説明した格子に基づくオブジェクトの周長の誤差の算出手法は、表面積の誤差の算出手法として用いることができる。詳しくは、格子に基づくオブジェクトの表面積誤差を、3次元の格子が示す領域のなかでオブジェクトの表面を示す点を1つでも含む格子の数と、所定の密度の点を含む格子数との差に基づいて算出してもよい。密度は3次元格子の単位体積当たりに含まれる点の数とは限らず、3次元格子の単位表面積当たりに含まれる点の数であってもよい。3次元の格子の縦・横・高さは同一である必要はなく、水平方向分解能の最大値と垂直方向分解能の最大値から始めて、それぞれ小さくしながら、縦・横の格子サイズと高さの格子サイズを求めてもよい。
【0058】
≪その他の変形例≫
図8において、誤差算出部113Aは、点を含む格子の数に基づいて誤差を算出している。占有格子地図生成装置100所定の距離内にある点群の点を接続して断面図を生成した後は、第1実施形態と同様に処理するようにしてもよい。
上記した第2実施形態においては、地図生成部114Aが最小オブジェクトを特定している(ステップS22参照)が、占有格子地図生成装置100の利用者に問い合わせて最小オブジェクトを特定してもよい。例えば、利用者が最小オブジェクトとなるオブジェクトを示す点群の領域を指定しもよい。
【0059】
≪その他の変形例≫
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0060】
100 占有格子地図生成装置
111 取得部
112 格子サイズ算出部
113 誤差算出部
114 地図生成部
121 センサ仕様
122 生成パラメータ
130 3次元データ
140 占有格子地図
610 センサ