JP2017164870A - ロボット装置、およびロボット装置の制御方法 - Google Patents

ロボット装置、およびロボット装置の制御方法 Download PDF

Info

Publication number
JP2017164870A
JP2017164870A JP2016054707A JP2016054707A JP2017164870A JP 2017164870 A JP2017164870 A JP 2017164870A JP 2016054707 A JP2016054707 A JP 2016054707A JP 2016054707 A JP2016054707 A JP 2016054707A JP 2017164870 A JP2017164870 A JP 2017164870A
Authority
JP
Japan
Prior art keywords
joint
reaction force
control
drive
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016054707A
Other languages
English (en)
Other versions
JP6739954B2 (ja
JP2017164870A5 (ja
Inventor
隆行 小河原
Takayuki Ogawara
隆行 小河原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016054707A priority Critical patent/JP6739954B2/ja
Priority to US15/460,781 priority patent/US10882182B2/en
Publication of JP2017164870A publication Critical patent/JP2017164870A/ja
Publication of JP2017164870A5 publication Critical patent/JP2017164870A5/ja
Application granted granted Critical
Publication of JP6739954B2 publication Critical patent/JP6739954B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/085Force or torque sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39319Force control, force as reference, active compliance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45064Assembly robot
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S901/00Robots
    • Y10S901/46Sensing device

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)

Abstract

【課題】動的な制御条件を考慮して、ロボット装置の関節(やエンドエフェクタ)の駆動信号の伝達に用いられる線材の反力によって関節に生じるトルクの測定ないし推定精度を改善し、高精度なロボット制御を実現する。
【解決手段】ロボットアームは複数のリンク10、20…と、リンクを相互に接続する回転関節11、21…で構成される。各回転関節駆動源に駆動信号を伝達するケーブル80(線材)は、各リンクに沿って配置される。制御系には、関節を駆動した際に線材が発生する反力値を動的な駆動制御条件ごとに区画された区画記憶領域(V1、V2…あるいはD+、D−)に格納した反力テーブル(900)を配置する。制御装置(91)は、各回転関節を駆動する際、その駆動制御条件によって反力テーブル(900)を参照して得た反力値に基づき、各回転関節を制御する。
【選択図】図1

Description

本発明は、ロボットアームを構成する複数のリンクに沿ってロボットアーム各部に駆動信号ないし制御信号を伝達する線材が配置されるロボット装置、およびその制御方法に関するものである。
近年、ロボット装置、例えば関節が回転拘束される多軸多関節ロボットにおいて、駆動源がリンクに与えているトルクを計測するためのトルクセンサを関節に配置して関節に生じるトルクをトルク(力)制御する多関節ロボットが注目を集めている。関節にトルクセンサを配置することにより、多関節ロボットの関節に生じる力の制御やロボットアームの先端に配置されたエンドエフェクタが部品に与える荷重ないし力を制御する事が容易になった。
現在のところ、トルクセンサを有しトルク制御が可能なロボット装置は、自動車のエンジン部品の組み立てなど、数百グラムから数キログラムの荷重を部品に与えるような組み立てに使われることが多い。一方、重量が数グラムの微小な部品やフィルムやシートの操作など、組立時に部品に与える荷重が数グラム程度の微小荷重の組み立てには、ロボット装置はあまり利用されていない。その理由の1つは、現在の多関節ロボットの力(トルク)制御の精度がそれほど高精度ではなく、ロボットアーム先端のエンドエフェクタで部品に与える荷重が数グラム程度の範囲の組み立てを行うのに必要な要求精度を達成できていない点にある。
例えば、ロボット装置は、ロボットアームの各部、例えば関節を駆動するアクチュエータとの間で、当該のアクチュエータを制御するための駆動信号を伝達するための伝達部材を必要とする。これらの駆動信号には、制御信号のような制御情報の範疇に属する電気信号の他、駆動電力、油圧や空気圧の圧力信号などの駆動エネルギーの範疇に属する信号が含まれる。本明細書では、上記のような制御情報や駆動エネルギーを伝達するための電気信号や圧力信号などの信号を、ロボットアームの各部のアクチュエータを制御するための信号を「駆動信号」という。
例えば、関節やエンドエフェクタを駆動する駆動源(アクチュエータ)としてモータのような回転駆動源を用いるロボットでは、このモータやその駆動回路に制御信号や駆動電力を伝達する伝達部材として電線(ケーブル)のような線材を用いる。また、関節やエンドエフェクタを駆動するために油圧、空気圧などを利用したアクチュエータを用いる場合、駆動信号(エネルギー)を伝達するために、例えばラバーなどフレキシブルな材料から成る圧力管のような線材が伝達部材として用いられることがある。
また、上記のようなケーブルや圧力管の線材は1本のみ敷設されるより、例えばロボットアームの複数の関節分の線材を束ねたハーネス構造のものが敷設されるような構造が多い。このようなハーネスには、関節を駆動するアクチュエータの動作を検出するエンコーダや、上記のトルクセンサの信号を制御系にフィードバックするための線材が収容されることもある。また、ロボットアームの先端には、エンドエフェクタ(ないしツール)として、例えばハンドやグリッパのような把持装置が装着されることがある。このようなエンドエフェクタ(ツール)に対しても、上記の駆動信号の入出力(伝達)を行うことが必要で、その場合、上記の線材のハーネスには、エンドエフェクタ(ないしツール)に対して駆動信号を入出力する線材が収容されることがある。
上記のような線材(ないしそのハーネス)はロボットアームの内側あるいは外側に敷設され、その場合、ロボット装置の各関節を跨ぐように設置される。従って、駆動信号を伝達する線材は、ロボット装置の関節が回転動作(並進動作の場合も同様)した時に変形し、その変形に応じた反力を発生する。
一方、上記のように、リンク(あるいはエンドエフェクタ部)を支持する関節にトルク(力)センサを設けてトルク(力)制御を行うなら、本来、関節に生じているトルクのみをトルクセンサで測定し、トルク制御系にフィードバックできるのが望ましい。ところが、ロボット装置の動作に伴う上記の関節(やエンドエフェクタ)に駆動信号を伝達する線材の変形によって生じる反力は、関節に配置したトルクセンサの測定値に測定誤差として影響を与える。
例えば、ロボット装置の構成や規模などによっても異なるが、各種ケーブルや圧力管の線材のハーネスが変形した時の反力は、数百グラムの単位に及ぶことがある。従って、このような反力は、数グラムの精度で力(ないしトルク)制御をする場合、非常に大きな外乱となり、制御の精度に影響を与える問題がある。
以上の問題に鑑み、ロボット装置の所定の動作を行う時の関節トルクと事前に測定した関節の回転角度〜ケーブル反力の弾性的な関係を格納したテーブルに基づいて関節に生じている力を推定する構成が提案されている(下記の特許文献1)。この特許文献1では、各関節を制御する際の力制御性を改善することを目的としている。なお、特許文献1では、関節トルクは、各リンクの重量及び重心位置に基づいて逆運動学演算を行うことにより推定している。
特開2012−218104号公報
しかしながら、上記の特許文献1では、以下の二つの問題から、ロボット装置の関節に生じるトルクを正確に推定できないという問題がある。一つ目は、特許文献1では、ロボットのジオメトリや各部の重量などの構造条件に基づく逆運動学演算によって関節に生じているトルクを演算するため、推定誤差が生じるという問題である。逆運動学演算に用いた重心位置や重量の値が実物のロボット装置と異なっていれば、当然、推定誤差が生じる。例えば、任意の関節に生じるモーメントを算出する場合、対象の重量が5kgで重心位置が1mm異なると50mNmのトルク誤差が生じる。それに対して、300mmのリンクの先端で1gの力を制御したい場合は、リンクの根元の関節では3mNm(300mm×1g)のトルクを制御する必要があり、誤差が制御量の10倍以上となり、組み立ての要求精度を満たす事ができない可能性がある。また、実際のロボットアームでは、事前の測定と同等の状態に線材を配置できるとは限らない。この設置精度の問題から、力(トルク)推定演算を利用した特許文献1の技術では、事前の測定と同じ関節動作行ったからといって、実際に同じ反力が生じるとは限らない。
二つ目の問題は、特許文献1における推定演算に用いられるテーブルが関節角度とケーブルの反力の静的な弾性関係のみによって記述されている点にある。実際の線材(ケーブル)は、導線やその被覆材料、結束材などから構成されている。そして、このような線材(ケーブル)が、実際に変形する場合に発生する反力は、実際には動的な制御条件、例えば変形速度や、変形方向によって影響を受ける。例えば、線材(ケーブル)の反力は、ロボットアームの関節の動作速度により定まる変形速度に応じた粘性的な変化を示し、また、変形方向によっては非線形(ヒステリシス)的な変化を示すはずである。特許文献1では、このような変形速度に関係したケーブル反力の粘性的な変化、ケーブル変形の往復時に生じる非線形(ヒステリシス)の変化を考慮していないために、ケーブルの反力を精度良く予測することができない。
従って、特許文献1の技術では、線材の反力を考慮した制御とはいっても、充分な精度で力(トルク)制御を行うことができない可能性がある。物品の搬送や重量が数キログラムあるような物品の組み立てでは、上記のような微小な力制御性能の低下は問題にならないが、数グラムの微小重量の部品を力制御で組み立てる場合は、ケーブルの反力に起因する力制御性の低下が無視できなくなってくる。特許文献1の技術は、ロボットが取り扱う荷重範囲が大きい場合、あるいは実用的に利用できる可能性がある。しかしながら、特に上記のように数グラムのオーダの力(トルク)制御においては、特許文献1の技術でも充分な精度を達成できず、力制御性が低下する可能性がある。
従来、汎用的な多関節ロボット装置が微小荷重の組み立てに積極的に利用されてこなかった理由は、以上のような問題に起因する。このため、数グラムの微小重量の物品の組み立てには、従来では、ロボット装置ではなく、特別な構造を持ち、充分、寸法や精度範囲をコントロールした上で専用に製造された装置を用いることが多かった。
一方で、今後、多くの工業製品の製造は、多品種少量生産に向かう、との予想もある。そして、上記のような専用装置が微小(微細)部品のそれぞれに個別に必要である、という事情は、多品種少量生産の実現に関して重大な隘路となり得る。多品種少量生産のために必要な多数の微小(微細)部品のそれぞれについて、上記のような専用装置の設計、製作が必要ならば、これによって生産ラインの立ち上げ期間の長期化、立ち上げコストの上昇などの問題が生じる可能性がある。
そこで、汎用的な多関節ロボット装置で、線材の反力を考慮した充分高精度な力(トルク)制御が可能であれば専用装置を必要とせず、短期間で効率の高い多品種少量生産を行えるようになる、と考えられる。
本発明の課題は、動的な制御条件を考慮して、ロボット装置の関節(やエンドエフェクタ)の駆動信号の伝達に用いられる線材の反力によって関節に生じるトルクの測定ないし推定精度を改善し、高精度なロボット制御を実現することにある。
上記課題を解決するため、本発明においては、ロボットアームを構成する複数のリンクと、前記リンクを相互に接続する関節と、前記関節を駆動する駆動源と、前記リンクに沿って配置され前記駆動源に駆動信号を伝達する線材と、前記駆動源を制御する制御装置と、を備えたロボット装置、ないしはその制御方法において、前記関節を駆動した際に前記線材が発生する反力値を動的な駆動制御条件ごとに区画された区画記憶領域に格納したテーブルメモリを備え、前記制御装置は、前記関節の前記駆動源を駆動する際、その駆動制御条件によって前記テーブルメモリを参照して得た反力値に基づき、前記駆動源を制御するロボット制御を実行する構成を採用した。
上記構成によれば、線材が発生する反力値を、関節の駆動速度、動作方向、といった動的な駆動制御条件ごとに区画された区画記憶領域に格納したテーブルメモリを用いる。このため、関節の駆動速度、動作方向のような動的な駆動制御条件を反映した、より正確な線材の反力値を取得(推定)することができる。テーブルメモリから取得した線材の反力値をロボットアームの各関節の力制御に用いることにより、ロボットアームの力制御の精度を大きく向上することができる。このため、例えば汎用構成のロボット装置においても、関節の力制御を正確に行うことができ、繊細な力制御の必要な数グラム程度の重量の小さい部品の組み立てを実現することができる。これにより、そして、微小重量の部品を組み立てる生産ラインにおいて、専用装置や、人力による手動作業などを必要とせず、汎用構成のロボット装置を用いることが可能となる。従って、従来、必要とされた、専用装置の設計、製造コストの削減、あるいはさらに製作期間の削減、といった効果を期待できる。また、微細部品を組み立てる生産ラインの立ち上げコストを低減することが可能になる。
実施例1のロボット装置を示し、(a)は同装置を側面から示した説明図、(b)は同装置を後方から示した説明図である。 実施例1のロボット装置における回転関節の運動とケーブル反力の関係を示すテーブルである。 実施例1のロボット装置の制御系の構成を示したブロック図である。 実施例1のロボット装置におけるケーブルの固定箇所を示した図である。 実施例1のロボット装置におけるロボット制御を示したフローチャート図である。 実施例2のロボット装置における異なるロボット制御を示したフローチャート図である。 実施例1のロボット装置の制御装置の構成例を示したブロック図である。 角度テーブルの作成処理を示したフローチャート図である。 速度テーブルの作成処理を示したフローチャート図である。 非線形テーブルの作成処理を示すもので、(a)は正、逆駆動方向でそれぞれ角度テーブルを作成する手法、(b)は正、逆駆動方向でそれぞれ速度テーブルを作成する手法を示したフローチャート図である。 非線形テーブルの作成において、関節角度とケーブル反力の関係における回転方向依存のヒステリシス特性を示した線図である。
以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
<実施例1>
(ロボット装置の基本構成)
図1(a)、(b)は本発明を採用したロボット装置の一例として、多関節ロボット装置の全体構成を示している。図1(a)は、本実施例のロボット装置を例えば側面から示している。図1(a)の左下部には、このロボット装置制御に用いられる3次元(XYZ)座標系の座標軸を示してある。図示の通り、これら座標軸のうちZ軸は図の上方へ、またX軸は図の左方向へ向かうよう配置されている。図1(b)は、同ロボット装置のロボットアーム1を例えば後方(図1(a)の右方)から示している。図1(b)右下部にも同様の3次元(XYZ)座標系の座標軸を示してある。例えば、図1(a)に示したロボットアーム1の姿勢を初期姿勢とする。
図1(a)に示すように、ロボット装置はロボットアーム1(ロボット本体)と、ロボットアーム1を制御する制御装置91を含む。より詳細には、図3に示すように、制御装置91には指令装置94が接続され、これら制御装置91および指令装置94によってロボットアーム1(ロボット本体)の制御システム97が構成される。指令装置94は、例えばティーチングペンダントのような教示装置である。さらに制御装置91には後述する反力テーブル900を記憶する反力テーブル記憶部を有する。
指令装置94には、例えば、ロボットアーム1の関節の姿勢(位置や角度)、あるいはロボットアーム1先端などに配置された基準位置の位置などを移動させるための操作キーを含む操作部が配置される。指令装置94の操作部で何らかのロボット操作が行われると、指令装置94の操作に応じて、制御装置91はケーブル80(線材)を介して操作を介してロボットアーム1の動作を制御する。その際、制御装置91が後述の制御プログラムを含むロボット制御プログラムを実行することにより、ロボットアーム1の各部が制御される。
指令装置94には、例えば、ロボットアーム1の関節の姿勢(位置や角度)、あるいはロボットアーム1先端などに配置された基準位置の位置などを移動させるための操作キーを含む操作部が配置される。指令装置94の操作部で何らかのロボット操作が行われると、指令装置94の操作に応じて、制御装置91はケーブル80(線材)を介して操作を介してロボットアーム1の動作を制御する。その際、制御装置91が後述の制御プログラムを含むロボット制御プログラムを実行することにより、ロボットアーム1の各部が制御される。
図1(a)、(b)に示したロボットアーム1は、複数リンクを例えばシリアルリンク形式で複数の関節(6軸)を介して相互に接続した構成を有するロボットアームである。ロボットアーム1の先端のリンク60にエンドエフェクタ70が接続されている。ロボットアーム1のリンク10、20、30、40、50、および60は、例えば各関節、本実施例では回転関節11、21、31、41、51、および61を介して次のように接続されている。
ロボットアーム1のベース100(基台部)とリンク10はZ軸方向の回転軸の周りで回転する回転関節11で接続されている。回転関節11は、例えば初期姿勢から約±180度の可動範囲を有するものとする。ロボットアーム1のリンク10とリンク20は回転関節21で接続されている。回転関節21の回転軸は、図示の状態ではY軸方向に一致している。この回転関節21は、例えば初期姿勢から約±80度の可動範囲を有するものとする。
ロボットアーム1のリンク20とリンク30は回転関節31で接続されている。この回転関節31の回転軸は、図示の状態ではY軸方向に一致している。回転関節31は、例えば初期姿勢から約±70度の可動範囲を有するものとする。ロボットアーム1のリンク30とリンク40とは、回転関節41で接続されている。この回転関節41の回転軸は、図示の状態ではX軸方向に一致している。回転関節41は、例えば初期姿勢から約±180度の可動範囲を有するものとする。
ロボットアーム1のリンク40とリンク50は回転関節51で接続されている。回転関節51の回転軸は、図示の状態ではY軸方向に一致している。この回転関節51は、例えば初期姿勢から約±120度の可動範囲を有するものとする。ロボットアーム1のリンク50とリンク60は回転関節61で接続されている。回転関節61の回転軸は、図示の状態ではX軸方向に一致している。この回転関節61は、例えば初期姿勢から約±240度の可動範囲を有するものとする。
以上のように、本実施例では、回転関節11、41、61の回転軸は、各々が結合する2つのリンクの中心軸(1点鎖線)と平行(ないしは同軸)に配置されて、この2つのリンクの回転軸廻りの(相対)角度を変化させることができるよう配置されている。一方、回転関節21、31、および51の回転軸は、これら各々が結合する2つのリンクの中心軸(同)の交差する(相対)角度を変化させることができるよう配置されている。
また、ロボットアーム1のリンク60の先端には、生産ラインにおいて組み立て作業や移動作業を行うための(電動)ハンドや(空気圧駆動の)エアハンドなどのエンドエフェクタ70が接続される。このエンドエフェクタ70は、リンク60に対してビス止めなどの(半)固定的な手段(不図示)によって装着されるか、あるいは、ラッチ(ラチェット)止めなどの着脱手段(不図示)によって装着可能であるものとする。特に、エンドエフェクタ70が着脱可能である場合は、ロボットアーム1を制御して、ロボット自身の動作によって供給位置(不図示)に配置されたエンドエフェクタを着脱ないし交換する方式も考えられる。
(ケーブル経路)
図1(a)、(b)のロボットアーム1の回転関節11〜61、ないしはエンドエフェクタ70は、例えば電気的な回転駆動源、例えばモータ(後述の92:図3)により駆動される。その場合、回転関節では、モータの他に波動歯車機構などを利用した減速機が用いられることがある。また、ハンドやグリッパのようなエンドエフェクタではラック&ピニオンのような減速ないしは駆動方向の変換機構が用いられることがある。回転関節11〜61(ないしエンドエフェクタ70)を駆動するモータは、各回転関節(ないしエンドエフェクタ70)の内部の所定位置に配置される。なお、本実施例では、これらのモータは関節内部に配置されるものとするが、モータ(ないしは減速機)は関節外部に配置されていてもよい。
回転関節11〜61の駆動手段がこのようにモータである場合、各モータを駆動するためのエネルギー(駆動電力)ないしは制御信号、即ち駆動信号を伝達するための伝達手段として、ケーブルやワイヤのような線材が必要である。このような線材には、複数の線材を結束してワイヤハーネスの形態、あるいは1本の被覆内に複数の線材を収容してマルチケーブル化した形態がある。
また、回転関節11〜61や、エンドエフェクタ70の駆動手段が、油(液)圧や空気圧を利用した圧力機構により構成される場合も考えられる。その場合は、これらロボットアーム1の各部、即ち回転関節11〜61や、エンドエフェクタ70に圧力信号から成る駆動エネルギーないしは制御信号(駆動信号)を伝達する必要がある。この場合は、駆動エネルギーないしは制御信号の伝達のための伝達手段としては、好ましくはフレキシブルな圧力チューブのような線材が用いられる。
本実施例では、説明を容易にするため、回転関節11〜61(やエンドエフェクタ70)の駆動手段はモータであり、従ってこれら各部に駆動エネルギーないしは制御信号を伝達する伝達手段としての線材は、(電気)ケーブル80であるものとする。また、ケーブル80は、例えば制御装置91から各回転関節(あるいはエンドエフェクタ70)の間を連絡する複数の線材から成り、例えばワイヤハーネス(束線)構成であるものとする。
このケーブル80の配線(取り回し)経路は、図1(a)、(b)では破線によって示してある。ケーブル80(ないしそのハーネス)は、ベース100、各リンク10〜60のケーブル80はロボットアーム1の動作を妨げたり、周辺の装置に干渉したりしないようアームの内外に配設され、任意の場所で固定(ないしは半固定)する。
(ケーブルのリンクに対する固定)
図4に、ケーブルの固定箇所を示す。ケーブルの固定位置は、対象とする回転関節に生じるケーブル反力が他の回転関節の動作の影響を受けないようにするために、例えば各回転関節の前後で最低でも1個所において固定するのが好ましい。例えば回転関節21の場合、ケーブル80は回転関節11と回転関節21の間のケーブル固定部82で固定される。さらに回転関節21と回転関節31の間のケーブル固定部83で固定される。これによりケーブル80が回転関節21に与える反力は他の回転関節の動作にかかわらず、回転関節21の動作に依存する。回転関節11、31、41、51、61に関しては、同様にケーブルを固定するためにケーブル固定部81、84、85、86を設置する。
なお、ケーブル80を各回転関節の前後で固定しない場合は、複数の関節の動作がケーブル反力の増減に影響を与えることになる。この場合は、後述するケーブル反力テーブルは、影響を及ぼし合う複数の関節の動作を反映させたテーブルとして構成する必要がある。その場合、特定関節のためのケーブル反力テーブルには、他の関節の異なる角度(姿勢)におけるデータを格納する必要があり、テーブルの規模が大きくなる。例えば後述の角度テーブルにおいて、特定関節の特定角度におけるケーブルの反力値を格納する場合、他の関節の異なる角度(姿勢)ごとに反力値を格納することになる。このためにテーブルの規模が大きくなり、またその作成が難しくなる可能性がある。これに対して、上記のようにケーブル固定部81、82…を用いてケーブル反力に対する他の関節の影響を低減(ないし除去)する構造によれば、ケーブル反力テーブルのレコード数を削減することができ、その作成のための計算資源も小さくて済む利点がある。以下では、ケーブル固定部81、82…を用い、特定の関節に係るケーブル反力に他の関節の角度(姿勢)が影響しない場合を前提として説明する。
(ケーブル反力テーブル)
図2に、回転関節11、21…を回動させた時にケーブルが発生する反力値を格納する反力テーブル900の構成例を示す。反力テーブル900は、の制御装置91のメモリ91a(図3)に格納しておくことができる。このメモリ91aは、実際には、ROM602やRAM603(後述の図7)を用いて構成することができる。
図2において反力テーブル900は、角度テーブル911、921、931、941、951、961、速度テーブル912、922、932、942、952、962、非線形テーブル913、923、933、943、953、963から構成されている。これら、角度、速度、非線形の各テーブルは回転関節11、21、31、41、51、61のそれぞれの運動とその際に発生するケーブル反力の関係を関連づけて格納する。
特に、反力テーブル900の右側に示した2つのテーブル、速度テーブル912〜962と、非線形テーブル913〜963は、本実施形態の特徴的な構成である。これら速度テーブル912〜962と、非線形テーブル913〜963は、回転関節11〜61を駆動した際に線材(ケーブル80)が発生する反力値を動的な駆動制御条件ごとに区画された区画記憶領域に格納したテーブルメモリである。
これに対して、角度テーブル911〜961は、回転関節11〜61を特定の関節角度Aに制御した時、線材(ケーブル80)が発生する反力Rの(静的な)弾性関係を格納したテーブルメモリである。角度テーブル911〜961は、上述の特許文献1で用いられているテーブルと実質的には同等のものである。もし、反力テーブル900として、角度テーブル911〜961のみを配置した構成を取ると、この構成は特許文献1の構成と実質同等であり、上述のような課題を解決することができない。このため、本実施形態では、図2の右側の2つのテーブル、速度テーブル912〜962、ないし非線形テーブル913〜963のうち、少なくとも1つを反力テーブル900に有するものとする。なお、基本的なテーブル構成に相当する角度テーブル911〜961を作成する制御手順については、後述の図8で説明する。
一方、速度テーブル912〜962と、非線形テーブル913〜963は、関節の駆動速度(V1、V2…)、および駆動方向(D+、D−)の動的な各駆動制御条件ごとに区画された区画記憶領域に線材(ケーブル80)が発生する反力を格納する。この場合、動的な各駆動制御条件に対応する各区画記憶領域に格納されるのは、角度テーブル911〜961と同様に、関節角度(A)とその関節角度(A)における線材(ケーブル80)が発生する反力(R)を関連づけたレコードである。
例えば、図2の例では、速度テーブル912〜962は、関節駆動速度V1、V2、V3(…)で回転関節11〜61を駆動しつつ、各々、特定の関節角度(θ)において線材(ケーブル80)が発生する反力(Nm)を格納する。なお、ここでは、関節駆動速度はV1、V2、V3の3種類を示しているが、回転関節11〜61を駆動する時の速度(変速)の範囲は3種類に限らず、より多数(あるいは少数)の速度における反力(Nm)を格納する区画記憶領域を配置することもできる。
図2の中央下部のV1、V2、V3は、それぞれその上部の縦列に格納されている関節駆動速度V1、V2、V3(動的な駆動制御条件)における関節角度(θ)と反力(Nm)を関係づけたレコードを格納した区画記憶領域に相当する。この各区画記憶領域(V1〜V3…)は、角度テーブル911〜961との比較から明らかなように、角度テーブル911〜961と見かけ上、同等のレコード構成を有している。この速度テーブル912〜962は、ケーブル反力の粘性的な挙動に関するテーブルメモリである、といえる。なお、モータ(92:図3)などにより回転関節11〜61を駆動する時関節駆動速度は、例えば角速度(rad/秒)のような単位を用いる。
なお、図2の図示は理解を容易にするためのもので、実際に各区画記憶領域(V1〜V3…)を記憶空間のどのようなアドレスに配置するかは任意である。このため、各区画記憶領域(V1〜V3…)のアドレス配置は実装上は必ずしも図示のような前後(上下)関係になっている必要はない。この点は下記の非線形テーブル913〜963についても同様である。速度テーブル912〜962を作成する制御手順については、後述の図9で説明する。
また、図2において、非線形テーブル913〜963の区画記憶領域は、それぞれ正転(D+)および、逆転(D−)方向に回転関節11〜61を駆動しつつ、各々、特定の関節角度(θ)において線材(ケーブル80)が発生する反力(Nm)を格納する。
一般に、この種の線材(ケーブル80)のような部材の変形事象において、動作の往路と復路でその部材が発生する反力の変化には、動作の往路と復路で非線形的な差が生じることが知られている。例えば、図11に示すように、ある回転関節(11〜61)を関節角度0°からAまで、正回転(D+)方向に駆動する往路と、同じ経路を逆回転(D−)方向で戻る復路におけるケーブル反力(Nm)の変化を示している。このような動作の往路と復路で異なる非線形的な特性は一般に「ヒステリシス」などと呼ばれることがあり、このヒステリシスHは、定量的には往路と復路の測定量の差分などとして記述される場合がある。図2の非線形テーブル913〜963は、ある関節の動的な駆動制御条件(駆動方向)に係るケーブル反力のこのような非線形的な挙動、即ちヒステリシス特性を記述したテーブルメモリである、といえる。
図2の右側下部のD+、D−は、それぞれその上部の縦列に格納されている正転(D+)、逆転(D−)の各関節駆動方向(動的な駆動制御条件)における関節角度(θ)と反力(Nm)を関係づけたレコードを格納した区画記憶領域に相当する。図2では、この各区画記憶領域(D+、D−)は、角度テーブル911〜961との比較から明らかなように、角度テーブル911〜961と見かけ上、同等のレコード構成を有している。
ここで、非線形テーブル913〜963は、レコード構成上は、正転(D+)および、逆転(D−)方向で、2種類の角度テーブル(911〜961)を作成したもの、と考えることができる。
これを敷衍すれば、正転(D+)および、逆転(D−)方向で、2種類の速度テーブル(912〜962)を作成してもよいことが判る。そして、この正転(D+)および、逆転(D−)方向で、作成した2種類の速度テーブル(912〜962)は、関節の駆動速度、および駆動方向の2つの動的な駆動制御条件に対応して区画された区画記憶領域を持つことになる。このテーブルは規模としては、図中央の速度テーブル(912〜962)の(正転(D+)、逆転(D−)の)2つ分の大きさとなる。
図2では、この関節の駆動速度、および駆動方向の2つの動的な駆動制御条件に対応して区画された区画記憶領域を持つテーブルは明示的に図示していない。しかしながら、非線形テーブル913〜963を、2種類の角度テーブル(911〜961)として作成する手順は後述の図10(a)で説明する。また、非線形テーブル913〜963を、2種類の速度テーブル(912〜962)として作成する手順は後述の図10(b)で説明する。
以上のようにして、関節の駆動速度(V1、V2…)、および駆動方向(D+、D−)の動的な各駆動制御条件を反映した速度テーブル912〜962や、非線形テーブル913〜963をROM602やRAM603などの記憶領域に用意しておく。
ただし、動的な各駆動制御条件を反映した制御を行うには、上記の速度テーブル912〜962、または非線形テーブル913〜963の少なくとも1つを反力テーブル900として用意しておく。特に非線形テーブル913〜963の場合は、上記の駆動方向のみに応じて区画された非線形テーブル、あるいは関節の駆動速度、および駆動方向の双方の動的な駆動制御条件に対応して区画された非線形テーブルのいずれを用いてもよい。駆動方向のみに応じて区画された非線形テーブルは、例えば図10(a)の手順で作成することができる。また、関節の駆動速度、および駆動方向の双方の動的な駆動制御条件に対応して区画された非線形テーブルは、例えば図10(b)の手順で作成することができる。
以上のように、反力テーブル900として、動的な駆動制御条件ごとに区画された区画記憶領域に格納したテーブルメモリを用意しておく。これにより、制御装置91(図3:後述)は、反力テーブル900を、各関節の動的な駆動制御条件に応じて参照し、その動的な駆動制御条件において発生している線材(ケーブル80)の反力値を推定することができる。そして、反力テーブル900を参照して取得した反力値に基づき、当該の回転関節を駆動制御するロボット制御を実行することができる。
(トルクセンサの配置)
本実施例は、ケーブル80の変形時の反力を推定する反力テーブル900を回転関節11〜61の駆動制御に反映させることができるよう構成してある。例えば、ロボットアーム1の回転関節21の場合、回転関節21を駆動するモータ(不図示)の駆動トルク、即ち、このモータからリンク20に印加される回転駆動力を測定するトルクセンサ22が設けられる(図1(b))。このトルクセンサ22は、例えば回転関節21の内部に配置されたモータあるいはさらに減速機から成る駆動系の駆動軸上の所定位置に配置される。
なお、トルクセンサ22の構造や配置位置の詳細は不図示であるが、このような回転関節の回転駆動力を測定するトルクセンサ22に関しては公知の構造を利用してよい。また、他の回転関節11、31、41、51、61に関しても、それぞれトルクセンサ22と同様のトルクセンサ12、32、42、52、62(図3)が配置されるものとする。
回転関節21の回転駆動力を測定するためのトルクセンサ22は、上記の通り、回転関節21を駆動するモータあるいはさらに減速機などから成る駆動系の駆動軸上の所定位置に配置される。そして、上記のように、例えば回転関節21の軸上にケーブル80が(半)固定されるような構造では、モータにより回転関節21を駆動してその角度を変化させると、ケーブル80は回転関節21の両側で変形することになる。従って、回転関節21の回転駆動力を測定するためのトルクセンサ22は、実際には、このケーブル80の変形時の反力と、回転関節21を駆動するモータの回転駆動力が合成されたトルクを検出することになる。
そこで、回転関節21に関して、ケーブル80の変形時の反力を示す反力テーブル900を設けている。この反力テーブル900を用いて、例えばトルクセンサ22の出力を回転関節21の駆動にフィードバックする駆動制御を補正できる(後述の図5、図6)。
(反力テーブルの作成処理)
次に、図8、図9、図10を参照して、制御装置91によるテーブルメモリ作成処理、即ち、反力テーブル900の作成手順につき説明する。図8は角度テーブル911〜961(図2)、図9は速度テーブル912〜962(図2)、図10(a)、(b)は、異なる2つの非線形テーブル913〜963(図2)の各作成手順を示している。これらの反力テーブル900の作成手順は、制御装置91が実行可能なロボット制御プログラム(の一部)として構成することができる。その場合、反力テーブル900の作成手順を含むロボット制御プログラムは、制御装置91(具体的には、後述のCPU601)が実行可能な制御プログラムとして例えばROM602に格納しておく。
なお、角度テーブル911〜961の単体は、実質的には特許文献1に記載のテーブルと同等のものである。しかしながら、角度テーブル911〜961の作成は、速度テーブル912〜962(図2)、非線形テーブル913〜963(図2)の作成を理解する上で重要であるから、簡単に説明する。
ここでは、回転関節11を例に説明する。ここで、反力テーブル900のうち回転関節11に対応するテーブルは角度テーブル911、速度テーブル912、非線形テーブル913である。
これらのテーブルを作成するには、回転関節11の関節角度を順次変更しながら、回転関節11のトルクセンサ12で同関節に作用している力(トルク)を測定し、ケーブル80の反力分を算出する。その際、好ましくは、ロボットアーム1のエンドエフェクタ70およびリンク10、20、30、40、50、60が周囲の装置などに接触しておらず荷重を受けていない状態で、回転関節11を動作させる。この時のトルクセンサ12の測定値と、トルク推定値の差分から回転関節11におけるケーブル反力として測定することができる。ただし、この時用いるトルク推定値については、ロボット装置の構造情報、例えば、ロボットアーム1の各部の重量や寸法、重心位置などから逆運動学演算によって関節に生じているトルクを演算する。
例えば、回転関節11のために角度テーブル911を作成する場合は、任意の関節角度θで静止しその時のトルクセンサの測定値と、ロボットアーム1がその姿勢を取った時に生じる回転関節11のトルク推定値が関節角度θにおけるケーブル反力となる。関節角度θを順次(例えば数度ないし数10度ずつ)変更しつつ、この動作を繰り返すことにより、角度テーブル911を作成することができる。
図8は、制御装置91(CPU601)が6関節分の回転関節11〜61の角度テーブル911〜961を作成する手順を示している。同図のステップS91では、11〜61をインデックスするカウンタn(あるいはポインタ)の値を回転関節11を指す「1」に初期化する。ステップS92では、後述のステップS99でインクリメントされるカウンタnの値が7より小さいか否かを判定する。カウンタnの値が7より小さい間は、順に回転関節61まで処理していないため、ステップS93〜S99の各ステップをループする。
ステップS93では、制御装置91はモータ(92:図3)を制御して、n軸の関節角度を反力測定を行う特定角度に制御する。ここで、「n軸」とは、n=1であれば回転関節11、n=2であれば回転関節21、n=3であれば回転関節31…(以下同様)の各回転関節を意味する。また、図8の処理は、当該関節の可動範囲全域に渡って実行するものとし、例えば当該関節(n軸)の可動範囲が0°〜240°であれば、最初は0°または240°の可動域端部に当該関節(n軸)を制御する。そして、数°ないし10数°程度の所定ステップ角で関節角度を増加または減少させつつ、下記の処理を実行する。
ステップS94では、制御装置91が、当該関節のトルクセンサ(回転関節11であれば12:図3)よりトルク検出値を取得する。また、ステップS95では、制御装置91が、逆運動学演算によってロボットアーム1のジオメトリや各部の重量、重心位置などに基づき、当該の関節角度において当該関節に作用するトルク推定値を演算する(関節負荷計算、ないしはアーム自重計算)。
ステップS96において、制御装置91は、ステップS94で得たトルク検出値(実際値)と、ステップS94で得たトルク推定値の差分を取得する。この差分は、上述のように、当該関節の当該の関節角度(特定角度)において線材(ケーブル80)が発生している反力値(ケーブル反力)である。そこで、ステップS97では、当該の関節角度(特定角度)と、この姿勢で測定されたケーブル80の反力値を関連づけた1レコードとして、角度テーブルに格納する。この時、テーブルデータ(レコード)を格納する格納先の角度テーブル911〜961は、例えばカウンタnの値を用いて決定することができる。
ステップS98では、制御装置91は、当該関節の可動範囲全域のデータ取得を終了したか否かを判定する。当該関節の可動範囲全域のデータ取得を終了していない間は、上記の所定ステップ角で関節角度を増加(または減少させ)た上、ステップS93に復帰し、上記の処理を繰り返す。一方、ステップS98で当該関節の可動範囲全域のデータ取得を終了したと判定した場合には、ステップS99に移行する。
ステップS99では、次の関節をインデックスすべく、制御装置91は、カウンタnをインクリメント(n=n+1)し、制御をステップS92の脱出判定に移す。上述の処理を繰り返した後、順に回転関節61まで処理した後のステップS92では、カウンタnの値は7に到達している。この場合は、角度テーブル911〜961が全て作成されているので、図8の角度テーブル作成処理を終了する。
図9は、速度テーブル作成処理を示しており、ここでは、回転関節、およびその関節に対応する速度テーブルを特定するのに上記同様にカウンタnを用いている。ステップS101、S102は図8のS91、S92と同様で、それぞれカウンタの初期化(n=1)と、全関節処理済みか否かの判定(n<7)に相当する。なお、本実施例では、一般的に広く使われているロボットアームとして6軸多関節ロボットを想定し、n<7としたが、他の軸数のロボット(3軸や7軸)でも利用する事ができる。その場合、このステップのnの判定に用いるしきい値は、(関節数+1)とすればよい。
ステップS103は、n軸を所定の特定の関節角度(特定角度)に制御し、その際、目的の特定角度に当該関節を移動させる際、特定の関節駆動速度(特定速度)を用いる(ステップS104)。この時用いる関節駆動速度は、もちろん例えば図2のV1、V2、V3(…)などである。なお、このステップS103とS104の書き分けは便宜上のもので、実際に関節を駆動する時には、制御装置91は、特定角度(目標角度)と、駆動速度の各パラメータをセットした上で、実際の駆動処理を開始する。
ステップS105、S106は、図8のステップS94、S95とそれぞれ同等である。ステップS105では、当該関節のトルクセンサ(回転関節11であれば12:図3)からトルク検出値を取得する。また、ステップS106では、制御装置91が、当該の関節角度(あるいはさらに関節速度)において当該関節に作用するトルク推定値を演算する(関節負荷計算、ないしはアーム自重計算)。
続いて、ステップS107において、制御装置91は、ステップS105で得たトルク検出値(実際値)と、ステップS106で得たトルク推定値の差分を取得する。この差分は、上述のように、当該関節の当該の関節角度(特定角度)および駆動速度(動的な駆動制御条件)において線材(ケーブル80)が発生している反力値(ケーブル反力)である。
そこで、ステップS108では、当該の関節角度(特定角度)と、この姿勢で測定されたケーブル80の反力値を関連づけた1レコードとして、当該の速度テーブルの駆動速度(動的な駆動制御条件)に対応する区画記憶領域に格納する。この時、テーブルデータ(レコード)を格納する格納先の速度テーブル912〜962は例えばカウンタnの値を用いて決定する。また、速度テーブルの格納先である駆動速度(動的な駆動制御条件)に対応する区画記憶領域は、ステップS104で選択されている関節駆動速度(V1、V2、V3…)によって決定される。図2の例で言えば、例えば駆動速度がV1であれば、当該の区画記憶領域(V1)を用いる。
ステップS109では、全ての速度域でデータ取得を完了したか否かを判定する。例えば図2の場合では、当該関節の駆動速度をV1から順にV2、V3と変更して上記の各処理を実行する。この場合は、V3の駆動速度を用いたデータ取得を終了していれば、ステップS110に進み、まだV3の駆動速度まで用いていなければ駆動速度条件を変更(例えばV1−>V2)してステップS104に復帰し、上記と同様の処理を実行する。
ステップS110は、上述のステップS98と同様で、当該関節の可動範囲全域のデータ取得を終了したか否かを判定する。当該関節の可動範囲全域のデータ取得を終了していない間は、上記の所定ステップ角で関節角度を増加(または減少させ)た上、ステップS102に復帰し、上記の処理を繰り返す。一方、ステップS110で当該関節の可動範囲全域のデータ取得を終了したと判定した場合には、ステップS111に移行する。ステップS111では、次の関節をインデックスすべく、制御装置91は、カウンタnをインクリメント(n=n+1)し、制御をステップS102の脱出判定に移す。上述の処理を繰り返した後、順に回転関節61まで処理した後のステップS102では、カウンタnの値は7に到達している。この場合は、速度テーブル912〜962が全て作成されているので、図9の角度テーブル作成処理を終了する。
なお、速度テーブル912〜962の作成のループ制御は必ずしも図9のような態様でなくても構わない。例えば、当該関節を特定角度への駆動速度条件をV1、V2、V3のように選択して、図8の角度テーブル作成手順を順次実行する、といったループ構成であっても同等の速度テーブル912〜962を作成できる。その際、速度テーブルの格納先である駆動速度(動的な駆動制御条件)に対応する区画記憶領域は、ステップS104で選択されている関節駆動速度(V1、V2、V3…)によって決定する。
図10(a)、(b)は、異なる2つの非線形テーブル913〜963(図2)の各作成手順に対応する。
この作成手順の1つは、例えば、図10(a)のように実施できる。即ち、正転(D+)方向に関節駆動を行いながら、図8と同様の角度テーブル作成処理を行い、関節角度〜ケーブル反力を関係づけたレコードを取得し、それぞれ区画記憶領域(D+)に格納する(ステップS121:(1))。続いて、逆転(D−)方向に関節駆動を行いながら、図8と同様の角度テーブル作成処理を行い、関節角度〜ケーブル反力を関係づけたレコードを取得し、それぞれ区画記憶領域(D−)に格納する(ステップS122:(2))。
このようにして、それぞれ正転(D+)方向、および逆転(D−)方向のように動的に異なる関節の駆動制御条件ごとに区分された区画記憶領域(D+、D−)に各々の関節角度〜ケーブル反力を関係づけたレコードを格納することができる。
この図10(a)のステップS121、S122によって、形成される非線形テーブル913〜963は、図2右側のように、正転(D+)方向、および逆転(D−)の各駆動方向に対応する区画記憶領域(D+、D−)を有するものとなる。この図2の非線形テーブル913〜963は、関節角度(θ)をキーとして、その時の関節駆動方向(D+/D−)に応じて選択した区画記憶領域(D+、D−)から反力値を読み出す、といった手法で参照することができる。
なお、ステップS123として、ステップS122(2)とS121(1)で得たデータの差分、即ち、区画記憶領域D−、D+に格納された反力値の差分を作成する処理が記載してある。必ずしも、このデータは作成する必要はないが、例えば、区画記憶領域D−の部分テーブルに換えて、このように作成した反力値差分データのみを格納することが考えられる。これにより、テーブルメモリに必要な記憶容量を削減できる可能性がある。この場合、実際のテーブル参照では、区画記憶領域D+の当該の関節角度のデータを参照し、当該の関節角度に係る反力値差分データを作用させる(例えば加算する)ことにより、逆転(D−)方向の反力値データを求めることができる。この時、正転(D+)方向の反力値データは、区画記憶領域D+の当該の関節角度のデータを参照することにより、求めることができる。
また、既に、図2によって概略は、説明済みであるが、非線形テーブル913〜963は、正転(D+)方向、および逆転(D−)の各駆動方向で関節駆動を行いつつ、それぞれ速度テーブルを作成することによっても作ることができる。図10(b)は、この処理を示している。
即ち、正転(D+)方向に関節駆動を行いながら、図9と同様の速度テーブル作成処理を行い、関節角度〜ケーブル反力を関係づけたレコードを取得し、区画記憶領域(D+)に格納する(ステップS131:(1))。続いて、逆転(D−)方向に関節駆動を行いながら、図9と同様の速度テーブル作成処理を行い、関節角度〜ケーブル反力を関係づけたレコードを取得し、区画記憶領域(D−)に格納する(ステップS132:(2))。なお、この際、関節角度〜ケーブル反力を関係づけたレコードは、関節駆動速度の条件(動的な駆動制御条件)に応じて区画された区画記憶領域(D+またはD−)に格納されるのはいうまでもない。
このような作成処理によって、正転(D+)方向、および逆転(D−)に対応する2つの区画記憶領域(D+またはD−)に、それぞれ図2の中央に示したようなレコード構成を有する2つの速度テーブルが作成される。図2の例で言えば、それぞれV1、V2、V3(…)の駆動速度による区画記憶領域を有する速度テーブルを正転(D+)方向、および逆転(D−)に対応する2つの区画記憶領域(D+またはD−)に格納したのと同等のテーブル構成になる。
図10(b)のようにして作成した、非線形テーブル913〜963は、関節の駆動速度と、関節駆動方向の各々の動的な駆動制御条件に応じて区画された区画記憶領域を有している。従って、ある関節角度への関節動作において、非線形テーブル913〜963を参照する時、制御装置91は、その時の駆動速度と、関節駆動方向に応じて、対応する区画記憶領域を選択することができる。これにより、駆動速度と、関節駆動方向の各々の動的な駆動制御条件の双方が反映された反力値を制御装置91を取得できる。そして、取得した駆動速度と、関節駆動方向の各々の動的な駆動制御条件の双方が反映された反力値に基づき、関節制御(例えば後述のトルクサーボ制御)を行うことができる。
なお、図10(b)のステップS133は、図10(a)のステップS123と同様に、例えば区画記憶領域D−(あるいはD+)の部分テーブルに換えて格納する差分形式のケーブル反力値を作成する処理である。この差分形式のケーブル反力値作成は、差分データを区画記憶領域D−(あるいはD+)の部分テーブルに換えて格納する必要がなければ必ずしも実行する必要はない。
なお、以上では、回転関節11〜61のトルクセンサ(12、22…)の実測値と、回転関節11〜61のトルク推定値の差からケーブルの反力を求めてケーブル反力テーブルを作成する例を示した。ここで、回転軸の方向を重力方向と一致させることができる回転関節の場合には、ケーブル反力テーブル作成の際、対象の回転関節に重力が印加されないようにアームの姿勢を制御して測定を行うようにしてもよい。この場合には、当該回転関節の駆動負荷はケーブル反力のみとなる。このため、トルクセンサから測定した検出値をそのままケーブル反力値としてテーブルに格納することができる。ただし、アームのジオメトリによってはこのような反力値測定を行えない場合もある。しかしながら、このような反力値測定を行える関節については、関節に負荷されるトルクの推定誤差の影響を除去(ないし低減)できる利点がある。
また、図8〜図10の角度、速度、非線形の各テーブルの作成においては、ロボットアーム1にケーブルを配置する前に、ケーブル反力を測定する専用の測定装置を用いて、反力値を測定することにより、反力テーブル900を作成してもよい。
しかしながら、ユーザ設置環境に応じて実際に配置されるケーブル(80)は多種多様である可能性があり、また、個体差の範囲も様々である可能性がある。このため、上記のように専用の測定装置を用いた場合にはロボットアーム1の製造時にすべてのユーザの使用状態に適したテーブルを作成することができず、ケーブルの反力の推定精度が低下し、制御の精度が低下する可能性がある。
これに対して、テーブルを利用するのと同じロボット装置で反力テーブル900を作成することにより、反力テーブル900参照によるケーブル反力の推定精度、およびそれに基づく関節制御の精度を向上させることができる。図8〜図10に示した反力テーブル900の作成処理は、製造後の適当なタイミングで、ユーザが利用する環境で少なくとも1度、実施すればよい。
例えば、反力テーブル900の新規作成処理(ないしデータ更新処理)は、出荷時、ユーザ環境への設置時、電源投入に伴う初期化時、あるいは定期点検時などのタイミングで実施することができる。
(制御装置)
図3は、本実施例のロボット装置の制御系の構成例を示している。図3において、ロボット装置の制御システム97は制御装置91(図1(a))と指令装置94により構成されている。制御装置91は、図3の右側に示した下記の各部を制御することにより、ロボットアーム1の動作を制御する。
図3では、上述の回転関節11、21、31、41、51、61を駆動する各モータはモータ92の1ブロックにより示してある。モータ92は、例えばサーボモータであり、各回転関節のモータ92には関節回転角を位置制御するために回転角を検出するエンコーダ95が(それぞれ)併設される。より詳細には、エンコーダ95はモータ92の出力軸、ないしはその回転出力を減速する減速機の出力軸、あるいはこれら出力軸の双方に配置される。
また、例えば回転関節11、21、31、41、51、61の回転駆動トルクの制御(例えばトルクサーボ)のために、上述のトルクセンサ12、22、32、42、52、62が各回転関節の駆動系(不図示)の一部に配置されている。これらトルクセンサ12、22、32、42、52、62も、図3では1ブロックによって図示されている。
さらに、上述の回転関節11、21、31、41、51、61のための反力テーブル900は、制御装置91のメモリ91aに保存されている。メモリ91aの記憶領域は、後述のROM602、RAM603(図7)などを用いて構成することができる。あるいは、不図示のHDD(SSD)、各種フラッシュメモリなどの外部記憶装置を設けて、例えばデータファイルの形式で反力テーブル900を記憶させてもよい。
制御装置91は、各関節のエンコーダ95を用いて、各関節の回転角(姿勢)を検出し、例えばエンドエフェクタ70が所定の位置姿勢を取るように、ロボットアーム1全体が所望の位置姿勢を取るよう制御する。
また、制御装置91は、上記のトルクセンサ12〜62により検出した各関節の駆動トルクに基づき、各関節のモータ92の駆動エネルギーを制御(例えばPWM制御など)することにより、各関節の駆動トルクを所望の値に制御することができる。これにより、例えば、エンドエフェクタ70でワークを操作する際にワークの物性(例えば剛性や強度)に応じた力が対象物のワークに加わらないように制御する、といった制御が可能となる。
もし、ケーブル反力に起因してこのようなトルク制御に大きな誤差が生じた場合には、特に対象物のワークに対する操作力が小さな範囲に制限されるような用途にロボット装置を用いることが難しくなる。しかしながら、本実施例では、回転関節の駆動制御条件に関して、関節角度のような静的な駆動制御条件のみならず、駆動速度および駆動方向に係る非線型(ヒステリシス)特性のような動的な駆動制御条件を考慮したケーブル反力テーブルを用いる。このため、現実の関節駆動条件に即したケーブル反力の補正が可能であり、従って、正確なトルク制御に基づき各関節を制御することができる。従って、対象物のワークに対する操作力が小さな範囲に制限されるような用途においても、ロボット装置を適用することができ、ワークの損傷などを生じることなく、信頼性の高い対象物操作を行える。
ここで、エンコーダ95を用いた位置(姿勢)制御、およびトルクセンサ12、22、32、42、52、62を用いたトルク制御(トルクサーボ)のそれぞれは公知の制御である。例えば、制御装置91は、特定の回転関節について、予めプログラムされた(あるいは指令装置94により指定された)回転角度、ないしは関節駆動トルクの目標値と、エンコーダ95およびトルクセンサ12〜62の実測値を用いてモータ92を制御する。その場合、制御装置91が目標値と実測値が一致するように制御を行うことによって、所期のロボット動作を実現する。
本実施例では、さらに、トルクセンサ12、22、32、42、52、62を用いたトルク制御(トルクサーボ)に、上述の反力テーブル900で示すケーブル反力を反映させることができる。
上述のように、反力テーブル900は特に各関節のトルクセンサと同じ回転軸廻りに外乱として働くケーブル反力と回転関節の動きを示している。一方、トルクセンサ12、22、32、42、52、62は、各回転関節の駆動系の一部に配置されるため、機構上、モータ92の駆動トルクと上記ケーブル反力の合力を測定することになる。従って、例えば、後述のようにトルクセンサ12、22、32、42、52、62を用いたトルク検出値を、反力テーブル900で示すケーブル反力を用いて補正することができる。これにより、ケーブル反力の外乱成分を除去し、各回転関節に関して正確なトルク制御(トルクサーボ)を実施することができる。
なお、より詳細には、制御装置91は、例えば図7に示すように、汎用マイクロプロセッサなどから成るCPU601を中心として構成することができる。図7において、制御装置91は、例えばCPU601と、各部を制御するためのロボット制御プログラムを記憶するROM602と、データを一時的に記憶するRAM603と、インタフェース回路604、605から構成することができる。
ROM602は、後述のようなトルク制御を含むロボット制御プログラムを記憶するコンピュータ(CPU601)により読み取り可能な記録媒体に相当する。CPU601は、例えばROM602に格納されたロボット制御プログラムを実行することにより、後述のようなトルク制御を含むロボット制御を実行する。
なお、例えばROM602の一部は、書き換え可能な不揮発領域により構成できる。その場合、不図示のフラッシュメモリや光ディスクのようなコンピュータ読み取り可能な記録媒体や、ネットワークなどを介して取得したロボット制御プログラムを新たに上記書き換え可能な不揮発領域にインストールすることができる。また、上記書き換え可能な不揮発領域に格納されているロボット制御プログラムは、上記コンピュータ読み取り可能な記録媒体や、ネットワークなどを介して取得したデータによって更新することもできる。
上述の反力テーブル900を格納するメモリ91a(図3)の記憶領域は、ROM602、RAM603(図7)などを用いて構成することができる。インタフェース回路604は、例えば指令装置94との間のデータ入出力に用いることができる。また、インタフェース回路605は、例えば上述のモータ92、エンコーダ95、トルクセンサ12、22、32、42、52、62に対するデータ入出力に用いることができる。また、反力テーブル900を不図示のHDD(SSD)、各種フラッシュメモリなどの外部記憶装置に格納する場合には、インタフェース回路605をこれら外部記憶装置の反力テーブル900にアクセスするために用いることができる。
ロボットアーム1の動作指令を与える指令装置94には、不図示の記憶装置(例えばRAM、ROMや外部記憶装置)が設けられる。この記録装置には、製品組み立てなどを行うのに必要なロボットアーム1のロボット制御情報が記録されているものとする。このロボット制御情報は、例えば複数の教示点データ、あるいはロボット制御プログラムの書式などによって記述される。また、このロボット制御情報の記憶装置は、指令装置94側ではなく、制御装置91側のRAM603やROM602、あるいは不図示の外部記憶装置(例えばHDDやSSD)によって構成することもできる。
作業者は、指令装置94を操作して、予め作成された上記のロボット制御情報の実行(再生)を指定することにより、ロボットアーム1に予めプログラムした動作を行わせることができる。また、指令装置94がティーチングペンダントなどの教示装置である場合には、指令装置94の関節の動作をジョグ操作方式などにより指令する操作キーを操作して、ロボットアーム1に対話的に任意の動作を行わせることができる。その場合、順次実行させた動作を上記の記憶装置にロボット制御情報として記憶させることもできる。上記のロボット装置の教示操作や、ロボット制御情報の格納方式については公知技術であるため、ここでは上記以上の詳細な説明は省略する。
本実施例では、制御装置91は、トルクセンサ12〜62の測定誤差(外乱)として作用するケーブル反力を反力テーブル900から推定できる。そして、例えば、ケーブル反力テーブルの示す値から差し引く補正制御を行うことができる(後述の図6)。このようにトルクセンサ12〜62の出力値からケーブル反力の成分を差し引く補正演算を行うことにより、各モータ92が減速機(不図示)を介して当該関節の手先側のリンクに実際に与えているトルクの実際値をより正確に算出することができる。そして、ケーブル反力を除去して得たトルク値と、指令装置94から関節で生じるトルク目標値が一致するように制御を行うことによって、より正確にロボットアーム1の関節のトルク(サーボ)制御を実行することができる。なお、制御装置91のCPU601で実行可能なロボット制御の実例については後述の実施例2で説明する。
以上のように、本実施例では、回転関節11、21、31、41、51、61に関して、反力テーブル900を設けている。そして、反力テーブル900を用いて各関節の駆動トルクを測定するトルクセンサ12〜62の出力を補正する補正演算を実施することができる。
なお、ロボット装置の回転関節のトルク制御においては、トルク制御性を向上させるため、関節にトルクセンサを設置して駆動トルク値を検出して当該関節のモータ制御にフィードバックするトルク制御が行われることがある。このようなトルク制御(サーボ)では、理想的には、トルクセンサ12〜62の測定値は関節がリンクに与えているトルクのみを測定する必要がある。しかしながら、ロボットアーム1の内外に沿ってケーブル80を配設すると、ロボット動作に伴うケーブル80の変形により生じるケーブル反力がトルクセンサ12〜62の測定値に誤差を生じさせる可能性がある。
これに対して、本実施例では、ケーブルが変形することで生じる反力をケーブル反力テーブルで推定し、トルクセンサで測定したトルク値を補正することで、誤差の少ない値をフィードバックすることができる。従って、従来は、トルクセンサの誤差によって不可能であった微小な力の範囲で関節のトルク制御を行うことができるようになり、特に微小重量の微細な部品を力(トルク)制御を作用させて組み立てることができるようになる。
これにより、従来、特別に設計、製造された専用装置を用いる必要なく、汎用的な多関節ロボットを力(トルク)制御で用いることにより、従来はこの種のロボットで不可能であった微細部品の製造、組み立てを行うことができるようになる。
また、回転関節に配置したトルクセンサで検出したトルク値は、ロボットアームの振動抑制に利用されることがある。特に、多関節のロボットアームでは、動いている状態から停止した時のエンドエフェクタ70の振動が問題になる事がある。例えば、ロボットアーム先端の位置がオーバーシュートし、エンドエフェクタが他の部材に緩衝、接触するなどした状況において、振動が停止するまでの待ち時間が組み立て時間短縮のネックになる場合がある。
上記のロボットアーム1において、各関節に設けたトルクセンサ12、22、32、42、52、62はこの振動問題に対処するために利用することができる。例えば、トルクセンサ12、22、32、42、52、62により当該の関節に生じているトルクを計測し、そのトルクを打ち消すように当該関節を駆動するモータ92を駆動する制御を行うことにより、ロボットアーム1の振動を抑えることができる。
そして、本実施例によれば、トルクセンサ12、22、32、42、52、62の出力値から、反力テーブル900によって、各関節で生じているケーブル反力を外乱として除去することができる。このため、本実施例によれば、当該関節が支持しているリンクに生じている実トルク値を極めて精度良く測定でき、この実トルク値をロボットの振動抑制にフィードバックすることにより、この振動抑制性能の向上も期待できる。
<実施例2>
本実施例では、上述の制御装置91のCPU601で実行可能なロボット制御手順(ロボット制御プログラム)の例をいくつか例示する。図5、および図6は、それぞれ制御装置91のCPU601で実行可能なロボット制御手順(ロボット制御プログラム)の流れを示している。
図5の制御例は、反力テーブル900の示すケーブル反力に応じて、指令装置94による回転関節を駆動するための指令値を補正するものである。また、図6の制御例は、反力テーブル900が示すケーブル反力に応じて、各回転関節のトルクセンサ12、22、32、42、52、62の出力値を補正してトルク制御をするものである。図5、図6の制御は、理解を容易にするため、特定の1つの回転関節に係る制御に単純化して図示してある。図5、図6に示した制御は、CPU601が実行するロボットプログラムの一部として例えばROM602などに格納しておくことができる。
図5、図6の制御では、いずれも上述の反力テーブル900(図2)を用いる。ただし、本実施例では、動的な各駆動制御条件を反映した制御を行ものとし、図2の速度テーブル912〜962、または非線形テーブル913〜963の少なくとも1つを反力テーブル900として用意しておく。図2の角度テーブル911〜961のみを用いて、関節の駆動制御を行うこともできるが、その場合には、特許文献1に関して述べた問題点を解決できない可能性がある。
指令装置94はロボットアーム1の回転関節11、21、31、41、51、61の位置ないし姿勢に係る指令値を制御装置91に送信できるものとする。ここで図5の制御は1関節に係る制御として示してあるが、制御装置91が指令装置94から指令値を受信すると、受信した指令値に応じて当該の駆動制御を行うための指令値を当該関節のモータ92に送信する。
図5において、CPU601はステップS74において指令装置94から、同図の制御に係る回転関節の駆動制御に係る指令値を受信すると、ステップS75において、受信した指令値に係る回転関節(上記回転関節のいずれか)の回転方向を判定する。回転関節の制御に用いられるこの種の指令値、特に回転角度に係るものは、例えばその回転関節のある特定の回転方向に関する指令値は正(+)、その逆の回転方向に関する指令値は負(−)の符号により表現される。そこで、例えばステップS74において受信した指令値の符号などを解釈することにより、指令値に相当する回転関節の回転方向が正(+)か負(−)(あるいは正方向か逆方向)のいずれであるかを判定できる。
同時に、CPU601はステップS71で図5の制御に関係する回転関節に関して設けられた反力テーブル900から、出力するケーブル反力の測定値を取得する(反力値取得)。さらに、ステップS72では反力テーブル900)の示す値(例えばその符号)から、当該の関節が支持しているケーブル80の荷重の方向を判定する。ステップS71、S72の反力テーブル900との入出力と荷重方向判定、および、ステップS74、S75の指令装置94との入出力と動作方向判定は、例えばハードウェア割り込みなどを利用して並行的に実行することができる。
ここで、図2の反力テーブル900の場合、各関節の動的な駆動制御条件(例えば駆動速度、駆動方向)に応じて速度テーブル912〜962、または非線形テーブル913〜963の動的な各駆動制御条件に応じて区画された領域を参照する。具体的には、これら各テーブルは関節角度をキーとして参照し、その場合、各関節の動的な駆動制御条件(例えば駆動速度、駆動方向)に応じてその駆動速度、駆動方向に応じて区画された領域を参照する。これにより、各関節の動的な駆動制御条件に応じて、ケーブル80の変形に起因して回転関節21に印加されるケーブル反力を正確に推定することができる。
ケーブル反力(荷重)は、当然ながらこの関節の回転方向と同様に正(+)か負(−)(あるいは正方向か逆方向)の回転方向を有する。CPU601は、ステップS72において、この関節の回転方向を反力テーブル900を用いて検出する。
ステップS76では、ステップS75、S72でそれぞれ特定した指令装置94の指令値に係る回転関節の動作方向と、当該関節に関して反力テーブル900で特定したケーブル反力の方向の一致または不一致を判定する。
そして、両者の方向が一致(S77)している場合には、ケーブル反力が当該関節を駆動するモータ(92)の駆動力をアシストしていることになる。この場合は、ステップS79に進み、指令装置94の指令に応じて当該関節のモータ(92)に送信する指令値を、ケーブル反力の大きさに応じた量、小さくする補正を行う。
一方、ステップS76で両者の方向が不一致(S78)の場合には、ケーブル反力が当該関節を駆動するモータ(92)の駆動力に抵抗する方向に働いていることになる。この場合は、ステップS80に進み、指令装置94の指令に応じて当該関節のモータ(92)に送信する指令値を、ケーブル反力の大きさに応じた量だけ大きくする補正を行う。
一方、図6は、反力テーブル900により推定したケーブル反力をトルクセンサ12、22、32、42、52、62の出力値を用いたトルク制御に作用させる場合の制御例を示している。図6の制御では、予め用意されたロボット制御プログラム(不図示)に基づき、図示の制御手順に係る回転関節の指令値が定められ、その指令値をモータ(92)に送り、当該関節を駆動する処理(不図示)が並行して実行されているものとする。なお、図6の制御においても、反力テーブル900としては速度テーブル912〜962、または非線形テーブル913〜963の少なくとも1つを配置しておくものとする。
図6のステップS83において、CPU601は同図の制御に係る特定の回転関節に設けられたトルクセンサ(12、22、32、42、52、62)の測定データを取得し、ステップS84では当該関節の回転方向を判定する。ステップS84の回転方向の判定では、上記制御により別途発生されている当該関節のモータ92の指令値(の符号)を用いてもよく、また、当該関節に係るトルクセンサの出力値の符号を用いてもよい。
一方、ステップS81では、図6の制御に関係する回転関節に関して設けられた反力テーブル900から出力するケーブル反力値を取得する。この時、各関節の動的な駆動制御条件(例えば駆動速度、駆動方向)に応じて反力テーブル900の速度テーブル912〜962、または非線形テーブル913〜963の動的な各駆動制御条件に応じて区画された領域を参照するのは図5と同様である。具体的には、これら各テーブルは関節角度をキーとして参照し、その場合、各関節の動的な駆動制御条件(例えば駆動速度、駆動方向)に応じてその駆動速度、駆動方向に応じて区画された領域を参照する。これにより、各関節の動的な駆動制御条件に応じて、ケーブル80の変形に起因して回転関節21に印加されるケーブル反力を正確に推定することができる。
ステップS82では反力テーブル900の出力した反力値の、例えばその符号から、当該の関節が支持しているケーブル80の荷重の方向を判定する。ステップS81、S82のケーブル反力テーブルとの入出力と荷重方向判定、および、ステップS83、S84の指令装置94との入出力と動作方向判定は、例えばハードウェア割り込みなどを利用して並行的に実行することができる。
ステップS86では、図5のステップS76と同様にステップS84、S82でそれぞれ特定した回転関節の動作方向と、当該関節に関して反力テーブル900が示すケーブル反力の方向の一致または不一致を判定する。
そして、両者の方向が一致(S87)している場合には、当該関節に係るトルクセンサは、当該関節に係るケーブル反力テーブルで推定した値の分が加算されて出力していることになる。即ち、実際にこの関節のモータ(92)が発生している関節駆動トルクは、トルクセンサで検出している値よりも小さいはずである。この場合は、ステップS89に進み、真の(実)関節駆動トルクを演算するために、当該関節に係るトルクセンサの出力値から、当該関節に係るケーブル反力テーブルで推定したケーブル反力の値を減算する補正を行う。
一方、ステップS86で両者の方向が不一致(S88)の場合には、当該関節に係るトルクセンサは、当該関節に係るケーブル反力テーブルで推定したケーブル反力の分が減算された値を出力していることになる。即ち、実際にこの関節のモータ(92)が発生している関節駆動トルクがトルクセンサで検出している値よりも大きいはずである。この場合は、ステップS90に進み、真の(実)関節駆動トルクを演算するために、当該関節に係るトルクセンサの出力値に当該関節に係る反力テーブル900で推定したケーブル反力の値を加算する補正を行う。
続いて、ステップS91で、ステップS89、S90においてケーブル反力の分を補正した真の(実)関節駆動トルク値を用いて、当該関節のモータ(92)に与える関節駆動トルクの指令値を演算する。ステップS91のトルク制御演算の目的の1つは、例えば上述のようにエンドエフェクタ70により微細な部品(ワーク)などを取り扱う場合のトルク制限などが考えられる。この場合は、例えば、当該関節の駆動トルクが所定値を超えないように指令値を演算する。ステップS91のトルク制御演算では、上述のようにロボットアーム1の振動を抑制するための指令値演算を行うこともできる。
ステップS92では、ステップS91のトルク制御演算の結果、得られた指令値を当該関節のモータ(92)に送信する。
以上、図5、図6に示したように、回転関節(11〜61)に関して配置した反力テーブル(900)により推定したケーブル(80)の反力値に基づき、当該の関節を駆動する駆動源としてのモータ(92)を駆動制御することができる。反力テーブル(900)は、各関節の動的な駆動制御条件(例えば駆動速度、駆動方向)に応じて参照される。即ち、各関節の動的な駆動制御条件(例えば駆動速度、駆動方向)に応じて反力テーブル900の速度テーブル912〜962、または非線形テーブル913〜963のその駆動速度、駆動方向に応じて区画された領域を参照する。
これにより、図5、図6のいずれの制御でも、各関節の動的な駆動制御条件(例えば駆動速度、駆動方向)に応じて、正確なケーブルの反力値を取得することができる。
特に、図5の制御では、反力テーブル900からケーブル反力の方向と当該関節の動作方向の関係に応じて、当該関節の駆動源としてのモータ(92)の指令値を補正することができる。例えば、ケーブル反力が当該関節の関節動作を補助しているか、あるいは関節動作に抵抗しているかに応じて、当該関節の駆動源としてのモータ(92)の指令値を補正することができる。
また、図6の制御では、回転関節(11〜61)に関して設けたトルクセンサ(12〜62)の検出した回転駆動トルク値に外乱として含まれているケーブル(80)のケーブル反力の成分を除去して、真の(実)回転駆動トルク値を検出できる。そして、テーブル参照により正確に求めたケーブル反力の成分を除去した真の(実)回転駆動トルク値を用いて、正確に当該関節の駆動源としてのモータ(92)の指令値(目標値)を補正することができる。なお、この種のトルク制御の目標値(指令値)は、制御装置91(CPU601)が力(トルク)制限や振動抑制などの目的に応じて決定する。
以上のように、本実施形態では、ロボットアーム(1)の少なくとも回転関節の駆動源に駆動信号を伝達する線材としてのケーブル(80)に関し、ケーブル(80)の変形に伴うケーブル反力を推定する反力テーブル(900)を配置する。このため、反力テーブル900で推定したケーブル反力を回転関節の駆動源としてのモータ(92)の駆動制御に正確にフィードバックすることができ、位置制御やトルク制御を含む高精度なロボット制御を行うことができる。即ち、反力テーブル900により、ロボット装置の関節(あるいはエンドエフェクタ)との駆動信号の伝達に用いられる線材であるケーブル(80)の反力を推定し、その推定値を用いて高精度なロボット制御を行うことができる。
なお、回転関節11〜61に関して配置したトルクセンサ12〜62で測定した回転駆動トルクをモータ92への動作指令値にフィードバックする場合、上述のような力(トルク)制御のみならず位置制御にフィードバックすることも考えられる。例えば、トルクセンサ12〜62で測定した回転駆動トルクに基づき、ロボットアーム1のエンドエフェクタ70の位置ずれを検知して、その位置ずれに応じたモータ92の駆動量(位置制御指令)にフィードバックすることが考えられる。このように回転駆動トルクを関節の位置制御にフィードバックすることにより、エンドエフェクタ70の位置精度が高くなるという効果がある。なお、トルクセンサ12〜62で測定した回転駆動トルクをモータ92への位置制御指令にフィードバックする場合には、動作指令値として指令している位置(例えば回転角)を調整する制御や、位置指令のゲインを変更する制御を行うことができる。
以上の各実施例では、線材(ケーブル80)が発生する反力値を、関節角度ごとに関節の駆動速度、動作方向、といった動的な駆動制御条件ごとに区画された区画記憶領域に格納したテーブルメモリを用いる。
ここで、関節角度〜線材の反力値の関係は静的な弾性関係と考えることができ、一方、動的な駆動制御条件に関しては、関節の駆動速度〜反力値の関係は粘性的な関係(粘性関係)と考えることができる。また、別の動的な駆動制御条件、関節の動作方向〜反力値の関係は、ヒステリシスが作用する非線形な関係(非線形関係)と考えることができる。
上記各実施例では、これら弾性関係のみならず、粘性、非線形性の観点でテーブル化して推定している。具体的には、弾性関係である関節角度〜線材の反力値の関係を、関節の駆動速度、動作方向、といった動的な駆動制御条件ごとに区画されたテーブルメモリの区画記憶領域に格納する。そして、テーブルメモリを用いて関節駆動時の線材(ケーブル80)の反力値を取得(推定)する場合は、関節の駆動速度、動作方向のような動的な駆動制御条件に対応する区画記憶領域を参照する。これにより、関節角度〜線材の弾性関係のみならず、関節の駆動速度、動作方向のような動的な駆動制御条件を反映した、より正確な線材(ケーブル80)の反力値を取得(推定)することができる。
取得(推定)した線材(ケーブル80)の反力値は、例えば関節に作用するトルクをトルクセンサで測定して関節を駆動する駆動源を制御するトルクサーボ制御に利用することができる。上記各実施例のテーブルメモリによれば、関節の駆動速度、動作方向のような動的な駆動制御条件を反映したより正確な線材(ケーブル80)の反力値を取得(推定)することができる。このため、関節のトルクサーボ制御の精度が向上し、より高い精度でロボット装置を制御することができる。これにより、トルクセンサを用いてワークやリンクに加わる力をトルク(力)制御する場合には、トルクセンサの出力から外乱として作用する線材の反力を除去するなどの演算ができ、正確なトルク検出に基づき、的確なトルク(力)制御を行うことができる。
従って、例えば汎用構成のロボット装置において、関節の力制御を正確に行うことができ、繊細な力制御の必要な数グラム程度の重量の小さい部品の組み立てを実現することができる。そして、微小重量の部品を組み立てる生産ラインにおいて、専用装置や、人力による手動作業などを必要とせず、汎用構成のロボット装置を用いることが可能となる。従って、従来は必要であった、専用装置の設計、製造コストの削減、あるいはさらに製作期間の削減、といった効果を期待できる。また、微細部品を組み立てる生産ラインの立ち上げコストを低減することが可能になる。
1…ロボットアーム、12、22、32、42、52、62…トルクセンサ、80…ケーブル、900…ケーブル反力テーブル。

