(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024083940
(43)【公開日】2024-06-24
(54)【発明の名称】推定装置、当該推定装置を備える移動ロボット、推定方法およびコンピュータプログラム
(51)【国際特許分類】
G01S 19/49 20100101AFI20240617BHJP
G06N 3/0442 20230101ALI20240617BHJP
G06N 20/00 20190101ALI20240617BHJP
G06F 18/15 20230101ALI20240617BHJP
G01S 19/43 20100101ALI20240617BHJP
G08G 1/00 20060101ALN20240617BHJP
G05D 1/43 20240101ALN20240617BHJP
【FI】
G01S19/49
G06N3/0442
G06N20/00
G06F18/15
G01S19/43
G08G1/00 X
G05D1/02 Z
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2022198042
(22)【出願日】2022-12-12
(71)【出願人】
【識別番号】304021831
【氏名又は名称】国立大学法人千葉大学
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100103263
【弁理士】
【氏名又は名称】川崎 康
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(72)【発明者】
【氏名】大川 一也
(72)【発明者】
【氏名】山中 幸季
【テーマコード(参考)】
5H181
5H301
5J062
【Fターム(参考)】
5H181AA01
5H181BB20
5H181CC12
5H181FF05
5H301BB14
5H301CC03
5H301CC07
5H301FF11
5H301GG17
5J062AA12
5J062CC07
5J062FF01
5J062FF04
(57)【要約】
【課題】慣性センサの測定値から移動体の速度や位置を高精度に推定することができる、推定装置、当該推定装置を備える移動ロボット、推定方法およびコンピュータプログラムを提供する。
【解決手段】本開示の推定装置は、慣性センサによって測定される移動体の加速度および回転角を取得する第1のデータ取得部と、時系列データを取り扱える機械学習モデルであって、加速度および回転角を逐次入力として受け取り、当該加速度および回転角に基づいて、移動体の速度を逐次推定する第1の機械学習モデルとを備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
慣性センサによって測定される移動体の加速度および回転角を取得する第1のデータ取得部と、
時系列データを取り扱える機械学習モデルであって、前記加速度および前記回転角を逐次入力として受け取り、該加速度および該回転角に基づいて、前記移動体の速度を逐次推定する第1の機械学習モデルと
を備える、推定装置。
【請求項2】
前記第1の機械学習モデルは、第1のLSTMを含む、請求項1に記載の推定装置。
【請求項3】
前記第1の機械学習モデルは、
前記第1のLSTMの前段に設けられる第1の正規化層と、
前記第1の正規化層の前段に設けられる第1の全結合層と、
前記第1のLSTMの後段に設けられる第2の全結合層と
をさらに含む、請求項2に記載の推定装置。
【請求項4】
前記移動体の複数の時刻における加速度を記憶する記憶部をさらに備え、
前記第1の機械学習モデルは、前記移動体の前記複数の時刻における加速度を逐次入力として受け取り、該複数の時刻における加速度に基づいて、前記移動体の前記速度を逐次推定する、請求項1に記載の推定装置。
【請求項5】
前記第1の機械学習モデルはさらに、前記加速度および前記回転角に基づいて、前記移動体の速度差分を逐次推定する、請求項1に記載の推定装置。
【請求項6】
GNSSから速度データを取得する第2のデータ取得部をさらに備え、
前記第1の機械学習モデルは、前記速度データを逐次入力として受け取り、該速度データにさらに基づいて、前記移動体の前記速度を逐次推定する、請求項1に記載の推定装置。
【請求項7】
時系列データを取り扱える機械学習モデルであって、前記第1の機械学習モデルによって推定される前記移動体の前記速度、および前記回転角を逐次入力として受け取り、該速度および該回転角に基づいて、前記移動体の第1の位置を逐次推定する第2の機械学習モデルをさらに備える、請求項1に記載の推定装置。
【請求項8】
前記第2の機械学習モデルは、第2のLSTMを含む、請求項7に記載の推定装置。
【請求項9】
前記第2の機械学習モデルは、
前記第2のLSTMの前段に設けられる第2の正規化層と、
前記第2の正規化層の前段に設けられる第3の全結合層と、
前記第2のLSTMの後段に設けられる第4の全結合層と、
前記第4の全結合層の後段に設けられる第5の全結合層と
をさらに含む、請求項8に記載の推定装置。
【請求項10】
GNSSから位置データを取得して前記移動体の第2の位置とする第3のデータ取得部と、
前記第1の位置および前記第2の位置に基づいて、第1の動作モードから第2の動作モードへ切り替えるか否か、または前記第2の動作モードから前記第1の動作モードへ切り替えるか否かを決定するモード切替部と
をさらに備え、
前記第1の動作モードでは、前記第1の位置が前記移動体の正確な位置として採用され、
前記第2の動作モードでは、前記第2の位置が前記移動体の正確な位置として採用される、請求項7に記載の推定装置。
【請求項11】
前記モード切替部は、前記第1の動作モードの実行中に、
前記第2の位置がFix解の場合、または、前記第2の位置がFloat解であり、かつ前記第1の位置と前記第2の位置との距離が所定の第1の距離より短い場合には、前記第2の動作モードへ切り替える、請求項10に記載の推定装置。
【請求項12】
前記モード切替部は、前記第2の動作モードの実行中に、
前記第2の位置がFloat解であり、かつ前記第2の位置に基づいて算出される第2の微小移動距離から前記第1の位置に基づいて算出される第1の微小移動距離を減算した差分が所定の第1の閾値以上の場合、または、前記第2の位置が単独測位解の場合、または、前記第2の位置を取得できない場合には、前記第1の動作モードへ切り替える、請求項10に記載の推定装置。
【請求項13】
前記モード切替部は、前記第1の動作モードの実行中に、
前記移動体が静止しておらず、かつ前記第2の位置がFix解であるか、あるいは前記第2の位置が前記第1の位置を中心とする誤差円の内部に収まるかのいずれかである状態が、所定の期間継続する場合には、前記第2の動作モードへ切り替える、請求項10に記載の推定装置。
【請求項14】
前記モード切替部は、前記第2の動作モードの実行中に、
前記第2の位置がFix解でなく、かつFloat解でもない場合、または、前記第2の位置がFloat解であり、かつ前記第2の位置に基づいて算出される第2の微小移動距離から前記第1の位置に基づいて算出される第1の微小移動距離を減算した差分が所定の第1の閾値以上であるか、あるいは前記第2の位置の垂直移動距離が所定の第2の閾値以上の場合には、前記第1の動作モードへ切り替える、請求項10に記載の推定装置。
【請求項15】
前記モード切替部は、前記移動体が一定距離を移動する毎に、前記第1の位置および前記第2の位置をセーブポイントとして保存しておき、
前記第2の動作モードから前記第1の動作モードへの切り替えの際には、前記第1の位置に係る1つ前のセーブポイントおよび2つ前のセーブポイントが、前記第2の位置に係る1つ前のセーブポイントおよび2つ前のセーブポイントにそれぞれ一致するように、前記第1の位置に対して回転の座標変換を適用する、請求項10に記載の推定装置。
【請求項16】
請求項1~15のいずれか一項に記載の推定装置を備える、移動ロボット。
【請求項17】
慣性センサによって測定される移動体の加速度および回転角を取得するステップと、
前記加速度および前記回転角を、時系列データを取り扱える第1の機械学習モデルに逐次入力し、該第1の機械学習モデルによって逐次推定される前記移動体の速度を取得するステップと
を含む、推定方法。
【請求項18】
慣性センサによって測定される移動体の加速度および回転角を取得するステップと、
前記加速度および前記回転角を、時系列データを取り扱える第1の機械学習モデルに逐次入力し、該第1の機械学習モデルによって逐次推定される前記移動体の速度を取得するステップと
をコンピュータに実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、推定装置、当該推定装置を備える移動ロボット、推定方法およびコンピュータプログラムに関する。
【背景技術】
【0002】
移動体の速度や位置を推定する方法として、全球測位衛星システム(Global Navigation Satellite System:GNSS)を利用して速度データや位置データを取得する方法が知られている。しかしながら、屋内環境等でGNSSの電波を受信できない場合には、GNSSからデータを取得することができない。また、屋外環境であってもマルチパス等の影響を受ける場合には、GNSSから取得されるデータの精度が低下してしまう。
【0003】
GNSSを利用できない場合や、利用できても取得されるデータの精度が低い場合に対処するために、移動体に慣性センサ(Inertial Measurement Unit:IMU)を搭載し、慣性センサの測定値に基づいて移動体の速度や位置を推定することが行われている。具体的には、慣性センサによって測定される加速度を積分して速度を推定し、推定された速度をさらに積分して位置を推定する。
【0004】
しかしながら、上記のように慣性センサの測定値を積分する方法では、時間の経過とともに誤差が累積していき、推定される速度や位置が次第に不正確になってしまうという欠点がある。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Uche Onyekpe, Vasile Palade and Stratis Kanarachos, “Learning to Localise Automated Vehicles in Challenging Environments using Inertial Navigation Systems (INS),” Appl. Sci. 2021, 11(3), 1270
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、上記のような課題を解決するためのものであり、慣性センサの測定値から移動体の速度や位置を高精度に推定することができる、推定装置、当該推定装置を備える移動ロボット、推定方法およびコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記の課題を解決するために、本開示に係る推定装置は、慣性センサによって測定される移動体の加速度および回転角を取得する第1のデータ取得部と、時系列データを取り扱える機械学習モデルであって、加速度および回転角を逐次入力として受け取り、当該加速度および回転角に基づいて、移動体の速度を逐次推定する第1の機械学習モデルとを備える。
【0008】
また、本開示に係る移動ロボットは、上記の推定装置を備える。
【0009】
また、本開示に係る推定方法は、慣性センサによって測定される移動体の加速度および回転角を取得するステップと、加速度および回転角を、時系列データを取り扱える第1の機械学習モデルに逐次入力し、当該第1の機械学習モデルによって逐次推定される移動体の速度を取得するステップとを含む。
【0010】
また、本開示に係るコンピュータプログラムは、慣性センサによって測定される移動体の加速度および回転角を取得するステップと、加速度および回転角を、時系列データを取り扱える第1の機械学習モデルに逐次入力し、当該第1の機械学習モデルによって逐次推定される移動体の速度を取得するステップとをコンピュータに実行させる。
【図面の簡単な説明】
【0011】
【
図1】実施の形態1に係る推定システムの概略を示す図である。
【
図2】実施の形態1に係る推定装置の詳細な構成を示す図である。
【
図3】第1の機械学習モデルの詳細な構成を示す図である。
【
図5】第1の機械学習モデルの教師データの構成を模式的に示す図である。
【
図6】実施の形態1に係る推定装置の動作を説明するフローチャートである。
【
図7】実施の形態2に係る推定システムの概略を示す図である。
【
図8】実施の形態2に係る推定装置の詳細な構成を示す図である。
【
図9】第2の機械学習モデルの詳細な構成を示す図である。
【
図10】第2の機械学習モデルの教師データの構成を模式的に示す図である。
【
図11】実施の形態2に係る推定装置の動作を説明するフローチャートである。
【
図12】モード切り替え処理の第1の例の詳細を説明するフローチャートである。
【
図13】モード切り替え処理の第1の例の詳細を説明するフローチャートである。
【
図14】モード切り替え処理の第2の例の詳細を説明するフローチャートである。
【
図16】モード切り替え処理の第2の例の詳細を説明するフローチャートである。
【
図17】第2の位置の垂直移動距離を説明する図である。
【
図19】モード切り替え時の状態を説明する図である。
【
図20】モード切り替え時の補正を説明する図である。
【発明を実施するための形態】
【0012】
以下では、図面を参照しながら、本開示の実施の形態について説明する。図面において同一または対応する要素には同じ参照符号を付し、詳細な説明は適宜省略する。
【0013】
(実施の形態1)
図1は、本開示の実施の形態1に係る推定システム100の概略を示す図である。移動ロボット1は、移動手段としての車輪2を備える自律走行型のロボットであり、前進、後進、右旋回、左旋回等の動作を行うことができる。なお、本開示において、「移動ロボット」とは、サービスロボットのほか、ドローン、自動運転車などモビリティ全般を指す概念である。
【0014】
移動ロボット1は、慣性センサ3と、GNSS(Global Navigation Satellite System)4の衛星4aから発射される電波を受信する受信機5と、無線インターフェース6と、移動ロボット1の速度を逐次推定する推定装置10とを備えている。
【0015】
推定装置10は、慣性センサ3によって測定される加速度(x成分とy成分)および回転角(ヨー角)と、GNSS4から取得される速度データ(x成分とy成分)とに基づいて、移動ロボット1の速度(x成分とy成分)を逐次推定する。
【0016】
GNSS4の種類は特に限定されるものではないが、例えば、ネットワーク型RTK-GNSS(Real Time Kinematic GNSS)を利用することができる。移動ロボット1は、GNSS4の衛星4aから発射される電波を受信機5によって受信し、受信された電波に含まれる情報を無線通信によって配信事業者4bに送信する。配信事業者4bは、受信された情報に基づいて算出された速度データを無線通信によって移動ロボット1に返信する。
【0017】
(推定装置10の構成)
図2は、推定装置10の詳細な構成を示す図である。推定装置10は、第1のデータ取得部11と、記憶部12と、第2のデータ取得部13と、第1の機械学習モデル20と、第1の出力部14とを備えている。これらの構成要素は、ソフトウェアで実現されてもよいし、ハードウェアで実現されてもよい。
【0018】
第1のデータ取得部11は、慣性センサ3によって測定される移動ロボット1の加速度および回転角を所定時間毎に取得する。所定時間は任意に設定可能であるが、例えば0.1秒程度に設定される。
【0019】
記憶部12は、第1のデータ取得部11によって取得された複数の時刻における加速度を記憶する。具体的には、現在の時刻tにおける加速度と、1所定時間前の時刻t-1における加速度と、2所定時間前の時刻t-2における加速度と、3所定時間前の時刻t-3における加速度と、4所定時間前の時刻t-4における加速度とを記憶する。ただし、記憶部12に記憶される加速度の数は5つに限定されるものではなく、2つ以上であればよい。
【0020】
第2のデータ取得部13は、GNSS4から速度データを所定時間毎に取得する。なお、屋内環境等でGNSS4の電波を受信できない場合には、第2のデータ取得部13は速度データとして0を設定する。
【0021】
第1の機械学習モデル20は、記憶部12に記憶されている複数の時刻における加速度と、第1のデータ取得部11から取得される回転角と、第2のデータ取得部13から取得される速度データとに基づいて、移動ロボット1の速度および速度差分を逐次推定する。ここで、速度は、現在の時刻tにおける速度である。また、速度差分は、現在の時刻tにおける速度と時刻t-n(ただし、nは正の整数)における速度との差分である。この速度差分は、第1の機械学習モデル20における速度の推定精度を高めるための補助的な推定値である。
【0022】
第1の出力部14は、第1の機械学習モデル20によって推定された速度を逐次出力する。なお、速度差分は、上記のように補助的な推定値であるため、出力の対象とはならない。
【0023】
図3は、第1の機械学習モデル20の詳細な構成を示す図である。第1の機械学習モデル20は、第1の全結合層21と、第1の正規化層22と、時系列データを取り扱うことができる機械学習モデルである第1のLSTM(Long Short Term Memory)23と、第2の全結合層24とを含んでいる。
【0024】
図4は、第1のLSTM23の構成を示す図である。第1のLSTM23は、忘却ゲートを構成する第1のシグモイド層23aおよび第1の乗算器23bと、入力ゲートを構成する第2のシグモイド層23cおよび第2の乗算器23dと、第1のtanh層23eおよび加算器23fと、出力ゲートを構成する第3のシグモイド層23gおよび第3の乗算器23hと、第2のtanh層23iとを含んでいる。
【0025】
図4において、X
tは現在の時刻tにおける入力ベクトルであり、複数の時刻t~t-4における加速度と、現在の時刻tにおける回転角および速度データとを結合したものである。C
tは現在の時刻tにおける状態ベクトルであり、現在の時刻tにおける速度および速度差分を結合したものである。C
t-1は、時刻t-1における状態ベクトルである。
【0026】
ftは忘却ゲートの活性化ベクトルである。itは入力ゲートの活性化ベクトルである。otは出力ゲートの活性化ベクトルである。htは、現在の時刻tにおける隠れ状態ベクトルである。ht-1は、時刻t-1における隠れ状態ベクトルである。
【0027】
なお、LSTMの構成には、上記以外にも種々のバリエーションが存在するが、本開示に係る技術は、上記以外のLSTMの構成を排除するものではない。また、時系列データを取り扱うことができるモデルであれば、他のモデルを採用してもよい。例えば、RNN(Recurrent Neural Network)等を採用してもよい。
【0028】
図5は、第1の機械学習モデル20の学習時に用いられる教師データ26の構成を模式的に示す図である。教師データ26は、入力データ26aと正解データ26bとから構成されている。入力データ26aは、複数の時刻における加速度と、回転角および速度データとを含んでいる。正解データ26bは、速度および速度差分を含んでいる。
【0029】
正解データ26bに含まれる速度および速度差分は、事前にGNSS4を利用して取得される速度データを用いて作成することができる。また、入力データ26aに含まれる速度データは、事前にGNSS4を利用して取得される速度データをランダムに抽出して作成するか、あるいは0を設定してもよい。
【0030】
(推定装置10の動作)
次に、本実施の形態1に係る推定装置10の実際の運用時の動作について、
図6のフローチャートを参照して説明する。
図6のフローチャートの開始時において、第1の機械学習モデル20の学習は既に完了している。また、記憶部12には、複数の時刻t~t-4における加速度の初期値として0が記憶されている。
【0031】
ステップS101において、第1のデータ取得部11は、慣性センサ3によって測定される移動ロボット1の加速度および回転角を取得する。
【0032】
ステップS102において、記憶部12は、現在記憶されている最も古い時刻t-4における加速度を破棄し、時刻t~t-3における加速度を時刻t-1~t-4における加速度に順次繰り下げ、上記のステップS101で取得された加速度を現在の時刻tにおける加速度として新たに記憶する。
【0033】
ステップS103において、第2のデータ取得部13は、GNSS4から速度データを取得する。この際、屋内環境等でGNSS4の電波を受信できない場合には、第2のデータ取得部13は速度データとして0を設定する。
【0034】
ステップS104において、第1の機械学習モデル20は、記憶部12に記憶されている複数の時刻における加速度と、上記のステップS101で取得された回転角と、上記のステップS103で取得された速度データとに基づいて、移動ロボット1の速度および速度差分を推定する。
【0035】
ステップS105において、第1の出力部14は、上記のステップS104で推定された移動ロボット1の速度を出力する。出力された速度は、例えば、移動ロボット1に搭載されている図示しない制御ユニットに入力され、移動ロボット1の自律走行制御に用いられる。
【0036】
上記のステップS101~S105の処理を所定時間の周期で繰り返し実行することにより、推定装置10は、移動ロボット1の速度を逐次推定することができる。なお、先述したように、所定時間は任意に設定可能であるが、例えば0.1秒程度に設定される。
【0037】
以上説明したように、本実施の形態1に係る推定装置10は、慣性センサ3によって測定される移動ロボット1の加速度および回転角を取得する第1のデータ取得部11と、時系列データを取り扱える第1の機械学習モデル20とを備えている。第1の機械学習モデル20は、加速度および回転角を逐次入力として受け取り、当該加速度および回転角に基づいて、移動ロボット1の速度を逐次推定する。
【0038】
上記のように、本実施の形態1に係る推定装置10では、慣性センサの測定値を積分するのではなく、時系列データを取り扱える機械学習モデルを用いて、慣性センサの測定値から速度を直接推定している。このような特徴により、本実施の形態1に係る推定装置10は、慣性センサの測定値から移動ロボットの速度を高精度に推定することができる。
【0039】
また、本実施の形態1に係る推定装置10は、移動ロボット1の複数の時刻における加速度を記憶する記憶部12を備えている。第1の機械学習モデル20は、移動ロボット1の複数の時刻における加速度を逐次入力として受け取り、当該複数の時刻における加速度に基づいて、移動ロボット1の速度を逐次推定する。
【0040】
上記の特徴は、現在の時刻における加速度だけでなく、複数の時刻における加速度を機械学習モデルに入力することにより、速度の推定精度が向上するという、本開示の発明者によって見いだされた知見に基づくものである。このような特徴により、移動ロボットの速度をさらに高精度に推定することができる。
【0041】
また、本実施の形態1では、第1の機械学習モデル20は、移動ロボット1の速度だけでなく、速度差分も逐次推定している。上述したように、この速度差分は、第1の機械学習モデル20における速度の推定精度を高めるための補助的な推定値である。
【0042】
上記の特徴は、速度だけでなく、速度差分も併せて推定することにより、結果として速度の推定精度が向上するという、本開示の発明者によって見いだされた知見に基づくものである。このような特徴により、移動ロボットの速度をさらに高精度に推定することができる。
【0043】
また、本実施の形態1に係る推定装置10は、GNSS4から速度データを取得する第2のデータ取得部13を備えている。第1の機械学習モデル20は、速度データを逐次入力として受け取り、当該速度データにさらに基づいて、移動ロボット1の速度を逐次推定する。
【0044】
上記の特徴は、慣性センサの測定値だけでなく、GNSSから取得される速度データも併せて機械学習モデルに入力することにより、速度の推定精度が向上するという、本開示の発明者によって見いだされた知見に基づくものである。このような特徴により、移動ロボットの速度をさらに高精度に推定することができる。
【0045】
(実施の形態2)
図7は、本開示の実施の形態2に係る推定システム200の概略を示す図である。移動ロボット201には、移動ロボット201の速度および位置を逐次推定する推定装置210が搭載されている。
【0046】
推定装置210は、慣性センサ3によって測定される加速度(x成分とy成分)および回転角(ヨー角)と、GNSS4から取得される速度データ(x成分とy成分)および位置データ(x成分とy成分)とに基づいて、移動ロボット201の速度(x成分とy成分)および位置(x成分とy成分)を逐次推定する。
【0047】
(推定装置210の構成)
図8は、推定装置210の詳細な構成を示す図である。推定装置210は、実施の形態1に係る推定装置10の構成要素に加えて、第2の機械学習モデル230と、第3のデータ取得部215と、モード切替部216と、第2の出力部217とを備えている。これらの構成要素は、ソフトウェアで実現されてもよいし、ハードウェアで実現されてもよい。
【0048】
第2の機械学習モデル230は、第1の機械学習モデル20によって推定された速度と、第1のデータ取得部11から取得される回転角とに基づいて、移動ロボット201の第1の位置を逐次推定する。
【0049】
第3のデータ取得部215は、GNSS4から位置データを所定時間毎に取得し、これを移動ロボット201の第2の位置とする。GNSS4の位置データには、精度が5mm~20mm程度のFix解と、精度が10cm~数m程度のFloat解と、精度が10m程度の単独測位解とが定義されている。また、屋内環境等でGNSS4の電波を受信できない場合には、第3のデータ取得部215は、第2の位置として無効値を意味するNULLを設定する。
【0050】
モード切替部216は、第2の機械学習モデル230によって推定された第1の位置と、第3のデータ取得部215によって取得された第2の位置とに基づいて、現在の動作モードから他の動作モードへ切り替えるか否かを決定する。
【0051】
詳細には、本実施の形態2では、第1の動作モードと第2の動作モードとが定義されている。第1の動作モードでは、慣性センサ3の測定値から推定される第1の位置が移動ロボット201の正確な位置として採用される。第2の動作モードでは、GNSS4から取得される第2の位置が移動ロボット201の正確な位置として採用される。
【0052】
モード切替部216は、第1の動作モードの実行中に、GNSS4から取得される第2の位置の信頼性が慣性センサ3の測定値から推定される第1の位置の信頼性よりも高いと判断される場合には、第1の動作モードから第2の動作モードへ切り替える。
【0053】
また、モード切替部216は、第2の動作モードの実行中に、慣性センサ3の測定値から推定される第1の位置の信頼性がGNSS4から取得される第2の位置の信頼性よりも高いと判断される場合、または、GNSS4から第2の位置を取得できない場合には、第2の動作モードから第1の動作モードへ切り替える。
【0054】
第2の出力部217は、モード切替部216によって採用された移動ロボット201の正確な位置を出力する。
【0055】
図9は、第2の機械学習モデル230の詳細な構成を示す図である。第2の機械学習モデル230は、第3の全結合層231と、第2の正規化層232と、時系列データを取り扱うことができる機械学習モデルである第2のLSTM(Long Short Term Memory)233と、第4の全結合層234と、第5の全結合層235とを含んでいる。
【0056】
第2のLSTM233の構成は、
図4に示される第1のLSTM23の構成と同様である。ただし、第2のLSTM233では、現在の時刻tにおける入力ベクトルX
tは、第1の機械学習モデル20によって推定された現在の時刻tにおける速度と、現在の時刻tにおける回転角とを結合したものである。また、現在の時刻tにおける状態ベクトルC
tは、現在の時刻tにおける第1の位置である。
【0057】
また、先述したように、LSTMの構成には種々のバリエーションが存在するが、本開示に係る技術は、上記以外のLSTMの構成を排除するものではない。また、時系列データを取り扱うことができるモデルであれば、他のモデルを採用してもよい。例えば、RNN(Recurrent Neural Network)等を採用してもよい。
【0058】
図10は、第2の機械学習モデル230の学習時に用いられる教師データ236の構成を模式的に示す図である。教師データ236は、入力データ236aと正解データ236bとから構成されている。入力データ236aは、速度および回転角を含んでいる。正解データ236bは、第1の位置を含んでいる。
【0059】
正解データ236bに含まれる第1の位置は、事前にGNSS4を利用して取得される位置データから初期位置を補正して作成することができる。また、入力データ236aに含まれる速度データは、事前にGNSS4を利用して取得される速度データをランダムに抽出して作成するか、あるいは0を設定してもよい。
【0060】
(推定装置210の動作)
次に、本実施の形態2に係る推定装置210の実際の運用時の動作について、
図11のフローチャートを参照して説明する。
図11のフローチャートの開始時において、第1の機械学習モデル20および第2の機械学習モデル230の学習は既に完了している。また、記憶部12には、複数の時刻t~t-4における加速度の初期値として0が記憶されている。
【0061】
ステップS201において、第1のデータ取得部11は、慣性センサ3によって測定される移動ロボット201の加速度および回転角を取得する。
【0062】
ステップS202において、記憶部12は、現在記憶されている最も古い時刻t-4における加速度を破棄し、時刻t~t-3における加速度を時刻t-1~t-4における加速度に順次繰り下げ、上記のステップS201で取得された加速度を現在の時刻tにおける加速度として新たに記憶する。
【0063】
ステップS203において、第2のデータ取得部13は、GNSS4から速度データを取得する。この際、屋内環境等でGNSS4の電波を受信できない場合には、第2のデータ取得部13は速度データとして0を設定する。
【0064】
ステップS204において、第1の機械学習モデル20は、記憶部12に記憶されている複数の時刻における加速度と、上記のステップS201で取得された回転角と、上記のステップS203で取得された速度データとに基づいて、移動ロボット201の速度および速度差分を推定する。
【0065】
ステップS205において、第1の出力部14は、上記のステップS204で推定された移動ロボット201の速度を出力する。出力された速度は、例えば、移動ロボット201に搭載されている図示しない制御ユニットに入力され、移動ロボット201の自律走行制御に用いられる。
【0066】
ステップS206において、第2の機械学習モデル230は、上記のステップS204で推定された速度と、上記のステップS201で取得された回転角とに基づいて、移動ロボット201の第1の位置を推定する。
【0067】
ステップS207において、第3のデータ取得部215は、GNSS4から位置データを取得し、これを移動ロボット201の第2の位置とする。なお、屋内環境等でGNSS4の電波を受信できない場合には、第3のデータ取得部215は、第2の位置として無効値を意味するNULLを設定する。
【0068】
ステップS208において、モード切替部216は、上記のステップS206で推定された第1の位置と、上記のステップS207で取得された第2の位置とに基づいて、現在の動作モードから他の動作モードへ切り替えるか否かを決定する。この処理の詳細については、
図12~
図20を参照して後述する。
【0069】
第1の動作モードでは、第1の位置が移動ロボット201の正確な位置として採用される。第2の動作モードでは、第2の位置が移動ロボット201の正確な位置として採用される。
【0070】
ステップS209において、第2の出力部217は、上記のステップS208で採用された移動ロボット201の正確な位置を出力する。出力された正確な位置は、例えば、移動ロボット201に搭載されている図示しない制御ユニットに入力され、移動ロボット201の自律走行制御に用いられる。
【0071】
上記のステップS201~S209の処理を所定時間の周期で繰り返し実行することにより、推定装置210は、移動ロボット201の速度および正確な位置を逐次推定することができる。なお、先述したように、所定時間は任意に設定可能であるが、例えば0.1秒程度に設定される。
【0072】
(モード切り替え処理の第1の例(第1の動作モードの実行中))
図12は、第1の動作モードの実行中におけるモード切り替え処理の第1の例の詳細を説明するフローチャートである。これらの処理は、第1の動作モードの実行中における
図11のステップS208の処理として実行される。
【0073】
モード切替部216は、第2の位置X2がFix解の場合(S301=YES)には、第2の動作モードへ切り替える(S304)。また、モード切替部216は、第2の位置X2がFloat解であり(S302=YES)、かつ第1の位置X1と第2の位置X2との距離が所定の第1の距離L1より短い場合(S303=YES)にも、第2の動作モードへ切り替える(S304)。
【0074】
(モード切り替え処理の第1の例(第2の動作モードの実行中))
図13は、第2の動作モードの実行中におけるモード切り替え処理の第1の例の詳細を説明するフローチャートである。これらの処理は、第2の動作モードの実行中における
図11のステップS208の処理として実行される。
【0075】
モード切替部216は、第2の位置X2がFloat解であり(S401=YES)、かつ第2の微小移動距離dX2から第1の微小移動距離dX1を減算した差分が所定の第1の閾値D1以上の場合(S402=YES)には、第1の動作モードへ切り替える(S405)。
【0076】
ただし、第1の微小移動距離dX1は、時刻t-1における第1の位置X1,t-1から現在の時刻tにおける第1の位置X1,tまでの移動距離として、以下の式に従って算出される。
【0077】
【0078】
同様に、第2の微小移動距離dX2は、時刻t-1における第2の位置X2,t-1から現在の時刻tにおける第2の位置X2,tまでの移動距離として、以下の式に従って算出される。
【0079】
【0080】
第1の閾値D1は、移動ロボット201の最大速度Vmaxと所定時間Δtとの積として、以下の式に従って定義される。
【0081】
【0082】
また、モード切替部216は、第2の位置X2が単独測位解の場合(S403=YES)、または、第2の位置X2を取得できない場合(S404=YES)にも、第1の動作モードへ切り替える(S405)。
【0083】
(モード切り替え処理の第2の例(第1の動作モードの実行中))
図14は、第1の動作モードの実行中におけるモード切り替え処理の第2の例の詳細を説明するフローチャートである。これらの処理は、第1の動作モードの実行中における
図11のステップS208の処理として実行される。
【0084】
モード切替部216は、移動ロボット201が静止しておらず(S503=YES)、かつ第2の位置X2がFix解であるか(S502=YES)、あるいは第2の位置X2が第1の位置X1を中心とする誤差円の内部に収まるか(S509=YES)のいずれかである状態が、所定の期間T継続する場合(S505=YES)には、第2の動作モードへ切り替える(S511)。
【0085】
誤差円の半径Rは、第1の動作モードの開始時刻tchangeにおける第1の位置X1,tchangeからの移動距離に所定の調整係数aを乗じることにより、以下の式に従って算出される(S506)。
【0086】
【0087】
慣性センサ3の測定値に基づいて推定される第1の位置X
1は、移動距離の増加とともに誤差が増大する傾向がある。そのため、移動距離の増加にともなって誤差円の半径Rも増加させる(
図15を参照)。ただし、誤差円の半径Rが無制限に増加するのを防ぐために、最大半径Rmaxを設定している(S507~S508)。
【0088】
最大半径Rmaxは、例えば10m程度に設定することができる。調整係数aは、例えば0.5程度に設定することができる。この場合、移動距離が20m程度で最大半径Rmaxに到達する。また、所定の期間Tは、所定回数Nと所定時間Δtとの積として、以下の式に従って算出される。
【0089】
【0090】
図14のステップS504におけるカウント処理がN回行われたときに、所定の期間Tが経過したことになる。所定回数Nは、例えば20程度に設定することができる。
【0091】
また、移動ロボット201が静止している時間は、上記の所定の期間Tには算入されない。これはGNSS4から取得される第2の位置X2は、移動ロボット201が静止していても若干変動するため、移動ロボット201が静止しているだけで第2の動作モードへの切り替えが行われるのを防ぐためである。移動ロボット201の静止を判定する所定の閾値Mは、例えば0.1m程度に設定することができる。
【0092】
(モード切り替え処理の第2の例(第1の動作モードの実行中))
図16は、第1の動作モードの実行中におけるモード切り替え処理の第2の例の詳細を説明するフローチャートである。これらの処理は、第1の動作モードの実行中における
図11のステップS208の処理として実行される。
【0093】
モード切替部216は、第2の位置X2がFix解でなく(S601=NO)、かつFloat解でもない場合(S602=NO)には、第1の動作モードへ切り替える(SS605)。また、モード切替部216は、第2の位置X2がFloat解であり(S602=YES)、かつ第2の微小移動距離dX2から第1の微小移動距離dX1を減算した差分が所定の第1の閾値D1以上であるか(S603=YES)、あるいは第2の位置の垂直移動距離Dvが所定の第2の閾値D2以上である場合(S604=YES)にも、第1の動作モードへ切り替える(S605)。
【0094】
第2の位置の垂直移動距離Dvは、現在の時刻tにおける第2の位置X
2,tと、時刻t-1における第2の位置X
2,t-1とを用いて、以下の式に従って算出される(
図17を参照)。
【0095】
【0096】
第1の閾値D1は、移動ロボット201の最大速度Vmaxと所定時間Δtとの積として、以下の式に従って定義される。
【0097】
【0098】
第2の閾値D2は、移動ロボット201の最大速度Vmaxと所定時間Δtとの積の1/2として、以下の式に従って定義される。
【0099】
【0100】
なお、上記の第2の位置の垂直移動距離Dvに基づく判定は、移動ロボット201の速度に応じて、第2の位置の角度変化に基づく判定を行っていると解釈することもできる。詳細には、第2の閾値D2は、移動ロボット201の速度Vと所定時間Δtとを用いて、角度変化θの閾値Angjudgeに変換することができる(
図18を参照)。
【0101】
【0102】
閾値Angjudgeは、移動ロボット201の速度Vが大きいほど小さくなる。例えば、移動ロボット201が最高速度Vmaxで走行している場合には、閾値Angjudge=27度となる。すなわち、移動ロボット201が最高速度Vmaxで走行している場合には、第2の位置の角度変化θが27度以上の場合に、第1の動作モードへの切り替えが行われる。
【0103】
(モード切り替え時の補正(セーブポイント))
第2の動作モードから第1の動作モードへ切り替える際には、モード切り替え直後に推定される第1の位置X1と、それまでに取得された第2の位置X2の軌跡とが連続するように、第1の位置X1が補正されることが好ましい。補正の方法としては、例えば、モード切り替え直前の第2の位置X2とモード切り替え直後の第1の位置X1とが一致するように、第1の位置X1に対して回転の座標変換を適用することが考えられる。
【0104】
しかしながら、
図19に示されるように、第2の位置X
2の信頼性が低下して第2の動作モードから第1の動作モードへの切り替えが行われる際には、モード切り替えの少し以前から第2の位置X
2の座標が乱れている場合が多い。そのため、モード切り替え直前の第2の位置X
2に一致するように第1の位置X
1に対して座標変換を適用してしまうと、それ以降に推定される第1の位置X
1に誤りが生じてしまう可能性がある。
【0105】
この問題に対処するために、「セーブポイント」という概念を導入する。モード切替部216は、移動ロボット201が一定距離を走行する毎に、第1の位置X1および第2の位置X2をセーブポイントとして保存しておく。セーブポイントを保存する間隔は任意であるが、例えば5m程度に設定することができる。
【0106】
図20に示されるように、第2の動作モードから第1の動作モードへの切り替えの際には、第1の位置X
1に係る1つ前のセーブポイントL
-1および2つ前のセーブポイントL
-2が、第2の位置X
2に係る1つ前のセーブポイントG
-1および2つ前のセーブポイントG
-2にそれぞれ一致するように、第1の位置X
1に対して回転の座標変換を適用する。これにより、モード切り替え直前の信頼性の低い第2の位置X
2ではなく、それ以前のより信頼性の高い第2の位置X
2に連続するように、第1の位置X
1を補正することができる。
【0107】
なお、移動ロボット201が一定距離を走行する毎にセーブポイントを保存するのに加えて、第1の動作モードから第2の動作モードへの切り替え時、および第2の動作モードから第1の動作モードへの切り替え時にも、セーブポイントを保存してもよい。
【0108】
以上説明したように、本実施の形態2に係る推定装置210は、第2の機械学習モデル230を備えている。第2の機械学習モデル230は、第1の機械学習モデル20によって推定される移動ロボット201の速度、および慣性センサ3によって測定される移動ロボット201の回転角を逐次入力として受け取り、当該速度および回転角に基づいて、移動ロボット201の第1の位置を逐次推定する。
【0109】
上記のように、本実施の形態2に係る推定装置210では、慣性センサの測定値を積分するのではなく、時系列データを取り扱える機械学習モデルを用いて、慣性センサの測定値から速度を直接推定し、推定された速度と慣性センサの測定値とから位置を推定している。このような特徴により、本実施の形態2に係る推定装置210は、慣性センサの測定値から移動ロボットの速度および位置を高精度に推定することができる。
【0110】
また、本実施の形態2に係る推定装置210は、GNSS4から位置データを取得して移動ロボット201の第2の位置とする第3のデータ取得部215と、第1の位置および第2の位置に基づいて、現在の動作モードから他の動作モードへ切り替えるか否かを決定するモード切替部216とを備えている。
【0111】
第1の動作モードでは、第1の位置が移動ロボット201の正確な位置として採用される。第2の動作モードでは、第2の位置が移動ロボット201の正確な位置として採用される。このような特徴により、第1の位置と第2の位置のうち、より高い精度が期待できる方を移動ロボット201の正確な位置として採用することができる。
【0112】
本開示の幾つかの実施の形態を説明したが、これらの実施の形態は例として提示したものであり、開示の範囲を限定することは意図していない、これらの実施の形態は、その他の様々な形態で実施されることが可能であり、開示の要旨を逸脱しない範囲で、種々の省略、置き換え、変更等を行うことができる。これら実施の形態やその変形は、開示の範囲や要旨に含まれると同様に、特許請求の範囲に記載された開示とその均等の範囲に含まれるものである。
【0113】
また、本開示の処理は、特定の規格に限定されるものではなく、例示された設定は、適宜に変更されてよい。また、本開示の処理の手順は、これら一連の手順を有する方法として捉えてもよい。あるいは、本開示の処理の手順は、これら一連の手順をコンピュータに実施させるためのプログラム、または、当該プログラムを記憶する記録媒体として捉えてもよい。その場合、本開示の処理は、コンピュータのCPU等のプロセッサによって実行される。また、記録媒体の種類は、本開示の実施の形態に影響を及ぼすものではないため、特に限定されるものではない。
【0114】
また、本開示の
図2、
図3、
図4、
図8、
図9で示された各構成要素は、ソフトウェアで実現されてもよいし、ハードウェアで実現されてもよい。例えば、各構成要素がマイクロプログラム等のソフトウェアで実現されるソフトウェアモジュールであり、プロセッサが当該ソフトウェアモジュールを実行することにより、各構成要素が実現されてもよい。あるいは、各構成要素が、半導体チップ(ダイ)上の回路ブロック、例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)等の集積回路によって実現されてもよい。また、構成要素の数と構成要素を実現するハードウェアの数とは一致していなくてもよい。例えば、1つのプロセッサまたは回路が複数の構成要素を実現してもよい。反対に、1つの構成要素が複数のプロセッサまたは回路によって実現されてもよい。
【0115】
また、本開示で述べられたプロセッサは、その種類が限定されるものではない。プロセッサは、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはGPU(Graphics Processing Unit)等であってもよい。
【0116】
なお、本開示は、以下のような構成を取ることもできる。
[項目1](実1、実2)
慣性センサによって測定される移動体の加速度および回転角を取得する第1のデータ取得部と、
時系列データを取り扱える機械学習モデルであって、前記加速度および前記回転角を逐次入力として受け取り、該加速度および該回転角に基づいて、前記移動体の速度を逐次推定する第1の機械学習モデルと
を備える、推定装置。
[項目2](実1、実2)
前記第1の機械学習モデルは、第1のLSTMを含む、項目1に記載の推定装置。
[項目3](実1、実2)
前記第1の機械学習モデルは、
前記第1のLSTMの前段に設けられる第1の正規化層と、
前記第1の正規化層の前段に設けられる第1の全結合層と、
前記第1のLSTMの後段に設けられる第2の全結合層と
をさらに含む、項目2に記載の推定装置。
[項目4](実1、実2)
前記移動体の複数の時刻における加速度を記憶する記憶部をさらに備え、
前記第1の機械学習モデルは、前記移動体の前記複数の時刻における加速度を逐次入力として受け取り、該複数の時刻における加速度に基づいて、前記移動体の前記速度を逐次推定する、項目1~3のいずれか一項に記載の推定装置。
[項目5](実1、実2)
前記第1の機械学習モデルはさらに、前記加速度および前記回転角に基づいて、前記移動体の速度差分を逐次推定する、項目1~4のいずれか一項に記載の推定装置。
[項目6](実1、実2)
GNSSから速度データを取得する第2のデータ取得部をさらに備え、
前記第1の機械学習モデルは、前記速度データを逐次入力として受け取り、該速度データにさらに基づいて、前記移動体の前記速度を逐次推定する、項目1~5のいずれか一項に記載の推定装置。
[項目7](実2)
時系列データを取り扱える機械学習モデルであって、前記第1の機械学習モデルによって推定される前記移動体の前記速度、および前記回転角を逐次入力として受け取り、該速度および該回転角に基づいて、前記移動体の第1の位置を逐次推定する第2の機械学習モデルをさらに備える、項目1~6のいずれか一項に記載の推定装置。
[項目8](実2)
前記第2の機械学習モデルは、第2のLSTMを含む、項目7に記載の推定装置。
[項目9](実2)
前記第2の機械学習モデルは、
前記第2のLSTMの前段に設けられる第2の正規化層と、
前記第2の正規化層の前段に設けられる第3の全結合層と、
前記第2のLSTMの後段に設けられる第4の全結合層と、
前記第4の全結合層の後段に設けられる第5の全結合層と
をさらに含む、項目8に記載の推定装置。
[項目10](実2)
GNSSから位置データを取得して前記移動体の第2の位置とする第3のデータ取得部と、
前記第1の位置および前記第2の位置に基づいて、第1の動作モードから第2の動作モードへ切り替えるか否か、または前記第2の動作モードから前記第1の動作モードへ切り替えるか否かを決定するモード切替部と
をさらに備え、
前記第1の動作モードでは、前記第1の位置が前記移動体の正確な位置として採用され、
前記第2の動作モードでは、前記第2の位置が前記移動体の正確な位置として採用される、項目7~9のいずれか一項に記載の推定装置。
[項目11](実2:第1の例)
前記モード切替部は、前記第1の動作モードの実行中に、
前記第2の位置がFix解の場合、または、前記第2の位置がFloat解であり、かつ前記第1の位置と前記第2の位置との距離が所定の第1の距離より短い場合には、前記第2の動作モードへ切り替える、項目10に記載の推定装置。
[項目12](実2:第1の例)
前記モード切替部は、前記第2の動作モードの実行中に、
前記第2の位置がFloat解であり、かつ前記第2の位置に基づいて算出される第2の微小移動距離から前記第1の位置に基づいて算出される第1の微小移動距離を減算した差分が所定の第1の閾値以上の場合、または、前記第2の位置が単独測位解の場合、または、前記第2の位置を取得できない場合には、前記第1の動作モードへ切り替える、項目10または11に記載の推定装置。
[項目13](実2:第2の例)
前記モード切替部は、前記第1の動作モードの実行中に、
前記移動体が静止しておらず、かつ前記第2の位置がFix解であるか、あるいは前記第2の位置が前記第1の位置を中心とする誤差円の内部に収まるかのいずれかである状態が、所定の期間継続する場合には、前記第2の動作モードへ切り替える、項目10に記載の推定装置。
[項目14](実2:第2の例)
前記モード切替部は、前記第2の動作モードの実行中に、
前記第2の位置がFix解でなく、かつFloat解でもない場合、または、前記第2の位置がFloat解であり、かつ前記第2の位置に基づいて算出される第2の微小移動距離から前記第1の位置に基づいて算出される第1の微小移動距離を減算した差分が所定の第1の閾値以上であるか、あるいは前記第2の位置の垂直移動距離が所定の第2の閾値以上の場合には、前記第1の動作モードへ切り替える、項目10または13に記載の推定装置。
[項目15](実2)
前記モード切替部は、前記移動体が一定距離を移動する毎に、前記第1の位置および前記第2の位置をセーブポイントとして保存しておき、
前記第2の動作モードから前記第1の動作モードへの切り替えの際には、前記第1の位置に係る1つ前のセーブポイントおよび2つ前のセーブポイントが、前記第2の位置に係る1つ前のセーブポイントおよび2つ前のセーブポイントにそれぞれ一致するように、前記第1の位置に対して回転の座標変換を適用する、項目10~14のいずれか一項に記載の推定装置。
[項目16]
項目1~15のいずれか一項に記載の推定装置を備える、移動ロボット。
[項目17]
慣性センサによって測定される移動体の加速度および回転角を取得するステップと、
前記加速度および前記回転角を、時系列データを取り扱える第1の機械学習モデルに逐次入力し、該第1の機械学習モデルによって逐次推定される前記移動体の速度を取得するステップと
を含む、推定方法。
[項目18]
慣性センサによって測定される移動体の加速度および回転角を取得するステップと、
前記加速度および前記回転角を、時系列データを取り扱える第1の機械学習モデルに逐次入力し、該第1の機械学習モデルによって逐次推定される前記移動体の速度を取得するステップと
をコンピュータに実行させる、コンピュータプログラム。
【符号の説明】
【0117】
1 移動ロボット(移動体)
2 車輪
3 慣性センサ
4 GNSS
4a 衛星
4b 配信事業者
5 受信機
6 無線インターフェース
10 推定装置
11 第1のデータ取得部
12 記憶部
13 第2のデータ取得部
14 第1の出力部
20 第1の機械学習モデル
21 第1の全結合層
22 第1の正規化層
23 第1のLSTM
23a 第1のシグモイド層
23b 第1の乗算器
23c 第2のシグモイド層
23d 第2の乗算器
23e 第1のtanh層
23f 加算器
23g 第3のシグモイド層
23h 第3の乗算器
23i 第2のtanh層
24 第2の全結合層
26 教師データ
26a 入力データ
26b 正解データ
100 推定システム
200 推定システム
201 移動ロボット(移動体)
210 推定装置
215 第3のデータ取得部
216 モード切替部
217 第2の出力部
230 第2の機械学習モデル
231 第3の全結合層
232 第2の正規化層
233 第2のLSTM
234 第4の全結合層
235 第5の全結合層
236 教師データ
236a 入力データ
236b 正解データ
a 調整係数
Angjudge 角度変化の閾値
D1 第1の閾値
D2 第2の閾値
Dv 垂直移動距離
dX1 第1の微小移動距離
dX2 第2の微小移動距離
G 第2の位置のセーブポイント
L 第1の位置のセーブポイント
L1 第1の距離
M 閾値
N 所定回数
R 誤差円の半径
Rmax 最大半径
T 所定の期間
V 速度
Vmax 最大速度
X1 第1の位置
X2 第2の位置
Δt 所定時間