(57)【要約】【課題】目標位置までの高速移動を実現でき、かつ、複雑な演算やロボットアームの一時停止を必要とせず、スムーズに位置制御から力制御へ切換えることができるようにする。【解決手段】ロボットアームの所定部位を目標位置へ移動させる動作区間において、所定部位と目標位置の距離の減少に応じて、ロボットアームを位置制御する位置制御フィードバックループのゲインを減少させる（Ｍ（ｐ−ｆ））。この位置制御フィードバックループのゲインの減少に伴ない、ロボットアームを力制御する力制御ループのフィードバックゲインを増加させる（Ｍ（ｐ−ｆ））。力制御フィードバックループのゲインを増加させる場合、位置制御フィードバックループのゲインの減少に応じて演算した積分項をロボットアームの関節を駆動するモータ指令値に加算する。【選択図】図５
2020032471.tif 000002
【特許請求の範囲】
【請求項１】
制御装置が、ロボットアームの所定部位を目標位置へ移動させる動作区間において、前記所定部位と前記目標位置の距離の減少に応じて、前記ロボットアームを位置制御する位置制御のゲインを減少させ、前記位置制御のゲインの減少に伴ない、前記ロボットアームを力制御する力制御のゲインを増加させる制御工程を含む制御方法。
【請求項２】
制御装置が、ロボットアームの所定部位を目標位置へ移動させる動作区間において、前記動作区間の前記ロボットアームの移動開始後の経過時間に応じて、前記ロボットアームを位置制御する位置制御のゲインを減少させ、前記位置制御のゲインの減少に伴ない、前記ロボットアームを力制御する力制御のゲインを増加させる制御工程を含む制御方法。
【請求項３】
請求項１または２に記載の制御方法において、前記力制御のゲインを増加させる場合、前記位置制御のゲインの減少に応じて演算した積分項をロボットアームの関節を駆動するモータ指令値に加算する制御方法。
【請求項４】
請求項１から３のいずれか１項に記載の制御方法において、前記ロボットアームが多関節ロボットアームである制御方法。
【請求項５】
請求項１から３のいずれか１項に記載の制御方法の前記制御工程を、前記制御装置を構成するコンピュータに読み込ませて実行させるための制御プログラム。
【請求項６】
請求項５に記載の制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項７】
ロボットアームの所定部位を目標位置へ移動させる動作区間において、前記所定部位と前記目標位置の距離の減少に応じて、前記ロボットアームを位置制御する位置制御のゲインを減少させ、前記位置制御のゲインの減少に伴ない、前記ロボットアームを力制御する力制御のゲインを増加させる制御装置を備えたロボット制御装置。
【請求項８】
ロボットアームの所定部位を目標位置へ移動させる動作区間において、前記動作区間の前記ロボットアームの移動開始後の経過時間に応じて、前記ロボットアームを位置制御する位置制御のゲインを減少させ、前記位置制御のゲインの減少に伴ない、前記ロボットアームを力制御する力制御のゲインを増加させる制御装置を備えたロボット制御装置。
【請求項９】
請求項７または８に記載のロボット制御装置と、前記ロボット制御装置により制御されるロボットアームと、前記ロボットアームに装着されワークを把持する把持装置と、を備え、前記ロボット制御装置が前記ロボットアームを制御し、前記ロボットアームが前記把持装置で把持した前記ワークを操作し、前記ワークを対象物に当接させて前記対象物に組み付け、前記ワークと、前記対象物と、から物品を製造するロボットシステム。
【請求項１０】
請求項７または８に記載のロボット制御装置により、前記ロボットアームを制御し、前記ロボットアームによりワークを操作し、前記ワークを対象物に当接させて前記対象物に組み付け、前記ワークと、前記対象物と、から物品を製造する物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームに係る制御方法、ロボット制御装置、ロボットシステム、および物品の製造方法に関する。
【背景技術】
【０００２】
多関節ロボット装置によって物品の自動組立てを行なう場合、ロボットハンドのようなツールによって、その部品が確実に把持され、精密に位置決めされていなければ、組立て作業を円滑に行なうことができない。例えば、歯車や、ピンなどの部品の嵌合組み立てでは、少しでも軸心がずれていると良好な組み立てを行うことができず、組立不良が発生する可能性がある。
【０００３】
この点に鑑み、従来より、多関節ロボット装置の位置精度向上や、繰り返し位置再現性を向上させるための検出系のエンコーダの高分解能化、減速機の非直線性の補正、といった取り組みが行われているが、この種の主に精度向上技術にも限界がある。また、組み立て作業の対象であるワーク自体の公差を含めたばらつき要因によっては、単にロボット組立システム自体の位置精度向上のみによっては、組み立ての確実性を保証することができない。
【０００４】
そこで、ロボットに位置制御以外の制御を作用させることにより、組み立ての確実性を向上することが考えられている。例えば、下記の特許文献１で示される装置では、力制御を利用して組み立てを行う。特許文献１では、ロボットアーム先端に装備された並行グリッパーなどのエンドエフェクタにより把持する締結部材と対象物のワークに対して位置決めが可能な制御系によりワークに接触する以前に粗い位置決めを行う。この粗い位置情報に基づいた位置決め動作の終了後、エンドエフェクタの駆動源である電動モータに電流制御によるトルク制御を行いながら、ワークを保持したエンドエフェクタを最終目標位置に移動させて把持対象物に対して押付ける。
【０００５】
しかしながら、特許文献１に示されるような構成では、エンドエフェクタの駆動源である電動モータの電流指令値とエンドエフェクタの発生把持力との関係性が低い。そのため、本来の把持に必要とされている所定の押し付け力が得られていない可能性が高く、必要以上の把持力が加わった場合には、ワークを変形させたり、破損したりする可能性もある。また、特許文献２では、ロボットのモータに大きなトルクを発生させてアーム先端の作業点を目標位置に高速で移動させる位置制御と、所定以上の外力により作業点が移動する程度のトルクでロボットの姿勢を保持させる柔軟制御を組み合わせている。この特許文献２では、位置制御から柔軟制御に切り換える直前の位置制御時の積分値を記憶しておき、柔軟制御時は記憶していた積分値を加えることでロボットアームに自重補償を行い、ロボットアームの質量以下の力制御を行う構成が示されている。
【０００６】
しかしながら、特許文献２に示されるロボット制御によってアームの姿勢による自重補償を正確に行うためには、位置指令により所定位置にロボットアームを止め振動成分などが収まってから正確に積分値を記憶する必要がある。これにより、嵌合動作などの作業に必要な作業時間が長くなる問題がある。
【０００７】
位置制御と力制御を切り換える場合、位置制御と力（トルク）のような２種類以上の情報に基づいて人間の手や腕と同等な柔軟性を持った機能を実現する方法も考えられる。例えば、駆動源である各関節軸アクチュエータの出力側に関節軸トルク検出を行うトルクセンサを用いて、ロボットアームを所定の動作で動作させた時、対象物であるワークに対して締結部材などを接触させたその接触時の反力を検出する。また、アームの各軸のトルクセンサに検出された反力の大きさを検知して、対象物の剛性値等から必要とされるコンプライアンス等から柔軟制御の力の大きさや方向を決定する。そして、６軸分のモータ回転量を決定してロボット先端位置を移動して得られた力の変化量を基にフィードバック制御を行いロボット先端位置の柔軟性を増す制御を行う。このような力制御のフィードバックループを用いてロボットアームの姿勢やエンドエフェクタ駆動力を制御することで、ロボット組み付けにおける絶対位置精度を緩和し、円滑な組立を行える可能性がある。
【０００８】
しかしながら、力制御のフィードバックループでは、ロボット各関節のトルクセンサで力を検知し、各軸のモータ回転量を計算する。そのため、ロボットアームを駆動してから力の発生を検知して回転量を決定するための演算が複雑になる。
【０００９】
また、ワーク移動中など、ロボットアームを高速で動作させる区間では、加速度成分、重力成分などが誤差要因となる。そのため、ロボットアームを高速で動作させている時は、位置指令に基づくフィードバック制御を行うのが望ましい。これに対して、操作しているワークの組み付けが開始される付近からは、力制御に切り換え、力演算によるフィードバック制御を行うのが望ましい。しかしながら、このように位置制御フィードバックループから制御フィードバックループへ切り換える適切な手法が従来では殆ど知られていない。
【００１０】
例えば、位置制御と柔軟（力）制御では、制御パラメータの関連性が無く指令値の連続性がないため、従来では、位置制御から力制御に切り換える時は、一旦、制御値をゼロにしてアーム動作を止める動作を介在させる場合が多い。また、柔軟（力）制御に切り換えた後は、力指令のフィードバック制御が追従できるように低速度で組み立て作業を行う必要があった。また、特許文献３では、位置制御からトルク制御に切り換える駆動切換制御装置が開示されている。特許文献３では、位置指令からトルク指令に制御モードの切り換えの際に、切り換え直前のモータ指令値と、切り換えられた制御補償手段の切り換え直前の出力値との差分を、オフセット補償値（ΔＯＦＳ）の初期値として記憶する。そして、駆動切換制御装置は、力指令の制御切り換え時にオフセット生成手段において初期値として与えられたΔＯＦＳを修正時間内で徐々に０に近づけるように減少させて加算手段に出力する。この加算手段は、制御補償手段の出力値とオフセットとを加算して、関節を駆動するモータに出力する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平６−１１４７６３号公報
【特許文献２】特開２０００−４２９５７号公報
【特許文献３】特開平９−４４２５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献３に示される構成では、上記のような手法により制御切り換え時におけるモータ指令値の突変を防ぐことができる。そして、制御切換時のロボットアーム駆動時の不必要な振動発生などを低減した位置指令−力指令切り換えを実現できる可能性がある。
【００１３】
しかしながら、特許文献３の制御方式においては、位置指令と力指令の制御モードの切り換えがスイッチ手段により制御モードを切換える。そのため、位置指令−力指令切換時の制御が不連続となり駆動目標値が不連続となって、アーム駆動トルク変動が発生し、振動が発生する可能性がある。この制御目標値の不連続性を補うため、制御の切換時にΔＯＦＳを加算手段に補償値として加算し修正時間内で徐々に０に近づける方法を用いることが考えられる。しかしながら、この手法によると、補償値を加算している時間分が必要なため、アームの動作収束時間が延長され、力制御目標値に対する切換時間が余分にかかる問題があった。
【００１４】
一般に、ロボットアームの力制御では、大きな力で組み付け動作を行う場合は各軸モータの回転トルク指令値が大きいためロボット先端位置は速い速度での移動動作が可能である。しかしながら、力指令力が小さい場合などは各軸モータの指令トルクが小さくなり、各軸モータの発生回転力が低下してしまうためロボットアームが目標位置に到達する時間が長くなる問題があった。
【００１５】
本発明の課題は、上述の問題に鑑み、位置制御によって目標位置までの高速移動を実現でき、かつ、複雑な演算やロボットアームの一時停止を必要とせず、スムーズに位置制御から力制御へ切換えることができるようにすることにある。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、本発明においては、制御装置が、ロボットアームの所定部位を目標位置へ移動させる動作区間において、前記所定部位と前記目標位置の距離の減少に応じて、前記ロボットアームを位置制御する位置制御のゲインを減少させ、前記位置制御のゲインの減少に伴ない、前記ロボットアームを力制御する力制御のゲインを増加させる制御工程を含む構成を採用した。
【００１７】
あるいは、制御装置が、ロボットアームの所定部位を目標位置へ移動させる動作区間において、前記動作区間の前記ロボットアームの移動開始後の経過時間に応じて、前記ロボットアームを位置制御する位置制御のゲインを減少させ、前記位置制御のゲインの減少に伴ない、前記ロボットアームを力制御する力制御のゲインを増加させる制御工程を含む構成を採用した。
【発明の効果】
【００１８】
上記構成によれば、目標位置までの高速移動を実現でき、かつ、複雑な演算やロボットアームの一時停止を必要とせず、スムーズに位置制御から力制御へ切換えることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明を実施可能なロボットシステムの全体構成を示した説明図である。
【図２】図１のロボット制御装置の機能構成を示した説明図である。
【図３】図１のロボットシステムのロボットアームの制御系の詳細を示した説明図である。
【図４】実施形態１のロボット制御の流れを示したフローチャート図である。
【図５】実施形態１の位置制御〜力制御の切り換えの様子を示した説明図である。
【図６】実施形態１の位置制御および力制御を行う制御系の詳細を示した説明図である。
【図７】実施形態１における位置制御および力制御の制御割合補正（ゲイン切換）の様子を示した説明図である。
【図８】実施形態２のロボット制御の流れを示したフローチャート図である。
【図９】実施形態２の位置制御および力制御を行う制御系の詳細を示した説明図である。
【図１０】実施形態２における位置制御および力制御の制御割合補正（ゲイン切換）の様子を示した説明図である。
【発明を実施するための形態】
【００２０】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００２１】
＜実施形態１＞
図１は本実施形態を適用可能なロボットシステムの構成を示している。図１のロボット装置は、ロボットアーム２００と、ロボットアーム２００を制御するロボット制御装置３００と、ティーチングペンダント４００と、を備えている。ティーチングペンダント４００は、例えば複数の教示点のデータをロボット制御装置３００に送信する教示装置であり、操作者がロボットアーム２００の動作を指定するのに用いられる。
【００２２】
図１のロボットアーム２００は、本実施形態では、６関節構成の多関節ロボットアームで、関節Ｊ１〜Ｊ６と、これら各関節により連結されたリンク２１０、２１０…を備える。関節Ｊ１〜Ｊ６は、サーボモータ２０１〜２０６によりそれぞれ駆動される。複数（６つ）のサーボモータ２０１〜２０６は、各関節Ｊ１〜Ｊ６を、関節軸Ａ１〜Ａ６周りにそれぞれ回転駆動する。
【００２３】
ロボットアーム２００は、可動範囲中の任意の３次元位置で任意の３方向の姿勢に、ロボットアーム２００の先端（手先）を向けることができる。一般に、ロボットアーム２００の位置および姿勢は、座標系で表現することができる。図１において、Ｔｏは、ロボットアーム２００の台座に固定した座標系を、また、Ｔｅはロボットアーム２００の手先に固定した座標系を示している。なお、本実施形態では、関節Ｊ１〜Ｊ６が回転関節である構成を前提とするが、以下の説明は直動関節を用いた構成などにおいても同様に適用される。
【００２４】
ロボットアーム２００の先端には、把持装置として、ロボットハンド２５２が装着されている。ロボットアーム２００は、例えば、把持装置としてのロボットハンド２５２で不図示のワークを把持し、対象物（不図示）に嵌合させたり、圧着したりする作業に用いることができる。このような作業をロボットアーム２００に行わせることにより、把持装置としてのロボットハンド２５２で把持したワークと、対象物と、を組み立て、工業製品やその部品のような物品を製造することができる。
【００２５】
本実施形態のような回転関節構成では、「関節の位置」は関節の角度を意味する。また、関節Ｊ１〜Ｊ６は直動関節であってもよく、その場合、「関節の位置」とは、直動関節の位置で、「関節のトルク」とは直動関節にかかる力である。また、関節の位置情報の時間微分については、「関節の速度」、「関節の加速度」、「関節の加加速度」の概念によって扱うことができる。
【００２６】
本実施形態では、サーボモータ２０１〜２０６は、電動モータ２１１〜２１６（図３）と、これら電動モータ２１１〜２１６に接続されたセンサ部２２１〜２２６とを備える。センサ部２２１〜２２６には関節の位置を検出するセンサと、関節のトルクを検出するセンサと、が含まれる。
【００２７】
サーボモータ２０１〜２０６は、不図示の減速機を含み、ベルトやベアリング等を介してそれぞれの関節Ｊ１〜Ｊ６で駆動するフレームに接続されている。なお、各関節の駆動源は、サーボモータ２０１〜２０６に限らず、例えば人工筋肉等であってもよい。
【００２８】
ロボットアーム２００は、さらに、各サーボモータ２０１〜２０６の電動モータ２１１〜２１６を駆動制御する駆動制御部としてのサーボ制御部２３０を有している。サーボ制御部２３０は、入力したトルク指令値に基づき、各関節Ｊ１〜Ｊ６のトルクが指令トルクに追従するよう、各電動モータ２１１〜２１６に電流指令を出力し、各電動モータ２１１〜２１６の動作を制御する。
【００２９】
なお、本実施形態では、簡略化のため、サーボ制御部２３０を１つの制御装置で構成されるものと考えるが、各電動モータ２１１〜２１６にそれぞれ対応したサーボ制御部を備えていてもよい。
【００３０】
図２は、ロボット制御装置３００の機能ブロック構成を示している。ロボット制御装置３００は、制御部としてのＣＰＵ３０１と、記憶部としてのＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４（ハードディスクドライブ）、記録ディスクドライブ３０５（記録媒体）と、各種のインタフェース３０６〜３０９と、を備えている。
【００３１】
ＣＰＵ３０１には、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５、および各種のインタフェース３０６〜３０９が、バス３１０を介して接続されている。ＲＯＭ３０２には、ＣＰＵ３０１（コンピュータ）に読み込ませ、後述の制御を行わせるためのプログラム３３００が格納されている。ＲＡＭ３０３は、ＣＰＵ３０１の演算処理結果などを一時的に記憶する記憶部を構成する。ＨＤＤ３０４は、演算処理結果や各種のデータ（最良指令軌道や最良評価値を含む）などを記憶するために用いられる。
【００３２】
ティーチングペンダント４００はインタフェース３０６に接続されており、ＣＰＵ３０１はインタフェース３０６およびバス３１０を介してティーチングペンダント４００からの教示点のデータの入力を受ける。
【００３３】
サーボ制御部２３０は、インタフェース３０９に接続されており、ＣＰＵ３０１は、各関節の目標トルクのデータを所定時間間隔でバス３１０およびインタフェース３０９を介してサーボ制御部２３０に出力する。
【００３４】
インタフェース３０７には、モニタ３２１が接続されており、モニタ３２１には、各種画像が表示される。インタフェース３０８には、書き換え可能な不揮発性メモリや外付けＨＤＤなどの外部記憶装置３２２を接続することができる。記録ディスクドライブ３０５は、記録ディスク３３１（記録媒体）に記録された各種データやプログラムなどを読み出すことができる。記録ディスクドライブ３０５は、記録ディスク３３１に対する書き込みが行えるよう構成されていてもよい。本発明に係るプログラムが記録されるコンピュータ読み取り可能な記録媒体としては、まず記録ディスク３３１が考えられる。記録ディスク３３１は、各種の磁気ディスクや、光ディスクが考えられるが、記録ディスク３３１に換えて各種の半導体メモリなどを用いてもよい。
【００３５】
図３はロボットアーム２００の各関節を制御する制御系を詳細に示している。図３の制御ブロック１００は、ロボットアーム２００の各関節の電動モータ２１１〜２１６と、位置センサ５５１〜５５６とトルクセンサ５４１〜５４６からなるセンサ部２２１〜２２６と接続されている。関節軸の角度情報とトルク情報はそれぞれ対応した制御ブロックにフィードバックされる。また、制御ブロック１００はサーボ制御部２３０を備える。サーボ制御部２３０は、電動モータ２１１〜２１６に対する動作指令を行うモータ制御部５３１〜５３６と、位置制御を行う位置制御部５２１〜５２６と、力制御との切換制御を行う切換制御部５１１〜５１６を備える。
【００３６】
また、制御ブロック３３０は、サーボ制御部２３０に対して駆動指令を行う位置指令生成部５０６と、力制御部５０５と、力制御部に対して検出された力の値を入力する力検出部５０４を備える。
【００３７】
ロボットアーム２００の各種パラメータによって記述されたロボットモデル５０３は、例えば外部記憶装置３２２に格納されている。ロボット制御装置３００は、このロボットモデル５０３のロボットアーム情報を取得し、必要な制御則に基づきロボットアーム２００を制御する。ティーチングペンダント４００は、ロボット制御装置３００に対して、目標とする動作を入力する力教示データ５０１と位置教示データ５０２を指令する入力部を構成する。
【００３８】
図４は本実施形態のロボット制御の流れを示している。図示の手順のうち、ロボット制御装置３００のＣＰＵ３０１が実行する過程は、例えばＣＰＵ３０１の制御プログラムとして記述し、ＲＯＭ３０２などに格納しておくことができる。
【００３９】
ステップＳ１では、操作者が例えばティーチングペンダント４００を用いて目標位置の目標値(指令値ともいう場合がある)、即ち、位置目標値と、力目標値を入力する。操作者が入力した位置目標値と力目標値は、上記の力教示データ５０１および位置教示データ５０２として記憶される。このうち、位置目標値は、例えばロボットアーム２００の手先などの所定部位を移動させる教示点の座標値により表現される。
【００４０】
ステップＳ２では、位置指令生成部５０６が、ロボットモデル５０３と位置教示データ５０２（指定された位置目標値）に基づき、例えば逆運動学計算を行うことにより、各関節軸のモータ位置最終指令値を演算する。
【００４１】
ステップＳ３では、ステップＳ２で演算したモータ位置最終指令値に基づき、サーボ制御部２３０の力制御切換手段が、力制御動作への切換開始位置を演算する。この演算は、ロボットアーム２００の上記所定部位と目標位置の距離の減少に応じて位置制御から力制御動作への切換えを行う位置を決定する演算に相当する。
【００４２】
図４では、続くステップＳ４１、Ｓ４２（位置フィードバックループ）と、ステップＳ５１、Ｓ５２と（力フィードバックループ）は、並列的に実行される。
【００４３】
ステップＳ４１では、各関節に搭載されたセンサ部２２１〜２２６（図３）において、位置センサ５５１〜５５６が関節位置を検出し、ステップＳ５１では、トルクセンサ５４１〜５４６が関節トルクを検出する。
【００４４】
ステップＳ４２では、位置制御部５２１〜５２６が、電動モータ２１１〜２１６の現在位置の位置偏差に応じた指令値を演算する。また、ステップＳ５２では、力制御部５０５はトルクセンサ５４１〜５４６が検出した関節トルクに基づいた指令値を演算し出力する。
【００４５】
その後、ステップＳ６では、サーボ制御部２３０の力制御切換手段が、目標位置に対する移動量から力制御切換判定を行う。ロボットアーム２００の上記所定部位が力制御を行う所定範囲内に移動している場合は、後述の図７に示されるゲイン切換器の操作量演算結果に基づきそれぞれの補正量を演算する。
【００４６】
ステップＳ７では、切換制御部５１１〜５１６は、所定の演算結果から得られたそれぞれ補正された力制御量と位置指令量と積分値から、各関節に与えるモータトルク（力）の指令値を演算し、モータトルク指令値として各関節に出力する。
【００４７】
ステップＳ８では、モータ制御部５３１〜５３６では、電動モータ２１１〜２１６の位置に基づいて、モータトルク指令値になるように各モータ駆動部が通電制御を行う。
【００４８】
ステップＳ９では、各モータ駆動部の制御値に応じて電動モータ２１１〜２１６が通電され、モータ回転軸の出力が減速機などを通じて各関節の機構に印加され、これにより、関節ごとの制御値に応じたトルクが発生される。
【００４９】
ステップＳ１０では、各関節に搭載されたセンサ部２２１〜２２６では、位置センサ５５１〜５５６が関節位置を検出し、トルクセンサ５４１〜５４６が関節トルクを検出する。関節位置と関節トルクはそれぞれロボット制御装置３００にフィードバックされる。この時、力検出部５０４は、ロボットモデル５０３と関節位置に基づいて関節トルクをロボットアーム２００の手先にかかる力に変換する。この場合、関節位置は、関節の減速機（不図示）の出力側の位置センサから取得した位置情報であるが、関節位置の代わりにモータ位置、例えば減速機の入力側の位置センサから取得した位置情報を用いてもよい。
【００５０】
ステップＳ１１では、ロボットアーム２００の上記所定部位が目標位置に到達したか否かを判定し、目標位置に到達していない場合はステップＳ４１およびＳ５１に復帰し、上記の制御を続ける。ステップＳ１２では、所定の駆動終了条件（例えば、ロボットアーム２００が一連の工程動作を終了したか、など）が成立したか否かを判定し、終了条件を満たす場合は、処理を終了する。
【００５１】
図５は、以上の制御によって実施される移動開始点（第１の教示点）から目標位置（第２の教示点）に至るまでの制御切換シーケンスを模式的に示している。また、図６は、各関節モータの制御方式を、移動開始時の位置制御から、力指令に切り換える制御系の構成を示しており、この構成は、図３の切換制御部５１１〜５１６の詳細構成に相当する。
【００５２】
図６において、制御割合を補正する補正量演算部６０１は、ロボットアーム２００の上記所定部位と目標位置との相対距離を演算する相対距離演算部６０１ａを備える。また、補正量演算部６０１は、相対距離演算部６０１ａが演算した相対距離に応じて力制御切り換えを指令する力制御切換手段６０１ｂを備える。さらに、補正量演算部６０１は、力制御への切り換え時に用いられる補正量演算手段６０１ｃを備える。この補正量演算部６０１によって、ゲイン切換器６１１が制御され、モータ指令値τ（Ｍ）が決定される。
【００５３】
図６の制御系では、ロボットアーム２００の上記所定部位と目標位置との相対距離に応じて制御方式が位置制御から力制御に変更される。モータ指令値τ（Ｍ）を演算するゲイン切換器６１１は、それぞれ作動した時に、位置制御の制御量をゲインＫ２をもって減算する減算手段と、力制御の制御量をゲインＫ１をもって加算する加算手段と、を備える。
【００５４】
図６の下段左の位置フィードバックループでは、位置指令に対して、位置センサ５５１〜５５６の位置検出量とその微分値が負帰還され、さらに位置ゲインと速度ゲインが乗じられる。位置ゲインと速度ゲインが乗じられた後の制御値は、積分器と比例成分演算器を介して加算され、位置制御ゲインτ（ＭＰ）の成分が演算される。位置制御ゲインτ（ＭＰ）の成分は、ゲイン切換器６１１の減算手段が有効になるとゲインＫ２により減算される。
【００５５】
一方、図６の上段左の力フィードバックループでは、力指令に対して、トルクセンサ５４１〜５４６の力検出量が負帰還され、力ゲインが乗じられた制御値は、積分器と比例成分演算器を通して加算され、力制御ゲインτ（ＭＦ）の成分が演算される。力制御ゲインτ（ＭＦ）の成分は、ゲイン切換器６１１の加算手段が有効になるとゲインＫ１により加算される。
【００５６】
図５に示すように、目標位置までの動作区間の初期では、ゲインＫ１、Ｋ２のゲイン切換器６１１の加算手段、減算手段は作動しておらず、位置制御ゲインτ（ＭＰ）の成分のみが優勢である（図５最下段の位置制御動作区間）。力制御への切り換え区間（図５最下段の位置−力連続制御動作区間）では、ゲインＫ１、Ｋ２のゲイン切換器６１１の加算手段および減算手段が作動し始める。これにより、位置制御ゲインτ（ＭＰ）の成分は、ゲイン切換器６１１の減算手段が有効になるとゲインＫ２により減算され、力制御ゲインτ（ＭＦ）の成分は、ゲイン切換器６１１の加算手段が有効になるとゲインＫ１により加算される。図５の中段に示すように、ゲインＫ１、Ｋ２の制御によって、位置制御ゲイン、および力制御ゲインは、それぞれ除々に減少および増加するよう制御される。
【００５７】
力制御への切り換え区間（図５最下段の位置−力連続制御動作区間）では、図５の最上段において、ゲイン切換器６１１の加算手段および減算手段のみの制御によって、それぞれ決定されるモータ指令値の成分は破線に示すように推移する。さらに、本実施形態の力制御への切り換え区間では、位置制御ゲイン、および力制御ゲインを、それぞれ除々に減少および増加させる時、演算した積分項τ（ＭＩ）をロボットアームの関節を駆動するモータ指令値に加算する。この積分項τ（ＭＩ）は、図６のゲイン切換器６１１の中央に示した積分補正器が位置フィードバックループの積分器から得た積分値を用いて演算する。
【００５８】
力制御への切り換え区間（図５最下段の位置−力連続制御動作区間）において、上記積分項τ（ＭＩ）の成分を加算することにより、モータ指令値は図５最上段の実線で示すように推移することになる。
【００５９】
図７は、上記の力制御への切り換え区間（図５最下段の位置−力連続制御動作区間）における位置制御と力制御の制御割合を調整するゲイン切換器６１１の演算の様子を示している。図７では、位置制御の補正量Ｋｐがゲイン切換器６１１の減算手段によって漸減している間、力制御の補正量Ｋｆが漸増するよう制御されている。位置フィードバックループの積分器の積分値を用いた補正量Ｋｉは、図６のゲイン切換器６１１の積分項換算手段６１１ａによって、位置−力連続制御動作区間（図５のＭ（ｐ−ｆ））の例えば前半で漸増し、後半で漸減して消勢するよう制御される。
【００６０】
以下では、図４〜図７を参照して、上記の切り換え制御をより詳細に説明する。ティーチングペンダント４００を用いたロボット教示では、ロボットアーム２００の現在の位置姿勢における、手先などの所定部位の位置を第１の教示点とする。
【００６１】
図４のステップＳ１において、操作者が、ティーチングペンダント４００を用いて、目標位置を指定する第２の教示点を入力すると、上記のように目標位置の位置教示データ５０２が生成される。図５において、これら第１の教示点、第２の教示点（目標位置）は、それぞれＭ（ｓ）、Ｍ（ｅ）に相当する。この目標位置は、例えばロボットアーム２００を用いた物品の製造において、ワークを対象物に嵌合させる終了位置などに相当する。また、図４のステップＳ１では、操作者は、この製造処理でロボットアーム２００が発生すべき嵌合力に応じた力教示データ５０１を指定する。
【００６２】
ロボットアーム２００の動作を開始するために、ロボット制御装置３００は、ロボットアームのロボットモデル５０３から軌跡を演算して対応する移動量を決定し、その指令値をサーボ制御部２３０に出力する。その場合、目標位置の位置教示データ５０２から補正量演算部６０１により各関節軸のモータ位置の最終目標値が演算される（図４：Ｓ２）
【００６３】
図５に示すように、本実施形態では、最終組立て位置である目標位置Ｍ（ｅ）からの相対的な距離によって力制御区間Ｍ（ｆ）と、位置−力連続制御動作区間（図５のＭ（ｐ−ｆ））が決定される。移動開始点であるＭ（ｓ）から位置−力連続制御動作区間（図５のＭ（ｐ−ｆ））までの区間が位置制御動作区間Ｍ（ｐ）である。位置−力連続制御動作区間Ｍ（ｐ−ｆ）の始点はＭ（ｐ−ｆｓ）、終点はＭ（ｐｅ−ｆ）である。
【００６４】
図５に示すように、力制御は、位置−力連続制御動作区間Ｍ（ｐ−ｆ）の始点であるＭ（ｐ−ｆｓ）から漸増するよう定められる。また、同時に、位置制御は、位置−力連続制御動作区間Ｍ（ｐ−ｆ）の始点Ｍ（ｐ−ｆｓ）から漸減し、その終点Ｍ（ｐｅ−ｆ）で消勢し、これと同時に力制御がフルゲインで働き始める。
【００６５】
これらの制御区間は、図４のステップＳ３において、例えば最終組立て位置である目標位置Ｍ（ｅ）からの相対的な距離によって決定することができる。図５の最下段の横軸は例えば（ロボットアーム２００の所定部位が移動する）距離に取られている。これら各制御区間の始点、終点の距離の位置は位置制御時の速度および力制御開始時の速度の差、ロボットアーム機構系の慣性質量などのロボットパラメータから計算することができる。図５に示すように、最終組立て位置である目標位置Ｍ（ｅ）からの相対的な距離に基づき、位置−力連続制御動作区間Ｍ（ｐ−ｆ）の始点Ｍ（ｐ−ｆｓ）は、
Ｍ（ｐ−ｆｓ）＝Ｍ（ｅ）−（Ｍ（ｐ−ｆ）＋Ｍ（ｆ））
のような距離の関係となるよう演算される（図４：Ｓ３）。
【００６６】
ロボットアーム２００に動作指令が送られると、図５の移動開始位置Ｍ（ｓ）からロボットアーム２００は位置制御によって動作を開始する。ロボットアーム２００の動作中、上述のように、位置センサ５５１〜５５６とトルクセンサ５４１〜５４６の値がそれぞれ読み取られる（図４：Ｓ４１、Ｓ５１）。ロボット制御装置３００はセンサ部２２１〜２２６から読み出されたこれらの位置、力の現在値に対応した制御値をサーボ制御部２３０の力制御切換手段に出力する（図４：Ｓ４２、Ｓ５２、Ｓ６）。
【００６７】
図４のステップＳ７では、切換制御部５１１〜５１６には、位置制御部５２１〜５２６と力制御部５０５の値が入力され（図３）、補正量演算部６０１（図６）が図５中のそれぞれの制御区間の判定を行う。また、ゲイン切換器６１１（図６）がモータ制御部５３１〜５３６（アンプ）に与えるモータ指令値τ（Ｍ）を決定する。
【００６８】
図４（Ｓ７）において、補正量演算部６０１は、ロボットアーム２００の現在位置と、それが図５のそれぞれの制御区間のどの区間に属するかに応じてモータ指令値τ（Ｍ）を決定する。その際、上述のように位置−力連続制御動作区間Ｍ（ｐ−ｆ）においては、位置制御フィードバックループの減算ゲイン（Ｋ２）、力制御フィードバックループの加算ゲイン（Ｋ１）が図７に示すように制御される。また、位置−力連続制御動作区間Ｍ（ｐ−ｆ）においては、補正量演算部６０１が、位置制御フィードバックループの積分器の値に基づき、図７の中段に示すような積分項を演算し、モータ指令値τ（Ｍ）に加算する。
【００６９】
図４のステップＳ８では、モータ指令値τ（Ｍ）に基づき、モータ制御部５３１〜５３６がそれぞれの電動モータ２１１〜２１６に必要な通電制御を行う。これにより、電動モータ２１１〜２１６がそれぞれの関節軸に対して通電制御量に応じた回転トルクを発生する（図４のＳ９）。そして、関節モータによって駆動された各関節の位置センサ５５１〜５５６とトルクセンサ５４１〜５４６がそれぞれの角度とトルクを検出する（図４のＳ１０）。
【００７０】
各位置センサおよびトルクセンサからなるセンサ部２２１〜２２６の検出値が目標位置Ｍ（ｅ）への到達を示していなければ、図４のステップＳ４に戻りアーム駆動が続けられる。また、目標値に到達していれば、新たなモータ駆動を停止する（図４のＳ１１〜Ｓ１２）。
【００７１】
ここで、図５の位置制御動作区間Ｍ（ｐ）から、位置−力連続制御動作区間Ｍ（ｐ−ｆ）にかけての制御つき、さらに詳細に説明する。図５において移動開始位置Ｍ（ｓ）力制御が開始される位置−力連続制御動作区間Ｍ（ｐ−ｆ）の直前までは、位置制御のみで駆動される。
【００７２】
位置制御動作区間Ｍ（ｐ）では、図６の位置制御フィードバックループにおいて、ゲイン切換器６１１（図６）は動作せず、減算ゲインＫ２は非作動である。この区間では、位置指令に指令値と、位置センサからの負帰還量により定まる制御値に位置ゲインおよび速度ゲインを乗じた後、積分・比例計算を経てモータ指令値τ（ＭＰ）がモータ制御部５３１〜５３６（アンプ）に出力される。
【００７３】
図５の位置−力連続制御動作区間Ｍ（ｐ−ｆ）、即ち力制御開始から位置制御終了までの区間では、上述の位置制御に加え、力指令にゲインを乗じ積分・比例計算をしてモータ指令値τ（ＭＦ）を計算する力制御が併用される。即ち、図６のゲイン切換器６１１では、モータ制御部５３１〜５３６（アンプ）に出力されるモータ指令値τ（Ｍ）は、力制御フィードバックループのモータ指令値τ（ＭＦ）に加算ゲインＫ１を乗じた制御量が加算される。また、ゲイン切換器６１１において、位置制御フィードバックループのモータ指令値τ（ＭＰ）には、減算ゲインＫ２を乗じた制御量と、積分項換算手段６１１ａが出力するモータ指令値τ（ＭＩ）が加算される。
【００７４】
力制御の加算ゲインＫ１と、位置制御の減算ゲインＫ２は、例えば０〜１の間の乗数であり、常に両者を加算した時、１になるように制御する。力制御開始時はＫ１＝０、Ｋ２＝１で、位置制御終了時はＫ１＝１、Ｋ２＝０となる。位置−力連続制御動作区間Ｍ（ｐ−ｆ）の力制御開始から位置制御終了までの間は、位置制御終了位置までの相対距離に連動して線形に変動するように補正量演算部６０１にてＫ１、Ｋ２が決定される。このため、位置指令値（図７のＫｆ）および力指令値（同Ｋｐ）が図７のように線形に変動する。ただし、位置指令値（図７のＫｆ）および力指令値（同Ｋｐ）を変化させる態様は線形以外であってもよく、適当な二次以上の関数で定められる非線形な制御を行ってもよい。
【００７５】
また、本実施形態では、補正量演算部６０１は、位置指令と実際位置の偏差を相対距離演算に入力し、位置偏差が大きいほど位置制御のゲインＫ２を大きくする制御を行うよう構成する。これにより、指定経路に対する誤差が少なければ、相対的に力制御が効き、衝突時の反力を減らすことができる。また、図６のゲイン切換器６１１において、積分項換算手段６１１ａは、力制御開始時における位置制御系の自重補償項に相当する積分項の値を記憶しておき、モータ指令値τ（ＭＩ）を演算する。そして、積分項換算手段６１１ａは、演算したモータ指令値τ（ＭＩ）を漸減していくゲインＫ２に連動してモータ指令値τ（Ｍ）に加算するよう動作する（図７中段）。これにより、自重補償、即ちロボットアーム２００が自重に抗して姿勢を維持するためのモータ駆動量を確保することができる。例えば、位置−力連続制御動作区間Ｍ（ｐ−ｆ）において、ロボットアーム２００が把持したワークが嵌合対象に接触していない可能性がある場合でも、力制御だけでは困難な自重補償を継続することができる。なお、他の構成としては、図６のゲイン切換器６１１において減算手段（Ｋ２）へ加算器を介して接続されている位置制御フィードバックループの積分出力には減算ゲイン（Ｋ２）を乗じずに保存・出力し続ける構成が考えられる。その場合、位置制御比例項のみに減算ゲイン（Ｋ２）を乗じるよう接続する。このような構成によっても、位置−力連続制御動作区間Ｍ（ｐ−ｆ）において、力制御だけでは困難な自重補償を継続することができる。
【００７６】
本実施形態によれば、特に位置−力連続制御動作区間Ｍ（ｐ−ｆ）以降において、ロボットアーム２００の自重落下を防止し、シームレスに位置制御から力制御に切り換えることができ、切換時の振動を防止することでアーム・ワークの破損を防止できる。
【００７７】
図６のゲイン切換器６１１の制御によって、モータ制御部５３１〜５３６（アンプ）に出力されるモータ指令値τ（Ｍ）は次のように制御される（図７）。まず、位置制御動作区間Ｍ（ｐ）では、τ（Ｍ）＝τ（ＭＰ）で位置制御フィードバックループのみが有効である。続いて、制御切換中、即ち位置−力連続制御動作区間Ｍ（ｐ−ｆ）では、モータ指令値τ（Ｍ）はτ（Ｍ）＝τ（ＭＰ）×Ｋ２＋τ（ＭＦ）×Ｋ１＋τ（ＭＩ）によって定まる大きさとなる。そして、力制御区間Ｍ（ｆ）に入ると、モータ指令値τ（Ｍ）はτ（Ｍ）＝τ（ＭＦ）×Ｋ１によって定まる大きさとなる。
【００７８】
例えば、ロボットアーム２００が図７のＭ（ｐ−ｆｓ）とＭ（ｐｅ−ｆ）の中間点（同図中央）に位置する場合には、
τ（Ｍ）＝０．５（ｐ）＋０．５（ｆ）＋１．０（ｉ）
Ｋ１＝０．５，  Ｋ２＝０．５，  Ｋｉ＝１．０
のような制御割合でモータ指令値τ（Ｍ）が決定される。さらに、ロボットアーム２００が移動して、位置Ｍ（ｐｅ−ｆ）を通過すると力制御区間（Ｍ（ｆ）：図５）になり、モータ駆動に関してはアーム先端で発生させる力を演算したモータ指令値τ（Ｍ）による駆動制御となる。
【００７９】
以上説明したように、本実施形態の制御によると、ロボットアームは、移動開始時は位置制御モードで動き始める。そして、動作途中の目標位置近傍に到達した場合には、連続的にロボットアームの手先にかかる力を所望の力目標値に制御する力制御モードにスムーズに切り換えることができる。本実施形態によれば、動作（移動）開始位置から最終目標位置までの移動距離に応じて位置制御と力制御の割合を可変することによりロボットアームが動作する上での位置−力制御の連続性を維持することができる。
【００８０】
また、本実施形態によれば、位置制御動作区間Ｍ（ｐ）に入ると、位置制御フィードバックループの積分器に記憶されている量を用いて、例えば自重補償を可能とするモータ指令値成分を加算する。このため、位置−＞力の制御切換時の積分項などの不連続性をなくす構成を実現できる。そのため、位置−＞力の制御切換に起因する振動などが発生しにくい利点がある。本実施形態によれば、ロボットアームを目標位置近傍まで高速に移動させることができ、目標位置、例えば物品を製造する組立位置では、柔軟性に富んだ力制御にスムーズに移行させることができる。そのため、ロボットアームで把持したワークと対象物の接触、当接が生じる、突き当てや嵌め合い嵌合動作が行われる物品の製造工程を、確実かつ正確に制御することができる。
【００８１】
＜実施形態２＞
上記の実施形態１では、ロボットアーム２００の所定の基準部位の移動距離、ないし目標位置までの距離に応じて位置制御から力制御に切り換える構成を示した。本実施形態では、移動開始点（第１の教示点）から目標位置（第２の教示点）までのアーム移動時間を計算しておき、移動開始後の経過時間を用いて、位置制御から力制御への切り換えタイミングを決定する構成を示す。本実施形態では、上記実施形態１で説明したものと同一ないし相当する構成については同一の参照符号を用い、その詳細な説明は省略するものとする。
【００８２】
本実施形態では、移動開始点（第１の教示点）から操作者が設定した目標位置（第２の教示点）に到達するまでのロボットアームの移動時間を演算する。そして、演算された移動時間から、力制御の開始時間（時刻）を決定する。また、位置指令動作速度と力制御時の動作速度の差分から位置制御から力制御への切換時間を演算する。また、全移動時間から演算した力制御切換時間と力制御時間を除いた動作時間を位置制御開始時から力制御モード切換の開始時間とする。実施形態１では、現在位置と最終の目標位置の距離を演算するために計算が複雑になる可能性があるが、本実施形態のように経過時間ベースの制御を行う場合には、制御装置の負荷を軽減できる可能性がある。
【００８３】
なお、ロボットアームの移動開始後の経過時間の測定には、ＣＰＵ３０１（図２）による周知の計時ルーチンの実行や、ＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）のような計時装置（不図示）を用いることができる。
【００８４】
図８は、実施形態１の図４に対応し、本実施形態におけるロボット制御の手順を示したフローチャートである。また、図９は、実施形態１の図６に対応し、本実施形態のロボットアームのフィードバック制御系の構成を示している。図１０は、実施形態１の図５に対応し、本実施形態における位置制御から力制御への切り換え制御、およびその各制御区間を示している。本実施形態を説明するこれら各図の図示の形式は実施形態１と同等であって、以下ではこれら各図の様式や前提についての重複した説明は省略するものとする。
【００８５】
ステップＳ１３では、ティーチングペンダント４００を用いて図４のステップＳ１と同様に、操作者が位置指令値と力指令値を入力する。操作者が入力した位置目標（指令）値と力目標（指令）値は、上記の力教示データ５０１および位置教示データ５０２として記憶される。このうち、位置目標値は、例えばロボットアーム２００の手先などの所定部位を移動させる教示点の座標値により表現される。
【００８６】
ステップＳ１４では、位置指令生成部５０６がロボットモデル５０３に基づいて位置目標値を関節位置指令値に変換する。また、位置制御部５２１〜５２６が、関節位置が関節位置指令値に倣うよう指令値Ｍｔ（ｅ）（図１０）を算出する。関節位置を示す信号としては減速機の出力軸側の位置センサから得た関節位置の代わりに減速機の入力軸側の位置センサから得たモータ位置を用いてもよい。
【００８７】
ステップＳ１５では、モータ位置最終指令値Ｍｔ(ｅ)からモータ回転角度を求めて、モータ回転時間Ｍ（ｔ）を算出する（図１０の全移動時間Ｍ（ｔ））。ステップＳ１６では、モータ回転時間Ｍ（ｔ）からサーボ制御部２３０内の力制御切換手段によって力制御開始時間Ｍｔ（ｆ）を算出する（図１０の力制御時間Ｍｔ（ｆ））。ステップＳ１７では、力制御開始時間Ｍｔ（ｆ）と位置指令動作時のモータ回転時間から、位置−力制御動作を行う切換時間Ｍｔ（ｐ−ｆ）を算出する。ステップＳ１８では、力制御時間Ｍｔ（ｆ）と力制御切換回転時間から補正量演算部６２１（図９）が、位置−力制御動作への切換開始時間Ｍｔ（ｐ−ｆｓ）を算出する。
【００８８】
ステップＳ１９１およびＳ２０１（位置フィードバックループ）と、ステップＳ１９２およびＳ２０２（力制御フィードバックループ）は、図４のＳ４１およびＳ４２、Ｓ５１およびＳ５２の場合と同様に、並列的に実行される。
【００８９】
ステップＳ１９１では、各関節に搭載されたセンサ部２２１〜２２６にて、位置センサ５５１〜５５６が関節位置を検出し、ステップＳ１９２ではトルクセンサ５４１〜５４６が関節トルクを検出する。
【００９０】
ステップＳ２０１では、位置制御部５２１〜５２６が、電動モータ２１１〜２１６の現在位置の位置偏差に応じた指令値を演算する。また、ステップＳ２０２では、力制御部はトルクセンサ５４１〜５４６が検出した関節トルクに基づいた指令値を演算し、出力する。
【００９１】
ステップＳ２１では、サーボ制御部２３０内の力制御切換手段が、目標位置に対する移動時間から力制御切換判定を行う。ロボットアーム２００の移動開始後、計時した経過時間が所定の力制御変更範囲時間内に到達している場合は、図９のゲイン切換器６１１が作動し、移動時間に応じたそれぞれの補正量を演算する。
【００９２】
ステップＳ２２では、切換制御部５１１〜５１６は、所定の演算結果から得られたそれぞれ補正された力制御量と、位置指令量と、積分値から各関節のモータトルク（力）を指定するモータトルク指令値として出力する。
【００９３】
図８のステップＳ２３〜Ｓ２７のステップは、図４のステップＳ８〜Ｓ１２の各ステップと同じ処理である。ステップＳ２３では、モータ制御部５３１〜５３６が電動モータ２１１〜２１６の位置に基づいて、モータトルク指令値に成るように各モータ駆動部が通電制御を行う。ステップＳ２４では、通電されることにより電動モータ２１１〜２１６がモータ回転軸上に駆動力を出力し減速機を介して各関節の駆動トルクが発生される。ステップＳ２５では、各関節に搭載されたセンサ部２２１〜２２６により、位置センサ５５１〜５５６が関節位置を検出し、トルクセンサ５４１〜５４６が関節トルクを検出する。関節位置と関節トルクはそれぞれロボット制御装置３００にフィードバックされる。
【００９４】
図８のステップＳ２６は、図４のステップＳ１１と同様の目標位置到達判定、ステップＳ２７は図４のステップＳ１２と同様の工程終了判定である。
【００９５】
図９は、実施形態１の図６に相当し、各関節モータの制御方式を、移動開始時の位置制御から、力指令に切り換える制御系の構成を示している。図９の制御系の構成は、図３の切換制御部５１１〜５１６の詳細構成に相当する。図９で図６と異なるのは、図６の補正量演算部６０１が、アーム移動時間（経過時間）に応じて制御割合を補正する補正量演算部６２１に変更されている点である。
【００９６】
図９において、制御割合を補正する補正量演算部６２１は、ロボットアーム２００のアーム移動時間（経過時間）を演算する制御切換時間演算部６２１ａを備える。また、補正量演算部６２１は、制御切換時間演算部６２１ａが演算した移動時間（経過時間）に応じて力制御切り換えを指令する力制御切換手段６２１ｂを備える。さらに、補正量演算部６２１は、力制御への切り換え時に用いられる補正量演算手段６２１ｃを備える。この補正量演算部６２１によって、ゲイン切換器６１１が制御され、モータ指令値τ（Ｍ）が決定される。また、補正量演算部６２１は、移動開始点（第１の教示点）から操作者が設定した目標位置（第２の教示点）に到達するまでのロボットアームの移動時間を演算する移動時間演算部６２１ｄを備える。
【００９７】
図９の制御系では、ロボットアーム２００の移動時間（経過時間）に応じて制御方式が位置制御から力制御に変更される。モータ指令値τ（Ｍ）を演算するゲイン切換器６１１は、それぞれ作動した時に、位置制御の制御量をゲインＫ２により減算する減算手段と、力制御の制御量をゲインＫ１により加算する加算手段と、を備える。
【００９８】
図１０は、実施形態１の図７に相当し、アーム動作状態の本発明に従った移動開始からの位置移動量に応じた移動時間による目標位置に至るまでの制御切換シーケンスを示している。
【００９９】
以下、図８〜図１０を参照して、本実施形態２の制御につきさらに詳細に説明する。ロボットアームを動作完了時の所望の位置（たとえば嵌合終了位置）を５０２（図１０中Ｍｔ（ｅ））と、そのときに必要とされる力教示データ５０１をティーチングペンダント４００から指定する（図８：Ｓ１３）。その入力された指令値（図１０中Ｍｔ（ｅ））に対してロボット制御装置３００が、ロボットアームのロボットモデル５０３から軌跡を演算して所定の移動量を決定してサーボ制御部２３０に指令値を出力する。さらに、アーム動作目標位置より各軸モータ位置の最終目標値が演算される（図８：Ｓ１４）。また、演算されたモータ位置の最終目標値より補正量演算部６２１の制御切換時間演算部６２１ａがモータ回転時間を算出する（図８：Ｓ１５）。さらに、モータ移動時間から補正量演算部６２１の制御切換時間演算部６２１ａが力制御区間（図１０中Ｍｔ（ｆ））に対応する時間的な区間を決定し、要求される力制御開始時間が演算され、図１０の位置−力連続制御区間Ｍｔ（ｐ−ｆ）が演算される。
【０１００】
上記のように、位置制御〜力制御の切り換えを行う各区間を決定した後、ロボットアーム２００に動作指令が送られる。これにより、ロボットアーム２００は、図１０の移動開始位置Ｍｔ（ｓ）からロボットアーム２００の動作は位置制御によって制御される。
【０１０１】
実際には位置制御フィードバックループと、力制御フィードバックループと、は、並列的に動作（図８：Ｓ１９１およびＳ２０１と、Ｓ１９２およびＳ２０２）させる。図９において、位置センサ５５１〜５５６とトルクセンサ５４１〜５４６の検出量が読み取られ、位置制御フィードバックループと、力制御フィードバックループにそれぞれ負帰還量としてフィードバックされる。そして、位置制御フィードバックループと、力制御フィードバックループの各々の経路で、それぞれモータ指令値τ（Ｍ）の成分が演算される。ただし、位置制御フィードバックループと、力制御フィードバックループのいずれの制御量を用いるかは、補正量演算部６２１が制御区間を判定する制御に基づき決定される。例えば、位置制御区間Ｍｔ（ｐ）では、ゲイン切換器６１１は、力制御フィードバックループの出力を加算（Ｋ１）することなく、位置制御フィードバックループの出力のみが減算（Ｋ２）されずにモータ指令値τ（Ｍ）として用いられる。
【０１０２】
補正量演算部６２１が図１０中のそれぞれの制御区間の判定を行い、ゲイン切換器６１１が対応する制御区間の補正を行う（図８：Ｓ２１）。そして、ゲイン切換器６１１の演算結果に応じて決定されたモータ指令値τ（Ｍ）がモータ制御部５３１〜５３６に出力される（図８：Ｓ２２）。制御モードに応じたモータ指令値τ（Ｍ）に応じて、モータ制御部５３１〜５３６がそれぞれの電動モータ２１１〜２１６に必要な通電制御を行う（図８：Ｓ２３）。これにより、電動モータ２１１〜２１６がそれぞれの関節軸に対して通電制御量に応じた回転トルクを発生する（図８：Ｓ２４）。各関節部の位置センサ５５１〜５５６とトルクセンサ５４１〜５４６がそれぞれの角度とトルクを検出する（図８：Ｓ２５）。
【０１０３】
さらに、各位置センサおよびトルクセンサからなるセンサ部２２１〜２２６の検出値が目標位置に相当する値に到達していなければ、アーム駆動が続けられ、目標値に到達していれば、モータ駆動を停止する（図８：Ｓ２６、Ｓ２７）。
【０１０４】
本実施形態によれば、移動開始点（第１の教示点）から目標位置（第２の教示点）までのアーム移動時間を計算しておき、移動開始後の経過時間を用いて、位置制御から力制御への切り換えタイミングを決定することができる。これにより、上記実施形態１で説明した効果に加え、移動開始点（第１の教示点）から目標位置（第２の教示点）の近傍までは、高速動作が可能な位置制御によりロボットアームを制御することができる。そして、所定時間が経過し、目標位置（第２の教示点）の近傍に到達した後は、ロボット手先位置において所望の目標値に倣うような力制御により、ロボットアームを制御することができる。
【０１０５】
本実施形態２の制御は、ロボットアーム移動開始時から最大加速で動作を開始するような高速度の組立動作に適している。本実施形態２では、最終の目標位置に到達する時間から位置−力制御切換時間や力制御時間を予め移動開始時に決定されている。このため、現在位置や目標位置との距離の演算が必要な実施形態１よりも、低負荷かつ高速にロボットアームを制御できる可能性がある。従って、本実施形態２によるロボット制御によってワークを把持したロボットアームを駆動し、ワークと他の対象物との接触を含む物品の製造を行う場合、高速で、かつ柔軟（力）制御を作用させた確実な組立動作を実現できる。
【０１０６】
また、位置制御時の速度および力制御時の速度の差から、位置−力連続制御区間Ｍｔ（ｐ−ｆ）の時間的な区間は、ロボットアーム機構系の慣性質量などのロボットパラメータを用いて取得される。当初に演算してあったＭｔ（ｅ）の位置から力制御切換開始位置Ｍｔ（ｐ−ｆｓ）が決定される（図８：Ｓ１６）。本実施形態におけるこれらの時間的な区間の関係は、
Ｍｔ（ｐ−ｆｓ）＝Ｍｔ（ｅ）−（Ｍｔ（ｐ−ｆ）＋Ｍｔ（ｆ））
である（図１０）。
【０１０７】
本発明は、上述の実施形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現できる。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０８】
１００…制御ブロック、２００…ロボットアーム、２１１〜２１６…電動モータ、２２１〜２２６…センサ部、３００…ロボット制御装置、３０２…ＲＯＭ、３３００…プログラム、３３１…記録媒体、Ｊ１〜Ｊ６…関節、４００…ティーチングペンダント、５０１…力教示データ、５０２…位置教示データ、５０３…ロボットモデル、５０４…力検出部、５０５…力制御部、５０６…位置指令値生成部、５１１〜５１６…切換制御部、５２１〜５２６…位置制御部、５３１〜５３６…モータ制御部、５４１〜５４６…トルクセンサ、５５１〜５５６…位置センサ。
【図１】
2020032471.tif 000003
【図２】
2020032471.tif 000004
【図３】
2020032471.tif 000005
【図４】
2020032471.tif 000006
【図５】
2020032471.tif 000007
【図６】
2020032471.tif 000008
【図７】
2020032471.tif 000009
【図８】
2020032471.tif 000010
【図９】
2020032471.tif 000011
【図１０】
2020032471.tif 000012