Claims (9)

  1. ロボットアームを構成する複数のリンクと、前記リンクを相互に接続する関節と、前記関節を駆動する駆動源と、前記リンクに沿って配置され前記駆動源に駆動信号を伝達する線材と、前記駆動源を制御する制御装置と、を備えたロボット装置において、
    前記関節を駆動した際に前記線材が発生する反力値を動的な駆動制御条件ごとに区画された区画記憶領域に格納したテーブルメモリを備え、
    前記制御装置は、前記関節の前記駆動源を駆動する際、その駆動制御条件によって前記テーブルメモリを参照して得た反力値に基づき、前記駆動源を制御するロボット制御を実行するロボット装置。
  2. 請求項1に記載のロボット装置において、前記関節が回転関節、前記駆動源が回転駆動源であり、前記関節は当該関節の回転駆動トルクを測定するトルクセンサを備え、
    前記制御装置は、前記関節を特定の駆動制御条件によって駆動する際、前記トルクセンサで測定したトルク値、および前記駆動制御条件によって前記テーブルメモリを参照して得た反力値に基づき、前記駆動源の回転駆動トルクを制御するトルク制御を実行するロボット装置。
  3. 請求項1または2に記載のロボット装置において、前記テーブルメモリは、前記関節の関節角度と、その関節角度における前記線材が発生する反力値と、の粘性関係を、前記動的な駆動制御条件としての前記関節の駆動時の駆動速度ごとに区画された区画記憶領域に格納して成るロボット装置。
  4. 請求項1から3のいずれか1項に記載のロボット装置において、前記テーブルメモリは、前記関節の関節角度と、その関節角度における前記線材が発生する反力値と、の非線形関係を、前記動的な駆動制御条件としての前記関節の駆動時の動作方向ごとに区画された区画記憶領域に格納して成るロボット装置。
  5. 請求項2から4のいずれか1項に記載のロボット装置において、前記制御装置が、前記関節を特定の動的な駆動制御条件で駆動し、その際の前記トルクセンサの出力値と、前記ロボット装置の構造情報に基づき推定した回転関節のトルク値との差分に基づき前記線材が発生する反力値を取得し、前記テーブルメモリの前記動的な駆動制御条件に対応する区画記憶領域に格納するテーブルメモリ作成処理を実行するロボット装置。
  6. 請求項1から5のいずれか1項に記載のロボット装置において、前記ロボットアームにエンドエフェクタが装着可能であり、前記エンドエフェクタに対して前記線材を介して前記エンドエフェクタの駆動信号が伝達されるロボット装置。
  7. 請求項1から6のいずれか1項に記載のロボット装置の制御装置に、前記のロボット制御を実行させるロボット制御プログラム。
  8. 請求項7に記載のロボット制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
  9. ロボットアームを構成する複数のリンクと、前記リンクを相互に接続する関節と、前記関節を駆動する駆動源と、前記リンクに沿って配置され前記駆動源に駆動信号を伝達する線材と、前記駆動源を制御する制御装置と、を備えたロボット装置の制御方法において、
    前記制御装置が、前記関節の特定の動的な駆動制御条件から、前記関節を駆動した際に前記線材が発生する反力値を動的な駆動制御条件ごとに区画された区画記憶領域に格納したテーブルメモリを参照して前記特定の動的な駆動制御条件に対応する反力値を取得する反力値取得工程と、
    前記制御装置が、前記関節の特定の動的な駆動制御条件に基づき、前記関節の前記駆動源を駆動する際、前記反力値取得工程において得た反力値に基づき、前記駆動源を制御するロボット制御工程と、
    を含むロボット装置の制御方法。
