(57)【要約】【課題】教示者が手を使って直接ロボットを動かして作業動作を教示する場合、従来のインピーダンス制御では、教示者はロボットと作業対象物との接触を感覚的に感じとることが困難なため、教示作業を効率的に行えなかった。【解決手段】作業用ロボットは、アームと、ハンドと、制御部と、動作を教示する時に教示者により印加される操作力を受けとめるハンドリング部と、操作力を検出する操作力検出部と、作業対象物から前記ハンドが受けた反力を検出する反力検出部とを備える。動作を教示する際に、反力検出部により反力が検出されていない場合には、制御部は、ハンドの移動における抵抗が小さくなるようにインピーダンス制御のパラメータを調整し、反力検出部により反力が検出されている場合には、制御部は、操作力検出部が検出した操作力の方向にハンドを移動させる際、ハンドの移動における抵抗が大きくなるようにインピーダンス制御のパラメータを調整する。【選択図】図２
2019018340.tif 000002
【特許請求の範囲】
【請求項１】
複数の軸を有するアームと、ハンドと、制御部と、
動作を教示する時に教示者により印加される操作力を受けとめるハンドリング部と、
前記操作力を検出する操作力検出部と、
作業対象物から前記ハンドが受けた反力を検出する反力検出部と、を備え、
作業用動作プログラムを生成するため、前記教示者が前記アーム及び前記ハンドの動作を教示する際に、
前記反力検出部により前記反力が検出されていない場合、前記制御部は、前記操作力検出部が検出した前記操作力の方向に前記ハンドを移動させる際、前記ハンドの移動における抵抗が小さくなるようにインピーダンス制御のパラメータを調整し、
前記反力検出部により前記反力が検出されている場合、前記制御部は、前記操作力検出部が検出した前記操作力の方向に前記ハンドを移動させる際、前記ハンドの移動における抵抗が大きくなるようにインピーダンス制御のパラメータを調整する、
ことを特徴とする作業用ロボット。
【請求項２】
前記インピーダンス制御のパラメータは、前記作業用ロボットの力制御で用いられる仮想粘性係数と仮想弾性係数のいずれかもしくは両方である、
ことを特徴とする請求項１に記載の作業用ロボット。
【請求項３】
前記制御部は、インピーダンス制御のパラメータを調整するとき、予め記憶したインピーダンス制御のパラメータテーブルからパラメータを選択する、
ことを特徴とする請求項１又は２に記載の作業用ロボット。
【請求項４】
前記制御部は、
前記作業用動作プログラムを実行する際には、前記反力検出部の検出値に基づいて、動作モードを切り替える、
ことを特徴とする請求項１から３のいずれか１項に記載の作業用ロボット。
【請求項５】
前記制御部は、前記反力検出部の検出値に基づいて、前記ハンドあるいは前記ハンドが把持するワークが作業対象物と接触したことを検知して、動作モードを切り替える、
ことを特徴とする請求項４に記載の作業用ロボット。
【請求項６】
前記制御部は、前記動作モードを、位置制御モードか、または力制御モードに切替える、
ことを特徴とする請求項４又は５に記載の作業用ロボット。
【請求項７】
前記操作力検出部は、前記アームの軸に設けられたトルクセンサか又は前記ハンドリング部に設けられたトルクセンサを有し、
前記反力検出部は、前記ハンドに設けられた力覚センサか又は作業対象物を載置するベースに設けられた力覚センサを有する、
ことを特徴とする請求項１から６のいずれか１項に記載の作業用ロボット。
【請求項８】
複数の軸を有するアームと、ハンドと、制御部と、
教示者が動作を教示する時に、前記教示者により印加される操作力を受けとめるハンドリング部と、
前記操作力を検出する操作力検出部と、
作業対象物から前記ハンドが受けた反力を検出する反力検出部と、
を備えた作業用ロボットの制御方法であって、
作業用動作プログラムを生成するために前記教示者が動作を教示する際に、
前記反力検出部により前記反力が検出されていない場合、前記制御部は、前記操作力検出部が検出した前記操作力の方向に前記ハンドを移動させる際、前記ハンドの移動における抵抗が小さくなるようにインピーダンス制御のパラメータを調整し、
前記反力検出部により前記反力が検出されている場合、前記制御部は、前記操作力検出部が検出した前記操作力の方向に前記ハンドを移動させる際、前記ハンドの移動における抵抗が大きくなるようにインピーダンス制御のパラメータを調整する、
ことを特徴とする作業用ロボットの制御方法。
【請求項９】
前記制御部は、
前記作業用動作プログラムを実行する際には、前記反力検出部の検出値に基づいて、動作モードを切り替える処理を行う、
ことを特徴とする請求項８に記載の作業用ロボットの制御方法。
【請求項１０】
請求項８または９に記載の作業用ロボットの制御方法を、
コンピュータに実行させるプログラム。
【請求項１１】
請求項１０に記載のプログラムを記憶した、
コンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記作業用動作プログラムは、前記作業用ロボットに物品の製造作業を行わせる動作プログラムである、
ことを特徴とする請求項８に記載の作業用ロボットの制御方法。
【請求項１３】
請求項１２に記載の作業用ロボットの制御方法により生成した前記作業用動作プログラムを前記制御部が実行し、前記作業用ロボットが物品の製造作業を行う、
ことを特徴とする物品の製造方法。
【請求項１４】
前記制御部は、
前記作業用動作プログラムを実行して物品の製造作業を行う時は、前記反力検出部の検出値に基づいて、動作モードを切り替える処理を行う、
ことを特徴とする請求項１３に記載の物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業用ロボット及びそれに作業動作を教示する方法に関する。特に、ロボットに教示者が直接力を加えて作業軌道を教示することができる作業用ロボットに関する。
【背景技術】
【０００２】
従来、ロボットに動作を教示する際には、ティーチングペンダントのようなリモコン端末を用いて、エンドエフェクタの先端部などを所定位置へ移動させる操作を行い、目視等で位置を確認しつつ、教示位置を記憶させていた。その際には、教示位置間の移動速度、加速度などを個別に調整する必要があった。ティーチングペンダントを用いた教示方法では、座標を数値で入力するか、あるいはＪＯＧ動作の繰り返しでロボットを移動させており、作業が煩雑で操作性が高いとは言えず、教示を効率的に行うことができなかった。
教示における操作性を改善する方法のひとつとして、例えば特許文献１には、教示者が手で直接ロボットに力を加えて操作しながら教示する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−２５０７２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載された装置では、教示者が軌道を教示する目的でロボット本体の手先効果器に対して力を加えた場合に、センサでその力を検出し、この力の方向に手先効果器を移動させるように制御する。その際には、センサに加えられた操作力の方向および操作方向設定スイッチで選択された操作方向によって決められる方向にのみ手先効果器を移動させるように制御する。
かかる装置によれば、教示者が自らの手でロボットを操作できる点で、ティーチングペンダントのようなリモコンを使う場合に比べて直感的に教示作業を行える利便性がある。
【０００５】
しかしながら、特許文献１に記載された制御方法では、加えられた操作力に応じてその方向にロボットが自動的に動いてしまうため、例えばロボットが作業対象物に接触したとしても、教示者は接触したことを感覚的に感じとることが困難である。このため、教示者がロボットを作業対象物に接触させながら微妙な位置制御を行おうとしても、ロボットが作業対象物に対して過剰な力を加えたりして、意図に沿った教示を行えない可能性があった。
例えば、フレキシブルケーブルをロボットに把持させてコネクタに挿入する作業を教示する場合に、フレキシブルケーブルの先端がコネクタと接触したか否か、コネクタと摺動しているか否か、等を教示者が手先の感覚で知覚できないことがあった。このため、教示者が適切な操作力を加えることができず、フレキシブルケーブルが意図と異なる形に変形してうまく挿入できず、ロボットに精密な作業を教示することができない場合があった。
【課題を解決するための手段】
【０００６】
本発明は、複数の軸を有するアームと、ハンドと、制御部と、動作を教示する時に教示者により印加される操作力を受けとめるハンドリング部と、前記操作力を検出する操作力検出部と、作業対象物から前記ハンドが受けた反力を検出する反力検出部と、を備え、作業用動作プログラムを生成するため、前記教示者が前記アーム及び前記ハンドの動作を教示する際に、前記反力検出部により前記反力が検出されていない場合、前記制御部は、前記操作力検出部が検出した前記操作力の方向に前記ハンドを移動させる際、前記ハンドの移動における抵抗が小さくなるようにインピーダンス制御のパラメータを調整し、前記反力検出部により前記反力が検出されている場合、前記制御部は、前記操作力検出部が検出した前記操作力の方向に前記ハンドを移動させる際、前記ハンドの移動における抵抗が大きくなるようにインピーダンス制御のパラメータを調整する、ことを特徴とする作業用ロボットである。
【０００７】
また、本発明は、複数の軸を有するアームと、ハンドと、制御部と、教示者が動作を教示する時に、前記教示者により印加される操作力を受けとめるハンドリング部と、前記操作力を検出する操作力検出部と、作業対象物から前記ハンドが受けた反力を検出する反力検出部と、を備えた作業用ロボットの制御方法であって、作業用動作プログラムを生成するために前記教示者が動作を教示する際に、前記反力検出部により前記反力が検出されていない場合、前記制御部は、前記操作力検出部が検出した前記操作力の方向に前記ハンドを移動させる際、前記ハンドの移動における抵抗が小さくなるようにインピーダンス制御のパラメータを調整し、前記反力検出部により前記反力が検出されている場合、前記制御部は、前記操作力検出部が検出した前記操作力の方向に前記ハンドを移動させる際、前記ハンドの移動における抵抗が大きくなるようにインピーダンス制御のパラメータを調整する、ことを特徴とする作業用ロボットの制御方法である。
【発明の効果】
【０００８】
教示時に、教示者がハンドにかかる反力を感知しやすいように制御部がインピーダンス制御系パラメータを制御するため、教示者は教示作業中にハンドと作業対象物の接触や摺動等を感覚によって容易に知覚することができる。そのため、微妙な力加減の制御が要求されるような教示作業を効率的に行うことができ、作業時にロボットが発揮すべき力の大きさと方向を規定した作業プログラムを効率的に生成することができる。また、作業時にインピーダンス制御系パラメータを切替えることができるような作業アルゴリズムを有する制御プログラムを生成することができる。
【０００９】
作業時には、ハンドにかかる反力あるいは作業対象物に対してハンドが印加した力を計測しながらインピーダンス制御系パラメータを切替える作業アルゴリズムにより、作業対象物に位置ずれが生じたとしてもロボットは的確に作業を実行することができる。
【図面の簡単な説明】
【００１０】
【図１】第一の実施形態の作業用ロボットの構成を簡易的に示す図。
【図２】第一の実施形態の簡易的な機能ブロック図。
【図３】第一の実施形態の教示時のフローチャート図。
【図４】インピーダンス制御系のパラメータテーブルの例を示す図。
【図５】教示の一連の動作を段階別に示す図。
【図６】ハンドが受ける反力の状態を段階別に示す図。
【図７】教示により生成された作業用の制御プログラムの内容を示す図。
【図８】実施形態の作業時における効果を説明するための図。
【図９】第二の実施形態の作業用ロボットの構成を簡易的に示す図。
【図１０】第三の実施形態の作業用ロボットの構成を簡易的に示す図。
【発明を実施するための形態】
【００１１】
［第一の実施形態］
以下、図面を参照して、本発明の第一の実施形態である作業用ロボットの構成、教示方法、作業動作について順に説明する。
図１は、本実施形態の作業用ロボットの構成を表す図である。図１に示す作業用ロボットは、ロボットアーム１１と、ロボットアームの先端に搭載されたハンド１２と、ロボットアーム１１とハンド１２の間に取り付けられたハンドリング部１３と、作業用ロボット全体の制御部としてロボットコントローラ１４を備える。
【００１２】
ロボットアーム１１は、複数の軸を有する多関節ロボットアームであり、各関節軸にトルクセンサを内蔵するとともに、不図示のモータとエンコーダを搭載している。本実施形態では６軸のアームを用いるが、これとは構成が異なるアームであっても差し支えない。
【００１３】
ロボットアーム１１の各関節軸に搭載されているエンコーダは、各関節の角度情報を検出することができ、計測結果をロボットコントローラ１４に所定の周期で通信できる。ロボットコントローラ１４は、エンコーダで検出した結果に基づき、ロボットアーム１１の姿勢を算出することができる。
【００１４】
ロボットアーム１１の各軸に搭載されているトルクセンサは、ロボットアーム１１にかかる力を検出することができる。すなわち、各トルクセンサは各関節軸にかかるトルクを計測することができ、計測結果をロボットコントローラ１４に所定の周期で通信できる。
【００１５】
また、ハンド１２は６軸力覚センサを内蔵しており、ハンド１２が作業対象物に接触した際にかかる反力を検出することができる。力覚センサはＸ軸、Ｙ軸、Ｚ軸の各軸の力と、各軸周りのモーメントを計測することができ、計測した力をロボットコントローラ１４に所定の周期で通信できる。ロボットコントローラ１４は、算出したロボットアームの姿勢と力覚センサの計測結果に基づき、ハンドにかかる作業対象物からの反力の方向や大きさを算出することができる。
したがって、ロボットコントローラと６軸力覚センサは、反力検出手段あるいは反力検出部を構成していると言える。尚、作業対象物にハンドが印加した力と作業対象物からの反力は、互いに作用反作用の関係があり、大きさは等しく方向は逆である。したがって、ロボットコントローラ１４は算出したロボットアームの姿勢と力覚センサの計測結果に基づき、作業対象物にハンドが印加した力を算出することもできる。
【００１６】
ロボットコントローラ１４は、算出したロボットアームの姿勢とトルクセンサが検出したトルク、および６軸力覚センサが検出した反力に基づき、教示者によりハンドリング部１３に印加された操作力の方向や大きさを算出することができる。具体的には、トルクセンサが検出したトルク検出結果から６軸力覚センサが検出した反力を減算することにより、ハンドリング部１３に印加された操作力の方向や大きさを算出できる。
したがって、ロボットコントローラ、トルクセンサ、６軸力覚センサは、操作力検出手段あるいは操作力検出部を構成していると言える。
本実施形態では、ロボットアーム１１の各軸に搭載されているトルクセンサと、ハンド１２の６軸力覚センサは、ハンドリング部１３を間に挟むように配置されている。かかる配置を採用したことにより、ハンドリング部に印加された外力（操作力）と、作業対象物からの反力の検出精度を高めることができる。
【００１７】
ロボットコントローラ１４は、ＣＰＵ，ＲＡＭ，ＲＯＭ，Ｉ／Ｏポート等を内蔵するコンピュータであり、ロボットアーム内のモータ、センサ、エンコーダ等と信号の授受を行うとともに、外部のネットワークやコンピュータとも接続可能である。
ロボットコントローラ１４は、ロボットアーム１１の各関節軸のモータへの駆動指令を生成し、フィードバック制御による各関節軸の位置制御を行うことができる。その際に、ロボットコントローラ１４は、トルクセンサおよび力覚センサの計測結果から求めた操作力および反力に基づいて、モータへの駆動指令を変化させる力フィードバック制御を行うことができる。すなわち、単純な位置制御とは異なり、力のフィードバックが加わった制御であり、ハンド１２の物理的な応答を、教示作業を行う上で望ましい状態に設定するものである。
【００１８】
本実施形態では、ロボットコントローラ１４は、ロボットアーム１１の姿勢と、教示者によりハンドリング部１３に印加された操作力に応じて、各関節軸のモータを駆動する際のインピーダンス制御系のパラメータを調整することができる。例えば、図５の左端のＰ０に示すように、ハンド１２が把持する把持ワーク５１が組立対象ワーク５２と接触しないで離間している時には、６軸力覚センサが検出する反力はゼロだが、この場合には、教示者が印加する操作力の方向に移動しやすくする。すなわち、ロボットコントローラ１４は、ハンドリング部１３に教示者が印加した操作力の方向にロボットアームを動かし易い状態になるようにインピーダンス制御系のパラメータを調整する。具体的には、移動させるために駆動する関節軸の制御パラメータの仮想粘性係数と仮想弾性係数のいずれかもしくは両方を調整する。その際には、各関節軸の移動量の割合や大きさに応じて、関節毎にインピーダンス制御系のパラメータの調整量を変えてもよい。
ここで、仮想粘性係数、仮想弾性係数とは、力制御を行う場合に、それぞれロボットの先端に粘性要素、弾性要素が接続されたのと同様な効果を生じさせる制御パラメータである。仮想粘性係数［Ｎ／（ｍｍ／ｓ）］、［Ｎｍ／（ｄｅｇ／ｓ）］は、一定速度を出すのに必要な力を示すパラメータなので、ハンド１２を移動させ易い状態にするには仮想粘性係数を小さく設定する。
【００１９】
また、本実施形態では、作業軌道を教示する際に、力覚センサで計測した作業対象物からの反力に基づいて、各関節軸のインピーダンス制御系のパラメータを調整することができる。例えば、図５のＰ１に示すように、ハンド１２が把持する把持ワーク５１が組立対象ワーク５２と接触している時には、６軸力覚センサは把持ワーク５１を介して組立対象ワーク５２から受ける反力を検出する。反力を検出した場合には、ロボットコントローラ１４は、教示者が印加する操作力の方向にハンド１２を移動させにくいように制御する。具体的には、ハンドリング部１３に教示者が印加した操作力の方向にハンド１２を移動させるために駆動するロボットアームの関節軸の制御パラメータの仮想粘性係数、仮想弾性係数を変更して、移動させにくい状態になるように調整する。その際には、各関節軸の移動量の割合や大きさに応じて、関節毎にインピーダンス制御系のパラメータの調整量を変えてもよい。
仮想粘性係数［Ｎ／（ｍｍ／ｓ）］、［Ｎｍ／（ｄｅｇ／ｓ）］は、一定速度を出すのに必要な力を示すパラメータなので、移動させにくい状態、すなわち教示者が操作力を印加した際に抵抗力を感じるようにするには、仮想粘性係数を大きく設定する。
上記のように、ハンド１２の移動方向、すなわち教示者が印加した操作力の方向に対してハンド１２の移動における抵抗が小さくなるようにパラメータを調整した状態を、ハンド１２を移動させやすい状態とする。逆にハンド１２の移動方向、すなわち教示者が印加した操作力の方向に対してハンド１２の移動における抵抗が大きくなるようにパラメータを調整した状態を、ハンド１２を移動させにくい状態とする。
【００２０】
本実施形態のインピーダンス制御系のパラメータの調整方法は、以下のように言うこともできる。
ロボットハンドあるいはロボットハンドが把持しているワークが作業対象物と接触していない場合には、ロボットハンドの力覚センサにより反力は検出されない。反力が検出されていない時は、ロボットコントローラ１４は、教示者が印加する操作力の方向にロボットハンドを移動させやすいように、検出された操作力に基づいてインピーダンス制御系のパラメータを調整する。
ロボットハンドあるいはロボットハンドが把持しているワークが作業対象物と接触している場合には、作業対象物に対してロボットハンドが印加した力に対する反作用、すなわち作業対象物からの反力がロボットハンドの力覚センサにより検出される。反力が検出されたら、ロボットコントローラ１４は、教示者が操作力の方向に移動させにくく感じるよう、インピーダンス制御系のパラメータを調整する。尚、力覚センサが反力を検出している場合に、反力だけでなく操作力をも参照してインピーダンス制御系のパラメータを調整してもよい。
【００２１】
また、インピーダンス制御系の仮想粘性係数と仮想弾性係数を単純に増減させるだけでは、必ずしも教示者が作業対象物との接触や摺動を感じ易くなるとは限らない。例えば、仮想弾性係数［ｍｍ／Ｎ］、［ｄｅｇ／Ｎｍ］を大きくし過ぎると組立対象から受ける反力がバネ成分に吸収され、操作部に力が伝わらない場合がある。算出した反力の大きさに応じてパラメータを変更すべき場合もあるので、反力の大きさに応じたインピーダンス制御系のパラメータテーブルを予め準備しておくことが望ましい。
【００２２】
図２は、ロボットコントローラ１４が備える機能ブロックを簡易的に示す機能ブロック図である。
２１は第一のセンサとして操作力を検出するためのトルクセンサであり、２２は第二のセンサとして反力を検出するための力覚センサであり、２３はロボットの各軸に設けられたエンコーダである。
【００２３】
２４は、Ｉ／Ｏポートとメモリ等から構成されるデータ取得／記憶部である。トルクセンサ２１で計測した力と、力覚センサ２２で計測した力と、ロボットの各軸のエンコーダ２３で計測した情報を取り込んで記憶する。
２５はロボットメカモデル登録部であり、ロボットアームの形状や寸法をはじめとする諸情報が記憶されている。
【００２４】
２６はロボット姿勢算出部であり、データ取得／記憶部２４に記憶されたエンコーダの計測結果と、ロボットメカモデル登録部２５の情報に基づき、ロボットアームの位置姿勢を算出する。
２７はエンドエフェクタ情報登録部であり、ハンドの形状や寸法をはじめとする諸情報が記憶されている。
【００２５】
２８は手先座標算出部であり、ロボット姿勢算出部２６で算出された姿勢情報と、エンドエフェクタ情報登録部２７の情報に基づき、ハンドの位置姿勢を算出する。
２９は操作力算出部であり、トルクセンサ２１の計測値と、ロボット姿勢算出部２６で算出された姿勢情報と、手先座標算出部２８で算出されたハンドの位置姿勢情報に基づき、ハンドリング部１３に加えられた操作力（外力）を算出する。
【００２６】
３０は反力算出部であり、力覚センサ２２の計測値と、ハンドの位置姿勢情報に基づき、作業対象物からハンドが受けた反力（外力）を算出する。尚、求めた反力の向きを逆転させれば、作業対象物に対してロボットハンドが印加した力を算出することもできる。
３１は、インピーダンス制御系パラメータ設定部で、教示時には、操作力の算出結果と反力の算出結果に基づき、ハンドリング部１３を使って教示するのに好適な状態にインピーダンス制御系の仮想粘性係数および／または仮想弾性係数を設定する。また、作業時には、インピーダンス制御系パラメータ設定切替部３４からの切替信号に基づき、インピーダンス制御系の仮想粘性係数および／または仮想弾性係数を適宜切替える。
【００２７】
３２は、ロボット動作計画生成部で、教示時におけるトルクセンサ２１、力覚センサ２２の計測値や、インピーダンス制御系パラメータ設定部３１のパラメータ設定値を参照して、教示された作業動作を実行するための作業プログラムを生成して記憶する。作業プログラムの生成については後述する。
【００２８】
３３は、ロボット動作指令部であり、インピーダンス制御系パラメータ設定部３１で設定された制御パラメータに従って、ロボットアームの各関節軸の駆動系（モータ）に伝達すべき指令を生成する。
３４は、インピーダンス制御系パラメータ設定切替部であり、作業時に、トルクセンサ２１や力覚センサ２２の計測値等に基づいてパラメータの設定を切替えたり、力制御と位置制御を切替えたりする。
【００２９】
以上説明したロボットコントローラ１４の各ブロックの機能は、内蔵するＣＰＵ、各機能のプログラムを格納したメモリ、データを一時的に記憶するためのＲＡＭ、データを送受信するＩ／Ｏポート等のハードウエア資源を利用して達成される。
また、３５は、ロボット駆動系であり、ロボット動作指令部３３から出される指示に従って、ロボットアームの各関節軸のモータ等を駆動する。
【００３０】
次に、図３は本実施形態における教示時の制御フローを示すフローチャート図である。教示動作が開始されると、まず工程Ｓ１で、インピーダンス制御系のパラメータの基準値を設定する。具体的には、ロボットコントローラ１４のメモリに予め記憶されたインピーダンス制御系のパラメータの初期値を読み込む。インピーダンス制御系のパラメータの基準値は、ロボットの自重を考慮し、自重でロボットが動き出さないように設定しておく。
【００３１】
次に、工程Ｓ２で、第一のセンサであるトルクセンサ２１が教示者による操作力を検出していないかを確認する。操作力を検出していない場合は、パラメータは基準値を維持する。
トルクセンサ２１が操作力を検出すると、工程Ｓ３において、操作力がかかっている方向にハンド１２を移動させ易くするようにインピーダンス制御系のパラメータを自動設定する。
【００３２】
次に、工程Ｓ４において、第二のセンサである力覚センサ２２が、作業対象物からの反力を検出していないか確認する。力覚センサ２２で作業対象物からの反力を検出すると、工程Ｓ５において、作業対象物からの反力の方向に教示者が抵抗力を感じ、操作力の方向にハンド１２を移動させにくくなるようにパラメータを自動設定する。
【００３３】
工程Ｓ６において、プログラム停止指令を取得したかを判断するが、停止命令を取得するまで、トルクセンサ２１と力覚センサ２２の検出した力をもとにインピーダンス制御系のパラメータの更新を行い、教示作業を続ける。
【００３４】
図４に、インピーダンス制御系のパラメータテーブルを例示する。作業対象物からの反力の大きさに応じて、仮想粘性係数と仮想弾性係数が設定されている。パラメータテーブルは、ハンドが把持するワークや組立対象ワークなど作業対象物毎に設定して適宜選択してもよいし、一律に同じテーブルを用いてもよい。
【００３５】
次に、図５を参照して、教示者が作業動作を教示している例について説明する。図５は、教示の一連の動作をＰ０からＰ４の各段階に分けて示したもので、図中の左から右に向かって時間が流れている。教示者は、ハンドリング部を手で操作してハンド１２を移動させ、ハンド１２が把持している把持ワーク５１を組立対象ワーク５２の凹部に嵌合させる作業を教示する。把持ワーク５１は作業対象物の一部であり、組立対象ワーク５２は、作業対象物の他の一部である。
【００３６】
まず、状態Ｐ０は、把持ワーク５１を把持したハンド１２が組立対象ワーク５２の上方に配置され、教示者がハンドリング部を持っている状態である。教示者は、ハンドリング部１３に−Ｚ方向の操作力を加えてハンドを鉛直方向下方に移動させ、組立対象ワーク５２に向けてアプローチする。
状態Ｐ１は、把持ワーク５１と組立対象ワーク５２が接触した状態である。教示者は、把持ワーク５１が組立対象ワーク５２の上面に接触すると、接触を維持させたまま＋Ｘ方向に移動させ、組立対象ワーク５２の凹部に向けてアプローチする。すなわち、教示者は−Ｚ方向に軽い操作力をかけつつ、＋Ｘ方向に移動させるための操作力を加える。
【００３７】
次に、状態Ｐ２は、嵌合動作に移行する前段階として、把持ワーク５１が組立対象ワーク５２の凹部の角に達したか否かを教示者が探っている状態である。後に図６を参照して説明するように、本実施形態のインピーダンス制御によれば、反力が変化すると教示者にとっての移動させやすさが変化するため、教示者は把持ワーク５１が凹部の角に到達したのを容易に認識することができる。そこで、凹部の角に到達したら、教示者はハンドリング部に加える操作力を変更して、ハンド１２の姿勢を修正する。
状態Ｐ３は、把持ワーク５１が組立対象ワーク５２の溝部（凹部）に嵌合可能な状態に、ハンド１２の姿勢が修正された状態である。
状態Ｐ４は、ハンドリング部に−Ｚ方向に操作力を掛けて−Ｚ方向にハンド１２を移動させ、組立対象ワーク５２に把持ワーク５１を勘合させた状態である。
【００３８】
上記の教示動作におけるハンドが受ける反力とインピーダンス制御系の動作について、図６を参照して説明する。
【００３９】
図６左側に示すように、Ｐ０からＰ１に向けて移動している途中経路においては、ハンド１２が把持する把持ワーク５１は組立対象ワーク５２にまだ接触していないため、ハンド１２の６軸力覚センサが反力を検出することはない。この状態においては、ロボットコントローラ１４のインピーダンス制御系パラメータ設定部３１は、ハンドリング部１３に印加された操作力の方向にハンド１２が動き易い状態になるようにインピーダンス制御系のパラメータを調整する。
【００４０】
ハンドがＰ１に到達すると、把持ワーク５１が組立対象ワーク５２と接触し、＋Ｚ方向に反力が発生するが、この反力は把持ワーク５１を介してハンド１２に伝達される。ハンド１２の６軸力覚センサがこの反力を検出すると、インピーダンス制御系パラメータ設定部３１は、ハンドリング部１３に印加された操作力の方向にハンド１２を移動させにくい状態になるようにインピーダンス制御系のパラメータを調整する。教示者は、操作力を加えてハンドを移動させようとしても、反力と同じ方向の抵抗力を感じることになる。これにより、教示者は、把持ワーク５１が組立対象ワーク５２と接触したことを手先感覚で感じ取ることができ、次の教示動作に移ることができる。教示者が把持ワーク５１の接触を感知できないと、この例で言えば下向き（−Ｚ方向）の操作力をかけ続けてしまうため、把持ワーク５１と組立対象ワーク５２の間に過度の力が印加され、いずれかもしくは双方が破損する可能性がある。また、把持ワーク５１がフレキシブルな部材ならば、破損は生じないとしても、変形が生じて以後の作業（例えば挿入作業）が困難になる可能性がある。
しかし、本実施形態によれば、教示者は、組立対象物からのＺ方向の反力を容易に感じ取ることが可能になる。したがって、教示者は、組立対象ワークに把持ワークが接触した後に、力をより微細にコントロールして教示作業を遂行することが可能になる。
【００４１】
次に、Ｐ１からＰ２に向けて移動させて嵌合部の位置を探る動作中は、教示者はハンドリング部１３を操作して、把持ワーク５１を組立対象ワーク５２に−Ｚ方向に押し当てながら、＋Ｘ方向に移動させる。−Ｘ方向および＋Ｚ方向に反力が発生し、この反力は把持ワーク５１を介してハンド１２に伝達され、ハンド１２の６軸力覚センサにより検出される。反力が検出されると、インピーダンス制御系パラメータ設定部３１は、ハンドリング部１３に印加された操作力の方向にハンド１２を移動させにくい状態になるようにインピーダンス制御系のパラメータを調整する。教示者は、操作力を加えてハンドを移動させようとしても、反力と同じ方向の抵抗力を感じることになる。これにより、教示者は、把持ワーク５１を組立対象ワーク５２に押し付けながら摺動させている際の摩擦力を、手先感覚で抵抗力として感じ取ることができ、嵌合部の位置を探る動作を思い通りに行うことができる。
【００４２】
そして、図６右側に示すように、Ｐ２に到達すると、把持ワーク５１が組立対象ワーク５２の凹部の角において、反力が一旦は急激に小さくなるように変化する。本実施形態のインピーダンス制御によれば、教示者は反力の変化を抵抗力の変化として手で高感度に感じ取ることが可能なので、凹部の角に達したことを容易に感知できる。組立対象ワークが角部に到達したことを感知できるので、教示者はハンドをオーバーランさせることなく姿勢を変更して、凹部への挿入動作に移行することができる。
【００４３】
図７は、教示した嵌合組立の作業動作を行うために、ロボット動作計画生成部３２が作成した作業用制御プログラムの内容を説明するための図である。
図中、グラフＺは、ハンドの手先部のＺ座標の変化を示しており、例えば状態Ｐ０から状態Ｐ１までは鉛直方向に下降し、状態Ｐ１から状態Ｐ２まではＺ方向の座標変化がないことを示している。
【００４４】
また、グラフＸは、ハンドの手先部のＸ座標の変化を示しており、例えば状態Ｐ０から状態Ｐ１まではＸ方向の座標変化はなく、状態Ｐ１から状態Ｐ２まではＸ方向に移動していることを示している。
【００４５】
また、グラフのＦｚは、第二のセンサである力覚センサ２２で検知されるＺ方向の反力を示しており、例えば状態Ｐ１において把持ワーク５１が組立対象ワーク５２に接触すると、瞬間的に大きな反力が検出されることがわかる。そして、状態Ｐ１から状態Ｐ２にかけては、インピーダンス制御によりＺ方向の反力は、ほぼ一定であることがわかる。
また、グラフのＦｘは、第二のセンサである力覚センサ２２で検知されるＸ方向の反力を示しており、例えば状態Ｐ１から状態Ｐ２にかけては、組立対象ワーク５２から−Ｘ方向にほぼ一定の反力を受けていることがわかる。
【００４６】
まず、教示段階においては、教示者はＰ０からＰ１の区間ではハンドを−Ｚ方向にのみ移動させる操作を行う。組立対象ワークに接触するまでは反力としてＦｘ、Ｆｚの力は発生せず、Ｚ方向の位置のみ変化する。組立対象ワークに接触すると＋Ｆｚの力が発生し、人が接触を検知してロボットを止めるまで＋Ｆｚの力が増加する。Ｐ１からＰ２の区間では−Ｚ方向に人が一定の力を加えながら、＋Ｘ方向に移動を行う。組立対象ワークの凹部の角に達するまでは、−Ｚ方向に押し付けている力に対する反力（＋Ｆｚ）と、−Ｘ方向に摩擦による反力（−Ｆｘ）が発生する。人が組立対象ワークの凹部の角への到達を感知してＸ方向の移動を止めるまで、＋Ｘ方向の位置が変化する。Ｐ２からＰ３の区間ではロボットの姿勢を教示者が変化させている。Ｐ３は、組立対象の溝の壁面に把持ワークを接触させた状態である。Ｐ３からＰ４の区間では、教示者は組立対象ワークの凹部の壁面に倣わせながら把持ワークを−Ｚ方向に移動させ、把持ワークを組立対象ワークに嵌合させる。
【００４７】
本実施形態では、ロボットコントローラは、教示段階におけるＰ０からＰ４までのロボットの位置、姿勢と前記トルクセンサと力覚センサの力プロファイル情報を記憶し、ロボット動作計画生成部３２が作業用動作プログラムを生成する。
すなわち、ロボットの姿勢や位置（軌道）のみを教示するのではなく、作業の各工程でロボットが作業対象物から受ける反力、言い換えれば作業対象物に印加すべき力の大きさと方向を含めて教示を行う。
【００４８】
ロボット動作計画生成部３２が生成した作業用動作プログラムにおいては、インピーダンス制御系パラメータ設定切替部３４が、第二のセンサである力覚センサ２２の検知情報に基づきインピーダンス制御のパラメータを切替える。
以下、図７を参照して作業用動作プログラムを実行する作業段階について具体的に説明する。尚、作業用動作プログラムは、教示時にロボットコントローラ１４内のメモリに記憶させてもよいし、一旦外部の記憶装置に記憶させ、ネットワークあるいはコンピュータ読み取り可能な記憶媒体を介してロボットコントローラ１４にロードしてもよい。
【００４９】
Ｐ０からＰ１までの区間では、力覚センサ２２により検出される反力は０である。この区間では、ロボット動作指令部３３は、ハンドのＸ座標が一定値で、Ｚ座標が１次関数（比例）で表される動作をするように、ロボット駆動系３５に対して位置制御モードの駆動信号を送る。
【００５０】
その後、力覚センサ２２で反力であるＦｚの急激な変化が検出されたら、ロボットコントローラは状態Ｐ１に到達したと判断し、インピーダンス制御系パラメータ設定切替部３４がインピーダンス制御のパラメータを切替える。切替えは、反力であるＦｚの変化率（微分値）が所定の閾値を上回ったことを条件にしてもよいし、反力であるＦｚの数値自体が所定の閾値を超えたことを条件にしてもよい。
【００５１】
Ｐ１からＰ２までの区間では、Ｘ座標は一次関数（比例）で表され、Ｚ座標は一定値になるよう制御する。この区間全体に渡って反力がほぼ一定のため、ロボット動作指令部３３は、ロボットの先端に掛る力が一定になるように、ロボット駆動系３５に対して力制御モードの駆動信号を送る。すなわち、位置制御モードから力制御モードに動作モードを切り替える。
【００５２】
その後、力覚センサ２２で反力であるＦｘの急激な変化が検出されたら、ロボットコントローラは状態Ｐ２に到達したと判断し、インピーダンス制御系パラメータ設定切替部３４がインピーダンス制御のパラメータを切替える。切替えは、反力であるＦｚの変化率（微分値）が所定の閾値を上回ったことを条件にしてもよいし、反力であるＦｚの数値自体が所定の閾値を超えたことを条件にしてもよい。
Ｐ２からＰ３までの区間では、ハンドの姿勢変更を行うが、Ｘ座標、Ｚ座標どちらも１次関数的には変化しておらず、反力であるＦｘ、Ｆｚは一定ではない。区間全体で力が一定値でないため、ロボット動作指令部３３は、教示時の姿勢変更の動作軌跡をそのまま再現するように、ロボット駆動系３５に対して位置制御モードの駆動信号を送る。
【００５３】
姿勢変更が完了したＰ３からＰ４までの区間では、Ｘ座標は一定値、Ｚ座標は比例しており、どちらも１次関数で表される。区間全体に渡って反力がほぼ一定のため、ロボット動作指令部３３は、ロボットの先端に掛る力が同じになるように、ロボット駆動系３５に対して力制御モードの駆動信号を送る。
【００５４】
その後、力覚センサ２２で反力であるＦｚの急激な変化が検出されたら、ロボットコントローラは状態Ｐ４に到達したと判断し、ロボット駆動系３５に対して駆動を終了するよう信号を送る。終了は、反力であるＦｚの変化率（微分値）が所定の閾値を上回ったことを条件にしてもよいし、反力であるＦｚの数値自体が所定の閾値を超えたことを条件にしてもよい。
【００５５】
本実施形態によれば、ハンドにかかる反力を計測しながらインピーダンス制御系パラメータを切替えることで、作業対象物に位置ずれが生じても教示した動作を的確に実行することができる。
【００５６】
図８（ａ）〜図８（ｄ）は、これを説明するための簡易図で、図８（ａ）は教示時の把持ワークと組立対象ワークの位置関係を示している。図８（ｂ）〜図８（ｄ）は、作業時に組立対象ワークが、点線で示した教示時の位置から、実線で示した位置にずれてセットされた場合を示している。
【００５７】
作業時にハンドを位置座標のみで制御した場合には、組立対象ワークが教示時とずれて置かれていた場合に、状態Ｐ２すなわち凹部の角への到達を正しく検知できないため、その後のハンドの姿勢変更や−Ｚ方向への嵌合動作を正しく行うことができない。嵌合作業を行えないばかりではなく、場合によっては、ワークやロボット自身を破損させる可能性もある。
【００５８】
しかし、本実施形態によれば、組立対象ワークの凹部の角に到達したことを、力覚センサ２２で感度よく検出できるようにインピーダンス制御系のパラメータが教示されている。図８（ｂ）において、力覚センサ２２による反力の計測値に基づいて凹部の角を検出するまで、一定方向に力をかけ続ける制御を行うことで、組立対象ワークがずれていたとしても、適切に作業動作を進めることができる。また、図８（ｃ）においては、把持ワークと組立対象ワークの相対位置が教示時と同じになっているため、姿勢変更の動作軌跡をそのまま再現するだけでよい。そして、図８（ｄ）においては、反力であるＦｚの急激な変化が検出されたら、状態Ｐ４に到達したと判断することができる。判断は、反力であるＦｚの変化率（微分値）が所定の閾値を上回ったことを条件にしてもよいし、反力であるＦｚの数値自体が所定の閾値を超えたことを条件にしてもよい。
【００５９】
以上説明したように、本実施形態によれば、教示者がハンドと作業対象物の接触状態を感知しやすいインピーダンス制御を行って作業プログラムを生成するため、位置姿勢および印加すべき力を効率的に教示することができる。そして、教示時に計測した反力に基づいて、作業時のインピーダンス制御系パラメータを切替える作業アルゴリズムを生成することができる。
【００６０】
尚、以上の説明では、理解を容易にするため単純化して説明したが、実際に教示者が手による操作で教示する場合には、直線上を誤差なく移動させるのは難しく、一定の力を与え続けることも困難である。そのため、実際に作業動作の制御プログラムを生成するにあたっては、教示時に振動的になってしまっているデータにフィルタをかけ、教示者の本来の意図ではない動きや力を分離して除外することが好ましい。
【００６１】
また、力覚センサは、姿勢に応じて自重影響を受け検出値が変化する場合もあるので、特定姿勢で必ずゼロ点校正を行うか、動作毎にゼロ点校正を行い、検出する反力に姿勢による影響が残らないようにするのが望ましい。
【００６２】
［第二の実施形態］
図９は、本発明の第二の実施形態の構成を簡易的に示した図である。図９において、ロボット装置は、ロボットアーム９１と、アーム先端に搭載されたハンド９２と、ハンド９２とロボットアーム９１の間に取付けられた力覚センサ内蔵型のハンドリング部９３と、ロボットコントローラ９４を備える。第一の実施形態と共通する部分については、説明を省略する。
【００６３】
第一の実施形態では、教示者によりハンドリング部に加えられた操作力を各関節のトルクセンサの計測値および６軸力覚センサが検出した反力に基づき検出したが、本実施形態においては、ハンドリング部９３に内蔵された力覚センサで計測する点が異なる。
本実施形態においては、ロボットコントローラとハンドリング部９３に内蔵された力覚センサは、操作力検出手段あるいは操作力検出部を構成していると言える。
【００６４】
第一の実施形態では、操作力の方向と大きさを算出するための処理がある程度複雑になったが、本実施形態によれば操作力の検出をより簡単に行うことができる。
ハンドリング部９３に内蔵されている力覚センサは、ロボットアーム９１にかかる操作力を計測し、計測結果をロボットコントローラ９４に所定の周期で通信できる。
【００６５】
本実施形態では、ハンドリング部９３に内蔵された力覚センサで人の操作力を検出し、ハンド９２に内蔵された力覚センサで組立対象からの反力を検出することで、第一の実施形態と同様の効果を奏することができる。尚、人の操作力を検出する際に、組立対象からの反力の影響をなるべく小さくするために、ハンドリング部９３に内蔵する力覚センサは、ハンドリング部内のなるべくハンド９２から遠い位置に配置するのが望ましい。
【００６６】
第一の実施形態と同様に、教示段階において、教示者がハンドにかかる反力を感知しやすいインピーダンス制御を行って作業プログラムを生成するため、位置精度が高い軌道を効率的に教示することができる。そして、教示時に計測した反力に基づいて、作業時のインピーダンス制御系パラメータを切替える作業アルゴリズムを生成することができる。
【００６７】
作業時には、ハンドにかかる反力を計測しながらインピーダンス制御系パラメータを切替えることで、作業対象物に位置ずれが生じても教示した動作を的確に実行することができる。
【００６８】
［第三の実施形態］
図１０は、本発明の第三の実施形態の構成を簡易的に示した図である。
図１０において、ロボット装置は、ロボットアーム１０１と、ロボット先端に搭載されたハンド１０２と、ロボットアーム１０１とハンド１０２の間に取り付けられたハンドリング部１０３から成る。また、ロボットの駆動指令を生成するロボットコントローラ１０４と、組立ベース１０７から成る。ロボットアーム１０１は、多関節ロボットであり、各関節軸にトルクセンサを内蔵しており、各関節軸に不図示のモータとエンコーダを搭載している。ハンド１０２で把持した把持ワーク１０５を、組立対象ワーク１０６に嵌合する作業を例示している。第一の実施形態と共通する部分については、説明を省略する。
【００６９】
第一の実施形態では、第二のセンサとしてハンドが備えた力覚センサを用いて作業対象物からの反力を計測した。本実施形態においては、第二のセンサとして組立対象ワーク１０６が載置された組立ベース１０７に内蔵された力覚センサを用いて、作業対象物に対してハンドが印加した力を計測する点が異なる。すなわち、組立対象ワーク１０６は、第二のセンサとしての力覚センサが内蔵された組立ベース１０７にセットされており、内蔵された力覚センサで、作業対象物に対してロボットハンドが印加した力を計測する。作業対象物にハンドが印加した力と作業対象物からハンドが受ける反力は、互いに作用反作用の関係があり、大きさは等しく方向は逆である。
したがって、組立ベース１０７に内蔵された力覚センサの計測結果に基づき、ロボットコントローラはハンドにかかる反力を算出することができる。
本実施形態においては、ロボットコントローラと組立ベースに内蔵された力覚センサは、反力検出手段あるいは反力検出部を構成していると言える。
【００７０】
本実施形態では、組立ベース１０７に内蔵された力覚センサで組立対象ワークに対してハンドが印加した力を検出し、ロボットコントローラがハンドにかかる反力を算出する。また、ロボットアーム１０１に内蔵したトルクセンサの計測結果とロボットコントローラが算出した反力の差分に基づいて、ハンドリング部１０３にかかる教示者の操作力を検出する。本実施形態においても、第一の実施形態と同様の効果を奏することができる。
【００７１】
すなわち、教示段階において、教示者がハンドと作業対象物の接触状態を感知しやすいインピーダンス制御を行って作業プログラムを生成するため、位置姿勢および印加すべき力を効率的に教示することができる。そして、教示時に算出した反力に基づいて、作業時のインピーダンス制御系パラメータを切替える作業アルゴリズムを生成することができる。
【００７２】
作業時には、作業対象物に対してハンドが印加した力を計測しながらハンドにかかる反力を算出し、インピーダンス制御系パラメータを切替えることで、作業対象物に位置ずれが生じても教示した動作を的確に実行することができる。
【００７３】
［他の実施形態］
本発明の実施形態は、上述した第一〜第三の実施形態に限られるものではなく、適宜変更したり、組み合わせたりすることが可能で、本発明の技術的思想内で多くの変形が可能である。
例えば、作業用ロボットは六軸制御のアームを備えたロボットに限られるわけではなく、またロボットが行う作業も部品の嵌合作業には限られない。いろいろなタイプの作業用ロボットを用いた物品の製造作業に、広く適用することが可能である。
アームの先端に取り付けられるハンドは、上述の実施形態には限られず、各種のマニピュレータ等であってもよい。
ハンドリング部は、教示者が手を使ってハンドあるいはロボットアームに操作力を加えやすい機構であれば、形状や設置位置は上記実施形態の例に限られるものではなく、視認性がよい位置に把持しやすいグリップ等を設けるのが好適である。
また、すべての作業工程の教示を教示者の手による直接操作で行わなければならないわけではなく、一部の工程の教示をティーチングペンダント等のリモコン機器や、シミュレータを用いて行ってもよい。
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７４】
１１・・・ロボットアーム／１２・・・ハンド／１３・・・ハンドリング部／１４・・・ロボットコントローラ／２１・・・トルクセンサ／２２・・・力覚センサ／２３・・・エンコーダ／２４・・・データ取得／記憶部／２５・・・ロボットメカモデル登録部／２６・・・ロボット姿勢算出部／２７・・・エンドエフェクタ情報登録部／２８・・・手先座標算出部／２９・・・操作力算出部／３０・・・反力算出部／３１・・・インピーダンス制御系パラメータ設定部／３２・・・ロボット動作計画生成部／３３・・・ロボット動作指令部／３４・・・インピーダンス制御系パラメータ設定切替部／３５・・・ロボット駆動系／５１・・・把持ワーク／５２・・・組立対象ワーク／９３・・・力覚センサ内蔵型のハンドリング部／１０７・・・力覚センサ内蔵型の組立ベース
【図１】
2019018340.tif 000003
【図２】
2019018340.tif 000004
【図３】
2019018340.tif 000005
【図４】
2019018340.tif 000006
【図５】
2019018340.tif 000007
【図６】
2019018340.tif 000008
【図７】
2019018340.tif 000009
【図８】
2019018340.tif 000010
【図９】
2019018340.tif 000011
【図１０】
2019018340.tif 000012