(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022012540
(43)【公開日】2022-01-17
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G05D 1/02 20200101AFI20220107BHJP
【FI】
G05D1/02 S
G05D1/02 P
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2020114438
(22)【出願日】2020-07-01
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100104215
【弁理士】
【氏名又は名称】大森 純一
(74)【代理人】
【識別番号】100196575
【弁理士】
【氏名又は名称】高橋 満
(74)【代理人】
【識別番号】100168181
【弁理士】
【氏名又は名称】中村 哲平
(74)【代理人】
【識別番号】100160989
【弁理士】
【氏名又は名称】関根 正好
(74)【代理人】
【識別番号】100117330
【弁理士】
【氏名又は名称】折居 章
(74)【代理人】
【識別番号】100168745
【弁理士】
【氏名又は名称】金子 彩子
(74)【代理人】
【識別番号】100176131
【弁理士】
【氏名又は名称】金山 慎太郎
(74)【代理人】
【識別番号】100197398
【弁理士】
【氏名又は名称】千葉 絢子
(74)【代理人】
【識別番号】100197619
【弁理士】
【氏名又は名称】白鹿 智久
(72)【発明者】
【氏名】鈴木 恭平
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301AA01
5H301AA10
5H301BB14
5H301CC03
5H301CC06
5H301DD01
5H301DD07
5H301GG07
5H301GG08
5H301GG09
5H301GG10
5H301KK02
5H301KK03
5H301KK08
5H301LL01
5H301LL02
5H301LL03
5H301LL11
5H301LL12
(57)【要約】
【課題】少ない計算量で、高精度な地図作成が可能な情報処理装置、情報処理方法、及びプログラムを提供すること。
【解決手段】
上記目的を達成するため、本技術の一形態に係る情報処理装置は、生成部を具備する。前記生成部は、センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成する。これにより、少ない計算量で、高精度な地図作成が可能となる。また外乱に強い自己位置推定やSLAMを実現することが可能となる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成する生成部
を具備する情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記生成部は、回転数として表現された前記占有率情報に基づいて、前記1以上の領域を生成する
情報処理装置。
【請求項3】
請求項1に記載の情報処理装置であって、
前記1以上の領域は、複数の領域であり、
前記生成部は、前記複数の領域間の距離に基づいて、前記占有率情報を変更する
情報処理装置。
【請求項4】
請求項3に記載の情報処理装置であって、
前記生成部は、前記1以上の領域内における所定の点と前記1以上の領域を構成する境界との距離に基づいて、前記占有率情報を変更する
情報処理装置。
【請求項5】
請求項1に記載の情報処理装置であって、
前記生成部は、前記占有率情報に基づいて、前記1以上の領域を重畳させる
情報処理装置。
【請求項6】
請求項1に記載の情報処理装置であって、
前記センサは、測距センサを含み、
前記生成部は、前記測距センサからの距離情報に基づいて、前記1以上の領域の各々を生成する
情報処理装置。
【請求項7】
請求項6に記載の情報処理装置であって、
前記生成部は、前記距離情報に基づいて、前記1以上の領域を構成する境界を決定する
情報処理装置。
【請求項8】
請求項1に記載の情報処理装置であって、
前記センサは、移動体に搭載されており、
前記情報処理装置は、さらに、前記移動体の位置を推定する推定部を具備する
情報処理装置。
【請求項9】
請求項1に記載の情報処理装置であって、
前記センサは、移動体に搭載されており、
前記情報処理装置は、さらに、前記移動体の位置の推定にかかる計算量が所定の閾値を超えるか否かを判定する判定部を具備する
情報処理装置。
【請求項10】
請求項9に記載の情報処理装置であって、
前記生成部は、前記判定部の判定結果に基づいて、前記境界表現による1以上の領域を制御する
情報処理装置。
【請求項11】
請求項9に記載の情報処理装置であって、
前記生成部は、前記判定部の判定結果と前記移動体の位置とに基づいて、前記境界表現による領域を削除する
情報処理装置。
【請求項12】
請求項9に記載の情報処理装置であって、
前記生成部は、前記判定部の判定結果と前記移動体の経路とに基づいて、前記境界表現による領域を削除する
情報処理装置。
【請求項13】
請求項1に記載の情報処理装置であって、さらに、
前記1以上の領域が生成された地図に基づいて、前記センサを有する移動体の経路を生成する経路生成部を具備する
情報処理装置。
【請求項14】
請求項1に記載の情報処理装置であって、
前記センサは、LiDAR(Light Detection and Ranging)を含む
情報処理装置。
【請求項15】
センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成する
ことをコンピュータシステムが実行する情報処理方法。
【請求項16】
センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成するステップ
をコンピュータシステムに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、自律移動の制御等に適用可能な情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1に記載の移動体制御装置では、移動体周囲の障害物に対する距離点データが取得される。距離点データに基づいて、障害物の外形を示すポリゴンマップが生成される。生成されたポリゴンマップに基づいて、移動体の移動環境を示す格子状のグリッドマップ上で算出された移動経路が通過不能と判断された場合、移動経路が修正される。これにより、最適な移動経路を設定することが図られている(特許文献1の段落[0015][0029]
図3等)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のようにグリッド状のデータ構造でマップが生成された場合、自己位置推定の精度を向上するために格子幅を細かくした場合、計算量が膨大になる問題があった。このように、少ない計算量で、高精度な地図作成を可能とする技術が求められている。
【0005】
以上のような事情に鑑み、本技術の目的は、少ない計算量で、高精度な地図作成が可能な情報処理装置、情報処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本技術の一形態に係る情報処理装置は、生成部を具備する。
前記生成部は、センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成する。
【0007】
この情報処理装置では、センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、占有率情報に応じて境界表現による1以上の領域が生成される。これにより、少ない計算量で、高精度な地図作成が可能となる。
【0008】
前記生成部は、回転数として表現された前記占有率情報に基づいて、前記1以上の領域を生成してもよい。
【0009】
前記1以上の領域は、複数の領域であってもよい。この場合、前記生成部は、前記複数の領域間の距離に基づいて、前記占有率情報を変更してもよい。
【0010】
前記生成部は、前記1以上の領域内における所定の点と前記1以上の領域を構成する境界との距離に基づいて、前記占有率情報を変更してもよい。
【0011】
前記生成部は、前記占有率情報に基づいて、前記1以上の領域を重畳させてもよい。
【0012】
前記センサは、測距センサを含んでもよい。この場合、前記生成部は、前記測距センサからの距離情報に基づいて、前記1以上の領域の各々を生成してもよい。
【0013】
前記生成部は、前記距離情報に基づいて、前記1以上の領域を構成する境界を決定してもよい。
【0014】
前記センサは、移動体に搭載されてもよい。この場合、前記情報処理装置は、さらに、前記移動体の位置を推定する推定部を具備してもよい。
【0015】
前記センサは、移動体に搭載されてもよい。この場合、前記情報処理装置は、さらに、前記移動体の位置の推定にかかる計算量が所定の閾値を超えるか否かを判定する判定部を具備してもよい。
【0016】
前記生成部は、前記判定部の判定結果に基づいて、前記境界表現による1以上の領域を制御してもよい。
【0017】
前記生成部は、前記判定部の判定結果と前記移動体の位置とに基づいて、前記境界表現による領域を削除してもよい。
【0018】
前記生成部は、前記判定部の判定結果と前記移動体の経路とに基づいて、前記境界表現による領域を削除してもよい。
【0019】
前記情報処理装置は、さらに、前記1以上の領域が生成された地図に基づいて、前記センサを有する移動体の経路を生成する経路生成部を具備してもよい。
【0020】
前記センサは、LiDAR(Light Detection and Ranging)を含んでもよい。
【0021】
本技術の一形態に係る情報処理方法は、コンピュータシステムが実行する情報処理方法であって、センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成することを含む。
【0022】
本技術の一形態に係るプログラムは、コンピュータシステムに以下のステップを実行させる。
センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成するステップ。
【図面の簡単な説明】
【0023】
【
図1】本技術に係るマップ生成システムの概要を説明するための模式図である。
【
図2】マップ生成システムの機能的な構成例を示すブロック図である。
【
図3】移動体の自己位置推定の制御の一例を示すフローチャートである。
【
図4】マップ領域生成の一例を示すフローチャートである。
【
図8】情報処理装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0024】
以下、本技術に係る実施形態を、図面を参照しながら説明する。
【0025】
図1は、本技術に係るマップ生成システムの概要を説明するための模式図である。
図1に示すように、マップ生成システム100は、移動体10及び情報処理装置20を有する。移動体10及び情報処理装置20は、有線又は無線を介して、通信可能に接続されている。各デバイス間の接続形態は限定されず、例えばWiFi等の無線LAN通信や、Bluetooth(登録商標)等の近距離無線通信を利用することが可能である。
【0026】
移動体10は、自律移動が可能なロボットである。例えば、移動体10は、飛行可能なドローン、車輪型のロボット、多足歩行型のロボット、及び多関節構造を有する脚部を備えるロボットでもよい。
本実施形態では、移動体10は、移動体10の周囲を観測可能なセンサ部を有する。例えば、センサ部は、LiDAR(Light Detection and Ranging、Laser Imaging Detection and Ranging)が用いられる。これ以外にも、ステレオカメラ、デジタルカメラ、単眼カメラ等の撮像装置、レーザ測距センサ、接触センサ、超音波センサ、ソナー等のセンサデバイスが用いられてもよい。
また本実施形態では、移動体10は、センサ部からの検出結果を情報処理装置20に出力する。例えば、移動体10の周囲に存在する障害物1の位置、障害物1の形状、及び動物体等の障害物1の種類が情報処理装置20に送信される。
【0027】
情報処理装置20は、センサ部から取得されたデータによって生成された占有率情報を含む地図に対して、占有率情報に応じて1以上の境界表現による領域を生成する。例えば、領域の境界(領域を構成する線分)は、LiDAR等から取得される距離情報に基づいて、境界が生成される。
占有率情報とは、各位置に障害物1が存在するかどうかの確率を示す情報である。本実施形態では、情報処理装置20により、センサ部からの検出結果に基づいて、占有率情報が生成される。
境界表現とは、地図内の所定の領域における障害物1が存在するか否かを示す表現である。本実施形態では、例えば、領域の内側を障害物1が存在する可能性が低い領域、領域の外側を障害物1が存在する可能性が高い領域として、占有率情報が表現される。
【0028】
また本実施形態では、境界表現として、占有率情報が回転数で表現される。
回転数とは、領域に対して反時計回りに回った総回数を表す整数である。例えば、領域外を無限遠点として、時計回りの領域2の回転数は-1となり、反時計回りの領域3の回転数は+1となる。ここで、領域外の無限遠点(回転数0)の領域は未知の領域として扱う。すなわち、障害物が存在するか否か不明な領域である。
【0029】
図1に示すように、領域を構成する各線分の進行方向(矢印方向)に対して、左側は右側に対して障害物が存在する可能性が高いことを示す。
すなわち、時計回り(回転数が負)の領域は、障害物が存在しない可能性が高い領域である。また反時計回り(回転数が正)の領域は、障害物が存在する可能性が高い領域である。
また
図1に示すように、境界表現による領域(以下、回転領域と記載)は、一部又は全てが重畳される。例えば、反時計回りの回転領域(回転数+1の領域)内に、反時計回りの回転領域が重畳された場合、回転領域の回転数は+2となる。また例えば、時計回りの回転領域(回転数-1の領域)内に、反時計回りの回転領域が重畳された場合、回転領域の回転数は0となる。
【0030】
また情報処理装置20は、回転領域が生成された地図(以下、領域マップと記載)を出力する。本実施形態では、出力された領域マップは移動体10に出力され、移動体10の自律移動における経路生成に用いられる。例えば、回転領域の回転数が大きい箇所のコストを小さくする等のコスト関数によって移動体10の経路が生成されてもよい。
また情報処理装置20は、領域マップをユーザに提示してもよい。例えば、ユーザの有する移動体10を制御するためのPCやスマートフォン等に領域マップが提示されてもよい。
なお、地図とは、予め用意されたマップ情報、及びSLAM(Simultaneous Localization and Mapping)等の移動体10により生成された周囲のマップ情報を含む。
【0031】
図2は、マップ生成システム100の機能的な構成例を示すブロック図である。
図2に示すように、マップ生成システム100は、移動体10及び情報処理装置20を有する。
【0032】
移動体10は、駆動系制御部11、外部情報検出部12、状態検出部13、センサ部14、及び地図取得部15を有する。
【0033】
駆動系制御部11は、移動体10の各種の制御信号を生成し、移動体の駆動系に関わる各種の装置の制御を行う。
例えば、移動体10は、4本の足の各関節に備わった角度やトルクを指定可能なサーボモータ、ロボット自体の移動の動きを4本の足の動きに分解・置換するモーションコントローラ並びに、各モータ内のセンサや足裏面のセンサによるフィードバック制御装置を備える。
また例えば、移動体10は、4基ないし6基の機体上向きのプロペラを持つモータ、ロボット自体の移動の動きを各モータの回転量に分解・置換するモーションコントローラを備える。
また例えば、移動体10は、内燃機関又は駆動用モータ等の駆動力を発生させるための駆動力発生装置、駆動力を車輪に伝達するための駆動力伝達機構、舵角を調節するステアリング機構、制動力を発生させる制動装置、ABS(Antilock Brake System)、ESC(Electronic Stability Control)、並びに、電動パワーステアリング装置等を備えてもよい。
【0034】
外部情報検出部12は、センサ部14からの検出結果に基づいて、移動体10の外部の情報の検出処理を行う。
例えば、外部情報検出部12は、移動体10の周囲の障害物の検出処理、認識処理、及び追跡処理、並びに、障害物までの距離の検出処理を行う。
また例えば、外部情報検出部12は、移動体10の周囲の環境の検出処理を行う。検出対象となる周囲の環境には、例えば、天候、気温、湿度、明るさ、及び路面の状態等が含まれる。
本実施形態では、外部情報検出部12は、検出処理の結果を示すデータを情報取得部21に供給する。
【0035】
状態検出部13は、駆動系制御部11からのデータ又は信号に基づいて、移動体10の状態を検出する。例えば、状態検出部13は、移動体10の速度、加速度、舵角、異常の有無及び内容、並びに、その他の移動体搭載機器の状態等の検出をする。
本実施形態では、状態検出部13は、検出処理の結果を示すデータを情報取得部21に供給する。
【0036】
センサ部14は、移動体10の周囲を観測する。本実施形態では、センサ部14により取得された検出結果が外部情報検出部12及び情報取得部21に供給される。
【0037】
地図取得部15は、移動体10の周囲、又は移動体10の移動する経路周辺の地図を取得する。例えば、地図取得部15は、移動体10に建物の1階を移動させる場合、該建物の1階の地図を取得する。この場合、予め用意されている該建物の1階の地図が入力されてもよいし、自己位置推定部22により移動体10の周囲が観測されることで地図が生成されてもよい。
本実施形態では、取得された地図が情報取得部21に供給される。
【0038】
情報処理装置20は、例えばCPUやGPU、DSP等のプロセッサ、ROMやRAM等のメモリ、HDD等の記憶デバイス等、コンピュータの構成に必要なハードウェアを有する(
図8参照)。例えばCPUがROM等に予め記録されている本技術に係るプログラムをRAMにロードして実行することにより、本技術に係る情報処理方法が実行される。
例えばPC等の任意のコンピュータにより、情報処理装置20を実現することが可能である。もちろんFPGA、ASIC等のハードウェアが用いられてもよい。
本実施形態では、CPUが所定のプログラムを実行することで、機能ブロックとしての領域生成部が構成される。もちろん機能ブロックを実現するために、IC(集積回路)等の専用のハードウェアが用いられてもよい。
プログラムは、例えば種々の記録媒体を介して情報処理装置20にインストールされる。あるいは、インターネット等を介してプログラムのインストールが実行されてもよい。
プログラムが記録される記録媒体の種類等は限定されず、コンピュータが読み取り可能な任意の記録媒体が用いられてよい。例えば、コンピュータが読み取り可能な非一過性の任意の記憶媒体が用いられてよい。
【0039】
図2に示すように、情報処理装置20は、情報取得部21、自己位置推定部22、占有率情報生成部23、領域生成部24、判定部25、領域マップ出力部26、及び経路生成部27を有する。
【0040】
情報取得部21は、種々の情報を取得する。本実施形態では、情報取得部21は、移動体10から種々の情報を取得する。例えば、移動体10周辺の物体や壁等の障害物に関する検出結果が取得される。
また情報取得部21は、取得した各種の情報を自己位置推定部22及び占有率情報生成部23に出力する。
【0041】
自己位置推定部22は、情報取得部21により取得された、外部情報検出部12、状態検出部13、センサ部14、及び地図取得部15からのデータ又は信号に基づいて、移動体10の位置及び姿勢等の推定処理を行う。また自己位置推定部22は、センサ部14より供給される検出結果に基づいて、時系列に供給される時系列情報をデータベースに蓄積すると共に、蓄積した時系列の情報に基づいて、自己位置を推定し、時系列情報自己位置として出力する。
また自己位置推定部22は、センサ部14より供給される現在の検出結果に基づいて、自己位置を推定し、現在情報自己位置として出力する。そして、自己位置推定部22は、時系列情報自己位置と、現在情報自己位置とを統合する、または、切り替えることにより自己位置推定結果として出力する。さらに、自己位置推定部22は、センサ部14より供給される検出結果に基づいて、移動体10の姿勢を検出し、姿勢の変化が検出されて、自己位置が大きく変化し、時系列情報自己位置の推定精度が低下するとみなされるとき、現在情報自己位置のみから自己位置を推定する。
また自己位置推定部22は、SLAM等により、自己位置の推定に用いる地図を生成する。
本実施形態では、自己位置推定部22により推定された移動体10の自己位置は占有率情報生成部23及び経路生成部27に供給される。
【0042】
占有率情報生成部23は、センサ部14からの検出結果に基づいて、占有率情報を生成する。本実施形態では、占有率情報生成部23は、検出結果及び移動体10の自己位置に基づいて、占有率情報を生成する。例えば、占有率情報生成部23は、取得された地図と、障害物の位置情報とに基づいて、地図上の各位置における占有率情報を生成する。
本実施形態では、占有率情報生成部23は、生成された占有率情報を領域生成部24に出力する。
【0043】
領域生成部24は、占有率情報に応じて1以上の回転領域を生成する。本実施形態では、領域生成部24は、取得された地図に対して、占有率情報生成部23により生成された占有率情報に応じた回転領域を生成する。例えば、領域生成部24は、推測された移動体10の自己位置に回転領域を生成する。
また領域生成部24は、回転領域における占有率情報を変更することが可能である。例えば、領域生成部24は、回転領域が重畳している場合、該回転領域の回転数を加算する。具体的には、反時計回りの回転領域Aに反時計回りの回転領域Bが重畳される場合、回転領域Bの回転数は+2となる。
また領域生成部24は、回転領域同士の距離に応じて、占有率情報を変更する。例えば、領域生成部24は、回転領域内の所定の点と回転領域の境界との距離に基づいて、占有率情報を変更する。
【0044】
判定部25は、種々の処理にかかる計算量が所定の閾値を超えるか否かを判定する。本実施形態では、判定部25は、移動体10の自己位置の推定にかかる計算量が所定の閾値を超えるか否かを判定する。例えば、判定部25は、移動体10又は情報処理装置20の計算を処理する性能に基づいて判定する。
また判定部25の判定結果により計算量が所定の閾値を超える場合、領域生成部24により回転領域が制御される。例えば、地図上に多くの回転領域が含まれた領域マップが生成された場合、領域生成部24により回転領域が削除される。
また領域生成部24は、移動体10の移動方向(経路)と回転領域との距離に基づいて、回転領域を削除する。例えば、領域生成部24は、移動体10の移動方向とは反対方向に存在する回転領域を削除する。また例えば、領域生成部24は、移動体10の経路と所定の閾値以上離れている回転領域を削除する。
【0045】
領域マップ出力部26は、領域生成部24により生成された回転領域を含む領域マップを出力する。本実施形態では、判定部25の判定結果に基づいて領域生成部24により制御された領域マップを出力する。なお、出力された領域マップは、ユーザの有するPC等に提示されてもよい。
【0046】
経路生成部27は、移動体10の通過する移動経路を生成する。本実施形態では、経路生成部27は、領域マップ出力部26により出力された領域マップに基づいて、移動体10の移動経路を生成する。例えば、時計回りの回転領域のコストに比べて、反時計回りの回転領域のコストを高くしたコスト関数によって、移動体10の移動経路が生成される。
なお、移動経路とは、移動体10の通過する経路、及び発進、停止、進行方向(例えば、前進、後退、方向転換等)、及び移動速度等の移動体10の動作を含む。また移動経路には、移動体10の飛行パターン等も含まれる。すなわち、旋回や8の字といった、パターンとして規定された軌跡や速度等も、行動計画及び動作計画に含まれる。例えば、旋回や8の字といった飛行パターンに対して、旋回や8の字を行う際の移動体10の速度や曲率等が移動経路として生成される。
なお移動経路を生成する方法は限定されず、例えば、環境を格子状に区切って、到達判定及び経路の重みを最適化して最良のパスを生成するA*algorithm(A star探索アルゴリズム)、及び自己位置からインクリメンタルに到達可能な場所へのパスを適切に枝刈りしながら伸ばしていくRRT(Rapidly-exploring Random Tree) algorithm等が用いられてもよい。
【0047】
なお、本実施形態において、占有率情報生成部23及び領域生成部24は、センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成する生成部として機能する。
なお、本実施形態において、自己位置推定部22は、センサを有する移動体の位置を推定する推定部に相当する。
なお、本実施形態において、判定部25は、移動体の位置の推定にかかる計算量が所定の閾値を超えるか否かを判定する判定部に相当する。
なお、本実施形態において、経路生成部27は、領域が生成された地図に基づいて、センサを有する移動体の移動に関する移動経路を生成する経路生成部に相当する。
【0048】
図3は、移動体10の自己位置推定の制御の一例を示すフローチャートである。
【0049】
自己位置推定部22により、移動体10の初期位置が決定される(ステップ101)。例えば、自己位置推定部22は、タイヤの回転数から現在位置を推定するオドメトリを用いて移動体10の初期位置を決定する。
【0050】
地図取得部15により、移動体10の周囲の地図が取得される(ステップ102)。
【0051】
センサ部14により、移動体10の周囲の検出結果が取得される。占有率情報生成部23は、該検出結果に基づいて占有率情報を生成する(ステップ103)。
【0052】
領域生成部24により、取得された地図に対して、回転領域が生成される(ステップ104)。本実施形態では、センサ部14から取得された検出結果に基づいて、障害物が存在しない可能性が高い領域には、時計回りの回転領域が生成される。また障害物が存在する可能性が高い領域には、反時計回りの回転領域が生成される。
【0053】
自己位置推定部22により、既に推定された移動体10の自己位置の分布に従って、移動体10の自己位置がサンプリングされる(ステップ105)。
また自己位置推定部22により、サンプリングされた移動体10の自己位置ごとに、回転領域を地図と照らし合わせて尤度が計算される(ステップ106)。
また自己位置推定部22により、移動体10の自己位置及び尤度から分布が予測され、移動体10の自己位置の分布が更新される(ステップ107)。
自己位置推定部22による移動体10の自己位置の推定が完了した場合、自己位置推定が終了される(ステップ108のYES)。
移動体10の自己位置の更新が必要になった場合、ステップ103へ戻る(ステップ108のNO)。例えば、自己位置推定部22は、所定の時間の経過、又は移動体10の所定の距離の移動に基づいて、自己位置推定の更新を行う。
【0054】
図4は、マップ領域生成の一例を示すフローチャートである。
【0055】
自己位置推定部22により、移動体10の初期位置が決定される(ステップ201)。
【0056】
領域生成部24により、既に領域マップがある場合、該領域マップが初期化される(ステップ202)。例えば、移動体10が領域マップの生成された地点から移動した場合や、移動体10の周囲の障害物が移動した場合等の、移動体10の周囲の環境が変わった場合に、生成された該領域マップが初期化される。なお、初期化とは、回転領域、及びSLAM等で生成された地図等の削除を含む。
【0057】
領域マップが初期化された後、
図3に示すステップ103~ステップ107の処理が実行される(ステップ203)。
【0058】
領域生成部24により、地図上の移動体10の推測された自己位置に回転領域が追加される(ステップ204)。例えば、領域生成部24は、移動体10の自己位置の分布に従い、該位置に回転領域を追加する。
【0059】
判定部25により、自己位置の推定にかかる計算量が所定の閾値を超えるか否かが判定される(ステップ205)。
【0060】
領域生成部24により、領域マップから影響の少ない回転領域が削除される(ステップ206)。影響の少ないとは、移動体10の移動を干渉しないことである。例えば、領域生成部24は、移動体10の自己位置又は移動経路から所定の距離以上離れている回転領域を削除する。また例えば、領域生成部24は、移動体10の移動方向とは反対の方向に位置する回転領域を削除する。すなわち、領域生成部24は、移動体10の移動を干渉しない位置に存在する回転領域を削除する。これにより、領域マップの単純化ができ、計算量の削減が可能である。
【0061】
出力された領域マップが用途に適する場合、マップ領域生成のフローが終了する(ステップ207のYES)。例えば、移動体10の移動経路の生成に十分な情報が領域マップに含まれる場合、フローが終了する。出力された領域マップが用途に適さない場合、又は領域マップの更新が必要となった場合にステップ203へ戻る(ステップ207のNO)。
【0062】
図5は、回転領域の例を示す模式図である。
図5に示す例は、回転領域が完全に包含(重畳)される状態が示される。
本実施形態では、
図5に示すように、領域生成部24により、時計回りの円形の回転領域30、回転領域30内の反時計回りの矩形の回転領域31、反時計回りの矩形の回転領域32、及び回転領域32内の反時計回りの五角形の回転領域33が生成される。
【0063】
この場合、領域外を無限遠点(回転数0)とすると、回転領域30内の占有率情報が回転数として-1と表現される。また回転領域30内の占有率情報は、回転領域31の回転方向(向き)が反時計回りのため、-1に1を足すことで0となる。
回転領域32内の占有率情報は、+1となる。また回転領域32内の占有率情報は、回転領域33の向きが反時計回りのため、+1に1を足すことで+2となる。
【0064】
すなわち、矩形の回転領域31を除く円形の回転領域30内では、障害物が存在する可能性が低く、矩形の回転領域31内では、障害物が存在するか不明な状態を示す。
また五角形の回転領域33を除く矩形の回転領域32内では、障害物が存在する可能性が高く、五角形の回転領域33内では、障害物が矩形の回転領域32よりも存在する可能性が高い。
【0065】
図6は、回転領域の他の例を示す模式図である。
図6に示す例は、回転領域の一部が包含される状態が示される。
本実施形態では、
図6に示すように、領域生成部24により、反時計回りの矩形の回転領域35、反時計回りの四角形の回転領域36、及び時計回りの円形の回転領域37が生成される。
【0066】
この場合、領域外を無限遠点(回転数0)とすると、四角形の回転領域36及び円形の回転領域37が重畳されない矩形の回転領域35(領域38及び領域39)の占有率情報が、回転数として+1と表現される。
また同様に矩形の回転領域35及び円形の回転領域37が重畳されない四角形の回転領域36(領域40及び領域41)の占有率情報が、回転数として+1と表現される。
また同様に、矩形の回転領域35及び四角形の回転領域36が重畳されない円形の回転領域37(領域42及び領域43)の占有率情報が、回転数として-1と表現される。
【0067】
円形の回転領域37と重畳されず、矩形の回転領域35及び四角形の回転領域36が重畳している領域44の占有率情報は、共に向きが反時計回りのため、+1に1を足すことで+2となる。
また四角形の回転領域36と重畳されず、矩形の回転領域35及び円形の回転領域37が重畳している領域45及び領域46の占有率情報は、向きが反対のため0となる。同様に、矩形の回転領域35と重畳されず、四角形の回転領域36及び円形の回転領域37が重畳している領域47の占有率情報も回転数が0となる。
【0068】
矩形の回転領域35、四角形の回転領域36、及び円形の回転領域37が重畳する領域48の占有率情報は、時計回りの回転領域が1つ、反時計回りの回転領域が2つのため、回転数が+1となる。
【0069】
図7は、回転領域の他の例を示す模式図である。
図7に示す例では、1つの回転領域が交差する状態が示される。
本実施形態では、
図7に示すように、領域生成部24により、反時計回りの回転領域50が生成される。また回転領域50は、線分51及び線分52が交差している。すなわち、1つの回転領域50は、線分で囲まれた領域53及び領域54により2つの領域を有する。
【0070】
この場合、領域外を無限遠点(回転数0)とすると、領域53の占有率情報は、反時計回りのため、回転数として+1と表現される。また領域54の占有率情報は、向きが時計回りになるため、回転数として-1と表現される。
【0071】
以上、本実施形態に係る情報処理装置20は、センサ部14からの検出結果により生成された、各位置に障害物1が存在するかどうかの確率を示す占有率情報を含む地図に対して、占有率情報に応じて1以上の境界表現による回転領域が生成される。これにより、少ない計算量で、高精度な地図作成が可能となる。
【0072】
一般に、ロボット等が事前に作成された地図を参照して自己位置推定を行う時、もしくは自己位置推定とマップ生成を同時に行うSLAM等を行う時、マップの情報を記憶する必要がある。従来ではグリッド状のデータ構造で表現が行われた。グリッド状のデータ構造は、生成時に格子幅を決定する必要があり、原理的に格子幅より細かな形状を表現することが難しい。格子幅を細かくした場合、必要な記憶量、計算量が急激に増大するため、格子幅を細かくすることで精度を向上することには限界がある。
【0073】
ロボットが物体を掴む動作を行う場合や、細い通路を通過する場合など、ロボットのタスクによっては高精度な位置決めが求められる。しかし、高精度な位置決めには、高精度な自己位置推定が必要であり、ロボットの高速な動作のために高いリアルタイム性が要求される場合やエッジプロセッシング等で性能の低いコンピュータを使用する場合には、計算量の削減が要求される。
【0074】
そこで本技術では、センサから取得されたデータによって生成された、各位置に障害物が存在するかの確率を示す占有率情報を含む地図に対して、占有率情報に応じて1以上の境界表現による回転領域が生成される。これにより、高精度で、少ない計算量で、外乱に強い自己位置推定やSLAMを実現することが可能となる。
複数の回転領域の一部又は全てが包含されることで、占有率情報の小さな差や大きな差を効率的に表現できる。
【0075】
またOをorder、Aを面積、pを精度とすると、グリッド状のデータ構造の場合、メモリ使用量がO(A/p^2)となる。また処理時間は、O(A/p^2)となる。
境界表現の場合、メモリ使用量がO(A/p)となる。また処理時間は、O(A/plogA/p)となる。
すなわち、精度が格子幅に制約されず、部分ごとの占有率が表現できるため、時系列データの蓄積による高精度な自己位置推定を効率的に処理できる。
【0076】
またマップにおける情報は疎であることが多い。そのため、境界表現では数値が変化する箇所のみを扱うため、疎な情報に対して処理時間短縮、省メモリ化が可能となる。
【0077】
<その他の実施形態>
本技術は、以上説明した実施形態に限定されず、他の種々の実施形態を実現することができる。
【0078】
上記の実施形態では、回転領域内の占有率情報が定数として表現された。これに限定されず、回転領域の境界(回転領域を構成する線分)との距離に応じて占有率情報が変化されてもよい。また回転領域同士の集合、回転領域、又は回転領域の境界に対して、境界との距離における占有率情報の変化の関係を表す関数のパラメータが設定されてもよい。これにより、占有率の滑らかな変化が表現できる。
【0079】
上記の実施形態では、1つのマップ領域に、障害物が存在する可能性が高い領域(反時計回りの回転領域)と、障害物が存在する可能性が低い領域(時計回りの回転領域)とが表現された。これに限定されず、障害物が存在する可能性が高い領域を表すマップ領域と、障害物が存在する可能性が低い領域を表すマップ領域とが分けて処理されてもよい。
【0080】
上記の実施形態では、無限遠点における回転数が0と表現された。これに限定されず、無限遠点又は所定の点での占有率が保存され、該保存された占有率情報を基準として回転領域の占有率情報が変更されてもよい。これにより、マップ領域全体のうち多くを占める占有率情報が、異なるマップで効率的に表現することができる。
【0081】
上記の実施形態では、回転領域が包含されることで、回転数が加算された。これに限定されず、様々な演算処理が行われてもよい。例えば、符号反転、四則演算、AND/OR/XOR等のブーリアン、関数の適用等が行われてもよい。また回転領域の平行移動、回転領域の拡大縮小、回転領域の回転、回転領域のオフセット等が行われてもよい。これにより、グリッド状のデータ構造に比べて、少ない計算量で計算できる。
【0082】
上記の実施形態では、回転領域を含む領域マップが出力された。これに限定されず、処理に必要な箇所のみを切り取るクリッピング処理が行われてもよい。例えば、反時計回りの回転領域が存在する箇所に対してクリッピング処理が行われてもよい。これにより、処理量の削減ができる。
【0083】
上記の実施形態では、反時計回りの回転領域の回転数が+1、時計回りの回転領域の回転数が-1と表現された。これに限定されず、時計回りの回転領域の回転数が+1と表現されてもよい。もちろん、数字以外の表現により占有率情報が表現されてもよい。
【0084】
上記の実施形態では、各位置に障害物が存在するかの確率を示す占有率情報を含む領域マップが出力された。これに限定されず、例えば、移動体の探索中の目標物が存在する可能性等が境界表現で表現されてもよい。すなわち、占有率以外にも、空間に対して情報が疎であることが期待できるデータに関して、本技術は適用可能である。
【0085】
図8は、情報処理装置20のハードウェア構成例を示すブロック図である。
【0086】
情報処理装置20は、CPU201、ROM202、RAM203、入出力インタフェース205、及びこれらを互いに接続するバス204を備える。入出力インタフェース205には、表示部206、入力部207、記憶部208、通信部209、及びドライブ部210等が接続される。
【0087】
表示部206は、例えば液晶、EL等を用いた表示デバイスである。入力部207は、例えばキーボード、ポインティングデバイス、タッチパネル、その他の操作装置である。入力部207がタッチパネルを含む場合、そのタッチパネルは表示部206と一体となり得る。
【0088】
記憶部208は、不揮発性の記憶デバイスであり、例えばHDD、フラッシュメモリ、その他の固体メモリである。ドライブ部210は、例えば光学記録媒体、磁気記録テープ等、リムーバブルの記録媒体211を駆動することが可能なデバイスである。
【0089】
通信部209は、LAN、WAN等に接続可能な、他のデバイスと通信するためのモデム、ルータ、その他の通信機器である。通信部209は、有線及び無線のどちらを利用して通信するものであってもよい。通信部209は、情報処理装置20とは、別体で使用される場合が多い。
【0090】
上記のようなハードウェア構成を有する情報処理装置20による情報処理は、記憶部208またはROM202等に記憶されたソフトウェアと、情報処理装置20のハードウェア資源との協働により実現される。具体的には、ROM202等に記憶された、ソフトウェアを構成するプログラムをRAM203にロードして実行することにより、本技術に係る情報処理方法が実現される。
【0091】
プログラムは、例えば記録媒体211を介して情報処理装置20にインストールされる。あるいは、グローバルネットワーク等を介してプログラムが情報処理装置20にインストールされてもよい。その他、コンピュータ読み取り可能な非一過性の任意の記憶媒体が用いられてよい。
【0092】
通信端末に搭載されたコンピュータとネットワーク等を介して通信可能な他のコンピュータとが連動することにより本技術に係る情報処理装置、情報処理方法、及びプログラムが実行され、本技術に係る情報処理装置が構築されてもよい。
【0093】
すなわち本技術に係る情報処理装置、情報処理方法、及びプログラムは、単体のコンピュータにより構成されたコンピュータシステムのみならず、複数のコンピュータが連動して動作するコンピュータシステムにおいても実行可能である。なお、本開示において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれもシステムである。
【0094】
コンピュータシステムによる本技術に係る情報処理装置、情報処理方法、及びプログラムの実行は、例えば、占有率情報の生成、回転領域の生成、及び領域マップの出力等が、単体のコンピュータにより実行される場合、及び各処理が異なるコンピュータにより実行される場合の両方を含む。また所定のコンピュータによる各処理の実行は、当該処理の一部又は全部を他のコンピュータに実行させその結果を取得することを含む。
【0095】
すなわち本技術に係る情報処理装置、情報処理方法、及びプログラムは、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成にも適用することが可能である。
【0096】
各図面を参照して説明した占有率情報生成部、領域生成部、領域マップ出力部等の各構成、通信システムの制御フロー等はあくまで一実施形態であり、本技術の趣旨を逸脱しない範囲で、任意に変形可能である。すなわち本技術を実施するための他の任意の構成やアルゴリズム等が採用されてよい。
【0097】
なお、本開示中に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。上記の複数の効果の記載は、それらの効果が必ずしも同時に発揮されるということを意味しているのではない。条件等により、少なくとも上記した効果のいずれかが得られることを意味しており、もちろん本開示中に記載されていない効果が発揮される可能性もある。
【0098】
以上説明した各形態の特徴部分のうち、少なくとも2つの特徴部分を組み合わせることも可能である。すなわち各実施形態で説明した種々の特徴部分は、各実施形態の区別なく、任意に組み合わされてもよい。
【0099】
なお、本技術は以下のような構成も採ることができる。
(1)センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成する生成部
を具備する情報処理装置。
(2)(1)に記載の情報処理装置であって、
前記生成部は、回転数として表現された前記占有率情報に基づいて、前記1以上の領域を生成する
情報処理装置。
(3)(1)又は(2)に記載の情報処理装置であって、
前記1以上の領域は、複数の領域であり、
前記生成部は、前記複数の領域間の距離に基づいて、前記占有率情報を変更する
情報処理装置。
(4)(3)に記載の情報処理装置であって、
前記生成部は、前記1以上の領域内における所定の点と前記1以上の領域を構成する境界との距離に基づいて、前記占有率情報を変更する
情報処理装置。
(5)(1)から(4)のうちいずれか1つに記載の情報処理装置であって、
前記生成部は、前記占有率情報に基づいて、前記1以上の領域を重畳させる
情報処理装置。
(6)(1)から(5)のうちいずれか1つに記載の情報処理装置であって、
前記センサは、測距センサを含み、
前記生成部は、前記測距センサからの距離情報に基づいて、前記1以上の領域の各々を生成する
情報処理装置。
(7)(6)に記載の情報処理装置であって、
前記生成部は、前記距離情報に基づいて、前記1以上の領域を構成する境界を決定する
情報処理装置。
(8)(1)から(7)のうちいずれか1つに記載の情報処理装置であって、
前記センサは、移動体に搭載されており、
前記情報処理装置は、さらに、前記移動体の位置を推定する推定部を具備する
情報処理装置。
(9)(1)から(8)のうちいずれか1つに記載の情報処理装置であって、
前記センサは、移動体に搭載されており、
前記情報処理装置は、さらに、前記移動体の位置の推定にかかる計算量が所定の閾値を超えるか否かを判定する判定部を具備する
情報処理装置。
(10)(9)に記載の情報処理装置であって、
前記生成部は、前記判定部の判定結果に基づいて、前記境界表現による1以上の領域を制御する
情報処理装置。
(11)(9)又は(10)に記載の情報処理装置であって、
前記生成部は、前記判定部の判定結果と前記移動体の位置とに基づいて、前記境界表現による領域を削除する
情報処理装置。
(12)(9)又は(11)に記載の情報処理装置であって、
前記生成部は、前記判定部の判定結果と前記移動体の経路とに基づいて、前記境界表現による領域を削除する
情報処理装置。
(13)(1)から(12)のうちいずれか1つに記載の情報処理装置であって、
前記1以上の領域が生成された地図に基づいて、前記センサを有する移動体の経路を生成する経路生成部を具備する
情報処理装置。
(14)(1)から(13)のうちいずれか1つに記載の情報処理装置であって、
前記センサは、LiDAR(Light Detection and Ranging)を含む
情報処理装置。
(15)
センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成する
ことをコンピュータシステムが実行する情報処理方法。
(16)
センサからの検出結果により生成された、各位置に障害物が存在するかどうかの確率を示す占有率情報を含む地図に対して、前記占有率情報に基づいて前記障害物を推定するための境界表現による1以上の領域を生成するステップ
をコンピュータシステムに実行させるプログラム。
【符号の説明】
【0100】
10…移動体
14…センサ部
20…情報処理装置
22…自己位置推定部
23…占有率情報生成部
24…領域生成部
25…判定部
26…領域マップ出力部
27…経路生成部
100…マップ生成システム