(57)【要約】      （修正有）【課題】走行環境の変化に影響を受けることなく、自己位置推定の精度を高める。【解決手段】移動体は、自己位置推定のためのパラメータに基づいて自己位置を推定する自己位置推定部６００と、走行中の走行環境に応じて前記パラメータを動的に切り換えるパラメータ切換部５００と、を備える。この構成により、走行中の走行環境に応じて自己位置推定のためのパラメータが動的に切り換わるため、走行環境の変化に影響を受けることなく、自己位置推定の精度を高めることが可能となる。【選択図】図４
2020095339.tif 000002
【特許請求の範囲】
【請求項１】
自己位置推定のためのパラメータに基づいて自己位置を推定する自己位置推定部と、
走行中の走行環境に応じて前記パラメータを動的に切り換えるパラメータ切換部と、
を備える、移動体。
【請求項２】
前記パラメータは、前記自己位置推定のために使用するセンサ、自己位置推定のための複数の方式を融合する拡張カルマンフィルタにおける共分散の値、又は個々の前記方式における設定値に対応するパラメータである、請求項１に記載の移動体。
【請求項３】
前記パラメータは、前記自己位置推定のために使用するＩＭＵ、ホイールオドメトリ、ビジュアルオドメトリ、ＳＬＡＭ、またはＧＰＳに対応するパラメータである、請求項２に記載の移動体。
【請求項４】
前記パラメータは、環境地図の経由地情報と対応付けて予め定められ、
前記パラメータ切換部は、走行経路の経由地を前記経由地情報に当てはめて前記パラメータを切り換える、請求項１に記載の移動体。
【請求項５】
走行時に前記走行環境を認識する環境認識部を備え、
前記パラメータ切換部は、走行時に認識した前記走行環境に応じて前記パラメータを切り換える、請求項１に記載の移動体。
【請求項６】
前記走行環境に応じた前記パラメータのプロファイルが予め登録され、
前記パラメータ切換部は、走行時に認識した前記走行環境から得られる前記プロファイルに基づいて、前記パラメータを切り換える、請求項５に記載の移動体。
【請求項７】
前記パラメータは、環境地図の経由地情報と対応付けて予め定められ、
前記パラメータ切換部は、走行経路の経由地を前記経由地情報に当てはめて前記パラメータを切り換え、
前記自己位置推定のために使用するセンサの状態を監視するセンサ監視部を備え、
異なる走行経路における前記パラメータと前記パラメータに対応する前記センサの状態に基づいて、経路を選択する経路選択部を更に備える、請求項１に記載の移動体。
【請求項８】
自己位置推定のためのパラメータに基づいて自己位置を推定することと、
走行中の走行環境に応じて前記パラメータを動的に切り換えることと、
を備える、移動体の制御方法。
【請求項９】
自己位置推定のためのパラメータに基づいて自己位置を推定する手段、
走行中の走行環境に応じて前記パラメータを動的に切り換える手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、移動体、移動体の制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、例えば下記の特許文献１には、走行環境の地図データと距離センサ部の検知結果である幾何形状データとを用いて自装置の位置姿勢を推定して、自装置の位置姿勢が一意に定まる状態と、自装置の位置姿勢が一意に定まらない状態とで走行モードを切り替えることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６３４８９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記特許文献に記載された手法は、環境に応じて走行モードを切り替えることは想定しているが、自己装置の位置姿勢が一意に定まらない状態を許容するものであるため、移動体自身が自己位置を認識できなくなる（自己位置をロストする）可能性を内在している。
【０００５】
そこで、走行環境の変化に影響を受けることなく、自己位置推定の精度を高めることが求められていた。
【課題を解決するための手段】
【０００６】
本開示によれば、自己位置推定のためのパラメータに基づいて自己位置を推定する自己位置推定部と、走行中の走行環境に応じて前記パラメータを動的に切り換えるパラメータ切換部と、を備える、移動体が提供される。
【０００７】
また、本開示によれば、自己位置推定のためのパラメータに基づいて自己位置を推定することと、走行中の走行環境に応じて前記パラメータを動的に切り換えることと、を備える、移動体の制御方法が提供される。
【０００８】
また、本開示によれば、自己位置推定のためのパラメータに基づいて自己位置を推定する手段、走行中の走行環境に応じて前記パラメータを動的に切り換える手段、としてコンピュータを機能させるためのプログラムが提供される。
【図面の簡単な説明】
【０００９】
【図１】本開示の一実施形態に係る移動体のシステムの構成を示す模式図である。
【図２Ａ】移動体が走行するルートを示す模式図である。
【図２Ｂ】移動体が走行するルートを示す模式図である。
【図３Ａ】移動体が図２Ａ及び図２Ｂに示す経路を走行する際に、目標位置を点で示す模式図である。
【図３Ｂ】移動体が図２Ａ及び図２Ｂに示す経路を走行する際に、目標位置を点で示す模式図である。
【図４】事前地図に環境情報を埋め込む場合のシステムの構成を示す模式図である。
【図５】事前地図に環境情報を埋め込む場合の処理を示すフローチャートである。
【図６】移動体自身が環境を認識する場合のシステムの構成を示す模式図である。
【図７】自己位置推定プロファイルの例を示す模式図である。
【図８】移動体自身が環境を認識する場合の処理を示すフローチャートである。
【図９】パラメータを埋め込んだ地図とセンサ状況に応じて経路計画を行う場合のシステムの構成を示す模式図である。
【図１０】パラメータを埋め込んだ地図とセンサ状況に応じて経路計画を行う場合の処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１１】
なお、説明は以下の順序で行うものとする。
１．本開示の概要
２．自己位置推定の方法
２．１．デッドレコニング
２．２．ＳＬＡＭ
２．３．ビジュアルオドメトリ
２．４．ＧＰＳ
２．５．ホイールオドメトリ
２．６．ＩＭＵ
３．拡張カルマンフィルタによる自己位置推定
４．環境に応じたパラメータの例
４．１．周りに何も無い環境
４．２．砂場
４．３．ビルに囲まれた屋外環境
４．４．ガラス壁と隣接した廊下環境
４．５．繰り返しパターンが多いオフィス環境
５．パラメータの切換方法  
５．１．事前地図に環境情報を埋め込む例
５．２．移動体自身が環境を認識する場合
【００１２】
１．本開示の概要
ロボットなどの移動体が自立移動をする際、予め周辺環境地図を生成し、センシング情報に基づき、地図に対する自身の位置を推定して、目的地を目指して走行する。この際、推定した自己位置と目的地に向けた経路を参照しながら制御量を計算する。そのため、自己位置推定の精度は、自律走行ができるか否かを決定する重要な要因となる。
【００１３】
自己位置推定手法としては様々な手法が存在しており、ロボティクスにおいて大きな研究テーマとなっている。それぞれの自己位置推定手法は、使用センサやアルゴリズムの特性上、得意とする環境や苦手とする環境が異なる。また、各手法にはそれぞれ多くの設定パラメータが存在するため、環境に応じたチューニングが必要となる場合もある。
【００１４】
また、センサーフュージョン（センサの融合）により自己位置推定のロバスト性を向上させることを想定した場合、フュージョンに利用するセンサの重みを決定するパラメータも、環境に応じてチューニングすることが望ましい。従って、複数の異なる特性を有する走行環境を跨がって自律移動するためには、それぞれの環境に応じて自己位置推定の手法やパラメータを適切に切り替えることが求められる。
【００１５】
本実施形態では、ロボットなどの移動体の自己位置推定に関し、ロバスト性の高い自己位置推定を実現させるために、特性の異なる環境にチューニングした自己位置推定の設定パラメータを、自身が走行している環境に応じて動的に変更する。これにより、自己位置推定の設定パラメータ、使用するセンサ、自己位置推定アルゴリズム、処理の設定を変更させる。なお、本実施形態では、地上を車輪で走行する移動体を例示するが、移動体は飛行するドローンなどであっても良い。
【００１６】
２．自己位置推定の方法
自己位置推定の方法として、以下のデッドレコニング、ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ）、ビジュアルオドメトリ（ＶＯ；Ｖｉｓｕａｌ
Ｏｄｏｍｅｔｒｙ）、ＧＰＳ（Ｇｌｏｂａｌ Ｐｏｓｉｔｉｏｎｉｎｇ Ｓｙｓｔｅｍ）、ホイールオドメトリ、ＩＭＵ（Ｉｎｅｒｔｉａｌ Ｍｅａｓｕｒｅｍｅｎｔ
Ｕｎｉｔ）を例示する。なお、自己位置推定の方法はこれらに限定されるものではなく、他の方法を用いても良い。以下では、それぞれの方法の特徴を説明する。
【００１７】
２．１．デッドレコニング
デッドレコニングは、内界センサを利用して相対的な自己位置を推定する手法である。慣性センサやホイールオドメトリから得られる速度や角速度を積分して累積していくことで、基準点（原点）からの自身の移動量を求める。移動量を累積していくため時間と共に誤差が大きくなる場合があるが、比較的短時間であれば、連続的で精密な自己位置を推定することができる。
【００１８】
２．２．ＳＬＡＭ
ＳＬＡＭは、レーザスキャナやカメラを用いて自己位置と周辺地図を同時に推定する手法である。移動体の周辺の見え方と自身の移動量を鑑みて、辻褄を合わせながら自己位置を推定し、同時に環境地図を作成する。特徴的な地物がない環境では、地図による補正が難しいため自己位置推定の精度が下がるという特徴を持つ。また、ガラスや鏡などの近辺では、レーザスキャナの観測値にノイズが乗るため、自己位置推定精度が低下する特性を有する。
【００１９】
２．３．ビジュアルオドメトリ
ビジュアルオドメトリは、カメラ画像内の特徴量の時間的変化量から自身の移動量を推定する手法である。カメラのキャリブレーションによっては距離オーダーが実測と異なる場合がある。ステレオ視を利用することで実測値に近い距離を求めることができるが、精度としては比較的低い場合がある。また、明暗がある環境では特徴点を見失うことがあり、自己位置推定精度が低下する場合もある。また、画像にブレがある場合は特徴量を抽出できないこともあり得る。
【００２０】
２．４．ＧＰＳ
ＧＰＳは、人工衛星が発する信号を受信し、三角測量的に受信機の位置を推定する手法である。屋外であれば地球上での絶対座標を直接計測することができる。建物付近では反射波、回折波といったマルチパスの影響により測位誤差が発生する場合がある。また、中途半端に信号が届く高層ビルに囲まれた環境での測位精度が低い。
【００２１】
２．５．ホイールオドメトリ
ホイールオドメトリは、タイヤの回転量を計測し、累積することで自身の移動量を計算する手法であり、デッドレコニングの一種である。タイヤが滑ると自己位置に誤差が生じるため、滑りやすい地面では自己位置推定精度が劣化する場合もある。
【００２２】
２．６．ＩＭＵ
ＩＭＵは、慣性計測装置と呼ばれ、加速度や角速度を検出する。自身の姿勢の推定や、前エポックでの状態から現エポックの状態を予測する際に利用される。カルマンフィルタでは、予測更新処理や時刻更新処理と呼ばれる処理時に利用されることが多い。
【００２３】
３．拡張カルマンフィルタによる自己位置推定
実環境下において移動体が走行する場合、様々な環境が想定される。例えば、屋内であれば、物が多く特徴点の抽出がし易い環境、鏡やガラスが多くレーザスキャナなどのセンサが使いにくい環境、廊下のように特徴がない環境、などが挙げられる。
【００２４】
また、屋外であれば、付近に建物が多く、ＧＰＳ信号にノイズが入りやすい環境、周りに何も存在しない広場のような環境、走行面に砂が多く車輪が滑りやすい環境などが挙げられる。
【００２５】
このような特性の異なる環境では、それぞれの環境に適した組み合わせのセンサを用いて、最適化したパラメータで自己位置推定を行うことが求められる。本実施形態では、拡張カルマンフィルタで複数のセンサや自己位置推定手法を融合させる。
【００２６】
図１は、本開示の一実施形態に係る移動体のシステム１０００の構成を示す模式図である。図１に示すように、このシステム１０００は、自己位置推定を行う機能ブロックとして、ＩＭＵ１００、ホイールオドメトリ１１０、ビジュアルオドメトリ１２０、ＳＬＡＭ１３０、ＧＰＳ１４０、を有している。また、システム１０００は、自己位置推定を行う機能ブロック（センサ）として、磁気センサ１５０、カメラ２００、レーザスキャナ２１０、を有している。カメラ２００はビジュアルオドメトリ１２０に利用され、レーザスキャナ２１０はＳＬＡＭ１３０に利用される。また、磁気センサ１５０は方位を検出する。また、システム１０００は、これらの自己位置推定手法を融合する拡張カルマンフィルタ３００を有している。なお、図１に示すシステム１０００の各構成要素は、センサ、回路などのハードウェア、またはＣＰＵなどの中央演算処理装置とこれを機能させるためのプログラムから構成することができる。後述する図４、図６、図９においても同様である。
【００２７】
一例として、拡張カルマンフィルタ３００を用いた自己位置推定では、ＩＭＵ１００とホイールオドメトリ１１０によるデッドレコニングで前時刻サンプルから現時刻サンプルでの自己位置を予測し、現時刻サンプルで取得された観測値を用いて予測値を補正することで自己位置を推定する。前時刻サンプルから現時刻サンプルでの自己位置の予測は、時刻更新のブロック３１０で行われる。また、現時刻サンプルで取得された観測値を用いた予測値の補正は、観測更新のブロック３２０で行われる。なお、観測値は、主にビジュアルオドメトリ１２０、ＳＬＡＭ１３０、ＧＰＳ１４０、磁気センサ１５０から得られ、共分散の値に基づいてフュージョンされる。
【００２８】
本実施形態では、予測値を求めるために、ＩＭＵ１００、ホイールオドメトリ１１０などの内界センサを利用する。拡張カルマンフィルタ３００は、観測値と推定値の関係を表すモデルを適切に定義することで、様々なセンサ値や自己位置推定手法を統合することができる。但し、観測値の信頼度を決定する設定パラメータとして、各観測値の共分散を適切に設定する。共分散の値が小さいほど信頼性の高いセンサ値、自己位置推定となり、共分散の値が大きいほど信頼性の低いセンサ値、自己位置推定となる。本実施形態では、移動体の走行環境に応じて、拡張カルマンフィルタ３００の共分散の値を動的に変更する例を示す。
【００２９】
４．環境に応じたパラメータの例
図２Ａ及び図２Ｂは、移動体１０が走行するルートを示す模式図である。図２Ａ及び図２Ｂに示すように、移動体１０は、まず広場３０から砂場４０を通り、付近がビル２０に囲まれた道５０を経由して、オフィスがある建物４０内に入る。
【００３０】
図２Ｂは、建物４０の内部を示している。移動体１０は、横にガラス壁５２のある廊下５４を通り、デスク６０の間を通り抜けて目標地点９０（席７０）に到着する。
【００３１】
図１で示したように、自律移動体の自己位置推定に用いるセンサは、ＩＭＵ１００、ホイールオドメトリ１１０、レーザスキャナ２１０、ＧＰＳ１４０、カメラ２００、磁気センサ１５０とし、拡張カルマンフィルタ３００にてセンサーフュージョンを行うものとする。ただし、レーザスキャナ２１０はＩＣＰマッチングを行うＳＬＡＭ１３０を利用し、カメラ２００はビジュアルオドメトリ１２０を利用しているものとする。
【００３２】
以下では、図２Ａ及び図２Ｂに示す経路を移動体１０が走行する場合に、環境に応じたパラメータの例について説明する。
【００３３】
４．１．周りに何も無い環境
移動体１０が屋外を走行し、周りに地物がない環境を走行する場合は、特に誤差要因となるものは無いが、目印となるランドマークが存在しないため、ＳＬＡＭ１３０は役に立たない。このような環境では、ＧＰＳ１４０の測位信号を主としても用い、自己位置推定を行う。つまり、周りに地物が存在しない広場３０を走行する際には、ＧＰＳ１４０の誤差要因となるマルチパスの影響を受けにくいため、ＧＰＳ１４０の信頼度を高くする。従って、拡張カルマンフィルタ３００では、ＧＰＳの共分散の値を小さくするとともに、ＳＬＡＭ１３０の共分散の値を大きくすることが望ましい。
【００３４】
４．２．砂場
移動体１０が、屋外の環境ではあるが地面が滑りやすい砂場４０を走行する場合、ホイールオドメトリ１１０は誤差が発生しやすいため、ホイールオドメトリ１１０によるデッドレコニングの信頼度は低くなる。このため、ホイールオドメトリ１１０を利用せずに、ＩＭＵ１００によるデッドレコニングを利用する。また、砂場４０では、周りに地物が存在せず、広場３０と同様にＧＰＳ１４０が利用できるので、ＧＰＳ１４０の共分散は引き続き小さくする。
【００３５】
４．３．ビルに囲まれた屋外環境
ビル２０に囲まれた道５０のような屋外の環境では、ＧＰＳ１４０の測位解にマルチパス誤差が含まれるため、ＧＰＳ１４０の共分散の値を大きくすることが望ましい。また、道５０が舗装されていれば、移動体１０の車輪が滑ることは考えにくいため、ホイールオドメトリ１１０の共分散を小さくする。
【００３６】
４．４．ガラス壁と隣接した廊下環境
図２Ｂに示すように、移動体１０がガラス壁５２に隣接した廊下５４を走行する場合、屋内の走行であるためＧＰＳ１４０は使用しない。また、ガラス壁５２は、レーザー光を透過したり反射したりするため、レーザスキャナ２１０による測距情報には誤差が生じる。従って、このようなガラスが多い環境では、レーザスキャナ２１０を利用したＳＬＡＭ１３０の信頼度を下げることが望ましい。このため、拡張カルマンフィルタ３００では、ＳＬＡＭ１３０から得られる自己位置の共分散を大きく設定する。
【００３７】
４．５．繰り返しパターンが多いオフィス環境
図２Ｂに示すように、建物４０の内部では、物体が多く、デスク６０などの規則的な繰り返しパターンが存在する。このような環境では、特徴点の抽出がし易いため、ビジュアルオドメトリ１２０やＳＬＡＭ１３０の利用が好適である。一方、ＳＬＡＭ１３０で地図とのマッチング処理が含まれる場合は、規則的な繰り返しパターンが存在するため、誤マッチングが生じ易い環境となる。従って、拡張カルマンフィルタ３００の共分散の設定ではなく、ＳＬＡＭ１３０におけるマップマッチング処理の停止や、マップマッチング処理の周期を遅くすることで誤マッチング発生率を下げることが効果的となる。
【００３８】
以上の例のように、自己位置推定を行う環境に応じてパラメータを設定することが、ロバストな自己位置推定には好適である。また、繰り返しパターンが多いオフィス環境の例のように、拡張カルマンフィルタ３００の共分散行列を変更するだけではなく、ＳＬＡＭ１３０などの各自己位置推定手法のパラメータを変更することが望ましい。
【００３９】
５．パラメータの切換方法  
以上では、自己位置推定のパラメータを環境に応じて設定する例を述べた。以下では、走行環境に応じて自己位置推定のパラメータを実際に切り換える手法について説明する。自己位置推定のパラメータを切り換えるためには、移動体１０に予め走行環境の情報を与えるか、移動体１０自身が走行環境を認識する必要がある。
【００４０】
ここでは、移動体１０がナビゲーション時に利用する目的地の位置情報と合わせて自己位置推定用のパラメータを与える手法と、移動体が識別器を用いて外環境を認識し、自己位置推定用のパラメータプロファイルを切り替える手法について述べる。
【００４１】
５．１．事前地図に環境情報を埋め込む例
図３Ａ及び図３Ｂは、移動体１０が図２Ａ及び図２Ｂに示す経路を走行する際に、目標位置８０を点で示す模式図である。移動体１０が自律移動をする際は、予め移動体１０に目標地点９０を与える。移動体１０は、環境地図に基づき、周囲の障害物を避けるように目標地点９０に向けた走行経路を計算する。このとき、経路探索アルゴリズムが利用されるが、目標位置が遠すぎると処理負荷が大きくなる。このため、移動体１０に与える目標位置８０は、図３Ａ及び図３Ｂに示すように、例えば１０ｍ程度の間隔に設定される。この移動体１０に与える目標位置８０の情報は、自己位置推定に環境地図を利用する場合、環境地図上にプロットされる。ここで、目標位置８０がプロットされた環境地図を事前地図と称することとする。
【００４２】
事前地図は、環境地図に経由地情報（目標位置８０の情報）が追加されたものである。本実施形態では、事前地図に対して、更に走行環境に応じた自己位置推定用のパラメータを予め埋め込んでおく。このため、事前地図から、各目標位置８０に対応した地点で、自己位置推定用のパラメータを取得することができる。
【００４３】
移動体１０は、事前地図から、目標位置８０の情報と共に、その目標位置８０に移動する際に利用する自己位置推定用のパラメータを読み込み、走行環境に適したパラメータを利用して自己位置推定処理を行う。このパラメータには、使用するセンサの適否、拡張カルマンフィルタ３００の共分散の値、上述したＳＬＡＭ１３０などの各自己位置推定手法に必要な設定が含まれる。
【００４４】
図４は、事前地図に環境情報を埋め込む場合のシステム２０００の構成を示す模式図である。図４に示すように、システム１０００は、事前地図４００、パラメータ選択部５００（パラメータ切換部）、自己位置推定部６００、経路計画部７００、車両制御部８００を有している。この例では、事前地図４００が予め準備され、事前地図４００は環境地図４１０、自己位置推定パラメータ４２０、経由地情報４３０を含む。
【００４５】
自己位置推定部６００は、自己位置推定に利用するパラメータを受け取り、そのパラメータを利用して自己位置推定処理を行う。自己位置推定部６００は、図１に示すシステム１０００に対応する。パラメータ選択部５００は、経路計画部７００がどの目標位置８０に対しての経路を計算しているのかという目的地の情報を受け取り、その目的地情報と紐づいた自己位置推定パラメータ４２０を選択し、自己位置推定部６００にパラメータを渡す。
【００４６】
経路計画部７００は、いわゆるナビゲーション装置に相当し、移動体１０が進みたい経路を計算する。経路計画部７００は、目標位置８０と自己位置に基づき経路を計算し、車両制御部８００に計算した経路を送る。また、上述のように経路計画部７００は、目標位置８０をパラメータ選択部５００に送る。車両制御部８００は、経路に追従するように移動体１０を制御する。
【００４７】
図５は、事前地図に環境情報を埋め込む場合の処理を示すフローチャートである。先ず、ステップＳ１０では、目標地点９０の情報（目標位置）を取得する。これにより、移動体１０の走行経路に目標位置８０が順次に定められる。次のステップＳ１２では、環境情報が埋め込まれた事前地図から、目標位置８０に基づいてパラメータ選択部５００が選択した、自己位置推定に利用するパラメータを取得する。次のステップＳ１４では、ステップＳ１２で取得したパラメータに基づき、自己位置推定演算を行う。次のステップＳ１６では、推定した自己位置を出力し、次のステップＳ１８では、自己位置に基づいて経路計画処理を行う。次のステップＳ２０では、目標地点９０までの走行が完了したか否かを判定し、走行が完了した場合は処理を終了する。一方、走行が完了していない場合は、ステップＳ１０に戻る。
【００４８】
５．２．移動体自身が環境を認識する場合
次に、移動体１０自身が環境を認識する場合について説明する。移動体１０は、識別器を搭載することで、自身で環境を認識することができる。例えば、識別子として、路面状況を監視する識別器、建物で上空が隠れているか否かを監視する識別器、光を透過する材質の障害物がないか監視する識別器、といったものが挙げられる。
【００４９】
移動体１０は、識別した情報の組み合わせによって、その環境に適した自己位置推定用パラメータを設定したプロファイルを選択する。例えば、各識別器による識別結果を“０”、“１”の２値で示し、これらの組み合わせに応じたプロファイルを予め設定しておくことで、環境の認識結果に応じたプロファイルを選択することができる。プロファイルは自己位置推定用パラメータをリスト化したもので、予め代表的な環境のパラメータリストを作成し、移動体１０のデータベースに与えておく。移動体１０は、環境の識別情報を判断し、データベース内にある適切なプロファイルを選択することで、動的に自己位置推定のパラメータを変更する。
【００５０】
図６は、移動体自身が環境を認識する場合のシステム３０００の構成を示す模式図である。図６に示すように、システム３０００は、識別機６５０、環境識別部９００、プロファイル選択部（パラメータ切換部）９５０、自己位置推定プロファイル９８０、事前地図４００、自己位置推定部６００、経路計画部７００、車両制御部８００を有している。事前地図４００は環境地図４１０、経由地情報４３０を含む。
【００５１】
環境認識部９００は、複数の識別器６５０の識別結果に基づいて、移動体１０が現在どのような走行環境を走行しているのかを判断し、クラス分けをする。ここで、クラスとは、ＧＰＳ１４０が使いにくい環境、ホイールオドメトリ１１０が使いにくい環境、といった代表的な環境をクラス分けしたものである。
【００５２】
識別器６５０は、画像を主な入力とするもので、機械学習などにより予め抽出して欲しい特徴が画像内に写っているかを判断し、クラスを判別する処理を行う環境判別部９００に通知する。ここでの機械学習とは、例えば、ディープラーニング（ＤｅｅｐＬｅａｒｎｉｎｇ）やテンプレート画像をマッチングする方法といった、画像を入力して特徴を含まれているかどうかを判別するものを想定する。環境判別部９００は、多数の識別器６５０の識別結果を統合して、どのプロファイルを利用する環境か、クラス分けを行う。クラス分けにもディープラーニングを用いることができる。
【００５３】
プロファイル選択部９５０は、クラス分けされた環境に適合する自己位置推定用プロファイル９８０を選択し、自己位置推定部６００に送る。自己位置推定部６００は、自己位置推定用プロファイル９８０のパラメータを用いて自己位置推定処理をおこなう。その後は、経路計画部７００が経路を作成し、車両制御部８００が移動体１０を制御する。
【００５４】
図７は、自己位置推定プロファイル９８０の例を示す模式図である。図７に示すように、自己位置推定プロファイル９８０には、環境判別部９００が判別した走行環境に応じて、ＳＬＡＭ１３０、ＧＰＳ１４０などの共分散の値など、自己位置推定に関するパラメータが予め定められている。なお、図７の例では、走行環境に応じたプロファイルの例として、広場３０とガラス壁５２を示している。上述した複数の識別器による識別結果に応じて、走行環境が図７に示す広場３０なのか、ガラス壁５２であるのかが判定される。走行環境が広場３０と判定された場合は、図７中に示す「広場」のプロファイルが選択される。この「広場」のプロファイルには、ＳＬＡＭ１３０、ＧＰＳ１４０などの共分散の値や、自己位置推定用の各種センサのパラメータが予め設定されている。従って、走行環境に応じたプロファイルを選択することで、自己位置推定のためのパラメータを取得できる。
【００５５】
図８は、移動体自身が環境を認識する場合の処理を示すフローチャートである。先ず、ステップＳ３０では、環境判別部９００が環境の識別を行う。次のステップＳ３２では、プロファイル選択部９５０が、環境の判別結果に応じた自己位置推定プロファイル９８０を選択する。次のステップＳ３４では、ステップＳ３２で選択された自己位置推定プロファイル９８０に基づいて、自己位置推定の演算を行う。次のステップＳ３６では、ステップＳ３４の演算の結果に基づいて、自己位置を出力する。次のステップＳ３８では、自己位置に基づいて経路計画処理を行う。次のステップＳ４０では、目標地点９０までの走行が完了したか否かを判定し、走行が完了した場合は処理を終了する。一方、走行が完了していない場合は、ステップＳ３０に戻る。
【００５６】
５．３．事前地図に環境情報を埋め込み、センサ状況に応じて経路計画を行う例
環境地図に自己位置推定用のパラメータを埋め込むことにより、現在の移動体１０のセンサ状況から最適な経路を選ぶことができる。例えば、ある目的地に行く場合に、最短経路だがガラス壁５２に囲まれた屋内の経路と、遠回りだが屋外で上空が開けている経路の２つの選択肢があるものとする。この場合、前者の経路を選択するとホイールオドメトリ１１０とＩＭＵ１００を主に使用して走行することになる。一方、後者の経路を選択すると、ＧＰＳ１４０、ホイールオドメトリ１１０、ＩＭＵ１００を主に使用して走行することになる。
【００５７】
全てのセンサ類が問題なく利用できる場合は、最短経路として前者の経路で進むのが望ましい。一方、ホイールオドメトリ１１０が故障してしまった場合、前者の経路では自己位置推定を行うことができなくなることが予測される。
【００５８】
このため、ホイールオドメトリ１１０の故障を考慮した場合は、後者の経路で進むことが望ましい。事前地図に自己位置推定のパラメータを埋め込むことにより、移動体１０のセンサ状況を鑑みながら、走行経路を動的に切り替えることも可能となる。つまり、予め事前地図にパラメータを埋め込むことで、故障したセンサがあった場合でも自己位置を失いにくい経路を選び取ることができるようになる。
【００５９】
図９は、パラメータを埋め込んだ地図とセンサ状況に応じて経路計画を行う場合のシステム４０００の構成を示す模式図である。図９に示すように、システム４０００は、図４の構成に加えて、センサ監視部６４０を有している。図９では、センサ監視部６４０に加えて、カメラ２００、レーザスキャナ２１０、ホイールエンコーダ１１２、ＩＭＵ１００、ＧＰＳ１４０、磁気センサ１５０などの各種センサ類を図示している。なお、ホイールエンコーダ１１２は、ホイールオドメトリ１１０で使用される。センサ監視部６４０は、カメラ２００、レーザスキャナ２１０、ホイールエンコーダ１１２、ＩＭＵ１００、ＧＰＳ１４０、磁気センサ１５０などの各種センサ類を監視する。センサ監視部６５０は、これらのセンサが故障していることが判別されると、経路計画部７００に通知する。
【００６０】
例えば、センサ監視部６４０は、外れ値を出力し続けるセンサがあれば、そのセンサの故障フラグを経路計画部７００に通知する。経路計画部７００は、事前地図に埋め込まれたパラメータを参照して、故障したセンサを除いた構成で自己位置がロストしないような目標位置を選択する。故障フラグが立っているセンサ（故障しているセンサ）について、地図に埋め込まれたパラメータの共分散が小さい場合は、自己位置をロストしてしまう可能性が高くなるので、別の目標位置を選択して経路計画計算をやり直す。このように、パラメータを埋め込んだ地図を用いることで、センサ状況に応じて自己位置をロストしにくい経路を選択することができる。
【００６１】
図１０は、パラメータを埋め込んだ地図とセンサ状況に応じて経路計画を行う場合の処理を示すフローチャートである。先ず、ステップＳ５０では、目標地点９０の情報（目標位置）を取得する。これにより、移動体１０の走行経路に目標位置８０が順次に定められる。次のステップＳ５２では、環境情報が埋め込まれた事前地図から、目標位置８０に基づいてパラメータ選択部５００が選択した、自己位置推定に利用するパラメータを取得する。次のステップＳ５４では、センサ監視部６４０がセンサ故障情報を取得する。次のステップＳ５６では、センサ故障情報に基づき、センサが正常であるか否かを判定し、センサが正常である場合はステップＳ５８へ進む。ステップＳ５８では、自己位置推定の演算を行う。一方、センサが異常である場合は、ステップＳ５７へ進み、目標位置を変更した後、ステップＳ５２へ戻る。
【００６２】
ステップＳ５８の後はステップＳ６０へ進み、推定した自己位置を出力する。次のステップＳ６２では、自己位置に基づいて経路計画処理を行う。次のステップＳ６４では、目標地点９０までの走行が完了したか否かを判定し、走行が完了した場合は処理を終了する。一方、走行が完了していない場合は、ステップＳ５０に戻る。
【００６３】
本開示は、車輪型の移動体の他にも、様々なプラットフォームにおいて応用が可能である。自動運転車、パーソナルモビリティ、ヒューマノイド、ドローンといった自律移動体において、センシングして自己位置推定するものであれば、適用範囲は特に限定されるものではない。本開示を適用した移動体では、自己位置推定結果に特定の環境下で誤差が乗る現象、それに伴い自律移動ができなくなるという現象が大幅に改善される。動的に環境に特化したパラメータを変更することができるため、各環境において自己位置推定精度が向上するとともにロバスト性を向上することができる。
【００６４】
自己位置推定精度とロバスト性の向上によって得られる効果としては、自身の経路に対する位置推定精度が向上するので、より細やかな車両制御が可能になるという、経路追従性の向上効果が得られる。また、ドローンのような飛行プラットフォームではホバリング時の停止精度が向上し、飛行撮影の安定化など停止精度の向上を実現できる。更に、ロバスト性が向上することで一度の走行で対応できる環境が増えるため、一度の走行において走行可能な領域が拡大され、走行可能領域の拡大を実現できる。
【００６５】
自己位置推定技術は。移動体の基本性能を向上させる重要なファクターである。本開示は、今後さらに加速する移動体を用いたアプリケーション開発において、基本性能を向上させることで大幅な貢献に寄与するものである。
【００６６】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【００６７】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【００６８】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）自己位置推定のためのパラメータに基づいて自己位置を推定する自己位置推定部と、
走行中の走行環境に応じて前記パラメータを動的に切り換えるパラメータ切換部と、
を備える、移動体。
（２）前記パラメータは、前記自己位置推定のために使用するセンサ、自己位置推定のための複数の方式を融合する拡張カルマンフィルタにおける共分散の値、又は個々の前記方式における設定値に対応するパラメータである、前記（１）に記載の移動体。
（３）前記パラメータは、前記自己位置推定のために使用するＩＭＵ、ホイールオドメトリ、ビジュアルオドメトリ、ＳＬＡＭ、またはＧＰＳに対応するパラメータである、前記（１）又は（２）に記載の移動体。
（４）前記パラメータは、環境地図の経由地情報と対応付けて予め定められ、
前記パラメータ切換部は、走行経路の経由地を前記経由地情報に当てはめて前記パラメータを切り換える、前記（１）〜（３）のいずれかに記載の移動体。
（５）走行時に前記走行環境を認識する環境認識部を備え、
前記パラメータ切換部は、走行時に認識した前記走行環境に応じて前記パラメータを切り換える、前記（１）〜（３）のいずれかに記載の移動体。
（６）前記走行環境に応じた前記パラメータのプロファイルが予め登録され、
前記パラメータ切換部は、走行時に認識した前記走行環境から得られる前記プロファイルに基づいて、前記パラメータを切り換える、前記（５）に記載の移動体。
（７）前記パラメータは、環境地図の経由地情報と対応付けて予め定められ、
前記パラメータ切換部は、走行経路の経由地を前記経由地情報に当てはめて前記パラメータを切り換え、
前記自己位置推定のために使用するセンサの状態を監視するセンサ監視部を備え、
異なる走行経路における前記パラメータと前記パラメータに対応する前記センサの状態に基づいて、経路を選択する経路選択部を更に備える、前記（１）に記載の移動体。
（８）自己位置推定のためのパラメータに基づいて自己位置を推定することと、
走行中の走行環境に応じて前記パラメータを動的に切り換えることと、
を備える、移動体の制御方法。
（９）自己位置推定のためのパラメータに基づいて自己位置を推定する手段、
走行中の走行環境に応じて前記パラメータを動的に切り換える手段、
としてコンピュータを機能させるためのプログラム。
【符号の説明】
【００６９】
５００    パラメータ選択部
６００    自己位置推定部
【図１】
2020095339.tif 000003
【図２Ａ】
2020095339.tif 000004
【図２Ｂ】
2020095339.tif 000005
【図３Ａ】
2020095339.tif 000006
【図３Ｂ】
2020095339.tif 000007
【図４】
2020095339.tif 000008
【図５】
2020095339.tif 000009
【図６】
2020095339.tif 000010
【図７】
2020095339.tif 000011
【図８】
2020095339.tif 000012
【図９】
2020095339.tif 000013
【図１０】
2020095339.tif 000014