(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-25
(45)【発行日】2022-12-05
(54)【発明の名称】制御方法、制御プログラム、記録媒体、制御装置、ロボットシステム、および物品の製造方法
(51)【国際特許分類】
B25J 9/10 20060101AFI20221128BHJP
【FI】
B25J9/10 A
(21)【出願番号】P 2018158438
(22)【出願日】2018-08-27
【審査請求日】2021-08-24
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】太田 智市郎
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開平02-310609(JP,A)
【文献】特開2016-190292(JP,A)
【文献】特開2018-012183(JP,A)
【文献】特開2002-091572(JP,A)
【文献】特開平09-076184(JP,A)
【文献】特開平06-114763(JP,A)
【文献】特開2000-042957(JP,A)
【文献】特開平09-044253(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットを制御するための制御装置
によって実行される制御方法であって、
前記制御装置は、
前記ロボットを位置制御する
際の位置制御ゲイン
と、前記ロボットを力制御する
際の力制御ゲイン
と、を制御し、
前記ロボットの制御を前記位置制御から前記力制御に切り換える場合に、前記ロボットにおける前記位置制御の終了位置と前記ロボットの現在位置との相対距離に連動して前記位置制御ゲインを減少させつつ、前記相対距離に連動して前記力制御ゲインを増加させる、
ことを特徴とする制御方法。
【請求項2】
請求項1に記載の制御方法において
、
前記制御装置
は、
前記ロボット
における前記力制御の開始位置から前記相対距離の減少に連動して前記位置制御ゲインを減少させ、前記開始位置から前記相対距離の減少に連動して前記力制御ゲインを増加させる、
ことを特徴とする制御方法。
【請求項3】
請求項2に記載の制御方法において、
前記制御装置
は、
前記
位置制御ゲインと前記力制御ゲインとの和が1となるように前記位置制御ゲインと前記力制御ゲインとを制御する、
ことを特徴とする制御方法。
【請求項4】
請求項
3に記載の制御方法において、
前記制御装置
は、
前記
開始位置から前記終了位置までの間に前記位置制御ゲインを1から0に減少させると共に前記力制御ゲインを0から1に増加させる、
ことを特徴とする制御方法。
【請求項5】
請求項
1から4
のいずれか1項に記載の制御方法において、
前記
制御装置は、
前記現在位置と前記位置制御を実行する際の位置指令との差に基づき、前記位置制御ゲインと前記力制御ゲインとの和における前記位置制御ゲインの割合を増加させる、
ことを特徴とする制御方法。
【請求項6】
請求項
1から
5のいずれか1項に記載の制御方法において、
前記ロボットの動作区間において、前記位置制御を行う第1区間と、前記位置制御
と前記力制御とを実行する第2区間と、前記力制御を実行する第3区間と、が設定されている、
ことを特徴とする制御方法。
【請求項7】
請求項
6に記載の制御方法において、
前記第1区間および/または前記第2区間および/または前記第3区間の始点と終点は、前記位置制御の実行時の速度と前記力制御の開始時の速度との差と、前記ロボットのロボットパラメータ
とに基づいて設定される、
ことを特徴とする制御方法。
【請求項8】
請求項1から
7のいずれか1項に記載の制御方法において、
前記制御装置は、
前記位置制御ゲインの減少およびまたは前記力制御ゲインの増加を線形に実行する、
ことを特徴とする制御方法。
【請求項9】
請求項1から
7のいずれか1項に記載の制御方法において、
前記制御装置は、
前記位置制御ゲインの減少およびまたは前記力制御ゲインの増加を非線形に実行する、
ことを特徴とする制御方法。
【請求項10】
請求項1から
9のいずれか1項に記載の制御方法において、
前記制御装置は、
前記力制御ゲインを増加させる場合、前記位置制御ゲインの減少に応じて演算した
、前記ロボットが自重に抗して姿勢を維持するための前記位置制御における積分項を加算した状態から前記力制御ゲインを増加させる、
ことを特徴とする制御方法。
【請求項11】
請求項1から10のいずれか1項に記載の制御方法において、
前記現在位置は、前記ロボットの所定部位における座標値である、
ことを特徴とする制御方法。
【請求項12】
請求
項11に記載の制御方法において、前記ロボットは、ロボットアームとエンドエフェクタとを備え
、前記所定部位は前記エンドエフェクタである
、
ことを特徴とする制御方法。
【請求項13】
請求項1から12のいずれか1項に記載の制御方法を実行可能な制御プログラム。
【請求項14】
請求項13に記載の制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項15】
ロボットを制御するための制御装置であって、
前記制御装置は、
前記ロボットを位置制御する
際の位置制御ゲイン
と、前記ロボットを力制御する
際の力制御ゲイン
と、を制御し、
前記ロボットの制御を前記位置制御から前記力制御に切り換える場合に、前記ロボットにおける前記位置制御の終了位置と前記ロボットの現在位置との相対距離に連動して前記位置制御ゲインを減少させつつ、前記相対距離に連動して前記力制御ゲインを増加させる、
ことを特徴とする制御装置。
【請求項16】
請求項15に記載の制御装置と、前記ロボットとを備えたロボットシステム。
【請求項17】
請求項16に記載のロボットシステムを用いて物品の製造を行うことを特徴とする物品の製造方法。
【請求項18】
ロボットを制御するための制御装置であって、
前記制御装置は、
前記ロボットを位置制御する際の位置制御ゲインと、前記ロボットを力制御する際の力制御ゲインと、を制御し、
前記ロボットの制御を前記位置制御から前記力制御に切り換える場合における、前記ロボットにおける前記位置制御の終了位置と前記ロボットの現在位置との相対距離に連動して前記位置制御ゲインを減少させつつ、前記相対距離に連動して前記力制御ゲインを増加させる際の、前記減少のさせ方および/または前記増加のさせ方を設定できる、
ことを特徴とする制御装置。
【請求項19】
請求項18に記載の制御装置において、
前記減少の開始および/または前記増加の開始を設定できる、
ことを特徴とする制御装置。
【請求項20】
請求項18または19に記載の制御装置において、
前記減少および/または前記増加の実行において、線形または非線形のいずれにより実行するかを設定できる、
ことを特徴とする制御装置。
【請求項21】
請求項18から20のいずれか1項に記載の制御装置において、
前記ロボットの動作区間において、前記位置制御を行う第1区間と、前記位置制御と前記力制御とを実行する第2区間と、前記力制御を実行する第3区間と、を設定できる、
ことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットアームに係る制御方法、ロボット制御装置、ロボットシステム、および物品の製造方法に関する。
【背景技術】
【0002】
多関節ロボット装置によって物品の自動組立てを行なう場合、ロボットハンドのようなツールによって、その部品が確実に把持され、精密に位置決めされていなければ、組立て作業を円滑に行なうことができない。例えば、歯車や、ピンなどの部品の嵌合組み立てでは、少しでも軸心がずれていると良好な組み立てを行うことができず、組立不良が発生する可能性がある。
【0003】
この点に鑑み、従来より、多関節ロボット装置の位置精度向上や、繰り返し位置再現性を向上させるための検出系のエンコーダの高分解能化、減速機の非直線性の補正、といった取り組みが行われているが、この種の主に精度向上技術にも限界がある。また、組み立て作業の対象であるワーク自体の公差を含めたばらつき要因によっては、単にロボット組立システム自体の位置精度向上のみによっては、組み立ての確実性を保証することができない。
【0004】
そこで、ロボットに位置制御以外の制御を作用させることにより、組み立ての確実性を向上することが考えられている。例えば、下記の特許文献1で示される装置では、力制御を利用して組み立てを行う。特許文献1では、ロボットアーム先端に装備された並行グリッパーなどのエンドエフェクタにより把持する締結部材と対象物のワークに対して位置決めが可能な制御系によりワークに接触する以前に粗い位置決めを行う。この粗い位置情報に基づいた位置決め動作の終了後、エンドエフェクタの駆動源である電動モータに電流制御によるトルク制御を行いながら、ワークを保持したエンドエフェクタを最終目標位置に移動させて把持対象物に対して押付ける。
【0005】
しかしながら、特許文献1に示されるような構成では、エンドエフェクタの駆動源である電動モータの電流指令値とエンドエフェクタの発生把持力との関係性が低い。そのため、本来の把持に必要とされている所定の押し付け力が得られていない可能性が高く、必要以上の把持力が加わった場合には、ワークを変形させたり、破損したりする可能性もある。また、特許文献2では、ロボットのモータに大きなトルクを発生させてアーム先端の作業点を目標位置に高速で移動させる位置制御と、所定以上の外力により作業点が移動する程度のトルクでロボットの姿勢を保持させる柔軟制御を組み合わせている。この特許文献2では、位置制御から柔軟制御に切り換える直前の位置制御時の積分値を記憶しておき、柔軟制御時は記憶していた積分値を加えることでロボットアームに自重補償を行い、ロボットアームの質量以下の力制御を行う構成が示されている。
【0006】
しかしながら、特許文献2に示されるロボット制御によってアームの姿勢による自重補償を正確に行うためには、位置指令により所定位置にロボットアームを止め振動成分などが収まってから正確に積分値を記憶する必要がある。これにより、嵌合動作などの作業に必要な作業時間が長くなる問題がある。
【0007】
位置制御と力制御を切り換える場合、位置制御と力(トルク)のような2種類以上の情報に基づいて人間の手や腕と同等な柔軟性を持った機能を実現する方法も考えられる。例えば、駆動源である各関節軸アクチュエータの出力側に関節軸トルク検出を行うトルクセンサを用いて、ロボットアームを所定の動作で動作させた時、対象物であるワークに対して締結部材などを接触させたその接触時の反力を検出する。また、アームの各軸のトルクセンサに検出された反力の大きさを検知して、対象物の剛性値等から必要とされるコンプライアンス等から柔軟制御の力の大きさや方向を決定する。そして、6軸分のモータ回転量を決定してロボット先端位置を移動して得られた力の変化量を基にフィードバック制御を行いロボット先端位置の柔軟性を増す制御を行う。このような力制御のフィードバックループを用いてロボットアームの姿勢やエンドエフェクタ駆動力を制御することで、ロボット組み付けにおける絶対位置精度を緩和し、円滑な組立を行える可能性がある。
【0008】
しかしながら、力制御のフィードバックループでは、ロボット各関節のトルクセンサで力を検知し、各軸のモータ回転量を計算する。そのため、ロボットアームを駆動してから力の発生を検知して回転量を決定するための演算が複雑になる。
【0009】
また、ワーク移動中など、ロボットアームを高速で動作させる区間では、加速度成分、重力成分などが誤差要因となる。そのため、ロボットアームを高速で動作させている時は、位置指令に基づくフィードバック制御を行うのが望ましい。これに対して、操作しているワークの組み付けが開始される付近からは、力制御に切り換え、力演算によるフィードバック制御を行うのが望ましい。しかしながら、このように位置制御フィードバックループから制御フィードバックループへ切り換える適切な手法が従来では殆ど知られていない。
【0010】
例えば、位置制御と柔軟(力)制御では、制御パラメータの関連性が無く指令値の連続性がないため、従来では、位置制御から力制御に切り換える時は、一旦、制御値をゼロにしてアーム動作を止める動作を介在させる場合が多い。また、柔軟(力)制御に切り換えた後は、力指令のフィードバック制御が追従できるように低速度で組み立て作業を行う必要があった。また、特許文献3では、位置制御からトルク制御に切り換える駆動切換制御装置が開示されている。特許文献3では、位置指令からトルク指令に制御モードの切り換えの際に、切り換え直前のモータ指令値と、切り換えられた制御補償手段の切り換え直前の出力値との差分を、オフセット補償値(ΔOFS)の初期値として記憶する。そして、駆動切換制御装置は、力指令の制御切り換え時にオフセット生成手段において初期値として与えられたΔOFSを修正時間内で徐々に0に近づけるように減少させて加算手段に出力する。この加算手段は、制御補償手段の出力値とオフセットとを加算して、関節を駆動するモータに出力する。
【先行技術文献】
【特許文献】
【0011】
【文献】特開平6-114763号公報
【文献】特開2000-42957号公報
【文献】特開平9-44253号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
特許文献3に示される構成では、上記のような手法により制御切り換え時におけるモータ指令値の突変を防ぐことができる。そして、制御切換時のロボットアーム駆動時の不必要な振動発生などを低減した位置指令-力指令切り換えを実現できる可能性がある。
【0013】
しかしながら、特許文献3の制御方式においては、位置指令と力指令の制御モードの切り換えがスイッチ手段により制御モードを切換える。そのため、位置指令-力指令切換時の制御が不連続となり駆動目標値が不連続となって、アーム駆動トルク変動が発生し、振動が発生する可能性がある。この制御目標値の不連続性を補うため、制御の切換時にΔOFSを加算手段に補償値として加算し修正時間内で徐々に0に近づける方法を用いることが考えられる。しかしながら、この手法によると、補償値を加算している時間分が必要なため、アームの動作収束時間が延長され、力制御目標値に対する切換時間が余分にかかる問題があった。
【0014】
一般に、ロボットアームの力制御では、大きな力で組み付け動作を行う場合は各軸モータの回転トルク指令値が大きいためロボット先端位置は速い速度での移動動作が可能である。しかしながら、力指令力が小さい場合などは各軸モータの指令トルクが小さくなり、各軸モータの発生回転力が低下してしまうためロボットアームが目標位置に到達する時間が長くなる問題があった。
【0015】
本発明の課題は、上述の問題に鑑み、位置制御によって目標位置までの高速移動を実現でき、かつ、複雑な演算やロボットアームの一時停止を必要とせず、スムーズに位置制御から力制御へ切換えることができるようにすることにある。
【課題を解決するための手段】
【0016】
本発明の第1の態様は、ロボットを制御するための制御装置によって実行される制御方法であって、前記制御装置は、前記ロボットを位置制御する際の位置制御ゲインと、前記ロボットを力制御する際の力制御ゲインと、を制御し、前記ロボットの制御を前記位置制御から前記力制御に切り換える場合に、前記ロボットにおける前記位置制御の終了位置と前記ロボットの現在位置との相対距離に連動して前記位置制御ゲインを減少させつつ、前記相対距離に連動して前記力制御ゲインを増加させる、ことを特徴とする制御方法である。
【0017】
本発明の第2の態様は、ロボットを制御するための制御装置であって、前記制御装置は、前記ロボットを位置制御する際の位置制御ゲインと、前記ロボットを力制御する際の力制御ゲインと、を制御し、前記ロボットの制御を前記位置制御から前記力制御に切り換える場合に、前記ロボットにおける前記位置制御の終了位置と前記ロボットの現在位置との相対距離に連動して前記位置制御ゲインを減少させつつ、前記相対距離に連動して前記力制御ゲインを増加させる、ことを特徴とする制御装置である。
【発明の効果】
【0018】
上記構成によれば、目標位置までの高速移動を実現でき、かつ、複雑な演算やロボットアームの一時停止を必要とせず、スムーズに位置制御から力制御へ切換えることができる。
【図面の簡単な説明】
【0019】
【
図1】本発明を実施可能なロボットシステムの全体構成を示した説明図である。
【
図2】
図1のロボット制御装置の機能構成を示した説明図である。
【
図3】
図1のロボットシステムのロボットアームの制御系の詳細を示した説明図である。
【
図4】実施形態1のロボット制御の流れを示したフローチャート図である。
【
図5】実施形態1の位置制御~力制御の切り換えの様子を示した説明図である。
【
図6】実施形態1の位置制御および力制御を行う制御系の詳細を示した説明図である。
【
図7】実施形態1における位置制御および力制御の制御割合補正(ゲイン切換)の様子を示した説明図である。
【
図8】実施形態2のロボット制御の流れを示したフローチャート図である。
【
図9】実施形態2の位置制御および力制御を行う制御系の詳細を示した説明図である。
【
図10】実施形態2における位置制御および力制御の制御割合補正(ゲイン切換)の様子を示した説明図である。
【発明を実施するための形態】
【0020】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【0021】
<実施形態1>
図1は本実施形態を適用可能なロボットシステムの構成を示している。
図1のロボット装置は、ロボットアーム200と、ロボットアーム200を制御するロボット制御装置300と、ティーチングペンダント400と、を備えている。ティーチングペンダント400は、例えば複数の教示点のデータをロボット制御装置300に送信する教示装置であり、操作者がロボットアーム200の動作を指定するのに用いられる。
【0022】
図1のロボットアーム200は、本実施形態では、6関節構成の多関節ロボットアームで、関節J
1~J
6と、これら各関節により連結されたリンク210、210…を備える。関節J
1~J
6は、サーボモータ201~206によりそれぞれ駆動される。複数(6つ)のサーボモータ201~206は、各関節J
1~J
6を、関節軸A
1~A
6周りにそれぞれ回転駆動する。
【0023】
ロボットアーム200は、可動範囲中の任意の3次元位置で任意の3方向の姿勢に、ロボットアーム200の先端(手先)を向けることができる。一般に、ロボットアーム200の位置および姿勢は、座標系で表現することができる。
図1において、Toは、ロボットアーム200の台座に固定した座標系を、また、Teはロボットアーム200の手先に固定した座標系を示している。なお、本実施形態では、関節J
1~J
6が回転関節である構成を前提とするが、以下の説明は直動関節を用いた構成などにおいても同様に適用される。
【0024】
ロボットアーム200の先端には、把持装置として、ロボットハンド252が装着されている。ロボットアーム200は、例えば、把持装置としてのロボットハンド252で不図示のワークを把持し、対象物(不図示)に嵌合させたり、圧着したりする作業に用いることができる。このような作業をロボットアーム200に行わせることにより、把持装置としてのロボットハンド252で把持したワークと、対象物と、を組み立て、工業製品やその部品のような物品を製造することができる。
【0025】
本実施形態のような回転関節構成では、「関節の位置」は関節の角度を意味する。また、関節J1~J6は直動関節であってもよく、その場合、「関節の位置」とは、直動関節の位置で、「関節のトルク」とは直動関節にかかる力である。また、関節の位置情報の時間微分については、「関節の速度」、「関節の加速度」、「関節の加加速度」の概念によって扱うことができる。
【0026】
本実施形態では、サーボモータ201~206は、電動モータ211~216(
図3)と、これら電動モータ211~216に接続されたセンサ部221~226とを備える。センサ部221~226には関節の位置を検出するセンサと、関節のトルクを検出するセンサと、が含まれる。
【0027】
サーボモータ201~206は、不図示の減速機を含み、ベルトやベアリング等を介してそれぞれの関節J1~J6で駆動するフレームに接続されている。なお、各関節の駆動源は、サーボモータ201~206に限らず、例えば人工筋肉等であってもよい。
【0028】
ロボットアーム200は、さらに、各サーボモータ201~206の電動モータ211~216を駆動制御する駆動制御部としてのサーボ制御部230を有している。サーボ制御部230は、入力したトルク指令値に基づき、各関節J1~J6のトルクが指令トルクに追従するよう、各電動モータ211~216に電流指令を出力し、各電動モータ211~216の動作を制御する。
【0029】
なお、本実施形態では、簡略化のため、サーボ制御部230を1つの制御装置で構成されるものと考えるが、各電動モータ211~216にそれぞれ対応したサーボ制御部を備えていてもよい。
【0030】
図2は、ロボット制御装置300の機能ブロック構成を示している。ロボット制御装置300は、制御部としてのCPU301と、記憶部としてのROM302、RAM303、HDD304(ハードディスクドライブ)、記録ディスクドライブ305(記録媒体)と、各種のインタフェース306~309と、を備えている。
【0031】
CPU301には、ROM302、RAM303、HDD304、記録ディスクドライブ305、および各種のインタフェース306~309が、バス310を介して接続されている。ROM302には、CPU301(コンピュータ)に読み込ませ、後述の制御を行わせるためのプログラム3300が格納されている。RAM303は、CPU301の演算処理結果などを一時的に記憶する記憶部を構成する。HDD304は、演算処理結果や各種のデータ(最良指令軌道や最良評価値を含む)などを記憶するために用いられる。
【0032】
ティーチングペンダント400はインタフェース306に接続されており、CPU301はインタフェース306およびバス310を介してティーチングペンダント400からの教示点のデータの入力を受ける。
【0033】
サーボ制御部230は、インタフェース309に接続されており、CPU301は、各関節の目標トルクのデータを所定時間間隔でバス310およびインタフェース309を介してサーボ制御部230に出力する。
【0034】
インタフェース307には、モニタ321が接続されており、モニタ321には、各種画像が表示される。インタフェース308には、書き換え可能な不揮発性メモリや外付けHDDなどの外部記憶装置322を接続することができる。記録ディスクドライブ305は、記録ディスク331(記録媒体)に記録された各種データやプログラムなどを読み出すことができる。記録ディスクドライブ305は、記録ディスク331に対する書き込みが行えるよう構成されていてもよい。本発明に係るプログラムが記録されるコンピュータ読み取り可能な記録媒体としては、まず記録ディスク331が考えられる。記録ディスク331は、各種の磁気ディスクや、光ディスクが考えられるが、記録ディスク331に換えて各種の半導体メモリなどを用いてもよい。
【0035】
図3はロボットアーム200の各関節を制御する制御系を詳細に示している。
図3の制御ブロック100は、ロボットアーム200の各関節の電動モータ211~216と、位置センサ551~556とトルクセンサ541~546からなるセンサ部221~226と接続されている。関節軸の角度情報とトルク情報はそれぞれ対応した制御ブロックにフィードバックされる。また、制御ブロック100はサーボ制御部230を備える。サーボ制御部230は、電動モータ211~216に対する動作指令を行うモータ制御部531~536と、位置制御を行う位置制御部521~526と、力制御との切換制御を行う切換制御部511~516を備える。
【0036】
また、制御ブロック330は、サーボ制御部230に対して駆動指令を行う位置指令生成部506と、力制御部505と、力制御部に対して検出された力の値を入力する力検出部504を備える。
【0037】
ロボットアーム200の各種パラメータによって記述されたロボットモデル503は、例えば外部記憶装置322に格納されている。ロボット制御装置300は、このロボットモデル503のロボットアーム情報を取得し、必要な制御則に基づきロボットアーム200を制御する。ティーチングペンダント400は、ロボット制御装置300に対して、目標とする動作を入力する力教示データ501と位置教示データ502を指令する入力部を構成する。
【0038】
図4は本実施形態のロボット制御の流れを示している。図示の手順のうち、ロボット制御装置300のCPU301が実行する過程は、例えばCPU301の制御プログラムとして記述し、ROM302などに格納しておくことができる。
【0039】
ステップS1では、操作者が例えばティーチングペンダント400を用いて目標位置の目標値(指令値ともいう場合がある)、即ち、位置目標値と、力目標値を入力する。操作者が入力した位置目標値と力目標値は、上記の力教示データ501および位置教示データ502として記憶される。このうち、位置目標値は、例えばロボットアーム200の手先などの所定部位を移動させる教示点の座標値により表現される。
【0040】
ステップS2では、位置指令生成部506が、ロボットモデル503と位置教示データ502(指定された位置目標値)に基づき、例えば逆運動学計算を行うことにより、各関節軸のモータ位置最終指令値を演算する。
【0041】
ステップS3では、ステップS2で演算したモータ位置最終指令値に基づき、サーボ制御部230の力制御切換手段が、力制御動作への切換開始位置を演算する。この演算は、ロボットアーム200の上記所定部位と目標位置の距離の減少に応じて位置制御から力制御動作への切換えを行う位置を決定する演算に相当する。
【0042】
図4では、続くステップS41、S42(位置フィードバックループ)と、ステップS51、S52と(力フィードバックループ)は、並列的に実行される。
【0043】
ステップS41では、各関節に搭載されたセンサ部221~226(
図3)において、位置センサ551~556が関節位置を検出し、ステップS51では、トルクセンサ541~546が関節トルクを検出する。
【0044】
ステップS42では、位置制御部521~526が、電動モータ211~216の現在位置の位置偏差に応じた指令値を演算する。また、ステップS52では、力制御部505はトルクセンサ541~546が検出した関節トルクに基づいた指令値を演算し出力する。
【0045】
その後、ステップS6では、サーボ制御部230の力制御切換手段が、目標位置に対する移動量から力制御切換判定を行う。ロボットアーム200の上記所定部位が力制御を行う所定範囲内に移動している場合は、後述の
図7に示されるゲイン切換器の操作量演算結果に基づきそれぞれの補正量を演算する。
【0046】
ステップS7では、切換制御部511~516は、所定の演算結果から得られたそれぞれ補正された力制御量と位置指令量と積分値から、各関節に与えるモータトルク(力)の指令値を演算し、モータトルク指令値として各関節に出力する。
【0047】
ステップS8では、モータ制御部531~536では、電動モータ211~216の位置に基づいて、モータトルク指令値になるように各モータ駆動部が通電制御を行う。
【0048】
ステップS9では、各モータ駆動部の制御値に応じて電動モータ211~216が通電され、モータ回転軸の出力が減速機などを通じて各関節の機構に印加され、これにより、関節ごとの制御値に応じたトルクが発生される。
【0049】
ステップS10では、各関節に搭載されたセンサ部221~226では、位置センサ551~556が関節位置を検出し、トルクセンサ541~546が関節トルクを検出する。関節位置と関節トルクはそれぞれロボット制御装置300にフィードバックされる。この時、力検出部504は、ロボットモデル503と関節位置に基づいて関節トルクをロボットアーム200の手先にかかる力に変換する。この場合、関節位置は、関節の減速機(不図示)の出力側の位置センサから取得した位置情報であるが、関節位置の代わりにモータ位置、例えば減速機の入力側の位置センサから取得した位置情報を用いてもよい。
【0050】
ステップS11では、ロボットアーム200の上記所定部位が目標位置に到達したか否かを判定し、目標位置に到達していない場合はステップS41およびS51に復帰し、上記の制御を続ける。ステップS12では、所定の駆動終了条件(例えば、ロボットアーム200が一連の工程動作を終了したか、など)が成立したか否かを判定し、終了条件を満たす場合は、処理を終了する。
【0051】
図5は、以上の制御によって実施される移動開始点(第1の教示点)から目標位置(第2の教示点)に至るまでの制御切換シーケンスを模式的に示している。また、
図6は、各関節モータの制御方式を、移動開始時の位置制御から、力指令に切り換える制御系の構成を示しており、この構成は、
図3の切換制御部511~516の詳細構成に相当する。
【0052】
図6において、制御割合を補正する補正量演算部601は、ロボットアーム200の上記所定部位と目標位置との相対距離を演算する相対距離演算部601aを備える。また、補正量演算部601は、相対距離演算部601aが演算した相対距離に応じて力制御切り換えを指令する力制御切換手段601bを備える。さらに、補正量演算部601は、力制御への切り換え時に用いられる補正量演算手段601cを備える。この補正量演算部601によって、ゲイン切換器611が制御され、モータ指令値τ(M)が決定される。
【0053】
図6の制御系では、ロボットアーム200の上記所定部位と目標位置との相対距離に応じて制御方式が位置制御から力制御に変更される。モータ指令値τ(M)を演算するゲイン切換器611は、それぞれ作動した時に、位置制御の制御量をゲインK2をもって減算する減算手段と、力制御の制御量をゲインK1をもって加算する加算手段と、を備える。
【0054】
図6の下段左の位置フィードバックループでは、位置指令に対して、位置センサ551~556の位置検出量とその微分値が負帰還され、さらに位置ゲインと速度ゲインが乗じられる。位置ゲインと速度ゲインが乗じられた後の制御値は、積分器と比例成分演算器を介して加算され、位置制御ゲインτ(MP)の成分が演算される。位置制御ゲインτ(MP)の成分は、ゲイン切換器611の減算手段が有効になるとゲインK2により減算される。
【0055】
一方、
図6の上段左の力フィードバックループでは、力指令に対して、トルクセンサ541~546の力検出量が負帰還され、力ゲインが乗じられた制御値は、積分器と比例成分演算器を通して加算され、力制御ゲインτ(MF)の成分が演算される。力制御ゲインτ(MF)の成分は、ゲイン切換器611の加算手段が有効になるとゲインK1により加算される。
【0056】
図5に示すように、目標位置までの動作区間の初期では、ゲインK1、K2のゲイン切換器611の加算手段、減算手段は作動しておらず、位置制御ゲインτ(MP)の成分のみが優勢である(
図5最下段の位置制御動作区間)。力制御への切り換え区間(
図5最下段の位置-力連続制御動作区間)では、ゲインK1、K2のゲイン切換器611の加算手段および減算手段が作動し始める。これにより、位置制御ゲインτ(MP)の成分は、ゲイン切換器611の減算手段が有効になるとゲインK2により減算され、力制御ゲインτ(MF)の成分は、ゲイン切換器611の加算手段が有効になるとゲインK1により加算される。
図5の中段に示すように、ゲインK1、K2の制御によって、位置制御ゲイン、および力制御ゲインは、それぞれ除々に減少および増加するよう制御される。
【0057】
力制御への切り換え区間(
図5最下段の位置-力連続制御動作区間)では、
図5の最上段において、ゲイン切換器611の加算手段および減算手段のみの制御によって、それぞれ決定されるモータ指令値の成分は破線に示すように推移する。さらに、本実施形態の力制御への切り換え区間では、位置制御ゲイン、および力制御ゲインを、それぞれ除々に減少および増加させる時、演算した積分項τ(MI)をロボットアームの関節を駆動するモータ指令値に加算する。この積分項τ(MI)は、
図6のゲイン切換器611の中央に示した積分補正器が位置フィードバックループの積分器から得た積分値を用いて演算する。
【0058】
力制御への切り換え区間(
図5最下段の位置-力連続制御動作区間)において、上記積分項τ(MI)の成分を加算することにより、モータ指令値は
図5最上段の実線で示すように推移することになる。
【0059】
図7は、上記の力制御への切り換え区間(
図5最下段の位置-力連続制御動作区間)における位置制御と力制御の制御割合を調整するゲイン切換器611の演算の様子を示している。
図7では、位置制御の補正量Kpがゲイン切換器611の減算手段によって漸減している間、力制御の補正量Kfが漸増するよう制御されている。位置フィードバックループの積分器の積分値を用いた補正量Kiは、
図6のゲイン切換器611の積分項換算手段611aによって、位置-力連続制御動作区間(
図5のM(p-f))の例えば前半で漸増し、後半で漸減して消勢するよう制御される。
【0060】
以下では、
図4~
図7を参照して、上記の切り換え制御をより詳細に説明する。ティーチングペンダント400を用いたロボット教示では、ロボットアーム200の現在の位置姿勢における、手先などの所定部位の位置を第1の教示点とする。
【0061】
図4のステップS1において、操作者が、ティーチングペンダント400を用いて、目標位置を指定する第2の教示点を入力すると、上記のように目標位置の位置教示データ502が生成される。
図5において、これら第1の教示点、第2の教示点(目標位置)は、それぞれM(s)、M(e)に相当する。この目標位置は、例えばロボットアーム200を用いた物品の製造において、ワークを対象物に嵌合させる終了位置などに相当する。また、
図4のステップS1では、操作者は、この製造処理でロボットアーム200が発生すべき嵌合力に応じた力教示データ501を指定する。
【0062】
ロボットアーム200の動作を開始するために、ロボット制御装置300は、ロボットアームのロボットモデル503から軌跡を演算して対応する移動量を決定し、その指令値をサーボ制御部230に出力する。その場合、目標位置の位置教示データ502から補正量演算部601により各関節軸のモータ位置の最終目標値が演算される(
図4:S2)
【0063】
図5に示すように、本実施形態では、最終組立て位置である目標位置M(e)からの相対的な距離によって力制御区間M(f)と、位置-力連続制御動作区間(
図5のM(p-f))が決定される。移動開始点であるM(s)から位置-力連続制御動作区間(
図5のM(p-f))までの区間が位置制御動作区間M(p)である。位置-力連続制御動作区間M(p-f)の始点はM(p-fs)、終点はM(pe-f)である。
【0064】
図5に示すように、力制御は、位置-力連続制御動作区間M(p-f)の始点であるM(p-fs)から漸増するよう定められる。また、同時に、位置制御は、位置-力連続制御動作区間M(p-f)の始点M(p-fs)から漸減し、その終点M(pe-f)で消勢し、これと同時に力制御がフルゲインで働き始める。
【0065】
これらの制御区間は、
図4のステップS3において、例えば最終組立て位置である目標位置M(e)からの相対的な距離によって決定することができる。
図5の最下段の横軸は例えば(ロボットアーム200の所定部位が移動する)距離に取られている。これら各制御区間の始点、終点の距離の位置は位置制御時の速度および力制御開始時の速度の差、ロボットアーム機構系の慣性質量などのロボットパラメータから計算することができる。
図5に示すように、最終組立て位置である目標位置M(e)からの相対的な距離に基づき、位置-力連続制御動作区間M(p-f)の始点M(p-fs)は、
M(p-fs)=M(e)-(M(p-f)+M(f))
のような距離の関係となるよう演算される(
図4:S3)。
【0066】
ロボットアーム200に動作指令が送られると、
図5の移動開始位置M(s)からロボットアーム200は位置制御によって動作を開始する。ロボットアーム200の動作中、上述のように、位置センサ551~556とトルクセンサ541~546の値がそれぞれ読み取られる(
図4:S41、S51)。ロボット制御装置300はセンサ部221~226から読み出されたこれらの位置、力の現在値に対応した制御値をサーボ制御部230の力制御切換手段に出力する(
図4:S42、S52、S6)。
【0067】
図4のステップS7では、切換制御部511~516には、位置制御部521~526と力制御部505の値が入力され(
図3)、補正量演算部601(
図6)が
図5中のそれぞれの制御区間の判定を行う。また、ゲイン切換器611(
図6)がモータ制御部531~536(アンプ)に与えるモータ指令値τ(M)を決定する。
【0068】
図4(S7)において、補正量演算部601は、ロボットアーム200の現在位置と、それが
図5のそれぞれの制御区間のどの区間に属するかに応じてモータ指令値τ(M)を決定する。その際、上述のように位置-力連続制御動作区間M(p-f)においては、位置制御フィードバックループの減算ゲイン(K2)、力制御フィードバックループの加算ゲイン(K1)が
図7に示すように制御される。また、位置-力連続制御動作区間M(p-f)においては、補正量演算部601が、位置制御フィードバックループの積分器の値に基づき、
図7の中段に示すような積分項を演算し、モータ指令値τ(M)に加算する。
【0069】
図4のステップS8では、モータ指令値τ(M)に基づき、モータ制御部531~536がそれぞれの電動モータ211~216に必要な通電制御を行う。これにより、電動モータ211~216がそれぞれの関節軸に対して通電制御量に応じた回転トルクを発生する(
図4のS9)。そして、関節モータによって駆動された各関節の位置センサ551~556とトルクセンサ541~546がそれぞれの角度とトルクを検出する(
図4のS10)。
【0070】
各位置センサおよびトルクセンサからなるセンサ部221~226の検出値が目標位置M(e)への到達を示していなければ、
図4のステップS4に戻りアーム駆動が続けられる。また、目標値に到達していれば、新たなモータ駆動を停止する(
図4のS11~S12)。
【0071】
ここで、
図5の位置制御動作区間M(p)から、位置-力連続制御動作区間M(p-f)にかけての制御つき、さらに詳細に説明する。
図5において移動開始位置M(s)力制御が開始される位置-力連続制御動作区間M(p-f)の直前までは、位置制御のみで駆動される。
【0072】
位置制御動作区間M(p)では、
図6の位置制御フィードバックループにおいて、ゲイン切換器611(
図6)は動作せず、減算ゲインK2は非作動である。この区間では、位置指令に指令値と、位置センサからの負帰還量により定まる制御値に位置ゲインおよび速度ゲインを乗じた後、積分・比例計算を経てモータ指令値τ(MP)がモータ制御部531~536(アンプ)に出力される。
【0073】
図5の位置-力連続制御動作区間M(p-f)、即ち力制御開始から位置制御終了までの区間では、上述の位置制御に加え、力指令にゲインを乗じ積分・比例計算をしてモータ指令値τ(MF)を計算する力制御が併用される。即ち、
図6のゲイン切換器611では、モータ制御部531~536(アンプ)に出力されるモータ指令値τ(M)は、力制御フィードバックループのモータ指令値τ(MF)に加算ゲインK1を乗じた制御量が加算される。また、ゲイン切換器611において、位置制御フィードバックループのモータ指令値τ(MP)には、減算ゲインK2を乗じた制御量と、積分項換算手段611aが出力するモータ指令値τ(MI)が加算される。
【0074】
力制御の加算ゲインK1と、位置制御の減算ゲインK2は、例えば0~1の間の乗数であり、常に両者を加算した時、1になるように制御する。力制御開始時はK1=0、K2=1で、位置制御終了時はK1=1、K2=0となる。位置-力連続制御動作区間M(p-f)の力制御開始から位置制御終了までの間は、位置制御終了位置までの相対距離に連動して線形に変動するように補正量演算部601にてK1、K2が決定される。このため、位置指令値(
図7のKf)および力指令値(同Kp)が
図7のように線形に変動する。ただし、位置指令値(
図7のKf)および力指令値(同Kp)を変化させる態様は線形以外であってもよく、適当な二次以上の関数で定められる非線形な制御を行ってもよい。
【0075】
また、本実施形態では、補正量演算部601は、位置指令と実際位置の偏差を相対距離演算に入力し、位置偏差が大きいほど位置制御のゲインK2を大きくする制御を行うよう構成する。これにより、指定経路に対する誤差が少なければ、相対的に力制御が効き、衝突時の反力を減らすことができる。また、
図6のゲイン切換器611において、積分項換算手段611aは、力制御開始時における位置制御系の自重補償項に相当する積分項の値を記憶しておき、モータ指令値τ(MI)を演算する。そして、積分項換算手段611aは、演算したモータ指令値τ(MI)を漸減していくゲインK2に連動してモータ指令値τ(M)に加算するよう動作する(
図7中段)。これにより、自重補償、即ちロボットアーム200が自重に抗して姿勢を維持するためのモータ駆動量を確保することができる。例えば、位置-力連続制御動作区間M(p-f)において、ロボットアーム200が把持したワークが嵌合対象に接触していない可能性がある場合でも、力制御だけでは困難な自重補償を継続することができる。なお、他の構成としては、
図6のゲイン切換器611において減算手段(K2)へ加算器を介して接続されている位置制御フィードバックループの積分出力には減算ゲイン(K2)を乗じずに保存・出力し続ける構成が考えられる。その場合、位置制御比例項のみに減算ゲイン(K2)を乗じるよう接続する。このような構成によっても、位置-力連続制御動作区間M(p-f)において、力制御だけでは困難な自重補償を継続することができる。
【0076】
本実施形態によれば、特に位置-力連続制御動作区間M(p-f)以降において、ロボットアーム200の自重落下を防止し、シームレスに位置制御から力制御に切り換えることができ、切換時の振動を防止することでアーム・ワークの破損を防止できる。
【0077】
図6のゲイン切換器611の制御によって、モータ制御部531~536(アンプ)に出力されるモータ指令値τ(M)は次のように制御される(
図7)。まず、位置制御動作区間M(p)では、τ(M)=τ(MP)で位置制御フィードバックループのみが有効である。続いて、制御切換中、即ち位置-力連続制御動作区間M(p-f)では、モータ指令値τ(M)はτ(M)=τ(MP)×K2+τ(MF)×K1+τ(MI)によって定まる大きさとなる。そして、力制御区間M(f)に入ると、モータ指令値τ(M)はτ(M)=τ(MF)×K1によって定まる大きさとなる。
【0078】
例えば、ロボットアーム200が
図7のM(p-fs)とM(pe-f)の中間点(同図中央)に位置する場合には、
τ(M)=0.5(p)+0.5(f)+1.0(i)
K1=0.5, K2=0.5, Ki=1.0
のような制御割合でモータ指令値τ(M)が決定される。さらに、ロボットアーム200が移動して、位置M(pe-f)を通過すると力制御区間(M(f):
図5)になり、モータ駆動に関してはアーム先端で発生させる力を演算したモータ指令値τ(M)による駆動制御となる。
【0079】
以上説明したように、本実施形態の制御によると、ロボットアームは、移動開始時は位置制御モードで動き始める。そして、動作途中の目標位置近傍に到達した場合には、連続的にロボットアームの手先にかかる力を所望の力目標値に制御する力制御モードにスムーズに切り換えることができる。本実施形態によれば、動作(移動)開始位置から最終目標位置までの移動距離に応じて位置制御と力制御の割合を可変することによりロボットアームが動作する上での位置-力制御の連続性を維持することができる。
【0080】
また、本実施形態によれば、位置制御動作区間M(p)に入ると、位置制御フィードバックループの積分器に記憶されている量を用いて、例えば自重補償を可能とするモータ指令値成分を加算する。このため、位置->力の制御切換時の積分項などの不連続性をなくす構成を実現できる。そのため、位置->力の制御切換に起因する振動などが発生しにくい利点がある。本実施形態によれば、ロボットアームを目標位置近傍まで高速に移動させることができ、目標位置、例えば物品を製造する組立位置では、柔軟性に富んだ力制御にスムーズに移行させることができる。そのため、ロボットアームで把持したワークと対象物の接触、当接が生じる、突き当てや嵌め合い嵌合動作が行われる物品の製造工程を、確実かつ正確に制御することができる。
【0081】
<実施形態2>
上記の実施形態1では、ロボットアーム200の所定の基準部位の移動距離、ないし目標位置までの距離に応じて位置制御から力制御に切り換える構成を示した。本実施形態では、移動開始点(第1の教示点)から目標位置(第2の教示点)までのアーム移動時間を計算しておき、移動開始後の経過時間を用いて、位置制御から力制御への切り換えタイミングを決定する構成を示す。本実施形態では、上記実施形態1で説明したものと同一ないし相当する構成については同一の参照符号を用い、その詳細な説明は省略するものとする。
【0082】
本実施形態では、移動開始点(第1の教示点)から操作者が設定した目標位置(第2の教示点)に到達するまでのロボットアームの移動時間を演算する。そして、演算された移動時間から、力制御の開始時間(時刻)を決定する。また、位置指令動作速度と力制御時の動作速度の差分から位置制御から力制御への切換時間を演算する。また、全移動時間から演算した力制御切換時間と力制御時間を除いた動作時間を位置制御開始時から力制御モード切換の開始時間とする。実施形態1では、現在位置と最終の目標位置の距離を演算するために計算が複雑になる可能性があるが、本実施形態のように経過時間ベースの制御を行う場合には、制御装置の負荷を軽減できる可能性がある。
【0083】
なお、ロボットアームの移動開始後の経過時間の測定には、CPU301(
図2)による周知の計時ルーチンの実行や、RTC(Real Time Clock)のような計時装置(不図示)を用いることができる。
【0084】
図8は、実施形態1の
図4に対応し、本実施形態におけるロボット制御の手順を示したフローチャートである。また、
図9は、実施形態1の
図6に対応し、本実施形態のロボットアームのフィードバック制御系の構成を示している。
図10は、実施形態1の
図5に対応し、本実施形態における位置制御から力制御への切り換え制御、およびその各制御区間を示している。本実施形態を説明するこれら各図の図示の形式は実施形態1と同等であって、以下ではこれら各図の様式や前提についての重複した説明は省略するものとする。
【0085】
ステップS13では、ティーチングペンダント400を用いて
図4のステップS1と同様に、操作者が位置指令値と力指令値を入力する。操作者が入力した位置目標(指令)値と力目標(指令)値は、上記の力教示データ501および位置教示データ502として記憶される。このうち、位置目標値は、例えばロボットアーム200の手先などの所定部位を移動させる教示点の座標値により表現される。
【0086】
ステップS14では、位置指令生成部506がロボットモデル503に基づいて位置目標値を関節位置指令値に変換する。また、位置制御部521~526が、関節位置が関節位置指令値に倣うよう指令値Mt(e)(
図10)を算出する。関節位置を示す信号としては減速機の出力軸側の位置センサから得た関節位置の代わりに減速機の入力軸側の位置センサから得たモータ位置を用いてもよい。
【0087】
ステップS15では、モータ位置最終指令値Mt(e)からモータ回転角度を求めて、モータ回転時間M(t)を算出する(
図10の全移動時間M(t))。ステップS16では、モータ回転時間M(t)からサーボ制御部230内の力制御切換手段によって力制御開始時間Mt(f)を算出する(
図10の力制御時間Mt(f))。ステップS17では、力制御開始時間Mt(f)と位置指令動作時のモータ回転時間から、位置-力制御動作を行う切換時間Mt(p-f)を算出する。ステップS18では、力制御時間Mt(f)と力制御切換回転時間から補正量演算部621(
図9)が、位置-力制御動作への切換開始時間Mt(p-fs)を算出する。
【0088】
ステップS191およびS201(位置フィードバックループ)と、ステップS192およびS202(力制御フィードバックループ)は、
図4のS41およびS42、S51およびS52の場合と同様に、並列的に実行される。
【0089】
ステップS191では、各関節に搭載されたセンサ部221~226にて、位置センサ551~556が関節位置を検出し、ステップS192ではトルクセンサ541~546が関節トルクを検出する。
【0090】
ステップS201では、位置制御部521~526が、電動モータ211~216の現在位置の位置偏差に応じた指令値を演算する。また、ステップS202では、力制御部はトルクセンサ541~546が検出した関節トルクに基づいた指令値を演算し、出力する。
【0091】
ステップS21では、サーボ制御部230内の力制御切換手段が、目標位置に対する移動時間から力制御切換判定を行う。ロボットアーム200の移動開始後、計時した経過時間が所定の力制御変更範囲時間内に到達している場合は、
図9のゲイン切換器611が作動し、移動時間に応じたそれぞれの補正量を演算する。
【0092】
ステップS22では、切換制御部511~516は、所定の演算結果から得られたそれぞれ補正された力制御量と、位置指令量と、積分値から各関節のモータトルク(力)を指定するモータトルク指令値として出力する。
【0093】
図8のステップS23~S27のステップは、
図4のステップS8~S12の各ステップと同じ処理である。ステップS23では、モータ制御部531~536が電動モータ211~216の位置に基づいて、モータトルク指令値に成るように各モータ駆動部が通電制御を行う。ステップS24では、通電されることにより電動モータ211~216がモータ回転軸上に駆動力を出力し減速機を介して各関節の駆動トルクが発生される。ステップS25では、各関節に搭載されたセンサ部221~226により、位置センサ551~556が関節位置を検出し、トルクセンサ541~546が関節トルクを検出する。関節位置と関節トルクはそれぞれロボット制御装置300にフィードバックされる。
【0094】
図8のステップS26は、
図4のステップS11と同様の目標位置到達判定、ステップS27は
図4のステップS12と同様の工程終了判定である。
【0095】
図9は、実施形態1の
図6に相当し、各関節モータの制御方式を、移動開始時の位置制御から、力指令に切り換える制御系の構成を示している。
図9の制御系の構成は、
図3の切換制御部511~516の詳細構成に相当する。
図9で
図6と異なるのは、
図6の補正量演算部601が、アーム移動時間(経過時間)に応じて制御割合を補正する補正量演算部621に変更されている点である。
【0096】
図9において、制御割合を補正する補正量演算部621は、ロボットアーム200のアーム移動時間(経過時間)を演算する制御切換時間演算部621aを備える。また、補正量演算部621は、制御切換時間演算部621aが演算した移動時間(経過時間)に応じて力制御切り換えを指令する力制御切換手段621bを備える。さらに、補正量演算部621は、力制御への切り換え時に用いられる補正量演算手段621cを備える。この補正量演算部621によって、ゲイン切換器611が制御され、モータ指令値τ(M)が決定される。また、補正量演算部621は、移動開始点(第1の教示点)から操作者が設定した目標位置(第2の教示点)に到達するまでのロボットアームの移動時間を演算する移動時間演算部621dを備える。
【0097】
図9の制御系では、ロボットアーム200の移動時間(経過時間)に応じて制御方式が位置制御から力制御に変更される。モータ指令値τ(M)を演算するゲイン切換器611は、それぞれ作動した時に、位置制御の制御量をゲインK2により減算する減算手段と、力制御の制御量をゲインK1により加算する加算手段と、を備える。
【0098】
図10は、実施形態1の
図7に相当し、アーム動作状態の本発明に従った移動開始からの位置移動量に応じた移動時間による目標位置に至るまでの制御切換シーケンスを示している。
【0099】
以下、
図8~
図10を参照して、本実施形態2の制御につきさらに詳細に説明する。ロボットアームを動作完了時の所望の位置(たとえば嵌合終了位置)を502(
図10中Mt(e))と、そのときに必要とされる力教示データ501をティーチングペンダント400から指定する(
図8:S13)。その入力された指令値(
図10中Mt(e))に対してロボット制御装置300が、ロボットアームのロボットモデル503から軌跡を演算して所定の移動量を決定してサーボ制御部230に指令値を出力する。さらに、アーム動作目標位置より各軸モータ位置の最終目標値が演算される(
図8:S14)。また、演算されたモータ位置の最終目標値より補正量演算部621の制御切換時間演算部621aがモータ回転時間を算出する(
図8:S15)。さらに、モータ移動時間から補正量演算部621の制御切換時間演算部621aが力制御区間(
図10中Mt(f))に対応する時間的な区間を決定し、要求される力制御開始時間が演算され、
図10の位置-力連続制御区間Mt(p-f)が演算される。
【0100】
上記のように、位置制御~力制御の切り換えを行う各区間を決定した後、ロボットアーム200に動作指令が送られる。これにより、ロボットアーム200は、
図10の移動開始位置Mt(s)からロボットアーム200の動作は位置制御によって制御される。
【0101】
実際には位置制御フィードバックループと、力制御フィードバックループと、は、並列的に動作(
図8:S191およびS201と、S192およびS202)させる。
図9において、位置センサ551~556とトルクセンサ541~546の検出量が読み取られ、位置制御フィードバックループと、力制御フィードバックループにそれぞれ負帰還量としてフィードバックされる。そして、位置制御フィードバックループと、力制御フィードバックループの各々の経路で、それぞれモータ指令値τ(M)の成分が演算される。ただし、位置制御フィードバックループと、力制御フィードバックループのいずれの制御量を用いるかは、補正量演算部621が制御区間を判定する制御に基づき決定される。例えば、位置制御区間Mt(p)では、ゲイン切換器611は、力制御フィードバックループの出力を加算(K1)することなく、位置制御フィードバックループの出力のみが減算(K2)されずにモータ指令値τ(M)として用いられる。
【0102】
補正量演算部621が
図10中のそれぞれの制御区間の判定を行い、ゲイン切換器611が対応する制御区間の補正を行う(
図8:S21)。そして、ゲイン切換器611の演算結果に応じて決定されたモータ指令値τ(M)がモータ制御部531~536に出力される(
図8:S22)。制御モードに応じたモータ指令値τ(M)に応じて、モータ制御部531~536がそれぞれの電動モータ211~216に必要な通電制御を行う(
図8:S23)。これにより、電動モータ211~216がそれぞれの関節軸に対して通電制御量に応じた回転トルクを発生する(
図8:S24)。各関節部の位置センサ551~556とトルクセンサ541~546がそれぞれの角度とトルクを検出する(
図8:S25)。
【0103】
さらに、各位置センサおよびトルクセンサからなるセンサ部221~226の検出値が目標位置に相当する値に到達していなければ、アーム駆動が続けられ、目標値に到達していれば、モータ駆動を停止する(
図8:S26、S27)。
【0104】
本実施形態によれば、移動開始点(第1の教示点)から目標位置(第2の教示点)までのアーム移動時間を計算しておき、移動開始後の経過時間を用いて、位置制御から力制御への切り換えタイミングを決定することができる。これにより、上記実施形態1で説明した効果に加え、移動開始点(第1の教示点)から目標位置(第2の教示点)の近傍までは、高速動作が可能な位置制御によりロボットアームを制御することができる。そして、所定時間が経過し、目標位置(第2の教示点)の近傍に到達した後は、ロボット手先位置において所望の目標値に倣うような力制御により、ロボットアームを制御することができる。
【0105】
本実施形態2の制御は、ロボットアーム移動開始時から最大加速で動作を開始するような高速度の組立動作に適している。本実施形態2では、最終の目標位置に到達する時間から位置-力制御切換時間や力制御時間を予め移動開始時に決定されている。このため、現在位置や目標位置との距離の演算が必要な実施形態1よりも、低負荷かつ高速にロボットアームを制御できる可能性がある。従って、本実施形態2によるロボット制御によってワークを把持したロボットアームを駆動し、ワークと他の対象物との接触を含む物品の製造を行う場合、高速で、かつ柔軟(力)制御を作用させた確実な組立動作を実現できる。
【0106】
また、位置制御時の速度および力制御時の速度の差から、位置-力連続制御区間Mt(p-f)の時間的な区間は、ロボットアーム機構系の慣性質量などのロボットパラメータを用いて取得される。当初に演算してあったMt(e)の位置から力制御切換開始位置Mt(p-fs)が決定される(
図8:S16)。本実施形態におけるこれらの時間的な区間の関係は、
Mt(p-fs)=Mt(e)-(Mt(p-f)+Mt(f))
である(
図10)。
【0107】
本発明は、上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現できる。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0108】
100…制御ブロック、200…ロボットアーム、211~216…電動モータ、221~226…センサ部、300…ロボット制御装置、302…ROM、3300…プログラム、331…記録媒体、J1~J6…関節、400…ティーチングペンダント、501…力教示データ、502…位置教示データ、503…ロボットモデル、504…力検出部、505…力制御部、506…位置指令値生成部、511~516…切換制御部、521~526…位置制御部、531~536…モータ制御部、541~546…トルクセンサ、551~556…位置センサ。