(57)【特許請求の範囲】
【請求項１】
ａ．ロボット本体と、
ｂ．前記ロボット本体に接続されているロボットアームであって、前記ロボットアームは、エンドエフェクタのための第１のコネクタを含む遠位端部を有する、ロボットアームと、
ｃ．前記ロボットアームと、前記第１のコネクタを経由して前記ロボットアームに接続されているエンドエフェクタとを制御するロボットコントローラと、
ｄ．前記ロボットアームに取り外し可能に接続可能なエンドエフェクタであって、前記エンドエフェクタは、
（１）識別情報または構成情報のうちの少なくとも１つを含むデータを格納する不揮発性メモリと、
（２）通信インターフェースと、
（３）プロセッサと、
（４）前記通信インターフェースを経由した前記プロセッサと前記ロボットコントローラとの間の双方向通信を確立するために前記第１のコネクタと結合可能な第２のコネクタであって、前記プロセッサは、前記第１のコネクタと前記第２のコネクタとの結合時、前記ロボットコントローラへの前記データの送信を引き起こすように構成されている、第２のコネクタと
を含む、エンドエフェクタと
を備えているロボットであって、
（ｉ）前記ロボットコントローラは、前記データに基づいて自己構成し、前記自己構成に基づいて前記接続されているエンドエフェクタの動きを制御するように適合させられており、（ｉｉ）前記データは、識別情報および構成情報の両方を含み、前記構成情報は、前記エンドエフェクタを制御するドライバを特定する、ロボット。
【請求項２】
ａ．ロボット本体と、
ｂ．前記ロボット本体に接続されているロボットアームであって、前記ロボットアームは、エンドエフェクタのための第１のコネクタを含む遠位端部を有する、ロボットアームと、
ｃ．前記ロボットアームと、前記第１のコネクタを経由して前記ロボットアームに接続されているエンドエフェクタとを制御するロボットコントローラと、
ｄ．前記ロボットアームに取り外し可能に接続可能なエンドエフェクタであって、前記エンドエフェクタは、
（１）識別情報または構成情報のうちの少なくとも１つを含むデータを格納する不揮発性メモリと、
（２）通信インターフェースと、
（３）プロセッサと、
（４）前記通信インターフェースを経由した前記プロセッサと前記ロボットコントローラとの間の双方向通信を確立するために前記第１のコネクタと結合可能な第２のコネクタであって、前記プロセッサは、前記第１のコネクタと前記第２のコネクタとの結合時、前記ロボットコントローラへの前記データの送信を引き起こすように構成されている、第２のコネクタと
を含む、エンドエフェクタと
を備えているロボットであって、
（ｉ）前記ロボットコントローラは、前記データに基づいて自己構成し、前記自己構成に基づいて前記接続されているエンドエフェクタの動きを制御するように適合させられており、（ｉｉ）前記データは、構成情報を含まず、前記ロボットは、エンドエフェクタ識別情報を前記エンドエフェクタのための構成情報に関連付ける記録を含むデータベースをさらに備えており、前記ロボットコントローラは、前記エンドエフェクタ識別情報を使用して前記データベースにクエリーを行うことにより対応する構成情報を取得し、前記対応する構成情報に基づいて自己構成するようにさらに適合させられており、前記構成情報は、前記エンドエフェクタを制御するドライバを特定する、ロボット。
【請求項３】
前記第１のコネクタは、ツールプレートに配置されており、前記ツールプレートは、前記ロボットアームの前記遠位端部に配置されており、前記ロボットアームに取り外し可能に接続されている、請求項１に記載のロボット。
【請求項４】
ａ．ロボット本体と、
ｂ．前記ロボット本体に接続されているロボットアームであって、前記ロボットアームは、エンドエフェクタのための第１のコネクタを含む遠位端部を有する、ロボットアームと、
ｃ．前記ロボットアームと、前記第１のコネクタを経由して前記ロボットアームに接続されているエンドエフェクタとを制御するロボットコントローラと、
ｄ．前記ロボットアームに取り外し可能に接続可能なエンドエフェクタであって、前記エンドエフェクタは、
（１）識別情報または構成情報のうちの少なくとも１つを含むデータを格納する不揮発性メモリと、
（２）通信インターフェースと、
（３）プロセッサと、
（４）前記通信インターフェースを経由した前記プロセッサと前記ロボットコントローラとの間の双方向通信を確立するために前記第１のコネクタと結合可能な第２のコネクタであって、前記プロセッサは、前記第１のコネクタと前記第２のコネクタとの結合時、前記ロボットコントローラへの前記データの送信を引き起こすように構成されている、第２のコネクタと
を含む、エンドエフェクタと
を備えているロボットであって、
（ｉ）前記ロボットコントローラは、前記データに基づいて自己構成し、前記自己構成に基づいて前記接続されているエンドエフェクタの動きを制御するように適合させられており、（ｉｉ）前記第１のコネクタは、ツールプレートに配置されており、前記ツールプレートは、前記ロボットアームの前記遠位端部に配置されており、前記ロボットアームに取り外し可能に接続されており、前記ツールプレートは、前記ロボットコントローラと前記エンドエフェクタとの間の双方向通信を支持するための回路を含み、（ｉｉｉ）前記データは、構成情報を含まず、前記ツールプレートは、構成情報を格納する不揮発性メモリと、前記データに基づいて前記エンドエフェクタに対応する構成情報を突き止めるための回路とを含む、ロボット。
【請求項５】
ａ．ロボット本体と、
ｂ．前記ロボット本体に接続されているロボットアームであって、前記ロボットアームは、第１のコネクタを含む遠位端部を有する、ロボットアームと、
ｃ．前記ロボットアームと、前記第１のコネクタを経由して前記ロボットアームに接続されているエンドエフェクタとを制御するロボットコントローラと、
ｄ．前記ロボットアームに取り外し可能に接続可能なツールプレートと、
ｅ．前記ツールプレートに接続されているエンドエフェクタと
を備えているロボットであって、
前記ツールプレートは、
（１）識別情報または構成情報のうちの少なくとも１つを含むデータを格納する不揮発性メモリと、
（２）通信インターフェースと、
（３）プロセッサと、
（４）前記通信インターフェースを経由した前記プロセッサと前記ロボットコントローラとの間の双方向通信を確立するために前記第１のコネクタと結合可能な第２のコネクタであって、前記プロセッサは、前記第１のコネクタと前記第２のコネクタとの結合時、前記ロボットコントローラへの前記データの送信を引き起こすように構成されている、第２のコネクタと
を含み、
さらに、前記ロボットコントローラは、前記データに基づいて自己構成し、前記自己構成に基づいて前記接続されているエンドエフェクタの動きを制御するように適合させられている、ロボット。
【請求項６】
前記データは、識別情報および構成情報の両方を含む、請求項５に記載のロボット。
【請求項７】
前記データは、構成情報を含まず、前記ロボットは、エンドエフェクタ識別情報を前記エンドエフェクタのための構成情報に関連付ける記録を含むデータベースをさらに備えており、前記ロボットコントローラは、前記エンドエフェクタ識別情報を使用して前記データベースにクエリーを行うことにより対応する構成情報を取得し、前記対応する構成情報に基づいて自己構成するようにさらに適合させられている、請求項５に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、概して、ロボットの動作および訓練に関連する。より具体的には、様々な実施形態が、自律的な態様でタスクの遂行を容易にするための、産業用ロボットによるタスク関連情報の獲得、組織化および使用に関連する。
【背景技術】
【０００２】
（発明の背景）
産業用ロボットは、対象物の移動および操作を伴う様々なタスクを遂行する。典型的な産業用ロボットは、例えば、グリッパを装備している１つ以上のアームを有し得、その１つ以上のアームは、ロボットが、特定の座標に従って、特定の場所において物体を取り上げ、それらの物体を目的地へ運び、それらの物体を置くことを可能にし、それによって、例えば、それらの物体を積み重ねるか、またはそれらの物体を目的地にある段ボール箱内に入れる（下記の特許文献１を参照）。
【０００３】
ロボットは、異なるタイプの物体を操作し、かつ、単にそれらの物体を移動させること以上に多くのタスク（例えば、留め具の溶接、接合、適用など）を遂行し得る。結果として、ロボットの付属肢上での配置のために多くの異なる「エンドエフェクタ」が開発されてきた。これらのエンドエフェクタのうちのいくつか（例えば、グリッパ）は、複数のタスクの範囲にわたる有用性を有するが、その他（例えば、溶接ガン）は、単一の専門タスクを遂行するように設計されている。汎用性を助長するために、商業用ロボットは、異なるエンドエフェクタに適応し得る。例えば、異なるエンドエフェクタが、それらのエンドエフェクタがロボットアームのカフ部またはリスト部に交換可能に装着されることを可能にする共通のリンク設計を共有し得る。ロボットをエンドエフェクタに動作可能に適応させることは、より困難である。頻繁に、ロボットのためのエンドエフェクタの選択が、システムの統合または組立て中に発生し、基本的には永久的である。選択されたエンドエフェクタを動作させるために必要なプログラミングが、そのロボットについてのコントローラコードに書き込まれる。いくつかのロボットにおいて、エンドエフェクタは、動作中に動的に取り替えられ得るが、典型的には、これは、予めプログラムされたタスク実行段階で発生する。すなわち、ロボットのコントローラコードは、次のタスクを管理するコードが置換を予期すると、新しいエンドエフェクタの必要性を知らせる。言い換えると、ロボットのエンドエフェクタの動的な取り替えでさえ、ロボットがタスクを実行するにつれてのロボットの予期に応答して、または、ロボットが新しいタスクのための準備をされているとき、発生する。
【０００４】
したがって、必要なことは、オペレータによる任意の置換とロボットによる動的適応とを可能にするエンドエフェクタの活線挿抜に対するより汎用性のあるアプローチである。オペレータは、例えば、ロボットによって遂行されるタスクが、現在のグリッパのセットが可能にするよりも微細な制御を不意に要求することを動作中に見出し得る。そのような状況において、オペレータは、ロボットのタスク実行コードを書き換えることなく、既存のグリッパをより適切なエンドエフェクタに置換したい。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１４／０２７６９５１号明細書
【発明の概要】
【課題を解決するための手段】
【０００６】
（発明の要旨）
本発明は、エンドエフェクタの動的置換に適応することが可能なロボットと、エンドエフェクタが主要制御プログラムを変更することなく動作されることを可能にするソフトウェアを動的にロードしかつランするようにロボットとの通信を容易にするエンドエフェクタに関連付けられているハードウェアおよびソフトウェアとに関連する。そのようなエフェクタ特有のプログラミングは、本明細書において概して「ドライバ」と呼ばれる。ドライバは、対応するエンドエフェクタが検出されると、プログラム実行中に動的にリンクさせられてランされ得る。典型的には、ロボットコントローラは、ドライバのライブラリを格納し、新しいエンドエフェクタが検出されると、適したドライバをロードする。このプロセスは、本明細書において「自己構成」と呼ばれる。しかしながら、コントローラコード自体が、任意の特定のドライバには紐付けられていないが適したドライバが応答するようにコード化されている包括コマンドを発し得る。これは、異なるエンドエフェクタに適応するためにコントローラコードレベルで変化させることが必要となるのを避ける。
【０００７】
用語「構成データ」または「構成情報」は、特定のエンドエフェクタについての適当なドライバを識別するかまたはそのドライバのインスタンスを作成するのに役立つ（例えば、選択してパラメータ化する）情報を指す。したがって、構成データは、実際のドライバ、包括ドライバを特定のエンドエフェクタに合わせるために使用されるパラメータ、または、必要とされるあるタイプのドライバについての単なる識別子であり得る。用語「識別子」または「識別データ」は、エンドエフェクタを識別する情報、および、エンドエフェクタのための適した構成情報と組み合わせられ得るかまたはその適した構成情報を突き止めるために使用され得る情報を指す。後述されるように、ドライバ、構成データおよび識別子は、設計上の優先度および嗜好に応じて、システムの構成要素間で様々に分布させられることが可能である。
【０００８】
様々な実施形態において、エンドエフェクタは、ロボット付属肢に直接的に接続されていないが、代わりに、ロボット付属肢の遠位端部に取り外し可能に装着されている「ツールプレート」に直接的に接続されている。ツールプレートは、機械的にエンドエフェクタを受け取り、電力と、場合によってはデータ信号とをエンドエフェクタに供給し得る。様々なタイプおよび度合いの機能性が、エンドエフェクタとツールプレートとの間に分布させられることが可能であり、ツールプレートは、１つ以上のタイプのエンドエフェクタに適応し得る。この取り決めは、特定のロボット構造に可能な限り適した機能の融通の利く配置を容易にする。例えば、一方の構成要素は、「処理能力のない」（例えば、通信またはデータ処理が可能でない）ものであり、他方は、「高性能」な（例えば、ロボットと通信することとデータ処理動作を行うこととが可能である）ものであり得る。したがって、ある実装は、「処理能力のない」エンドエフェクタと「高性能」なツールプレートとを特徴とする。高性能なツールプレートは、（例えば、エンドエフェクタのコネクタの電気的特性または機械的構成に基づいて）複数のタイプの接続可能なエンドエフェクタのうちのどれがそのツールプレートに取り付けられたかを検出し得、適したドライバをロードするロボットコントローラにこれを報告する。代替的には、高性能なツールプレートは、単一のタイプのエンドエフェクタのみに適応し得、この場合、ツールプレート自体のアイデンティティをロボットコントローラに報告することは、適当なドライバを決定するために十分であるから、ツールプレートは、ツールプレート自体のアイデンティティをロボットコントローラに報告しさえすればよい。
【０００９】
別の実装は、「高性能」なエンドエフェクタと「処理能力のない」ツールプレートとを特徴とし、この場合、ツールプレートは、単に、エンドエフェクタのオンボードプロセッサまたはコントローラとロボットコントローラとの間の通信を容易にする。エンドエフェクタは、有線形式または無線形式でエンドエフェクタ自体のアイデンティティをロボットコントローラに報告する。この構成において、ツールプレートは、例えば、ロボット付属肢と、機械的に互換性がないエンドエフェクタとの間のアダプタとして役に立ち得る。後述されるように、「報告」は、能動的（「高性能」な構成要素が、勝手にロボットコントローラとの通信を開始し、情報を送り得る）または受動的（「高性能」な構成要素が、取り付けを検出したロボットコントローラからのポーリング信号または他の通信に応答し得る）であり得る。
【００１０】
従って、第１の局面において、本発明は、置換可能なエンドエフェクタを有するロボットシステムに関連する。様々な実施形態において、ロボットシステムは、ロボット本体と；ロボット本体に接続されているロボットアームであって、ロボットアームは、第１のコネクタを含む遠位端部を有する、ロボットアームと；ロボットアームとロボットアームに接続されているエンドエフェクタとを制御するためのロボットコントローラと；ロボットアームに取り外し可能に接続可能なエンドエフェクタアセンブリとを含み、エンドエフェクタアセンブリは、（１）エンドエフェクタと、（２）識別情報および／または構成情報を含むデータを格納する不揮発性メモリと、（３）通信インターフェースと、（４）プロセッサと、（５）通信インターフェースを経由したプロセッサとロボットコントローラとの間の双方向通信を確立するために第１のコネクタとしっかりと結合可能だが取り外し可能な第２のコネクタとを含む。プロセッサは、第１のコネクタと第２のコネクタとの結合時、ロボットコントローラへのデータの送信を引き起こすように構成されており、ロボットコントローラは、データに基づいて自己構成し、接続されているエンドエフェクタの動きを自己構成に基づいて制御するように適合させられている。
【００１１】
様々な実施形態において、第１のコネクタは、ツールプレートに配されており、ツールプレート自体は、ロボットアームの遠位端部に配されており、かつ、ロボットアームに取り外し可能に接続されている。エンドエフェクタは、ツールプレートの反対側に接続されている。ツールプレートは、不揮発性メモリと、プロセッサと、通信インターフェースとを含む。いくつかの実装において、ツールプレートは、単一のタイプのエンドエフェクタと結合するように、かつ、識別情報および／または識別情報に関連する構成情報を格納するように適合させられている。他の実装において、ツールプレートは、複数のタイプのエンドエフェクタに適応し、かつ、エンドエフェクタタイプごとに識別情報および／または構成情報を格納し得る。エンドエフェクタとツールプレートとの結合は、機械的にまたはデータ交換によってエンドエフェクタタイプを確立する。次に、ツールプレートは、ロボットコントローラと通信することにより、識別情報および／または構成情報をロボットコントローラに提供する。
【００１２】
記載のとおり、ロボットコントローラは、配置されたエンドエフェクタに基づいて自己構成する。いくつかの実施形態において、エンドエフェクタアセンブリは、識別情報および構成情報の両方（例えば、コントローラプログラミングがエンドエフェクタを動作させるために使用するドライバ）を供給する。他の実施形態において、エンドエフェクタアセンブリは、識別情報のみを供給し、コントローラは、適したドライバを突き止める。例えば、コントローラ（または他のロボット構成要素）は、一連のドライバと、エンドエフェクタを対応するドライバに関連付けるデータベースとを格納し得る。コントローラがエンドエフェクタのアイデンティティを学習すると、コントローラは、（主要制御プログラムを変更することなく）識別されたエンドエフェクタに対応するデータベースエントリに基づいて、適したドライバを選択してロードする。コントローラが適切なドライバを突き止めることが可能ではない場合、コントローラは、エンドエフェクタのためのドライバのマスターリポジトリとして作用するサーバと通信することによって、または、適切なドライバのインターネット検索を自律的に行うことによって、遠隔にドライバを捜し求め得、適切なドライバが発見される場合にそのドライバをダウンロードおよびインストールする。
【００１３】
別の局面において、本発明は、さらに、置換可能なエンドエフェクタを有するロボットシステムに関連する。様々な実施形態において、ロボットシステムは、ロボット本体と；ロボット本体に接続されているロボットアームであって、ロボットアームは、第１のコネクタを含む遠位端部を有する、ロボットアームと；ロボットアームと、第１のコネクタを経由してロボットアームに接続されているエンドエフェクタとを制御するためのロボットコントローラと；ロボットアームに取り外し可能に接続可能なツールプレートと；ツールプレートに接続されているエンドエフェクタとを含み、ツールプレートは、（１）識別情報または構成情報のうちの少なくとも１つを含むデータを格納する不揮発性メモリと、（２）通信インターフェースと、（３）プロセッサと、（４）通信インターフェースを経由した、プロセッサとロボットコントローラとの間の双方向通信を確立するために第１のコネクタと結合可能な第２のコネクタとを含む。プロセッサは、第１のコネクタと第２のコネクタとの結合時、ロボットコントローラへのデータの送信を引き起こすように構成されており、ロボットコントローラは、データに基づいて自己構成するように、かつ、接続されているエンドエフェクタの動きを自己構成に基づいて制御するように適合させられている。
【００１４】
いくつかの実施形態において、データは、識別情報および構成情報の両方を含む。他の実施形態において、データは、構成情報を含まず、ロボットシステムは、エンドエフェクタ識別情報をそのエンドエフェクタのための構成情報と関連付ける記録を含むデータベースをさらに備えている。コントローラは、識別情報を使用してデータベースにクエリーを行うことにより対応する構成情報を取得するように、かつ、対応する構成情報に基づいて自己構成するようにさらに適合させられている。
【００１５】
本発明は、例えば、以下を提供する。
（項目１）
ａ．ロボット本体と、
ｂ．前記ロボット本体に接続されているロボットアームであって、前記ロボットアームは、エンドエフェクタのための第１のコネクタを含む遠位端部を有する、ロボットアームと、
ｃ．前記ロボットアームと、前記第１のコネクタを経由して前記ロボットアームに接続されているエンドエフェクタとを制御するロボットコントローラと、
ｄ．前記ロボットアームに取り外し可能に接続可能なエンドエフェクタであって、前記エンドエフェクタは、
（１）識別情報または構成情報のうちの少なくとも１つを含むデータを格納する不揮発性メモリと、
（２）通信インターフェースと、
（３）プロセッサと、
（４）前記通信インターフェースを経由した前記プロセッサと前記ロボットコントローラとの間の双方向通信を確立するために前記第１のコネクタと結合可能な第２のコネクタであって、前記プロセッサは、前記第１のコネクタと前記第２のコネクタとの結合時、前記ロボットコントローラへの前記データの送信を引き起こすように構成されている、第２のコネクタと
を含む、エンドエフェクタと
を備えているロボットであって、
前記ロボットコントローラは、前記データに基づいて自己構成し、前記自己構成に基づいて前記接続されているエンドエフェクタの動きを制御するように適合させられている、ロボットシステム。
（項目２）
前記データは、識別情報および構成情報の両方を含む、上記項目に記載のロボット。
（項目３）
前記データは、構成情報を含まず、前記ロボットシステムは、エンドエフェクタ識別情報を前記エンドエフェクタのための構成情報と関連付ける記録を含むデータベースをさらに備えており、前記コントローラは、前記識別情報を使用して前記データベースにクエリーを行うことにより対応する構成情報を取得し、前記対応する構成情報に基づいて自己構成するようにさらに適合させられている、上記項目のいずれかに記載のロボット。
（項目４）
前記第１のコネクタは、ツールプレートに配されており、前記ツールプレートは、前記ロボットアームの前記遠位端部に配されており、前記ロボットアームに取り外し可能に接続されており、前記ツールプレートは、前記ロボットコントローラと前記エンドエフェクタとの間の前記双方向通信を支持するための回路を含む、上記項目のいずれかに記載のロボット。
（項目５）
前記データは、構成情報を含まず、前記ツールプレートは、構成情報を格納する不揮発性メモリと、前記データに基づいて前記エンドエフェクタに対応する構成情報を突き止めるための回路とを含む、上記項目のいずれかに記載のロボット。
（項目６）
ａ．ロボット本体と、
ｂ．前記ロボット本体に接続されているロボットアームであって、前記ロボットアームは、第１のコネクタを含む遠位端部を有する、ロボットアームと、
ｃ．前記ロボットアームと、前記第１のコネクタを経由して前記ロボットアームに接続されているエンドエフェクタとを制御するロボットコントローラと、
ｄ．前記ロボットアームに取り外し可能に接続可能なツールプレートと、
ｅ．前記ツールプレートに接続されているエンドエフェクタと
を備えているロボットであって、
前記ツールプレートは、
（１）識別情報または構成情報のうちの少なくとも１つを含むデータを格納する不揮発性メモリと、
（２）通信インターフェースと、
（３）プロセッサと、
（４）前記通信インターフェースを経由した前記プロセッサと前記ロボットコントローラとの間の双方向通信を確立するために前記第１のコネクタと結合可能な第２のコネクタであって、前記プロセッサは、前記第１のコネクタと前記第２のコネクタとの結合時、前記ロボットコントローラへの前記データの送信を引き起こすように構成されている、第２のコネクタと
を含み、
さらに、前記ロボットコントローラは、前記データに基づいて自己構成し、前記自己構成に基づいて前記接続されているエンドエフェクタの動きを制御するように適合させられている、ロボットシステム。
（項目７）
前記データは、識別情報および構成情報の両方を含む、上記項目のいずれかに記載のロボット。
（項目８）
前記データは、構成情報を含まず、前記ロボットシステムは、エンドエフェクタ識別情報を前記エンドエフェクタのための構成情報と関連付ける記録を含むデータベースをさらに備えており、前記コントローラは、前記識別情報を使用して前記データベースにクエリーを行うことにより対応する構成情報を取得し、前記対応する構成情報に基づいて自己構成するようにさらに適合させられている、上記項目のいずれかに記載のロボット。
【００１６】
（摘要）
エンドエフェクタの動的置換に適応することが可能なロボットが、エンドエフェクタが主要制御プログラムを変更することなく動作されることを可能にするソフトウェアをロードしかつランする。ドライバは、対応するエンドエフェクタが検出されると、プログラム実行中に動的にリンクさせられてランされ得る。典型的には、ロボットコントローラは、ドライバのライブラリを格納し、新しいエンドエフェクタが検出されると、適したドライバをロードする。
【図面の簡単な説明】
【００１７】
前述は、特に図面と併用されると、本発明の以下の詳細な説明からより簡単に理解される。
【図１Ａ】図１Ａは、様々な実施形態に従ったロボットの斜視図である。
【図１Ｂ】図１Ｂは、図１Ａに示されているロボットの内部および外部の構成要素を概略的に示している。
【図２】図２Ａおよび図２Ｂは、本発明の実施形態に従ったツールプレートの斜視図である。
【図３Ａ】図３Ａおよび図３Ｂは、それぞれ、斜視図および平面図であり、本明細書に従ったツールプレートがロボットアームの端部と結合し得る態様を示している。
【図３Ｂ】図３Ａおよび図３Ｂは、それぞれ、斜視図および平面図であり、本明細書に従ったツールプレートがロボットアームの端部と結合し得る態様を示している。
【図４】図４は、本明細書の実施形態に従った、ロボットアームと、ツールプレートと、１対のエンドエフェクタとを含む相互運用システムを概略的に示している。
【発明を実施するための形態】
【００１８】
（詳細な説明）
まず、代表的なロボット１００を示している図１Ａと、様々な内部動作構成要素を詳述する図を示している図１Ｂとを参照する。ロボット１００は、物体を操作するための１つ以上のエンドエフェクタ１１０において終端する少なくとも１つのロボットアーム１０５を含む−図１Ｂに示されているように、ロボットは、１つ以上のアームを有し得る−。アーム１０５は、適切な（かつ従来の）回転関節によって提供されるいくらか（例えば、７）の自由度を有する。各関節は、望ましくは、ロボットに適用される外部力（例えば、予期せぬ衝突からもたらされる力など）をロボットが感知することを可能にする直列弾性アクチュエータを採用する。図１Ａに示される実施形態において、ロボットが物体を把持すること、持ち上げること、移動させることを可能にする平行ジョーグリッパ１１０がアーム１０５の端部に装着されている。後述されるように、グリッパ１１０は、可能性のある多くのエンドエフェクタのうちの１つにすぎない。ロボット１００は、頭状スクリーン１１２も有し、頭状スクリーン１１２は、近隣の人へのロボットの方向性を強めるかまたはロボットの状態を公表する１対の眼または他の出力を表示し得る。いくつかの実施形態において、スクリーン１１２は、垂直軸周りで回転可能であり、スクリーン１１２の長軸に平行に走る水平軸周りで回転可能ではない。
【００１９】
ロボット１００は、１つ以上のカメラ１１５を含む。図１Ａにおいて、カメラ１１５は、スクリーン１１２より上に示されている。ロボット１００は、付属肢１０５のリスト部１１７において１つ以上の距離センサも含み得、いくつの実施形態において、１つ以上のソナーセンサが、その環境において移動している物体を検出する。物体を視覚的および／または聴覚的に検出するこれらのセンサに加えて、ロボット１００は、人間（例えば、トレーナー）との機械的相互作用を容易にするいくつかのタッチ感知センサおよび機械的特徴をアーム１０５上に含み得る。例えば、ロボット１００は、ユーザが（例えば、メニュー項目を選択することによって、訓練モードと実行モードとの間で切り替えることによって）スクリーン１１２上に表示された情報に応答して、（物体が箱内に何行何列で梱包されるのかを指し示すための）数字、またはテキスト（例えば、パスワードまたは物体名およびタスク名）をデジタル回転ノブによって入力することを可能にする１組のノブおよびボタン（「ナビゲータ」）１１８を含み得る。
【００２０】
上述されたロボット１００は、当然ながら、本発明に従った、可能性のある多くのロボットの実施形態のうちの１つにすぎず、上述された様々な特徴は、限定的なものではなく代表的なものである。様々な構成要素および特徴が、当業者にはすぐにわかる態様で改変されることが可能である。例えば、ロボットは、一般的には、任意の数のアーム（または、より一般的には、付属肢）を有し得、各アームは、任意の数の自由度を有し得る。アームのリンクは、１自由度での回転関節（例えば、蝶番関節）によって接合される必要はないが、例えば、２回転自由度を提供する臼状関節、または、並進運動を容易にするレールシステムを含み得る。
【００２１】
ロボット動作は、ロボットコントローラ１２５によって管理され、ロボットコントローラ１２５は、ロボットの位置、運動学、動力学および力を監視および変更し；ロボットコントローラによって指示されるようにロボットおよび／またはその可動部品を移動させるように関節水準のアクチュエータを制御し；画像処理、ユーザ相互作用などを容易にする高水準の計算的機能性を行う。ロボットコントローラ１２５は、概して、汎用コンピュータまたは専用コンピュータ上のハードウェア、ソフトウェア、またはそれらの両方の組み合わせに実装され得、汎用コンピュータまたは専用コンピュータは、双方向システムバス１２８を含み、中央処理ユニット（ＣＰＵ）１３０、メモリ１３３および記憶装置１３６は、双方向システムバス１２８を通じて、相互に、および、内部または外部の出力／入力装置（例えば、スクリーン１１２、カメラ１１５、ナビゲータ１１８、リストカフ部、ならびに、任意の他の入力装置および／または外部センサ）と通信する。従来の通信インターフェース１３８は、ネットワーク（例えば、インターネット、および／または、任意の他の地上あるいは無線の電気通信ネットワークあるいはシステム）を通じた通信を容易にする。記憶装置１３６は、エンドエフェクタデータベース１４０を格納し、エンドエフェクタデータベース１４０は、より詳細に後述されるように、ロボット１００に関連付けられ得る様々なエンドエフェクタ１１０に関する情報を維持する。様々なモジュールが任意の適切なプログラミング言語（限定なしに、高水準言語（例えば、Ｃ、Ｃ＋＋、Ｃ＃、Ａｄａ、Ｂａｓｉｃ、Ｃｏｂｒａ、Ｆｏｒｔｒａｎ、Ｊａｖａ（登録商標）、Ｌｉｓｐ、Ｐｅｒｌ、Ｐｙｔｈｏｎ、Ｒｕｂｙ、またはＯｂｊｅｃｔ  Ｐａｓｃａｌ）あるいは低水準アセンブリ言語）を含む）でプログラムされ得る。ロボットコントローラ１２５は、ソフトウェア、ハードウェア、または組み合わせに実装され得る。
【００２２】
エンドエフェクタ１１０は、ツールプレート１５０を経由してロボットアーム１０５に接続され、ツールプレート１５０は、１つ以上のタイプのエンドエフェクタ１１０に適応し得、いくつかの実装において、一度に１つ以上のエンドエフェクタに適応し得る。このようにして、ツールプレート１５０は、ロボットアーム１０５を経由してロボット１００に機械的および電気的に接続される「万能」コネクタとして作用し、ロボットアーム１０５は、エンドエフェクタ１１０から機械的および電気的なコネクタを受け取る。加えて、ツールプレート１５０は、特定のエンドエフェクタ１１０のための適したドライバを突き止めかつインストールすることにおいてロボットコントローラ１２５をアシストする。様々な実施形態において、ツールプレート１５０は、エンドエフェクタが取り外されて異なる（しかし、互換性のある）エンドエフェクタに置換されたとき、ロボットコントローラに警告し得、コントローラ１２５が適した新しいドライバをリアルタイムに突き止め、ロードし、ランすることを可能にする情報を提供する。ツールプレート１５０は、異なって構成されているいくつかのツールプレートのうちの１つであり得、各ツールプレートは、ロボットアーム１０５と結合するための同一の機械的および電気的コネクタを有するが、異なるエンドエフェクタを受け取るための異なるレセプタクルを有する。このようにして、単一のツールプレートが物理的に支持することが可能であるレセプタクルの数より多い数のエンドエフェクタに適応することが可能であり、システム拡張性も促進する。異なるコネクタ構成を有する新しいエンドエフェクタが開発される場合、ロボット１００全体を、またはロボットアーム１０５さえも、置換する必要はない。むしろ、ツールプレート１５０を挿抜する能力が、新しいツールプレートを設計することのみが必要であることを意味する。この点、後述されるツールプレート１５０の特徴が融通性を提供する。
【００２３】
図２Ａおよび図２Ｂは、代表的なツールプレート１５０の両面を示しており、図３Ａおよび図３Ｂは、ロボットアームの端部へのその取り付けを示している。面２０５は、円形の外周を有する凹部２１０と、凹部２１０の中央において、上昇したプラットフォーム２１５とを含み、上昇したプラットフォーム２１５内には、相補的なレセプタクルへの取り外し可能な電気的接続を確立するための１０個のバネ荷重ピン（ポゴピン）２２０が存在する。複数の孔２２５がツールプレート１５０を通って延在し、複数の孔２２５は、ボルトがロボットアームへの取り付けを確実にするために通過させられることを可能にする。図示されている実施形態において、エフェクタに面する面２３０は、孔２２５を露出する窪み２４０を有する上昇した環状隆起部２３５を含む。いくつかの実施形態において、これらの窪み２４０は、隆起部２３５を受け取るエンドエフェクタ上の環状凹部（示されていない）内において相補的拡張部と相互係止する。隆起部２３５の上面に沿った一連のボルト穴２４５が、エンドエフェクタがツールプレート１５０に固定されることを可能にする。図示されている実施形態において、面２３０へのエンドエフェクタの取り付けは、機械的な接続のみをもたらす。電気信号および電力が、１対の電気コネクタ（例えば、Ｍ８産業用コネクタ）によって、装着されたエンドエフェクタに送達され、１対の電気コネクタは、適切なケーブルを経由してエンドエフェクタに接続される。詳細に後述されるように、電気信号および電力は、典型的には、ロボットコントローラを端緒とし、ピンコネクタ２２０を経由してツールプレート１５０によって受信される。ツールプレート１５０は、ロボットから受信した信号および／または電力を、ロボットに装着されているエンドエフェクタのための異なる形態に変換する回路を含み得る。
【００２４】
図３Ｂを参照すると、ツールプレート１５０は、ロボットアーム１０５の端面３０５に接触させられており、端面３０５上の上昇した環状隆起部３１０は、ツールプレート１５０の相補的な凹部２１０内に受け取られている。一連のボルト穴３１５は、ツールプレートを通る孔２２５と整列しており、ツールプレート１５０がロボットアーム１０５にボルト締めされるかまたは他の態様で機械的に固定されることを可能にする。しかしながら、いくつかの実施形態において、着脱が簡易な掛け金が、ボルトの代わりに使用される。ツールプレート１５０およびロボットアーム１０５が、図３Ｂに示されている結合した構成をとる場合、ピンコネクタ２２０は、レセプタクル３２０内に受け取られる。
【００２５】
ツールプレート１５０の動作および重要な内部構成要素が図４に示されている。ツールプレートは、メモリ４０５、サポート回路４１０および制御素子４１５を含み、制御素子４１５は、マイクロプロセッサ、マイクロコントローラ、または他の適切な構成要素であり得る。後述されるように、制御素子４１５の性能は、ツールプレート１５０に割り当てられる機能に依存する。ツールプレートは、１つ以上のエンドエフェクタ４２０と機械的および電気的に結合し、エンドエフェクタ４２０のうちの２つが、それぞれ、４２０１、４２０２において示されている。すなわち、ツールプレート１５０は、エンドエフェクタ４２０ごとに１つずつ、２つのレセプタクルを有し、各レセプタクルは、エンドエフェクタと機械的および電気的に結合することを容易にするために適した特徴を含む。上述したように、ツールプレート１５０は、１つ以上のエンドエフェクタ４２０に同時に適応し得、かつ／または、異なるタイプのエンドエフェクタに交換可能に適応し得る。例えば、図１に示されているような物体を取り囲む指状物を有するグリッパの代わりに、エンドエフェクタ４２０は、吸引グリッパ、または、物体を保持または操作する他の手段を含み得る。代替的にまたは加えて、エンドエフェクタは、ツール（例えば、ドリル、鋸、溶接機など）、測定装置（例えば、定規、計器など）、または他の機能実装装置であり得る。
【００２６】
ロボットアーム１０５と機械的および電気的に結合されるとき、ツールプレート１５０は、電力を受信し、ロボットコントローラ１２５との通信を確立する（図１Ｂを参照のこと）。典型的には、これは、中間ハードウェア（例えば、インターフェース４２５）と局所モータコントローラ４３０とを経由して発生する。インターフェースは、ロボットからツールプレート１５０へ電力を供給し、例えばＲＳ−４８５シリアル通信プロトコルを経由したツールプレート１５０との双方向データ通信を支持する。ツールプレート１５０のサポート回路４１０は、相補的な通信構成要素を含む。局所モータコントローラ４３０は、（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）などのリンク層プロトコルを経由して）ロボットコントローラ１２５からコマンドを受信し、ロボットアーム１０５の１つ以上の近隣の関節に関連付けられているモータを作動させ、それにより、コマンドを果たす。図示されている実装において、局所コントローラ４３０は、エンドエフェクタ４２０を動作させるコマンドもロボットコントローラ１２５から受信する。局所コントローラ４３０は、（例えば、ＲＳ−４８５を使用して）インターフェース４２５を経由してツールプレート１５０へこれらのコマンドを伝達し、ツールプレート１５０は、デジタル出力ラインを経由して、扱われているエンドエフェクタへコマンドを発する（または、電力を提供する）。コマンドは、典型的には、エンドエフェクタに特有の低水準コマンドである。すなわち、ツールプレート１５０は、ロボットコントローラ１２５からの高水準の包括コマンドに対応し、かつこれらのコマンドをエフェクタ特有の信号に変換するように構成され得るが、たいていの場合、これは、なされない。むしろ、より典型的な実装において、ロボットコントローラ１２５は、エフェクタ特有のコマンドを送達するように「自己構成」されている。これが成し遂げられ得る態様が後述される。ロボットアーム１０５自体が、高水準のタスクを遂行するプロセッサを含み得ることも強調されるべきである。したがって、プロセッサ４１５は、ロボットアーム１０５との通信を制御する「マスター」として作用し得る一方で、プロセッサ４１５は、代わりに、ロボットアーム内のプロセッサに対して「スレーブ」として作用し得る（プロセッサ４１５は、例えば、ツールプレート１５０をポーリングし、データをロボットコントローラへ送信し得る）。
【００２７】
エンドエフェクタ４２０がツールプレート１５０と結合されると、様々な通信が起こり、その通信の最終結果は、電力を提供することによりロボットコントローラ１２５とエンドエフェクタ４２０との間の通信を可能にすること、および、エンドエフェクタを動作させるためにロボットコントローラが自己構成することを可能にすることである。１つの代表的な実装において、エンドエフェクタは、ロボットコントローラに提供すべきオンボード情報を有さない「処理能力のない」装置である。ツールプレート１５０は、レセプタクルの構成（例えば、レセプタクルが、単一のタイプのエンドエフェクタに対応するように設計されている）のおかげで、または、レセプタクルの機械的特性および／または電気的特性から、または、ツールプレートがたった１つのタイプのエンドエフェクタに対応するので、エンドエフェクタを認識する。図示されている実施形態において、メモリ４０５は、可能性のある２つのエンドエフェクタ４２０１、４２０２ごとに識別子を格納する。制御素子４１５が特定のエンドエフェクタの取り付けを検出するとき、制御素子４１５は、対応する識別子をロボットアーム１０５を経由してロボットコントローラ１２５に伝達する。ロボットコントローラは、エンドエフェクタのための構成情報をデータベース１４０（図１Ｂを参照のこと）において突き止めるために、伝えられた識別子を使用する。データベース１４０は、構成情報（例えば、どこかに格納されているドライバまたはドライバに対するポインタ）のライブラリを含み得、受信したエンドエフェクタ識別子に基づくドライバ情報を選択すると、ロボットコントローラ１２５は、適当なドライバを自己構成する（すなわち、ロードしかつインストールする）。ツールプレート１５０は、エンドエフェクタの据え付けと取り外しとの両方を検出することが可能であるので、これらは、ロボットの電源を切ってロボットを再起動することなく、リアルタイムに「活線挿抜」され得る。回路４１０を経由して、制御素子４１５は、新しいエンドエフェクタが取り付けられたことをロボットコントローラ１２５に警告し、新しいエンドエフェクタについての識別子を提供する。
【００２８】
（例えば、エンドエフェクタがロボットアーム１０５に直接取り付けられている場合）ツールプレート１５０またはロボットコントローラ１２５のどちらかによってエンドエフェクタの取り付けを検出することは、能動的な方式または受動的な方式で起こり得る。例えば、エンドエフェクタまたはツールプレートは、ロボットコントローラまたはツールプレートとの通信を開始することが可能である。代替的には、エンドエフェクタまたはツールプレートは、取り付け時、特徴的な信号についてポーリングするロボットコントローラによって検出されるその特徴的な信号を放つことが可能である。どちらの場合でも、ロボットコントローラ１２５（または、いくつかの実装において、ロボットアーム１０５）は、コマンドをエンドエフェクタまたはツールプレートに送り、エンドエフェクタまたはツールプレートは、データ（コマンドに応じて、Ｉ／Ｏデータあるいはステータスデータ、または、格納されている構成／識別データ）で応答する。
【００２９】
いくつかの実施形態において、構成情報は、ツールプレート１５０のメモリ４０５内に格納されており、エンドエフェクタの取り付けを検出すると、制御素子４１５は、メモリ４０５内において、対応する構成情報を突き止め、この対応する構成情報をロボットコントローラ１２５へ送信する。今度の場合も、構成情報は、ドライバ自体またはドライバに対するポインタであり得、構成情報は、ロボットコントローラ１２５が、自己構成する前にドライバの最新バージョンをダウンロードすること、または、ロボットコントローラ１２５が特定のエンドエフェクタについての包括ドライバをパラメータ化することを可能にする情報をダウンロードすることを可能にする。メモリ４０５は、エンドエフェクタ特有の測定基準（例えば、サイクルカウント、動作の時間）も格納することが可能であり、予防保全（例えば、吸引カップがその定格サイクル限界に近いとき、その吸引カップを置換すること）を可能にする。
【００３０】
様々な実装において、レセプタクル４２０のいずれかは、１つ以上のタイプのエンドエフェクタに適応することが可能である。そのような場合、エンドエフェクタは、新しく据え付けられたエンドエフェクタとの通信を確立した時、ツールプレート１５０に提供される（または、ツールプレート１５０によって読み出される）識別子を格納し得る。この場合、ツールプレート１５０は、識別子をロボットコントローラ１２５に伝達するか、または、いくつかの実施形態において、メモリ４０５から構成情報を読み出すために識別子を使用してこの情報をロボットコントローラ１２５に送る。情報の最適分布―すなわち、ツールプレート１５０上に構成情報を格納するべきか、または、ロボット自体の不揮発性メモリ内に構成情報を格納するべきか―が、設計上の選択を表す。ツールプレート１５０に格納される情報が多ければ多いほど、ロボットはより包括的になり得るが、ツールプレート１５０はより多くのメモリを要求する。別の検討事項は、情報またはプログラミングをアップデートする必要性である。例えば、構成データが継時変化しやすい場合、不変情報（例えば、エンドエフェクタ識別子）のみをメモリ４０５内に格納することが望ましいことがある。ロボットコントローラ１２５は、起動時、または、新しいロボットアームの据え付けが検出されると、その新しいロボットアームが最新のドライバを有することを検証することが可能である。当然ながら、格納されている構成情報をロボットに提供する前にツールプレート１５０がその構成情報をアップデートのためにチェックすることを可能にする機能性をツールプレート１５０上に含めることは可能であるが、そのような性能は、オンボード接続性、または、（例えば、インターネットを経由して）ロボットを通してネットワークリソースにアクセスする能力のどちらかを要求する。
【００３１】
エンドエフェクタが「高性能」である（すなわち、そのエンドエフェクタ独自の構成情報を含む）場合、これは、ツールプレート１５０によって読み出され、かつ、ロボットコントローラ１２５に提供されることが可能である。ツールプレート１５０が、適切なオンボード無線インターフェースを使用して、エンドエフェクタおよび／またはロボットコントローラ１２５と無線で通信することさえ可能である。言い換えると、ロボットコントローラ１２５が適切なドライバを突き止めることができない場合、ロボットコントローラ１２５は、ドライバの遠隔の（例えば、ホスト型の）リポジトリにおいてドライバを検索し得るか、または、適当なドライバのインターネット検索を自律的に行い得、ロボットが正常に動作することを可能にする前に、ツールプレート１５０によって適当な動作および機能性をインストールおよびテストする。
【００３２】
前述したように、ツールプレート１５０の制御素子４１５は、ツールプレートが遂行する機能に応じて、任意の適切なマイクロプロセッサまたはマイクロコントローラであり得る。例えば、制御素子４１５は、組み込み動作のために特別に設計されたプログラマブルマイクロコントローラ、または、１つ以上の従来のプロセッサ（例えば、Ｓａｎｔａ  Ｃｌａｒａ，  ＣａｌｉｆのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されたＰｅｎｔｉｕｍ（登録商標）ファミリーまたはＣｅｌｅｒｏｎファミリーのプロセッサ）であり得る。メモリ４０５は、上述した動作に関連するプログラムおよび／またはデータを格納し得る。メモリ４０５は、一般に入手可能なハードウェア（例えば、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、電気的に消去可能なプログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、プログラマブル読取専用メモリ（ＰＲＯＭ）、またはプログラマブル論理デバイス（ＰＬＤ））に存在するランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、および／またはＦＬＡＳＨメモリを含み得る。
【００３３】
本明細書において採用されている用語および表現は、限定する用語および表現としてではなく、説明する用語および表現として使用され、そのような用語および表現を使用する場合に、示され説明されている特徴およびその一部の任意の均等物を除く意図はない。加えて、本発明のある特定の実施形態を説明したので、本明細書に開示されている概念を組み入れる他の実施形態が、本発明の精神および範囲から逸脱することなく使用され得ることは、当業者に明白である。具体的には、本発明の実施形態は、その特徴の全てを含む必要がないか、または、本明細書に記載されている利点の全てを有する。むしろ、それらは、特徴および利点の任意の部分集合または組み合わせを有し得る。従って、説明されている実施形態は、全ての局面において、制限ではなく単なる例示としてみなされる。
【図１Ａ】
0006329218.tif 000002
【図１Ｂ】
0006329218.tif 000003
【図２】
0006329218.tif 000004
【図３Ａ】
0006329218.tif 000005
【図３Ｂ】
0006329218.tif 000006
【図４】
0006329218.tif 000007