(57)【特許請求の範囲】
【請求項１】
複数のリンクを有するロボットアームと、前記リンクを相互に接続する関節と、前記関節を駆動する駆動源と、前記リンクに配置された線材と、前記駆動源を制御する制御装置と、を備えたロボット装置において、
前記線材が変形した際に前記線材から発生する力を測定するセンサを備え、
前記制御装置は、前記センサが出力する値に基づき前記駆動源を制御することを特徴とするロボット装置。
【請求項２】
請求項１に記載のロボット装置において、前記関節が回転関節、前記駆動源が回転駆動源であり、前記関節は当該関節の回転駆動トルクを測定するトルクセンサを備え、
前記制御装置は、前記トルクセンサで測定したトルク値、および前記センサで測定した前記関節の回転軸廻りの前記力に基づき、前記駆動源の回転駆動トルクを制御するトルク制御を実行することを特徴とするロボット装置。
【請求項３】
請求項１または２記載のロボット装置において、前記センサが前記関節の回転軸に設置されることを特徴とするロボット装置。
【請求項４】
請求項１または２記載のロボット装置において、前記センサが前記リンクに設置されることを特徴とするロボット装置。
【請求項５】
請求項１から４のいずれか１項に記載のロボット装置において、
前記線材は少なくとも前記駆動源に駆動信号を伝達し、
前記駆動信号が電気信号であることを特徴とするロボット装置。
【請求項６】
請求項１から５のいずれか１項に記載のロボット装置において、前記線材が前記ロボットアームの外側または内側に設置されることを特徴とするロボット装置。
【請求項７】
請求項１から６のいずれか１項に記載のロボット装置において、前記ロボットアームにエンドエフェクタが装着された際、前記エンドエフェクタは前記線材と接続されることを特徴とするロボット装置。
【請求項８】
請求項１から７のいずれか１項に記載のロボット装置において、
前記センサは、
前記線材の動作により変形する変形部材に設けられ、前記変形部材の変形量を検出することで前記線材から発生する力を測定することを特徴とするロボット装置。
【請求項９】
請求項１から８のいずれか１項に記載のロボット装置の制御装置に、前記のロボット制御を実行させることを特徴とするロボット制御プログラム。
【請求項１０】
請求項９に記載のロボット制御プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１１】
複数のリンクを有するロボットアームと、前記リンクを相互に接続する関節と、前記関節を駆動する駆動源と、前記リンクに配置された線材と、前記駆動源を制御する制御装置と、を備えたロボット装置の制御方法において、
前記制御装置が、前記線材が変形した際に前記線材から発生する力をセンサによって測定する測定工程と、
前記制御装置が、前記測定工程で測定した力の測定値に基づき、前記駆動源を制御する制御工程を含むことを特徴とするロボット装置の制御方法。
【請求項１２】
請求項１から８のいずれか１項に記載のロボット装置によって部品を操作して物品を製造することを特徴とする物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームの複数のリンクに沿ってロボットアーム各部に駆動信号ないし制御信号を伝達する線材が配置されるロボット装置、制御プログラム、記録媒体、ロボット装置の制御方法、および物品の製造方法に関するものである。
【背景技術】
【０００２】
近年、ロボット装置、例えば関節が回転拘束される多軸多関節ロボットにおいて、駆動源がリンクに与えているトルクを計測するためのトルクセンサを関節に配置して関節に生じるトルクをトルク（力）制御する多関節ロボットが注目を集めている。関節にトルクセンサを配置することにより、多関節ロボットの関節に生じる力の制御やロボットアームの先端に配置されたエンドエフェクタが部品に与える荷重ないし力を制御する事が容易になった。
【０００３】
現在のところ、トルクセンサを有しトルク制御が可能なロボット装置は、自動車のエンジン部品の組み立など、数百グラムから数キログラムの荷重を部品に与えるような組み立てに使われることが多い。一方、数グラムの微小な部品やフィルムやシートの操作など、組立時に部品に与える力ないし荷重が数グラム程度の微小荷重の組み立てには、ロボット装置は、あまり利用されていない。その理由の１つは、現在の多関節ロボットの力（トルク）制御がそれほど高精度ではなく、ロボットアーム先端のエンドエフェクタで部品に与える荷重が数グラム程度の範囲の組み立てを行うのに十分な精度範囲を達成できていない点にある。
【０００４】
例えば、ロボット装置は、ロボットアームの各部、例えば関節を駆動するアクチュエータとの間で、当該のアクチュエータを制御するための駆動信号を伝達するための伝達部材を必要とする。これらの駆動信号には、制御信号のような制御情報の範疇に属する電気信号の他、駆動電力、油圧や空気圧の圧力信号などの駆動エネルギーの範疇に属する信号が含まれる。本明細書では、上記のような制御情報や駆動エネルギーを伝達するための電気信号や圧力信号などの信号を、ロボットアームの各部のアクチュエータを制御するための信号を「駆動信号」という。
【０００５】
例えば、関節やエンドエフェクタを駆動する駆動源（アクチュエータ）としてモータのような回転駆動源を用いるロボットでは、このモータやその駆動回路に制御信号や駆動電力を伝達する伝達部材として電線（ケーブル）のような線材を用いる。また、関節やエンドエフェクタを駆動するために油圧、空気圧などを利用したアクチュエータを用いる場合、駆動信号（エネルギー）を伝達するために、例えばラバーなどフレキシブルな材料から成る圧力管のような線材が伝達部材として用いられることがある。
【０００６】
また、上記のようなケーブルや圧力管の線材は１本のみ敷設されるより、例えばロボットアームの複数の関節ぶんの線材を束ねたハーネス構造のものが敷設されるような構造が多い。また、このようなハーネスには、関節を駆動するアクチュエータの動作を検出するエンコーダや、上記のトルクセンサの信号を制御系にフィードバックするための線材が収容されることもある。また、ロボットアーム先端には、エンドエフェクタ（ないしツール）として、例えばハンドやグリッパのような把持装置が装着されることがある。このようなエンドエフェクタ（ないしツール）に対しても、上記の駆動信号の入出力（伝達）を行うことが必要で、その場合、上記の線材のハーネスには、エンドエフェクタ（ないしツール）に対して駆動信号を入出力する線材が収容されることがある。
【０００７】
上記のような線材（ないしそのハーネス）はロボットアームの内側あるいは外側に敷設され、その場合、ロボット装置の各関節を跨ぐように設置される。従って、駆動信号を伝達する線材は、ロボット装置の関節が回転動作（並進動作の場合も同様）した時に変形し、その変形に応じた反力を発生する。
【０００８】
一方、上記のように、リンク（あるいはエンドエフェクタ部）を支持する関節にトルク（力）センサを設けてトルク（力）制御を行うなら、本来、関節に生じているトルクのみをトルクセンサで測定し、トルク制御系にフィードバックできるのが望ましい。ところが、ロボット装置の動作に伴う上記の関節（やエンドエフェクタ）に駆動信号を伝達する線材の変形によって生じる反力は、関節に配置したトルクセンサの測定値に測定誤差として影響を与える。
【０００９】
例えば、ロボット装置の構成や規模などによっても異なるが、各種ケーブルや圧力管の線材のハーネスが変形した時の反力は、数百グラムの単位に及ぶことがある。従って、このような反力は、数グラムの精度で力（ないしトルク）制御をする場合、非常に大きな外乱となり、制御の精度に影響を与える問題がある。
【００１０】
以上の問題に鑑み、力制御性を改善するために、例えば事前に測定した関節の回転角度とケーブル反力の関係をテーブルとして予め用意して、ロボット装置の関節に生じている力を推定し、各関節を制御する構成が提案されている（下記の特許文献１）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１２−２１８１０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記の特許文献１では、事前に測定したケーブル反力をテーブル化して用いるため、特定の関節動作について、実際のロボット装置に設置されたケーブルが、テーブル通りの反力を生じるとは限らない。例えば、ケーブルのような線材の変形には、再現性がなく、このため変形によって生じる反力にもおそらく再現性がないためである。第二に、常に事前の測定と同等の状態に線材を配置できるとは限らず、このような設置精度の問題から事前の測定と同じ関節動作で実際に同じ反力が生じるとは限らない。
【００１３】
従って、特許文献１の技術では、線材の反力を考慮した制御とはいっても、充分な精度で力（トルク）制御を行うことができない、という問題がある。物品の搬送や重量が数キログラムあるような物品の組み立てでは、上記のような微小な力制御性能の低下は問題にならないが、数グラムの微小重量の部品を力制御で組み立てる場合は、ケーブルの反力に起因する力制御性の低下が無視できなくなってくる。特許文献１の技術は、ロボットが取り扱う荷重範囲が大きい場合、あるいは実用的に利用できる可能性がある。ところが、特に上記のように数グラムのオーダの力（トルク）制御においては、特許文献１の技術でも充分な精度を達成できず、力制御性が低下する可能性がある。
【００１４】
従来、汎用的な多関節ロボット装置が微小荷重の組み立てに積極的に利用されてこなかった理由は、以上のような問題に起因する。そして、数グラムの微小重量の物品の組み立てには、従来では、ロボット装置ではなく、特別な構造を持ち、充分、寸法や精度範囲がコントロールされた専用に製造された装置を用いることが多かった。
【００１５】
一方で、今後、多くの工業製品の製造は、多品種少量生産に向かう、との予想もある。そして、上記のような専用装置が微小（微細）部品のそれぞれに個別に必要である、という事情は、多品種少量生産の実現に関して重大な隘路となり得る。多品種少量生産のために必要な多数の微小（微細）部品のそれぞれについて、上記のような専用装置の設計、製作が必要ならば、これによって生産ラインの立ち上げ期間の長期化、立ち上げコストの上昇などの問題が生じる可能性がある。
【００１６】
そこで、汎用的な多関節ロボット装置で、線材の反力を考慮した充分高精度な力（トルク）制御が可能であれば専用装置を必要とせず、短期間で効率の高い多品種少量生産を行えるようになる、と考えられる。
【００１７】
本発明の課題は、ロボット装置の関節（あるいはエンドエフェクタ）との駆動信号の伝達に用いられる線材の反力を測定し、その測定値を用いて高精度なロボット制御を行えるようにすることにある。
【課題を解決するための手段】
【００１８】
上記課題を解決するため、本発明においては、複数のリンクを有するロボットアームと、前記リンクを相互に接続する関節と、前記関節を駆動する駆動源と、前記リンクに配置された線材と、前記駆動源を制御する制御装置と、を備えたロボット装置において、前記線材が変形した際に前記線材から発生する力を測定するセンサを備え、前記制御装置は、前記センサが出力する値に基づき前記駆動源を制御する構成を採用した。
【発明の効果】
【００１９】
本発明によれば、駆動信号を伝達する線材の変形時に関節に印加される線材の反力を力センサによって測定し、測定した反力の測定値に基づき関節を駆動する前記駆動源を駆動制御する。これにより、例えば関節に生じる力を精度良く測定または推定することが可能になり、精度高くロボット装置の関節を制御することができる。例えば、トルクセンサを用いてワークやリンクに加わる力をトルク（力）制御する場合には、トルクセンサの出力から外乱として作用する線材の反力を除去するなどの演算が可能となり、正確なトルク検出に基づき、的確なトルク（力）制御を行うことができる。これにより、例えば汎用構成のロボット装置において、関節の力制御を正確に行うことができ、数グラム程度の重量の小さい部品の組み立てを実現することができる。そのため、微小重量の部品を組み立てる生産ラインにおいて、専用装置や、人力による手動作業などを必要とせず、汎用構成のロボット装置を用いることが可能となり、専用装置の設計、製造コストの削減、製作期間の削減が可能になる。また、微細部品を組み立てる生産ラインの立ち上げコストを低減することが可能になる。
【図面の簡単な説明】
【００２０】
【図１】実施例１のロボット装置の正面と側面を示した説明図である。
【図２】実施例１のロボット装置におけるケーブル反力測定部の構造を示した説明図である。
【図３】実施例１のロボット装置におけるケーブル反力測定部の設置場所を示した説明図である。
【図４】実施例１のロボット装置の制御系の構成を示したブロック図である。
【図５】実施例２のロボット装置における力センサ設置部位を示した説明図である。
【図６】実施例１のロボット装置におけるケーブル反力測定部の構造を示した説明図である。
【図７】実施例１のロボット装置におけるロボット制御を示したフローチャート図である。
【図８】実施例２のロボット装置における異なるロボット制御を示したフローチャート図である。
【図９】実施例１のロボット装置の制御装置の構成例を示したブロック図である。
【発明を実施するための形態】
【００２１】
以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【実施例１】
【００２２】
（ロボット装置の基本構成）
図１（ａ）、（ｂ）は本発明を採用したロボット装置の一例として、多関節ロボット装置の全体構成を示している。図１（ａ）は、本実施例のロボット装置を例えば側面から示している。図１（ａ）の左下部には、このロボット装置制御に用いられる３次元（ＸＹＺ）座標系の座標軸を示してある。図示の通り、これら座標軸のうちＺ軸は図の上方へ、またＸ軸は図の左方向へ向かうよう配置されている。図１（ｂ）は、同ロボット装置のロボットアーム１を例えば後方（図１（ａ）の左方）から示している。図１（ｂ）右下部にも同様の３次元（ＸＹＺ）座標系の座標軸を示してある。例えば、図１（ａ）に示したロボットアーム１の姿勢を初期姿勢とする。
【００２３】
図１（ａ）に示すように、ロボット装置はロボットアーム１（ロボット本体）と、ロボットアーム１を制御する制御装置９１を含む。より詳細には、図４に示すように、制御装置９１には指令装置９４が接続され、これら制御装置９１および指令装置９４によってロボットアーム１（ロボット本体）の制御システム９７が構成される。指令装置９４は、例えばティーチングペンダントのような教示装置である。
【００２４】
指令装置９４には、例えば、ロボットアーム１の関節の姿勢（位置や角度）、あるいはロボットアーム１先端などに配置された基準位置の位置などを移動させるための操作キーを含む操作部が配置される。指令装置９４の操作部で何らかのロボット操作が行われると、指令装置９４の操作に応じて、制御装置９１はケーブル８０（線材）を介して操作を介してロボットアーム１の動作を制御する。その際、制御装置９１が後述の制御プログラムを含むロボット制御プログラムを実行することにより、ロボットアーム１の各部が制御される。
【００２５】
図１（ａ）、（ｂ）に示したロボットアーム１は、複数リンクを例えばシリアルリンク形式で複数の関節（６軸）を介して相互に接続した構成を有するロボットアームである。ロボットアーム１の先端のリンク６０にエンドエフェクタ７０が接続されている。ロボットアーム１のリンク１０、２０、３０、４０、５０、および６０は、例えば各関節、本実施例では回転関節１１、２１、３１、４１、５１、および６１を介して次のように接続されている。
【００２６】
ロボットアーム１のベース１００（基台部）とリンク１０はＺ軸方向の回転軸の周りで回転する回転関節１１で接続されている。回転関節１１は、例えば初期姿勢から約±１８０度の可動範囲を有するものとする。ロボットアーム１のリンク１０とリンク２０は回転関節２１で接続されている。回転関節２１の回転軸は、図示の状態ではＹ軸方向に一致している。この回転関節２１は、例えば初期姿勢から約±８０度の可動範囲を有するものとする。
【００２７】
ロボットアーム１のリンク２０とリンク３０は回転関節３１で接続されている。この回転関節３１の回転軸は、図示の状態ではＹ軸方向に一致している。回転関節３１は、例えば初期姿勢から約±７０度の可動範囲を有するものとする。ロボットアーム１のリンク３０とリンク４０とは、回転関節４１で接続されている。この回転関節４１の回転軸は、図示の状態ではＸ軸方向に一致している。回転関節４１は、例えば初期姿勢から約±１８０度の可動範囲を有するものとする。
【００２８】
ロボットアーム１のリンク４０とリンク５０は回転関節５１で接続されている。回転関節５１の回転軸は、図示の状態ではＹ軸方向に一致している。この回転関節５１は、例えば初期姿勢から約±１２０度の可動範囲を有するものとする。ロボットアーム１のリンク５０とリンク６０は回転関節６１で接続されている。回転関節６１の回転軸は、図示の状態ではＸ軸方向に一致している。この回転関節６１は、例えば初期姿勢から約±２４０度の可動範囲を有するものとする。
【００２９】
以上のように、本実施例では、回転関節１１、４１、６１の回転軸は、各々が結合する２つのリンクの中心軸（１点鎖線）と平行（ないしは同軸）に配置されて、この２つのリンクの回転軸廻りの（相対）角度を変化させることができるよう配置されている。一方、回転関節２１、３１、および５１の回転軸は、これら各々が結合する２つのリンクの中心軸（同）の交差する（相対）角度を変化させることができるよう配置されている。
【００３０】
また、ロボットアーム１のリンク６０の先端には、生産ラインにおいて組み立て作業や移動作業を行うための（電動）ハンドや（空気圧駆動の）エアハンドなどのエンドエフェクタ７０が接続される。このエンドエフェクタ７０は、リンク６０に対してビス止めなどの（半）固定的な手段（不図示）によって装着されるか、あるいは、ラッチ（ラチェット）止めなどの着脱手段（不図示）によって装着可能であるものとする。特に、エンドエフェクタ７０が着脱可能である場合は、ロボットアーム１を制御して、ロボット自身の動作によって供給位置（不図示）に配置されたエンドエフェクタを着脱ないし交換する方式も考えられる。
【００３１】
（ケーブル経路）
図１（ａ）、（ｂ）のロボットアーム１の回転関節１１〜６１、ないしはエンドエフェクタ７０は、例えば電気的な回転駆動源、例えばモータ（後述の９２：図４）により駆動される。その場合、回転関節では、モータの他に波動歯車機構などを利用した減速機が用いられることがある。また、ハンドやグリッパのようなエンドエフェクタではラック＆ピニオンのような減速ないしは駆動方向の変換機構が用いられることがある。回転関節１１〜６１（ないしエンドエフェクタ７０）を駆動するモータは、各回転関節（ないしエンドエフェクタ７０）の内部の所定位置に配置される。なお、本実施例では、これらのモータは関節内部に配置されるものとするが、モータ（ないしは減速機）は関節外部に配置されていてもよい。
【００３２】
回転関節１１〜６１の駆動手段がこのようにモータである場合、各モータを駆動するためのエネルギー（駆動電力）、ないしは制御信号の伝達のための伝達手段として（電気、ないし信号）ケーブルのような線材が必要である。
【００３３】
また、回転関節１１〜６１や、エンドエフェクタ７０の駆動手段が、油（液）圧や空気圧を利用した圧力機構により構成される場合も考えられる。その場合は、これらロボットアーム１の各部、即ち回転関節１１〜６１や、エンドエフェクタ７０に圧力信号から成る駆動エネルギーないしは制御信号を伝達する必要がある。この場合は、駆動エネルギーないしは制御信号の伝達のための伝達手段としては、好ましくはフレキシブルな圧力チューブのような線材が用いられる。
【００３４】
本実施例では、説明を容易にするため、回転関節１１〜６１（やエンドエフェクタ７０）の駆動手段はモータであり、従ってこれら各部に駆動エネルギーないしは制御信号を伝達する伝達手段としての線材は、（電気）ケーブル８０であるものとする。このケーブル８０は、例えば制御装置９１から各回転関節（あるいはエンドエフェクタ７０）の間を連絡する複数の線材から成る、いわゆるワイヤハーネス（束線）構成とされる。
【００３５】
このケーブル８０の配線（取り回し）経路は、図１（ａ）、（ｂ）では破線によって示してある。ケーブル８０（ないしそのハーネス）は、ベース１００、各リンク１０〜６０のケーブル８０はロボットアーム１の動作を妨げたり、周辺の装置に干渉したりしないようアームの内外に配設され、任意の場所で固定（ないしは半固定）する。
【００３６】
例えば、本実施例では、図１（ｂ）に示すように、ケーブル８０は、回転関節２１（３１）のほぼ回転軸上の位置で固定部材（例えば後述のケーブル固定部材８１）によって固定（ないしは半固定）されている。
【００３７】
なお、ケーブル８０（ないしそのワイヤハーネス）は、ベース１００、各リンク１０〜６０の内部の空間に配置される場合も考えられるが、その場合でも後述の線材の変形時の反力を測定する力センサを用いた構成、および制御は同様に実施することができる。
【００３８】
（トルクセンサの配置）
本実施例は、ケーブル８０の変形時の反力を測定する力センサを配置して、その検出結果を、特に回転関節１１〜６１の駆動制御に反映させることができるよう構成してある。例えば、ロボットアーム１の回転関節２１の場合、回転関節２１を駆動するモータ（不図示）の駆動トルク、即ち、このモータからリンク２０に印加される回転駆動力を測定するトルクセンサ２２が設けられる（図１（ｂ））。このトルクセンサ２２は、例えば回転関節２１の内部に配置されたモータあるいはさらに減速機から成る駆動系の駆動軸上の所定位置に配置される。
【００３９】
なお、トルクセンサ２２の構造や配置位置の詳細は不図示であるが、このような回転関節の回転駆動力を測定するトルクセンサ２２に関しては公知の構造を利用してよい。また、他の回転関節１１、３１、４１、５１、６１に関しても、それぞれトルクセンサ２２と同様のトルクセンサ１２、３２、４２、５２、６２（図４）が配置されるものとする。
【００４０】
また、本実施例では、同じ回転関節２１に関して、図１（ｂ）に示すようにケーブル反力測定部９３２を配置する。このケーブル反力測定部９３２の構造例は、図２によって後述する。
【００４１】
図１（ｂ）では、回転関節２１に関して設けられるトルクセンサ２２（の位置）およびケーブル反力測定部９３２のみを図示している。しかしながら、他の回転関節１１、４１、５１、６１についても、同様の関節の回転駆動力を測定するためのトルクセンサ２２と同様のトルクセンサを設けることができる。また、ケーブル反力測定部についても、他の回転関節１１、４１、５１、６１に関してケーブル反力測定部９３２と同様のケーブル反力測定手段を設けることができる。
【００４２】
回転関節２１の回転駆動力を測定するためのトルクセンサ２２は、上記の通り、回転関節２１を駆動するモータあるいはさらに減速機などから成る駆動系の駆動軸上の所定位置に配置される。そして、上記のように、例えば回転関節２１の軸上にケーブル８０が（半）固定されるような構造では、モータにより回転関節２１を駆動してその角度を変化させると、ケーブル８０は回転関節２１の両側で変形することになる。
【００４３】
従って、回転関節２１の回転駆動力を測定するためのトルクセンサ２２は、実際には、このケーブル８０の変形時の反力と、回転関節２１を駆動するモータの回転駆動力が合成されたトルクを検出することになる。
【００４４】
そこで、本実施例では、回転関節２１に関して、ケーブル８０の変形時の反力を検出するケーブル反力測定部９３２を設けている。このケーブル反力測定部９３２の出力を用いて、例えばトルクセンサ２２の出力を回転関節２１の駆動にフィードバックする駆動制御を補正することができる（後述の図７、図８）。
【００４５】
（力センサの構成）
図２に、回転関節２１に関して設けるケーブル反力測定部９３２の構造例を示す。
【００４６】
図２において、ケーブル反力測定部９３２は、機械的には、ケーブル８０をリンク１０に固定するケーブル固定部材８１と、ケーブル８０の反力を受けて変形する変形部材８２から構成されている。ケーブル固定部材８１の構造の詳細は図示を省略しているが、例えば２枚分割の金属や樹脂から成る円盤状の部材から構成することができる。その場合、ケーブル固定部材８１の２枚分割の部材の内側の対向面に図示のような位置でケーブル８０を挟持（ないしガイド）して位置決めできるような溝を設けておく。
【００４７】
ケーブル固定部材８１は、ケーブル８０の特定部位を固定的に位置決めするものであってもよく、また、単に上記の溝（ないし透孔）で半固定的にケーブル８０をガイドするような構造であってもよい。いずれの場合でも、例えば回転関節２１を駆動してその角度を変更すると、ケーブル８０を変形させることになり、その反力が回転関節２１の回動軸廻りに働く。このため、前述のように、回転関節２１に配置されたトルクセンサ２２は、このケーブル８０が変形する時の反力と回転関節２１の駆動トルクの合力を検出することになる。
【００４８】
一方、変形部材８２は、樹脂などから成る弾性変形可能な弾性部材から構成する。変形部材８２は、回転関節２１の回転軸上でケーブル固定部材８１を保持するよう構成されており、このため、変形部材８２は、回転関節２１の位置において、上記のケーブル８０が変形する時の反力に応じてねじれ変形することになる。この変形部材８２の変形量を検出するため、本実施例では、変形部材８２の所定部位（たとえば表面）に変形部材８２の変形量を計測するセンサ８３を装着している。このセンサ８３は、例えば歪みゲージなどの検出素子から構成することができる。
【００４９】
センサ８３の出力、即ち、ケーブル反力測定部９３２の出力は、信号ケーブル８７を介して制御装置９１に送出される。信号ケーブル８７は、ケーブル８０の一部として、ケーブル８０を構成するワイヤハーネスに収容することができる。なお、その場合は、回転関節２１の位置においてケーブル８０が変形する時の反力には信号ケーブル８７が変形する時に発生する反力の成分も含まれることになる。
【００５０】
制御装置９１は、信号ケーブル８７を介して送信されたケーブル反力測定部（９３２）で検出したケーブル８０の反力（以下、ケーブル反力と略記する）の計測データを用いて、ロボット制御、特に当該関節の駆動制御を行うことができる。例えば、ケーブル反力測定部９３２で検出した回転関節２１の位置において発生しているケーブル反力を用いて回転関節２１に設けたトルクセンサ２２が検出している測定トルクを補正することができる。
【００５１】
例えば、回転関節２１で実際に発生している関節駆動トルクを、所望の値に制御するような技術では、トルクセンサ２２の出力値をケーブル反力測定部９３２の出力値で補正する。これにより、トルクセンサ２２の出力値に外乱として含まれているケーブル反力の成分を除去することができ、正確な関節トルク制御が可能となる。このような関節の駆動制御の補正処理例の詳細については後述する。
【００５２】
なお、本実施例においては、ケーブル反力測定部９３２（の変形部材８２、ケーブル固定部材８１ないしセンサ８３）は、ケーブル８０の変形により生じる、回転関節の回転軸と同じ軸上のねじれ方向の反力を測定できるよう設置する。これは、ケーブル反力測定部の出力により回転関節の回転駆動トルクを検出するよう配置されたトルクセンサ２２の出力を補正するために必要な要件である。
【００５３】
（反力測定部の配置）
図２は、回転関節２１に関するケーブル反力測定部９３２の構成のみを示しているが、同様の構成は、同様にケーブル８０の固定部が必要な他の回転関節１１、３１、４１、５１、６１などに必要に応じて配置することができる。これにより、ケーブル８０の固定部を有する各回転関節において、その位置で発生しているケーブル反力を測定することができ、その測定値を当該の回転関節の駆動制御にフィードバックすることができる。
【００５４】
図３にロボットアーム１の各回転関節（１１〜６１）に関して、ケーブル反力測定部９３１、９３２、９３３、９３４、９３５、および９３６を設けた配置例を示す。これらのうち、回転関節３１、５１は、結合する２つのリンクと関節の回転軸が直角ないし交差する回転関節２１と同様の構造である。従って、回転関節３１、５１に関して配置するケーブル反力測定部９３３、９３５は、例えば、図２に示したケーブル反力測定部９３２と同様に構成することができる。
【００５５】
一方、回転関節１１、４１、６１については、結合する２つのリンクの中心軸に一致するよう関節の回転軸が配置され、これらの回転関節を駆動することにより２つのリンクの関節回転軸まわりの（相対）角度が制御される。このような構成においても、例えば関節の一部にケーブル８０が位置決めされていれば、回転関節１１、４１、６１の駆動により、ケーブル８０が変形すると、これら回転関節１１、４１、６１と同軸廻りに回そうとするケーブル反力が発生する。
【００５６】
両側のリンクと同軸の回転関節１１、４１、６１に設けるケーブル反力測定部９３１、９３４、９３６も、これら回転関節の駆動トルクを検出するトルクセンサ（不図示）の回転方向と同じ回転軸上でねじれるケーブル反力を測定する必要がある。このため、ケーブル反力測定部９３１、９３４、９３６も、図２のケーブル反力測定部９３２と同様に、図変形部材８２に相当する変形部材は、これら回転関節の回転軸と同じ軸でケーブル反力を受けてねじれ変形するよう設置する。
【００５７】
そのために好適な構造としては、例えばリンク同軸の回転関節１１、４１、６１ではその内部にケーブル８０を通すものとし、接続されるいずれかのリンクの内側にケーブル反力測定部９３１、９３４、９３６を配置する。その場合、ケーブル反力測定部９３１、９３４、９３６として、例えば図２に示したケーブル固定部材８１、変形部材８２、およびセンサ８３から成る構成を回転関節１１、４１、６１で接続されるリンクの内側に配置して構成する。この時、センサ８３を配置した変形部材８２と、ケーブル固定部材８１の中心（図２の１点鎖線）は中空とし、それぞれ管状（ないし円環状）に形成し、その中空部分にケーブル８０を通過させ、その一部をケーブル固定部材８１に固定する。この時、ケーブル８０をケーブル固定部材８１に固定するには、接着や、かしめ用のシュー部材をケーブル固定部材８１の外周からビスなどによりケーブル８０に押圧する、といった任意の構造を利用できる。変形部材の例えば表面には、図２と同様の姿勢でセンサ８３を設置する。
【００５８】
以上のようにして、回転関節２１、３１、５１の場合と同様に、回転関節１１、４１、６１の関節軸と同軸廻りに働くケーブル反力を測定するケーブル反力測定部９３１、９３４、９３６を構成することができる。そして、上記のように構成したケーブル反力測定部９３１、９３４、９３６により、各関節の回転駆動トルクを各々検出するトルクセンサに外乱として働く回転関節の回転軸と同じ軸廻りの方向のケーブル反力の成分を測定することができる。
【００５９】
なお、以上に説明した各回転関節のケーブル反力測定部９３１〜９３６は、回転関節２１、３１、５１ではロボットアーム１（リンク）の外側に、回転関節１１、４１、６１ではアーム（リンク）の内側にケーブル８０を配設するようになっている。このようにケーブル８０はロボットアーム１の内外を縫うように配置されていてもよく、その場合、ロボットアーム１のリンク上の適当な場所に設けた透孔を介してリンク内外にケーブル８０が出入りするよう配設することができる。
【００６０】
（制御装置）
図４は、本実施例のロボット装置の制御系の構成例を示している。図４において、ロボット装置の制御システム９７は制御装置９１（図１（ａ））と指令装置９４により構成されている。制御装置９１は、図４の右側に示した下記の各部を制御することにより、ロボットアーム１の動作を制御する。
【００６１】
図４では、上述の回転関節１１、２１、３１、４１、５１、６１を駆動する各モータはモータ９２の１ブロックにより示してある。モータ９２は、たとえばサーボモータであり、各回転関節のモータ９２には関節回転角を位置制御するために回転角を検出するエンコーダ９５が（それぞれ）併設される。より詳細には、エンコーダ９５はモータ９２の出力軸、ないしはその回転出力を減速する減速機の出力軸、あるいはこれら出力軸の双方に配置される。
【００６２】
また、例えば回転関節１１、２１、３１、４１、５１、６１の回転駆動トルクの制御（例えばトルクサーボ）のために、上述のトルクセンサ１２、２２、３２、４２、５２、６２が各回転関節の駆動系（不図示）の一部に配置されている。これらトルクセンサ１２、２２、３２、４２、５２、６２も、図４では１ブロックによって図示されている。
【００６３】
さらに、回転関節１１、２１、３１、４１、５１、６１に関して、上述のケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６が配置されている。これらケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６も、図４では１ブロックによって図示されている。
【００６４】
制御装置９１は、各関節のエンコーダ９５を用いて、各関節の回転角（姿勢）を検出し、例えばエンドエフェクタ７０が所定の位置姿勢を取るように、ロボットアーム１の全体の位置姿勢を制御することができる。また、制御装置９１は、トルクセンサ１２、２２、３２、４２、５２、６２により検出した各関節の駆動トルクに基づき、各関節のモータ９２の駆動エネルギーを制御（例えばＰＷＭ制御など）することにより、各関節の駆動トルクを所望の値に制御する。これにより、例えば、エンドエフェクタ７０でワークを操作する際にワークの物性（例えば剛性や強度）に応じた力がワークに加わらないように制御する、といった制御が可能となる。
【００６５】
これらエンコーダ９５を用いた位置（姿勢）制御、およびトルクセンサ１２、２２、３２、４２、５２、６２を用いたトルク制御（トルクサーボ）のそれぞれは公知の制御である。例えば、制御装置９１は、特定の回転関節について、予めプログラムされた（あるいは指令装置９４により指定された）回転角度、ないしは関節駆動トルクの目標値と、エンコーダ９５およびトルクセンサ１２〜６２の実測値を用いてモータ９２を制御する。その場合、制御装置９１が目標値と実測値が一致するように制御を行うことによって、所期のロボット動作を実現する。
【００６６】
本実施例では、さらに、トルクセンサ１２、２２、３２、４２、５２、６２を用いたトルク制御（トルクサーボ）に、上述のケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６で検出したケーブル反力の測定値を反映させることができる。
【００６７】
上述のように、ケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６は特に各関節のトルクセンサと同じ回転軸廻りに外乱として働くケーブル反力（のみ）を検出することができる。一方、トルクセンサ１２、２２、３２、４２、５２、６２は、各回転関節の駆動系の一部に配置されるため、機構上、モータ９２の駆動トルクと上記ケーブル反力の合力を測定することになる。従って、例えば、後述のようにトルクセンサ１２、２２、３２、４２、５２、６２を用いたトルク検出値を、ケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６で検出したケーブル反力を用いて補正することができる。これにより、ケーブル反力の外乱成分を除去し、各回転関節に関して正確なトルク制御（トルクサーボ）を実施することができる。
【００６８】
なお、より詳細には、制御装置９１は、例えば図９に示すように、汎用マイクロプロセッサなどを用いたＣＰＵ６０１を中心として構成することができる。図９において、制御装置９１は、例えばＣＰＵ６０１と、各部を制御するためのロボット制御プログラムを記憶するＲＯＭ６０２と、データを一時的に記憶するＲＡＭ６０３と、インタフェース回路６０４、６０５から構成することができる。
【００６９】
ＲＯＭ６０２は、後述のようなトルク制御を含むロボット制御プログラムを記憶するコンピュータ（ＣＰＵ６０１）により読み取り可能な記録媒体に相当する。ＣＰＵ６０１は、例えばＲＯＭ６０２に格納されたロボット制御プログラムを実行することにより、後述のようなトルク制御を含むロボット制御を実行する。
【００７０】
なお、ＲＯＭ６０２の一部は、Ｅ（Ｅ）ＰＲＯＭのような書き換え可能な不揮発領域により構成できる。その場合、不図示のフラッシュメモリや光ディスクのようなコンピュータ読み取り可能な記録媒体や、ネットワークなどを介して取得したロボット制御プログラムを新たに上記書き換え可能な不揮発領域にインストールすることができる。また、上記書き換え可能な不揮発領域に格納されているロボット制御プログラムは、上記コンピュータ読み取り可能な記録媒体や、ネットワークなどを介して取得したデータによって更新することもできる。
【００７１】
インタフェース回路６０４は、例えば指令装置９４との間のデータ入出力に用いることができる。また、インタフェース回路６０５は、例えば上述のモータ９２、エンコーダ９５、トルクセンサ１２、２２、３２、４２、５２、６２、およびケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６との間のデータ入出力に用いることができる。
【００７２】
ロボットアーム１の動作指令を与える指令装置９４には、不図示の記憶装置（例えばＲＡＭ、ＲＯＭや外部記憶装置）があり、この記録装置には、製品組み立てなどを行うのに必要なロボットアーム１のロボット制御情報が記録されているものとする。このロボット制御情報は、例えば複数の教示点データ、あるいはロボット制御プログラムの書式などによって記述される。また、このロボット制御情報の記憶装置は、指令装置９４側ではなく、制御装置９１側のＲＡＭ６０３やＲＯＭ６０２、あるいは不図示の外部記憶装置（例えばＨＤＤやＳＳＤ）によって構成することもできる。
【００７３】
作業者は、指令装置９４を操作して、予め作成された上記のロボット制御情報の実行（再生）を指定することにより、ロボットアーム１に予めプログラムした動作を行わせることができる。また、指令装置９４がティーチングペンダントなどの教示装置である場合には、指令装置９４の関節の動作をジョグ操作方式などにより指令する操作キーを操作して、ロボットアーム１に対話的に任意の動作を行わせることができる。その場合、順次実行させた動作を上記の記憶装置にロボット制御情報として記憶させることもできる。上記のロボット装置の教示操作や、ロボット制御情報の格納方式については公知技術であるため、ここでは上記以上の詳細な説明は省略する。
【００７４】
本実施例では、制御装置９１は、トルクセンサ１２〜６２の測定誤差（外乱）として作用するケーブル反力（のみ）をケーブル反力測定部９３１〜９３６で測定できる。そして、例えば、ケーブル反力測定部９３１〜９３６で測定したケーブル反力成分をトルクセンサ１２〜６２の測定値から差し引く補正制御を行うことができる（後述の図８）。このようにトルクセンサ１２〜６２の出力値からケーブル反力の成分を差し引く補正演算を行うことにより、各モータ９２が減速機（不図示）を介して当該関節の手先側のリンクに実際に与えているトルクの実際値をより正確に算出することができる。そして、ケーブル反力を除去して得たトルク値と、指令装置９４から関節で生じるトルク目標値が一致するように制御を行うことによって、より正確にロボットアーム１の関節のトルク（サーボ）制御を実行することができる。なお、制御装置９１のＣＰＵ６０１で実行可能なロボット制御の実例については後述の実施例３で説明する。
【００７５】
以上のように、本実施例では、回転関節１１、２１、３１、４１、５１、６１に関して、ケーブル反力測定部９３１〜９３６をそれぞれ設けている。そして、ケーブル反力測定部９３１〜９３６の出力を用いて各関節の駆動トルクを測定するトルクセンサ１２〜６２の出力を補正する補正演算を実施することができる。
【００７６】
従来のロボット装置の回転関節のトルク制御においては、トルク制御性を向上させるため、関節にトルクセンサを設置して駆動トルク値を検出して当該関節のモータ制御にフィードバックするトルク制御が行われていた。このようなトルク制御（サーボ）では、理想的には、トルクセンサ１２〜６２の測定値は関節がリンクに与えているトルクのみを測定する必要がある。しかしながら、ロボットアーム１の内外に沿ってケーブル８０を配設する場合、ロボット動作に伴うケーブル８０の変形により生じるケーブル反力がトルクセンサ１２〜６２の測定値に誤差を生じさせる問題があった。
【００７７】
これに対して、本実施例では、ケーブルが変形することで生じる反力をケーブル反力測定部９３１〜９３６で測定し、トルクセンサで測定したトルク値を補正することで、誤差の少ない値をフィードバックすることができる。これにより、従来は、トルクセンサの誤差によって不可能であった微小な力の範囲で関節のトルク制御を行うことができるようになり、特に微小重量の微細な部品を力（トルク）制御を作用させて組み立てることができるようになる。
【００７８】
これにより、従来、特別に設計、製造された専用装置を用いる必要なく、汎用的な多関節ロボットを力（トルク）制御で用いることにより、従来はこの種のロボットで不可能であった微細部品の製造、組み立てを行うことができる。
【００７９】
また、回転関節に配置したトルクセンサで検出したトルク値は、ロボットアームの振動抑制に利用されることがある。特に、多関節のロボットアームでは、動いている状態から停止した時のエンドエフェクタ７０の振動が問題になる事がある。例えば、ロボットアーム先端の位置がオーバーシュートし、エンドエフェクタが他の部材に緩衝、接触するなどした状況において、振動が停止するまでの待ち時間が組み立て時間短縮のネックになる場合がある。
【００８０】
上記のロボットアーム１において、各関節に設けたトルクセンサ１２、２２、３２、４２、５２、６２はこの振動問題に対処するために利用することができる。例えば、トルクセンサ１２、２２、３２、４２、５２、６２で、当該の関節に生じているトルクを計測し、そのトルクを打ち消すように当該関節を駆動するモータ９２を駆動する制御を行うことにより、ロボットアーム１の振動を抑えることができる。
【００８１】
そして、本実施例によれば、トルクセンサ１２、２２、３２、４２、５２、６２の出力値から、ケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６によって、各関節で生じているケーブル反力を外乱として除去することができる。このため、当該関節が支持しているリンクに生じている実トルク値を極めて精度良く測定でき、この実トルク値をロボットの振動抑制にフィードバックすることにより、振動抑制の性能を大きく向上することができる。
【実施例２】
【００８２】
ロボットアーム１の回転関節に関して配置するケーブル反力測定部については、異なる構成が考えられる。本実施例においても、上記実施例１において、図４、図９などに示したロボット装置の制御系の構成は同様であるものとする。また、本実施例および後述の実施例では、上記実施例１と同一ないし相当する部材には同一（ないしは類似の）参照符号を用い、その詳細な説明は省略するものとする。
【００８３】
（力センサの配置）
図５に本実施例のロボットアーム１と、回転関節１１、２１、３１、４１、５１、６１に関して配置されたケーブル反力測定部９３１〜９３６の構成を示す。
【００８４】
本実施例では、リンク同軸の構成を有する回転関節１１、４１、６１に関して設けられるケーブル反力測定部９３１、９３４、９３６の構造は、上述の実施例１で説明したものと同様であるものとする。これらケーブル反力測定部９３１、９３４、９３６の変形部材（８２）は、ケーブル８０の変形に伴って生じるケーブル反力によって各関節軸と同じ軸でねじれ変形するよう設置される。
【００８５】
一方、ケーブル８０は、ケーブルクランプ９６１、９６２、９６４などにより、リンク１０、２０、４０のほぼ半ばの位置でこれらのリンクに固定され、これによりロボットアーム１に沿うように配設される。なお、これらケーブルクランプによるケーブル８０の固定個所は、ロボットアーム１の動きに干渉せず、またケーブル８０に過度な張力が加わりケーブル断線などの問題が生じない場所であれば、上記以外の任意の場所でかまわない。
【００８６】
そして、本実施例では、両側のリンクの中心軸のなす相対角度を制御するように配置された回転関節２１、３１、５１に関して配置するケーブル反力測定部９３２、９３３、９３５の構成が上記実施例１とは異なっている。本実施例では、ケーブル反力測定部９３２、９３３、９３５は、回転関節２１、３１、５１の回転軸と同軸上以外の位置に設置されている。
【００８７】
なお、ケーブル反力測定部９３１、９３４、９３６の位置では、前述のようにケーブル８０はリンク内部を通過する必要がある。そこで、例えば次に例示するような態様で、ケーブル８０をロボットアーム１の内外を縫うように配設することが考えられる。
【００８８】
例えば、ケーブル反力測定部９３１に関しては、ケーブル８０はベース１００およびリンク１０の内部を通過させ、ケーブルクランプ９６１の近傍でリンク１０に設けた透孔（不図示）からケーブル８０をリンク１０の内側から外側に導出する。
【００８９】
また、ケーブル反力測定部９３４に関しては、ケーブル反力測定部９３３でクランプされている部位よりアーム先端側に近いケーブル８０の部位をリンク３０に設けた透孔（不図示）を介してリンク３０内に導入し、ケーブル反力測定部９３４を通過させる。そしてリンク４０に設けた透孔（不図示）を介して再度リンク４０の外部にケーブル８０を導出し、その先をケーブルクランプ９６４で保持させる。その先の部位で、ケーブル８０はケーブル反力測定部９３５により支持され、再度リンク５０に設けた透孔（不図示）を介してリンク５０内部に導入し、ケーブル反力測定部９３６を通過させるようにする。
【００９０】
ケーブル反力測定部９３１、９３４、および９３６の構成が実施例１で示したものと同様であるのに対して、ケーブル反力測定部９３２、９３３、および９３５の構成は実施例１のものと異なっている。これらケーブル反力測定部９３２、９３３、および９３５の構成につき、以下、ケーブル反力測定部９３２を例に説明するが、ケーブル反力測定部９３２の構成はケーブル反力測定部９３３、９３５でも同様であるものとする。
【００９１】
ケーブル反力測定部９３２は、基部９３２１と、ケーブル８０の固定およびケーブル反力の検出部を構成するセンサ部９３２２から成る（図５）。ケーブル反力測定部９３２の基部９３２１は、リンク２０と固着される基台部で、基部９３２１の先端に腕木状のセンサ部９３２２が、例えばリンク２０の表面とは離間した状態で支持される。
【００９２】
センサ部９３２２の構造は、概ね、図２に示したケーブル固定部材８１および変形部材８２から成る構造と同じでよい。ケーブル固定部材８１は、実施例１において説明したケーブル反力測定部９３２の場合（図２）と同様に、変形部材８２およびケーブル固定部材８１の長手方向と交差する方向でケーブル２を保持する。変形部材８２は、実施例１の場合と同様に樹脂などの弾性変形可能な材料から構成する。図２においてリンク１０として示した部位は、本実施例のケーブル反力測定部９３２の場合は、基部９３２１に置き換えられる。
【００９３】
また、本実施例のケーブル反力測定部９３２の配置によると、下記のように変形部材８２は例えば３方向の力の成分を検出することができる。このため、変形部材８２には下記の複数（３）方向の力の成分を検出できるよう、当該の方向の変形部材８２の変形を検出するセンサ８３（例えば歪みゲージなど）を複数配置することができる。
【００９４】
以上のような構成により、ケーブル反力測定部９３２、あるいは９３３、９３５は、３方向への力を測定することができる。理解を容易にするため、図５中のロボットアーム１の姿勢に限って、３次元座標軸の方向でこれら３つの力の成分を記載すると、１つ目はＸ方向の並進力、２つ目はＺ方向の並進力、そして３つ目はＹ軸周りのねじり力（トルク）である。
【００９５】
本実施例によれば、特に実施例１と異なる構成を有するケーブル反力測定部９３２、あるいは９３３、９３５は、少なくとも上記のような３つの方向の力の成分を含むケーブル８０のケーブル反力を測定できる。このため、より複雑なケーブル８０の変形に伴う、より複雑なケーブル反力を測定し、ロボットアーム１の制御にフィードバックすることができる。
【００９６】
また、ケーブル反力測定部９３２、９３３、９３５は、回転関節の回転軸以外の場所に取り付けることができ、ケーブル８０を配線する経路の自由度が増す。これにより、ケーブル８０の断線などのトラブルを回避しやすい場所を経路として選択することができ、ロボット装置の信頼性を向上させることができる。
【００９７】
また、ケーブル８０の経路の自由度が増すことにより、例えば撓んだケーブル８０の部位などを含むロボットアーム１の実質的な外形のサイズが小さくなるようケーブルの経路を選ぶことができる。これによりロボット装置のサイズをコンパクトにすることができる。一般に、この種の垂直多関節のロボット装置の関節部位はモータ、減速機など複数の機械要素が配置されていてサイズが大きくなりやすい場所である。その関節部位にさらにケーブル反力測定部を設置ことで、関節部位の小型軽量化かなり難しくなってくる。これに対して、ケーブル反力測定部９３２、９３３、９３５のように、回転関節以外の部位にこれら測定部を装着できれば、特に関節部位の構造を簡略化でき、また、それによりロボット装置全体を小型軽量化することができる。
【実施例３】
【００９８】
本実施例では、上述の制御装置９１のＣＰＵ６０１で実行可能なロボット制御手順（ロボット制御プログラム）の例をいくつか例示する。図７、および図８は、それぞれ制御装置９１のＣＰＵ６０１で実行可能なロボット制御手順（ロボット制御プログラム）の流れを示している。図７の制御例は、ケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６により測定したケーブル反力に応じて、指令装置９４による回転関節を駆動するための指令値を補正するものである。また、図８の制御例は、ケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６により測定したケーブル反力に応じて、トルクセンサ１２、２２、３２、４２、５２、６２の出力値をフィードバックして行うトルク制御を補正するものである。図７、図８の制御は、理解を容易にするため、特定の１つの回転関節に係る制御に単純化して図示してある。図７、図８に示した制御は、ＣＰＵ６０１が実行するロボットプログラムの一部として例えばＲＯＭ６０２などに格納しておくことができる。
【００９９】
特に、図８（あるいは図７も同様）の制御は、回転関節の駆動トルクを測定するトルクセンサ１２、２２、３２、４２、５２、６２の出力値を用いた制御に係るものである。このため、トルク制御に用いるケーブル反力値には、例えば実施例１のように配置され、回転関節の回転軸廻りのケーブル反力を測定するケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６で検出した検出値を用いるのが好適である。ただし、実施例２のケーブル反力測定部９３２、９３３、９３５のような構成でも、適当な演算により回転関節の軸廻りのトルク（力）を取得できる場合には、図８（図７も同様）の制御を実施することができる。
【０１００】
指令装置９４はロボットアーム１の回転関節１１、２１、３１、４１、５１、６１の位置ないし姿勢に係る指令値を制御装置９１に送信できるものとする。ここで図７の制御は１関節に係る制御として示してあるが、制御装置９１が指令装置９４から指令値を受信すると、受信した指令値に応じて当該の駆動制御を行うための指令値を当該関節のモータ９２に送信する。
【０１０１】
図７において、ＣＰＵ６０１はステップＳ７４において指令装置９４から、同図の制御に係る回転関節の駆動制御に係る指令値を受信すると、ステップＳ７５において、受信した指令値に係る回転関節（上記回転関節のいずれか）の回転方向を判定する。回転関節の制御に用いられるこの種の指令値、特に回転角度に係るものは、例えばその回転関節のある特定の回転方向に関する指令値は正（＋）、その逆の回転方向に関する指令値は負（−）の符号により表現される。そこで、例えばステップＳ７４において受信した指令値の符号などを解釈することにより、指令値に相当する回転関節の回転方向が正（＋）か負（−）（あるいは正方向か逆方向）のいずれであるかを判定できる。
【０１０２】
同時に、ＣＰＵ６０１はステップＳ７１で図７の制御に関係する回転関節に関して設けられたケーブル反力測定部から、出力するケーブル反力の測定値を取得する。さらに、ステップＳ７２ではケーブル反力測定部の出力した測定値（例えばその符号）から、当該の関節が支持しているケーブル８０の荷重の方向を判定する。ステップＳ７１、Ｓ７２のケーブル反力測定部との入出力と荷重方向判定、および、ステップＳ７４、Ｓ７５の指令装置９４との入出力と動作方向判定は、例えばハードウェア割り込みなどを利用して並行的に実行することができる。
【０１０３】
例えば、図２に示すように構成されたケーブル反力測定部９３２の場合、ケーブル８０の変形に起因して回転関節２１により支持されているリンク２０とリジッドに結合された回転関節軸に印加されるケーブル反力を測定することができる。このケーブル反力（荷重）も当然ながらこの関節の回転方向と同様に正（＋）か負（−）（あるいは正方向か逆方向）の回転方向を有する。ＣＰＵ６０１は、ステップＳ７２において、この回転方向をケーブル反力測定部９３２の変形部材８２ないしセンサ８３の変形方向を介して検出する。
【０１０４】
ステップＳ７６では、ステップＳ７５、Ｓ７２でそれぞれ特定した指令装置９４の指令値に係る回転関節の動作方向と、当該関節に関してケーブル反力測定部で特定したケーブル反力の方向の一致または不一致を判定する。
【０１０５】
そして、両者の方向が一致（Ｓ７７）している場合には、ケーブル反力が当該関節を駆動するモータ（９２）の駆動力をアシストしていることになる。この場合は、ステップＳ７９に進み、指令装置９４の指令に応じて当該関節のモータ（９２）に送信する指令値を、ケーブル反力の大きさに応じた量、小さくする補正を行う。
【０１０６】
一方、ステップＳ７６で両者の方向が不一致（Ｓ７８）の場合には、ケーブル反力が当該関節を駆動するモータ（９２）の駆動力に抵抗する方向に働いていることになる。この場合は、ステップＳ８０に進み、指令装置９４の指令に応じて当該関節のモータ（９２）に送信する指令値を、ケーブル反力の大きさに応じた量だけ大きくする補正を行う。
【０１０７】
一方、図８は、ケーブル反力測定部９３１、９３２、９３３、９３４、９３５、９３６により測定したケーブル反力をトルクセンサ１２、２２、３２、４２、５２、６２の出力値を用いたトルク制御に作用させる場合の制御例を示している。図８の制御では、予め用意されたロボット制御プログラム（不図示）に基づき、図示の制御手順に係る回転関節の指令値が定められ、その指令値をモータ（９２）に送り、当該関節を駆動する処理（不図示）が並行して実行されているものとする。
【０１０８】
図８のステップＳ８３において、ＣＰＵ６０１は同図の制御に係る回転関節に設けられたトルクセンサ（１２、２２、３２、４２、５２、６２のいずれか）の測定データを取得し、ステップＳ８４では当該関節の回転方向を判定する。ステップＳ８４の回転方向の判定では、上記制御により別途発生されている当該関節のモータ９２の指令値（の符号）を用いてもよく、また、当該関節に係るトルクセンサの出力値の符号を用いてもよい。
【０１０９】
一方、ステップＳ８１では、図８の制御に関係する回転関節に関して設けられたケーブル反力測定部から、出力するケーブル反力の測定値を取得する。さらに、ステップＳ８２ではケーブル反力測定部の出力した（例えばその符号）測定値から、当該の関節が支持しているケーブル８０の荷重の方向を判定する。ステップＳ８１、Ｓ８２のケーブル反力測定部との入出力と荷重方向判定、および、ステップＳ８３、Ｓ８４の指令装置９４との入出力と動作方向判定は、例えばハードウェア割り込みなどを利用して並行的に実行することができる。
【０１１０】
ステップＳ８６では、図７のステップＳ７６と同様にステップＳ８４、Ｓ８２でそれぞれ特定した回転関節の動作方向と、当該関節に関してケーブル反力測定部で特定したケーブル反力の方向の一致または不一致を判定する。
【０１１１】
そして、両者の方向が一致（Ｓ８７）している場合には、当該関節に係るトルクセンサは、当該関節に係るケーブル反力測定部で実測したケーブル反力を含んだ値を出力していることになる。即ち、実際にこの関節のモータ（９２）が発生している関節駆動トルクは、トルクセンサで検出している値よりも小さいはずである。この場合は、ステップＳ８９に進み、真の（実）関節駆動トルクを演算するために、当該関節に係るトルクセンサの出力値から、当該関節に係るケーブル反力測定部で実測したケーブル反力の値を減算する補正を行う。
【０１１２】
一方、ステップＳ８６で両者の方向が不一致（Ｓ８８）の場合には、当該関節に係るトルクセンサは、当該関節に係るケーブル反力測定部で実測したケーブル反力の分が減算された値を出力していることになる。即ち、実際にこの関節のモータ（９２）が発生している関節駆動トルクがトルクセンサで検出している値よりも大きいはずである。この場合は、ステップＳ９０に進み、真の（実）関節駆動トルクを演算するために、当該関節に係るトルクセンサの出力値に当該関節に係るケーブル反力測定部で実測したケーブル反力の値を加算する補正を行う。
【０１１３】
続いて、ステップＳ９１で、ステップＳ８９、Ｓ９０においてケーブル反力の分を補正した真の（実）関節駆動トルク値を用いて、当該関節のモータ（９２）に与える関節駆動トルクの指令値を演算する。ステップＳ９１のトルク制御演算の目的の１つは、例えば上述のようにエンドエフェクタ７０により微細な部品（ワーク）などを取り扱う場合のトルク制限などが考えられる。この場合は、例えば、当該関節の駆動トルクが所定値を超えないように指令値を演算する。ステップＳ９１のトルク制御演算では、上述のようにロボットアーム１の振動を抑制するための指令値演算を行うこともできる。
【０１１４】
ステップＳ９２では、ステップＳ９１のトルク制御演算の結果、得られた指令値を当該関節のモータ（９２）に送信する。
【０１１５】
以上、図７、図８に示したように、回転関節（１１〜６１）に関して設けたケーブル反力測定部（９３１〜９３６）により測定したケーブル（８０）の反力値に基づき、当該の関節を駆動する駆動源としてのモータ（９２）を駆動制御することができる。上記のようにケーブル反力測定部（９３１〜９３６）は、ケーブル（８０）のケーブル反力（のみ）を検出するよう構成することができる。
【０１１６】
このため、図７の制御では、ケーブル反力測定部（９３１〜９３６）により測定したケーブル（８０）のケーブル反力の方向と当該関節の動作方向の関係に応じて、当該関節の駆動源としてのモータ（９２）の指令値を補正することができる。例えば、例えばケーブル反力が当該関節の関節動作を補助しているか、あるいは関節動作に抵抗しているかに応じて、当該関節の駆動源としてのモータ（９２）の指令値を補正することができる。
【０１１７】
また、図８の制御では、回転関節（１１〜６１）に関して設けたトルクセンサ（１２〜６２）の検出した回転駆動トルク値に外乱として含まれているケーブル（８０）のケーブル反力の成分を除去して、真の（実）回転駆動トルク値を検出できる。上述のようにケーブル反力測定部（９３１〜９３６）ケーブル（８０）のケーブル反力（のみ）を検出するよう構成することができるため、このようなトルク制御が可能となる。そして、ケーブル反力の成分を除去した真の（実）回転駆動トルク値を用いて、力（トルク）制限や振動抑制などの目的に即して、正確に当該関節の駆動源としてのモータ（９２）の指令値を補正することができる。
【０１１８】
以上のように、ロボットアーム（１）の少なくとも回転関節の駆動源に駆動信号を伝達する線材としてケーブル（８０）に関し、ケーブル（８０）の変形に伴うケーブル反力を測定するケーブル反力測定部（９３１〜９３６）を配置することができる。ケーブル反力測定部（９３１〜９３６）は、ロボット動作に伴うケーブル（８０）の変形時に回転関節に印加される反力（のみ）を測定する力センサとして作用する。このため、ケーブル反力測定部（９３１〜９３６）で測定したケーブル反力を回転関節の駆動源としてのモータ（９２）の駆動制御にフィードバックすることにより、位置制御やトルク制御を含む高精度なロボット制御を行うことができる。即ち、ケーブル反力測定部（９３１〜９３６）により、ロボット装置の関節（あるいはエンドエフェクタ）との駆動信号の伝達に用いられる線材であるケーブル（８０）のの反力を測定し、その測定値を用いて高精度なロボット制御を行うことができる。
【０１１９】
なお、回転関節１１〜６１に関して配置したトルクセンサ１２〜６２で測定した回転駆動トルクをモータ９２への動作指令値にフィードバックする場合、上述のような力（トルク）制御のみならず位置制御にフィードバックすることも考えられる。例えば、トルクセンサ１２〜６２で測定した回転駆動トルクに基づき、ロボットアーム１のエンドエフェクタ７０の位置ずれを検知して、その位置ずれに応じたモータ９２の駆動量（位置制御指令）にフィードバックすることが考えられる。このようにエンドエフェクタ７０の位置精度が高くなるという効果がある。なお、トルクセンサ１２〜６２で測定した回転駆動トルクをモータ９２への位置制御指令にフィードバックする場合には、動作指令値として指令している位置（例えば回転角）を調整する制御や、位置指令のゲインを変更する制御が考えられる。
【０１２０】
（変形例など）
上記の各実施例では、６軸のシリアルリンク構成の垂直多関節ロボットアームを例示したが、関節数やリンク構成は上記の構成に限定されない。例えば、ロボットアームは７軸の多関節、あるいはより少ない関節数で構成されていともよい。また、水平多関節構成のロボットアームや、パラレルリンク構成のロボットアームにおいても、上述と同様の構成、および制御を実施することができる。その場合、上述と同様に駆動信号の伝達部材としての線材が変形した時に生じる反力を測定してフィードバックすることで力制御性、ないし位置制御性を向上させることができる。
【０１２１】
また、以上では、（回転）関節を駆動する駆動系としてモータ（９２）や減速機を用いた構成を例示した。しかしながら、（回転）関節駆動に油圧（や空気圧）駆動のアクチュエータを用いるような構成においても、上述同様のトルクセンサやケーブル（線材）反力測定部を配置し、これらを用いてロボット制御を行うことができる。その場合、以上に示した電気信号を伝達するケーブル（８０）は、必要に応じてフレキシブルな圧力チューブのような線材に置換される。
【０１２２】
なお、実施例１の図２では、ケーブル反力測定部（９３２）の構成として、ケーブル固定部材８１、変形部材８２、センサ８３から成る構造を明示的に示した。しかしながら、ケーブル反力測定部は、例えば図６に示すように図２のセンサ８３と変形部材８２を一体化した荷重センサ８４によって構成してもよい。この荷重センサ８４は、図２に示した、変形部材８２中にセンサ８３を内蔵ないし埋設して成るもので、先端にはケーブル固定部材８１が装着され、その表面から測定値を出力するためのケーブル８７が導出されている。このように、ケーブル反力測定部の具体的な構成については、当業者において任意の設計変更が可能である。また、ケーブル反力測定部を設置する場所に関しても、当業者において任意の設計変更が可能であり、ケーブル反力を測定できる位置であれば、上述の実施例で例示した位置以外に任意に変更することができる。
【０１２３】
本発明の制御は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してロボットシステムまたはロボット装置に供給することができる。そして、そのロボットシステムまたはロボット装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２４】
１…ロボットアーム、３１〜３６…トルクセンサ、８０…ケーブル、９１…制御装置、９３１〜９３６…ケーブル反力測定部。
【図１】
0006598495.tif 000002
【図２】
0006598495.tif 000003
【図３】
0006598495.tif 000004
【図４】
0006598495.tif 000005
【図５】
0006598495.tif 000006
【図６】
0006598495.tif 000007
【図７】
0006598495.tif 000008
【図８】
0006598495.tif 000009
【図９】
0006598495.tif 000010