(57)【要約】      （修正有）【課題】ロボットアームの作業端の軌跡精度を向上させる制御方法を提供する。【解決手段】第１モータ１１に対する第１動作目標及び第１モータの出力軸の実動作との偏差に基づき第１モータに供給する第１電流値を算出し、且つ第１電流値に基づき第１モータに電流を供給し第１モータの出力軸の動作を制御する第１関節制御部２１と、第２モータ１６に対する第２動作目標及び第２モータの出力軸の実動作との偏差に基づき第２モータに供給する第２電流値を算出し、且つ第２電流値に基づき第２モータに電流を供給し第２モータの出力軸の動作を制御する第２関節制御部２６と、第１電流値及び第１モータの出力軸の実動作に基づいてロボットアーム４の撓み及び／又は捩れに起因する第２関節８の動作の誤差を推定する誤差推定部２８と、を備え、第２関節制御部は、第２関節の角度誤差を補償して第２モータの出力軸の回転角を制御するように第２電流値を算出する。【選択図】図２
2019005821.tif 000002
【特許請求の範囲】
【請求項１】
第１関節及び第２関節を含む複数の関節を含むロボットアームと、
出力軸が前記第１関節に接続され、前記第１関節を回動させる第１モータを有する第１関節駆動部と、
前記第１モータの前記出力軸の実動作の情報を取得する第１検知部と、
上位装置から入力された前記第１モータに対する第１動作目標及び前記第１モータの前記出力軸の前記実動作との偏差に基づき前記第１モータに供給する第１電流値を算出し、且つ該第１電流値に基づき前記第１モータに電流を供給し前記第１モータの前記出力軸の動作を制御する第１関節制御部と、
出力軸が前記第２関節に接続され、前記第２関節を回動させる第２モータを有する第２関節駆動部と、
前記第２モータの前記出力軸の実動作の情報を取得する第２検知部と、
前記上位装置から入力された前記第２モータに対する第２動作目標及び前記第２モータの前記出力軸の前記実動作との偏差に基づき前記第２モータに供給する第２電流値を算出し、且つ該第２電流値に基づき前記第２モータに電流を供給し前記第２モータの前記出力軸の動作を制御する第２関節制御部と、
前記第１電流値及び前記第１モータの前記出力軸の前記実動作に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定する誤差推定部と、を備え、
前記第２関節制御部は、前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を補償して前記第２モータの前記出力軸の動作を制御するように前記第２電流値を算出する、ロボットシステム。
【請求項２】
前記第１検知部が取得する前記実動作の情報は、前記第１モータの前記出力軸の角度位置、角速度、角加速度の少なくとも何れかであり、
前記第１動作目標は、前記第１モータに対する位置指令、速度指令、加速度指令の少なくとも何れかであり、
前記第１動作目標及び前記第１モータの前記出力軸の前記実動作との前記偏差は、位置偏差、速度偏差、加速度偏差の少なくとも何れかであり、
前記第２検知部が取得する前記実動作の情報は、前記第２モータの前記出力軸の角度位置、角速度、角加速度の少なくとも何れかであり、
前記第２動作目標は、前記第２モータに対する位置指令、速度指令、加速度指令の少なくとも何れかであり、
前記第２動作目標及び前記第２モータの前記出力軸の前記実動作との前記偏差は、位置偏差、速度偏差、加速度偏差の少なくとも何れかであり、
前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差は、角度誤差、角度速度誤差、角加速度誤差の少なくとも何れかである、請求項１に記載のロボットシステム。
【請求項３】
前記誤差推定部は、前記ロボットアームの撓み及び／又は捩れに起因する前記第１関節及び前記第２関節を含む系の連成振動の複数の固有振動数のうち固有振動数が小さい１の固有振動数に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定する、請求項１又は２に記載のロボットシステム。
【請求項４】
前記第２関節駆動部は、入力軸が前記第２モータの前記出力軸に接続され且つ出力軸が前記第２関節に接続された減速機を更に含み、前記第２モータが該減速機を介して前記第２関節を回動させ、
前記第２モータの前記出力軸の回転角と前記減速機の前記出力軸の回転角との間の角度伝達誤差を推定する角度伝達誤差推定部を更に備え、
前記第２関節制御部は、前記角度伝達誤差と前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差とを補償して前記第２モータの前記出力軸の動作を制御するように前記第２電流値を算出する、請求項１乃至３の何れか１に記載のロボットシステム。
【請求項５】
前記誤差推定部は、前記第１電流値及び前記第１モータの前記出力軸の前記実動作に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定する第１誤差推定部と、前記第２電流値及び前記第２モータの前記出力軸の前記実動作に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定する第２誤差推定部とを有し、
前記第２関節制御部は、前記角度伝達誤差と前記第１誤差推定部が推定した前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差とを補償して前記第２モータの前記出力軸の動作を制御するように前記第２電流値を算出する第１モードと、前記第２誤差推定部が推定した前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を補償して前記第２モータの前記出力軸の動作を制御するように前記第２電流値を算出する第２モードとを有し、
前記第２関節制御部に指示して前記第１モードと前記第２モードとを切り替える動作モード切替部を更に有する、請求項４に記載のロボットシステム。
【請求項６】
前記動作モード切替部は、前記ロボットアームの作業端の動作速度が所定の速度以下になると前記第１モードに切り替える、請求項５に記載のロボットシステム。
【請求項７】
第１関節及び第２関節を含む複数の関節を含むロボットアームと、
出力軸が前記第１関節に接続され、前記第１関節を回動させる第１モータを有する第１関節駆動部と、
前記第１モータの前記出力軸の実動作の情報を取得する第１検知部と、
前記第１モータの前記出力軸の動作を制御する第１関節制御部と、
出力軸が前記第２関節に接続され、前記第２関節を回動させる第２モータを有する第２関節駆動部と、
前記第２モータの前記出力軸の実回転角を検出するための事象を検知する第２検知部と、
前記第２モータの前記出力軸の動作を制御する第２関節制御部と、を備えるロボットシステムの制御方法であって、
上位装置から入力された前記第１モータに対する第１動作目標と前記第１モータの前記出力軸の前記実動作との偏差に基づき前記第１モータに供給する第１電流値を算出するステップと、
前記第１電流値及び前記第１モータの前記出力軸の前記実動作に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定するステップと、
前記上位装置から入力された前記第２モータに対する第２動作目標及び前記第２モータの前記出力軸の前記実動作との偏差に基づき前記第２モータに供給する第２電流値を算出し、且つ前記第２関節の動作の誤差を補償して前記第２モータの前記出力軸の回転角を制御するように前記第２電流値を算出するステップと、
前記第２電流値に基づき前記第２モータに電流を供給するステップと、を有する、ロボットシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム及びロボットシステムの制御方法に関する。
【背景技術】
【０００２】
従来からロボットアーム先端の振動抑制効果を高めることができるロボット制御装置が知られている（例えば特許文献１参照）。
【０００３】
このロボット制御装置は、弾性機構を有するロボットアームを制御対象とし、モータの角速度を比例積分制御してモータへ電流指令値を出力する角速度制御系を有し、ロボットアームの非線形動力学モデルを有し、モータの角度速度と電流指令値を入力とし、軸ねじり角速度、リンクの角加速度を推定するオブザーバと、オブザーバによって推定されたリンクの角速度とモータの角速度との差から軸ねじり角速度を算出し、角速度制御系にフィードバックする状態フィードバック部を有する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−３００７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載のロボット制御装置は、推定対象関節に含まれるモータの角度速度とモータに対する電流指令値に基づいて、推定対象関節の軸ねじり角速度を推定しているため、モータに対する電流指令値に他の補償要素が含まれているときは、軸ねじり角速度を推定できない場合があった。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明のある態様に係るロボットシステムは、第１関節及び第２関節を含む複数の関節を含むロボットアームと、出力軸が前記第１関節に接続され、前記第１関節を回動させる第１モータを有する第１関節駆動部と、前記第１モータの前記出力軸の実動作の情報を取得する第１検知部と、上位装置から入力された前記第１モータに対する第１動作目標及び前記第１モータの前記出力軸の前記実動作との偏差に基づき前記第１モータに供給する第１電流値を算出し、且つ該第１電流値に基づき前記第１モータに電流を供給し前記第１モータの前記出力軸の動作を制御する第１関節制御部と、出力軸が前記第２関節に接続され、前記第２関節を回動させる第２モータを有する第２関節駆動部と、前記第２モータの前記出力軸の実動作の情報を取得する第２検知部と、前記上位装置から入力された前記第２モータに対する第２動作目標及び前記第２モータの前記出力軸の前記実動作との偏差に基づき前記第２モータに供給する第２電流値を算出し、且つ該第２電流値に基づき前記第２モータに電流を供給し前記第２モータの前記出力軸の動作を制御する第２関節制御部と、前記第１電流値及び前記第１モータの前記出力軸の前記実動作に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定する誤差推定部と、を備え、前記第２関節制御部は、前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を補償して前記第２モータの前記出力軸の動作を制御するように前記第２電流値を算出する。
【０００７】
この構成によれば、ロボットアームの撓み及び／又は捩れに起因する第２関節の動作の誤差の補償を行う制御が、他の制御と干渉することを防ぐことができる。これによって、ロボットアームの振動を効果的に抑制することができ、ロボットアームの作業端の軌跡精度を向上させることができる。
【０００８】
前記第１検知部が取得する前記実動作の情報は、前記第１モータの前記出力軸の角度位置、角速度、角加速度の少なくとも何れかであり、前記第１動作目標は、前記第１モータに対する位置指令、速度指令、加速度指令の少なくとも何れかであり、前記第１動作目標及び前記第１モータの前記出力軸の前記実動作との前記偏差は、位置偏差、速度偏差、加速度偏差の少なくとも何れかであり、前記第２検知部が取得する前記実動作の情報は、前記第２モータの前記出力軸の角度位置、角速度、角加速度の少なくとも何れかであり、前記第２動作目標は、前記第２モータに対する位置指令、速度指令、加速度指令の少なくとも何れかであり、前記第２動作目標及び前記第２モータの前記出力軸の前記実動作との前記偏差は、位置偏差、速度偏差、加速度偏差の少なくとも何れかであり、前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差は、角度誤差、角度速度誤差、角加速度誤差の少なくとも何れかであってもよい。
【０００９】
この構成によれば、ロボットアームの撓み及び／又は捩れに起因する第２関節の動作の誤差を適切に補償することができる。
【００１０】
前記誤差推定部は、前記ロボットアームの撓み及び／又は捩れに起因する前記第１関節及び前記第２関節を含む系の連成振動の複数の固有振動数のうち固有振動数が小さい１の固有振動数に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定してもよい。
【００１１】
この構成によれば、ロボットアームの撓み及び／又は捩れに起因するロボットアームの振動を適切に抑制することができる。
【００１２】
前記第２関節駆動部は、入力軸が前記第２モータの前記出力軸に接続され且つ出力軸が前記第２関節に接続された減速機を更に含み、前記第２モータが該減速機を介して前記第２関節を回動させ、前記第２モータの前記出力軸の回転角と前記減速機の前記出力軸の回転角との間の角度伝達誤差を推定する角度伝達誤差推定部を更に備え、前記第２関節制御部は、前記角度伝達誤差と前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差とを補償して前記第２モータの前記出力軸の動作を制御するように前記第２電流値を算出してもよい。
【００１３】
この構成によれば、角度伝達誤差補償と、ロボットアームの撓み及び／又は捩れに起因する動作の誤差の補償との干渉を防止することができる。これによって、両補償を併用することができ、ロボットアームの振動を効果的に抑制することができる。
【００１４】
前記誤差推定部は、前記第１電流値及び前記第１モータの前記出力軸の前記実動作に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定する第１誤差推定部と、前記第２電流値及び前記第２モータの前記出力軸の前記実動作に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定する第２誤差推定部とを有し、前記第２関節制御部は前記角度伝達誤差と前記第１誤差推定部が推定した前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差とを補償して前記第２モータの前記出力軸の動作を制御するように前記第２電流値を算出する第１モードと、前記第２誤差推定部が推定した前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を補償して前記第２モータの前記出力軸の動作を制御するように前記第２電流値を算出する第２モードとを有し、前記第２関節制御部に指示して前記第１モードと前記第２モードとを切り替える動作モード切替部を更に有していてもよい。
【００１５】
この構成によれば、条件に応じて適切にモードを切り替えることにより、ロボットアームの振動を適切に抑制することができる。
【００１６】
前記動作モード切替部は、前記ロボットアームの作業端の動作速度が所定の速度以下になると前記第１モードに切り替えてもよい。
【００１７】
この構成によれば、精度の要求される作業を実行するときに角度伝達誤差の影響を低減することができる。
【００１８】
上記課題を解決するため、本発明のある態様に係るロボットシステムの制御方法は、第１関節及び第２関節を含む複数の関節を含むロボットアームと、出力軸が前記第１関節に接続され、前記第１関節を回動させる第１モータを有する第１関節駆動部と、前記第１モータの前記出力軸の実動作の情報を取得する第１検知部と、前記第１モータの前記出力軸の動作を制御する第１関節制御部と、出力軸が前記第２関節に接続され、前記第２関節を回動させる第２モータを有する第２関節駆動部と、前記第２モータの前記出力軸の実回転角を検出するための事象を検知する第２検知部と、前記第２モータの前記出力軸の動作を制御する第２関節制御部と、を備えるロボットシステムの制御方法であって、上位装置から入力された前記第１モータに対する第１動作目標と前記第１モータの前記出力軸の前記実動作との偏差に基づき前記第１モータに供給する第１電流値を算出するステップと、前記第１電流値及び前記第１モータの前記出力軸の前記実動作に基づいて前記ロボットアームの撓み及び／又は捩れに起因する前記第２関節の動作の誤差を推定するステップと、前記上位装置から入力された前記第２モータに対する第２動作目標及び前記第２モータの前記出力軸の前記実動作との偏差に基づき前記第２モータに供給する第２電流値を算出し、且つ前記第２関節の動作の誤差を補償して前記第２モータの前記出力軸の回転角を制御するように前記第２電流値を算出するステップと、前記第２電流値に基づき前記第２モータに電流を供給するステップと、を有する。
【００１９】
この構成によれば、ロボットアームの撓み及び／又は捩れに起因する第２関節の動作の誤差の補償を行う制御が、他の制御と干渉することを防ぐことができる。これによって、ロボットアームの振動を効果的に抑制することができ、ロボットアームの作業端の軌跡精度を向上させることができる。
【発明の効果】
【００２０】
本発明は、ロボットアームの作業端の軌跡精度を向上させることという効果を奏する。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態１に係るロボットシステムの構成例を概略的に示す図である。
【図２】図１のロボットシステムの制御系統の構成例を概略的に示すブロック図である。
【図３】角度伝達誤差の説明図である。
【図４】本発明の実施の形態２に係るロボットシステムの制御系統の構成例を概略的に示すブロック図である。
【図５】図４のロボットシステムの動作モード切替部の動作例を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下の実施の形態によって本発明が限定されるものではない。また、以下では、全ての図を通じて、同一又は相当する要素には同一の参照符号を付して、その重複する説明を省略する。
【００２３】
（実施の形態１）
図１は、本発明の実施の形態１に係るロボットシステム１００の構成例を概略的に示す図である。
【００２４】
図１に示すように、ロボットシステム１００は、ロボット１と、制御部２と、指令部３とを備える。
【００２５】
［ロボットの構成例］
ロボット１は、多関節型ロボットの産業用ロボット（多関節ロボット）である。
【００２６】
ロボット１は、基部３０と、ロボットアーム４と、ハンド５とを含む。基部３０は、例えば床面に固定されて載置され、ロボットアーム４及びハンド５を支持している。
【００２７】
ロボットアーム４は、複数の関節を有し、基端部が基部３０に対して回動可能に連結されている。ロボットアーム４の関節は、複数の関節が基端部から先端部に向かって一列に連なっている。ロボットアーム４の複数の関節のうち、１の関節が第１関節７（例えば第２軸）を構成し、第１関節７と異なる別の１の関節（例えば第３軸）が第２関節８を構成する。第１関節７と第２関節８とは、互いに干渉する姿勢に位置させることができるように構成されている。第１関節７と第２関節８とが互いに干渉する姿勢とは、式（１）に係る動力学方程式の慣性行列の相互慣性係数が大きい姿勢をいう。
【００２８】
【数１】
2019005821.tif 000003
【００２９】
図２は、図１のロボットシステム１００の制御系統の構成例を概略的に示すブロック図である。なお、図２においては、第１関節７及び第２関節８以外の関節の図示を省略している。
【００３０】
図２に示すように、ロボットアーム４の各関節は、関節を駆動する駆動部を有する。各駆動部は、出力軸が対応する関節（回動軸）に接続された減速機と、出力軸が減速機の入力軸に接続され、減速機を介して対応する関節を回動させる駆動源であるサーボモータと、サーボモータの出力軸の回転角を検知するエンコーダとを有する。このように、サーボモータの出力軸は、減速機を介して対応する関節に接続されている。また、エンコーダは、サーボモータの出力軸の実動作の情報を取得する。本実施の形態においては、エンコーダはサーボモータの出力軸の角度位置を検知し、これに基づいて、サーボモータの出力軸の実回転角を検出する。本実施の形態において、第２関節８の減速機、すなわち第２減速機１８は、例えば波動歯車装置（ハーモニックドライブ（登録商標））である。また、第１関節７の減速機は、例えば波動歯車装置に比べて角度伝達誤差が少ない減速機である。
【００３１】
以下、説明の便宜上、第１関節７を駆動するサーボモータ、減速機、及びエンコーダをそれぞれ第１モータ１１、第１減速機１３、及び第１エンコーダ（第１検知部）１２といい、これらが第１関節駆動部９を構成する。また、第２関節８を駆動するサーボモータ、減速機、及びエンコーダをそれぞれ第２モータ１６、第２減速機１８、及び第２エンコーダ（第２検知部）１７といい、これらが第２関節駆動部１０を構成する。なお、本実施の形態において回転角とは、角度位置を意味するがこれに限定されない。角度位置の時間微分値、すなわち角速度や、角加速度であってももよい。
【００３２】
第２減速機１８に係る波動歯車装置は、サーキュラスプラインと、フレクスプラインと、ウェーブジェネレータとを備える。サーキュラスプラインは、剛性の内歯歯車であり、例えば筐体と一体的に設けられる。フレクスプラインは、可撓性を有する外歯歯車であり、サーキュラスプラインと歯合する。フレクスプラインは、サーキュラスプラインよりも歯数が少なく、出力軸１８ｂと接続される。ウェーブジェネレータは、フレクスプラインの内側に接触する楕円状のカムであり、入力軸１８ａと接続されている。そして、入力軸を回転させることによって、ウェーブジェネレータがフレクスプラインとサーキュラスプラインとの噛み合い位置を移動させ、サーキュラスプラインとフレクスプラインの歯数差に応じてフレクスプラインが回転軸周りに回転し、出力軸が回転する。波動歯車装置は、小型・軽量、高減速比、高トルク容量、ノンバックラッシ等の特徴からロボットの駆動機構の減速機に適した特性を有する。
【００３３】
ところで、図３に示すように、波動歯車装置などの減速機には、加工誤差等により、減速機に入力される入力回転角に減速比を乗じた理論上の出力回転角と、実際の出力回転角との差である角度伝達誤差が生じる。この角度伝達誤差は、入力軸の回転に伴って周期的な変化として表れる。このような減速機出力軸の角度伝達誤差ATEは、以下の式（２）に係る関数を用いたモデルによって近似的に表現することが可能である。
【００３４】
【数２】
2019005821.tif 000004
【００３５】
図１に示すように、ハンド５は、物品の保持等の所定の動作を行うことができるように構成され、ロボットアーム４の先端部に取り付けられている。
【００３６】
［制御部の構成例］
図２に示すように、制御部２は、各関節を制御し、例えばマイクロコントローラ、ＣＰＵ、ＡＳＩＣ、ＦＰＧＡ等のプログラマブルロジックデバイス（ＰＬＤ）などの演算器を含む。演算器は、集中制御する単独の演算器で構成されていてもよく、互いに協働して分散制御する複数の演算器で構成されてもよい。制御部２は、第１関節制御部２１と、第２関節制御部２６と、誤差推定部２２と、角度伝達誤差推定部２８とを含む。第１関節制御部２１、第２関節制御部２６、誤差推定部２２、及び角度伝達誤差推定部２８は、所定の制御プログラムを図示しない演算部が実行することにより実現される機能ブロックである。なお、制御部２は、指令部３と別体の演算器で構成されているが、一体であってもよい。
【００３７】
第１関節制御部２１は、ＰＩ制御器（比例積分制御器）であり、指令部３（上位装置）から入力された第１モータ１１に対する第１目標回転角（第１動作目標）θｔ１と、第１エンコーダ１２が検出した第１モータ１１の出力軸１１ａの実回転角θ１との偏差に基づき、第１モータ１１に供給する第１電流値を算出する。そして、第１電流値に基づき第１モータ１１に電流を供給し第１モータ１１の出力軸１１aの回転角を制御する。すなわち、第１関節制御部２１は、第１目標回転角θｔ１と実回転角θ１との偏差を０に近づけ、第１モータ１１の出力軸１１ａの回転角を第１目標回転角θｔ１に近づける制御を基本とする第１モータ１１のフィードバック制御を行う。
【００３８】
また、第１関節制御部２１は、第１電流値を算出する過程において、誤差推定部２２が推定したロボットアーム４の撓み及び／又は捩れに起因する第１関節７の角度誤差を補償して第１モータ１１の出力軸１１ａの回転角を制御するように第１電流値を算出する（詳細は後述）。
【００３９】
第２関節制御部２６は、ＰＩ制御器であり、指令部３から入力された第２モータ１６に対する第２目標回転角（第２動作目標）θｔ２と、第２エンコーダ１７が検出した第２モータ１６の出力軸１６ａの実回転角θ２との偏差に基づき、第２モータ１６に供給する第２電流値を算出する。そして、第２電流値に基づき第２モータ１６に電流を供給し第２モータ１６の出力軸１６ａの回転角を制御する。すなわち、第２関節制御部２６は、第２目標回転角θｔ２と実回転角θ２との偏差を０に近づけ、第２モータ１６の出力軸１６ａの回転角を第２目標回転角θｔ２に近づける制御を基本とする第２モータ１６のフィードバック制御を行う。
【００４０】
また、第２関節制御部２６は、第２電流値を算出する過程において、誤差推定部２２が推定したロボットアーム４の撓み及び／又は捩れに起因する第２関節８の角度誤差を補償して第２モータ１６の出力軸１６ａの回転角を制御するように第２電流値を算出する（詳細は後述）。
【００４１】
更に、第２関節制御部２６は、第２電流値を算出する過程において、角度伝達誤差推定部２８が推定した第２モータ１６の出力軸１６ａの回転角と第２減速機１８の出力軸１８ｂの回転角との間の角度伝達誤差を補償して第２モータ１６の出力軸１６ａの回転角を制御するように第２電流値を算出する（詳細は後述）。
【００４２】
誤差推定部２２は、第１モータ１１に供給する第１電流値及び第１モータ１１の出力軸１１ａの実回転角θ１に基づいて、ロボットアーム４の撓み及び／又は捩れに起因する第１関節７及び第２関節８の角度誤差（動作の誤差）を推定する。そして、推定した第１関節７の角度誤差に基づいて第１電流値を補正するための第１補正量を算出する。更に、推定した第２関節８の角度誤差に基づいて第２電流値を補正するための第２補正量を算出する。
【００４３】
すなわち、誤差推定部２２は、第１電流値と、第１モータ１１の出力軸１１ａの実回転角θ１を入力として、ロボットアーム４の撓み及び／又は捩れに起因する第１関節７及び第２関節８の角度誤差を出力するモデルを用いて、ロボットアーム４の撓み及び／又は捩れに起因する第１関節７及び第２関節８の角度誤差を算出する。
【００４４】
ところで、ロボットアーム４の動作によって、ロボットアーム４は撓んだり、捩れたりして振動すると、ロボットアーム４の撓み及び／又は捩れに起因して、第１モータ１１に第１電流値に基づいて電流を供給したときの出力軸１１ａのトルクから求められる第１モータ１１の出力軸１１ａの理論上の回転角と、第１モータ１１の出力軸１１ａの実回転角θ１との間に偏差が生じる。したがって、第１電流値、及び第１モータ１１の出力軸１１ａの実回転角θ１に基づいてロボットアーム４の撓み及び／又は捩れを推定することが可能であり、更にはロボットアーム４の撓み及び／又は捩れに起因する各関節の角度誤差の推定が可能である。
【００４５】
本実施の形態において、第１電流値、及び第１モータ１１の出力軸１１ａの実回転角θ１を入力として、ロボットアーム４の撓み及び／又は捩れに起因する第１関節７及び第２関節８の角度誤差を出力するモデルを予め規定し、誤差推定部２２は、当該モデルを用いて、第１電流値、及び第１モータ１１の出力軸１１ａの実回転角θ１に基づいて、ロボットアーム４の撓み及び／又は捩れに起因する第１関節７及び第２関節８の角度誤差を算出する。
【００４６】
当該モデルは、たとえば、第１電流値と、第１モータ１１の出力軸１１ａの実回転角θ１と、第１関節７及び第２関節８の角度誤差との関係を予め計測し、この計測値から第１電流値と、第１モータ１１の出力軸１１ａの実回転角θ１とを入力として、第１関節７の角度誤差及び第２関節８の角度誤差を推定するモデルを構築してもよい。また、第１電流値に対応する電流を第１モータ１１に供給したときの出力軸１１ａのトルクと、第１モータ１１の出力軸１１ａの実回転角θ１との関係から、第１関節７の角度誤差及び第２関節８の角度誤差を推定する動力学モデルを用いて解析的に第１関節７及び第２関節８の角度誤差を算出してもよい。
【００４７】
更に、誤差推定部２２は、推定した第１関節７の角度誤差を補償するための第１補正量、及び第２関節８の角度誤差を補償するための第２補正量を算出する。第１補正量及び第２補正量は、それぞれ第１関節制御部２１及び第２関節制御部２６に入力される。
【００４８】
そして、第１関節制御部２１は、第１目標回転角θｔ１と第１モータ１１の出力軸１１ａの実回転角θ１との偏差に基づき第１電流値を算出する過程において、第１補正量を加算することによって、誤差推定部２２が推定した第１関節７の角度誤差を補償した第１電流値を算出する。
【００４９】
また、第２関節制御部２６は、第２目標回転角θｔ２と第２モータ１６の出力軸１６ａの実回転角θ２との偏差に基づき第２電流値を算出する過程において、第２補正量を加算することによって、誤差推定部２２が推定した第２関節８の角度誤差を補償した第２電流値を算出する。
【００５０】
更に、誤差推定部２２は、ロボットアーム４の撓み及び／又は捩れに起因する第１関節７及び第２関節８を含む系の連成振動の複数の固有振動数のうち固有振動数が小さい１の固有振動数に対応する固有値に基づいて第２関節８の角度誤差を推定する。第１関節７及び第２関節８からなる系の場合は２つの固有振動数のうち、小さい一方の固有振動数に対応する固有値に基づいて第２関節８の角度誤差を推定する。
【００５１】
すなわち、第１関節７及び第２関節８の振動は、２自由度の連成振動として表され、２つの固有振動モードの重ね合わせとして表される。２つの固有振動モードの固有振動数のうち、固有振動数が小さい１の固有振動数に対応するモードは、第１関節７及び第２関節８が互いに同じ回転方向に揺れる第１モードであり、他方のモードは、第１関節７及び第２関節８が互いに反対の回転方向に揺れる第２モードである。本実施の形態においては、推定対象関節とは異なる関節（第１関節７）から取得した情報のみから推定対象関節（第２関節８）の振動を推定するため、両方の振動モードについて推定することはできない。そこで、ロボットアーム４の作業端（ハンド５）の軌跡精度の低下に与える影響がより大きい第１モードに対応する固有振動数、すなわち第１関節７及び第２関節８を含む系の連成振動の複数の固有振動数のうち固有振動数が小さい１の固有振動数に基づいて第２関節８の角度誤差を推定することにより、ロボットアーム４の作業端（ハンド５）の軌跡精度を効果的に向上させることができる。
【００５２】
角度伝達誤差推定部２８は、第２モータ１６の出力軸１６ａの回転角と第２減速機１８の出力軸１８ｂの回転角との間の角度伝達誤差を推定する。
【００５３】
すなわち、角度伝達誤差推定部２８は、上記式（２）に係る角度伝達誤差の周期的な変動をモデル化した周期関数に基づいて、第２減速機１８に対する入力回転角である第２モータ１６の出力軸１６ａの回転角と第２減速機１８の出力回転角である第２減速機１８の出力軸１８ｂの回転角との間の角度伝達誤差を推定する。そして、角度伝達誤差推定部２８は、角度伝達誤差を補償するため（角度伝達誤差をキャンセルするため）に第２モータ１６の出力軸１６ａに加えるべき補正量を算出する。
【００５４】
例えば、波動歯車装置の角度伝達誤差に特に大きな影響をあたえるのは周波数ｆが２に係る成分であることが判っている。従って、波動歯車装置で構成した第２減速機１８の周波数ｆを２と規定し、当該周波数ｆに対応する別途同定した振幅Ａ，位相φを用いて上記式（１）に基づいて補正量を算出してもよい。このように、角度伝達誤差推定部２８は、第２目標回転角θｔ２に基づき角度伝達誤差を推定し、第２関節８の角度誤差伝達誤差を補償するための補正量を算出する。
【００５５】
そして、第２関節制御部２６は、第２目標回転角θｔ２と第２モータ１６の出力軸１６ａの実回転角θ２との偏差に基づき第２電流値を算出する過程において、角度伝達誤差推定部２８が推定した第２関節８の角度伝達誤差を補償するための補正量を加算することによって、誤差推定部２２が推定した第２関節８の角度誤差、及び角度伝達誤差推定部２８が推定した第２関節８の角度伝達誤差を補償した第２電流値を算出する。このように、第２関節制御部２６は、フィードフォワード制御によって、角度伝達誤差の補償を行う。
【００５６】
ところで、角度伝達誤差推定部２８が第２関節８の角度伝達誤差を補償するための補正量を加算することにより、第２電流値の変化は、角度伝達誤差の補償を行ったことによる変化と、ロボットアーム４の撓み及び／又は捩れに起因する変化とが合成されたものとなる。この第２電流値に基づきロボットアーム４の撓み及び／又は捩れに起因する第２関節８の角度誤差を推定しようとしても、第２電流値に含まれる角度伝達誤差の補償成分と、ロボットアーム４の撓み及び／又は捩れに起因する第２電流値の変化に係る成分とを判別することができず、第２関節８の角度誤差の推定に誤りが生じる場合があった。しかし、本実施の形態において、誤差推定部２２は、第２関節８とは異なる関節であって、角度伝達誤差の補償成分を含まない第１関節７の第１電流値に基づき第２関節の角度誤差を推定するよう構成されているので、ロボットアーム４の撓み及び／又は捩れに起因する第２関節８の角度誤差の推定に第２関節８に対する角度伝達誤差の補償が干渉し、第２関節８の角度誤差の推定に誤りが生じ、ロボットアーム４の振動の抑制に失敗することを防止することができる。これによって、第２関節８の角度伝達誤差の補償と、ロボットアーム４の撓み及び／又は捩れに起因する角度誤差の補償とを併用することができ、ロボットアーム４の軌跡精度をより向上させることができる。
【００５７】
このように、第２関節８の角度伝達誤差の補償は、フィードフォワード制御により行われ、ロボットアーム４の撓み及び／又は捩れに起因する第２関節８の角度誤差の補償は、フィードバック制御により行われるように構成されている。
【００５８】
指令部３は、動作プログラムに基づき、各関節に対する位置指令、すなわち各関節の目標回転角を生成し、出力する。各関節の目標回転角には、第１モータ１１に対する第１目標回転角θｔ１、及び第２モータ１６に対する第２目標回転角θｔ２が含まれる。出力された目標回転角は、第１関節制御部２１及び第２関節制御部２６を含む関節制御部に入力される。
【００５９】
以上に説明したように、本発明のロボットシステム１００は、誤差推定部２２がロボットアーム４の撓み及び／又は捩れに起因する関節の角度誤差を推定し、第１関節制御部２１及び第２関節制御部２６が角度誤差を補償した電流値を算出するので、ロボットアーム４の作業端の軌跡精度を向上させることができる。
【００６０】
また、本発明のロボットシステム１００は、誤差推定部２２が第１関節７に含まれる第１モータ１１への第１電流値、及び第１モータ１１の出力軸１１ａの実回転角θ１から、第２関節８の角度誤差を算出するので、ロボットアーム４の撓み及び／又は捩れに起因する第２関節８の角度誤差の推定に第２関節８に対する角度伝達誤差の補償が干渉することを防止することができ、第２関節８の角度伝達誤差の補償と、ロボットアーム４の撓み及び／又は捩れに起因する角度誤差の補償とを併用することができ、ロボットアーム４の軌跡精度をより向上させることができる。
【００６１】
（実施の形態２）
以下では実施の形態２の構成、動作について、実施の形態１との相違点を中心に述べる。
【００６２】
図４は、実施の形態２に係るロボットシステム２００の制御系統の構成例を概略的に示すブロック図である。
【００６３】
上記実施の形態１において、ロボットシステム１００の制御部２は、第１関節制御部２１、第２関節制御部２６、及び誤差推定部２２を含む。これに対し、本実施の形態において、ロボットシステム２００は、第１関節制御部２２１、第２関節制御部２２６、第１誤差推定部２２２、第２誤差推定部２２９、及び動作モード切替部２３０を含む。第１誤差推定部２２２は、上記実施の形態１にかかる誤差推定部２２と同様に構成されるので、その詳細な説明を省略する。
【００６４】
第２誤差推定部２２９は、第１モータ１１に供給する第１電流値及び第１モータ１１の出力軸１１ａの実回転角θ１に基づいて、ロボットアーム４の撓み及び／又は捩れに起因する第１関節７の角度誤差を推定する。そして、推定した第１関節７の角度誤差に基づいて第１電流値を補正するための第３補正量を算出する。また、第２誤差推定部２２９は、第２モータ１６に供給する第２電流値及び第２モータ１６の実回転角θ２に基づいて、ロボットアーム４の撓み及び／又は捩れに起因する第２関節８の角度誤差を推定する。そして、推定した第２関節８の角度誤差に基づいて第２電流値を補正するための第４補正量を算出する。第３補正量及び第４補正量は、それぞれ第１関節制御部２２１及び第２関節制御部２２６に入力される。
【００６５】
動作モード切替部２３０は、後述する第１モードと第２モードとの切替指令を生成し、生成された切替指令は、第１関節制御部２２１及び第２関節制御部２２６に入力される。
【００６６】
そして、第１関節制御部２２１は、第１モードと第２モードとを有する。第１関節制御部２２１は、第１モードにおいて、第１誤差推定部２２２が推定した第１関節７の角度誤差を補償して第１モータ１１の出力軸１１ａの回転角を制御するように第１電流値を算出する。すなわち、第１関節制御部２２１は、第１モードにおいて、第１目標回転角θｔ１と第１モータ１１の出力軸１１ａの実回転角θ１との偏差に基づき第１電流値を算出する過程において、第１補正量を加算することによって、第１誤差推定部２２２が推定した第１関節７の角度誤差を補償した第１電流値を算出する。また、第１関節制御部２２１は、第２モードにおいて、第２誤差推定部２２９が推定した第１関節７の角度誤差を補償して第１モータ１１の出力軸１１ａの回転角を制御するように第１電流値を算出する。すなわち、第１関節制御部２２１は、第２モードにおいて、第１目標回転角θｔ１と第１モータ１１の出力軸１１ａの実回転角θ１との偏差に基づき第１電流値を算出する過程において、第３補正量を加算することによって、第２誤差推定部２２９が推定した第１関節７の角度誤差を補償した第１電流値を算出する。
【００６７】
また、第２関節制御部２２６は、第１モードと第２モードとの二つの動作モードを有する。第２関節制御部２２６は、第１モードにおいて、角度伝達誤差と第１誤差推定部２２２が推定した第２関節８の角度誤差とを補償して第２モータ１６の出力軸１６ａの回転角を制御するように第２電流値を算出する。すなわち、第２関節制御部２２６は、第１モードにおいて、第２目標回転角θｔ２と第２モータ１６の出力軸１６ａの実回転角θ２との偏差に基づき第２電流値を算出する過程において、角度伝達誤差の補正量及び第２補正量を加算することによって、角度伝達誤差と第１誤差推定部２２２が推定した第２関節８の角度誤差とを補償した第２電流値を算出する。また、第２関節制御部２２６は、第２モードにおいて、第２誤差推定部２２９が推定した第２関節８の角度誤差を補償して第２モータ１６の出力軸１６ａの回転角を制御するように第２電流値を算出する。すなわち、第２関節制御部２２６は、第２モードにおいて、第２目標回転角θｔ２と第２モータ１６の出力軸１６ａの実回転角θ２との偏差に基づき第２電流値を算出する過程において、第４補正量を加算することによって、第２誤差推定部２２９が推定した第２関節８の角度誤差を補償した第２電流値を算出する。
【００６８】
すなわち、第２関節８について、第１モードは、上記実施の形態１における誤差推定部２２の動作処理と同様の処理を行うモードであり、角度伝達誤差の補償と、第１誤差推定部２２２が算出した第２関節８の角度誤差の補償とを行って、第２モータ１６の出力軸１６ａの回転角を制御するように第２電流値を算出し、第２モータ１６の動作を制御するモードである。これに対し、第２モードは、角度伝達誤差の補償を行わずに、第２誤差推定部２２９が算出した第２関節８の角度誤差の補償を行って、第２モータ１６の出力軸１６ａの回転角を制御するように第２電流値を算出し、第２モータ１６の動作を制御するモードである。
【００６９】
図５は、動作モード切替部２３０の動作例を示すフローチャートである。
【００７０】
そして、動作モード切替部２３０は、第１関節制御部２２１及び第２関節制御部２２６に指示して第１モードと第２モードとを切り替える。そして、動作モード切替部２３０は、ロボットアーム４の作業端（ハンド５）の動作速度が所定の速度以下になると第１モードに切り替えるように構成されている。本実施の形態において、動作モード切替部２３０は、図５に示すように、ロボットアーム４の作業端の動作速度が所定の速度よりも遅く、且つ動作モードとして第２モードが選択されている状態であるか否かを判定する（ステップＳ１１）。そして、動作モード切替部２３０が、ロボットアーム４の作業端の動作速度が所定の速度よりも遅く、且つ動作モードとして第２モードが選択されている状態であると判定すると（ステップＳ１１においてＹｅｓ）、動作モードを第１モードに切り替える切替指令を生成する（ステップＳ１２）。そして、動作モード切替部２３０は処理を終了させる。これによって、アーク溶接等の精度の要求される作業を実行するときに、ロボットアーム４の撓み及び／又は捩れに起因する角度誤差の補償のみならず、角度伝達誤差の補償も併用することができ、軌跡精度を向上させることができる。
【００７１】
一方、動作モード切替部２３０がロボットアーム４の作業端の動作速度が所定の速度よりも速い、又は動作モードとして第１モードが選択されている状態であると判定すると（ステップＳ１１においてＮｏ）、次に、動作モード切替部２３０は、ロボットアーム４の作業端の動作速度が所定の速度よりも速く、且つ動作モードとして第１モードが選択されている状態であるか否かを判定する（ステップＳ１３）。そして、動作モード切替部２３０が、ロボットアーム４の作業端の動作速度が所定の速度よりも速く、且つ動作モードとして第１モードが選択されている状態であると判定すると（ステップＳ１３においてＹｅｓ）、動作モードを第２モードに切り替える切替指令を生成する（ステップＳ１３）。そして、動作モード切替部２３０は処理を終了させる。これによって、角度伝達誤差による軌跡精度の低下が問題とならないような素早い作業を行う際において、ロバスト性を高めることができる。
【００７２】
一方、動作モード切替部２３０がロボットアーム４の作業端の動作速度が所定の速度よりも遅い、又は動作モードとして第２モードが選択されている状態であると判定すると（ステップＳ１３においてＮｏ）、処理を終了させる。そして、動作モード切替部２３０は、上記処理を所定のサイクルタイムで繰り返し実行する。その他の構成は、上記実施の形態１と同様であるので、その詳細な説明を省略する。
【００７３】
上記説明から、当業者にとっては、本発明の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び／又は機能の詳細を実質的に変更できる。
【符号の説明】
【００７４】
１  ロボット
２  制御部
３  指令部
４  ロボットアーム
７  第１関節
８  第２関節
９  第１関節駆動部
１０  第２関節駆動部
１１  第１モータ
１１ａ  （第１モータの）出力軸
１２  第１エンコーダ
１３  第１減速機
１３ａ  （第１減速機の）入力軸
１３ｂ  （第１減速機の）出力軸
１６  第２モータ
１６ａ  （第２モータの）出力軸
１７  第２エンコーダ
１８  第２減速機
１８ａ  （第２減速機の）入力軸
１８ｂ  （第２減速機の）出力軸
２１  第１関節制御部
２２  第１角度誤差推定部
２６  第２関節制御部
２７  第２角度誤差推定部
２８  角度伝達誤差推定部
１００  ロボットシステム
【図１】
2019005821.tif 000005
【図２】
2019005821.tif 000006
【図３】
2019005821.tif 000007
【図４】
2019005821.tif 000008
【図５】
2019005821.tif 000009