JP2016054707A 2016-03-18 2016-03-18 ロボット装置、物品の製造方法、および制御方法 Active JP6739954B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016054707A JP6739954B2 (ja) 2016-03-18 2016-03-18 ロボット装置、物品の製造方法、および制御方法
US15/460,781 US10882182B2 (en) 2016-03-18 2017-03-16 Robot apparatus, control method of robot apparatus, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016054707A JP6739954B2 (ja) 2016-03-18 2016-03-18 ロボット装置、物品の製造方法、および制御方法

Publications (3)

Publication Number Publication Date
JP2017164870A true JP2017164870A (ja) 2017-09-21
JP2017164870A5 JP2017164870A5 (ja) 2020-03-19
JP6739954B2 JP6739954B2 (ja) 2020-08-12

Family

ID=59847496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016054707A Active JP6739954B2 (ja) 2016-03-18 2016-03-18 ロボット装置、物品の製造方法、および制御方法

Country Status (2)

Country Link
US (1) US10882182B2 (ja)
JP (1) JP6739954B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023119449A1 (ja) * 2021-12-21 2023-06-29 ファナック株式会社 制御装置及び機械システム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110869171B (zh) * 2017-07-11 2023-03-10 松下知识产权经营株式会社 机器人控制装置
TWI642523B (zh) * 2017-09-21 2018-12-01 上銀科技股份有限公司 用於機械臂之負載估測重力補償的方法及其負載估測重力補償系統
CN109693233B (zh) * 2017-10-20 2020-11-24 深圳市优必选科技有限公司 机器人姿态检测方法、装置、终端设备及计算机存储介质
WO2020002473A1 (en) * 2018-06-26 2020-01-02 Subblue Robotics Aps Robot arm, remotely operated vehicle and method of cleaning a sub-surface structure
JP6823024B2 (ja) * 2018-09-11 2021-01-27 ファナック株式会社 ロボットのキャリブレーションシステムおよびキャリブレーション方法
US11618163B2 (en) * 2018-12-27 2023-04-04 Fanuc Corporation Industrial robot system
US11264152B2 (en) * 2019-10-28 2022-03-01 The Boeing Company Method and apparatus for robotically routing wires on a harness form board
US11404183B2 (en) * 2019-10-28 2022-08-02 The Boeing Company Apparatus for robotically routing wires on a harness form board

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05261685A (ja) * 1992-03-18 1993-10-12 Fujitsu Ltd ケーブル重力補償方式
JP2012218104A (ja) * 2011-04-08 2012-11-12 Toyota Motor Corp トルク算出装置、トルク算出方法、及びプログラム
JP2015171747A (ja) * 2014-03-12 2015-10-01 ファナック株式会社 外部環境との接触を検知するロボット制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725734B1 (en) * 2001-07-25 2004-04-27 The Furukawa Electric Co., Ltd. Rotation sensor
JP2011200943A (ja) * 2010-03-24 2011-10-13 Canon Inc 力制御ロボット
JP6305673B2 (ja) * 2011-11-07 2018-04-04 セイコーエプソン株式会社 ロボット制御システム、ロボットシステム及びロボット
DE102012106389A1 (de) * 2012-07-16 2014-05-22 Windmöller & Hölscher Kg Reversiervorrichtung für eine Folienbahn

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05261685A (ja) * 1992-03-18 1993-10-12 Fujitsu Ltd ケーブル重力補償方式
JP2012218104A (ja) * 2011-04-08 2012-11-12 Toyota Motor Corp トルク算出装置、トルク算出方法、及びプログラム
JP2015171747A (ja) * 2014-03-12 2015-10-01 ファナック株式会社 外部環境との接触を検知するロボット制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023119449A1 (ja) * 2021-12-21 2023-06-29 ファナック株式会社 制御装置及び機械システム

