(57)【要約】【課題】パワーアシスト動作においてロボットアームの操作性を向上させる。【解決手段】ロボット制御装置３００は、ロボットアームに作用する力と、粘性パラメータを含むインピーダンスパラメータとに基づいて、ロボットアームをインピーダンス制御し、ロボットアームにパワーアシスト動作を行わせるＣＰＵ３０１を備える。ＣＰＵ３０１は、ロボットアームの手先の速度が第１速度では、粘性パラメータを第１粘性値に調整する。ＣＰＵ３０１は、ロボットアームの手先の速度が第１速度よりも遅い第２速度では、粘性パラメータを第１粘性値よりも高い第２粘性値に調整する。【選択図】図２
2019214105.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームに作用する力と、粘性パラメータを含むインピーダンスパラメータとに基づいて、前記ロボットアームをインピーダンス制御し、前記ロボットアームにパワーアシスト動作を行わせる制御部を備え、
前記制御部は、
前記ロボットアームの手先の速度が第１速度では、前記粘性パラメータを第１粘性値に調整し、
前記ロボットアームの手先の速度が前記第１速度よりも遅い第２速度では、前記粘性パラメータを前記第１粘性値よりも高い第２粘性値に調整することを特徴とするロボット制御装置。
【請求項２】
前記制御部は、前記ロボットアームの各関節に設けられた位置センサからの情報に基づいて、前記ロボットアームの手先の速度を求めることを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記制御部は、前記ロボットアームに作用する力の情報として、前記ロボットアームの各関節に設けられたトルクセンサからの信号を取得することを特徴とする請求項１又は２に記載のロボット制御装置。
【請求項４】
前記制御部は、前記ロボットアームに作用する力の情報として、前記ロボットアームの手先に設けられた力センサからの信号を取得することを特徴とする請求項１又は２に記載のロボット制御装置。
【請求項５】
前記制御部は、前記ロボットアームに前記パワーアシスト動作を行わせる第１モードと、教示データに従って前記ロボットアームを動作させる第２モードとを有し、前記第１モード又は前記第２モードにより前記ロボットアームを制御することを特徴とする請求項１乃至４のいずれか１項に記載のロボット制御装置。
【請求項６】
前記インピーダンスパラメータは、慣性パラメータ及び剛性パラメータを含んでおり、
前記制御部は、前記ロボットアームの手先の速度に応じて、前記慣性パラメータ及び／又は前記剛性パラメータを調整することを特徴とする請求項１乃至５のいずれか１項に記載のロボット制御装置。
【請求項７】
前記ロボットアームと、
請求項１乃至６のいずれか１項に記載のロボット制御装置と、を備えたロボット。
【請求項８】
制御部が、ロボットアームに作用する力と、粘性パラメータを含むインピーダンスパラメータとに基づいて、前記ロボットアームをインピーダンス制御し、前記ロボットアームにパワーアシスト動作を行わせるロボット制御方法であって、
前記制御部が、前記ロボットアームの手先の速度が第１速度では、前記粘性パラメータを第１粘性値に調整し、
前記制御部が、前記ロボットアームの手先の速度が前記第１速度よりも遅い第２速度では、前記粘性パラメータを前記第１粘性値よりも高い第２粘性値に調整することを特徴とするロボット制御方法。
【請求項９】
請求項８に記載のロボット制御方法により前記制御部が前記ロボットアームを制御して、物品を製造する物品の製造方法。
【請求項１０】
コンピュータに請求項８に記載のロボット制御方法を実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームにパワーアシスト動作を行わせる制御に関する。
【背景技術】
【０００２】
人とロボットが協働することで、ロボットアームによる重量物の搬送や組立といったユーザにかかる負担を低減する、パワーアシストロボットが注目されている。パワーアシストロボットは、人との協調作業が可能であるため、工場内の組立ラインに留まらず、介助や生活補助等といった家庭内への展開も期待される。
【０００３】
パワーアシストロボットは、人がロボットアームに印加した力を検知し、検知した力に応じてロボットアームが動作するように、ロボットアームをインピーダンス制御する。インピーダンス制御では、慣性、粘性及び剛性のパラメータを含むインピーダンスパラメータを用いる。
【０００４】
特許文献１には、インピーダンスパラメータを用いてロボットアームをインピーダンス制御して、ロボットアームにパワーアシスト動作を行わせるものが記載されている。特許文献１に記載のロボット制御方法では、ロボットアームの手先の位置と、インピーダンスパラメータとの関係を示すマップを事前に作成しておく。例えば組立などの作業する位置のような高精度な位置決めが必要な位置では、粘性パラメータを高くしておき、搬送などの軽い力で移動させたい領域では、粘性パラメータを低く設定するなど、作業工程に応じてユーザがマップを事前に作成しておく。実際にロボットアームにパワーアシスト動作を行わせるときには、制御装置は、マップを参照しながらロボットアームの手先の現在位置に応じてインピーダンスパラメータを決定して、ロボットアームをインピーダンス制御する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５１２９４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の方法では、ユーザが上述のマップを事前に作成しておく必要があった。このマップの作成作業は煩雑であり、ユーザに負担がかかるものであり、また、マップの作成に時間を要するものであった。更に、ロボットアームを用いた作業工程に変更が生じた場合にはマップを再作成する必要があり、工程の変更に柔軟に対応することができなかった。
【０００７】
そこで、本発明は、手先の位置とインピーダンスパラメータとを対応付けたマップを事前に作成しなくても、パワーアシスト動作においてロボットアームの操作性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
本発明者は、精密な作業が必要な位置、及び精密な作業が必要ではない位置において、ユーザがロボットアームをどのように操作するかを検討した。そして、精密な作業が必要な位置ではユーザはロボットアームを低速に操作し、精密な作業が必要ではない位置ではユーザはロボットアームを高速に操作することに着目した。
【０００９】
即ち、本発明のロボット制御装置は、ロボットアームに作用する力と、粘性パラメータを含むインピーダンスパラメータとに基づいて、前記ロボットアームをインピーダンス制御し、前記ロボットアームにパワーアシスト動作を行わせる制御部を備え、前記制御部は、前記ロボットアームの手先の速度が第１速度では、前記粘性パラメータを第１粘性値に調整し、前記ロボットアームの手先の速度が前記第１速度よりも遅い第２速度では、前記粘性パラメータを前記第１粘性値よりも高い第２粘性値に調整することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、手先の位置とインピーダンスパラメータとを対応付けたマップを事前に作成しなくても、ロボットアームにパワーアシスト動作を行わせる際に、ロボットアームの操作性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態におけるロボットの概略構成を示す斜視図である。
【図２】第１実施形態におけるロボット制御装置を示すブロック図である。
【図３】第１実施形態におけるロボットの制御系を示す制御ブロック図である。
【図４】第１実施形態におけるロボットアームをパワーアシスト動作させる制御方法を示すフローチャートである。
【図５】（ａ）〜（ｃ）は、第１実施形態においてロボットアームの手先の速度と粘性パラメータとの関係の例を模式的に示すグラフである。
【図６】第１実施形態におけるロボットアームの手先の位置及び速度と、粘性パラメータとの関係を説明するための図である。
【図７】第２実施形態におけるロボットの制御系を示す制御ブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１３】
［第１実施形態］
図１は、第１実施形態におけるロボットの概略構成を示す斜視図である。図１に示すロボット１００は、生産ラインに配置され、物品の製造に用いられる。ロボット１００は、重量物であるワークＷを搬送するような力作業をアシストするなど人と協調して作業を行う機能（モード）と、教示データに従いマシン単独で作業を行う機能（モード）とを有する。
【００１４】
ロボット１００は、多関節のロボットアーム２００と、ロボットアーム２００の動作を制御するロボット制御装置３００と、ロボット制御装置３００に教示データを送信する教示装置としての教示ペンダント４００と、を備える。教示ペンダント４００は、ユーザが操作するものであり、ロボットアーム２００やロボット制御装置３００の動作を指定するのに用いる。
【００１５】
ロボットアーム２００は、アーム本体２５１と、アーム本体２５１の先端に取り付けられたエンドエフェクタとしてのハンド２５２と、を有する。以下、エンドエフェクタがハンド２５２である場合について説明するが、これに限定するものではなく、ツール等であってもよい。アーム本体２５１の基端は、台座１５０に固定されている。ハンド２５２は、部品やツール等のワークＷを把持（保持）するものである。
【００１６】
アーム本体２５１は、複数の関節、例えば６つ関節（６軸）Ｊ１〜Ｊ６で連結された複数のリンク２１００〜２１０６を有する。また、アーム本体２５１は、各関節Ｊ１〜Ｊ６を各関節軸Ａ１〜Ａ６まわりにそれぞれ回転駆動する複数（６つ）のサーボモータ２０１〜２０６を有している。本実施形態では、ロボットアーム２００は、垂直多関節型のロボットアームである。アーム本体２５１は、基端側から先端側に向かって、リンク２１００〜２１０６が順に直列に連結されて構成されている。
【００１７】
アーム本体２５１は、各関節が回転することにより、ロボットアーム２００の手先、即ちハンド２５２を、可動範囲内の任意の位置姿勢に移動させることができる。ロボット１００にパワーアシスト動作を行わせる際には、ユーザがハンド２５２又はアーム本体２５１を掴んでロボットアーム２００を直接操作することで、ハンド２５２に把持されたワークＷを、任意の箇所に移動させることができる。
【００１８】
ロボットアーム２００の手先の位置及び姿勢は、アーム本体２５１の基端、即ち台座１５０を基準とする座標系Ｔｏで表現される。ロボットアーム２００の手先には、座標系Ｔｅが設定されている。ここで、ロボットアーム２００の手先とは、ハンド２５２が物体を把持していない場合には、ハンド２５２のことである。ハンド２５２が物体を把持している場合は、ハンド２５２と把持している物体を含めてロボットアーム２００の手先という。つまり、ハンド２５２が物体を把持している状態であるか物体を把持していない状態であるかにかかわらず、アーム本体２５１の先端から先を手先という。
【００１９】
各サーボモータ２０１〜２０６は、各関節Ｊ１〜Ｊ６をそれぞれ駆動する電動モータ２１１〜２１６と、各電動モータ２１１〜２１６にそれぞれ接続されたセンサ部２２１〜２２６とを有している。各センサ部２２１〜２２６は、各関節Ｊ１〜Ｊ６の位置（角度）、本実施形態では、各電動モータ２１１〜２１６の回転位置に応じた信号を発生する位置センサ（例えばロータリエンコーダ）を有する。また、各センサ部２２１〜２２６は、各関節Ｊ１〜Ｊ６のトルクに応じた信号を発生するトルクセンサを有する。各サーボモータ２０１〜２０６は、減速機やベルト、ベアリング等の不図示の伝達機構を介して各関節Ｊ１〜Ｊ６で駆動されるリンクに接続されている。
【００２０】
ロボット制御装置３００は、各サーボモータ２０１〜２０６の電動モータ２１１〜２１６の駆動を制御するサーボ制御部２３０を有する。サーボ制御部２３０は、各関節Ｊ１〜Ｊ６に対応する各トルク指令値に基づき、各関節Ｊ１〜Ｊ６のトルクがトルク指令値に追従するよう、各電動モータ２１１〜２１６に電流を出力し、各電動モータ２１１〜２１６の駆動を制御する。なお、第１実施形態では、サーボ制御部２３０は、ロボット制御装置３００の筐体内部に配置されているが、これに限定するものではなく、ロボット制御装置３００の筐体外部、例えばロボットアーム２００の内部に配置されていてもよい。
【００２１】
次に、ロボット制御装置３００について説明する。図２は、第１実施形態におけるロボットのロボット制御装置３００の構成を示すブロック図である。ロボット制御装置３００は、コンピュータで構成されており、制御部としてのＣＰＵ（Central  Processing  Unit）３０１を備えている。また、ロボット制御装置３００は、記憶部として、ＲＯＭ（Read  Only  Memory）３０２、ＲＡＭ（Random  Access  Memory）３０３、ＨＤＤ（Hard  Disk  Drive）３０４を備えている。また、ロボット制御装置３００は、記録ディスクドライブ３０５、各種のインタフェース（Ｉ／Ｆ）３０６〜３０９を備えている。
【００２２】
ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５、及びＩ／Ｆ３０６〜３０９は、互いに通信可能にバス３１０で接続されている。ＣＰＵ３０１は、演算処理及び制御処理を行う。ＲＯＭ３０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ３０３は、ＣＰＵ３０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。ＨＤＤ３０４は、ＣＰＵ３０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ３０１に、演算処理や制御処理を実行させるためのプログラム３３０を記録するものである。ＣＰＵ３０１は、このＨＤＤ３０４に記録（格納）されたプログラム３３０に従って、後述するロボット制御方法の各工程を実行する。記録ディスクドライブ３０５は、記録ディスク３３１に記録された各種データやプログラム等を読み出すことができる。
【００２３】
教示ペンダント４００は、Ｉ／Ｆ３０６に接続されている。ＣＰＵ３０１は、Ｉ／Ｆ３０６及びバス３１０を介して教示ペンダント４００からの教示データの入力を受ける。
【００２４】
サーボ制御部２３０は、Ｉ／Ｆ３０９に接続されている。ＣＰＵ３０１は、サーボ制御部２３０、Ｉ／Ｆ３０９及びバス３１０を介して、サーボモータ２０１〜２０６に含まれるセンサ部２２１〜２２６から信号を取得する。また、ＣＰＵ３０１は、各関節の指令を所定時間間隔でバス３１０及びＩ／Ｆ３０９を介してサーボ制御部２３０に出力する。サーボ制御部２３０は、指令に基づき、各サーボモータ２０１〜２０６に含まれる電動モータ２１１〜２１６を通電制御する。
【００２５】
Ｉ／Ｆ３０７には、モニタ３２１が接続されており、モニタ３２１は、ＣＰＵ３０１の制御の下、各種画像を表示する。Ｉ／Ｆ３０８は、書き換え可能な不揮発性メモリや外付けＨＤＤ等の記憶部である外部記憶装置３２２が接続可能に構成されている。
【００２６】
なお、第１実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４であり、ＨＤＤ３０４にプログラム３３０が格納される場合について説明するが、これに限定するものではない。プログラム３３０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム３３０を供給するための記録媒体としては、図２に示すＲＯＭ３０２，記録ディスク３３１、外部記憶装置３２２等を用いてもよい。具体的に例示すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。光ディスクは、例えばＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒである。不揮発性メモリは、例えばＵＳＢメモリ、メモリカード、ＲＯＭである。
【００２７】
図３は、第１実施形態におけるロボット１００の制御系を示す制御ブロック図である。図２に示すＣＰＵ３０１は、プログラム３３０を実行することにより、図３に示すモード切換部５０２、力指令生成部５０３、位置指令生成部５０４、指令部５１０、手先状態演算部５１３、インピーダンスパラメータ設定部５１６として機能する。図２に示す外部記憶装置３２２又はＨＤＤ３０４等の記憶部、例えば外部記憶装置３２２には、図３に示す教示データ５０８、変換データ５０９、ロボットモデル５１９等、処理に用いるデータが格納されている。また、図２に示すサーボ制御部２３０は、図３に示すように複数（６つ）のモータ制御部５３１〜５３６を含んでいる。教示データ５０８は、例えばロボット言語で作成されており、教示点の情報や教示点間の補間方法などを含んでいる。
【００２８】
各センサ部２２１〜２２６は、各位置センサ５５１〜５５６と、各トルクセンサ５４１〜５４６とを有して構成される。各位置センサ５５１〜５５６は、ロータリエンコーダである。各位置センサ５５１〜５５６は、各関節Ｊ１〜Ｊ６に設けられ、各電動モータ２１１〜２１６の回転軸の回転位置（角度）θ１〜θ６に応じた信号（エンコーダ信号）を、各モータ制御部５３１〜５３６及び手先状態演算部５１３に出力する。
【００２９】
各角度θ１〜θ６の情報を不図示の減速機の減速比で補正したものが、各関節Ｊ１〜Ｊ６の角度ｑ１〜ｑ６の情報となる。この演算、及びこの演算とは逆の演算、即ち関節の角度からモータの角度への演算は、ロボット制御装置３００のＣＰＵ３０１及びサーボ制御部２３０のうちいずれが行ってもよいが、本実施形態ではサーボ制御部２３０が行うものとする。なお、本実施形態では、各位置センサ５５１〜５５６が各電動モータの回転軸に設けられる場合について例示したが、これに限定するものではなく、各位置センサ５５１〜５５６が、例えば不図示の減速機の出力軸側に設けられていてもよい。この場合、各位置センサ５５１〜５５６は、直接、各関節Ｊ１〜Ｊ６の角度ｑ１〜ｑ６に応じた信号を出力することになるため、角度θ１〜θ６を角度ｑ１〜ｑ６に変換する演算は省略可能となる。
【００３０】
各トルクセンサ５４１〜５４６は、各関節Ｊ１〜Ｊ６に設けられ、各関節Ｊ１〜Ｊ６に生じるトルクτ１〜τ６に応じた信号（トルク信号）を、各モータ制御部５３１〜５３６及び手先状態演算部５１３に出力する。手先状態演算部５１３は、各トルクセンサ５４１〜５４６からの信号を、ロボットアーム２００に作用する力（手先力）Ｆの情報として取得する。具体的には、手先状態演算部５１３は、各トルクセンサ５４１〜５４６からの信号を、ロボットアーム２００に作用する力（手先力）Ｆの情報を求めるのに用いる。
【００３１】
教示ペンダント４００は、ロボットアーム２００の手先の位置の目標値である教示点を教示データ５０８に設定するのに用いる。教示点は、組立工程に合わせて複数存在する。教示点の一つは、例えば、重量物などのワークＷ（図１）を取得する位置の近傍に設定される。ロボットアーム２００の手先がこの教示点に移動するまでのロボットアーム２００の動作は、位置制御により行われる。
【００３２】
モード切換部５０２は、第１モードであるパワーアシスト動作モード（トルクベース力制御を行うモード）と、第２モードである再生動作モード（位置制御を行うモード）との２つのモードを有する。パワーアシスト動作モードは、トルクベース力制御でロボットアーム２００を制御して、ロボットアーム２００にパワーアシスト動作を行わせるモードである。再生動作モードは、教示データ５０８に従ってロボットアーム２００を動作させるモードである。モード切換部５０２は、いずれかのモードに切り換えるよう、図２に示すプログラム３３０に従ってロボットアーム２００の動作指示を生成する。
【００３３】
生成したロボットアーム２００の動作指示がトルクベース力制御（パワーアシスト動作モード）の場合は、力指令生成部５０３へ動作指示を送る。生成したロボットアーム２００の動作指示が位置制御（再生動作モード）の場合は、位置指令生成部５０４へ動作指示を送る。即ち、モード切換部５０２は、パワーアシスト動作モード又は再生動作モードを選択し、選択したモードでロボットアームを制御するように、力指令生成部５０３又は位置指令生成部５０４に、動作指示を送る。
【００３４】
力指令生成部５０３は、モード切換部５０２からの指示を受け、力制御部５１７へ力目標値Ｆｒｅｆを出力する。本実施形態では、ロボットアーム２００によりワークＷの搬送や組立時のパワーアシストを実現することを目的としている。このことから、力目標値Ｆｒｅｆは、パワーアシスト開始時、即ちロボットアーム２００にワークＷを保持させて行うインピーダンス制御開始時に、ロボットアーム２００の手先に作用している力（手先力）Ｆに設定する。これにより、ロボットアーム２００にワークＷを保持させた初期状態の手先力Ｆを力目標値Ｆｒｅｆとして力制御が実行される。つまり、ロボットアーム２００により、パワーアシストが実現されている状態となる。
【００３５】
本実施形態においては、インピーダンス制御として、トルクベース力制御を実行する。インピーダンス制御は、ロボットアーム２００に外力が印加されたときに生じる機械的なインピーダンスを目標値に近づけるための、ロボットの力制御手法の一つである。インピーダンス制御においては、ロボットアーム２００に印加された力によりロボットアーム２００の動作を制御するため、パワーアシストなどの人との協調作業をするのに適している。
【００３６】
インピーダンス制御が実行されている状態において、ワークＷの搬送や組立を行うためには、設定されたインピーダンスパラメータに応じた力を、ロボットアーム２００やロボットアーム２００に保持されたワークＷに印加すればよい。例えば、詳細は後述するが、インピーダンスパラメータの粘性パラメータ（粘性項）を低い値に設定した場合、ロボットアーム２００には外部から軽い力を印加することで、ロボットアーム２００を動作させることができる。このため、粘性パラメータを低い値に設定することは、ワークＷの搬送等に適した設定となる。
【００３７】
一方、インピーダンスパラメータの粘性パラメータを高い値に設定した場合、ロボットアーム２００を動作させるためには、相対的に大きな外力が必要となるが、ロボットアーム２００を安定的に動作させることができる。このため、粘性パラメータを高い値に設定することは、ワークＷの精密な位置決め、例えば組立等に適した設定となる。
【００３８】
位置指令生成部５０４は、モード切換部５０２からの指示により、教示データ５０８に基づき軌道データを生成し、軌道データの各点である位置目標値Ｐｒｅｆを位置制御部５１８へ送信する。
【００３９】
手先状態演算部５１３は、手先力演算部５１４と手先位置演算部５１５とを含む。手先状態演算部５１３は、外部記憶装置３２２からロボットモデル５１９を取得する。また、手先状態演算部５１３は、各トルクセンサ５４１〜５４６からの各トルクτ１〜τ６に応じた信号を、サーボ制御部２３０から取得する。また、手先状態演算部５１３は、各位置センサ５５１〜５５６からの角度θ１〜θ６を変換した角度ｑ１〜ｑ６を示す信号を、サーボ制御部２３０から取得する。
【００４０】
手先力演算部５１４は、トルクτ１〜τ６の情報と、ロボットモデル５１９とを用いて、ロボットアーム２００の手先力Ｆを求める。手先位置演算部５１５は、各関節の角度（位置）ｑ１〜ｑ６の情報と、ロボットモデル５１９とを用いて、ロボットの順運動学計算により、ロボットアーム２００の手先の現在位置Ｐを求める。手先状態演算部５１３は、ロボットアーム２００の手先力Ｆと現在位置Ｐとをインピーダンスパラメータ設定部５１６に出力する。
【００４１】
インピーダンスパラメータ設定部５１６は、手先状態演算部５１３から取得したロボットアーム２００の手先力Ｆと現在位置Ｐとを用いて、インピーダンス制御に係るインピーダンスパラメータを逐次演算し、力制御部５１７へ設定する。
【００４２】
以下、本実施形態におけるインピーダンスパラメータの演算方法について説明する。インピーダンスパラメータは、剛性パラメータ（剛性項）Ｋおよび粘性パラメータ（粘性項）Ｄを含んでいる。インピーダンスパラメータ設定部５１６は、インピーダンスパラメータのうち、粘性パラメータＤを逐次計算し、剛性パラメータＫは、一定値とする。各パラメータＫ、Ｄは、それぞれ機械インピーダンスの剛性値、粘性値を表わし、それぞれ６×６の行列である。
【００４３】
本実施形態において、インピーダンスパラメータ設定部５１６は、粘性パラメータＤを、以下の式（１）に従って演算する。
【数１】
2019214105.tif 000003
式（１）中、Ｖはロボットアーム２００の現在位置Ｐから求まる手先の速度の値で６×１の行列である。Ｖ０はロボットアーム２００の手先の速度の速度リミット値で６×１の行列である。αは比例係数で１×６の行列である。Ｄ０は粘性パラメータＤの初期設定値で６×６の行列である。式（１）は、変換データ５０９として、外部記憶装置３２２に格納されている。インピーダンスパラメータ設定部５１６は、現在位置Ｐの時間変化、即ち一階微分により、手先の速度Ｖを求める。そして、インピーダンスパラメータ設定部５１６は、式（１）に従って、手先の速度Ｖから粘性パラメータＤを求める。
【００４４】
手先の速度Ｖが速度リミット値Ｖ０に近づくに従って、粘性項Ｄは０に近づき速度が上がりやすい状態になる。そこで、式（１）に基づいて演算される粘性パラメータＤが０近傍、またはＤ＜０となる場合、粘性パラメータＤを固定値Ｄｆとして力制御部５１７へ出力する。なお、粘性パラメータＤを逐次演算する方法は、これに限らない。
【００４５】
力制御部５１７は、インピーダンスパラメータ設定部５１６からインピーダンスパラメータを取得する。力制御部５１７は、力指令生成部５０３から力目標値Ｆｒｅｆを取得する。力制御部５１７は、手先状態演算部５１３からロボットアーム２００の手先力Ｆと手先の現在位置Ｐの情報を取得する。力制御部５１７は、外部記憶装置３２２からロボットモデル５１９を取得する。
【００４６】
力制御部５１７は、取得したインピーダンスパラメータ、及び手先力Ｆを用いて、ロボットアーム２００をインピーダンス制御する。本実施形態では、力制御部５１７は、ロボットアーム２００の手先に所望の機械インピーダンス（剛性、粘性、力）を持たせる各関節Ｊ１〜Ｊ６のトルク指令値τＭｒｅｆ１〜τＭｒｅｆ６を、以下の式（２）に従って算出する。なお、本実施形態では、演算式を簡単化するため、慣性項（慣性パラメータ）は省略している。
【数２】
2019214105.tif 000004
式（２）中、Ｇは重力負荷トルクベクトルであり６×１の行列、Ｐ０はインピーダンス制御を開始したときのロボットアーム２００の手先の位置である。力制御部５１７は、重力負荷トルクベクトルＧを、ロボットモデル５１９と各関節Ｊ１〜Ｊ６の位置及び速度に基づいて、公知の動力学計算手法であるニュートン・オイラー法で計算する。なお、動力学計算方法はラグランジュの定式化による導出方法であってもよく、これに限らない。
【００４７】
Ｊａｃは、アーム本体２５１の各関節Ｊ１〜Ｊ６の速度と、アーム本体２５１の基端に固定された座標系Ｔｏ基準で表現されたアーム本体２５１の手先の速度とを関連付ける６×６のヤコビ行列である。式（２）中、ヤコビ行列Ｊａｃの添え字Ｔは、行列の転置を表わしている。
【００４８】
力制御部５１７は、式（２）により求めた各関節Ｊ１〜Ｊ６に対するトルク指令値τＭｒｅｆ１〜τＭｒｅｆ６を、サーボ制御部２３０に出力する。
【００４９】
位置制御部５１８は、手先の位置目標値Ｐｒｅｆとロボットモデル５１９を用いて、逆運動学計算により、各関節Ｊ１〜Ｊ６の角度指令値（位置指令値）ｑｒｅｆ１〜ｑｒｅｆ６を求め、各角度指令値ｑｒｅｆ１〜ｑｒｅｆ６をサーボ制御部２３０に出力する。
【００５０】
サーボ制御部２３０は、複数（本実施形態ではロボットアーム２００が６関節であるので６つ）のモータ制御部５３１〜５３６を有する。各モータ制御部５３１〜５３６は、各トルク指令値τＭｒｅｆ１〜τＭｒｅｆ６又は各角度指令値ｑｒｅｆ１〜ｑｒｅｆ６を取得する。
【００５１】
各モータ制御部５３１〜５３６が、各トルク指令値τＭｒｅｆ１〜τＭｒｅｆ６を取得した場合について説明する。各モータ制御部５３１〜５３６は、各トルク値τ１〜τ６と各トルク指令値τＭｒｅｆ１〜τＭｒｅｆ６とのトルク偏差が小さくなるよう各電流Ｃｕｒ１〜Ｃｕｒ６を各電動モータ２１１〜２１６に通電する。
【００５２】
各モータ制御部５３１〜５３６が各角度指令値ｑｒｅｆ１〜ｑｒｅｆ６を取得した場合について説明する。各モータ制御部５３１〜５３６は、各角度指令値ｑｒｅｆ１〜ｑｒｅｆ６を、各電動モータ２１１〜２１６の目標である各角度指令値θｒｅｆ１〜θｒｅｆ６（不図示）に変換する。各モータ制御部５３１〜５３６は、各角度θ１〜θ６と各角度指令値θｒｅｆ１〜θｒｅｆ６との角度偏差が小さくなるよう各電流Ｃｕｒ１〜Ｃｕｒ６を各電動モータ２１１〜２１６に通電する。各電動モータ２１１〜２１６は、通電されることにより、各関節Ｊ１〜Ｊ６（リンク）を駆動する。
【００５３】
次に、ロボットアーム２００のトルクベース力制御、即ちインピーダンス制御について説明する。図４は、第１実施形態におけるロボットアーム２００をインピーダンス制御してロボットアーム２００をパワーアシスト動作させる制御方法を示すフローチャートである。
【００５４】
まず、ＣＰＵ３０１は、インピーダンス制御開始時のロボットアーム２００の手先力Ｆを、力目標値Ｆｒｅｆに設定する（Ｓ１）。
【００５５】
操作者は、ロボットアーム２００を操作する（Ｓ２）。
【００５６】
ＣＰＵ３０１（力制御部５１７）は、手先力Ｆと力目標値Ｆｒｅｆとの偏差が小さくなるよう、インピーダンス制御を行い、各電動モータ２１１〜２１６に対するトルク指令値τＭｒｅｆ１〜τＭｒｅｆ６を算出する（Ｓ３）。
【００５７】
各モータ制御部５３１〜５３６は、各電動モータ２１１〜２１６の角度θ１〜θ６に基づいて、各トルク指令値τＭｒｅｆ１〜τＭｒｅｆ６を実現するよう通電制御する（Ｓ４）。
【００５８】
各電動モータ２１１〜２１６は、通電されることにより各関節Ｊ１〜Ｊ６に各トルクτ１〜τ６を発生させる（Ｓ５）。
【００５９】
各位置センサ５５１〜５５６は、各関節Ｊ１〜Ｊ６の各電動モータ２１１〜２１６の角度θ１〜θ６を検出する。各トルクセンサ５４１〜５４６は、各関節Ｊ１〜Ｊ６のトルクτ１〜τ６を検出する（Ｓ６）。サーボ制御部２３０は、各関節Ｊ１〜Ｊ６の各角度ｑ１〜ｑ６及び各関節Ｊ１〜Ｊ６の各トルクτ１〜τ６を、ロボット制御装置３００のＣＰＵ３０１にフィードバックする。
【００６０】
ＣＰＵ３０１（手先状態演算部５１３）は、ロボットモデル５１９、各関節Ｊ１〜Ｊ６の角度ｑ１〜ｑ６及び各関節Ｊ１〜Ｊ６のトルクτ１〜τ６に基づき、ロボットアーム２００の手先の現在位置Ｐと手先力Ｆを演算する（Ｓ７）。即ち、ＣＰＵ３０１は、関節Ｊ１〜Ｊ６のトルクτ１〜τ６を手先力Ｆに変換する。
【００６１】
ＣＰＵ３０１（インピーダンスパラメータ設定部５１６）は、ロボットアーム２００の手先の現在位置Ｐから、ロボットアーム２００の動作に応じたインピーダンスパラメータを逐次演算する（Ｓ８）。駆動が終了していない間（Ｓ９：Ｎｏ）は、ステップＳ２〜Ｓ８を繰り返し、駆動が終了したら（Ｓ９：Ｙｅｓ）、ＣＰＵ３０１は、インピーダンス制御を終了する。なお、図４に示すフローチャートの順番に限定するものではなく、他の順番でもトルクベース力制御は可能である。
【００６２】
上記フローに従って各電動モータ２１１〜２１６を駆動制御することで、ロボットアーム２００の手先力Ｆが所望の力目標値Ｆｒｅｆに倣うようにロボットアーム２００を制御する。
【００６３】
本実施形態では、インピーダンスパラメータ設定部５１６は、インピーダンスパラメータのうち、粘性パラメータＤを、操作者のロボットアーム２００の手先の速度Ｖに応じて自動的に調整する。図５（ａ）は、ロボットアーム２００の手先の速度Ｖと粘性パラメータＤとの関係の例を模式的に示すグラフである。
【００６４】
インピーダンスパラメータ設定部５１６は、図５（ａ）に示すように、ロボットアーム２００の手先の速度Ｖが第１速度Ｖ１では、粘性パラメータＤを第１粘性値Ｄ１に調整する。インピーダンスパラメータ設定部５１６は、ロボットアーム２００の手先の速度Ｖが第１速度Ｖ１よりも遅い第２速度Ｖ２では、粘性パラメータＤを第１粘性値Ｄ１よりも高い第２粘性値Ｄ２に調整する。上述の式（１）により粘性パラメータＤを求めると、粘性パラメータＤは、図５（ａ）に示すように、速度Ｖの増加に対して直線的に減少する。本実施形態では、インピーダンスパラメータ設定部５１６は、速度Ｖが０であるときの粘性値を基準とし、速度Ｖが速くなるほど、粘性パラメータＤを基準に対して低くする。ここで、上述したように、インピーダンスパラメータ設定部５１６は、粘性パラメータＤの下限を固定値Ｄｆ（＞０）とし、粘性パラメータＤが固定値Ｄｆを下回らないように粘性パラメータＤを調整する。
【００６５】
なお、粘性パラメータＤを求めるにあたって、式（１）を用いる場合について説明したが、これに限定するものではない。例えば、予め速度Ｖと粘性パラメータＤとを対応付けたテーブルデータを作成しておき、インピーダンスパラメータ設定部５１６が、テーブルデータに基づき、手先の速度Ｖに対応する粘性パラメータＤを求めるようにしてもよい。
【００６６】
数式データやテーブルデータなどの変換データ５０９は、外部記憶装置３２２等の記憶部に予め記憶させておけばよい。したがって、ユーザはこの変換データ５０９を作成しなくてもよい。もちろん、変換データ５０９をユーザが作成又は編集できるようにしておいてもよい。
【００６７】
以上の説明では、粘性パラメータＤが図５（ａ）に示すように速度Ｖの増加に対して直線的に減少する場合について説明したが、これに限定するものではない。図５（ｂ）及び図５（ｃ）は、ロボットアーム２００の手先の速度Ｖと粘性パラメータＤとの関係の他の例を模式的に示すグラフである。粘性パラメータＤが、図５（ｂ）に示すように、速度Ｖの増加に対して曲線的に減少するようにしてもよいし、図５（ｃ）に示すように、速度Ｖの増加に対して不連続的（ステップ状）に減少するようにしてもよい。
【００６８】
以上のように、本実施形態では、インピーダンスパラメータ設定部５１６は、ロボットアーム２００の手先の速度Ｖに応じて、インピーダンスパラメータの粘性パラメータＤを逐次演算する。粘性パラメータＤは、手先の速度Ｖが遅いほど、初期に設定した粘性値（速度０としたときの粘性値）に近い値となり、一方、手先の速度Ｖが速いほど、初期に設定した粘性値に対して十分に小さい値となる。
【００６９】
図６は、第１実施形態におけるロボットアームの手先の位置及び速度と、粘性パラメータとの関係を説明するための図である。図６においては、ロボットアーム２００に保持させたワークＷの搬送や組立を、インピーダンス制御を用いて行う際に、粘性パラメータＤの調整の仕方について図示している。なお、図６には、ロボットアーム２００の手先の並進方向のＸ軸方向、Ｙ軸方向、Ｚ軸方向に対する位置および姿勢（Ｐｘ、Ｐｙ、Ｐｚ、θｘ、θｙ、θｚ）のうち、代表として、Ｘ軸成分についてのみ図示する。即ち、図６には、ロボットアーム２００の手先のＸ軸方向における位置Ｐｘ及び速度Ｖｘ、並びに粘性パラメータＤにおけるＸ軸成分である粘性パラメータＤｘについて図示している。
【００７０】
図６に示す区間Ａは、ワークＷを搬送する区間である。区間Ａは、手先の位置Ｐｘの変位量が大きく、速度Ｖｘも速い。このように、搬送作業などの動作精度が求められない動作のときは、ユーザはロボットアーム２００を速く動作させる傾向がある。このとき、粘性パラメータＤｘは、速度Ｖｘが最も速くなる位置では、初期値として設定した値（１［Ｎｓ／ｍ］）に対して、３０分の１程度の０．０３［Ｎｓ／ｍ］にまで減少している。このように、速度Ｖｘが速いほど粘性パラメータＤｘが低くなるため、ユーザはロボットアーム２００を軽い力で動作させることが可能となる。
【００７１】
図６に示す区間Ｂは、ロボットアーム２００の手先がＸ軸方向に対して停止している区間である。手先の速度Ｖｘの変化がゼロなので、粘性パラメータＤｘは高い状態（１［Ｎｓ／ｍ］）となっている。よって、Ｘ軸方向以外の方向にロボットアーム２００の手先が動作している場合であっても、Ｘ軸方向に関しては、ロボットアーム２００は安定な状態となっている。
【００７２】
図６に示す区間Ｃは、ワークＷを組み付ける区間である。区間Ｃでは、手先の移動量が小さく、手先の速度Ｖｘが遅い。組み付け作業などの精密作業においては、動作精度が求められており、このときは、ユーザはロボットアーム２００をゆっくり動作させる傾向がある。
【００７３】
よって、本実施形態では、粘性パラメータＤｘを、区間Ｃにおいて速度Ｖｘが最も速くなる位置においても、初期値として設定した値（１［Ｎｓ／ｍ］）に対して、９０％程度の０．９［Ｎｓ／ｍ］にまでしか変化していない。このことより、ユーザが手先の速度Ｖｘを遅くなるようロボットアーム２００を動作させているときには、ロボットアーム２００を動作させる粘性が高まり、ロボットアーム２００を安定して動作させることが可能となる。よって、ユーザは、ロボットアーム２００の手先を精密に位置決めすることができる。
【００７４】
以上の説明では、ロボットアーム２００の手先のＸ軸における位置Ｐｘについて説明したが、他の方向成分についても同様である。即ち、ロボットアーム２００の動作に応じて、ロボットアーム２００の手先のＸ軸、Ｙ軸、Ｚ軸の位置および姿勢（Ｐｘ、Ｐｙ、Ｐｚ、θｘ、θｙ、θｚ）について、同様にインピーダンスパラメータを演算することができる。そのため、動作方向に関しては、動作速度に応じた粘性パラメータが演算されるため、適切なアシスト力を得ることができる。一方、動作させていない方向に関しては、動作速度が変化しないため粘性パラメータは高い状態であり、安定した状態である。つまり、動作方向にのみ適切なアシスト力が発生し、非動作方向に関しては安定な状態を保持するような、インピーダンス制御を実現することができる。
【００７５】
以上、第１実施形態によれば、ユーザが事前に、手先の位置とインピーダンスパラメータとを対応付けたマップを作成するような煩雑な作業を行う必要がなくなり、ユーザの負担が低減される。これにより、製造工程の変更に柔軟に対応することができる。そして、ワークＷの搬送時のように手先の速度Ｖが速いときには、ロボットアーム２００を小さな力で操作することが可能となる。また、ワークＷを位置決めする時のように手先の速度Ｖが遅いときには、ロボットアーム２００の手先の振動を抑制することができ、ロボットアーム２００の手先の精密な位置決めが可能となる。このように、ロボットアーム２００にパワーアシスト動作を行わせる際には、ロボットアーム２００の操作性を向上させることができる。
【００７６】
また、上述の説明では、式（１）に示すように、手先の速度の演算値に比例係数を乗算しているが、一般的なＰＩＤ制御のように、比例・積分・微分を組み合わせて演算してもよい。
【００７７】
また、手先の速度に応じて、粘性パラメータを調整する場合について説明したが、これに限定するものではない。インピーダンスパラメータは、粘性パラメータ、慣性パラメータ及び剛性パラメータを含んでいるが、インピーダンスパラメータ設定部５１６は、これらインピーダンスパラメータのうち、更に慣性パラメータ及び／又は剛性パラメータを調整してもよい。これにより、ロボットアームの操作性が更に向上する。
【００７８】
［第２実施形態］
次に、本発明の第２実施形態について説明する。以下、第２実施形態を説明するにあたり、第１実施形態と実質的に同一の機能を有する構成に関しては、同一の記号を付与し、説明を省略する。また、第２実施形態における粘性パラメータの求め方も第１実施形態と同様であるため、説明を省略する。
【００７９】
第１実施形態においては、各関節に設けられたトルクセンサ５４１〜５４６を用いて、インピーダンス制御を実行した。第２実施形態では、トルクセンサ５４１〜５４６に代わって、ロボットアーム２００の手先（例えばハンド２５２）に搭載した力センサを用いてインピーダンス制御を実行する。即ち、第１実施形態では、インピーダンス制御としてトルクベース力制御を行う場合について説明したが、第２実施形態では、インピーダンス制御として位置ベース力制御を行う場合について説明する。
【００８０】
図７は、第２実施形態におけるロボットの制御系を示す制御ブロック図である。第１実施形態との差異について説明する。力センサ２５３は、ハンド２５２にかかるＸ軸、Ｙ軸、Ｚ軸の各軸の力（並進力）と、各軸まわりのモーメント（回転力）を検出する。即ち、力センサ２５３は、ロボットアーム２００の手先に作用する力（手先力）Ｆに応じた信号を、手先状態演算部５１３へ出力する。これにより、手先状態演算部５１３は、ロボットアーム２００に作用する力（手先力）Ｆの情報として、ロボットアーム２００の手先に設けられた力センサ２５３からの信号を取得する。手先状態演算部５１３、具体的には手先力演算部５１４は、力センサ２５３からの信号に基づき手先力Ｆを求める。手先位置演算部５１５は、第１実施形態と同様、ロボットアーム２００の手先の現在位置Ｐを求める。
【００８１】
インピーダンスパラメータ設定部５１６は、手先状態演算部５１３から出力されるロボットアーム２００の手先の現在位置Ｐから、位置ベース力制御によるインピーダンス制御に係るインピーダンスパラメータを逐次演算し、力制御部５１７へ出力する。力制御部５１７は、手先力Ｆ及びインピーダンスパラメータを用いてロボットアーム２００の手先の位置目標値Ｐｒｅｆを求め、位置制御部５１８へ出力する。位置制御部５１８は、力制御部５１７から得た手先の位置目標値Ｐｒｅｆに基づいたインピーダンス制御を行う。
【００８２】
以上、第２実施形態によれば、第１実施形態と同様、ユーザが事前に、手先の位置とインピーダンスパラメータとを対応付けたマップを作成するような煩雑な作業を行う必要がなくなり、ユーザの負担が低減される。これにより、製造工程の変更に柔軟に対応することができる。そして、ワークＷの搬送時のように手先の速度Ｖが速いときには、ロボットアーム２００を小さな力で操作することが可能となる。また、ワークＷを位置決めする時のように手先の速度Ｖが遅いときには、ロボットアーム２００の手先の振動を抑制することができ、ロボットアーム２００の手先の精密な位置決めが可能となる。このように、ロボットアーム２００にパワーアシスト動作を行わせる際には、ロボットアーム２００の操作性を向上させることができる。
【００８３】
本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【００８４】
上述の実施形態では、ロボットアーム２００が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
【００８５】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８６】
１００…ロボット、２００…ロボットアーム、３００…ロボット制御装置、３０１…ＣＰＵ（制御部）
【図１】
2019214105.tif 000005
【図２】
2019214105.tif 000006
【図３】
2019214105.tif 000007
【図４】
2019214105.tif 000008
【図５】
2019214105.tif 000009
【図６】
2019214105.tif 000010
【図７】
2019214105.tif 000011