(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-10
(45)【発行日】2023-11-20
(54)【発明の名称】センサのゼロレート出力を較正するための方法および装置
(51)【国際特許分類】
G01C 19/00 20130101AFI20231113BHJP
G05D 1/02 20200101ALI20231113BHJP
【FI】
G01C19/00 Z
G05D1/02 H
(21)【出願番号】P 2021516904
(86)(22)【出願日】2019-11-22
(86)【国際出願番号】 US2019062769
(87)【国際公開番号】W WO2020087088
(87)【国際公開日】2020-04-30
【審査請求日】2022-10-07
(32)【優先日】2018-12-13
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-06-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520330641
【氏名又は名称】シーバ・テクノロジーズ・インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ブライアン・エー・クック
(72)【発明者】
【氏名】ユン・リ
(72)【発明者】
【氏名】マーク・ターナー
(72)【発明者】
【氏名】ダグラス・チャールズ・カールソン
【審査官】飯村 悠斗
(56)【参考文献】
【文献】特開2008-151746(JP,A)
【文献】特開2017-049115(JP,A)
【文献】特開2014-153215(JP,A)
【文献】国際公開第2018/118574(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01C 19/00-19/72
G05D 1/02
(57)【特許請求の範囲】
【請求項1】
装置上に配置された第1の慣性センサのゼロレートオフセット(ZRO)を較正するための方法であって、
前記装置上に配置された少なくとも1つの非慣性センサに関連する情報に基づいて前記装置の安定性レベルを決定するステップ(500)と、
前記安定性レベルが閾値を上回っているときに前記第1の慣性センサの前記ZROの較正を実行するステップ(502)と、
を含
み、
前記方法はさらに、
前記第1の慣性センサについての現在のZRO値の質を推定するステップと、
前記第1の慣性センサについての前記現在のZRO値の前記質の前記推定に基づいて、ZRO較正を実行する必要性のレベルを決定するステップと、
ZRO較正を実行する必要性の前記レベルに応じて前記装置の運動を制御するステップと、
をさらに含む、方法。
【請求項2】
前記装置の安定性を示す前記少なくとも1つの非慣性センサからデータを受信するステップと、
前記少なくとも1つの非慣性センサからの前記データに基づいて、前記装置の第1の安定状態を推定するステップと、
前記装置の安定性を示す少なくとも1つの慣性センサからデータを受信するステップであって、前記少なくとも1つの慣性センサは前記第1の慣性センサを含むことができる、ステップと、
前記少なくとも1つの慣性センサからの前記データに基づいて、前記装置の第2の安定状態を推定するステップと、
前記第1の安定状態と前記第2の安定状態との組み合わせに基づいて、前記装置の全体的な安定状態を決定するステップと、
前記装置がZRO較正のために十分安定していることを前記全体的な安定状態が示せば、前記第1の慣性センサの前記ZROの前記較正を実行するステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
ZRO較正を実行する必要性の前記レベルを決定する前記ステップは、前記レベルを示す第1のフラグを生成するステップを含み、前記第1のフラグは、
ZROを較正する現在の必要性がないことを示す制約なし状態、
前記装置を静止させておくべきであることを前記装置の前記全体的な安定状態が示していることを示す静止持続状態、
好都合であれば前記装置を静止させるべきであることを示す装置静止非緊急要求状態、および
可能であれば前記装置を静止させるべきであることを示す装置静止緊急要求状態、
の1つにある、請求項
2に記載の方法。
【請求項4】
(1)前記第1のフラグは、ZRO較正が実行されているときに前記静止持続状態で生成され、(2)前記第1のフラグは、前記現在のZRO値が第1の精度範囲内にあると決定されるときに前記装置静止非緊急要求状態で生成され、(3)前記第1のフラグは、前記現在のZRO値が第2の精度範囲内にあると決定されるときに前記装置静止緊急要求状態で生成され、(4)前記第1のフラグは、前記現在のZRO値が第3の精度範囲内にあると決定されるときに前記制約なし状態で生成される、請求項
3に記載の方法。
【請求項5】
前記第1の安定状態は、
前記装置が第1のタイプのZRO較正を実行するのに十分静止していることを示す振動なし安定状態、
前記装置が第2のタイプのZRO較正を実行するのに十分安定していることを示す振動あり安定状態、
前記装置の安定性のレベルがわからないことを示す不明状態、および
前記装置はZRO較正を実行するには安定性が不十分であることを示す運動中状態、
の1つを有することができる、請求項2に記載の方法。
【請求項6】
前記第1の安定状
態は、ZRO較正を実行することができることを示す複数の安定状態を含む、請求項2に記載の方法。
【請求項7】
前記現在のZRO値の前記質は、
ZRO較正が実行されてからの時間経過、
ZROが実行されてからの温度変化、および
最後のZRO較正の較正品質、
の少なくとも1つに基づいている、請求項
1に記載の方法。
【請求項8】
前記第1の慣性センサについての前記現在のZRO値の前記質を推定するステップは、前記ZRO値に関連する標準偏差を決定するステップを含む、請求項3に記載の方法。
【請求項9】
前記ZRO値に関連する前記標準偏差を決定するステップは、
前記ZRO値を生成する際に用いられる前記第1の慣性センサの出力サンプルの前記標準偏差を決定するステップと、
前記ZRO値を生成する際に用いられる前記第1の慣性センサの出力サンプルの前記標準偏差を、前記ZRO値を生成する際に用いられる前記第1の慣性センサの前記出力サンプルの数の平方根で割るステップと、
その結果に限界因子を掛けるステップであって、前記限界因子は、前記第1の慣性センサでの観察経験に基づいて決定される、ステップと、
を含む、請求項
8記載の方法。
【請求項10】
前記ZRO値に関連する前記標準偏差を決定するステップは、
無限インパルス応答(IIR)フィルタで前記ZRO値を生成する際に用いられる前記第1の慣性センサの出力サンプルをフィルタリングするステップと、
前記フィルタリングされたサンプルの標準偏差を決定するステップと、
を含む、請求項
8に記載の方法。
【請求項11】
温度に応じてZRO値のフィットを維持するステップと、
前記フィットの質を推定するステップと、
前記フィットの前記質の前記推定に基づいて、ZRO較正を実行する必要性のレベルを決定するステップと、
前記フィットの前記推定された質に基づいて、ZRO較正を実行する必要性の前記レベルに応じて前記装置の運動を制御するステップと、
をさらに含む、請求項
1に記載の方法。
【請求項12】
前記第1の慣性センサの前記ZROの較正を実行する前記ステップは、
前記第1の慣性センサの温度を決定するステップと、
前記装置がZRO較正のために十分安定しており、前記第1の慣性センサの前記温度が安定していることを前記全体的な安定状態が示す期間中に、前記第1の慣性センサの出力の複数のサンプルを収集するステップと、
前記サンプルに応じて、前記収集中の前記第1の慣性センサの前記温度で前記第1の慣性センサの前記ZROを推定するステップと、
をさらに含む、請求項
2に記載の方法。
【請求項13】
少なくとも2つの連続する別々の期間であって、前記装置が安定し、前記第1の慣性センサの前記温度が安定し、前記少なくとも2つの連続する期間にわたって実質的に同じ安定である、少なくとも2つの連続する別々の期間を決定するステップと、
前記少なくとも2つの連続する別々の期間の間のギャップ時間を決定するステップと、
をさらに含み、
前記第1の慣性センサの前記ZROの前記較正を実行する前記ステップは、前記ギャップ時間が閾値を下回っていれば、前記少なくとも2つの連続する別々の期間からの前記サンプルを組み合わせてZRO推定値を生成するステップを含む、
請求項
12に記載の方法。
【請求項14】
装置であって、
少なくとも1つの非慣性センサ(104)と、
少なくとも1つの慣性センサ(102)と、
少なくとも1つのモータ(106)と、
前記装置上に配置された前記慣性センサ(102)のゼロレートオフセット(ZRO)を、前記少なくとも1つの非慣性センサ(104)に関連する情報に基づいて前記装置の安定性レベルを決定することによって、および前記安定性レベルが閾値を上回っているときに前記少なくとも1つの慣性センサ(102)の1つの前記ZROの較正を実行することによって較正するためのコントローラ(100)と、
を含
み、
前記コントローラは、
前記少なくとも1つの慣性センサの前記1つについての現在のZRO値の質を推定し、
前記少なくとも1つの慣性センサの前記1つについての前記現在のZRO値の前記質の前記推定に基づいて、ZRO較正を実行する必要性のレベルを決定し、
ZRO較正を実行する必要性の前記レベルに応じて前記装置の運動を制御する
ようにさらに構成されている、装置。
【請求項15】
前記コントローラは、前記装置の安定性を示す前記少なくとも1つの非慣性センサからデータを受信し、前記少なくとも1つの非慣性センサからの前記データに基づいて、前記装置の第1の安定状態を推定し、前記装置の前記安定性を示す前記少なくとも1つの慣性センサからデータを受信し、前記少なくとも1つの慣性センサからの前記データに基づいて、前記装置の第2の安定状態を推定し、前記第1の安定状態と前記第2の安定状態との組み合わせに基づいて、前記装置がZRO較正を実行するのに十分安定していることを示す少なくとも第1の状態および前記装置がZRO較正を実行するのに十分安定していないことを示す第2の状態を含む、前記装置の全体的な安定状態を決定し、前記装置がZRO較正のために十分安定していることを前記全体的な安定状態が示せば、前記少なくとも1つの慣性センサの前記1つの前記ZROの前記較正を実行するようにさらに構成されている、請求項14に記載の装置。
【請求項16】
ZRO較正を実行する必要性の前記レベルを決定するステップは、前記レベルを示す第1のフラグを生成するステップを含み、前記第1のフラグは、
ZROを較正する現在の必要性がないことを示す制約なし状態、
前記装置を静止させておくべきであることを前記装置の前記全体的な安定状態が示していることを示す静止持続状態、
好都合であれば前記装置を静止させるべきであることを示す装置静止非緊急要求状態、および
可能であれば前記装置を静止させるべきであることを示す装置静止緊急要求状態、
の1つにある、請求項
15に記載の装置。
【請求項17】
(1)前記第1のフラグは、ZRO較正が実行されているときに前記静止持続状態で生成され、(2)前記第1のフラグは、前記現在のZRO値が第1の精度範囲内にあると決定されるときに前記装置静止非緊急要求状態で生成され、(3)前記第1のフラグは、前記現在のZRO値が第2の精度範囲内にあると決定されるときに前記装置静止緊急要求状態で生成され、(4)前記第1のフラグは、前記現在のZRO値が第3の精度範囲内にあると決定されるときに前記制約なし状態で生成される、請求項
16に記載の装置。
【請求項18】
前記決定するステップは、(a)ホイールエンコーダから前記装置に取り付けられたホイールが動いていないこと、(b)カメラによって検出される画像が変化していないこと、(c)ブロワーモータがオフであること、または(d)ホイールモータがオフであること、のうちの少なくとも1つに基づいて前記安定性レベルをモータコントローラによって決定するステップをさらに含む、請求項1に記載の方法。
【請求項19】
前記安定性レベルを前記決定するステップは、(a)~(d)のすべてに基づいている、請求項
18に記載の方法。
【請求項20】
前記コントローラは、(a)ホイールエンコーダから前記装置に取り付けられたホイールが動いていないこと、(b)カメラによって検出される画像が変化していないこと、(c)ブロワーモータがオフであること、または(d)ホイールモータがオフであること、のうちの少なくとも1つに基づいて前記安定性レベルをモータコントローラによって決定することによって、前記安定性レベルを決定する、請求項
14に記載の装置。
【請求項21】
前記安定性レベルを前記決定するステップは、(a)~(d)のすべてに基づいている、請求項
20に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本願は、2018年9月25日に出願された「METHODS AND APPARATUS FOR CALIBRATING THE ZERO RATE OUTPUT OF A SENSOR」という名称の米国特許仮出願第62/736,355号、2018年12月13日に出願された「METHODS AND APPARATUS FOR CALIBRATING THE ZERO RATE OUTPUT OF A SENSOR」という名称の米国特許仮出願第62/779,336号、および2019年6月4日に出願された「METHODS AND APPARATUS FOR CALIBRATING THE ZERO RATE OUTPUT OF A SENSOR」という名称の米国特許仮出願第62/856,953号に関し、これらからの優先権を主張するものであり、これら3つすべての開示を、参照により本明細書に組み込む。
【背景技術】
【0002】
電子機器、特に携帯電話、デジタルカメラ、GPSユニット、ラップトップおよびパームトップコンピュータ、自動車、ロボット掃除機などのようなモバイル機器が、9軸センサのような、いわゆる運動センサを含んで、拡張された機能性を提供することがますます普及および拡大している。これらは、3つの直交する方向のそれぞれについて1つのジャイロスコープ、1つの加速度計、および1つの磁力計を含み、合計9つのセンサを含むため、9軸と呼ばれる。このような運動センサを有するチップまたは他の電子部品は一般に、IMUまたは慣性運動ユニット(Inertial Motion Unit)と呼ばれる。3Dジャイロスコープは角速度を測定する。3D加速度計は線形加速度を測定する。磁力計は局所磁場ベクトル(またはその偏差)を測定する。その大衆性にもかかわらず、これら9軸センサの予測可能な能力は、とりわけ、センサから望ましくない影響を較正および除去することが困難であるため、十分に活用されていない。たとえば、ジャイロスコープは、ジャイロスコープが実際には回転していないときにその出力が非ゼロ(回転を示す)になるゼロレートオフセット(ZRO)として知られるよく知られた現象の影響を受ける傾向がある。磁力計は、近接場干渉、軟鉄効果、および硬鉄効果のような、いくつかの異なるよく知られたノイズ要因を被る。
【0003】
携帯電話、仮想現実眼鏡およびヘッドセット、拡張現実眼鏡およびヘッドセット、テレビ用リモコンユニットおよび他の3Dポインティングデバイス、ならびに他の携帯用通信機器も今やIMUとともに一般的に利用可能であり、ゲーミングアプリケーション、仮想現実(VR)および拡張現実(AR)アプリケーション、ならびにフォトグラフィックおよびビデオグラフィックアプリケーションを含むが、これらに限定されない、多くの異なる用途のための3Dアプリケーションで用いられている。3Dポインティングデバイスの一例を、Matthew G. Libertyの特許文献1に見出すことができ、その開示を、参照により本明細書に組み込む。
【0004】
特許文献1は、たとえば、1つまたは2つの回転センサおよび加速度計を含む3Dポインティングデバイスを記載している。回転センサは、以下でより詳細に説明するように、ユーザが3Dポインティングデバイスを回転させている角速度を検出するために用いられる。しかしながら、回転センサの出力は、たとえば、センサの出力における前述の「ゼロレートオフセット」またはZROのため、3Dポインティングデバイスが回転している角速度を完全には表していない。たとえば、3D IMUが動いていないとき、回転センサは通常、ZROのために非ゼロ出力を有することになる。たとえば、IMUが、たとえば、カーソルを移動させる、または仮想現実シーンを表示するためにユーザインターフェイスへの入力として用いられる3Dポインティングデバイスに組み込まれていれば、これは、ユーザがカーソルを静止させておくことを意図しているとき、カーソルがスクリーン中をドリフトするという望ましくない影響を与えることになる。他の一例として、ZROは、VRシーンを静止させておくべきときにドリフトさせるかもしれず、またロボット掃除機を間違った方向に移動させる可能性がある。したがって、センサ出力からZROを推定および除去することが非常に望ましい。このプロセスをより困難にするのは、バイアスがセンサごとに異なり、個々のセンサについても、たとえば、温度の変化および/または経年変化のため、時間とともに変化するという事実である。
【0005】
多くのZROアルゴリズムは直接的には温度勾配を求めないが、装置が安定している、すなわち、静止しているときにZROを動的に学習し、この推定値を継続的に改良しようとする。
【0006】
温度に関して較正されることになるセンサの工場較正を行うことは一般的である。しかしながら、このタイプのZRO補償には欠点がある。たとえば、装置は複数の温度で測定されねばならないため、較正のコストが高い。これにはより多くの機器が要求され、較正を実行しない、または単一の温度で較正を実行するより実質的に多くの時間がかかる。また、温度性能は、装置が取り付けられると、または時間の経過とともに変化する可能性もあるので、装置上に動的アルゴリズムを有することにより、温度勾配を較正し続けることができる。
【0007】
特許文献2を、その全体を参照により本明細書に組み込むが、これは、直接的にZROの温度勾配を求めるZRO補償を実行するための方法および装置を開示している。
【先行技術文献】
【特許文献】
【0008】
【文献】米国特許第7118518号明細書
【文献】国際公開第2018/118574号パンフレット
【発明の概要】
【課題を解決するための手段】
【0009】
一実施形態によれば、装置上に配置された第1の慣性センサのゼロレートオフセット(ZRO)を較正するための方法が、装置上に配置された少なくとも1つの非慣性センサに関連する情報に基づいて装置の安定性レベルを決定するステップと、安定性レベルが閾値を上回っているときに第1の慣性センサのZROの較正を実行するステップと、を含む。
【0010】
一実施形態によれば、ロボット装置を動作させるための方法が、ロボット装置上に配置された1つまたは複数の慣性センサに関連する現在のゼロレートオフセット(ZRO)エラーレベルに基づいて複数の運動制御要求の1つをコントローラに送信するステップと、その運動制御要求に基づいてロボット装置の動きを制御するステップと、を含む。
【0011】
一実施形態によれば、装置上に配置された第1の慣性センサのゼロレートオフセット(ZRO)を較正するための方法が、ZRO較正とは無関係の理由で第1の期間装置を停止させるステップと、第1の期間中にZRO較正データを蓄積するステップと、第1の期間後に装置を動かすステップと、ZRO較正とは無関係の理由で第2の期間装置を停止させるステップと、第2の期間中にZRO較正データを蓄積するステップと、第1および第2の期間からの蓄積されたZRO較正データを用いてZRO較正を実行するステップと、を含む。
【0012】
一実施形態によれば、装置が、少なくとも1つの非慣性センサと、少なくとも1つの慣性センサと、少なくとも1つのモータと、装置上に配置された慣性センサのゼロレートオフセット(ZRO)を、少なくとも1つの非慣性センサに関連する情報に基づいて装置の安定性レベルを決定することによって、および安定性レベルが閾値を上回っているときに少なくとも1つの慣性センサの1つのZROの較正を実行することによって、較正するためのコントローラと、を含む。
【0013】
一実施形態によれば、ロボット装置が、少なくとも1つのモータと、ロボット装置上に配置された1つまたは複数の慣性センサに関連する現在のゼロレートオフセット(ZRO)エラーレベルに基づいて複数の運動制御要求の1つを受信し、その運動制御要求に基づいて少なくとも1つのモータを用いてロボット装置の動きを制御するように構成されたコントローラと、を含む。
【0014】
一実施形態によれば、装置が、少なくとも1つのモータと、ゼロレートオフセット(ZRO)較正とは無関係の理由で第1の期間装置を停止させ、第1の期間中にZRO較正データを蓄積し、第1の期間後に装置を動かし、ZRO較正とは無関係の理由で第2の期間装置を停止させ、第2の期間中にZRO較正データを蓄積し、第1および第2の期間からの蓄積されたZRO較正データを用いてZRO較正を実行するように構成されたコントローラと、を含む。
【0015】
本明細書に添付された図面と併せて例として与えられた、以下の詳細な説明から、より詳細な理解を得ることができる。説明における図は例である。そのため、図および詳細な説明は限定的なものとは見なされず、他の等しく効果的な例が可能および適当である。さらに、図中の同様の参照番号は同様の要素を示す。
【図面の簡単な説明】
【0016】
【
図1】一実施形態による例示的なシステムの構成要素を示すブロック図である。
【
図2A】一実施形態による処理システムについての状態図を示す。
【
図2B】一実施形態による処理システムについての状態図を示す。
【
図3A】他の一実施形態による処理システムについての状態図を示す。
【
図3B】他の一実施形態による処理システムについての状態図を示す。
【
図4】運動要求フラグのさまざまな状態に応答するように装置をどのようにプログラムすることができるかの例示的な一実施形態を示す表である。
【
図5】実施形態による方法を示すフローチャートである。
【
図6】実施形態による方法を示すフローチャートである。
【
図7】実施形態による方法を示すフローチャートである。
【発明を実施するための形態】
【0017】
本発明の次の詳細な説明は添付の図面を参照する。異なる図面における同じ参照符号は、同じまたは類似の要素を特定する。また、次の詳細な説明は本発明を限定するものではない。代わりに、本発明の範囲は添付の請求項によって定義される。
【0018】
上記のように、IMUは、ロボット掃除機のようなロボット工学で用いることができ、これは、1つまたは複数の加速度計、磁力計、およびジャイロスコープを含んで、ロボットを制御する際に用いるための進路情報を提供するIMUを有することができる。ロボットはまた、ホイールの線形運動を測定するホイールエンコーダ、および/またはナビゲーションのためのカメラまたはLIDARのような、他のセンサを組み込むことができる。ロボットはまた、すべてのセンサからのデータへのアクセスを有する、プロセッサのようなコントローラを有することができ、したがって、ロボットの動き、ならびに位置的、および/または方向的状態を計算することができる。たとえば、ホイールエンコーダおよびカメラの両方が運動を示さず、すべてのモータがアイドルであれば、コントローラは、ロボットが静止していると合理的に推測することができる。
【0019】
加えて、ロボットは、ロボットの一部のロボットの他の部分に対する回転および並進(たとえば、ロボットの本体に対して移動する機械式アーム)を含む、任意の軸周りの回転および/または任意の方向における並進を含む、任意の数の方法でロボットを移動させるためのモータを含むことができる。コントローラはまた、モータを制御することによってロボットの運動を指示するように適合させることができる。
【0020】
一実施形態によれば、コントローラ(または他の処理装置)は、IMUセンサおよび他のセンサおよび構成要素(たとえば、カメラ、ホイールエンコーダ)の両方からのデータを用いてIMUセンサの較正を改善する。
【0021】
上記のように、ジャイロスコープ(たとえば、ZRO)の適切なバイアス較正は、IMUの性能、したがってロボットの進路にとって重要である。一般に、センサが静止しているときにZROを較正するのが最も容易である。しかしながら、このプロセスをより困難にするのは、バイアスはセンサごとに異なり、個々のセンサについても、たとえば、経年変化および温度の変化のため、時間とともに変化するという事実である。
【0022】
多くのZROアルゴリズムは、装置が安定している、すなわち、静止しているときにZROを動的に学習し、この推定値を継続的に改良しようとする。これは、装置が頻繁に安定すればうまく働くが、装置が安定した後、長期間連続運動すれば働かない。たとえば、ロボット掃除機は、初期の安定したウィンドウの後で大きな部屋を掃除するのに長い時間がかかることがあり、その時間にジャイロスコープのZROが変化することがある。考えられる1つの解決策は、ZRO較正のためにロボットを定期的に停止させることである。しかしながら、ZROの変化はいくつかの要因に依存する可能性があるため、ZRO再較正が必ずしも一定の時間間隔で要求されるとは限らない。不要なときにロボットを停止させるのは時間の無駄である。したがって、ZRO較正がいつ必要か、およびいつ必要ないかをコントローラが知ることは有益であろう。
【0023】
また、ロボットは完全に安定していないときがあり、そのため慣性センサは、ZRO較正を実行するのに良好な時ではないが、それでも妥当なZRO較正を可能にするのに十分安定し得ることを示す。たとえば、ロボット掃除機が静止している、すなわち線形運動および角運動がないが、ブロワーが動作しているとき、慣性センサはブロワーによって引き起こされる振動のために大量の測定ノイズを検出する可能性があり、そのため慣性センサ出力に基づく安定検出アルゴリズムが、ZROを実行することができるようにロボットが安定していると判断しない可能性が高い。しかしながら、実際には、ロボットが移動も回転もしておらず、単に振動しているとき、特に比較的長いデータ収集ウィンドウ(たとえば、数秒)で、良好なZRO較正を実行することができる(安定したブロワーオフの場合ほど良好ではないが)。したがって、ロボットが並進または回転していないが、ブロワーがオンであるとき、特に最後のZRO較正から長い時間が経過しているとき、ZRO較正を実行することが非常に望ましいことがある。
【0024】
他の特殊なケースは、ロボットが一定の角速度で重力軸周りに回転していて(たとえば、ジンバル上で)、ロボットのIMUが1つまたは複数のジャイロスコープおよび1つまたは複数の加速度計のみを有し、磁力計がないときである。ジャイロスコープおよび加速度計のデータはロボットが静止しているときと同じであり、進路変化を検出する磁力計がないため、安定性検出器はロボットが静止していると考えるように「だまされる」ことになり、したがって、回転角速度はZROと見なされるであろう。この場合、ロボットが動いていることを示すロボットからのフラグが、誤った安定検出を回避することができる。
【0025】
上記の理由で、ロボットが静止しているかどうかのさらに正確な推定を得、したがってZRO(ゼロレートオフセット)較正を所望されるときにのみ実行し、所望されないまたは必要ないときは実行しないようにする(または少なくともZRO較正を実行すべきでないときに実行する、またはZROを実行すべきときに実行しない回数を減らす)ため、ロボットコントローラとZRO較正ユニット/プロセスとの間の相互作用を組み込むことが有益であろう。より具体的には、ホイールエンコーダデータおよび/またはカメラデータのような、装置が安定しているかどうかを示すデータをロボットコントローラからZRO較正ユニットに提供することにより、過去には適切であると見なされなかったかもしれない場合にZRO較正を実行することが可能になり得、したがって必要なまたは所望されるときに、より頻繁なZRO較正が可能になる。補足として、ZRO較正ユニットはロボットコントローラと通信して、ZRO較正が必要になったときにロボットを停止させるように要求することもできるが、さもなければロボットが動いているため実行することができない。
【0026】
図1は、一実施形態、たとえば、ロボット掃除機による例示的なロボットシステムのブロック図である。このシステムはロボットコントローラを含み、これは、IMU102およびホイールエンコーダおよびカメラのような、ロボット上の他のセンサ104から受信されたデータを処理するためのプロセッサを含むことができる。IMU102は、1つまたは複数の軸周りでの回転を検出する1つまたは複数のジャイロスコープ、1つまたは複数の方向に沿った加速度を検出する加速度計、および地球の磁場に対する方向を検出する1つまたは複数の磁力計のような慣性センサを含むことができる。ロボットコントローラ100は、ロボットおよび/またはその別個の部分を、並進運動および回転運動を含んで、移動させて機能を実行させることができる1つまたは複数のモータ106と通信することができる。ロボットコントローラ100およびIMU102の両方は、1つまたは複数のプロセッサおよび1つまたは複数のメモリ(別個に図示せず)を含むことができる。たとえば、IMU内の、またはさもなければこれに関連するプロセッサが慣性センサと相互作用してバイアスオフセット補償技術を実行することができる。同様に、ロボットコントローラ内のプロセッサが、モータのような、システムの他の構成要素と相互作用してこれを制御することができる。ロボットコントローラ100に関連するプロセッサおよびIMU102に関連するプロセッサは、両方の機能のセットを実行するように適合された単一のプロセッサで構成することができる。実際、
図1における各構成要素は、汎用コンピュータを含む、プロセッサ上で動く1つまたは複数のソフトウェアモジュールを含むことができ、またはASIC、ステートマシン、論理回路、アナログ回路、デジタル回路、プロセッサを含むが、これらに限定されない、以下に説明する機能を実行するための専用ハードウェアコンポーネントで構成することができ、または上記の要素のいずれかの組み合わせとすることができる。IMUはまた、慣性センサからのデータに基づいて装置(たとえば、ロボット)が静止/安定しているかどうかを決定する機能を実行することができる。
【0027】
一実施形態によれば、上記の構成要素、機能、および信号に加えて、ロボットコントローラコンポーネント100およびIMUコンポーネント102は、運動要求(MotionRequest)フラグシグナリングおよび運動意図(MotionIntent)フラグシグナリングを交換することができる。さらに、ロボットコントローラは、別個の安定性検出機能をさらに含むことができる。
【0028】
以下でより詳細に説明するように、ロボットコントローラにおける安定性検出機能は、他のセンサ(すなわち、IMUにおける慣性センサではない)から受信されたデータに基づいて、ロボットが安定しているかどうか、および/またはどれだけ安定(または静止)しているかを決定する。
【0029】
以下でより詳細に説明するように、運動意図フラグは、ロボットの運動状態を示すロボットコントローラによってIMUに出される信号である。非慣性センサからのデータにより、ロボットコントローラがロボットの実際の動きを誤って計算する可能性があるため、これは運動意図フラグと呼ばれる。たとえば、ホイールエンコーダデータは、ホイールが転動していないことを示すことができ、これは、ロボットコントローラによって合理的に用いられてロボットが静止していると結論付けるかもしれない。しかしながら、ロボットが滑りやすい表面上にあれば、ロボットは実際には床に沿って滑っているかもしれないと考えられる。また、カメラ出力がロボットの運動状態を正確に反映していないかもしれない可能性もある。運動要求フラグは、IMUがZRO較正を実行することができるようにIMUがロボットを停止させたいかどうかを示すIMUによってロボットコントローラに出される信号である。
【0030】
I.適応センサノイズレベルでの安定性検出機能
安定性検出がZRO較正目的のために望ましい。ロボット/センサが安定しているとき、時間ウィンドウにわたるジャイロスコープ出力データの平均は本質的にZROの推定値である。この推定値の精度は、ジャイロスコープのノイズレベルおよびノイズが観察される時間ウィンドウの長さに依存する。他の実施形態において、ZRO推定は、時間ウィンドウにわたるジャイロスコープ出力データの平均を単にとるよりはるかに複雑であり得る。たとえば、前述の特許文献2は、直接的にZROの温度勾配を求めて現在の温度での正確なZRO推定値を取得するZRO補償を実行するための方法および装置を開示している。
【0031】
センサのノイズレベルがわかれば、ロボットが安定している(たとえば、バイアス推定を実行することができるように)という決定は、(1)ウィンドウ内のサンプルのピークツーピーク変動が第1の閾値(以下サンプル閾値と呼ぶ)内にあるか、および(2)ウィンドウ平均が第2の閾値(ここでは平均閾値と呼ぶ)より大きく変化しないかどうかに基づくことができる。複数のセンサ(たとえばIMU内部の加速度計、ジャイロスコープ、および磁力計)があるとき、安定性検出はすべてのセンサからの測定データに基づくべきであり、たとえば、ロボットは、すべてのセンサが安定しているときにのみ安定していると見なすことができる。
【0032】
サンプル閾値および平均閾値は両方ともセンサノイズレベルから計算される。しかしながら、ノイズレベルは同じモデル内のセンサごとに異なる。各センサモデルノイズについての公称値(たとえば、製造者によって、または動作前テストによって提供された、またはさもなければ現在時刻の前に決定された値)をノイズレベルとして用いることができる。しかしながら、この値は通常ほとんどのセンサについて正確でない。実際のノイズレベルが公称値より大きければ、センサは動きに対して非常に敏感であり、したがってこのようなセンサで安定性を正確に決定することは困難である。他方、実際のノイズレベルが公称値よりはるかに小さければ、動きに対して十分な感度がなく、この場合ロボットは実際にはゆっくりと動いているときに安定していると決定されるかもしれず、これはZRO精度を損なうであろう。したがって、各センサについて実際のノイズレベルを「学習」することが重要である。
【0033】
以下でより詳細に説明するような一実施形態において、安定性検出機能は、公称値をセンサノイズレベルとして用いることによって開始し、安定性が検出されるたびに各センサについてノイズ値を更新することができる。このように、サンプル閾値および平均閾値を計算するために用いられたセンサノイズレベルは、時間の経過とともに継続的により正確になる。
【0034】
センサノイズに加えて振動があれば、装置が安定しているかどうかを決定することがより複雑になる。たとえば、ロボット掃除機(RVC)の例において、これは、RVCが移動も回転もしていないが、少なくとも1つのモータがオンであるときに発生する可能性がある。動いているモータまたはフロアタイプの異なる組み合わせによって引き起こされる異なるレベルの振動があるかもしれないため、装置安定性の適度に正確な検出を得るには代替の解決策が要求され得る。一実施形態において、振動ノイズを動的に学習する加重統計を使用することができ、そのため安定性検出器は、一定時間後に異なるレベルの振動に適応することができ、それでも意図しない突然の動きを検出することができる。
【0035】
II.実施形態1
A.ロボットコントローラからIMUへの運動意図フラグ
運動意図フラグは、カメラ、ホイールエンコーダ、モータ制御などのような、ロボットの移動状態に関するデータを提供することができる非慣性センサまたはロボットの他の機械コンポーネントからの出力データに基づいてロボットコントローラによって生成される。このフラグはIMUに送信され、これは、ロボットが安定しているか否か、および/またはどれだけ安定しているかのその決定の際にこのフラグを用いることになる。単なる一例として、モータコントローラが、ホイールエンコーダからホイールが動いていない、カメラによって検出される画像が変化していない、ブロワーモータがオフである、かつホイールモータがオフであると決定すれば、ロボットが安定していると考えられることを示す運動意図フラグを生成することができる。他方、ブロワーモータがオフではなくオンである(そしておそらくカメラによって受信される画像が揺れている)ことを除いて、これらの条件のすべてが同じであれば、ロボットは並進も回転もしていないが、完全に不動ではない(たとえば、振動している)と考えられることを示す運動意図フラグを生成することができる。
【0036】
一実施形態において、運動意図フラグは、次の状態の1つを示す4つの状態を備えた2ビットフラグとすることができる。
【0037】
不明(UNKNOWN)
この状態は、ロボットコントローラがロボットの運動状態の正確な推定を提供することができると考えていないことを示す。ロボットが安定している可能性はまだある。
【0038】
振動なし静止(STATIONARY_WITHOUT_VIBRATION)
運動意図フラグのこの状態は、ロボットコントローラがロボットは追加の振動なしで静止していると予測していることを示す。これは、ロボットが静止するように意図されている、すなわち、線形運動、回転、および振動がないときである。したがって、ジャイロスコープデータのノイズはセンサノイズだけのはずであり、ジャイロスコープ出力データから捕捉されるZRO推定は正確であるはずである。
【0039】
振動あり静止(STATIONARY_WITH_VIBRATION)
運動意図フラグのこの状態は、ロボットコントローラがロボットは本質的に静止しているが、振動していると予測していることを示す。ロボットは、ロボットが線形運動も回転も有さないように意図されているが、振動している(たとえば、ロボット掃除機において掃除ブロワーがオンである)ときにこの状態にあり得る。この運動の状態において、ジャイロスコープ出力データにおけるノイズはIMUプロセッサ(たとえば、ZRO推定機能)によってセンサノイズおよび振動からのノイズの両方を含むと想定され得る。IMUは、このデータを用いて適度に正確なZRO推定値を計算することができ得るが、その推定値は、観察用により長い時間ウィンドウを要することがあり、かつ/またはロボットが完全に安定しているときより精度が低いことがある。
【0040】
運動中(IN_MOTION)
運動意図フラグのこの状態は、ロボットコントローラがロボットは動いており、静止していると予想されないと予測していることを示す。運動意図フラグがこの状態にあるとき、IMUは一般にZRO較正をまったく実行しないはずである。
【0041】
上記のように、これらのフラグはロボットの単なる「意図(intent)」である。フラグが静止状態を示すときでも、「意図しない(unintended)」動きがあるかもしれない。たとえば、ロボットは突然物体にぶつかるかもしれない、またはロボットは床を滑っているかもしれない(ホイールエンコーダはロボットが静止していることを示すが)。したがって、一実施形態において、運動意図フラグがロボットは静止していることを示すときでも、IMUにおける別個の安定性検出器(たとえば、慣性センサからのデータを用いる)が引き続き動作し、その運動予測を用いて、ロボットコントローラからの反対の結論にもかかわらず、ロボットは動いていることを予測し、非常に誤ったZRO推定が生成されるかもしれない、このような条件下でIMUがZROを推定しようとするのを防止することができる。
【0042】
B.IMUからロボットコントローラへの運動要求フラグ
IMUは、そのZRO状態(たとえば、現在のZRO推定値は正確である可能性が高い、または現在のZRO推定値は正確でない可能性が高い)を決定し、そのZRO状態にしたがってロボットコントローラに運動要求フラグを送信することができる。たとえば、ZROを再較正する必要があるとき、センサはロボットに停止を要求するか、またはロボットがすでに停止していれば停止しておくように要求することができる。フラグは、ZRO推定値を更新する必要性の緊急性の異なるレベルに合わせて設計することができる。
【0043】
一実施形態において、ZRO品質は主に次の側面によって決定することができる。
a.経年効果による最後のZRO較正からの時間経過Δt
b.最後の較正からの温度変化ΔT
c.最後の較正の較正品質(これはZRO推定値の標準偏差ΔZROによって示すことができる)
【0044】
最大ZROエラーは次のように推定することができる。
“ZRO_Err” =Δt・aging_slope +ΔT・temperature_slope +ΔZRO (1)
【0045】
目標は、合計“ZRO_Err”を最小化し、これによって所与のセンサについてロボット進路精度を最大化することである。
【0046】
一実施形態において、運動要求フラグは2ビットとすることができ、次のように4つの状態を有することができる。
【0047】
制約なし(NO_CONSTRAINT)
運動要求フラグは、ロボットが安定しているときにこの状態で出すことができ、この場合IMUが現在の静止期間中に正確なZRO推定値を生成するのに十分なデータを取得したことを示す。したがって、ロボットは望み通り自由に移動または停止できる。この状態はロボットが動いているときにも生じることができるが、ZROの目的のために停止する必要はない。
【0048】
静止持続(STAY_STATIONARY)
運動要求フラグは、ロボットが停止しているとき、この状態で出すことができ、良好なZRO較正のための安定したウィンドウがまだ満たされておらず、ロボットを静止させておく要求があることを示す。
【0049】
非緊急静止(NON_URGENT_STATIONARY)
運動要求フラグは、ロボットが動いており、いつか近いうちに停止すればZROを確認するのに役立つであろうとIMUが考えているとき、この状態で出すことができる。つまり、これはロボットコントローラをいつか近いうちに停止させる要求であるが、緊急ではない。ロボットコントローラは、都合がよければ、このフラグの受信に応答してロボットの運動を停止させるべきである。都合のレベルは、バッテリー残量、障害物に遭遇するなどの将来の事象に対応するように次の停止を同期する運動要求フラグの状態に関係なく、ロボットが停止しそうな時間の認識、ロボットによって現在実行されている機能および/またはロボットの進路が不正確である場合に発生するかもしれない危害のレベルに割り当てられる重要度状態などを含む、いくつかの要因のいずれか1つまたは複数に応じて判断することができる。
【0050】
緊急静止(URGENT_STATIONARY)
運動要求フラグは、ロボットが動いており、ZROをできるだけ早く較正する必要があるとIMUが考えているときにこの状態で出すことができる。つまり、できるだけ早く停止して進路エラーが希望より悪くなるのを防止することが重要である。
【0051】
一実施形態において、“ZRO_Err”には3つの異なるレベルの閾値、すなわち、ZRO_Lo、ZRO_MdおよびZRO_Hiがあり得る。これら3つのレベルは、次の式にしたがって運動要求フラグを設定するために用いることができる。
【0052】
ロボットコントローラからの運動意図フラグが不明または運動中であれば、次のようになる。
【数1】
【0053】
運動意図フラグが振動なし静止または振動あり静止であれば、次のようになる。
【数2】
【0054】
C.IMUにおけるZRO較正プロセス
運動意図フラグは、ロボットの運動状態を示すものとしてIMUによって用いることができ、ZRO較正のためのIMUプロセスは、運動意図フラグの状態に応じて異なることがある。
【0055】
たとえば、振動なし静止状態にあるとき、IMUは適応ノイズレベルで安定性検出を行う。これは、一定期間中にジャイロスコープおよび加速度計の信号に存在する動的運動の量を見る安定性検出アルゴリズムの使用を伴う。「オンテーブル」安定性検出器は、いくらかのセンサ「ノイズ」および振動を許容しながら、それでも静止していると宣言される固定閾値を有する。そのプロセスにおいて用いられるノイズレベルは、センサの初めての公称値、または最新の先の静止状態中に保存された静止ノイズレベルのいずれかである。IMUにおいて実行される安定性検出プロセスが、ロボットが安定しているというロボットコントローラからの振動意図フラグと不一致でなければ、これはスリップまたは衝突のような何らかの意図しない動きが発生していない限り可能性が高いが、IMUは、単純なウィンドウ平均アルゴリズムまたは前述の特許文献2に開示されたより複雑なプロセスのような、ZROを再較正するプロセスを実行する。IMUは、同時に、ZROの標準偏差、タイムスタンプ、およびその時点での温度も保存すべきである。
【0056】
まず、更新されたZROを計算している間、IMUは運動要求フラグを静止持続に設定する。次いで、ZRO推定値が特定の精度に達した後、たとえば、式(3)参照、または所定の時間ウィンドウの後、運動要求フラグは制約なしに変更される。
【0057】
運動意図フラグが状態を振動なし静止から任意の他の状態に変更すると、IMUは静止センサノイズレベルを保存し、その新たな静止ノイズレベル値を、将来の振動なし静止状態を続行させるために用いることになる。
【0058】
運動意図フラグが振動あり静止状態にあるとき、IMUは異なるノイズレベルで安定性検出プロセスを行うことができる。特に、ノイズレベルは、たとえば、ロボットの何らかの典型的な振動に基づく固定プリセット値とすることができる。これはおそらく振動なし静止状態より大きな値になるであろう(一般に結果としてZROを決定するための時間ウィンドウが長くなる)。これは任意選択であるが、振動なし静止の場合のように、振動でノイズレベルを学習することは特に有用でないことがあり、これは、動いているモータまたはフロアタイプの異なる組み合わせによって引き起こされる振動のレベルが異なるかもしれないためである。他方、他の実施形態において、モータの状態(および/または他の要因)の可能な組み合わせごとに別個のノイズレベルを学習および記憶することが可能であり得る。このとき、動作中、装置は、モータの状態(および/または他の要因)を検出し、モータ状態(および/または他の要因)のその特定の組み合わせに対応するそれらの複数のノイズレベルの1つを選択することができる。
【0059】
代替の一実施形態において、ロボットコントローラは、異なるノイズレベルを分類する際に用いるためにモータのこれらの状態を伝達することができる。他の代替の一実施形態において、別個のノイズレベルを学習および記憶する代わりに、システムは、現在のノイズレベルに動的に適応することができる。適応率は、ノイズレベルが、以前より大きかった新たな振動に迅速に適応するであろうように十分速く成長するが、衝突のような予期しない運動事象を拒否することができるであろうように十分ゆっくり変化するであろうように調整することができる。
【0060】
振動中にZROを計算するため、静止期間中のサンプルの移動平均をZROの妥当な推定値と見なすことができる。より短いウィンドウについて大きな振動では、振動の基本周波数を決定することができ、平均化ウィンドウの長さは、振動の基本周波数の倍数になるように適合させることができる。これは、ZRO推定値にバイアスがかかるのを防止するのに役立つことができる。基本周波数は、周波数領域分析(たとえば、FFTベースの分析)によって、または時間領域分析(たとえば、ゼロ交差分析)によって検出することができる。
【0061】
IMUによって実行されるIMU安定性検出プロセスが、ロボットは静止しているが振動している/ノイズがあるというロボットコントローラからの運動意図フラグと不一致でなければ、これはホイールのスリップまたは衝突のような何らかの意図しない動きが発生しなかったら可能性が高いが、IMUはZROを再較正する。IMUは、ZROの標準偏差、タイムスタンプ、および温度も同時に保存すべきである。
【0062】
まず、この状態において更新されたZROを計算している間、IMUは運動要求フラグを静止持続に設定する。次いで、ZRO推定値が特定の精度に達した後、たとえば、式(3)参照、または所定の時間ウィンドウの後、運動要求フラグは制約なしに変更される。
【0063】
運動意図フラグが状態を振動あり静止から任意の他の状態に変更すると、IMUは、後で用いるために最後のZRO推定の時間および温度を保存する。
【0064】
運動意図フラグが運動中状態にあるとき、IMUは、誤った安定性検出を回避する、したがって不正確になりそうなZROの起こり得る再較正も回避するために安定性検出を実行しないであろう。また、この状態(すなわち、運動意図フラグが運動中に設定されている)において、IMUは他の要因に応じて運動要求フラグを制約なし、非緊急静止、または緊急静止に設定する。たとえば、一実施形態において、運動要求フラグの状態は、式(2)にしたがって設定される。他の一実施形態において、運動要求フラグの状態は、単に最後のZRO較正からの時間に応じて設定され、たとえば、時間が経過するにつれて制約なしから非緊急静止に、そして最後に緊急静止に切り替わる。
【0065】
最後に、運動意図フラグが不明状態にあるとき、IMUは静止ノイズレベルで安定性検出を行う。IMUの安定性検出プロセスによりロボットが安定していると決定されれば、これは可能であるが、IMUはZROを再較正する。IMUは次いで、運動意図フラグが運動中のときについて上で記したのと同じように、たとえば、他の要因に応じて運動要求フラグを制約なし、非緊急静止、または緊急静止に設定することができる。
【0066】
さらに、運動意図フラグが状態を変更するときは常に、IMUの安定性検出アルゴリズムによって用いられるノイズ閾値も考慮およびもしかすると更新されるべきである。たとえば、運動意図フラグが状態を振動なし静止に変更するときは常に、ノイズ閾値は、保存された静止ノイズレベル(これは前述の公称値または先に議論したような最新の更新値とすることができる)に設定されるべきである。これは、運動意図フラグの他の状態から不明状態へのあらゆる移行にも当てはまる。他方、任意の他の状態から振動あり静止状態へのあらゆる移行には、前述のように、IMU安定性検出プロセスによって用いられるノイズ閾値を固定「振動」ノイズレベルに設定することが伴うべきである。最後に、運動意図フラグが運動中に移行するときは常に、IMUの安定性検出プロセスがこの状態で常にオフになっているため、ノイズレベルの設定に関して何の行動もとる必要はない。
【0067】
図2Aおよび
図2Bは、運動意図フラグの所与の状態ごとに、上に要約したように、IMUによって実行される機能、ならびに運動意図フラグがある状態から他の状態に変化するときに実行される機能を示す状態表を示す。より具体的には、
図2Aおよび
図2Bにおいて、運動意図フラグの現在の状態が第1の(左端の)列に列挙され、その状態の終わりに移行する状態が第1の(頂部の)行にわたって列挙されている。したがって、表の対角線に沿ったセル(灰色のセル)は運動意図フラグの状態の変化を伴わない。したがって、これらのセルに記述されているのは、運動意図フラグが対応する状態にあるときに実行される機能である。他方、他のセル(表の対角線上にない)は、運動意図フラグの状態変化に対応する。したがって、これらのセルにおけるテキストは、2つの対応する状態間の移行時に実行されるタスクを説明している。
【0068】
したがって、たとえば、第2行第2列におけるセルは、運動意図フラグが振動なし静止状態にあるときに実行されるプロセスを反映している。他方、たとえば、第2行第3列におけるセルは、運動意図フラグの振動なし静止状態から振動あり静止状態への移行時に実行されるプロセスを反映している。同様に、第2行第4列におけるセルは、運動意図フラグが振動なし静止状態から不明状態に移行するときに実行されるプロセスを反映している。
【0069】
さらに、いかなる括弧もなしで書かれているあらゆるセルにおけるテキストは、IMUの安定性検出機能によって(またはこれに関して)何が行われているかを示す。矢印括弧内にあるテキストは、どの変数が更新および保存されているかを示す。丸括弧内に書かれているテキストは、IMUが運動要求フラグを設定している状態を示す。最後に、標準括弧内に書かれているテキストは、ノイズ閾値変数に関して何が実行されているかを示す。少なくともいくつかのセルにおいて、ノイズレベルに関して2つのことが起こっている、たとえば、(1)前の状態の最後で記録されたノイズレベルが将来の使用のために保存され得る、(2)現在の状態において用いるためのノイズレベルが設定され得る、ということに留意されたい。
【0070】
III.実施形態2
A.ロボットコントローラからIMUへの運動意図フラグ
第1の実施形態と比較して運動意図フラグに関して大きな変更はない。
【0071】
B.IMUからロボットコントローラへの運動要求フラグ
ZRO品質における2つの主要な要因は、温度および最後の較正からの時間経過である。時間関連のZROエラーは、センサの不安定性、非直線性、ヒステリシス、経年変化などによって引き起こされる。温度関連のZROエラーは、温度変化によるZROの変動によって引き起こされる。温度ZROフィッティングは、前述の特許文献2に開示されているように、学習および適用されて現在の温度でのZRO推定値を取得することができる。温度ZROフィッティングにより、フィッティングの状態(たとえば、勾配、フィッティング品質、カバーされる温度範囲など)に基づいてZROエラーが発生することもある。
【0072】
これらの考慮事項を用いて、運動要求フラグの代替の一実施形態において、目標は、ZROエラーをロボット進路精度要件のための第1のより低い(または許容可能な)レベルの精度に制限することであるが、他の所望のロボット性能パラメータに悪影響を与えることなく合理的に可能なとき、第2のより高い(または好ましい)レベルの精度を達成することである。2つの目標はそれぞれ、以下ではLoPerfGoalおよびHiPerfGoalと呼ばれることもある。
【0073】
この例示的な実施形態において、ロボットが静止している(たとえば、運動意図フラグの状態が振動なし静止または振動あり静止のいずれかである)とき、運動要求フラグは次の可能な状態を有することができる。
【0074】
必須静止持続(STAY_STATIONARY_REQUIRED)
運動要求フラグは、ZRO較正のための安定したウィンドウが、ロボットを静止状態に保つことが要求されると見なされる、より低い(許容可能な)性能目標もまだ満たしていないとき、この状態で出すことができる。
【0075】
選択的静止持続(STAY_STATIONARY_OPTIONAL)
運動要求フラグは、ZRO較正のための安定したウィンドウが低性能目標を満たしているが、ロボットを静止状態に保つことが任意選択と見なされる、高性能(好ましい)目標を満たしていないとき、この状態で出すことができる。
【0076】
制約なし
運動要求フラグは、より高い精度の要件を満たすZRO推定を計算するのに十分な情報をIMUが現在の停止から有し、そのためZRO推定に関係なくロボットが望み通り自由に移動または停止できるとき、この状態で出すことができる。
【0077】
例示的な一実施形態において、ZRO較正が特定の性能目標(たとえば、より低い許容可能な性能目標またはより高い好ましい性能目標のいずれか)に到達することは、ZRO推定値の精度(または、具体的には、標準偏差)が定められた目標より良好であることを意味する。ZRO推定値は静止ウィンドウ全体のジャイロスコープサンプル平均であるため、ウィンドウが長いほど、計算されるZRO推定値は正確になる。最も単純なモデルであるAWGN(Additive White Gaussian Noise、加算性白色ガウスノイズ)ノイズモデルは、ZROの標準偏差がジャイロスコープサンプルの標準偏差およびサンプル数の平方根に比例することを示唆している。
【数3】
【0078】
しかしながら、式(4)によって計算されるZRO_Stdは、有色ノイズのため、時には1桁程度、真の値と非常に異なる可能性があることが観察されている。
【0079】
この実施形態において、すべての前のサンプルの保存が要求されない、ZRO_Stdを推定する新たな方法が用いられる。特に、平均化フィルタを模倣するIIRフィルタが用いられ、フィルタリングされたサンプルの標準偏差を用いてZRO_Stdを推定する。これにより、静止ウィンドウが特定の性能目標を満たすのに十分長くなる時に関するより良好な情報が提供される。
【0080】
上記のような運動要求フラグの一実施形態において、ZRO_Stdには、HiPerfGoalおよびLoPerfGoalという2つの異なるレベルの閾値がある。運動要求フラグについての状態は、次のようにZRO_Stdに応じて実装することができる。
【数4】
【0081】
他方、ロボットが静止していない(たとえば、運動意図フラグの状態が不明または運動中のいずれかである)とき、運動要求フラグは次の状態を有することができる。
【0082】
タイマー静止(TIMER_STATIONARY)
運動要求フラグは、ロボットが一定時間移動しており、ZRO再較正のための停止が提案されるとき、この状態で出すことができる。
【0083】
緊急静止(URGENT_STATIONARY)
運動要求フラグは、ZROをできるだけ早く較正する必要があるとIMUが決定し、そのため進路エラーが所望の閾値を下回るのを防止するように停止することが重要であるとき、この状態で出すことができる。
【0084】
非緊急静止(NON_URGENT_STATIONARY)
運動要求フラグは、いつか近いうちに停止すればZROを確認するのに役立つであろうとIMUが判断するとき、この状態で発行することができる。つまり、これはロボットコントローラをいつか近いうちに停止させる要求であるが、緊急ではない。ロボットコントローラは、都合がよければ、このフラグの受信に応答してロボットの運動を停止させるべきである。都合のレベルは、バッテリー残量、障害物に遭遇するなどの将来の事象に対応するように次の停止を同期する運動要求フラグの状態に関係なく、ロボットが停止しそうな時間の認識、ロボットによって現在実行されている機能および/またはロボット進路が不正確である場合に発生するかもしれない危害のレベルに割り当てられた重要度状態などを含む、いくつかの要因のいずれか1つまたは複数に応じて判断することができる。
【0085】
一実施形態において、“ZRO_Err”には2つの異なるレベルの閾値、すなわち、NonUrgentErrおよびUrgentErrがあり得る。これら2つのレベルは、次の式にしたがって運動要求フラグを設定するために用いることができる。
【数5】
【0086】
C.IMUにおけるZRO較正プロセス
運動意図フラグは、ロボットの運動状態を示すものとしてIMUによって用いることができ、ZRO較正のためのIMUプロセスは、運動意図フラグの状態に応じて異なることがある。
【0087】
たとえば、振動なし静止状態にあるとき、IMUは適応ノイズレベルで安定性検出を行う。そのプロセスにおいて用いられるノイズレベルは、センサの初めての公称値、または最新の先の静止状態中に保存された静止ノイズレベルのいずれかである。IMUにおいて実行される安定性検出プロセスが、ロボットが安定しているというロボットコントローラからの運動意図フラグと一致すれば、これはスリップまたは衝突のような何らかの意図しない動きが発生していない限り可能性が高いが、IMUは、単純なウィンドウ平均アルゴリズムまたは前述の特許文献2に開示されたより複雑なプロセスのような、ZROを再較正するプロセスを実行する。IMUは、温度ZROフィッティングアルゴリズムで用いるためにタイムスタンプおよびその時点での温度も保存すべきである。
【0088】
また、ZROの標準偏差は、IIRローパスフィルタリングされたジャイロスコープサンプルの統計を通して取得される。この標準偏差は、運動要求フラグを必須静止持続状態から選択的静止持続状態に、次いで式(5)にしたがって制約なしに変更することができる時を決定するために用いられる。
【0089】
加えて、運動意図フラグが振動なし静止状態から任意の他の状態に変化すると常に、最後のZRO推定の時間は、最後のZRO較正からどれくらい経過したかを決定する際に後で用いるために保存され、これは、上記のように、運動要求フラグの状態を決定する際の要因として用いることができる。
【0090】
加えて、その時点での静止センサノイズレベルは、運動意図フラグが振動なし静止のときに将来用いるために保存されて、装置が静止している時を運動意図フラグから独立して自動的に検出する。
【0091】
運動意図フラグに戻ると、振動あり静止状態において、安定した検出、ZRO更新、および運動要求生成は、ノイズレベルがどのように追跡および使用されるかを除いて、振動なし静止状態と同じであり得る。
【0092】
振動なし静止状態において、ノイズレベルは単にセンサノイズであり、安定性が検出されるたびに学習され、将来の使用のために保存される。振動あり静止状態において、ノイズレベルはモータから生成される振動ノイズであり、これは時々変化する可能性がある。一実施形態において、加重統計を用いて振動ノイズを動的に学習し、安定性検出器が一定時間後に異なるレベルの振動に適応することができ、それでも意図しない突然の動きを検出することができるようにする。
【0093】
運動意図フラグが運動中状態にあるとき、安定性検出プロセスはオフにされて誤った安定検出の可能性を回避する。前述のように、運動意図フラグが運動中状態にあるときに生成することができる運動要求フラグ状態は、温度関連要求については制約なし、非緊急静止、または緊急静止である。運動要求フラグの状態を選択する1つの方法は、上で式(6)において記載した。ロボットの移動を停止させるための時間関連要求を生成するカウンタ、タイマー静止もある。
【0094】
運動意図フラグが不明状態にあるとき、静止ノイズレベルプロセスでの安定性検出が行われる。安定性が検出されれば、これは可能であるが、ZROが更新される。運動意図フラグがこの状態にあるとき、運動要求フラグ状態は、運動意図フラグが運動中状態にあるときと同じ方法で生成される。
【0095】
図3Aおよび
図3Bは、運動意図フラグの所与の状態ごとに、上で議論したように、IMUによって実行される機能、および運動意図フラグが第2の実施形態にしたがってある状態から他へ変化するときに実行される機能を示す状態表を示す。
図2Aおよび
図2Bについて上で説明した規則は
図3Aおよび
図3Bにも適用可能である。より具体的には、
図3Aおよび
図3Bにおいて、運動意図フラグの現在の状態が第1の(左端の)列に列挙され、その状態の終わりに移行する状態が第1の(頂部の)行にわたって列挙されている。したがって、表の対角線に沿ったセル(灰色のセル)は運動意図フラグの状態の変化を伴わない。したがって、これらのセルに記述されているのは、運動意図フラグが対応する状態にあるときに実行される機能である。他方、他のセル(表の対角線上にない)は、運動意図フラグの状態変化に対応する。したがって、これらのセルにおけるテキストは、2つの対応する状態間の移行時に実行されるタスクを説明している。
【0096】
さらに、いかなる括弧もなしで書かれているあらゆるセルにおけるテキストは、IMUの安定性検出機能によって(またはこれに関して)何が行われているかを示す。矢印括弧内にあるテキストは、どの変数が更新および保存されているかを示す。丸括弧内に書かれているテキストは、IMUが運動要求フラグを設定している状態を示す。最後に、標準括弧内に書かれているテキストは、ノイズ閾値変数に関して何が実行されているかを示す。少なくともいくつかのセルにおいて、ノイズレベルに関して2つのことが起こっている、たとえば、(1)前の状態の最後で記録されたノイズレベルが将来の使用のために保存され得る、(2)現在の状態において用いるためのノイズレベルが設定され得る、ということに留意されたい。
【0097】
図3Aおよび
図3Bの表に示す実施形態において、必須静止持続は、任意の他の状態(すなわち、運動中状態、不明状態または2つの静止状態の他方)から静止状態の一方に入るときのデフォルトの運動要求である。また、静止状態の一方にある間、ZRO推定計算が進行する(かつ時間とともに精度が向上する)につれて、運動要求フラグは必須静止持続状態から選択的静止持続状態に、次いで最終的に制約なし状態に進行することに留意されたい。しかしながら、代替の一実施形態において、運動意図フラグが1つの静止状態から他の静止状態に移行するとき、運動要求フラグは必ずしも必須静止持続状態から開始する必要はない。むしろ、1つの静止状態から他へ変化するとき、運動要求フラグは、それがすでにあったどんな状態においても継続することができる。特に、ZRO精度は、一方の静止運動意図状態から他方の静止運動意図状態への移行の時に、精度閾値HiPerfGoalまたはLoPerfGoalのいずれかをすでに上回っているかもしれないため、3つすべての運動要求状態を再度経験することが必要なくなる。つまり、代替の一実施形態において、運動要求フラグは、振動あり静止と振動なし静止との間のいかなる運動意図フラグ状態移行の間、不変であり得る。
図3を参照すると、この実施形態と
図3によって示されるものとの間の違いは、行3、列2でのセル(振動なし静止から振動あり静止への移行)および行2、列3でのセル(振動あり静止から振動なし静止への移行)において運動要求フラグを必須静止持続に設定するステップを削除することであろう。運動要求フラグに関して何の行動も取られないであろうため(2つの静止状態間の移行中に不変であろうため)、これら2つのセルにおけるステップ「運動要求 = 必須静止持続」は単に除去されるであろう。
【0098】
D.ロボット側での運動要求の使用
運動要求フラグは異なるレベルの重要性を有するため、ロボットは、たとえば、センサ特性、性能要件、使用例などに応じて、複数の方法で運動要求に従うことができる。たとえば、いくつかのセンサは大きな安定性および温度ZRO線形性を有することが知られており、この場合運動要求フラグのタイマー静止状態は、性能をあまり犠牲にしないであろうため、省略する(または、少なくとも、ロボットコントローラによって無視される)ことができる。
【0099】
図4は、所望の性能に応じて運動要求フラグのさまざまな状態に応答するようにロボットをどのようにプログラムすることができるかの例示の一実施形態を示す表である。
図4において、ロボット掃除機のためのいくつかの例示的な可能な所望の性能条件が第1の(左端の)列に列挙され、運動要求フラグのそれぞれの所与の可能な状態に応答してRVCが停止することになる(または停止したままである)か否かが第1の(頂部の)行にわたって列挙されている。次いで、表の残りには、対応する列についての運動要求フラグ状態に応答してRVCが動きを停止させる(または最後の列の場合は停止したままにする)ことになるかどうかに応じて、YESまたはNOが入力されている。
【0100】
したがって、たとえば、「高性能」と表示された、表における頂部の行は、最高のZRO精度性能に対応し、したがって、正確なZRO推定が極めて重要であるときに選択されるであろう。この性能が所望されれば、RVCは停止して、RVCを停止させるすべての要求に応答するZRO較正を可能にする(または、最後の列の場合、単により低い許容可能なレベルのZRO精度が達成された後、いつでもRVCが再び動き始めることを可能にするのではなく、より高い好ましいレベルのZRO精度が達成されるまでZRO較正が継続することになるように停止させておく)ことになる。
【0101】
一実施形態において、性能条件(左端の列における記載事項)は次のように定義することができる。
高性能-RVCが停止せねばならない頻度および停止しておかねばならない時間に関係なく、常に最良のZRO推定が所望されるときに選択される。
頻繁な短時間停止-ZRO精度は高性能条件より低くなり得るが、停止は一般に比較的短くなる(たとえば、頻繁な短時間停止が好まれるとき、この選択肢を選択することができる)。
低デューティサイクル-ZRO精度は高性能条件より低くなり得るが、ZRO較正のための停止に費やされる合計時間は比較的小さい(停止時間と停止頻度との組み合わせの観点において)。
タイマー停止なし-RVCは、タイマーベースの静止要求に対して停止しない(たとえば、上記のように、センサが大きな安定性および温度ZRO線形性を有することがわかっているとき、この選択肢を選択することができる)。
稀な長時間停止-ZRO精度は高性能条件より低くなり得るが、停止は一般に、より高い好ましいレベルのZRO精度が得られるように十分長くなるが、頻度は比較的低くなる(たとえば、より長いが、頻度の少ない停止が好ましいとき、この選択肢を選択することができる)。
タイマー停止のみ-RVCは、タイマーベースの静止要求に対してのみ停止することになる(たとえば、センサが優れた温度ZRO線形性を有することがわかっているとき、この選択肢を選択することができる)。
相互ZROなし-この選択肢は本質的に、本明細書で開示されているZRO較正の相互機能をオフにする。ベースライン非相互ZRO較正アルゴリズム、すなわち、安定性検出とこれに続く単純なウィンドウ平均またはより複雑な温度ZROフィッティングを依然として用いることができる。相互ZRO較正なしで(しかし依然として従来のZRO較正動作を有する)動作を達成する1つの方法は、運動意図フラグを永続的にデフォルト状態の不明に設定し、運動要求フラグを無効にするか、またはモータコントローラ100がこれに応答するのを回避するかのいずれかであろう。この条件において、たとえば、上述の実施形態3によれば、安定性検出、センサノイズレベルの適応学習、および従来のZRO較正はすべて依然として起こり、事実、振動なし静止状態(たとえば、
図4参照)と同じであろう。さらに、本発明の相互ZRO較正機能を使用する製品とこのような機能がない製品との間の互換性を保証する実装目的のための実用性として、運動意図フラグが不明状態にある間の安定性検出およびノイズトラッキングは、振動なし静止状態にあると同じであることを保証することが賢明であり得る。たとえば、
図3Aおよび
図3Bによって表される実施形態を参照すると、これにより、「不明から」の行および「不明へ」の列、すなわち、行4、列4に対応する対角線上のセルに、「安定でノイズを更新する」ノイズ追跡ステップを追加する(「振動なし静止から」の行および「振動なし静止へ」の列、すなわち、行2、列2に対応する対角線上のセルに見られるように)必要があるだろう。特に、
図3Aおよび
図3Bの実施形態において、ノイズは、不明運動状態では更新されていなかったが、振動なし静止状態では更新された。この変更は、性能にほとんどまたはまったく影響を与えないはずであるが、本発明の相互ZRO機能を備えた製品に、その機能を欠く製品との互換性を持たせることができる。また、
図3Aおよび
図3Bの実施形態に示す安定性検出動作が運動意図フラグの両方の条件(不明および振動なし静止)に対してすでに同じ状態(すなわち、オン)に設定されたため、これに対する変更が必要ないであろうことにも留意されたい。
【0102】
IV.追加の実施形態
A.運動要求フラグに関する代替の実施形態
1.ZROの標準偏差の計算に関する変形
この第1の代替実施形態の運動要求フラグは、ZROの標準偏差(これは、ZRO推定がZRO推定プロセスを停止させるのに十分正確であるかどうかを決定する目的で用いられる)の計算に関して以下に述べるようなことを除いて、第1または第2の実施形態のいずれかと同様に機能することができる。
【0103】
第1の実施形態は、ZROの標準偏差を推定するために白色ノイズモデル技術を使用した。しかしながら、前述のように、その推定値は、有色ノイズのために実際の標準偏差とは時折かなり異なる可能性がある。したがって、第2の実施形態は、すべての前のサンプルを記憶することが要求されないZROの標準偏差を計算するためのIIRフィルタベース技術を導入した。しかしながら、センサがかなりの低周波ノイズにさらされるいくつかの場合では、そのIIRフィルタベース技術は解に収束するのに長い時間がかかることがある。このような場合、そして特にロボットが不動でいることができる時間に適用可能な制約に応じて、第1の実施形態の白色ノイズ法を用い、しかし上の式(4)を用いて決定される標準偏差を限界因子(センサでの観察経験に基づいて決定される限界因子)で掛けることによって有色ノイズを補償することがより望まれ得る。したがって、式(4)は次のように書き換えることができる。
【数6】
ここでfは限界因子である。センサノイズのスペクトルに応じて、この限界因子は1を中心とすべきであり、理想的なケースは真の白色ノイズについて1.0である。現在利用可能なセンサについて、限界因子は通常0.4から1.5の範囲になる。
【0104】
2.温度フィットに関連する変形
他の代替の一実施形態において、運動意図フラグが非静止状態の1つ(すなわち、運動中または不明)にあるとき、IMU102は、運動要求フラグの状態を、ZRO推定値の現在の品質に基づくだけでなく、全体的な温度フィッティングの推定品質に応じても設定するように構成することができる。たとえば、IMU102は、温度フィッティングが一定の品質閾値を下回っているとき、運動要求フラグを緊急静止状態および/または非緊急静止状態に置くように構成することができる(現在のZRO品質自体が許容可能であり得ても、より多くのサンプルが長期ZRO精度を維持するために重要になるであろうように)。たとえば、この特徴の例示的な一実施形態において、運動要求フラグを始動して緊急静止および/または非緊急静止に変更するために必要な最小温度変化dTは、フィッティング品質(たとえば、平均二乗誤差(Mean Square Error)またはMSE)および温度範囲の関数であり得る。すなわち、現在の温度がフィッティングの温度範囲の外側であれば、ロボットをより頻繁に停止させ、かつ/または、フィッティング品質が悪くても、より頻繁に停止する。
【0105】
これらの原理による第2の実施形態の1つの例示的な変形例において、ロボットが非静止状態の1つにあるとき(すなわち、運動意図フラグが運動中または不明に設定されているとき)、運動要求フラグは次のように振る舞うように構成することができる。
【0106】
タイマー静止
運動要求フラグは、ロボットが一定期間移動しており、ZRO再較正のための停止が提案されるとき、この状態で出すことができる。(運動要求フラグがこの条件に入るためのこの条件は第2の実施形態から不変であることに留意されたい。)
【0107】
緊急静止
運動要求フラグは、(1)ZROをできるだけ早く較正する必要があるとIMUが決定する(たとえば、進路エラーが臨界閾値を下回るのを防止するためにロボットを停止させることが重要である)(第2の実施形態と同じ)または(2)温度フィッティングが低質であり、現在の温度について用いられている現在のZRO推定の質が許容可能であり得ても、より多くのサンプルが長期ZRO精度にとって重要である、のいずれかのとき、この状態で出すことができる。
【0108】
非緊急静止
運動要求フラグは、(1)いつか近いうちに停止すればZROを確認するのに役立つであろうとIMUが判断する(第2の実施形態のように)、または(2)温度フィッティングがより良好な長期間ZRO精度のためにより多くのサンプルを好む(しかし危急ではない)、のいずれかのとき、この状態で出すことができる。
【0109】
制約なし
運動要求フラグは、ZRO較正または温度フィッティングの目的で停止する必要がないとき、この状態で発行することができる。
【0110】
さらに、この実施形態において、「ZRO_Err」についての2つの異なるレベルの閾値、すなわち、NonUrgentErrおよびUrgentErr、ならびに第2の実施形態に関連して上で議論した式(6)による運動要求フラグ状態の設定に加えて、温度フィッティングに関連する条件の他のセットを追加して混合することができる。たとえば、温度フィッティングベースの要求について、ΔT = Tcurrent - TlastZR0を、前回ZROが計算されてからの温度変化として定義し、2つの閾値、ThnonUrgentおよびThurgentを、温度フィッティングMSE(平均二乗誤差)の減少関数として定義する。
Thnonurgent = f1(MSE)
Thurgent = f2(MSE)
【0111】
次いで、フィッティングベースの要求に応じて運動要求フラグの状態を次のように生成することができる。
【数7】
【0112】
(a)運動要求フラグのZROベースの制御の条件、すなわち、式(6)(参照を容易にするため以下に再度再現)を(b)運動要求フラグの温度フィッティングベースの制御の条件、すなわち、式(8)と組み合わせることにより、式(9)において以下に示すような運動要求フラグの全体的な振る舞いが生じる。
【数8】
【数9】
【0113】
B.ZRO温度フィッティング
特許文献2は、その内容を参照により完全に本明細書に組み込むが、学習アルゴリズムを用いて温度に応じてセンサのZROを計算するための方法および装置を開示している。たとえば、その特許出願に開示された一実施形態によれば、システムは、(a)ジャイロスコープによって生成された測定値、(b)ジャイロスコープの温度、および(c)装置の少なくとも1つの他の運動センサによって生成された測定値、を繰り返し受け取り、ジャイロスコープおよび他のセンサによって生成された測定値に基づいて、ジャイロスコープが静止していて特定の温度にあるときを決定する。このような期間中、システムは、ジャイロスコープ測定値の平均および平均の分散を蓄積してサンプルデータセットを生成し、次いで複数の温度でのジャイロスコープ測定の平均および平均の分散に基づいて温度に応じてZROの加重再帰的最小二乗(RLS、Recursive Least Squares)フィットを生成する。次いで、装置は、加重RLSフィットおよびジャイロスコープの現在の温度を用いてZRO推定値を計算することができる。
【0114】
いくつかの実施形態によれば、フィットを構築する際の重みが新たなサンプルより古いサンプルの方が少なくなるように、すでにフィット内部にあるすべてのサンプルに時間的忘却因子が適用される(ZROに関連する因子は時間とともに変化する可能性があるため)。しかしながら、いくつかの用途、たとえば、非常に小さい温度範囲内で室温が変動している間にドッキングステーションで一晩充電することにその時間の多くを費やすロボット掃除機では、これにより、データポイントが急速に忘れられてフィットの精度が損なわれ得る。たとえば、非常に狭い温度範囲についての非常に正確なZROフィッティングでは、その狭い温度範囲の外側のデータポイントが忘れられ、したがってその狭い温度範囲の外側のZRO推定は精度が低くなる。
【0115】
忘却因子を伴うこのような動作がフィットに悪影響を与えるのを防止するため、連続するサンプルが採取される温度範囲の追跡を維持し、その温度範囲内で追加されたサンプルに与えられる重みを制限することが勧められ得る。たとえば、アルゴリズムは、一定数のサンプルがフィッティングに適用された後、(所与の狭い温度範囲内で)サンプルデータの取り込みを単に停止することができる。このような場合、所与の範囲を超えて温度が変化したときのみ、新たなサンプルを追加することが可能になる(それに応じて新たな温度範囲が追跡され始め得る)。
【0116】
このような一実施形態において、ZRO温度フィッティングプロセスは、現在の温度統計、以前の温度統計、および線形ZRO温度フィッティング(前述のPCT出願のように)、ならびに本明細書に記載の相互ZRO較正技術からの最新のZRO推定の追跡を維持することができる。最新の相互ZRO較正からのZRO推定値は最新のデータであるため、フィットから用いるためにZROが選択されているとき、これに高い優先度を与えることが望まれ得る。
【0117】
したがって、本発明の相互ZRO較正技術が、前述の特許文献2の技術と同様に装置で使用されるとき、本発明の相互ZRO較正技術を介して較正された最新のZROは、どのZRO推定を補償に用いるかを選択するとき、より高い優先度を与えることができる。したがって、一実施形態において、本発明による相互ZRO較正技術を用いて決定される最新のZROが有効であると見なされる(たとえば、最新のZRO蓄積の標準偏差は、セクションII.B、III.B、およびIV.Aのいずれかにおいて上述したような所定の閾値内にある)と仮定すると、全体的なZRO補償プロセスは、そのZROおよび前述の特許文献2のフィッティングアルゴリズムによって決定されるZROの良好な方を用いるために選択する。2つのどちらが良好と見なされるかは、たとえば、最低平均二乗誤差に基づいて決定することができる。他方、相互ZRO較正技術を用いて決定されるZROが妥当でなければ、全体的なZRO補償プロセスは、前述の特許文献2に記載されたように、現在の温度、以前の温度、および線形フィッティングの最良なものを選択するようにデフォルトに戻る。
【0118】
C.頻繁な短時間停止が生じやすい用途のための特別な処理
いくつかの用途において、ロボットは、動作上の理由(すなわち、本発明のZRO較正および相互ZRO技術に無関係の理由)で頻繁な短時間停止を経験することがあり、停止のほとんどまたは全てが十分に正確なZRO較正をするのに十分長くはない。頻繁なかつ/または長いZRO較正停止(これはその通常動作に逆効果になることがある)のためにロボットを停止させることを回避するため、複数の連続する短時間停止からの較正データを「縫い」合わせて効果的に長時間停止を形成することによってZRO較正目的でのみ行われる停止を少なくすることで適切なZRO較正が依然として達成可能であり得る。たとえば、2つの静止ウィンドウ間のギャップが何らかの所定の閾値(たとえば、10秒)未満であれば、これらの複数の停止からのZRO較正データを組み合わせることができる。これは、ロボットの複数の停止からの較正データの内部アキュムレータを維持し、運動が開始するたびにタイマーを開始することによって実装することができる。タイマーが満了する前に次の停止が起これば、アキュムレータはZRO較正のためにデータを蓄積し続け、タイマーは再びリセットされる。いくつかの実施形態において、第2のタイマーおよび/または時間制限を使用して、複数の連続する短時間停止の任意のセットを組み合わせることができる最大時間を設定することができる。あるいは、単一のタイマーを用いて、複数の停止セッションからのデータを組み合わせることができる全体の期間のみを(たとえば、連続する停止セッションの各ペア間のギャップの持続時間に関係なく)監視することができる。
【0119】
本明細書に記載の実施形態は方法としても表現することができ、その例は
図5~
図7のフローチャートに示されていることが当業者によって理解されよう。
図5において、装置上に配置された第1の慣性センサのゼロレートオフセット(ZRO)を較正するための方法が示され、装置上に配置された少なくとも1つの非慣性センサに関連する情報に基づいて装置の安定性レベルを決定するステップ500と、安定性レベルが閾値を上回っているときに第1の慣性センサのZROの較正を実行するステップ502と、を含む。
図6において、ロボット装置を動作させるための方法が示され、ロボット装置に配置された1つまたは複数の慣性センサに関連する現在のゼロレートオフセット(ZRO)エラーレベルに基づいて複数の運動制御要求の1つをコントローラに送信するステップ600と、その運動制御要求に基づいてロボット装置の動きを制御するステップ602と、を含む。
図7において、装置上に配置された第1の慣性センサのゼロレートオフセット(ZRO)を較正するための方法が示され、ZRO較正とは無関係の理由で第1の期間装置を停止させるステップ700と、第1の期間中にZRO較正データを蓄積するステップ702と、第1の期間後に装置を動かすステップ704と、ZRO較正とは無関係の理由で第2の期間装置を停止させるステップ706と、第2の期間中にZRO較正データを蓄積するステップ708と、第1および第2の期間からの蓄積されたZRO較正データを用いてZRO較正を実行するステップ710と、を含む。
【0120】
V.要旨
ロボットコントローラからIMUに送信される運動意図フラグの実装は、ZRO精度を向上させるのに役立つ。IMUからロボットコントローラに送信される運動要求フラグは、最悪のZROでも常に進路性能要件を満たすことを保証するのに役立つ。全体として相互ZROアルゴリズムはZRO精度を向上させ、ロボット停止のための最小限の要求で要件を満たす。
【0121】
VI.結論
本発明の例示的な実施形態によるデータを処理するためのシステムおよび方法は、メモリデバイスに含まれる命令のシーケンスを実行する1つまたは複数のプロセッサによって実行することができる。このような命令は、二次データ記憶装置のような他のコンピュータ可読媒体からメモリデバイスに読み込むことができる。メモリデバイスに含まれる命令のシーケンスの実行により、プロセッサは、たとえば、上述のように動作する。代替の実施形態において、本発明を実装するソフトウェア命令の代わりに、またはこれと組み合わせて、ハードワイヤ回路を用いることができる。このようなソフトウェアは、センサを含む装置、たとえば、ロボットまたは他の装置内に収容されているプロセッサ上で動くことができ、またはソフトウェアは、センサを含む装置と通信している他の装置、たとえば、システムコントローラ、ゲームコンソール、パーソナルコンピュータなど内に収容されたプロセッサまたはコンピュータ上で動くことができる。このような場合、センサを含む装置と上述のようにバイアス推定および補償を実行するソフトウェアを動かすプロセッサを含む装置との間で有線を介してまたは無線でデータを転送することができる。他の例示的な実施形態によれば、バイアス推定に関して上述した処理のいくつかがセンサを含む装置において実行され得る一方、処理の残りは、センサを含む装置からの部分的に処理されたデータの受信後、第2の装置において実行される。
【0122】
前述の例示的な実施形態は1つまたは複数の回転センサおよび加速度計を含む感知パッケージに関するが、これらの例示的な実施形態によるバイアス推定技術は、これらのタイプのセンサのみに限定されない。代わりに本明細書に記載のようなバイアス推定技術は、たとえば、加速度計のみ、光学および慣性センサ(たとえば、回転センサ、ジャイロスコープまたは加速度計)、磁力計および慣性センサ(たとえば、回転センサ、ジャイロスコープまたは加速度計)、磁力計および光学センサ(たとえば、カメラ、1つまたは複数のフォトダイオード、1つまたは複数のフォトトランジスタ)、または他のセンサの組み合わせを含む装置に適用することができる。加えて、本明細書に記載の例示的な実施形態は、ロボットおよびロボット掃除機および用途の文脈におけるバイアス推定に関するが、このような技術は、このように限定されず、他の用途、たとえば、携帯電話、医療用途、ゲーミング、カメラ、軍事用途、ロボット装置などに関連する方法および装置において使用することができる。
【0123】
上述の例示的な実施形態は、限定的ではなく、本発明のすべての点において例示的であるように意図されている。したがって、本発明は、本明細書に含まれる説明から当業者によって導き出すことができる詳細な実装形態における多くの変形が可能である。たとえば、前述の例示的な実施形態は、とりわけ、装置の動きを検出する慣性センサの使用を説明しているが、他のタイプのセンサ(たとえば、超音波、磁気または光学)を、前述の信号処理と組み合わせて慣性センサの代わりに、またはこれに加えて用いることができる。すべてのこのような変形および修正は、次の請求項によって定義されるような本発明の範囲および精神内にあると見なされる。本願の説明において用いられる要素、行為、または命令は、そのように明示的に説明されない限り、本発明にとって決定的または必須であるとして解釈されるべきではない。また、本明細書で用いられるとき、冠詞「a」は、1つまたは複数の項目を含むように意図されている。
【0124】
特徴および要素を特定の組み合わせにおいて上で説明したが、当業者は、各特徴または要素が単独で、または他の特徴および要素と任意の組み合わせで用いられ得ることを理解するであろう。加えて、本明細書に記載の方法は、コンピュータまたはプロセッサによる実行のため、コンピュータ可読媒体に組み込まれたコンピュータプログラム、ソフトウェア、またはファームウェアに実装することができる。非一時的なコンピュータ可読記憶媒体の例は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクのような磁気媒体、磁気光学媒体、CD-ROMディスクのような光学媒体、デジタル多用途ディスク(DVD)を含むが、これらに限定されない。ソフトウェアに関連するプロセッサを用いて、WTRU 102、UE、端末、基地局、RNC、または任意のホストコンピュータで用いるための無線周波数トランシーバを実装することができる。
【0125】
また、上述の実施形態において、処理プラットフォーム、コンピューティングシステム、コントローラ、およびプロセッサを含む他の装置が記載されている。これらの装置は、少なくとも1つの中央処理装置(「CPU」)およびメモリを含むことができる。コンピュータプログラミングの当業者の慣行にしたがって、動作または命令の行為および記号表現の参照は、さまざまなCPUおよびメモリによって実行することができる。このような行為および動作または命令は、「実行された」、「コンピュータで実行された」または「CPUで実行された」と言うことができる。
【0126】
当業者は、行為および記号で表現される動作または命令が、CPUによる電気信号の操作を含むことを理解するであろう。電気システムは、結果として生じる電気信号の変換または削減、およびメモリシステムにおけるメモリ位置でのデータビットの維持を引き起こし、これによってCPUの動作、ならびに信号の他の処理を再構成、さもなければ変更することができるデータビットを表す。データビットが維持されるメモリ位置は、データビットに対応する、またはこれを表す特定の電気的、磁気的、光学的、または有機的特性を有する物理的な位置である。代表的な実施形態は上述のプラットフォームまたはCPUに限定されず、他のプラットフォームおよびCPUが提供された方法をサポートすることができるということが理解されるべきである。
【0127】
データビットは、磁気ディスク、光ディスク、およびCPUによって読み取り可能な任意の他の揮発性(たとえば、ランダムアクセスメモリ(「RAM」))または不揮発性(たとえば、読み取り専用メモリ(「ROM」))大容量ストレージシステムを含むコンピュータ可読媒体上に維持することもできる。コンピュータ可読媒体は協働または相互接続コンピュータ可読媒体を含むことができ、これらは処理システム上のみに存在するか、または処理システムに対してローカルまたはリモートであり得る複数の相互接続処理システム間で分散される。代表的な実施形態は、上述のメモリに限定されず、他のプラットフォームおよびメモリが記載の方法をサポートすることができるということが理解される。
【0128】
例示的な一実施形態において、本明細書に記載の動作、プロセスなどのいずれも、コンピュータ可読媒体に格納されたコンピュータ可読命令として実装することができる。コンピュータ可読命令は、モバイルユニットのプロセッサ、ネットワーク要素、および/または任意の他のコンピューティングデバイスによって実行することができる。
【0129】
システムの態様のハードウェアおよびソフトウェアの実装形態間にはほとんど違いがない。ハードウェアまたはソフトウェアの使用は一般に(しかし、いくつかの文脈においてハードウェアとソフトウェアとの間の選択が重要になることがあるという点で常にではない)、コスト対効率のトレードオフを表す設計選択である。本明細書に記載のプロセスおよび/またはシステムおよび/または他の技術が影響を受けることがあるさまざまな媒体(たとえば、ハードウェア、ソフトウェア、および/またはファームウェア)があり得、好ましい媒体は、プロセスおよび/またはシステムおよび/または他の技術が展開されている状況とともに変化し得る。たとえば、実装者が速度および精度が最優先であると判断すれば、実装者は主にハードウェアおよび/またはファームウェア媒体を選択することができる。柔軟性が最優先であれば、実装者は主にソフトウェア実装を選択することができる。あるいは、実装者は、ハードウェア、ソフトウェア、および/またはファームウェアの何らかの組み合わせを選択することができる。
【0130】
前述の詳細な説明は、ブロック図、フローチャート、および/または例の使用を介して装置および/またはプロセスのさまざまな実施形態を記載している。このようなブロック図、フローチャート、および/または例が1つまたは複数の機能および/または動作を含む限り、このようなブロック図、フローチャート、または例内の各機能および/または動作が、個別におよび/または集合的に、広範囲のハードウェア、ソフトウェア、ファームウェア、またはこれらの事実上任意の組み合わせによって実装され得ることが当業者によって理解されよう。適切なプロセッサは、例として、汎用プロセッサ、専用プロセッサ、従来のプロセッサ、デジタルシグナルプロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアに関連する1つまたは複数のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、フィールドプログラマブルゲートアレイ(FPGA)回路、任意の他のタイプの集積回路(IC)、および/またはステートマシンを含む。
【0131】
本開示は、さまざまな態様の例示として意図されている、本願に記載された特定の実施形態に関して限定されるべきではない。当業者には明らかであるように、その精神および範囲から逸脱することなく、多くの修正および変形を行うことができる。本願の説明で用いられる要素、行為、または命令は、そのように明示的に提供されない限り、本発明にとって決定的または必須であるとして解釈されるべきではない。本明細書に列挙されたものに加えて、本開示の範囲内の機能的に同等の方法および装置が、前述の説明から当業者には明らかであろう。このような修正および変形は、添付の特許請求の範囲内に入るように意図されている。本開示は、添付の請求項の用語、ならびにこのような請求項が権利を与えられる同等物の全範囲によってのみ限定されるべきである。この開示は特定の方法またはシステムに限定されないということが理解されるべきである。
【0132】
いくつかの代表的な実施形態において、本明細書に記載の主題のいくつかの部分は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、および/または他の統合フォーマットを介して実装することができる。しかしながら、本明細書に開示される実施形態のいくつかの態様が、全体的または部分的に、1つまたは複数のコンピュータ上で動く1つまたは複数のコンピュータプログラムとして(たとえば、1つまたは複数のコンピュータシステム上で動く1つまたは複数のプログラムとして)、1つまたは複数のプロセッサ上で動く1つまたは複数のプログラムとして(たとえば、1つまたは複数のマイクロプロセッサ上で動く1つまたは複数のプログラムとして)、ファームウェアとして、またはこれらの事実上任意の組み合わせとして、集積回路において同等に実装することができるということ、および回路を設計することおよび/またはソフトウェアおよび/またはファームウェアのためのコードを書くことは、本開示に照らして当業者の技能内であろうということを、当業者は認識するであろう。加えて、本明細書に記載の主題のメカニズムがさまざまな形態のプログラム製品として配布され得ること、および本明細書に記載の主題の例示的な一実施形態が実際に配布を実行するために用いられる信号伝達媒体の特定のタイプに関係なく適用されるということを、当業者は理解するであろう。信号伝達媒体の例は、次のもの、すなわち、フロッピーディスク、ハードディスクドライブ、CD、DVD、デジタルテープ、コンピュータメモリなどのような記録可能なタイプの媒体、ならびにデジタルおよび/またはアナログ通信媒体(たとえば、光ファイバーケーブル、導波路、有線通信リンク、無線通信リンクなど)のような伝送タイプの媒体を含むが、これらに限定されない。
【0133】
本明細書に記載の主題は時には、異なる他の構成要素内に含まれる、またはこれらと接続される異なる構成要素を示している。このように描かれたアーキテクチャは単なる例であり、実際、同じ機能性を達成する多くの他のアーキテクチャを実装することができるということが理解されるべきである。概念的な意味において、同じ機能性を達成する構成要素の任意の配置が、所望の機能性を達成することができるように効果的に「関連付け」られる。したがって、特定の機能性を達成するために組み合わされた本明細書の任意の2つの構成要素は、アーキテクチャまたは中間構成要素に関係なく、所望の機能性が達成されるように互いに「関連している」として見ることができる。同様に、このように関連している任意の2つの構成要素はまた、所望の機能性を達成するために互いに「動作可能に接続された」または「動作可能に結合された」として見なすことができ、このように関連させることができる任意の2つの構成要素はまた、所望の機能性を達成するように互いに「動作可能に結合可能」と見なすことができる。動作可能に結合可能な特定の例は、物理的に結合可能な、かつ/または物理的に相互作用する構成要素および/または無線で相互作用可能な、かつ/または無線で相互作用する構成要素および/または論理的に相互作用する、かつ/または論理的に相互作用可能な構成要素を含むが、これらに限定されない。
【0134】
本明細書における実質的に任意の複数形および/または単数形の用語の使用に関して、当業者は、文脈および/または用途にとって適切であるように、複数形から単数形へ、かつ/または単数形から複数形へと言い換えることができる。明確にするため、さまざまな単数形/複数形の交換を本明細書に明示的に記載することができる。
【0135】
一般に、本明細書で、特に添付の請求項(たとえば、添付の請求項の本体)で用いられる用語は一般に「オープン」な用語として意図されている(たとえば、「including(含む)」という用語は「including but not limited to(含むがこれに限定されない)」として解釈されるべきであり、「having(有する)」という用語は「having at least(少なくとも有する)」として解釈されるべきであり、「includes(含む)」という用語は「includes but is not limited to(含むがこれに限定されない)」と解釈されるべきである、など)。特定の数の導入された請求項の記載が意図されていれば、このような意図は請求項に明示的に記載され、このような記載がない場合、このような意図は存在しないことが当業者によってさらに理解されよう。たとえば、1つの項目のみが意図されている場合、「単一」という用語または同様の文言を用いることができる。理解の助けとして、次の添付の請求項および/または本明細書の説明は、請求項の記載を導入する「少なくとも1つ」および「1つまたは複数」という導入句の使用を含むことができる。しかしながら、このような句の使用は、不定冠詞「a」または「an」によるクレームの記載の導入により、このように導入されたクレームの記載を含むあらゆる特定の請求項を、同じ請求項が「1つまたは複数」または「少なくとも1つ」という導入句、および「a」または「an」のような不定冠詞を含むときであっても(たとえば、「a」および/または「an」は「少なくとも1つ」または「1つまたは複数」を意味するように解釈されるべきである)、1つのみのこのような記載を含む実施形態に限定することを示唆するように解釈されるべきではない。同じことが、請求項の記載を導入するために用いられる定冠詞の使用にも当てはまる。加えて、導入された請求項の記載の具体的な数が明示的に記載されていても、当業者は、このような記載が少なくとも記載された数を意味するように解釈されるべきであることを認識するであろう(たとえば、他の修飾語句のない「2つの記載」というただの記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。さらに、「A、B、およびCなどの少なくとも1つ」に類似した慣習が用いられる場合、一般にこのような構成は、当業者であればこの慣習を理解するであろうという意味において意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを一緒に、AおよびCを一緒に、BおよびCを一緒に、ならびに/またはA、B、およびCを一緒に、などを有するシステムを含むが、これらに限定されないであろう。)「A、B、またはCなどの少なくとも1つ」に類似した慣習が用いられる場合、一般にこのような構成は、当業者であればこの慣習を理解するであろうという意味において意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを一緒に、AおよびCを一緒に、BおよびCを一緒に、ならびに/またはA、B、およびCを一緒に、などを有するシステムを含むが、これらに限定されないであろう。)説明、請求項、または図面のいずれにおいても、2つ以上の代替用語を提示する事実上すべての選言的な単語および/または句は、これらの用語の1つ、これらの用語のいずれか、または両方の用語を含む可能性を企図するように理解されるべきであることが当業者によってさらに理解されよう。たとえば、「AまたはB」という句は、「A」または「B」または「AおよびB」の可能性を含むように理解されよう。さらに、複数の項目および/または複数の項目のカテゴリの列挙に続く「のいずれか」という用語は、本明細書で用いられるとき、個別に、または他の項目および/または他の項目のカテゴリと併せて、これらの項目および/または項目のカテゴリ「のいずれか」、「の任意の組み合わせ」、「の任意の複数」、および/または「の複数の任意の組み合わせ」を含むように意図されている。また、本明細書で用いられるとき、「セット」または「グループ」という用語は、ゼロを含む任意の数の項目を含むように意図されている。加えて、本明細書で用いられるとき、「数」という用語は、ゼロを含む任意の数を含むように意図されている。
【0136】
加えて、開示の特徴または態様がマーカッシュグループに関して説明される場合、当業者は、開示がこれによってマーカッシュグループの任意の個々の要素または要素のサブグループに関しても説明されることを認識するであろう。
【0137】
当業者によって理解されるように、書面の説明を提供することに関してのような、ありとあらゆる目的のため、本明細書に開示されるすべての範囲は、ありとあらゆる可能なサブレンジおよびそのサブレンジの組み合わせも包含する。いずれの列挙された範囲も、同じ範囲を十分に説明し、少なくとも等しい半分、3分の1、4分の1、5分の1、10分の1などに分割することを可能にしているとして容易に認識することができる。非限定的な一例として、本明細書で議論した各範囲は、下3分の1、中3分の1および上3分の1などに容易に分割することができる。当業者によってまた理解されるように、「まで」、「少なくとも」、「より大きい」、「より少ない」、などのようなすべての文言は記載された数を含み、上で議論したように引き続きサブ範囲に分割することができる範囲を指す。最後に、当業者によって理解されるように、範囲は各個々の要素を含む。したがって、たとえば、1個~3個のセルを有するグループは、1個、2個、または3個のセルを有するグループを指す。同様に、1個~5個のセルを有するグループは、1個、2個、3個、4個、または5個のセルを有するグループを指し、以下同様である。
【0138】
また、請求項は、その趣旨で述べられていない限り、提供された順序または要素に限定されるものとして解釈されるべきではない。加えて、いずれの請求項においても「means for(ための手段)」という用語の使用は、米国特許法第112条第6段落またはミーンズプラスファンクションクレーム形式を適用するように意図しており、「means for」という用語のないいずれの請求項もそのように意図されていない。
【符号の説明】
【0139】
100 ロボットコントローラ
102 IMU
104 他のセンサ
106 モータ