Also Published As

Publication number Publication date
JP6739954B2 (ja) 2020-08-12
US20170266811A1 (en) 2017-09-21
US10882182B2 (en) 2021-01-05

Similar Documents

Publication Publication Date Title
JP6739954B2 (ja) ロボット装置、物品の製造方法、および制御方法
JP6598495B2 (ja) ロボット装置、制御プログラム、記録媒体、ロボット装置の制御方法、および物品の製造方法
US10864632B2 (en) Direct teaching method of robot
JP7263412B2 (ja) 駆動装置、ロボット装置、物品の製造方法、制御方法、制御プログラム、記録媒体
RU2672654C2 (ru) Способ и система для определения по меньшей мере одного свойства манипулятора
JP5366018B2 (ja) ロボットの教示手順校正装置および方法
JP6924145B2 (ja) ロボット教示方法及びロボットアーム制御装置
US9156160B2 (en) Robot system, calibration method, and method for producing to-be-processed material
EP2832503A1 (en) Robot system and product manufacturing method
JP2015155126A (ja) ロボットシステムのツール座標系補正方法、およびロボットシステム
JP2014176943A (ja) ロボットシステム、校正方法及び被加工物の製造方法
JP4513663B2 (ja) 自動組立システムにおける組立機構の動作教示方法
JP6044511B2 (ja) ロボットの制御方法及びロボットシステム
JP2008183716A (ja) 把握型ハンド
US11597083B2 (en) Robot apparatus, robot system, control method of robot apparatus, product manufacturing method using robot apparatus, and storage medium
EP3444077A1 (en) Method for determining a current position of a robot end effector and robotic system
JP5433304B2 (ja) ロボット制御装置及び方法
JP2019093504A (ja) 物品の製造方法及びロボットシステム
JP6896824B2 (ja) ロボット装置、ロボットシステム、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、情報処理装置、情報処理方法、制御プログラム及び記録媒体
CN112512758B (zh) 挠曲量推断装置、机器人控制装置以及挠曲量推断方法
Fernandez et al. Multi-surface admittance control approach applied on robotic assembly of large-scale parts in aerospace manufacturing
JP5458273B2 (ja) 制御装置
JP7391523B2 (ja) 制御装置、ロボットシステム、制御方法、物品の製造方法、プログラム、及び記録媒体
JP2018075681A (ja) 把持装置の制御方法、把持装置、ロボット装置、および部品の製造方法
JP6057283B2 (ja) 多関節ロボット及び半導体ウェハ搬送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200204

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200515

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200623

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200722

R151 Written notification of patent or utility model registration

Ref document number: 6739954

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151