(57)【要約】  関節運動可能なアームを目標物に対して移動させる、ロボットシステムおよび方法が提供される。目標物に対するアームの位置に対応する知覚情報が、ある取得速度で取得される。アームの動きは、取得速度よりも速い速度、または取得速度と同期しない速度のうちの少なくとも１つの制御速度で制御される。アームの予測位置を表す予測位置情報が、知覚情報を用いて提供される。アームは、知覚情報と予測位置情報とを用いて制御される。【選択図】図１
2018514403.tif 000002
【特許請求の範囲】
【請求項１】
目標物（１０２）を操作するように構成されたロボットシステム（１００）であって、
前記目標物（１０２）に対して動くように構成された、関節運動可能なアーム（１１０）と、
前記アーム（１１０）に取り付けられ、ある取得速度で、前記目標物（１０２）に対する前記アーム（１１０）の位置に対応する、知覚情報（２２２、２２４）を取得するように構成された、知覚取得ユニット（１３０）と、
前記アーム（１１０）、および前記知覚取得ユニット（１３０）に動作可能に連結されるように構成された、少なくとも１つのプロセッサ（１４０）であって、
前記知覚取得ユニット（１３０）の前記取得速度よりも速い制御速度、またはこれと同期しない制御速度のうちの少なくとも１つの制御速度で、前記アーム（１１０）の動きを制御し、
前記知覚情報（２２２、２２４）を用いて、前記アーム（１１０）の予測位置を表す予測位置情報（２１２、２１４、２１６、２１８）を提供し、
前記知覚情報（２２２、２２４）、および前記予測位置情報（２１２、２１４、２１６、２１８）を用いて、前記アーム（１１０）を制御するように構成される、少なくとも１つのプロセッサ（１４０）とを備える、ロボットシステム（１００）。
【請求項２】
前記少なくとも１つのプロセッサ（１４０）が、前記制御速度に対応する第１の間隔の前記予測位置情報（２１２、２１４、２１６、２１８）を用いて、前記アーム（１１０）を制御するように、かつ前記取得速度に対応する第２の間隔の前記知覚情報（２２２、２２４）を用いて、前記アーム（１１０）を制御するように構成される、請求項１に記載のロボットシステム（１００）。
【請求項３】
前記少なくとも１つのプロセッサ（１４０）が、少なくとも１つの第２の間隔の間に、一連の複数の第１の間隔にわたって、前記アーム（１１０）を制御するように構成される、請求項２に記載のロボットシステム（１００）。
【請求項４】
前記制御速度が、前記取得速度よりも少なくとも１０倍速い、請求項１に記載のロボットシステム（１００）。
【請求項５】
前記制御速度が、１０〜１００Ｈｚである、請求項１に記載のロボットシステム（１００）。
【請求項６】
前記少なくとも１つのプロセッサ（１４０）が、初期時刻における前記アーム（１１０）の以前の位置、前記初期時刻と現在時刻との間の、前記アーム（１１０）の速度に対応する速度情報、ならびに前記初期時刻と前記現在時刻との間に経過した所要時間を用いて、前記現在時刻における前記アーム（１１０）の予測位置（２１２、２１４、２１６、２１８）を決定するように構成される、請求項１に記載のロボットシステム（１００）。
【請求項７】
前記知覚取得ユニット（１３０）が、カメラ、ステレオカメラ、またはレーザセンサのうちの少なくとも１つを備える、請求項１に記載のロボットシステム（１００）。
【請求項８】
ロボットアーム（１１０）が、ある制御速度でこれに向かって導かれる、目標物（１０２）を決定するステップ（４０４）と、
前記アーム（１１０）に取り付けられた知覚取得ユニット（１３０）を介して、前記制御速度よりも遅い速度、または前記制御速度と同期しない速度のうちの少なくとも１つの取得速度で、前記目標物（１０２）に対する前記アーム（１１０）の位置に対応する、知覚情報（２２２、２２４）を取得するステップ（４０８）と、
前記知覚取得ユニット（１３０）および前記アーム（１１０）に動作可能に結合された少なくとも１つのプロセッサ（１４０）で、前記知覚情報（２２２、２２４）を用いて、前記アーム（１１０）の予測位置（２１２、２１４、２１６、２１８）を表す予測位置情報（２１２、２１４、２１６、２１８）を生成するステップ（４１６）と、
前記知覚情報（２２２、２２４）、および前記予測位置情報（２１２、２１４、２１６、２１８）を用いて、前記目標物（１０２）に向かって移動するように、前記少なくとも１つのプロセッサで前記アーム（１１０）を制御するステップ（４１８）とを含む、
ロボットシステム（１００）を制御する方法（４００）。
【請求項９】
前記目標物（１０２）に向かって移動するように前記アーム（１１０）を制御するステップ（４１８）が、前記制御速度に対応する第１の間隔に対して、前記予測位置情報（２１２、２１４、２１６、２１８）を用いることと、前記取得速度に対応する第２の間隔に対して、前記知覚情報（２２２、２２４）を用いることとを含む、請求項８に記載の方法（４００）。
【請求項１０】
少なくとも１つの第２の間隔の間に、一連の複数の第１の間隔にわたって前記アーム（１１０）を制御するステップ（４１８）をさらに含む、請求項９に記載の方法（４００）。
【請求項１１】
前記制御速度が、前記取得速度よりも少なくとも１０倍速い、請求項８に記載の方法（４００）。
【請求項１２】
前記制御速度が、１０〜１００Ｈｚである、請求項８に記載の方法（４００）。
【請求項１３】
前記アーム（１１０）の位置を予測するステップ（４１６）が、初期時刻における前記アーム（１１０）の以前の位置、前記初期時刻と現在時刻との間の、前記アーム（１１０）の速度に対応する速度情報、ならびに前記初期時刻と前記現在時刻との間に経過した所要時間を用いて、前記現在時刻における前記アーム（１１０）の予測位置（２１２、２１４、２１６、２１８）を決定することを含む、請求項８に記載の方法（４００）。
【請求項１４】
前記知覚情報（２２２、２２４）が、カメラ、ステレオカメラ、またはレーザセンサのうちの少なくとも１つを用いて取得される、請求項８に記載の方法（４００）。
【請求項１５】
ロボットアーム（１１０）がある制御速度でこれに向かって導かれる、目標物（１０２）を決定することと、
前記アーム（１１０）に取り付けられた知覚取得ユニット（１３０）を介して、前記制御速度よりも遅い速度、または前記制御速度と同期しない速度のうちの少なくとも１つの取得速度で、前記目標物（１０２）に対する前記アーム（１１０）の位置に対応する、知覚情報（２２２、２２４）を取得することと、
前記知覚情報（２２２、２２４）を用いて、前記アーム（１１０）の予測位置（２１２、２１４、２１６、２１８）を表す予測位置情報（２１２、２１４、２１６、２１８）を提供することと、
前記知覚情報（２２２、２２４）、および前記予測位置情報（２１２、２１４、２１６、２１８）を用いて、前記目標物（１０２）に向かって移動するように前記アーム（１１０）を制御することとを、
１つ以上のプロセッサ（１４０）に指示するように構成された、１つ以上のコンピュータ・ソフトウェア・モジュールを含む、有形かつ非一時的なコンピュータ可読媒体（１４８）。
【請求項１６】
前記コンピュータ可読媒体（１４８）が、前記制御速度に対応する第１の間隔に対して前記予測位置情報（２１２、２１４、２１６、２１８）を用い、かつ前記取得速度に対応する第２の間隔に対して前記知覚情報（２２２、２２４）を用いて、前記アーム（１１０）が前記目標物（１０２）に向かって移動するように制御することを、前記１つ以上のプロセッサ（１４０）に指示するようにさらに構成される、請求項１５に記載のコンピュータ可読媒体（１４８）。
【請求項１７】
前記コンピュータ可読媒体（１４８）が、少なくとも１つの第２の間隔の間に、一連の複数の第１の間隔にわたって前記アーム（１１０）を制御することを、前記１つ以上のプロセッサ（１４０）に指示するようにさらに構成される、請求項１６に記載のコンピュータ可読媒体（１４８）。
【請求項１８】
前記制御速度が、前記取得速度よりも少なくとも１０倍速い、請求項１５に記載のコンピュータ可読媒体（１４８）。
【請求項１９】
前記コンピュータ可読媒体（１４８）が、初期時刻における前記アーム（１１０）の以前の位置、前記初期時刻と現在時刻との間の、前記アーム（１１０）の速度に対応する速度情報、ならびに前記初期時刻と前記現在時刻との間に経過した所要時間を用いて、前記現在時刻における前記アーム（１１０）の予測位置（２１２、２１４、２１６、２１８）を決定することを、前記１つ以上のプロセッサ（１４０）に指示するようにさらに構成される、請求項１５に記載のコンピュータ可読媒体（１４８）。
【請求項２０】
前記制御速度が、１０〜１００Ｈｚである、請求項１５に記載のコンピュータ可読媒体（１４８）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関節運動可能なアームを目標物に対して移動させる、ロボットシステムおよび方法に関する。
【背景技術】
【０００２】
車両基地では、基地内の１つ以上の鉄道車両システムに対して様々な作業が行われ得る。例えば、鉄道車両が役目を果たす合間に、様々なシステム、例えば鉄道車両のユニットのブレーキシステムが、検査および／または試験される場合がある。一例として、ブレーキ空気抜き作業が、鉄道車両システムの１つ以上のユニットで行われる場合がある。車両基地では、比較的限定された領域に多数の鉄道車両がある場合があり、結果として多数の検査および／または保守作業が発生する。困難で危険な、かつ／あるいは日常的または反復的な作業は、ロボットが行ってもよい。
【０００３】
いくつかの用途において、例えば、ロボットが相互作用する物体の検出誤差が大きい（例えば、３〜５センチメートル）場合は、閉ループ制御が実施されてもよい。しかしながら、例えば、継続的なサーボ制御に用いられる情報取得の頻度がコントローラの頻度よりも低い用途では、継続的なサーボ制御を適用すると過剰制御の問題が生じる場合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１４／０７４２９１号明細書
【発明の概要】
【０００５】
一実施形態において、関節運動可能なアームと、知覚取得ユニットと、少なくとも１つのプロセッサとを備えるロボットシステム（例えば、目標物を操作するように構成されたロボットシステム）が提供される。関節運動可能なアームは、目標物に対して移動するように構成される。知覚取得ユニットは、アームに取り付けられ、ある取得速度で、目標物に対するアームの位置に対応する、知覚情報を取得するように構成される。少なくとも１つのプロセッサは、アームと知覚取得ユニットとに、動作可能に結合される。少なくとも１つのプロセッサは、知覚取得ユニットの取得速度よりも速い速度、またはこれと同期しない速度のうちの少なくとも１つの制御速度で、アームの動きを制御し、知覚情報および制御信号情報を用いて、アームの予測位置を表す予測位置情報を提供し、知覚情報および予測位置情報を用いてアームを制御するように構成される。
【０００６】
別の実施形態では、ロボットシステムを制御する方法が提供される。本方法は、ロボットアームが、ある制御速度でこれに向かって導かれる、目標物を決定するステップを含む。本方法は、制御速度よりも遅い速度、または制御速度と同期しない速度のうちの少なくとも１つの取得速度で、目標物に対するアームの位置に対応する知覚情報を（アームに取り付けられた知覚取得ユニットを介して）取得するステップをさらに含む。また、本方法は、知覚取得ユニットおよびアームに動作可能に結合された少なくとも１つのプロセッサで、知覚情報および制御信号情報を用いて、アームの予測位置を表す予測位置情報を生成するステップを含む。さらに、本方法は、少なくとも１つのプロセッサで、知覚情報および予測位置情報を用いて、目標物に向かって移動するようにアームを制御するステップを含む。
【０００７】
別の実施形態では、有形かつ非一時的なコンピュータ可読媒体が提供される。有形かつ非一時的なコンピュータ可読媒体は、１つ以上のコンピュータ・ソフトウェア・モジュールを含む。１つ以上のコンピュータ・ソフトウェア・モジュールは、ロボットアームがある制御速度でこれに向かって導かれる、目標物を決定することと、アームに取り付けられた知覚取得ユニットを介して、制御速度よりも遅い速度、または制御速度と同期しない速度のうちの少なくとも１つの取得速度で、目標物に対するアームの位置に対応する、知覚情報を取得することと、知覚情報および制御信号情報を用いて、アームの予測位置を表す予測位置情報を提供することと、知覚情報および予測位置情報を用いて、目標物に向かって移動するようにアームを制御することとを、１つ以上のプロセッサに指示するように構成される。
【図面の簡単な説明】
【０００８】
【図１】様々な実施形態による、ロボットシステムの概略ブロック図である。
【図２】様々な実施形態による、制御動作を図示するグラフである。
【図３】様々な実施形態による、ロボット制御システムの概略ブロック図である。
【図４】様々な実施形態による、ロボットを制御する方法のフローチャートである。
【発明を実施するための形態】
【０００９】
様々な実施形態は、添付の図面と併せて読むと、より良く理解されるであろう。図面は、様々な実施形態の機能ブロックの図を示しているが、機能ブロックは、必ずしもハードウェア回路間の分割を示すものではない。したがって、例えば、１つ以上の機能ブロック（例えば、プロセッサ、コントローラ、またはメモリ）が、１つのハードウェア（例えば、汎用信号プロセッサもしくはランダムアクセスメモリ、またはハードディスク）、あるいは複数のハードウェアに実装されてもよい。同様に、任意のプログラムが、例えば、独立プログラムであってもよく、オペレーティングシステムのサブルーチンとして組み込まれてもよく、インストール済みのソフトウェアパッケージの機能であってもよい。様々な実施形態は、図面に示す配置および手段に限定されないことを理解されたい。
【００１０】
本明細書で用いられる「システム」、「ユニット」、または「モジュール」という用語は、１つ以上の機能を実行するように動作する、ハードウェアおよび／またはソフトウェアシステムを含み得る。例えば、モジュール、ユニット、またはシステムは、コンピュータメモリ等の、有形かつ非一時的なコンピュータ可読記憶媒体に記憶された命令に基づいて動作を行う、コンピュータプロセッサ、コントローラその他の論理型の装置を含んでもよい。あるいは、モジュール、ユニット、またはシステムは、装置の配線論理に基づいて動作を行う、配線で接続された装置を含んでもよい。添付の図面に示すモジュールまたはユニットは、ソフトウェアまたは配線命令に基づいて動作するハードウェア、ハードウェアに動作を行うことを指示するソフトウェア、あるいはこれらの組み合わせを表してもよい。ハードウェアは、マイクロプロセッサ、プロセッサ、コントローラ等の１つ以上の論理型の装置を含む、かつ／またはこれに接続される、電子回路を含んでもよい。これらの装置は、前述の命令から本明細書で述べた動作を行うように、適切にプログラムまたは命令された、既製の装置であってもよい。これに加えて、またはこれに代えて、これらの装置の１つ以上が、このような動作を行うように、論理回路に配線で接続されてもよい。
【００１１】
本明細書で用いられるように、単数形で列挙され、「１つの（ａ）」または「１つの（ａｎ）」という語で始まる要素またはステップは、特に明記しない限り、この要素またはステップの複数形を除外しないものとして理解されるべきである。さらに、「一実施形態」に対する参照は、記載した特徴も組み込んだ追加の実施形態の存在を除外するものと解釈されることを意図してはいない。また、特に断りのない限り、特別な特性を有する要素または複数の要素を「備える（ｃｏｍｐｒｉｓｉｎｇ）」、または「有する（ｈａｖｉｎｇ）」実施形態は、その特性を有さない別のこのような要素を含んでいてもよい。
【００１２】
概して、様々な実施形態が、ロボットシステムを制御する方法およびシステムを提供する。例えば、様々な実施形態が、目標物に接近し、かつ／またはこれと相互作用する、ロボットの制御を提供する。いくつかの実施形態では、ロボットシステムは、ブレーキ空気抜き動作を行うレバー等の、レバーを把持するように制御される。様々な実施形態において、目標物の位置に対応する知覚情報は、制御速度よりも遅い速度で取得され、知覚情報を取得する間に目標物の位置を推定するために、予測運動モデルが用いられ、推定結果は、段階的な閉ループ制御機構に用いられて、知覚制御と運動制御とを同期させ、かつシステムの精度を向上させる。
【００１３】
様々な実施形態の少なくとも１つの技術的効果は、ロボットシステムの制御（例えば、継続的なサーボ制御）の信頼性、正確性、および／または精度を向上させることを含む。様々な実施形態の少なくとも１つの技術的効果は、制御速度が取得速度（例えば、カメラまたは３次元（３Ｄ）センサからの知覚情報の取得速度）よりも高いシステムに対する、ロボット制御の向上である。様々な実施形態の少なくとも１つの技術的効果は、制御速度が取得速度と同期しないシステムに対する、ロボット制御の向上である。様々な実施形態の少なくとも１つの技術的効果は、ロボットシステムの過剰制御に関する問題を排除または低減することである。様々な実施形態の少なくとも１つの技術効果は、システムの最高有効応答速度（例えば、作動モジュールの速度等の、制御システムの主なモジュールの最高速度）を維持することを含む。
【００１４】
図１は、様々な実施形態による、ロボットシステム１００の概略図である。ロボットシステム１００は、目標物１０２を操作（例えば、把持、接触、作動、あるいは係合のうちの１つ以上を）するように構成される。例えば、目標物１０２は、ロボットシステム１００が把持して作動させるように構成された、レバーであってもよい。いくつかの実施形態では、目標物１０２は、鉄道車両のブレーキ空気抜きレバーであってもよい。図１に見られるように、図示されているロボットシステム１００は、関節運動可能なアーム１１０と、マニピュレータユニット１２０と、知覚取得ユニット１３０と、処理ユニット１４０とを備える。通常、処理ユニット１４０（例えば、処理ユニット１４０の制御部）は、アーム１１０の動きを含む、ロボットシステム１００の動作を制御するように作用する。
【００１５】
図示されている実施形態では、アーム１１０は、関節運動可能であり、（例えば、処理ユニット１４０からの命令または制御信号に基づいて）目標物１０２に向かって動くように構成される。図示されているマニピュレータユニット１２０は、アーム１１０の一端に近接して取り付けられ、目標物１０２を把持するように構成される。図１に見られるように、図示されている実施形態の知覚取得ユニット１３０は、（例えば、マニピュレータユニット１２０が取り付けられるアーム１１０の一端に近接して）アームに取り付けられる。知覚取得ユニット１３０は、ある取得速度で知覚情報を取得するように構成される。図示されている実施形態では、知覚情報は、目標物１０２に対する、アーム１１０の位置に対応する。例えば、知覚情報は、マニピュレータユニット１２０（もしくはその一部）、またはマニピュレータユニット１２０が取り付けられるアームの一端と、目標物１０２（もしくはその一部）との位置の差を定義し、表し、あるいはこれに対応し得る。例えば、マニピュレータユニット１２０の把持部と、把持される目標物１０２の一部との間の距離は、知覚情報で表され得る。
【００１６】
処理ユニット１４０は、（例えば、アーム１１０の動きを制御するために）アーム１１０と、（例えば、知覚取得ユニット１３０から知覚情報を受信するために）知覚取得ユニット１３０とに動作可能に結合される。処理ユニット１４０は、知覚取得ユニット１３０の取得速度よりも速い速度、またはこれと同期しない速度のうちの少なくとも１つの制御速度で、アーム１１０の動きを制御するように構成される。例えば、制御速度は１０〜１００Ｈｚであってもよく、取得速度は１Ｈｚであってもよい。処理ユニット１４０は、予測位置情報を提供するために、知覚情報、および制御信号情報（例えば、知覚情報の取得、その他アーム１１０の以前の位置の決定に対応する時間の後に、アームに提供される制御命令の方向および／または速度を記述し、表し、またはこれに対応する情報）を用いて、アーム１１０の位置を予測するようにさらに構成される。図示されている実施形態の処理ユニット１４０は、知覚情報、および予測位置情報を用いて、アームを制御するようにさらに構成される。予測位置情報は、制御速度で決定されて、その後の制御命令を変更するために用いられてもよい。図示されている実施形態では、処理ユニット１４０は、知覚情報を取得する間のアーム１１０のフィードバックおよび制御のために予測位置情報を使用し、これにより、最新の知覚情報が使用可能でないときは、予測位置情報を使用し、最新の知覚情報が使用可能なときは、信頼性および正確性を高めるために知覚情報を使用する。本明細書で用いられるように、知覚情報を取得してから、その後の制御動作が実施されていないときは、その知覚情報は最新であると理解されてもよい。図１に見られるように、ロボットシステム１００は、基部または本体１０４を有し、ここからアーム１１０が延びている。様々な実施形態において、ロボットシステム１００（例えば、本体１０４）は、移動するために、推進システム（例えば、モータ）と併せて、車輪、軌道等を有してもよい。
【００１７】
図示されているアーム１１０は、関節１１６によって結合された、第１の部分１１２と、第２の部分１１４とを有する。第１の部分１１２は、本体１０４から延びて、本体１０４に対して関節運動可能であり、第１の部分１１２と第２の部分１１４とは、互いに対して関節運動可能である。アーム１１０（例えば、第１の部分１１２および第２の部分１１４）の運動は、処理ユニット１４０が提供する制御信号を受信する、関連するモータを介して作動されてもよい。なお、図示されている実施形態では、図を簡単にするために２つの部分のみが示されているが、様々な実施形態において、より多くの部分および関節を有するアームが使用されてもよい。図示されているアーム１１０は、処理ユニット１４０にフィードバックを提供するために、アーム１１０（またはその部分）の位置および／または運動を感知または検出するように構成されたセンサ１１８を、関節にさらに備える。
【００１８】
図示されている実施形態では、マニピュレータユニット１２０は、目標物１０２を把持するように構成される。マニピュレータユニット１２０は、目標物１０２との接触を検出し、かつ／または目標物１０２を把持している間にフィードバックを提供する、１つ以上のセンサを備えてもよい。図１に示すように、図示されているマニピュレータユニット１２０は、アーム１１０の一端に取り付けられる。図示されているマニピュレータユニット１２０は、アイテムを把持するように構成されるが、様々な実施形態において、マニピュレータユニット１２０によって追加の作業、またはこれに替わる作業が行われてもよい。例えば、図示されている実施形態では、アーム１１０、およびマニピュレータユニット１２０は、レバー（例えば、鉄道車両のブレーキ空気抜きのレバー）を把持して作動させるように構成されるが、他の実施形態では、アーム１１０、およびマニピュレータユニット１２０は、これに加えて、またはこれに代えて、検査または保守作業等の、他の作業を行うように構成されてもよい。様々な実施形態において、マニピュレータユニット１２０は、１つ以上の把持部、保持部、カメラその他の装置の位置を制御するために、１つ以上のアーム、ヒンジ、リンク機構その他の機構を備えてもよい。様々な実施形態において、マニピュレータユニット１２０は、処理ユニット１４０が提供する制御信号またはコマンドに基づいて機構を作動させるために、１つ以上のモータ、歯車、シリンダ等を備えてもよい。マニピュレータユニット１２０は、油圧、電気その他で作動されてもよい。例えば、マニピュレータユニット１２０は、ブレーキを解放するため、スイッチを作動させるため、ラッチまたは締め具を固定（もしくは解放）するため、鉄道車両の保守および検査に使用する部品または工具を位置決めして保持するため、ロボットシステム１００に移送される部品または工具を積み込む（もしくは工具または部品をロボットシステム１００から荷下ろしする）等のために、アイテムを把持して操作するように構成されてもよい。これに代えて、あるいはこれに加えて、マニピュレータユニット１２０は、情報収集に用いられる装置を配置するために使用されてもよい。例えば、マニピュレータユニット１２０は、届きにくい領域（例えば、鉄道車両の底面）に検査用カメラを配置することができ、カメラからの情報は、検査または診断の目的に用いられる。
【００１９】
知覚取得ユニット１３０は、アーム１１０に取り付けられ、ある取得速度で、目標物１０２に対するアーム１１０の位置に対応する、知覚情報を取得するように構成される。取得速度は、異なる組の撮像情報（例えば、画像、フレーム）が取得され得る速度と理解されてもよい。例えば、知覚取得ユニット１３０は、１秒毎に１フレーム、すなわち１Ｈｚの速度で、画像または撮像情報を取得し得る。図示されている実施形態では、知覚取得ユニット１３０は、マニピュレータユニット１２０が（例えば「手首」の位置に）結合されるアーム１１０の端部に近接して、アーム１１０に取り付けられる。図示されている知覚取得ユニット１３０は、アーム１１０の位置に関連付けられた、目標物１０２の位置に関する知覚情報（例えば、把持される目標物１０２の一部から、アーム１１０に取り付けられたマニピュレータユニット１２０までの距離）を取得する。様々な実施形態において、知覚取得ユニット１３０は、１つ以上のカメラ、ステレオカメラ、またはレーザセンサを備えてもよい。
【００２０】
図示されている処理ユニット１４０は、アーム１１０と知覚取得ユニット１３０とに、動作可能に結合される。例えば、処理ユニット１４０は、アーム１１０に制御信号を提供し、かつアーム１１０からフィードバック信号を受信してもよく、また知覚取得ユニット１３０から知覚情報を受信してもよい。図示されている実施形態では、処理ユニット１４０は、ロボットシステム１００に搭載される（例えば、基部または本体１０４に搭載される）が、いくつかの実施形態では、処理ユニット１４０、またはその一部は、外部に配置されてもよい。例えば、ロボットシステム１００の全てまたは一部は、リモートコントローラによって無線で制御されてもよい。また、処理ユニット１４０は、例えば、実行する作業を特定し、または記述するために、オペレータがロボットシステム１００に情報を提供できるように構成された入力ユニット（図示せず）に、動作可能に結合されてもよい。本明細書で用いられる制御速度は、例えば、異なる制御信号またはコマンドが、決定、提供、および実行され得る速度と理解されてもよい。
【００２１】
図示されている処理ユニット１４０は、予測位置情報を提供するために、知覚情報および制御信号情報を用いて、アーム１１０の位置を予測または推定するようにさらに構成される。いくつかの実施形態では、所与の（例えば現在の）時刻におけるアーム１１０の予測または推定位置は、初期時刻におけるアームの以前の位置、初期時刻と現在時刻との間のアームの速度に対応する速度情報、ならびに初期時刻と現在時刻との間に経過した所要時間に基づいて決定されてもよい。例えば、初期時刻には、アーム１１０（および／またはマニピュレータユニット１２０）は、（例えば、既知の開始位置に基づいて、あるいは知覚取得ユニット１３０を介して取得された知覚情報を使用することによって、）目標物１０２に対して既知の位置にあってもよい。アーム１１０は、アーム１１０を動かす制御信号を提供されてもよい。制御信号は、例えば、速度の大きさおよび方向の両方の速度情報（例えば、指定した方向に指定した速度で移動するように、アームの１つの部分を指定するコマンド）を指定し得る。いくつかの実施形態では、速度情報は、行われる動きの加速度（すなわち経時的な速度の変化率）をさらに含む。
【００２２】
速度情報と、経過した所要時間とに基づいて、処理ユニット１４０は、速度情報に基づいて最初に決定した位置を変更することによって、アーム１１０の位置を予測し得る。例えば、１次元運動の１つの例示的なシナリオでは、マニピュレータユニット１２０は、初期時刻０において、ｘ＝０の位置から開始する（ここでｘは、１つの方向または軸線に沿った位置を表す）。制御信号がアーム１１０に提供されて、マニピュレータユニットを、１インチ毎秒で正のｘ方向に作動させる。１秒後の時点で、処理ユニット１４０は、推定位置または予測位置を、ｘ＝１インチ、すなわち約２．５センチメートルになるように決定し得る（あるいは初期位置０に、速度（１インチ／秒、すなわち約２．５センチメートル／秒）、または経過時間（１秒）を加算する）。実際には、他の増分および速度が用いられてもよく、加速度が使用されて一定の割合を占めてもよく、動きが１つ以上の別の次元にあってもよい。図示されている処理ユニット１４０は、知覚情報、および予測位置情報を用いて、アーム１１０を制御するようにさらに構成される。例えば、アーム１１０は、作業を実行している様々な時点における知覚情報を用いる一方で、作業を実行している他の時点（例えば、予測位置情報が使用可能であるが、最新の、または信頼性のある知覚情報が使用できない時点）における予測位置情報を用いて制御されてもよい。したがって、様々な実施形態により、過剰制御の問題を回避または最小限にしながら、所与の取得速度で使用可能な他の方法よりも、制御または調節の速度が速くなる。
【００２３】
様々な実施形態において、処理ユニット１４０は、制御速度に対応する第１の間隔の予測位置情報を用いてアームを制御するように、かつ取得速度に対応する第２の間隔の知覚情報を用いてアームを制御するように構成される。例えば、所与の間隔は、対応する速度の逆数であってもよい。なお、間隔に対してある種の情報を用いて制御することは、その種の情報が必ずしも全ての間隔にわたって用いられることを意味しない。例えば、間隔は、特定の種類の情報に基づいた制御動作が変更され得る、経過した時間と理解されてもよい。例えば、予測位置情報は、最新の知覚情報が使用できない、取得間隔の一部の間に用いられてもよい。様々な実施形態において、知覚情報の使用は、予測情報の使用よりも優先され得る。いくつかの実施形態では、処理ユニット１４０は、最新の知覚情報が使用可能でないときにのみ、予測または推定位置情報を決定し得る。
【００２４】
図２は、経時的なアーム（例えば、その一部）の位置を表す、グラフ２００を示す。グラフ２００は、図を簡単にするために、１つの位置の次元のみを表すものである。なお、様々な実施形態において、２次元または３次元の動きが使用され、知覚または検出され、かつ予測されてもよい。グラフ２００は、予測位置２１２、２１４、２１６、および２１８を表し、それぞれが制御間隔２１０で直前の位置（知覚位置または予測位置のいずれか）から離間されており、同様に、知覚位置２２２および２２４は、知覚間隔２２０で離間されている。制御速度が知覚速度よりも速いと、制御間隔２１０は、知覚間隔２２０よりも短い。図２に示す例示的なシナリオでは、アームは所望の位置２０２に向かって動くように制御される。所望の位置は正方形で示され、知覚情報によって特定された位置は円で示され、制御信号情報を用いて推定または予測された位置は、Ｘで示されている。
【００２５】
例示的なシナリオでは、アームは、知覚取得ユニットからの情報を用いて決定された、初期時刻Ｔ１の位置２２２から始動する。位置２２２が、所望の位置２０２よりも下にあると、アームを正方向かつ所望の位置２０２に向かって作動させるために、制御信号がアームに提供される。アームが動き始めると、先に知覚された位置２２２は、最新ではなくなる。制御速度は取得速度よりも速いので、制御命令は、更新された取得情報が使用可能になる前に、提供または変更され得る。
【００２６】
したがって、例示的なシナリオでは、予測位置２１２は、時刻Ｔ２で決定される。予測位置２１２は、制御信号が要求した速度によって変更された位置２２２に基づいており、制御信号は、Ｔ１とＴ２との間の経過時間にわたって、位置２２２に基づいて提供される。位置２１２が、所望の位置２０２よりも下にあると、アームを正方向かつ所望の位置２０２に向かって作動させるために、制御信号が次にアームに提供される。
【００２７】
時刻Ｔ３では、最新の取得情報がまだ使用可能になっていないので、時刻Ｔ３では予測位置２１４が決定されて、時刻Ｔ３とＴ４との間のアームの制御に用いられる。予測位置２１４は、制御信号が要求した速度によって変更された位置２１２に基づいており、制御信号は、Ｔ２とＴ３との間の経過時間にわたって、位置２１２に基づいて提供される。位置２１４が、所望の位置２０２よりもまだ下にあると、アームを正方向かつ所望の位置２０２に向かって作動させるために、別の制御信号が次にアームに提供される。
【００２８】
また、例示的なシナリオの時刻Ｔ４でも、最新の取得情報は使用可能ではない。したがって、時刻Ｔ４では予測位置２１６が決定されて、時刻Ｔ４とＴ５との間のアームの制御に用いられる。予測位置２１６は、制御信号が要求した速度によって変更された（Ｔ３の）予測位置２１４に基づいており、制御信号は、Ｔ３とＴ４との間の経過時間にわたって、位置２１４に基づいて提供される。位置２１６が、所望の位置２０２よりもまだ下にあると、アームを正方向かつ所望の位置２０２に向かって作動させるために、別の制御信号が次にアームに提供される。
【００２９】
時刻Ｔ５では、最新の取得情報が再び使用可能になり、位置２２４の決定に用いられる。位置２２４が、所望の位置２０２よりもまだ下にあると、時刻Ｔ５とＴ６との間で、アームを正方向かつ所望の位置２０２に向かって作動させるために、制御信号が再度アームに提供される。アームが動き始めると、先に知覚された位置２２４は、最新ではなくなる。したがって、予測位置２１８が、時刻Ｔ６で決定される。予測位置２１８は、制御信号が要求した速度によって変更された位置２２４に基づいており、制御信号は、Ｔ５とＴ６との間の経過時間にわたって、位置２２４に基づいて提供される。位置２１８が、所望の位置２０２よりも下にあると、アームを正方向かつ所望の位置２０２に向かって作動させるために、別の制御信号が次にアームに提供される。このプロセスは、アームが所望の位置２０２にくるまで継続され得る。
【００３０】
なお、前述した図２の例は、例示する目的で、例として提供される。様々な実施形態において、取得サイクル同士の間に、異なる数の予測サイクルが発生する場合がある（例えば、図示されている実施形態では、制御速度は知覚または取得速度よりも４倍速いが、他の実施形態では、制御速度は特に、知覚または取得速度よりも２倍、５倍、または１０倍速い場合がある）。さらに、図２の例が、経時的な１つの位置の次元の観点から図示されている一方で、他の実施形態は、別の次元（例えば、３次元）の動きを制御し得ることに留意されたい。前述の考察で示されているように、最新の、または信頼できる知覚情報が使用できないときは、様々な実施形態が、位置の推定として予測位置を使用し、知覚情報が使用可能になったときは、知覚情報の正確性および／または信頼性の恩恵を受ける。
【００３１】
したがって、様々な実施形態において、処理ユニット１４０は、少なくとも１つの第２の間隔（例えば、知覚間隔２２０）の間に、一連の複数の第１の間隔（例えば、制御間隔２１０）にわたって、アームを制御するように構成される。図２に示す実施形態では、制御速度（または予測速度）は、知覚速度（または取得速度）よりも４倍速く、そのため３つの予測位置が決定または推定されて、新たな、更新された、または最新の知覚位置が使用可能になる前に、アームを制御するために用いられる。また、様々な実施形態で、他の速度、または関連する間隔の長さが使用されてもよいことに留意されたい。
【００３２】
図１に戻ると、図示されている処理ユニット１４０は、制御モジュール１４２と、知覚モジュール１４４と、予測モジュール１４６と、メモリ１４８とを含む。なお、図１に示す特定のユニットまたはモジュールは、例として示されており、様々な実施形態で、処理ユニット１４０のユニットまたはサブユニットの他の配置が使用されてもよく、代替的な実施形態で、モジュールが他の種類、数、または組み合わせで使用されてもよく、かつ／あるいは本明細書で述べるモジュールの様々な態様が、これに加えて、またはこれに代えて、異なるモジュールに関連して使用されてもよい。通常、処理ユニット１４０の様々な態様は、本明細書で述べる方法、ステップ、またはプロセスの１つ以上の態様を実行するために、個々に、または他の態様と協同して作用する。処理ユニット１４０は、本明細書で述べる１つ以上の作業、機能、またはステップを実行するように構成された、処理回路を含んでもよい。なお、本明細書で用いる「処理ユニット」は、必ずしも単一のプロセッサまたはコンピュータに限定されることを意図していない。例えば、処理ユニット１４０は、複数のプロセッサ、および／またはコンピュータを含んでもよく、これらは共通のハウジングまたはユニットに統合されてもよく、様々なユニットまたはハウジングに分配されてもよい。
【００３３】
図示されている制御モジュール１４２は、目標物１０２に対するアーム１１０の位置に基づいて（例えば、知覚情報が使用可能なときに、アーム１１０と目標物１０２との間で知覚した距離と、知覚情報が使用できないときに予測した差との相違に基づいて）、アーム１１０の動きを制御するために、知覚モジュール１４４、および予測モジュール１４６からの入力を用いる。制御モジュール１４２は、マニピュレータユニット１２０が目標物１０２に到達すると、アーム１１０に（例えば、アーム１１０の１つ以上の部分に関連付けた１つ以上のモータ、または他のアクチュエータに）制御信号を提供するように、またマニピュレータユニット１２０を制御するように構成される。さらに、図示されている制御モジュール１４２は、アーム１１０に提供される制御信号を記述する、またはこれに対応する、制御信号情報を予測モジュール１４６にさらに提供し、これは、知覚情報が使用できないときに、予測モジュール１４６が位置を推定するのに使用される。
【００３４】
図示されている知覚モジュール１４４は、知覚取得ユニット１３０から取得情報を取得するように、かつアーム１１０の位置（例えば、アーム１１０の一部、またはこれに関連する部品、例えば目標物１０２に対するマニピュレータユニット１２０の位置）を決定するように構成される。図示されている実施形態における知覚モジュール１４４は、知覚取得ユニット１３０からの情報を用いて、知覚モジュール１４４によって決定されたアーム１１０の位置に対応する情報を、制御モジュールに提供する。
【００３５】
図示されている予測モジュール１４６は、予測位置情報を提供するために、知覚モジュール１４４（および／または知覚取得ユニット１３０）からの知覚情報、および制御モジュール１４２からの制御信号情報を用いて、アーム１１０の位置を予測するように構成される。通常、様々な実施形態において、予測モジュール１４６は、その後の位置を予測するために、以前の位置と、対応する制御信号情報（例えば、制御信号を実施してからの経過時間に対する、制御信号から生じたアームの速度および方向）とを用いる。例えば、予測モジュール１４６は、以前に決定した位置（知覚情報を用いて、または以前の予測から決定された）の後に提供された制御信号（例えば、速度の大きさおよび方向）に対応する、アーム１１０（またはその部分）の速度に対応する分だけ、以前に決定した位置を変更してもよい。様々な実施形態において、加速度または速度変化が存在して、一定の割合を占める場合がある。
【００３６】
メモリ１４８は、１つ以上の有形かつ非一時的なコンピュータ可読記憶媒体を含んでもよい。メモリ１４８は、例えば、行われる作業、目標物、位置を予測するために用いられる制御情報（例えば、最新の、および／または直前に使用した制御信号、かつ／あるいはこれに対応する動き）等に対応する、情報を記憶するために使用されてもよい。さらに、本明細書で述べるプロセスフローおよび／またはフローチャート（あるいはその態様）は、メモリ１４８に記憶された、ロボットシステム１００の動作の方向についての１組以上の命令を表し得る。
【００３７】
なお、ロボットシステム１００は、図１には明確に図示されていない、別の態様を備えてもよい。例えば、ロボットシステム１００は、異なる位置間でロボットシステム１００を動かすように構成された推進ユニット、ならびに／あるいはロボットシステム１００が、特に、遠隔ユーザ、中央スケジューリング、もしくは発信システムその他のロボットシステムと通信できるように構成された、通信ユニットをさらに備えてもよい。
【００３８】
図３は、様々な実施形態による、ロボット制御システム３００の概略ブロック図である。図３に示すように、図示されているロボット制御システム３００は、環境３５０で使用するために構成される。環境３５０は、例えば、ロボット制御システム３００によって制御されるロボットシステムが行う、１つ以上の作業に対応する、１つ以上の目標物または位置を含んでもよい。図示されている実施形態のロボット制御システム３００は、ユーザインターフェース３０２と、作業計画ブロック３０４と、通信ブロック３０６と、運動計画ブロック３０８と、目標位置推定ブロック３１０と、位置コントローラ３１２と、速度コントローラ３１４と、ロボットセンサ３１６と、動的計画ブロック３１８と、作動ブロック３１９と、ロボットマニピュレータ３２０と、知覚器ブロック３２２と、環境モデリングブロック３２４とを備える。ロボット制御システム３００の態様は、図１に示すロボットシステム１００に使用されてもよい（例えば、制御システム３００の様々なブロックは、処理ユニット１４０の部分として、または処理ユニット１４０に関連して使用されてもよい）。通常、ロボット制御システム３００のコア部品は、計画モジュールおよびコントローラである。ロボット制御システム３００を１つ以上の他のシステムと通信可能に結合する、ユーザインターフェース３０２、または通信ブロック３０６のいずれかを介して作業を受信すると、ロボット制御システム３００は、指定された作業を実行するために、作業の基本要素（ｔａｓｋ  ｐｒｉｍｉｔｉｖｅ）をスケジューリングすることによって作業を計画し得る。
【００３９】
例えば、スケジュールされた作業の基本要素はそれぞれ、運動軌跡を生成するために、運動計画ブロック３０８を作動させることができ、これは、全ての経由地の位置、速度、および加速度の値の記述を含んでもよく、環境モデリングの結果を組み込んでもよい。様々な実施形態において、望ましい動的運動で全ての経由地を通ってロボットマニピュレータ３２０を駆動させるために、二重の閉ループ制御システムが用いられる。二重の閉ループ制御システムは、位置ループと、速度ループを含んでもよい。図示されている実施形態の位置コントローラ３１２は、閉ループに基づいており、制御されるロボット、および環境（作業スペース）の両方から取得したフィードバック情報を有する。図示されている速度コントローラ３１４もまた、閉ループに基づいているが、環境知覚器から情報を受信しない。その意味では、フィードバック情報が作業スペースから取得されないことにより、速度コントローラ３１４は、「開ループ」システムとみなされてもよい。計算された運動情報は、ロボットマニピュレータを動かすための関節トルクを生成するために、動的計画ブロック３１８に送信される。例えば、作動ブロック３１９が、動的計画ブロック３１８の計算結果に基づいて、ロボットマニピュレータ３２０に必要な入力を提供してもよい。より高水準の計画を１回で行うために、環境情報が計画モジュールに送信される。また、環境情報を用いて、作業計画ブロック３０４で、作業の検証が行われてもよい。次に、ロボット制御システム３００のいくつかのブロックまたは態様に関連する、様々な例示的なハードウェアおよび／またはアルゴリズムについて説明する。
【００４０】
ロボットマニピュレータ３２０は、１つ以上の関節運動可能なアームを備えてもよい。例えば、いくつかの実施形態では、ロボットマニピュレータは、Ｙａｓｋａｗａ  Ｍｏｔｏｍａｎ  ＲｏｂｏｔｉｃｓのＳＩＡ２０Ｆ等のロボットを使用してもよい。ＳＩＡ２０Ｆは、組み立て、検査、機械の手入れ、およびハンドリング等の動作を自動化するための、７軸単一アームのロボットである。例えば、ブレーキ空気抜きの用途では、ロボットマニピュレータ３２０を移動操作用の移動体に取り付けて、１５キログラムの積載質量が処理され得る。ブレーキ空気抜き作業を行うためには、反復的な誤差が＋／―２ミリメートル未満で、少なくとも８００ミリメートルの到達範囲が必要とされる場合がある。ＳＩＡ２０Ｆは、７自由度、指定積載質量２０キログラム、繰り返し精度＋／―０．１ミリメートルで最大リーチ９１０ミリメートル、そして比較的軽量な１００キログラムであるため、そのような用途に使用され得る。なお、様々な実施形態で、追加の、または代替的なマニピュレータが使用されてもよい。
【００４１】
ロボットセンサ３１６は、ロボットアームの（複数の）関節に配置された、１つ以上のエンコーダを含んでもよい。いくつかの実施形態では、回転／直線位置をアナログまたはデジタルの電気信号に変換するために、回転／直線エンコーダが用いられてもよい。エンコーダの値および順運動学を用いて、位置、速度、および加速度を含む、ロボットマニピュレータ３２０の最新の運動学的な状態が計算され得る。いくつかの実施形態では、蓄積したドリフト、または関連する誤差の低減に役立てるために、アブソリュートエンコーダが使用されてもよい。
【００４２】
いくつかの実施形態では、力およびトルクを検知するためのＦＳＲ（Ｆｏｒｃｅ  Ｓｅｎｓｉｎｇ  Ｒｅｓｉｓｔｏｒ）が使用されてもよい。ＦＳＲは、力または圧力が印加されると抵抗が変化して、対応する電気信号が生成される材料を含んでもよい。いくつかの実施形態では、もう１つのＡＴＩ  Ｇａｍｍａ  Ｆ／Ｔセンサが使用されてもよい。ＡＴＩ  Ｇａｍｍａ  Ｆ／Ｔセンサは、高精度の６軸センサであり、ブレーキ空気抜きの用途の要件を満たす範囲の、測定された力およびトルクを有する。例えば、ＡＴＩ  Ｇａｍｍａ  Ｆ／Ｔセンサは、力の最大が１３０ニュートン（Ｎ）で、ＸおよびＹ方向に１／４０Ｎの分解能を有し、力の最大が４００Ｎで、Ｚ方向に１／２０Ｎの分解能を有し、Ｘ、Ｙ、およびＺ方向の最大トルクが１０Ｎメートルで、１／８００Ｎメートルの分解能を有する。
【００４３】
知覚器ブロック３２２は、通常、いくつかの点において、本明細書で述べる知覚取得ユニット１３０とほぼ類似していてもよい。知覚器ブロック３２２は、例えば、距離値を返す３次元距離センサを備えてもよく、これは、センサと、環境３５０（例えば、１つ以上の目標物またはその部分）で検知された１つ以上の点との間の距離を測定する。これに代えて、またはこれに加えて、知覚器ブロック３２２は、環境３５０で目標物（例えば、ブレーキレバー）を検出し、目標物の６次元姿勢を推定する、ステレオカメラを含んでもよい。
【００４４】
様々な実施形態において、誤差を許容するために末端効果器が使用されてもよい。例えば、誤差は運動制御、および／または物体検出から生じる場合がある。いくつかの実施形態において、末端効果器は、全ての軸線において、５センチメートル以上の誤差を許容するように構成されてもよい。
【００４５】
図示されている作業計画ブロック３０４は、（例えば、ユーザインターフェース３０２、および／または通信ブロック３０６から）入力として作業を受信するように、かつ出力として作業の基本要素を提供するように構成される。本明細書で用いられる作業計画は、ロボットが行う作業の１つのシーケンス、または複数の並行したシーケンスのスケジューリングを指し得る。作業計画ブロック３０４は、作業誤差の拘束付き最小化法（ｃｏｎｓｔｒａｉｎｅｄ  ｍｉｎｉｍｉｚａｔｉｏｎ）として、制御の問題を公式化するために、最新の制御アーキテクチャ、例えば、作業に基づくリアクティブ制御（Ｔａｓｋ−Ｂａｓｅｄ  Ｒｅａｃｔｉｖｅ  Ｃｏｎｔｒｏｌ、ＴＢＲＣ）を使用してもよく、かつ様々な実施形態で提供される、プラットフォームの冗長性を効果的に活用してもよい。なお、作業の目的が、制御アルゴリズムの最終状態に達することと考えられる場合は、いくつかの作業目標を達成する目的で作業を計画するように、逆ＴＢＲＣ、およびコスト最適化が使用されてもよい。いくつかの実施形態では、一般的なブレーキ空気抜き作業の計画は、いくつかの要件を伴う、一般的な単一作業に基づく計画問題である。
【００４６】
環境モデリングブロック３２４は、点群に基づく技術を使用してもよい。本明細書で用いられる環境モデリングは、ロボットの作業スペースを記述することを指す。異なる作業の様々な要件に応じて、異なるモデリング方法が使用されてもよい。通常、環境モデリングは、行う作業に関連する方法で、ロボットの環境理解を補助するために行われる。様々な実施形態における環境モデリングブロック３２４は、入力として感覚的知覚情報を受信し、出力として目標位置を提供する。環境的な制限により、様々な実施形態の知覚態様は、高精度であることが通常は望ましい。目標点の位置を見つけるために、点群に基づく方法が使用されてもよく、その一方で目標物を区分するために、他の方法が使用されてもよい。
【００４７】
様々な実施形態における、（例えば、運動計画ブロック３０８によって行われる）運動軌跡計画は、人工ポテンシャル場を使用してもよい。運動軌跡計画は、ロボットが１つ以上の作業を行う作業スペースで、円滑で衝突のない運動軌跡を決定するために使用されてもよい。生成された運動軌跡は、例えば、位置、速度、および加速度を含む時間情報と運動情報とを有する、経由地のシーケンスとして表されてもよい。運動計画ブロック３０８は、入力として、（複数の）目標位置、および（複数の）障害物位置を受信し、出力として次のタイミングステップの所望の位置を提供してもよい。いくつかの実施形態では、ロボットの構成は、目標への誘引と、障害物からの反発とを組み合わせる、人工ポテンシャル場における指定として扱われてもよい。結果として生じた軌跡は、経路として出力される。この手法の利点は、少ない計算で軌跡が生成され得ることである。しかしながら、軌跡は潜在的に、ポテンシャル場の極小値にとらわれて、経路を見つけるのに失敗する場合があることに留意されたい。なお、閉ループの手法では、目標位置および障害物は、継続的に更新される。
【００４８】
目標位置推定ブロック３１０は、様々な実施形態において、拡張カルマンフィルタを使用してもよい。なお、様々な実施形態における知覚情報の取得頻度は、制御頻度よりもずっと低いため、ロボットの枠台に対する目標位置は、様々な実施形態において、運動モデルを用いて推定され得る。次に、各ループにおいて、推定された目標位置は、制御アルゴリズム用の所望の基準入力として用いられてもよい。目標位置推定ブロック３１０は、入力として、マニピュレータの運動と、知覚器ブロック３２２からの、最終検出結果の推定目標位置とを受信して、推定目標位置を出力してもよい。カルマンフィルタは、ノイズ（不規則変動）その他の誤差を含む、経時的に観測された一連の測定値を用いて、未知の変数の推定値を生成し、これは、単一の測定値に基づくよりも正確になる傾向がある。カルマンフィルタは、ノイズの多い入力データのストリームで再帰的に動作して、基礎となるシステム状態の、統計的に最適な推定値を生成し得る。
【００４９】
所望の運動軌跡が生成されると、図示されている位置コントローラ３１２は、経由地の所望の位置と実際の位置との間の誤差を最小化するために、制御アルゴリズムを用いる。位置コントローラ３１２は、次のタイミングステップで、入力として所望の位置を受信し、出力として駆動ステップを提供する。様々な実施形態において、比例―積分―微分（ＰＩＤ）コントローラが使用されてもよい。ＰＩＤコントローラは、工業用制御システムに広く用いられる、制御ループフィードバック機構である。ＰＩＤコントローラは、誤差値を、測定されたプロセス変数と、所望の設定点との差として計算する。このコントローラは、操作変数を使用してプロセスを調節することによって、誤差の最小化を試みる。
【００５０】
いくつかの実施形態において、図示されている速度コントローラ３１４は、２つの部分を有してもよい。第１の部分は、ユーザによって開発される外側ループであり、第２の部分は、搭載された速度コントローラである。ユーザが開発した速度コントローラは、実際の位置と、更新された目標位置とを入力として誤差を計算し、次に、搭載された速度コントローラ用の補償信号を生成し、これによりロボットはその速度を制御できるようになり、計算された誤差が減少する。
【００５１】
第１の部分への入力は、所望の速度であってもよく、第１の部分からの出力は、速度補償信号であってもよい。第２の部分への入力は、速度補償信号であってもよく、第２の部分からの出力は、速度駆動信号であってもよい。
【００５２】
図示されている実施形態では、動的計画ブロック３１８は、ハイブリッドな運動および力の計画を使用することができる。通常、動的計画は、ロボットの力学モデルを用いて、運動を結合部のトルクに変換することを含む。動的計画を使用することにより、ロボットマニピュレータのより堅牢で、正確で、柔軟な制御が提供される。現在、多くの市販のロボットが既に動的制御を有している。図示されている動的計画ブロック３１８は、入力として、位置、速度、および加速度を有する所望の経由地を受信し、出力として、ロボットアームの関節に供給されるトルクを供給し得る。ハイブリッドな運動および力の計画の構成要素において、力は、関節スペースおよび作業スペースで、個別に定義および処理される。この手法では、作業スペースおよび関節スペースの両方で、所望の運動および力を計算に入れて、運動と力とを同時に計画する。計画の結果は、作業スペースおよび関節スペースの両方で、最適化された結果を提供するのに役立つ。
【００５３】
通常、通信ブロック３０６は、１つ以上の通信プラットフォームおよび／またはプロトコルを介して、他の構成要素から情報を受信し、他の構成要素に状態情報を送信するように構成される。いくつかの実施形態において、移動マニピュレーションを実現し、かつ堅牢で安定したデータ伝送の保証を補助するように、伝送制御プロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ、ＴＣＰ）に基づく無線通信が実施されてもよい。
【００５４】
様々な実施形態において、ユーザインターフェース３０２は、１人以上のユーザに提供される、グラフィカルユーザインターフェースを提供してもよい。通常、ユーザインターフェースは、ロボットの状態情報を観測するため、かつ／あるいは様々な制御またはコマンドを用いて、ロボットを制御するための方法をユーザに提供するために使用されてもよい。例えば、ブレーキ空気抜き作業では、人間のユーザがロボットの状態を観測し、ボタン（その他の入力機能）を用いてロボットを制御するための視覚的な方法を提供するために、グラフィカルユーザインターフェース（ＧＵＩ）が用いられてもよい。
【００５５】
図４は、ブレーキ空気抜き作業に用いるロボット等の、ロボットを制御する方法４００のフローチャートを提供する。様々な実施形態において、方法４００は、例えば、本明細書で述べる様々な実施形態（例えば、システムおよび／または方法）の構造、または態様を使用してもよい。様々な実施形態において、いくつかのステップが省略または追加されてもよく、いくつかのステップが組み合わされてもよく、いくつかのステップが同時に行われてもよく、いくつかのステップが一斉に行われてもよく、いくつかのステップが複数のステップに分割されてもよく、いくつかのステップが異なる順序で行われてもよく、あるいはいくつかのステップ、または一連のステップが、反復的な方法で再実行されてもよい。様々な実施形態において、方法４００の部分、態様、および／または変形例は、本明細書で述べる動作を行うことをハードウェアに指示するために、１つ以上のアルゴリズムとして使用できる場合がある。
【００５６】
ステップ４０２で、作業が決定される。例えば、作業は、ユーザインターフェースで入力されるか、あるいはロボット（例えば、関節運動可能なアームを有するロボット）を制御するシステムによって取得されてもよい。
【００５７】
例えば、作業は、ロボットがレバーを把持して作動させる、ブレーキ空気抜き作業であってもよい。作業決定の一部として、あるいは作業決定の後で、１つ以上の目標物（例えば、作動されるレバー、またはその一部）が決定される。図示されている実施形態では、ステップ４０４で、ロボットアームがこれに向かって導かれる、目標物が決定される。ロボットアームは、目標物に向かって導かれるときに、ある制御速度で制御される。目標物は、例えば、ブレーキ空気抜き作業の一部として把持され作動される、レバーであってもよい。
【００５８】
ステップ４０６で、作業が計画される。例えば、作業を達成するために、運動ならびに／あるいは力（例えば、作業実行中の様々な点における、１つ以上の関節の位置、速度、加速度、および／またはトルク）が計画される。本明細書で述べるように、様々な実施形態において、ハイブリッドな運動および力の計画が使用されてもよく、位置、速度、および加速度を有する所望の経由地に基づいて、ロボットアームの関節にトルクを供給する。
【００５９】
ステップ４０８で、知覚情報が取得される。また、取得した知覚情報に基づいて、位置が決定されてもよい。様々な実施形態で、知覚情報は、目標物に対する、アームの位置に対応する。知覚情報は、アームに取り付けられた知覚取得ユニットを介して取得されてもよい。知覚取得ユニットは、例えば、１つ以上のカメラ、ステレオカメラ、および／または３次元センサを備えてもよい。図示されている実施形態では、知覚情報は、ロボットアームが制御される制御速度よりも低い取得速度で取得される。
【００６０】
ステップ４１０で、ロボットシステムは、知覚情報に基づいて（例えば、ステップ４０８で取得した知覚情報を用いて決定した位置に基づいて）制御される。例えば、図示されている実施形態では、アームは、目標物に近づくように制御される。アームは、知覚取得ユニットからの知覚情報を用いて決定されたアームの位置と、目標物に対応する所望の位置との差に基づいて制御されてもよい。
【００６１】
ステップ４１２で、目標位置に到達したかどうかが判定される。目標位置に到達した場合は、方法４００はステップ４１４に進む。ステップ４１４で、作業が行われる（例えば、レバーが把持されて作動される）。目標位置に到達していない場合は、方法４００は、ステップ４１６に進む。
【００６２】
ステップ４１６で、予測位置情報を提供するために、アームの位置が予測される。例えば、図示されている実施形態のアームの位置は、知覚情報（例えば、ステップ４０８で得られた情報）、および制御信号情報を用いて、予測または推定されてもよい。ステップ４０８で知覚された位置は、制御信号が要求した運動によって変更されてもよく、制御信号は、アームを制御して推定位置を決定するために、ステップ４１０で提供される。例えば、アームの予測位置は、初期時刻におけるアームの以前の位置、初期時刻と現在時刻との間の、アームの速度に対応する速度情報（また、以下に示すように、速度が一定でない場合は加速度情報）、ならびに初期時刻と現在時刻との間に経過した所要時間を用いて、現在時刻で決定されてもよい。なお、本明細書で用いる速度情報は、経時的な速度の変化に対応する情報、または加速度情報をさらに含んでもよい。なお、図示されている実施形態では、制御速度が取得速度よりも速いため、最新の知覚情報が再度使用可能になる前に、少なくとも１回は制御イベントが生じるので、知覚情報を再度使用する前に、少なくとも１サイクルの予測情報の使用が行われてもよい。さらに、直近の予測位置が、使用可能な知覚情報よりも新しい場合は、直近の予測位置を用いて、最新の予測位置が、さらに決定または推定されてもよい。いくつかの実施形態では、アームは、制御速度に対応する第１の間隔に対して予測位置情報を用い、取得速度に対応する第２の間隔に対して知覚情報を用いて、目標物に向かって移動するように制御されてもよい。例えば、アームは、少なくとも１つの第２の間隔（すなわち知覚情報が使用可能な間に経過した時間）の間に、（予測情報を使用して）一連の第１の間隔にわたって制御されてもよい。
【００６３】
ステップ４１８で、ロボットシステムは、予測位置情報に基づいて（例えば、ステップ４１６で決定または推定した位置に基づいて）制御される。例えば、図示されている実施形態では、アームは、目標物に近づくように制御される。アームは、推定または予測されたアームの位置と、目標物に対応する所望の位置との差に基づいて制御されてもよい。
【００６４】
ステップ４２０で、目標位置に到達したかどうかが判定される。目標位置に到達した場合は、方法４００はステップ４２２に進む。ステップ４２２で、作業が行われる（例えば、レバーが把持されて作動される）。目標位置に到達していない場合は、方法４００は、ステップ４２４に進む。ステップ４２４で、次の制御イベントの前に、最新または更新された知覚情報が使用可能であるかどうか、あるいは使用可能になるかどうかが判定される。使用可能になる場合は、方法４００は、知覚情報を用いて最新位置を決定するステップ４０８に進む。使用可能にならない場合は、本方法は、最新の予測または推定位置を決定するステップ４１６に進む。
【００６５】
なお、図示されている実施形態の、構成要素の特定の配置（例えば、数、種類、位置等）は、様々な代替的な実施形態では、変更されてもよい。例えば、様々な実施形態において、異なる数の所与のモジュールまたはユニットが使用されてもよく、異なる（複数の）種類の所与のモジュールまたはユニットが使用されてもよく、いくつかのモジュールまたはユニット（もしくはその態様）が組み合わされてもよく、所与のモジュールまたはユニットが、複数のモジュール（もしくはサブモジュール）またはユニット（もしくはサブユニット）に分割されてもよく、１つ以上のモジュールの１つ以上の態様が、複数のモジュール同士の間で共有されてもよく、所与のモジュールまたはユニットが追加されてもよく、あるいは所与のモジュールまたはユニットが省略されてもよい。
【００６６】
本明細書で用いられる、作業または動作を行う「ように構成される」構造、制限、または要素は、作業または動作に対応する方法で、特に構造的に形成、構築、または適合される。明確にする目的で、かつ誤解を避けるために記すと、作業または動作を行うために、単に変更できるだけの物体は、本明細書で用いられる、作業または動作を行う「ように構成される」ものではない。その代わりに、本明細書で用いられる「〜ように構成される」は、構造的な適合または特徴を示し、作業または動作を行う「ように構成される」と記載される任意の構造、制約、または要素の構造的な要件を示す。例えば、作業または動作を行う「ように構成される」処理ユニット、プロセッサ、またはコンピュータは、その作業または動作を行うように特に構成されるものと理解されてもよい（例えば、その作業または動作を行うように調整または意図されて、これに記憶されるか、あるいはこれに関連して用いられる、１つ以上のプログラムまたは命令を有し、かつ／もしくはその作業または動作を行うように調整または意図された、処理回路の配置を有する）。明確にする目的で、かつ誤解を避けるために記すと、（適切にプログラムされると作業または動作を行う「ように構成される」ようになり得る）汎用コンピュータは、作業または動作を行うように特にプログラムされるか、または構造的に変更されない限り、あるいはそれまでは、作業または動作を行う「ように構成され」ない。
【００６７】
なお、様々な実施形態は、ハードウェア、ソフトウェア、またはこれらの組み合わせで実施されてもよい。様々な実施形態および／または部品、例えば、モジュール、またはその部品およびコントローラもまた、１つ以上のコンピュータまたはプロセッサの一部として実施されてもよい。コンピュータまたはプロセッサは、例えば、インターネットにアクセスするための計算装置、入力装置、表示ユニット、およびインターフェースを備えてもよい。コンピュータまたはプロセッサは、マイクロプロセッサを含んでもよい。マイクロプロセッサは、通信バスに接続されてもよい。コンピュータまたはプロセッサは、メモリをさらに含んでもよい。メモリは、ランダムアクセスメモリ（ＲＡＭ）、および読み出し専用メモリ（ＲＯＭ）を含んでもよい。コンピュータまたはプロセッサは、記憶装置をさらに含んでもよく、これは、ハードディスクドライブ、またはソリッドステートドライブ、光学ドライブ等の、取り外し可能な記憶ドライブであってもよい。また、記憶装置は、コンピュータプログラムその他の命令をコンピュータまたはプロセッサに読み込む、他の類似の手段であってもよい。
【００６８】
本明細書で用いられる「コンピュータ」、「コントローラ」、および「モジュール」という用語はそれぞれ、マイクロコントローラ、縮小命令セットコンピュータ（ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｅｒ、ＲＩＳＣ）、特定用途向け集積回路（ＡＳＩＣ）、論理回路、ＧＰＵ、ＦＰＧＡ、その他任意の本明細書で説明される機能を実行可能な回路またはプロセッサを有する、任意のプロセッサに基づく、またはマイクロプロセッサに基づくシステムを含んでもよい。上記の例は例示のみであり、したがって、「モジュール」または「コンピュータ」という用語の定義および／または意味を限定することは決して意図されていない。
【００６９】
コンピュータ、モジュール、またはプロセッサは、入力データを処理するために、１つ以上の記憶素子に記憶された、１組の命令を実行する。記憶素子は、所望または必要に応じて、データその他の情報をさらに記憶してもよい。記憶素子は、処理機内で、情報源、または物理メモリ素子の形態であってもよい。
【００７０】
命令の組は、様々なコマンドを含んでもよく、これは、処理機としてのコンピュータ、モジュール、またはプロセッサに、本明細書で説明および／あるいは図示する様々な実施形態の方法、およびプロセス等の、特定の動作を行うように命令する。命令の組は、ソフトウェアプログラムの形態であってもよい。ソフトウェアは、システムソフトウェア、またはアプリケーションソフトウェア等の、様々な形態であってもよく、有形かつ非一時的なコンピュータ可読媒体として具体化されてもよい。また、ソフトウェアは、個別のプログラムまたはモジュールの集まりであっても、より大きいプログラム内のプログラムモジュールであっても、あるいはプログラムモジュールの一部であってもよい。また、ソフトウェアは、オブジェクト指向プログラミングの形態の、モジュラープログラミングを含んでもよい。処理機による入力データの処理は、オペレータコマンドに応答して、または前回の処理の結果に応答して、あるいは別の処理機の要求に応答して行われてもよい。
【００７１】
本明細書で用いられる「ソフトウェア」および「ファームウェア」という用語は交換可能であり、ＲＡＭメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、および不揮発性のＲＡＭ（ＮＶＲＡＭ）メモリを有するコンピュータによって実行するための、メモリに記憶された任意のコンピュータプログラムを含む。上記のメモリの種類は、例示のみであって、コンピュータプログラムの記憶に使用可能なメモリの種類を限定するものではない。様々な実施形態の個々の構成要素は、例えば、ユーザが、コンピュータシステムの位置、構成、および／または特定のハードウェアについて懸念する必要なく、計算能力の動的割り当てを行うことが可能になるように、仮想化されてクラウド型のコンピュータ環境にホストされてもよい。
【００７２】
上記の説明が制限ではなく例示を意図していることを理解されたい。例えば、上で説明した実施形態（および／またはそれらの態様）を互いに組み合わせて用いてもよい。加えて、本発明の範囲から逸脱せずに、それらの教示に特定の状況または材料を適応させる多くの修正を施してもよい。本明細書に記載した、寸法、材料の種類、様々な構成部品の配向、ならびに様々な構成部品の数および位置は、いくつかの実施形態のパラメータを規定するためのものであるが、それらは決して限定的なものではなく、単に例示的な実施形態にすぎない。請求項の精神および範囲内に、多くの他の実施形態および変形例が含まれることは、上記の説明を検討することにより当業者には明らかであろう。したがって、本発明の範囲は、添付の請求項を参照して、そのような請求項が権利を与える十分な均等物の範囲と共に決定されるべきである。添付の請求項において、用語「含む（ｉｎｃｌｕｄｉｎｇ）」および「それには（ｉｎ  ｗｈｉｃｈ）」を用語「備える（ｃｏｍｐｒｉｓｉｎｇ）」および「そこでは（ｗｈｅｒｅｉｎ）」それぞれの平易な英語の同義語として用いている。さらに、以下の請求項において、「第１」、「第２」および「第３」などの用語は単に符号として使用され、それらの目標物に数値的な要件を課すことを意図しない。また、以下の特許請求の範囲の制限は、このようなクレームの制限が、さらなる構造を欠いた機能の記述の後に、明示的に「〜する手段（ｍｅａｎｓ  ｆｏｒ）」という語句を用いていない限り、ミーンズプラスファンクションの形式では書かれておらず、米国特許法１１２条に基づいて解釈されることを意図していない。
【００７３】
ここに記載された説明は、様々な実施形態を開示するため、また、任意の装置またはシステムを作成および使用すること、ならびに任意の組み合わせた方法を実行することを含んで、当業者が様々な実施形態を実施できるようにするために例を用いる。様々な実施形態の特許され得る範囲は、請求項によって定義され、当業者が想到する他の実施例を含むことができる。このような他の例は、これらの例が特許請求の範囲の文言と異ならない構造要素を有する場合、またはこれらの例が特許請求の範囲の文言とわずかしか異ならない同等の構造要素を含む場合は、特許請求の範囲内であることが意図される。
【符号の説明】
【００７４】
１００  ロボットシステム
１０２  目標物
１０４  本体
１１０  アーム
１１２  第１の部分
１１４  第２の部分
１１６  関節
１１８  センサ
１２０  マニピュレータユニット
１３０  知覚取得ユニット
１４０  処理ユニット（プロセッサ）
１４２  制御モジュール
１４４  知覚モジュール
１４６  予測モジュール
１４８  メモリ（有形かつ非一時的なコンピュータ可読媒体）
２００  グラフ
２０２  所望の位置
２１０  制御間隔
２１２、２１４、２１６、２１８  予測位置
２２０  知覚間隔
２２２、２２４  知覚位置
３００  ロボット制御システム
３０２  ユーザインターフェース
３０４  作業計画ブロック
３０６  通信ブロック
３０８  運動計画ブロック
３１０  目標位置推定ブロック
３１２  位置コントローラ
３１４  速度コントローラ
３１６  ロボットセンサ
３１８  動的計画ブロック
３１９  作動ブロック
３２０  ロボットマニピュレータ
３２２  知覚器ブロック
３２４  環境モデリングブロック
３５０  環境
４００  ロボットを制御する方法
Ｔ１〜Ｔ６  時刻
【図１】
2018514403.tif 000003
【図２】
2018514403.tif 000004
【図３】
2018514403.tif 000005
【図４】
2018514403.tif 000006
【国際調査報告】
2018514403.tif 000007
2018514403.tif 000008
2018514403.tif 000009