(57)【要約】      （修正有）【課題】複数の独立する課題を備える協働作業課題を実行するためのロボットシステムを提供すること。【解決手段】ロボットシステムは、複数のロボットジョイントを有し、ロボットジョイントの各々は、協働作業課題の実行中に独立に制御可能であり、ロボットシステムはさらに、協働作業課題の実行中に前記ロボットジョイントの運動を制御するコントローラを有し、コントローラは、自動的に、ロボットジョイントを課題に特化したサブシステムにグループ化し、課題実行分岐部に到達した際に複数の独立した課題を課題に特化したサブシステムに割り当て、前記課題実行分岐部に到達した後に、課題に特化したサブシステムの、課題に特化したそれぞれのサブシステムによる独立した実行を調整する様に構成した。【選択図】図１
2012066376.tif 000002
【特許請求の範囲】
【請求項１】
複数の独立する課題を備える協働作業課題を実行するためのロボットシステムであって、前記ロボットシステムは、
複数のロボットジョイントを有し、前記ロボットジョイントの各々は、前記協働作業課題の実行中に独立に制御可能であり、
前記ロボットシステムはさらに、前記協働作業課題の実行中に前記ロボットジョイントの運動を制御するコントローラを有し、
前記コントローラは、自動的に、前記ロボットジョイントを課題に特化したサブシステムにグループ化し、課題実行分岐部に到達した際に複数の独立した課題を課題に特化したサブシステムに割り当て、前記課題実行分岐部に到達した後に、課題に特化したサブシステムの、課題に特化したそれぞれのサブシステムによる独立した実行を調整する、ロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、前記コントローラはランタイムエンジンを含み、前記ランタイムエンジンは、前記協働作業課題に実行中に、課題に特化したロボットサブシステムのロボットジョイントに関する運動を調整するように構成される、ロボットシステム。
【請求項３】
請求項１に記載のロボットシステムであって、前記ロボットシステムは少なくとも４２の自由度を備える、ロボットシステム。
【請求項４】
請求項１に記載のロボットシステムであって、さらに、複数のロボットを有し、前記複数のロボットジョイントは、前記複数のロボットの間に分配され、前記複数のロボットは協働して前記協働作業課題を実行する、ロボットシステム。
【請求項５】
請求項１に記載のロボットシステムであって、さらに、前記コントローラにアクセスするための視覚的プログラムエディタを有し、前記視覚的プログラムエディタは、複数の独立するサブ課題の分岐シーケンスを構成するためにユーザーにインターフェースを提供する、ロボットシステム。
【請求項６】
請求項１に記載のロボットシステムであって、前記ランタイムエンジンは、非同期実行管理モジュールを含み、前記非同期実行管理モジュールは、前記ロボットジョイントを任意に課題に特化したロボットサブシステムにグループ化し、前記非同期実行管理モジュールは、前記協働作業課題の実行中に、前記ロボットジョイントを介して前記ロボットの非同期の運動を調整する、ロボットシステム。
【請求項７】
請求項１に記載のロボットシステムであって、複数の独立する作業課題の少なくともいくつかは、異なるロボットジョイントにより別個に実行可能である、ロボットシステム。
【請求項８】
請求項７に記載のロボットシステムであって、さらに複数のロボットを有し、複数の独立する課題の少なくともいくつかは、前記複数のロボットの異なるロボットにより実行可能である、ロボットシステム。
【請求項９】
請求項７に記載のロボットシステムであって、さらに、
スケジューリングモジュールと、
データベースシステムと、を有し、
前記スケジューリングモジュールは、複数の独立する課題の与えられた１つを他の複数の独立する課題から独立して完成させ、前記データベースシステムからのシステムデータおよび共有されるイベント情報を用いて、前記複数の独立する課題の実行を同期させる、ロボットシステム。
【請求項１０】
請求項９に記載のロボットシステムであって、前記スケジューリングモジュールは、ラウンドロビンスケジューリングスキームを使用して、複数の独立する課題の共有される実行時間を強制する、ロボットシステム。
【請求項１１】
請求項１に記載のロボットシステムであって、前記コントローラは、複数の独立する課題の１つを、他の複数の独立する課題の実行に干渉することなく自動的に一時停止および再開するように動作することができる、ロボットシステム。
【請求項１２】
複数の独立して制御可能なロボットジョイントを備えるロボットシステムを用いて、複数の独立するサブ課題を備える協働作業課題を実行するための方法であって、前記方法は、
前記ロボットジョイントを自動的に課題に特化したサブシステムにグループ化するステップと、
課題実行分岐部に到達した際に、複数の独立するサブ課題を課題に特化したサブシステムに割り当てるステップと、
課題実行分岐部に到達した後に、それぞれの課題に特化したサブシステムによる複数の独立するサブ課題の独立した実行を調整するステップと、を有する方法。
【請求項１３】
請求項１２に記載の方法であって、前記ロボットシステムは少なくとも４２の自由度を備える、方法。
【請求項１４】
請求項１２に記載の方法であって、前記ロボットジョイントは、協働作業課題を一緒に実行する複数の異なるロボットの間で分配され、前記ロボットジョイントをグループ化するステップは、複数のロボットの各々からのロボットジョイントをグループ化するステップを含む、方法。
【請求項１５】
請求項１２に記載の方法であって、さらに、
ランタイムエンジンを使用して、課題実行分岐部において、前記協働作業課題の前記複数の独立するサブ課題を自動的に分岐させるステップ、を有する、方法。
【請求項１６】
請求項１５に記載の方法であって、前記ロボットシステムは、視覚的プログラムエディタを含み、前記方法はさらに、
前記視覚的プログラムエディタを用いて前記ランタイムエンジン内の分岐シーケンスを設定するステップを有する、方法。
【請求項１７】
請求項１２に記載の方法であって、前記ロボットシステムは、スケジューリングモジュールと、システムデータおよび共有されるイベント情報を提供するデータベースシステムとを有し、前記複数の独立するサブ課題の独立した実行を調整するステップは、前記システムデータおよび前記共有されるイベント情報を用いて互いに対して独立に複数の独立するサブ課題を同期させて完了させるために前記スケジューリングモジュールを使用するステップを含む、方法。
【請求項１８】
請求項１７に記載の方法であって、さらに、
ラウンドロビンスケジューリングスキームを使用するスケジューリングモジュールを介して、複数の独立するサブ課題の共有される実行時間を強制するステップを有する、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明は、NASA Space Act Agreement number SAA-AT-07-003による政府の支援のもとでなされた。本明細書で説明される発明は、米国政府により、または米国政府の目的のために（すなわち非商業的に）、ロイヤリティの支払いなく製造または使用することができることがある。
【０００２】
[0002]本発明は、ロボットシステム内の１つ以上の人間型ロボットまたは他の器用なロボットの複数のロボットジョイントの自動運動制御に関する。
【背景技術】
【０００３】
[0003]ロボットは、エンドエフェクタまたはロボットマニピュレータを使用して物体を把持および操作することができる自動化された装置である。ロボットマニピュレータは、１つ以上のアクチュエータ駆動のジョイントにより相互接続される。典型的なロボットの各ジョイントは、少なくとも１つの独立した制御変数、すなわち自由度（ＤＯＦ）を備える。典型的な多軸工業ロボットは６ＤＯＦを備える。そのようなロボットの制御は考慮されたルーチンである。しかし、２つ以上のロボットの重なる運動経路において、干渉領域が存在し得る。そのような干渉領域の存在は、制御問題を複雑にする。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0004]複数のロボットが共有される作業空間内で使用される場合、シリアルハンドシェイキングプロトコルを用いてロボットの運動を自動的に調整するために、単一のコントローラを使用することができる。当業界で理解されているように、シリアルハンドシェイキングは、チャネルでの通信を適正に開始する前に、２つのロボットまたは他のネットワーク化された装置の間で確立される、任意の通信チャネルまたはリンクの必要なパラメータを動的に設定する。シリアルハンドシェイキングプロトコルは、ロボットシステム内のＤＯＦの数が増加すると、効率を低下させ得る。
【課題を解決するための手段】
【０００５】
[0005]そこで、ロボットシステムおよびロボットシステムのための制御方法が開示される。本方法は、１つ以上の高次の自由度（ＤＯＦ）のロボットの運動を調整するように構成されるコントローラにより実行することができるアルゴリズムとして実施化することができる。「高次のＤＯＦ」との語は、本明細書において、従来の６自由度より高い自由度を備えるロボットを指し、ある実施形態においては、作業課題を協働して実行するために同一のロボットシステム内で使用される１つのロボットまたは複数のロボットについてのＤＯＦであるかどうかに関わらず、４２ＤＯＦまたはそれ以上である。
【０００６】
[0006]高ＤＯＦロボットは、本稿では、少なくとも４２ＤＯＦを備える器用な人間型ロボットとして実施化される。そのようなロボットは、人間のようなレベルの器用さが必要となる新しい航空宇宙用途および工業用途において有利に採用することができる。高ＤＯＦレベルは、非同期のおよび調和したジョイント運動、自動化された作業分岐、およびロボットシステムで使用されるロボットの様々なマニピュレータによる作業の独立した実行を必要とする。この能力は、本明細書に開示されるロボットシステムおよび制御方法により提供される。
【０００７】
[0007]特に、ロボットシステムは、複数の独立するサブ課題を備える協働作業課題を実行するために動作可能である。ここで用いられる「協働作業課題」とは、１つ以上のロボットジョイントにより実行される作業課題を指し、いくつかの例においては、ロボットシステム内で使用される１つ以上のロボットの複数のジョイントにより実行される作業課題である。ロボットシステムはロボットおよびコントローラを含む。ロボットは、複数のロボットジョイントを備え、各ジョイントは、協働作業課題の実行中に独立して制御することができる。
【０００８】
[0008]コントローラは、協働作業課題の実行中にロボットジョイントの運動を制御し、ロボットシステムの異なるジョイントを課題に特化したサブシステムとして自動的にグループ化することにより行う。コントローラは、課題実行分岐部に到達すると、複数の独立したサブ課題を様々なグループ化されたサブシステムに割り当て、課題実行分岐部に到達した後に、それぞれのサブシステムによるサブ課題の実行を調整する。複数の課題分岐部が存在することがあり、それぞれは複数の独立したサブ課題に導かれる。
【０００９】
[0009]一実施形態におけるロボットシステムは、少なくとも４２自由度を備える。１つ以上の追加的なロボットは、協働作業課題の実行において協働することができる。自動的にサブ課題を分岐させるのにランタイムエンジンを用いることができる。コントローラにアクセスするために視覚的なプログラムエディタを含めることができ、プログラムエディタは、ユーザーが様々なサブ課題の自動化された分岐のための分岐シーケンスを構成することができるようにする。視覚的なプログラムエディタおよびコントローラのプログラム言語は、１つ以上のロボットおよび／またはロボットシステムに命令を発することができる。
【００１０】
[0010]ランタイムエンジンは、非同期実行管理（asynchronous execution management,  ＡＥＭ）モジュールを含むことができ、これは、ロボットジョイントを任意に課題に特化したサブシステムにグループ化する。ＡＥＭモジュールは、協働作業課題の実行に際してロボットジョイントの非同期運動を調整する。スケジューリングモジュール、およびシステムデータおよび共有されるイベント情報を提供するデータベースシステムをロボットシステムに含めることができ、スケジューリングモジュールは、複数の独立する課題が、互いに対して独立に完了することを可能にし、一方で、同時に、データベースシステムから提供されるシステムデータおよび共有されるイベントを用いて同期することを可能にする。
【００１１】
[0011]また、複数の独立するサブ課題を備える協働作業課題を実行する方法が開示される。本方法は、ロボットジョイントを自動的に課題に特化したサブシステムにグループ化し、課題実行分岐部に到達したときに協働作業課題の複数の独立するサブ課題を課題に特化したサブシステムに割り当て、課題実行分岐部に到達した後に、それぞれの課題に特化したサブシステムよる複数の独立するサブ課題の独立する実行を調整する。
【００１２】
[0012]本発明の上述の特徴および利点、および他の特徴および利点は、以下の発明を実施するための詳細な説明を添付図面とともに参照することで明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】複数のロボットジョイントを備える高自由度ロボット、および、ロボットシステムの様々なジョイントの非同期のおよび調整された運動制御を提供するコントローラを有するロボットシステムの概略図である。
【図２】図１に示されるロボットシステムに使用できるランタイムエンジンのブロック図である。
【図３】図１に示されるロボットを図２に示されるランタイムエンジンを使用して制御するための方法を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
[0016]図面に関して、複数の図面を通じて同様の参照符号は同一または類似の要素を示している。図１には、複数のロボットジョイントを備える器用なロボット１１を含むロボットシステム１０が示されている。これらは以下で説明される。ロボットの様々なジョイントの非同期の、調整された制御は、アルゴリズム１００により提供され、これは図３を参照して以下で詳細に説明される。
【００１５】
[0017]ロボット１１は、図示のように人間のような外観を備えるように構成することができ、また、与えられる作業課題の複雑さに必要な程度に人間のようなレベルの器用さを備えるように構成できる。人間型ロボットおよび他の器用なロボットは、特に人間の使用のために設計された装置またはシステム、すなわち、物体３０を適切に操作するために人間のようなレベルの器用さが必要な装置、に直接的な相互作用が必要とされる場面において使用することができる。ロボット１１のような人間型ロボットの使用は、ロボットと人間のオペレータとの間に直接的な相互作用が必要とされる場面において好ましく、運動は人間の動きを模倣するようにプログラムすることができる。
【００１６】
[0018]ロボット１１は、力ベースの又はインピーダンスベースの制御フレームワークを介して動作する。本明細書において、「力ベース」および「インピーダンスベース」との語は、ロボットの様々なロボットジョイントおよびマニピュレータを通じて移動および力を付与するために、力またはインピーダンスの命令およびフィードバック信号に応じてロボットを制御することを指す。ロボット１１は、コントローラ１２を使用して制御され、コントローラ１２は、アルゴリズム１００を実行して、制御信号５０のセットをロボットに伝達する。制御信号は、以下で詳細に説明されるように、非同期のおよび調整されたロボットのジョイント運動制御を提供する。
【００１７】
[0019]制御信号５０は、力またはインピーダンスベースの動作命令および位置／力フィードバックのセットを含むことができる。すなわち、ロボット１１のユーザーは、操作される質量、たとえば物体３０、に対する望ましい剛性、減衰、および慣性特性を特定することができ、それにより、ロボットと周囲の環境との間の物理的相互作用に対するロバスト性を提供し、また、様々な操作課題に対する柔軟性を提供する。
【００１８】
[0020]ロボット１１は、複数の自由度（ＤＯＦ）で自動化される課題を実行するように構成することができ、また、他の相互に影響する課題を実行するように構成することができ、またはたとえばクランプ、照明、リレーなどの他の統合されるシステム部品を制御するように構成することができる。可能な一実施形態によれば、ロボット１１は、独立して、および相互依存して移動することができる複数のアクチュエータ駆動のロボットジョイントを備えることができ、これらのいくつかは、重なる運動の範囲を備える。ロボットジョイントは、肩ジョイントを含むことができ、この位置は、図１において矢印１３で全体が示されている。また、肘ジョイント（矢印１５）、手首ジョイント（矢印１７）、首ジョイント（矢印）１９）、および腰ジョイント（矢印２１）、および、各ロボットフィンガー１４の間に位置決めされる様々なフィンガージョイント（矢印２３）を含むことができる。
【００１９】
[0021]図１を参照すると、各ロボットジョイントは１以上のＤＯＦを備えることができる。たとえば、肩ジョイント（矢印１３）および肘ジョイント（矢印１５）のようなある柔軟なジョイントは、ピッチおよびロールの形態で少なくとも２ＤＯＦを備えることができる。同様に、首ジョイント（矢印１９）は少なくとも３ＤＯＦを備えることができ、腰ジョイント（矢印２１）および手首ジョイント（矢印１７）は、１以上のＤＯＦを備えることができる。課題の複雑さに応じて、ロボット１１は、４２以上のＤＯＦで運動することができる。各ロボットジョイントは、１つ以上のアクチュエータを備えまたこれにより駆動され、アクチュエータは、たとえば、ジョイントモーター、線形アクチュエータ、回転アクチュエータなどである。
【００２０】
[0022]ロボット１１は、ヘッド１６、トルソ１８、ウェスト２０、アーム２２、ハンド２４、フィンガ１４、および対向する親指２６のような人間のような要素を含むことができ、上述の様々なジョイントは、これらの要素内またはこれらの要素の間に配置される。人間のように、アーム２２および他の要素は、ある範囲で重なる運動領域を備えることができる。ロボット１１は、ロボットの具体的用途または意図する使用に応じて、脚部、トレッド、または他の移動可能なまたは固定のベースのような課題に好適な固定部またはベース（図示せず）を含むことができる。動力供給部２８は、ロボット１１に一体的に取り付けることができ、たとえば、トルソ１８の背面に保持または装着される充電可能なバッテリパック、または他の好適なエネルギー供給部とすることができ、あるいは、ロボットの運動のために様々なジョイントに十分な電気的エネルギーを提供するために、テザリングを通して遠隔的に取り付けることができるものとしてもよい。
【００２１】
[0023]コントローラ１２は、ロボット１１の正確な運動制御を提供し、物体３０の操作に必要な精細なおよび大雑把な運動の制御を含み、物体３０は、たとえば、１つ以上のハンド２４のフィンガ１４および親指２６により把持することができる作業工具である。コントローラ１２は、各ロボットジョイントおよび他の統合されたシステム部品を、他のジョイントおよびシステム部品から離れて、独立に制御することができ、また、比較的複雑な作業課題を実行するのに複数のジョイントの動作を完全に調整するために、多数のジョイントを相互依存するように制御することもできる。
【００２２】
[0024]ロボットシステム１０は、少なくとも１つの追加的な類似に構成された図１に破線で示されるロボット１１１を含むことができ、これは、ロボット１１と同一の作業空間内で動作する。ロボット１１、１１１は、図１に示されるように、物体３０を協働して把持しまた移動させるような課題を実行するのに必要とされることがある。ロボット１１、１１１のあるジョイントは、互いにある範囲で重なる運動領域を備えることができ、また、同一のロボットの他のジョイントの運動範囲を重なる運動領域を備えることもできる。それゆえ、ロボットシステム１０内で使用される各ロボットは、同期して、また調整された方法で複数の動作を実行することができなくてはならない。この機能は、アルゴリズム１００およびランタイムエンジン４２の構成により提供され、これらは以下で図２とともに説明される。
【００２３】
[0025]コントローラ１２は、１つ以上のディジタルコンピュータまたはデータ処理装置を備えるサーバまたはホストマシンとして実施化することができ、それぞれは、１つ以上のマイクロプロセッサまたは中央処理装置（ＣＰＵ）、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、電気的に消去可能なプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、高速クロック、アナログ−ディジタル（Ａ／Ｄ）回路、ディジタル−アナログ（Ｄ／Ａ）回路、任意の必要な入力／出力（Ｉ／Ｏ）回路および装置、信号調整機器およびバッファ機器などを含む。
【００２４】
[0026] コントローラ１２内にあるまたはコントローラにより容易にアクセス可能な個別の制御アルゴリズムは、ＲＯＭまたは他の好適なメモリ内に記憶することができ、また、それぞれの制御機能を提供するために自動的に実行される。視覚的なプログラムエディタ８０または他の好適なユーザーインターフェースをコントローラ１２のプログラム言語にアクセスするために使用することができ、また、以下に説明されるよう、調整された非同期課題完了のためにシーケンスを分岐させるように構成するために使用することができる。
【００２５】
[0027]ロボットシステム１０は、コントローラ１２を介してロボット１１および／またはロボット１１１と通信するデータベースシステム４０を含むことができる。データベースシステム４０は、プログラム言語、共有イベント情報、課題実行に必要な様々な通信プロトコル、および課題の必要な完了条件のために、十分なレベルのデータ容量を提供する単一の大きなデータベースまたは分散型データベースとして実施することができる。データベースシステム４０は、ランタイムエンジン４２と通信し、これは、ジョイントが協働作業課題の実行のために指定され且つ駆動されたときに、ロボットシステム１０内の様々なロボットジョイントの非同期運動を調整するために、非同期実行管理（asynchronous execution management、ＡＥＭ）モジュール６０を使用する。
【００２６】
[0028]図２を参照すると、図１のコントローラ１２は、ランタイムエンジン４２のＡＥＭモジュール６０を使用し、ロボットシステム１０の様々なジョイントを任意に課題に特化したサブシステムにグループ化する。たとえば、ロボット１１が右に向き、物体３０を見下し、両ハンド２４で物体を把持する場合に、ネックジョイント１９および両アーム２２のジョイントは、特定の操作のために駆動することができる。これらの課題に特化したサブシステムは、今度は、ＡＥＭモジュールを介して較正されたシーケンス構造に結び付けられ、これは、任意の駆動ジョイントの運動を自動的に調整し、複雑な課題なまたは協働作業課題の完了を可能にする。ランタイムエンジン４２は、より大きなロボット課題シーケンスの内部にある共存する実行パスのためのソフトウェア機構を提供するために構成することができる。
【００２７】
[0029]図２は、独立したサブ課題５１の単純化したシリーズの例を提供し、複数の課題実行分岐部５２、５３、５４を備える。分岐部５２は実行中であることを示し、この状態は影なしとして図２に示されている。同様に分岐部５３、５４は影付きで示され、将来において、いくつかのポイントで実行されることを示している。各分岐は、複数の独立したサブ課題を備えることができ、たとえば、複数の独立するサブ課題６１、６２、６３、６４を備える分岐部５２が示されている。各サブ課題は、協働的に実行することができ、すなわち、同一のロボットの異なるジョイントにより実行され、および／またはロボットシステム１０内の複数の異なるロボットのジョイントにより実行される。
【００２８】
[0030]また、ＡＥＭモジュール６０は、スケジューリングモジュール７０を備えることができ、これは、複数の独立するサブ課題６１、６２、６３、６４がそれぞれ独立して完了されることを可能にし、一方、同時に、たとえば図１に示されるデータベースシステム４０を介してアクセスされるデータおよびイベントなどのシステムデータおよび共有イベントを通じて課題を同期させる。ランタイムエンジン４２による使用のための分岐機構は、コントローラ１２のプログラム言語にシームレスに統合され（図１参照）、また、視覚的なプログラムエディタ８０を通じてユーザーが設定可能である。
【００２９】
[0031]マルチタスク実行分岐部は、ランタイムエンジン４２内のＡＥＭモジュール６０により制御することができる。一実施形態におけるスケジューリングモジュール７０は、たとえばラウンドロビンスケジューリングスキーム（round-robin scheduling scheme）を用いることで、様々な課題の共有される実行時間を強制することができる。各課題実行分岐部は、自身の状態およびフィードバックを維持し、またそれゆえ、コントローラ１２により独立した実行が可能である。さらに、各課題分岐部は、ランタイムエンジン４２を使用するコントローラ１２により、他の分岐部の実行に干渉することなく一時停止および再開することができる。各分岐部は、データベースシステム４０へのアクセス、必要なプログラミングおよび共有されるイベント情報へのアクセスを維持し、また、他の分岐部およびロボットハードウェアからのデータおよびイベントに自由に相互作用できる。
【００３０】
[0032]図３を参照すると、アルゴリズム１００は、図１に示されるロボットシステムの様々なジョイントの非同期の制御を提供するために、図１のコントローラ１２により実行される。アルゴリズム１００はステップ１０２で開始し、ここで、与えられた協働課題のための必要な制御ノードがコントローラ１２内に設定される。たとえば、ノードは、視覚的なプログラミングエディタ８０を介してユーザーにより選択することができ、たとえば、視覚的なプログラムエディタ８０を介してユーザーがノードを選択することができ、たとえば、割り当てられた課題の達成に用いられる与えられた作業道具のために影響を受けるノードのタッチスクリーン入力により選択できる。説明のための明瞭さのために、比較的単純な作業課題が本明細書では説明され、これは、命令のシーケンスの実行を必要とし、または、物体３０を把持するために図１のロボット１１の両アーム２２を移動させるのに好適なサブプログラムを必要とする。
【００３１】
[0033]ノードが設定された後、ステップ１０４は、サブ課題、たとえば１つのアーム２２の移動の実行を開始する。ステップ１０４により開始されるサブ課題は、自身の課題シーケンスを通じて独立に進行し、アルゴリズム１００はステップ１０６に進む。ステップ１０６は、図１のロボット１１の他のアーム２２の移動、または、同一または他のロボットの他の要素の移動のような他のサブ課題の実行を開始する。ステップ１０４と同様に、ステップ１０６は、任意の数の課題ステップを備えることができ、これらはステップ１０６で制御されるアーム２２により独立に実行されなければならない。課題実行分岐部は、ステップ１０４とステップ１０６との間に存在する。
【００３２】
[0034]ステップ１０８において、コントローラ１２は、ランタイムエンジン４２を使用し、ステップ１０４およびステップ１０６のサブ課題が完了したかどうかを決定する。完了していなければ、ステップ１０４および／またはステップ１０６は、ステップ１０４、１０６の両方が完了するまで繰り返される。アルゴリズム１００は、両方のサブ課題が完了したとき終了する。各サブ課題１００は、複数のサブ課題などを備えることができ、簡潔さのために１つのサブ課題が説明される。
【００３３】
[0035]説明の明瞭さのために、１つの課題実行分岐部だけが図３に関して説明される。しかし、図１のランタイムエンジン４２は、与えられた協働課題または課題のシーケンスを完了するのに必要な多くの分岐部を割り当て、また調整することができる。すなわち、図１のロボット１１、１１１は、人間のように、複数の同時発生の課題を非同期に実行するように設計される。ランタイムエンジン４２は、複数の同時発生的な課題の実行を管理することにより、コントローラ１２に関連してまたはその一部として、この制御要求を管理する。ランタイムエンジン４２は、任意のポイントにおいて分岐される課題実行のための機構を提供し、たとえば、図３の単純化した実施形態においてステップ１０４を開始した後に較正された間隔でステップ１０６を開始し、任意の数のコンピュータ使用のノードに割り当てられる独立の実行パスを形成する。
【００３４】
[0036]また、図１のランタイムエンジン４２は、分離された分岐部が、共有される実行パスに沿って継続する前に、たとえば図３のステップ１０８において、なめらかに再統合されることを可能にする。同一または異なるロボット１１および／または１１１の制御ノードは、１つ以上のアーム２２またはヘッド１６のようなサブシステムを形成するためにグループ化されることができ、これは、互いに対して独立に命令、制御することができる。さらに、上述の方法によるランタイムエンジン４２の使用は、様々な分岐部の間のリソースの衝突解決のための手段を提供する。換言すれば、ロボット１１のヘッドサブシステムは、ロボット１１１の右アームサブシステムとペアにすることができ、この機能はコントローラ１２のプログラム言語において実装され、また、図１の視覚的なプログラムエディタ８０または、他の好適なユーザーインターフェースを使用してユーザーが容易にアクセス可能である。
【００３５】
[0037]本発明を実行する最良の形態が詳細に説明されたが、本発明の技術分野に精通している当業者は、添付の特許請求の範囲において本発明を実施するための様々な代替設計および実施形態を認識するであろう。
【図１】
2012066376.tif 000003
【図２】
2012066376.tif 000004
【図３】
2012066376.tif 000005
【手続補正書】
【提出日】平成23年9月13日(2011.9.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の独立する課題を備える協働作業課題を実行するためのロボットシステムであって、前記ロボットシステムは、
複数のロボットジョイントを有し、前記ロボットジョイントの各々は、前記協働作業課題の実行中に独立に制御可能であり、
前記ロボットシステムはさらに、前記協働作業課題の実行中に前記ロボットジョイントの運動を制御するコントローラを有し、
前記コントローラは、自動的に、前記ロボットジョイントを課題に特化したサブシステムにグループ化し、課題実行分岐部に到達した際に複数の独立した課題を課題に特化したサブシステムに割り当て、前記課題実行分岐部に到達した後に、課題に特化したサブシステムの、課題に特化したそれぞれのサブシステムによる独立した実行を調整する、ロボットシステム。
【請求項２】
請求項１に記載のロボットシステムであって、前記コントローラはランタイムエンジンを含み、前記ランタイムエンジンは、前記協働作業課題に実行中に、課題に特化したロボットサブシステムのロボットジョイントに関する運動を調整するように構成される、ロボットシステム。
【請求項３】
請求項１に記載のロボットシステムであって、さらに、前記コントローラにアクセスするための視覚的プログラムエディタを有し、前記視覚的プログラムエディタは、複数の独立するサブ課題の分岐シーケンスを構成するためにユーザーにインターフェースを提供する、ロボットシステム。
【請求項４】
請求項１に記載のロボットシステムであって、前記ランタイムエンジンは、非同期実行管理モジュールを含み、前記非同期実行管理モジュールは、前記ロボットジョイントを任意に課題に特化したロボットサブシステムにグループ化し、前記非同期実行管理モジュールは、前記協働作業課題の実行中に、前記ロボットジョイントを介して前記ロボットの非同期の運動を調整する、ロボットシステム。
【請求項５】
請求項１に記載のロボットシステムであって、複数の独立する作業課題の少なくともいくつかは、異なるロボットジョイントにより別個に実行可能である、ロボットシステム。
【請求項６】
請求項５に記載のロボットシステムであって、さらに、
スケジューリングモジュールと、
データベースシステムと、を有し、
前記スケジューリングモジュールは、複数の独立する課題の与えられた１つを他の複数の独立する課題から独立して完成させ、前記データベースシステムからのシステムデータおよび共有されるイベント情報を用いて、前記複数の独立する課題の実行を同期させる、ロボットシステム。
【請求項７】
複数の独立して制御可能なロボットジョイントを備えるロボットシステムを用いて、複数の独立するサブ課題を備える協働作業課題を実行するための方法であって、前記方法は、
前記ロボットジョイントを自動的に課題に特化したサブシステムにグループ化するステップと、
課題実行分岐部に到達した際に、複数の独立するサブ課題を課題に特化したサブシステムに割り当てるステップと、
課題実行分岐部に到達した後に、それぞれの課題に特化したサブシステムによる複数の独立するサブ課題の独立した実行を調整するステップと、を有する方法。
【請求項８】
請求項７に記載の方法であって、前記ロボットジョイントは、協働作業課題を一緒に実行する複数の異なるロボットの間で分配され、前記ロボットジョイントをグループ化するステップは、複数のロボットの各々からのロボットジョイントをグループ化するステップを含む、方法。
【請求項９】
請求項７に記載の方法であって、前記ロボットシステムは、スケジューリングモジュールと、システムデータおよび共有されるイベント情報を提供するデータベースシステムとを有し、前記複数の独立するサブ課題の独立した実行を調整するステップは、前記システムデータおよび前記共有されるイベント情報を用いて互いに対して独立に複数の独立するサブ課題を同期させて完了させるために前記スケジューリングモジュールを使用するステップを含む、方法。
【請求項１０】
請求項９に記載の方法であって、さらに、
ラウンドロビンスケジューリングスキームを使用するスケジューリングモジュールを介して、複数の独立するサブ課題の共有される実行時間を強制するステップを有する、方法。
【外国語明細書】
2012066376000001.pdf