(57)【要約】ロボットデバイスのオフボードナビゲーションの方法及び装置を提供する。本方法は、ロボットデバイスの位置精度のしきい値を規定すること、ロボットデバイスとサーバとが通信するネットワークの待ち時間であって、センサデータをロボットデバイスからサーバに送信する送信と、送信されたセンサデータに相当する処理済みデータをロボットデバイスがサーバから受信する受信との差である待ち時間を算出すること、ロボットデバイスの位置精度のしきい値とネットワークの待ち時間とに基づいて、ロボットデバイスの速度を決定すること、を含む。
2016520944.tif 000002
【特許請求の範囲】
【請求項１】
ロボットデバイスのオフボードナビゲーションの方法であって、
前記ロボットデバイスの位置精度のしきい値を規定すること、
前記ロボットデバイスとサーバとが通信するネットワークの待ち時間であって、センサデータを前記ロボットデバイスから前記サーバに送信する送信と、前記送信されたセンサデータに相当する処理済みデータを前記ロボットデバイスが前記サーバから受信する受信との差である前記待ち時間を算出すること、及び
前記ロボットデバイスの前記位置精度の前記しきい値と前記ネットワークの前記待ち時間とに基づいて、前記ロボットデバイスの速度を決定すること、を含む方法。
【請求項２】
前記ロボットデバイスの速度を決定することは、前記ネットワークの前記待ち時間に応じて、前記ロボットデバイスから前記サーバへの、前記センサデータについての連続する２つの送信の間の差である、サンプリング周期を設定することを含む、請求項１記載の方法。
【請求項３】
前記ロボットデバイスの速度を決定することは、さらに、前記ロボットデバイスが前記サンプリング周期内で移動するように命令される変位を決定することを含む、請求項２記載の方法。
【請求項４】
前記ロボットデバイスが前記サンプリング周期内で移動するように命令される前記変位を決定することは、前記ロボットデバイスが前記サンプリング周期内で移動すべき所望の変位を前記ロボットデバイスの走行距離誤差の特徴に従って決定すること、及び前記サンプリング周期内で相殺される位置誤差を取得すること、を含む、請求項３記載の方法。
【請求項５】
前記ロボットデバイスの前記走行距離誤差の特徴は、あらかじめ較正された前記ロボットデバイスの前記走行距離誤差の変化曲線によって表される、請求項４記載の方法。
【請求項６】
前記ロボットデバイスの前記位置精度の前記しきい値は、前記ロボットデバイスが動作する環境に基づいて決定される、前出の請求項のいずれか１項に記載の方法。
【請求項７】
前記ロボットデバイスの速度は前記ネットワークの前記待ち時間に反比例するように決定される、前出の請求項のいずれか１項に記載の方法。
【請求項８】
さらに、前記ロボットデバイスを、前記決定された速度以下の速度で移動するように駆動する、前出の請求項のいずれか１項に記載の方法。
【請求項９】
オフボードナビゲーションの装置であって、
サーバと、
前記サーバから受信したナビゲーションコマンドに従って移動するように構成されたロボットデバイスと、を備え、
前記ロボットデバイスは、
センサデータを取得するように構成されたセンサと、
前記ロボットデバイスの位置精度のしきい値を受信するように構成されたインターフェースと、
プロセッサであって、
前記ロボットデバイスと前記サーバとが通信する前記ネットワークの待ち時間であって、センサデータを前記ロボットデバイスから前記サーバに送信する送信と、前記送信されたセンサデータに相当する処理済みデータを前記ロボットデバイスが前記サーバから受信する受信との差である前記ネットワークの待ち時間を算出するとともに、
前記ロボットデバイスの前記位置精度の前記しきい値と前記ネットワークの前記待ち時間とに基づいて、前記ロボットデバイスの速度を決定する、ように構成されたプロセッサと、
を備えている装置。
【請求項１０】
前記ロボットデバイスはさらに、前記ロボットデバイスの位置を推測するように構成された走行距離計を備えている、請求項９記載の装置。
【請求項１１】
前記サーバは、前記ロボットデバイスから送信された前記センサデータを処理して、前記送信されたセンサデータに相当する前記ロボットデバイスの位置情報を取得し、前記位置情報を前記ロボットデバイスに送信するように構成されている、請求項９又は１０に記載の装置。
【請求項１２】
前記プロセッサはさらに、
前記ネットワークの前記待ち時間に応じて、前記ロボットデバイスから前記サーバへの前記センサデータについての連続する２つの送信の間の差である、サンプリング周期を設定するとともに、
前記ロボットデバイスが前記設定されたサンプリング周期内で移動するように命令される変位を決定するように構成されている、請求項９から１１のいずれか１項に記載の装置。
【請求項１３】
前記プロセッサはさらに、
前記ロボットデバイスが前記サンプリング周期内で移動すべき所望の変位を前記ロボットデバイスの走行距離誤差の特徴に従って決定するとともに、
前記サンプリング周期内で相殺される位置誤差を取得して、前記移動するように命令される変位を、前記位置誤差によって相殺された変位であって前記移動すべき所望の変位として決定するように構成されている、請求項１２記載の装置。
【請求項１４】
前記ロボットデバイスの前記走行距離誤差の特徴は、あらかじめ較正された前記ロボットデバイスの前記走行距離誤差の変化曲線によって表される、請求項１３記載の装置。
【請求項１５】
前記ロボットデバイスの前記位置精度の前記しきい値は、前記ロボットデバイスが動作する環境に基づいて決定される、請求項９から１４のいずれか１項に記載の装置。
【請求項１６】
前記ロボットデバイスの速度は前記ネットワークの前記待ち時間に反比例するように決定される、請求項９から１５のいずれか１項に記載の装置。
【請求項１７】
前記ロボットデバイスは、前記決定された速度以下の速度で移動するように駆動される、請求項９から１５のいずれか１項に記載の装置。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［技術分野］
本発明は、ロボットデバイスのオフボードナビゲーションに関し、特に、ネットワーク状態の変化に対応する適応型オフボードナビゲーションに関する。
［背景技術］
自律ナビゲーションは、消費市場及び消費産業においてロボットデバイスを広く普及させるための成功への鍵である。このロボットデバイスは、人間の指揮がない状態でセンサ及びナビゲーションシステムを頼りにして、動きまわってタスクを実行する。
【０００２】
しかし、このようなナビゲーションを満足の行くレベルの精度で実現することはコストがかかる。なぜなら、ナビゲーションコマンドをリアルタイムで供給するために必要な処理負荷及び処理能力の観点では、計算量が非常に多く、かつ要求レベルも高いからである。従来、ロボットデバイスにはナビゲーションシステムが設けられており、よって、すべてのナビゲーション処理をオンボードで行うことにより、ロボットデバイスは単独で稼働可能である。このため、より高性能なコンピュータ及びより大規模なバッテリーをオンボードで使用する傾向がある。しかし、この手法を用いるとコストの増加を招く。コストの増加の他に、この手法には、ロボットデバイスの寸法が大きくなるという難点があり、これにより寸法も重要視される用途には適さなくなることもある。
【０００３】
多くの産業で使用されている既存の自律走行型搬送車（Ａｕｔｏｎｏｍｏｕｓ  Ｇｕｉｄｅｄ  Ｖｅｈｉｃｌｅｓ：ＡＧＶｓ）は、簡単な構造であるが、一方で、この搬送車が稼働するためには、建造物のインフラに対して、大規模で高額かつ柔軟性に欠ける改造が必要になる。例えば、ある種のＡＧＶは、走行の際に、床に敷設されたマーカー又はワイヤに沿う必要がある。
【０００４】
別の手法としては、ロボットデバイスを通信リンク経由で遠隔サーバに接続し、サーバの処理能力を利用する手法がある。遠隔サーバは例えばクラウドコンピューティングプラットフォームであってもよく、通信リンクは無線ネットワークであってもよい。このようにして、ナビゲーション処理は全てが遠隔サーバにてオフボードで行われてもよいし、オンボード処理とオフボード処理との組み合わせに分離処理されてもよい。演算の大部分を遠隔サーバに割り当てることも、あるいは高性能なプロセッサを備えた遠隔サーバ群の間で分配することも可能であるので、オフボードナビゲーションを採用するロボットデバイスでは最小限の処理を行えばよい。ロボットデバイスでの最小限の処理の例としては、ロボットデバイスのセンサから得られたセンサデータをサーバに送信すること、並びに、遠隔センサからナビゲーションコマンド及び／又は位置情報を受信することが含まれる。
【０００５】
この手法はコスト及び寸法の問題に対処しているが、ロボットデバイスと遠隔サーバとの間で信号を送受信する際には、ロボットデバイスの位置精度に影響を与える遅延が常に存在するので、実際のネットワーク状態の影響を受けやすい。
【０００６】
図１は、オフボードナビゲーションにおいてネットワークＬの待ち時間がない（Ｌ＝０）理想的な状況を示したものである。ロボットデバイス１００は、自身のセンサから得られたセンサデータを、連続的なタイミングｔ０，ｔ１，ｔ２…で無線ネットワークを介してサーバ１１０に送信する。センサデータは、ロボットデバイス１００の実際の位置を算出するサーバ１１０で処理され、サーバ１１０は、その後、この位置情報、又は移動する距離及び方向等のナビゲーションコマンドを、ロボットデバイス１００に送信する。このようにして、ロボットデバイス１００は、自身の実際の位置と移動先又は予定経路とに基づいて移動するように命令される。ネットワークの待ち時間がない（オンボードナビゲーションと同様である）理想的な状況では、サーバ１１０の処理時間が非常に短く無視できるほどであると仮定すると、ロボットデバイス１００はほぼ同じタイミングｔ０，ｔ１，ｔ２…で位置情報又はナビゲーションコマンドを受信する。よって、ナビゲーションコマンドは常にロボットデバイス１００の実際の現在位置に基づいて与えられ、ロボットデバイス１００の位置精度はオンボードナビゲーションに匹敵する。図３は、ロボットデバイス１００の位置精度を、ロボットデバイス１００の実際の位置３００と推定位置３００’との間の最大差又は誤差として図示したものである。例えば、ロボットデバイス１００がナビゲーションコマンドに従って移動しながら走行距離情報を利用して自身の位置３００’を推定する（図３に示されているように）場合、ロボットデバイス１００の位置精度は、連続する２つのタイミングの間の時間であるサンプリング周期Ｔの間に蓄積された走行距離誤差となる。走行距離誤差は、移動するように命令される距離とロボットデバイス１００が移動した実際の距離との差として規定されている。
【０００７】
しかし、実際には、ロボットデバイスの位置精度はネットワークの待ち時間（Ｌ＞０）の影響を受ける。図２に示されているように、センサデータパケットをロボットデバイス１００からサーバ１１０に送信する時間（例えばｔ＝ｔ０）と、ｔ＝ｔ０で送信されたセンサデータに相当する処理済みデータパケットをロボットデバイス１００がサーバ１００から受信する時間（例えばｔ＝ｔ３）との間には常に差が存在し、この差ｔ３−ｔ０をネットワークの待ち時間と規定する。
【０００８】
このことにより、ｔ３からｔ４の期間中、ロボットデバイス１００はｔ３で受信したナビゲーションコマンドに従って移動するが、このコマンドはｔ＝ｔ０でのセンサデータ及びロボットデバイス１００の実際の位置に相当し、ｔ３でのデバイスの現在位置に相当するナビゲーションコマンドではない。よって、ロボットデバイス１００の位置精度はネットワークの待ち時間の影響を受ける。
【０００９】
ロボットデバイスとサーバとの間のネットワークの待ち時間は主にセンサデータ量とネットワーク帯域幅とに左右されるが、どちらも環境変化の影響を受けやすい。Ｌが低値であるような、ネットワーク状態が良い場合は、ネットワークの待ち時間によるロボットデバイスの位置誤差はそれほど重要視されないであろうが、Ｌが高値であるような、ネットワーク状態が低速の場合は、特にロボットデバイスが高速で移動する場合、この誤差が蓄積されると許容できなくなってしまうこともある。
【００１０】
よって、ロボットデバイスと遠隔サーバとの間の通信ネットワークが生じさせる遅延を考慮することによってナビゲーションの位置精度を確証できる、オフボードナビゲーションの方法及び装置を有する必要がある。
［発明の概要］
本発明の一局面では、ロボットデバイスのオフボードナビゲーションの方法が提供される。本方法は、ロボットデバイスの位置精度のしきい値を規定すること、ロボットデバイスとサーバとが通信するネットワークの待ち時間であって、センサデータをロボットデバイスからサーバに送信する送信と、送信されたセンサデータに相当する処理済みデータをロボットデバイスがサーバから受信する受信との差である待ち時間を算出すること、及びロボットデバイスの位置精度のしきい値とネットワークの待ち時間とに基づいて、ロボットデバイスの速度を決定すること、を含む。
【００１１】
ロボットデバイスの速度を決定することは、ネットワークの待ち時間に応じて、ロボットデバイスからサーバへの、センサデータについての連続する２つの送信の間の差である、サンプリング周期を設定すること、及びロボットデバイスがサンプリング周期内で移動するように命令される変位を決定すること、を含んでもよい。
【００１２】
ロボットデバイスがサンプリング周期内で移動するように命令される変位を決定することは、ロボットデバイスがサンプリング周期内で移動すべき所望の変位をロボットデバイスの走行距離誤差の特徴に従って決定すること、及びサンプリング周期内で相殺される位置誤差を取得すること、を含んでもよい。
【００１３】
ロボットデバイスの走行距離誤差の特徴は、あらかじめ較正されたロボットデバイスの走行距離誤差の変化曲線によって表されてもよい。
ロボットデバイスの位置精度のしきい値は、ロボットデバイスが動作する環境に基づいて決定されてもよい。
【００１４】
ロボットデバイスの速度はネットワークの待ち時間に反比例するように決定されてもよい。
本方法はさらに、決定された速度以下の速度でロボットデバイスを移動するように駆動してもよい。
【００１５】
本発明の別の局面によれば、オフボードナビゲーションのための装置が提供される。本装置は、サーバと、サーバから受信したナビゲーションコマンドに従って移動するように構成されたロボットデバイスとを備え、ロボットデバイスは、センサデータを取得するように構成されたセンサと、ロボットデバイスの位置精度のしきい値を受信するように構成されたインターフェースと、プロセッサであって、ロボットデバイスとサーバとが通信するネットワークの待ち時間であって、センサデータをロボットデバイスからサーバに送信する送信と、送信されたセンサデータに相当する処理済みデータをロボットデバイスがサーバから受信する受信との差であるネットワークの待ち時間を算出するとともに、ロボットデバイスの位置精度のしきい値とネットワークの待ち時間とに基づいて、ロボットデバイスの速度を決定するように構成されたプロセッサと、を備えている。
【００１６】
ロボットデバイスはさらに、ロボットデバイスの位置を推測するように構成された走行距離計を備えていてもよい。
サーバは、ロボットデバイスから送信されたセンサデータを処理して、送信されたセンサデータに相当するロボットデバイスの位置情報を取得し、位置情報をロボットデバイスに送信するように構成されていてもよい。
【００１７】
プロセッサはさらに、ネットワークの待ち時間に応じて、ロボットデバイスからサーバへの、センサデータについての連続する２つの送信の間の差である、サンプリング周期を設定するとともに、ロボットデバイスが設定されたサンプリング周期内で移動するように命令される変位を決定するように構成されていてもよい。
【００１８】
プロセッサはさらに、ロボットデバイスがサンプリング周期内で移動すべき所望の変位をロボットデバイスの走行距離誤差の特徴に従って決定するとともに、サンプリング周期内で相殺される位置誤差を取得して、移動するように命令される変位を、位置誤差によって相殺された変位であって移動すべき所望の変位として決定するように構成されていてもよい。
【００１９】
ロボットデバイスの走行距離誤差の特徴は、あらかじめ較正されたロボットデバイスの走行距離誤差の変化曲線によって表されてもよい。
ロボットデバイスの位置精度のしきい値は、ロボットデバイスが動作する環境に基づいて決定されてもよい。
【００２０】
ロボットデバイスの速度はネットワークの待ち時間に反比例するように決定されてもよい。
ロボットデバイスは決定された速度以下の速度で移動するように駆動される。
【００２１】
ここで、添付の図面を参照して、本方法及び本装置の各実施形態を説明する。
【図面の簡単な説明】
【００２２】
【図１】ネットワークの待ち時間がない、オフボードナビゲーションの理想的な状況を示したものである。
【図２】ネットワークの待ち時間が存在する、オフボードナビゲーションの実際の状況を示したものである。
【図３】ロボットデバイスの位置精度を図示したものである。
【図４】オフボードナビゲーションの装置の例の概略図である。
【図５】オフボードナビゲーションの方法の例を示したフローチャートである。
【図６】オフボードナビゲーションの装置の例で用いられているロボットデバイスの走行距離誤差の変化曲線例を示したものである。
【図７】オフボードナビゲーションの方法を図示している簡単なランタイム例を示したものである。
【図８】図７に図示されているランタイム例に係る様々なタイミングでのパラメータ値を示したものである。
【発明を実施するための形態】
【００２３】
［発明の詳細な説明］
図４は、ネットワーク状態の変化に対応するオフボードナビゲーションのための装置４００の例を図示したものである。装置４００は、無線ネットワーク４４０等の通信リンクを介してサーバ４３０に接続されているロボットデバイス４１０を備えている。サーバ４３０は、データの送受信が可能な任意のタイプのデバイスでよく、ナビゲーション処理に適した高性能なプロセッサを備え得る。サーバ４３０は、処理負荷がクラウド間で分散されるよう、クラウドコンピューティングプラットフォームであってもよい。また、ユーザがオフボードナビゲーションに関連するパラメータをサーバ４３０で設定し、全ナビゲーション処理を監視可能となるよう、ユーザインターフェースを有するナビゲーションアプリケーションがサーバ４３０に組み込まれていてもよい。
【００２４】
図示されているように、ロボットデバイス４１０は、複数のセンサ４１２と、プロセッサ４１４と、インターフェース４１８と、走行距離計４２０とを備えている。
複数のセンサ４１２は、ロボットデバイス４１０に関するデータ又はロボットデバイス４１０が動作する環境のデータを取得可能な任意のタイプのセンサであってもよい。得られたセンサデータは次に、ロボットデバイス４１０の実際の位置、及び／又はロボットデバイス４１０に送信されるナビゲーションコマンドを求めるために、ナビゲーション処理を行うサーバ４３０に伝送される。
【００２５】
プロセッサ４１４は、ロボットデバイス４１０の他の構成要素との連係及びルーチン機能の実行といった、ロボットデバイス４１０において必要な処理を実行するために使用される。例えば、プロセッサ４１４は、複数のセンサ４１２によって取得されたセンサデータの収集を監視し、センサデータを適切なタイミングで無線ネットワーク４４０経由でサーバ４３０に送信する命令を与え、受信したロボットデバイス４１０の位置情報及び／又はナビゲーションコマンドを監視し、ロボットデバイス４１０のモータ（図示せず）にナビゲーションコマンドに従って移動するように命令する。サーバ４３０がロボットデバイス４１０の位置情報のみをロボットデバイス４１０に送信するように構成されている場合、プロセッサ４１４は計算も実行し、ナビゲーションコマンド、つまり移動するように命令される距離を求める。以下の説明では、分かりやすくするために、サーバ４３０はロボットデバイス４１０の位置情報のみを送信すると想定する。
【００２６】
上述の各機能に加えて、プロセッサ４１４はまた、無線ネットワーク４４０の待ち時間を基準としたロボットデバイス４１０の速度も決定して、満足し得るロボットデバイス４１０の位置精度を実現する。
【００２７】
ロボットデバイス４１０がナビゲーションコマンドに従って移動し始めたら、走行距離計４２０を用いてロボットデバイス４１０が走行した距離又は変位が測定される。走行距離計４２０において示されている距離がナビゲーションコマンドの距離に一致した場合に、ナビゲーションコマンドが完了したとみなされる。上述したように、処理中には走行距離誤差が発生し、ロボットデバイス４１０の位置誤差をもたらす。
【００２８】
インターフェース４１８は、ユーザの入力、例えばナビゲーションにおいてロボットデバイス４１０が用いる、ユーザが入力した動作パラメータの確定値を確定するように構成されている。
【００２９】
図５は、例示の装置４００を用いたオフボードナビゲーションの方法のフローチャートを示したものである。
始めに、５１０で、ロボットデバイス４１０の位置精度又は最大位置誤差Ａを、ロボットデバイス４１０が動作する環境に基づいて規定する。例えば、一般的なオフィスの廊下では、ロボットデバイス４１０が廊下の壁に衝突しない範囲で許容される最大誤差は５０ｃｍであり得るが、広々とした広場では許容される最大誤差は１０メートルとなり得る。許容される最大位置誤差を規定すると、その値は動作パラメータの１つとして、ナビゲーションの開始時に、ユーザによって、ロボットデバイス４１０のインターフェース４１８経由でロボットデバイス４１０に入力可能である。あるいは、その値は、サーバ４３０経由でロボットデバイス４１０に読み込み可能である。ユーザは、サーバ４３０に接続されたユーザインターフェース、例えば、サーバに組み込まれた、又はサーバが有線通信を介してアクセスしたナビゲーションアプリケーションのユーザインターフェースで、その値を入力してもよい。このようなユーザインターフェースはまた、オフボードナビゲーションの実行を監視するとともに、ロボットデバイス４１０の動作パラメータを設定するために用いてもよい。
【００３０】
次に、５２０で、ロボットデバイス４１０とサーバ４３０との間の無線ネットワーク４４０の待ち時間であるＬを、ロボットデバイス４１０のプロセッサ４１４によって取得する。プロセッサ４１４は、センサデータパケットがロボットデバイス４１０からサーバ４３０に送信された時のタイムスタンプと、１つ前のセンサデータに相当する処理済みデータパケットがサーバ４３０からロボットデバイス４１０によって受信された時のタイムスタンプとを取得して、これら２つのタイムスタンプの間の差をネットワークの待ち時間として算出する。ネットワークの待ち時間は、ナビゲーションの開始直前に、プロセッサ４１４によって決定されてもよく、ここでプロセッサは、サーバ４３０に送信するテストセンサデータを発生させ、ロボットデバイス４１０がテストセンサデータの処理済みデータを受信した時のネットワークの待ち時間を取得する。ナビゲーション中、ネットワークの待ち時間は動的に決定されるが、センサデータを送信してから、ロボットデバイス４１０においてセンサデータに相当する位置情報を受信するまでの間の時間として規定されてもよい。あるいは、ナビゲーション中、ロボットデバイス４１０を、センサデータからは独立している特別なデータパケットを送信し、特別なデータパケットに相当する応答をサーバ４３０から受信した時のネットワークの待ち時間を取得するように構成してもよい。ネットワーク４４０内での不規則で一時的な変動を除去するために、ネットワークの待ち時間の多数の連続値の移動平均を用いることができる。
【００３１】
５３０で、ネットワークの待ち時間の算出値Ｌに応じて、サンプリング周期Ｔがプロセッサ４１４によって設定される。サンプリング周期は、センサデータをロボットデバイス４１０から送信する各タイミングのうちの連続する２つのタイミングの間の時間として規定されており、また、ネットワークの待ち時間の最新の算出値Ｌを用いて、直前の１サンプリング周期内でのロボットデバイス４１０の移動に相当する位置情報を、ロボットデバイス４１０が、ある特定のサンプリング周期内における移動前あるいは移動時に受信するように設定されていてもよい。サンプリング周期の例として図７を参照する。図７に示されているように、例示のロボットデバイス４１０は一直線に走行している。ロボットデバイス４１０からのセンサデータは、連続的なタイミングｔ０，ｔ１，ｔ２…で送信されるように構成されており、ここでＴｎは連続する２つのタイミングｔｎ−１とｔｎとの間の時間である。ネットワークの待ち時間の既知の値Ｌを用いて、Ｔ２は、Ｔ１におけるロボットデバイス４１０の移動に相当する位置情報を、ロボットデバイス４１０がＴ３の開始前又は開始時に受信する（図７において点線矢印７１０で表す）ように設定されている。Ｔ１におけるロボットデバイス４１０の移動に相当する位置情報は、ｔ＝ｔ１においてロボットデバイス４１０から送信されたセンサデータに基づいて、サーバ４３０によって求められる（図７において実線矢印７２０で表す）。よって、サンプリング周期の値Ｔはネットワークの待ち時間の最新値Ｌ以上でなければならない（Ｔ≧Ｌ）。例えば、サンプリング周期を、今までに算出されたネットワークの待ち時間の最悪値とあらかじめ規定された時間バッファとの合計として設定してもよい。
【００３２】
算出されたネットワークの待ち時間に応じてサンプリング周期を設定すると、時間例ｔ＝ｔｎにおいて、ロボットデバイス４１０はｔ＝ｔｎ−１での自身の位置を表す位置情報を受信するとともに、ｔ＝ｔｎでの自身の現在位置を表すセンサデータを送信する。
【００３３】
ネットワーク状態が変化しているために、ネットワークの待ち時間がナビゲーション中に常に変動しているので、サンプリング周期Ｔもナビゲーション中に変動するおそれがある。
【００３４】
次に、５４０で、設定されたサンプリング周期内でのナビゲーションコマンド又はロボットデバイス４１０が移動するように命令される距離を、ロボットデバイス４１０の走行距離誤差を考慮して決定する。
【００３５】
ロボットデバイス４１０の走行距離誤差の変化曲線を用いて、サンプリング周期内でロボットデバイス４１０が移動すべき所望の距離を決定する。この変化曲線は、ロボットデバイス４１０が移動した距離に対して蓄積された走行距離誤差をプロットすることによって、あらかじめ較正されている。変化曲線６００の例を図６に示す。ここで、走行距離誤差と移動距離との関係は非線形で、走行距離誤差は距離に対して制限がない。例示の変化曲線６００に示されているように、ロボットデバイス４１０が１０ｃｍ移動すると最高で１ｃｍの誤差が生じ、１００ｃｍ移動すると最高で２０ｃｍの誤差が生じる。
【００３６】
例えば、２０ｃｍがある所定の環境に対する位置精度又は最大位置誤差であると定められている場合、１サンプリング周期Ｔ内で許容される位置誤差は、２０ｃｍを２で割った値である１０ｃｍであると決定されるが、これは、走行距離誤差は連続する２つのサンプリング周期を通じて伝搬されるためである。較正済みの走行距離誤差の変化曲線に基づき、ロボットデバイス４１０は、走行距離誤差が１０ｃｍを超えない範囲では５０ｃｍしか移動できない。これにより、サンプリング周期Ｔ中にロボットデバイス４１０が移動する所望の距離は５０ｃｍと決定される。
【００３７】
上述したように、ロボットデバイス４１０が自身の走行距離情報を利用して、ナビゲーションコマンドに従って移動しながら自身の位置を推測する場合、移動するように命令される距離とロボットデバイス４１０が移動した実際の距離との差である走行距離誤差が、サンプリング周期内で蓄積される。サンプリング周期は、ｔ＝ｔｎでのロボットデバイス４１０の実際の位置に相当するセンサデータをｔ＝ｔｎにてサーバに送信し、ｔ＝ｔｎでのロボットデバイス４１０の実際の位置をｔ＝ｔｎ＋１以前又はｔ＝ｔｎ＋１にてロボットデバイス４１０に送り返すように設定されるので、サンプリング周期Ｔｎ−１内で蓄積した走行距離誤差Ｅｎ−１は、ロボットデバイス４１０が知るのはｔ＝ｔｎ＋１においてである。走行距離誤差Ｅｎ−１を相殺するには、ｔ＝ｔｎ＋１にて決定された、移動するように命令される距離を、走行距離誤差Ｅｎ−１によって補正された移動すべき所望の距離になるように決定する。このようにして、サンプリング周期Ｔｎ−１内で蓄積された走行距離誤差Ｅｎ−１はサンプリング周期Ｔｎ＋１ではリセットされる、つまり、走行距離誤差は連続する２つのサンプリング周期を通じて伝搬される。
【００３８】
５５０で、サンプリング周期におけるロボットデバイス４１０の速度を、命令される距離をサンプリング周期で割ったものとして求める。５２０でのネットワークの待ち時間の取得から５５０でのロボットデバイス４１０の速度の決定までのプロセスが、ナビゲーション中において継続される。
【００３９】
ロボットデバイス４１０の走行距離誤差の変化曲線はロボットデバイス４１０のメモリデバイス（図示せず）に保存され、ロボットデバイス４１０がサンプリング周期内で移動すべき所望の距離を決定するときに、プロセッサ４１４によってアクセスされる。プロセッサ４１４は、移動するように命令される距離を、直前の１サンプリング周期内で蓄積された走行距離誤差を考慮した所望の距離に基づいて決定し、その後、サンプリング周期の開始時にロボットデバイス４１０の速度を算出する。
【００４０】
よって、ロボットデバイス４１０の速度Ｓは、ロボットデバイス４１０の位置誤差の規定しきい値Ａ（最大許容値）とネットワークの待ち時間の算出値Ｌとに応じて、プロセッサ４１４によって求められる。ロボットデバイス４１０がしきい値Ａ以下の位置精度を有するためには、ロボットデバイス４１０を求められた速度Ｓ以下の速度で走行するように駆動する。
【００４１】
ロボットデバイス４１０の速度は、ナビゲーション中においては動的に決定されるので、ネットワーク状態の変化、つまりネットワークの待ち時間が変化すると、結果的にロボットデバイス４１０の速度が調整されることになる。
【００４２】
ナビゲーションの最初のいくつかのサンプリング周期を示している簡単なランタイム例を、図７及び図８を参照して説明する。図７では、例示のロボットデバイス４１０は一直線に走行している。ロボットデバイス４１０からのセンサデータは、連続的なタイミングｔ０，ｔ１，ｔ２…で送信されるように構成されており、ここで、Ｔｎは連続する２つのタイミングｔｎ−１とｔｎとの間の時間である。本例において、図示を簡素化するために、Ｔはネットワークの待ち時間の最新の算出値に設定されている。
【００４３】
周期Ｔｎにおいてロボットデバイス４１０が移動すべき所望の距離をＤｎと表す。ｔ＝ｔｎの瞬間での実際の位置をＸ（ｔｎ）と表し、開始時刻ｔ＝ｔ０での開始位置はＸ（ｔ０）＝０である。
【００４４】
図８は、サンプリング周期Ｔｎにおけるロボットデバイス４１０が移動すべき所望の距離と、ロボットデバイス４１０が移動するように命令される距離と、サンプリング周期Ｔｎ内に移動した実際の距離と、ロボットデバイス４１０の所望の位置及び実際の位置と、ロボットデバイス４１０の位置誤差とを、様々なタイミングｔ０，ｔ１，ｔ２…において示している。
【００４５】
ｔ＝ｔ０において、ロボットデバイス４１０は、移動すべき所望の距離Ｄ１を、ネットワークの待ち時間に従って設定したサンプリング周期と動作環境とに従ってユーザが入力する位置精度に基づいて求める。受信された位置情報はないので、移動するように命令される距離は所望の距離Ｄ１と同一である。
【００４６】
ｔ＝ｔ１において、ロボットデバイス４１０が既に移動した実際の距離はＤ１＋Ｅ１である。ここでＥ１は、サンプリング周期Ｔ１内、つまりｔ０からｔ１までで蓄積された走行距離誤差を表す。したがって、ｔ＝ｔ１でのロボットデバイス４１０の実際の位置はＸ（ｔ１）＝Ｄ１＋Ｅ１であり、相当する位置誤差はＥ（ｔ１）＝Ｅ１である。ロボットデバイス４１０は自身の現在位置を表すセンサデータをサーバ４３０に送信して、サンプリング周期Ｔ２内、つまりｔ１からｔ２までに移動すべき所望の距離Ｄ２を求める。ｔ＝ｔ１では、ロボットデバイス４１０は、ｔ＝ｔ０で送信されたセンサデータに相当する位置情報しか受信しておらず、移動するように命令される距離はＤ２である。
【００４７】
ロボットデバイス４１０は、ｔ＝ｔ１で、サンプリング周期Ｔ２内でＤ２の距離を移動するように命令を受けるが、実際に移動した距離はＤ２＋Ｅ２である。これにより、ｔ＝ｔ２では、ロボットデバイス４１０の実際の位置はＸ（ｔ２）＝Ｄ１＋Ｄ２＋Ｅ１＋Ｅ２であり、相当する位置誤差はＥ（ｔ２）＝Ｅ１＋Ｅ２である。
【００４８】
ｔ＝ｔ２において、ロボットデバイス４１０は、自身の現在位置を表すセンサデータをサーバ４３０に送信し、ｔ＝ｔ１で送信したセンサデータに相当する位置情報を受信する（点線矢印７１０で表されている）が、これは、ｔ２からｔ３までで（サンプリング周期Ｔ３内で）移動するように命令される距離を求める際に、ｔ＝ｔ１でのロボットデバイスの実際の位置Ｘ（ｔ１）を考慮に入れていることを意味している。サンプリング周期Ｔ１中に蓄積された走行距離誤差Ｅ１を相殺するためには、ｔ＝ｔ２において、命令される距離をＤ３−Ｅ１となるように決定する。
【００４９】
ｔ２からｔ３までで、実際に移動した距離はＤ３−Ｅ１＋Ｅ３である。これにより、ｔ＝ｔ３でのロボットデバイス４１０の実際の位置はＸ（ｔ３）＝Ｄ１＋Ｄ２＋Ｄ３＋Ｅ２＋Ｅ３であり、相当する位置精度はＥ２＋Ｅ３である。
【００５０】
よって、任意の時刻ｔにおいて、ロボットデバイス４１０の位置誤差は、ネットワークの待ち時間の算出値Ｌに応じて設定された連続する２つのサンプリング周期にわたって蓄積されている、ロボットデバイス４１０の走行距離誤差となる。位置精度のしきい値Ａが既知の場合、１サンプリング周期内で許容される走行距離誤差の値Ｅを求めることができる。既知の値Ｅの場合、ある特定のサンプリング周期の開始時において、所望の距離及び命令される距離は、ロボットデバイス４１０の走行距離誤差の較正済みの変化曲線と、直前の１サンプリング周期内で蓄積された走行距離誤差とを基準にして決定される。よって、速度Ｓは、所定値Ａ及び算出値Ｌに基づいて求めることができる。
【００５１】
実際には、ロボットデバイスは任意の方向に移動可能であるので、ロボットデバイスの位置精度及び速度は二次元ベクトルであってもよい。
上記の例は、ネットワークＬの待ち時間と、ロボットデバイスの平均位置精度Ａと、ロボットデバイスの平均速度Ｓとの間の関係を説明している。ネットワークの待ち時間があるために、ナビゲーション処理をオフボードで行う場合は、ロボットデバイスの速度とその位置推定の精度とは両立できない関係にある。また、走行距離誤差は走行した距離に伴って蓄積するが、リセットされてある決まった範囲内に保つことができる。
【００５２】
Ｌが高値であるような、低速のネットワーク状態では、蓄積された走行距離誤差が小さくなるようにロボットデバイスを減速させることが可能であり、よって、ロボットデバイスは、引き続き許容位置精度を有する。反対に、Ｌが低値であるような、ネットワーク状態が良い場合は、位置情報の更新が頻繁になるために蓄積された走行距離誤差が顕著になることがないので、ロボットデバイスの速度を上げることができ、よって、ロボットデバイスは、やはり許容位置精度を有する。理論上では、ロボットデバイスは、ネットワーク速度が非常に低速であっても完全に停止する必要は全くなく、それでも許容位置精度を有する。
【００５３】
上述の説明はロボットデバイスの許容位置精度を実現することを中心に進めてきたが、上記の３つの変数、すなわちＬ，Ａ，Ｓは、３変数のうちの少なくとも１つを最適化するために上述の関係性によって操作可能である。例えば、ロボットデバイスの位置精度が一定であることから、ロボットデバイスの速度をネットワークの待ち時間に基づいて動的に調整可能である。あるいは、位置精度を落とすことが可能であれば、送信するセンサデータをより小さくすることによって、ネットワークＬの待ち時間を短縮してもよく、それによりロボットデバイスの速度を上げることができる。
【００５４】
上述した本発明の各実施形態を説明してきたが、この技術に関わる当業者であれば、設計又は構造の詳細において多くの変形又は修正を、本発明から逸脱せずに行ってもよいことが理解されるであろう。
【図１】
2016520944.tif 000003
【図２】
2016520944.tif 000004
【図３】
2016520944.tif 000005
【図４】
2016520944.tif 000006
【図５】
2016520944.tif 000007
【図６】
2016520944.tif 000008
【図７】
2016520944.tif 000009
【図８】
2016520944.tif 000010
【国際調査報告】
2016520944.tif 000011
2016520944.tif 000012