(57)【特許請求の範囲】
【請求項１】
システムであって、
ジョイントにより相互接続されるリンクのペアを備えるシリアルロボットを有し、前記シリアルロボットは、命令された把持姿勢に応答して三次元（３Ｄ）物体を把持するように構成され、
前記システムはさらに、前記シリアルロボットと電気的に連絡するコントローラを有し、
前記コントローラは、入力情報のセットを受け取るように構成され、前記入力情報のセットは、命令される把持姿勢、前記シリアルロボットの運動学を記述する情報の第１セット、および前記シリアルロボットにより把持される前記物体の３Ｄ空間における位置を記述する情報の第２セットを含み、
前記コントローラは、二次元（２Ｄ）面において、シリアルロボットが命令された把持姿勢を達成するのに必要な、前記シリアルロボットと、前記３Ｄ物体の表面との間の接触ポイントのセットを計算するように構成され、
前記コントローラは、前記フィンガの平行面のセットの各々上での物体との代替接触ポイントのセットを計算するように構成され、
前記コントローラは、前記接触ポイントのセット及び前記代替接触ポイントのセットを用いてリンクのペアの間の２Ｄ面における必要なジョイント角度を計算するように構成され、
前記コントローラは、前記必要なジョイント角度を用いて、前記シリアルロボットの運動に関する制御動作を実行するように構成される、
システム。
【請求項２】
請求項１に記載のシステムであって、前記シリアルロボットは、複数のロボットフィンガを含み、前記ロボットフィンガの各々は、他のフィンガの各々に対して異なる面上で運動し、前記コントローラは、前記フィンガの各々の前記接触ポイントのセットを同時に計算するように構成される、システム。
【請求項３】
請求項１に記載のシステムであって、前記コントローラは、命令された把持姿勢を２つの直交運動に分解するように構成され、前記２つの直交運動は、２Ｄ面における第１運動と、２Ｄ面に関して直交して向き決めされる第２運動とを含む、システム。
【請求項４】
請求項３に記載のシステムであって、前記２Ｄ面は、ロボットフィンガの曲げ面である、システム。
【請求項５】
請求項１に記載のシステムであって、前記シリアルロボットは、遠位リンク、中間リンク、および近位リンクを含み、前記コントローラは、前記遠位リンク、前記中間リンク、前記近位リンクに関して３つの必要なジョイント角度のセットを計算するように構成される、システム。
【請求項６】
方法であって、
コントローラを介して、入力情報のセットを受け取ることを含み、前記入力情報のセットは、シリアルロボットのための命令される把持姿勢と、前記シリアルロボットの運動学を記述する情報の第１セットと、前記シリアルロボットにより命令された把持姿勢で把持される３Ｄ物体の三次元（３Ｄ）空間における位置を記述する情報の第２セットと、を有し、
前記方法は、前記シリアルロボットの運動を２つの直交する運動に分解することを含み、２つの直交する運動は、二次元（２Ｄ）面内の第１運動と、前記２Ｄ面の上に向き決めされる第２運動とを含み、
前記方法は、前記シリアルロボットと、命令された把持姿勢を達成するのに前記シリアルロボットに必要とされる２Ｄ空間での３Ｄ物体の表面との間の接触ポイントのセットを計算することを含み、
前記方法は、命令された把持姿勢を達成するために、前記フィンガの各々の平行面上での代替接触ポイントのセットを計算することを含み、
前記方法は、前記接触ポイントのセット及び前記代替の接触ポイントのセットを用いて、前記シリアルロボットのリンクのペアの間の必要とされるジョイント角度を計算することを含み、
前記方法は、前記必要とされるジョイント角度を用いて、前記シリアルロボットの運動に関して制御動作を実行することを含む、方法。
【請求項７】
請求項６に記載の方法であって、さらに、
前記コントローラを介して、命令された把持姿勢を２つの直交する運動に分解することを含み、２つの直交する運動は、２Ｄ面内の第１運動と、前記２Ｄ面に対して直交するように向き決めされる第２運動とを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明は、NASA Space Act Agreement number SAA-AT-07-003による政府の支援のもとでなされた。本稿で説明される発明は、実施料の支払いを必要とせずに、米国政府によりまたは米国政府の目的のために（すなわち、非商業的に）製造および使用され得る。
【０００２】
[0002]本開示は、三次元物体を把持することができるシリアルロボットの制御に関する。
【背景技術】
【０００３】
[0003]シリアルロボットは、１つ以上のジョイントに相互接続される一連のリンクを含む。各ジョイントは、少なくとも１つの独立制御変数、すなわち自由度を持つ。エンドエフェクタは、三次元物体の把持のような作業タスクを実行するのに用いられる特定のリンクである。具体的な把持動作の実行に用いられる様々なエンドエフェクタの正確な制御は、器用さが必要な要求タスクの実行を支援することができる。
【０００４】
[0004]器用なシリアルロボットは、たとえば、人間のようなレベルの器用さを備える場合に効果的に操作することができる作業ルーツまたは機器のような、人間の使用のために特に設計された装置またはシステムと直接的な相互作用が必要とされる場合に使用することができる。器用なシリアルロボットは、人間のオペレータと直接的な相互作用が必要とされる場合にも好まれ得る。そのようなロボットは、１つ以上の結合されたフィンガの形態の、１つ以上のシリアルロボットを備えるロボットハンドを含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
[0005]本明細書で開示されるコントロールシステムは、シリアルロボット、たとえばロボットフィンガに要求される把持接触情報を迅速に計算するのに用いることができる。伝統的には、物体把持接触計算は、高次元構成の空間での計算を必要とし、典型的には１０以上の自由度（ＤＯＦ）での計算を必要とする。結果として、実際的な実践において、ロボットハンドのようなシリアルロボットは、しばしば、３Ｄ物体を把持するためにオペレータにより手動で「教示」される。すなわち、オペレータは、具体的な把持姿勢を確立するために、シリアルロボットのジョイントおよびリンクを物体に対して物理的に位置決めする。
【課題を解決するための手段】
【０００６】
[0006]本アプローチは、手動によるロボットの把持位置の教示を省く。代わりに、本明細書で開示される方法は、コントローラを介して、分析的な数式のセットおよび予め決定された運動学的および物体の位置データを使用して、３Ｄ物体との様々な接触を計算する。例示的なロボットハンドにおいて１つ以上のロボットフィンガが用いられる場合、コントローラは、同時に全ての必要とされる接触ポイント、およびフィンガの平行面上での各フィンガのジョイント角度を計算することができる。すなわち、物体の複雑なまたは不均一な表面の湾曲により接触シフトが生じる場合、このシフトは、本明細書で説明するように、フィンガの複数の平行面上での接触情報を計算することにより計算することができ、最適な解のセットを選択する。
【０００７】
[0007]迅速な把持接触計算は、ロボット把持ジョイント角度の網羅的な探索、または、知られた物体の予め導入されている把持データベースの使用を必要としない。
さらに、本アプローチは、分析的な数式において、ロボットハンドの運動学的拘束を自動的に統合し、知られた物体のための実行可能な把持接触を見つける。
【０００８】
[0008]特に、本明細書で、シリアルロボットおよびコントローラを含むシステムが開示される。シリアルロボットは、ジョイントにより相互接続されるリンクのペアを備える。シリアルロボットは、命令された把持姿勢に応答して、三次元（３Ｄ）物体を把持するように構成される。コントローラは、シリアルロボットに電気的に連絡し、また、入力情報のセットを受け取るように構成される。入力情報は、命令される把持姿勢、シリアルロボットの運動学を記述する情報の第１セット、およびシリアルロボットにより把持される物体の３Ｄ空間における位置を記述する情報の第２セットを含む。コントローラは、二次元（２Ｄ）平面で、シリアルロボットが命令された把持姿勢を達成するのに必要なシリアルロボットと３Ｄ物体の表面との間の接触ポイントのセットを計算する。また、コントローラは、接触ポイントのセットを用いて、２Ｄ平面で、リンクのペアの間の必要とされるジョイント角度を計算し、必要なジョイント角度を用いてシリアルロボットの運動に関して制御を実行する。
【０００９】
[0009]また、方法も開示される。本方法は、コントローラを介して、入力情報のセットを受け取ることを含み、入力情報のセットは、シリアルロボットの命令される把持姿勢、シリアルロボットの運動学を記述する情報の第１セット、および、命令される把持姿勢でシリアルロボットにより把持される３Ｄ物体の三次元（３Ｄ）空間における位置を記述する情報の第２セットを含む。本方法は、シリアルロボットの２つの直交する運動へ運動を分解することを含み、これは、二次元（２Ｄ）平面における第１運動および上記２Ｄ平面に向けられる第２運動を含み、本方法はさらに、シリアルロボットが命令された把持姿勢を達成するのに必要な、シリアルロボットと、２Ｄ空間における３Ｄ物体の表面との間の接触ポイントのセットを計算する。本方法は、追加的に、接触ポイントのセットを用いて、シリアルロボットのリンクのペアの間の必要なジョイント角度を計算し、必要なジョイント角度を用いてシリアルロボットの運動に関して制御操作を実行することを含む。
【００１０】
[0010]本発明の上述のおよび他の特徴、利点は、添付図面を参照するとともに以下の本発明を実施する実施形態を説明する詳細な説明から明らかになる。
【図面の簡単な説明】
【００１１】
【図１】ロボットフィンガの形態でシリアルロボットを備える例示的なロボットシステムの概略斜視図である。
【図２】作業タスクの一部として物体を把持するのに用いることができる、３つのジョイントおよび３つのフィンガセグメントを備える例示的なロボットフィンガの概略斜視図である。
【図３】図２に示される例示的なフィンガの様々なセグメントの共通面内の運動の、Ｘ軸およびＺ軸（ピッチおよびヨー）上での、すなわち二次元（２Ｄ）空間におけるプロットである。
【図４】表面湾曲を備える物体を把持するロボットハンドの概略図である。
【図５】Ｘ軸およびＺ軸（ピッチおよびヨー）上の、すなわち２Ｄ空間における、図２に示される例示的なフィンガの様々なセグメントの例示的な物体との計算された把持接触のプロットである。
【図６】シリアルロボットの把持接触情報を計算する例示的な方法を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
[0017]図面を参照すると、いくつかの図面を通じて同様の参照番号は、同一または類似の要素を示す。図１を参照すると、ロボットシステム１０は、器用なロボット１１およびコントローラ１２を含む。図１のロボット１１は、複数のロボットフィンガ１４を含む。各ロボットフィンガ１４は、本明細書で説明されるように制御されるタイプの例示的なシリアルロボットである。それゆえ、「フィンガ」との語は、「シリアルロボット」との語の例として用いられ、当業者は、他のシリアルロボット構成も可能であることを認識するであろう。任意のタイプのシリアルロボットは、直列に配置されるセグメントまたはリンクのペアを接続する１つ以上のジョイントを含む。フィンガ１４の本例において、リンクされたセグメントの各々は、フィンガ１４の異なる指骨を形成することができる。
【００１３】
[0018]コントローラ１２は、入力情報２５のセットを受け取るように構成される。入力情報２５は、以下で説明されるように、少なくとも運動学的情報および位置的情報を提供する。コントローラ１２は、各フィンガ１４の接触ポイントの必要とされる１つまたは複数のセットを迅速に計算する。また、コントローラ１２は、具体的なフィンガ１４の接触ポイントを用いて、三次元（３Ｄ）物体３０を把持するためのジョイント角度のセットを導く。コントローラ１２は、さらに、ジョイント角度のセットを用いてフィンガ１４の運動に関する制御動作を実行するように構成され、実体的な／非過渡的なメモリ９０を介してジョイント角度のセットを記録することを含む。ジョイント角度は、各フィンガ１４の平行面上で決定することができる。結果として、コントローラ１２は、物体３０を把持するためのジョイント角度の最適なセットを選択するように構成することができる。
【００１４】
[0019]ロボット１１により把持される３Ｄ物体３０は、たとえば、円筒形ツールまたは物体３０が把持されるときに１つ以上のフィンガ１４が接触する湾曲表面を備える他の装置とすることができる。ジョイント角度のセットは、コントローラ１２により記録することができ、その後、ロボット１１の運動制御に用いることができ、計算された接触ポイントを確立するのに必要とされるように、様々なジョイントが移動するのを確保する。
【００１５】
[0020]可能な一実施形態において、ロボット１１は、図１に示されるような概ね人間のような外観を備えるように構成することができ、３Ｄ物体３０の把持のような作業タスクを完了させるのに必要な器用さのレベルを備えることができる。フィンガ１４は、ロボット１１が３Ｄ物体３０に作用するとき、コントロール信号（矢印５５）のセットを介してコントローラ１２により直接的に制御される。
【００１６】
[0021]ロボット１１は、自動化されたタスクを複数の自由度（ＤＯＦ）で実行するようにプログラムすることができ、また、他の統合されたシステムコンポーネントを制御するようにプログラムすることができ、たとえば、任意の必要なクランプ装置、照明、リレー等である。可能な一実施形態によれば、ロボット１１は、独立して、および相互依存して移動可能な複数のロボットジョイントを備えることができ、これのいくつかは、重なる運動範囲を備える。様々なセグメントまたは指骨を分離および移動させるフィンガ１４のジョイントに加えて、ロボット１１のジョイントは、肩部１３、肘部１７、ネック部１７、およびトルソ１８を回転または曲げるための腰部２０、を含むことができる。
【００１７】
[0022]可能な一実施形態において、ロボット１１は、単一のフィンガ１４から形成することができる。他の実施形態において、ロボット１１は、複数のフィンガ１４、および／またはロボットハンド２４、ヘッド１６、トルソ１８、腰２０、および／またはアーム２２のような他のコンポーネントを含むことができ、これらのコンポーネントの中または間に様々なジョイントを備えることができる。また、ロボット１１は、ロボットの具体的な用途または意図する使用に応じて、レッグ、トレド、または他の移動可能なまたは固定のベースのようなタスクに好適な固定部またはベース（図示せず）を含むことができる。パワー供給部２８は、ロボット１１に一体的に取り付けることができ、様々なジョイントの運動のために十分な電気エネルギーを供給するために、たとえば、トルソ１８の背面に搭載または装着される充電可能なバッテリパック、または、他の好適なエネルギー供給源とすることができ、あるいは、テザリングケーブルを介して遠隔的に取り付けることができるエネルギー供給源とすることができる。
【００１８】
[0023]さらに図１を参照すると、各ロボットジョイントは、１以上のＤＯＦを備えることができる。各ロボットジョイントは、１つ以上のアクチュエータを収容し、これにより内部的に駆動され、たとえば、ジョイントモータ、リニアアクチュエータ、ロータリーアクチュエータ等であり、これらはテンドン（図示せず）に作用して最終的に必要とされるＤＯＦでロボット１１を移動させ位置決めする。たとえば、ショルダ部１３および肘部１５のようなある種のコンプライアントジョイントは、ピッチおよびロールの形態で少なくとも２ＤＯＦを備えることができる。同様に、ネック部２６は、少なくとも３ＤＯＦを備えることができ、腰部２０および手首部１７は、それぞれ、１つまたはそれ以上のＤＯＦを備えることができる。５個のフィンガ１４を備える実施形態において、ハンド２４は１５ＤＯＦを備えることができる。タスクの複雑さに応じて、ロボット１１は、全体として４２を超えるＤＯＦで動作することができる。
【００１９】
[0024]図１のコントローラ１２は、サーバまたはホストマシンとして実施化でき、すなわち、１つまたは複数のディジタルコンピュータまたはデータ処理装置として実施化でき、それぞれは、１つ以上の中央処理装置（ＣＰＵ）８０およびメモリ９０を備える。アルゴリズム１００は、コントローラ１２により実行される具体的な命令を実施化することができ、本明細書で説明されるように必要な把持接触を計算および実行する。コントローラ１２を実施化するサーバまたはホストマシンは、入力情報（矢印２５）のセットを受け取る。
【００２０】
[0025]入力情報（矢印２５）のセットは、必要とされる把持姿勢、シリアルロボットの運動学を記述する情報の第１セット、および物体３０の３Ｄ空間での位置を記述する情報の第２セットを含む。コントローラ１２は、把持操作に用いられる各フィンガ１４の、２Ｄ面または複数の平行な２Ｄ面での、入力セット（矢印２５）における命令された把持姿勢を達成するのに必要とされるシリアルロボットと物体３０との間の接触ポイントのセットを計算する。また、上述したように、コントローラ１２は、接触ポイントのセットを用いて、セグメントのペアの間の２Ｄ面での必要とされるジョイント角度を計算することができ、また、必要とされるジョイント角度を用いてシリアルロボットの運動に関する制御動作を実行することができる。
【００２１】
[0026]単純さおよび明瞭化のために単一の装置として示されているが、コントローラ１２の様々な要素は、ロボット１１の把持動作を最適に制御するのに必要とされるように、多くの異なるハードウェアおよびソフトウェアコンポーネントとして分散させることができる。コントローラ１２は、十分な読取専用メモリ（ＲＯＭ）、ディジタル信号プロセッサ（ＤＳＰ）、ランダムアクセスメモリ（ＲＡＭ）、電気的に消去可能なプログラム可能な読取専用メモリ（ＥＥＰＲＯＭ）、高速クロック、アナログ−ディジタル（Ａ／Ｄ）回路、ディジタル−アナログ（Ｄ／Ａ）回路、必要な任意の入力／出力（Ｉ／Ｏ）回路および装置、信号調整器、バッファ機器を含むことができる。
【００２２】
[0027]図２を参照すると、ロボットハンド２４の例示的なフィンガ１４は、構造および機能において概ね人間のフィンガに対応するように構成することができる。向い合せの親指１４０は、一つ少ないジョイントであるが、ここでは制御の目的のためにフィンガ１４として扱われる。各フィンガ１４は、ベース３２を含むことができ、これは、作動的にハンド２４に接続される。また、フィンガ１４は、複数の中実セグメントまたはリンクを含み、ここでは遠位リンク４０、中間リンク４２、近位リンク４４として示される。好まれる設計に応じて、より多いまたは少ないリンクを使用することもできる。
【００２３】
[0028]遠位リンク４０は、中間リンク４２に接続され、中間リンク４２は、ジョイント軸２３を中心に遠位リンク４０に関して選択的に回転することができる。中間リンク４２は、ジョイント軸１２３を中心に、近位リンク４４に対して回転する。近位リンク４４は、ジョイント軸２２３を中心に、ベース３２に対して回転する。ジョイント軸２３、１２３、２２３は、互いに平行である。さらに、近位リンク４４は、ジョイント軸２７を介して軸２２３に対して直交して運動することができ、近位リンク４４および任意の接続されたリンクが異なる向きで面内、すなわちヨー面、で回転できるようにする。以降、単一のフィンガ１４のリンク４０、４２、４４の全てがフィンガ１４を曲げるときに通る共通の平面は、曲げ平面と称され、これは二次元（２Ｄ）平面を画定する。
【００２４】
[0029]図３を参照すると、図２の例示的なフィンガ１４のようなシリアルロボットの運動の範囲をプロットするために、２Ｄ曲げ平面６０が用いられ、シリアルロボットは、ヨー軸（Ｚ）およびピッチ軸（Ｘ）に対して２つ以上のリンクを備える。異なるリンク４０、４２、４４は、図２に示されるように、それぞれ軸２３、１２３、２２３に関して回転することにより、２Ｄ平面６０を通って回転できる。変数ａは示されるリンクの長さを表し、ａＰは近位リンク４４の長さに対応し、原点Ｏ、ａＭは中間リンク４２の長さに対応し、ａＤは遠位リンク４０の長さに対応する。図３に示される具体的な角度の値および範囲は、可能な一実施形態の単なる例示であり、制限的な意図はない。
【００２５】
[0030]様々なリンク４０、４２、４４の運動の範囲は、２Ｄ曲げ平面６０内である程度互いに重なるようにすることができる。それぞれの近位、中間、遠位のジョイント角度（θＰ、θＭ、θＤ）は、図示のように前のリンクに対して定義される。２Ｄ曲げ平面６０は、特定のフィンガ１４の知られた運動学を介して定義され、たとえば、図１の入力情報（矢印２５）のセットを介してモデル化され、または、同図に示される物体３０を把持するように制御される他のシリアルロボットを介してモデル化される。
【００２６】
[0031]図４を参照すると、ロボットハンド２４により把持されている例示の物体１３０が示されている。フィンガ１４および親指１４０が物体１３０に接触し、親指１４は、ここではもう１つのフィンガ１４として扱われる。各フィンガ１４は対応する幅を備えているので、各フィンガ１４は複数の平行面に分割することができる。これは、図４において平行な曲げ平面６０、１６０、２６０により示される。各フィンガ１４は、類似の平行面を備えるように示されている。与えられたフィンガ１４の平面は、特定のフィンガ１４において互いに平行であり、当業者により理解されるように、必ずしも他のフィンガ１４に対して平行である必要はない。
【００２７】
[0032]物体１３０との接触は、フィンガ１４の任意の平行な平面６０、１６０、２６０上でなされるようにすることができる。物体１３０の湾曲が均一でない場合（図５参照）、様々な接触は、物体１３０が最適に把持されるような方法に応じて物体１３０の表面に沿ってシフトすることができる。換言すれば、不均一の湾曲を備える物体があると、物体１３０を把持する１つ以上の方法があるということである。いくつかの把持は、他よりも良好であるかもしれない。図１のコントローラ１２は、これに対処でき、図５および図６を参照して以下で説明する。
【００２８】
[0033]制御問題を単純化すると、物体１３０とフィンガ１４との交差は、向き決めされた２Ｄ曲げ平面６０（図３参照）上のカーブである。したがって、例示の３ＤＯＦシステム、たとえば、図２の例示のフィンガ１４に示されるような３つのジョイントを備えるフィンガ１４、における制御問題は、単に、フィンガ１４が命令された把持姿勢で物体１３０に接触するジョイント角度のセットを見つけることであるということができる。このジョイント角度のセットは、以下のように表すことができる。
【００２９】
【数１】
0005580850.tif 000002
【００３０】
再度、添え字Ｐ、Ｍ、Ｄは、近位（proximal）、中間（medial）、遠位（distal）のジョイントを表し、θはこれらの具体的なジョイントの角度を表す。
[0034]図５を参照すると、上述の２Ｄ物体の交差曲線は、曲線７０として示すことができる。境界線８２は、物体、たとえば図１の物体３０、図４の物体１３０、またはシリアルロボットにより把持される他の任意の物体、の外側表面の湾曲を示している。図１に示されるコントローラ１２は、曲線７０上の与えられたポイント（ｘｉ，ｚｉ）に対して、その曲線の正接、すなわちθｉ（ｘｉ，ｚｉ）を決定することができる。コントローラ１２は、
θｉ（ｘｉ，ｚｉ）がθＰに等しく；
０≦ｘｉ≦ａＰｃｏｓθＰ＋ΔｄｓｉｎθＰ；
０≦ｚｉ≦ａＰｓｉｎθＰ＋ΔｄｃｏｓθＰ；
である場合、そのポイント（ｘｉ，ｚｉ）が近位リンク４４との接触ポイントであることを決定する。
【００３１】
[0035] Δｄはフィンガの厚さであり、近位リンク４４と物体３０との接触ポイントが上述のステップから分かった場合、ジョイント角度θＰは、その後、コントローラ１２により容易に計算される。その後、コントローラ１２は、中間リンク４２の解法へと進むことができる。
θｉ（ｘｉ，ｚｉ）がθＰ＋θＭに等しく； 
０≦ｘｉ−ａＰｃｏｓθＰ≦ａＰｃｏｓ（θＰ＋θＭ）＋Δｄｓｉｎ（θＰ＋θＭ）；
０≦ｚｉ−ａＰｓｉｎθＰ≦ａＭｓｉｎ（θＰ＋θＭ）＋Δｄｃｏｓ（θＰ＋θＭ）；
である場合、ポイント（ｘｉ，ｚｉ）は、中間リンク４２との接触ポイントである。
【００３２】
[0036]中間リンク４２との接触ポイントが上述のステップから分かった場合、コントローラ１２によりジョイント角度θＭが次に計算される。その後、コントローラ１２は、遠位ジョイントの角度の解法へ進むことができる。
θｉ（ｘｉ，ｚｉ）がθＰ＋θＭ＋θＤに等しく； 
０≦ｘｉ−ａＰｃｏｓθＰ−ａＭｃｏｓ（θＰ＋θＭ）≦ａＤｃｏｓ（θＰ＋θＭ＋θＤ）＋Δｄｓｉｎ（θＰ＋θＭ＋θＤ）；
０≦ｚｉ−ａＰｓｉｎθＰ−ａＭｓｉｎ（θＰ＋θＭ）≦ａＤｓｉｎ（θＰ＋θＭ＋θＤ）＋Δｄｃｏｓ（θＰ＋θＭ＋θＤ）；
である場合、ポイント（ｘｉ，ｚｉ）が遠位リンク４０との接触ポイントである。
【００３３】
[0037]上述の式の複数のセットは、物体９０が図５において内側境界線１８２により示されるような複雑な／不均一な湾曲を備える場合に解くことができる。この場合、複数の物体の交差曲線が存在することになる。つまり、図４に示されるように、各フィンガ１４は、複数の平行な平面に分割することができる。与えられたフィンガ１４との最適な接触ポイントは、不均一な表面湾曲を備える物体３０は、多数の異なる方法で把持することができるので、上述したように変化することがある。
【００３４】
[0038]図６を参照すると、本方法１００の例示的な実施形態を説明するフローチャートが示される。以下に説明されるステップを実行するのに必要なプロセス命令はメモリ９０（図１参照）に記憶しておくことができ、コントローラ１２の関連するハードウェアおよびソフトウェアにより実行することができ、所望の機能を提供する。
【００３５】
[0039]ステップ１０２から開始し、図１のコントローラ１２は、命令される把持姿勢および入力情報のセットを受け取る（矢印２５）。ステップ１０２は、たとえば、フィンガ１４または他のシリアルロボットに用いられる全てのリンクの長さ、運動範囲、および配置などを記述する、運動学的な情報としての情報の第１のセットを受け取ることを含むことができる。情報の第２セットは、物体３０の３Ｄ空間での位置、および、たとえば輪郭モデルなどの物体３０の知られた表面湾曲を記述する情報を含むことができる。本方法１００は、次にステップ１０４へ進む。
【００３６】
[0040]ステップ１０４において、図１のコントローラ１２は、同時に、たとえば境界線１８２（図５参照）の複雑な湾曲に最適化に対処するために、各フィンガ１４の平行面での接触ポイントおよびジョイント角度を、すなわち、代替接触ポイントとして、計算することができる。コントローラ１２は、フィンガ１４が命令された把持姿勢、すなわち入力情報（矢印２５）を介して伝達された姿勢、を達成するのに必要な、フィンガ１４と物体３０の表面との間の接触ポイントのセットを計算する。これは、ステップ１０２の運動学により決定されるように、この面で可能な運動を用いて２Ｄの曲げ面内で計算される。本方法１００は、接触ポイントのセットが計算されてメモリ９０に記録された後、ステップ１０６に進む。
【００３７】
[0041]ステップ１０６において、図１のコントローラ１２は、ステップ１０４からの各２Ｄ面の平行面上の接触ポイントのセットを用い、セグメントのペアの間の必要なジョイントを計算することができる。図３のＸ軸およびＺ軸の向きは分かっているので、コントローラ１２は、計算された接触ポイントの与えられた座標系のセグメント間の角度を容易に決定することができる。
【００３８】
[0042]ステップ１０８において、コントローラ１２は、ジョイント角度の他のセットに対して、いずれのジョイント角度のセットが最適かを決定することができる。あるセットが最適であるとの決定の基準は、校正することができ、また、作業シーケンスにおいて実行される次のステップに対して最も効率的な運動を提供する接触というファクタ、最小のアクチュエータ力または運動範囲というファクタ、物体３０の最も安定する把持とのファクタ等、を含むことができる。最適なセットが決定されると、本方法１００はステップ１１０に進む。
【００３９】
[0043]ステップ１１０において、コントロール動作は、前のステップの実行を介して決定される必要とされるジョイント角度を用いて、フィンガ１４の運動に関して、図１のコントローラ１２により実行することができる。例として、ステップ１１０は、１つ以上のジョイントモータを駆動して１つ以上のテンドン（図示せず）に張力を付与し、フィンガ１４を必要とされる位置に移動させ、計算された接触ポイントおよびジョイント角度を達成することを含むことができる。フィンガ１４への必要な運動命令を計算して発行するのに別個のコントローラが用いられる場合、ステップ１１０は、必要な接触ポイントおよびジョイント角度が計算されたことを示す、追加のコントローラへの命令の通過、たとえばフラグまたはコード、を記録することを含むことができる。
【００４０】
[0044]本発明の実施形態が詳細に説明されたが、当業者は、添付の特許請求の範囲で示される本発明の範囲から逸脱することなく、本発明を実行する様々な代替設計および代替実施形態を認識するであろう。
【図１】
0005580850.tif 000003
【図２】
0005580850.tif 000004
【図３】
0005580850.tif 000005
【図４】
0005580850.tif 000006
【図５】
0005580850.tif 000007
【図６】
0005580850.tif 000008