IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アズビル株式会社の特許一覧

特開2024-164343ロボット制御装置、ロボット制御システム及びロボット制御方法
<>
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図1
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図2
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図3
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図4
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図5
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図6
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図7
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図8
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図9
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図10
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図11
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図12
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図13
  • 特開-ロボット制御装置、ロボット制御システム及びロボット制御方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024164343
(43)【公開日】2024-11-27
(54)【発明の名称】ロボット制御装置、ロボット制御システム及びロボット制御方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20241120BHJP
【FI】
B25J13/08 Z
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023079754
(22)【出願日】2023-05-15
(71)【出願人】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】杉本 広大
(72)【発明者】
【氏名】田原 鉄也
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS12
3C707BS12
3C707HS27
3C707KS05
3C707KS21
3C707KS31
3C707KS34
3C707KS35
3C707KX10
3C707LT00
3C707LU01
3C707LU06
3C707MT04
(57)【要約】      (修正有)
【課題】トルク検知結果に生じた他軸誤差を補正することができるロボット制御装置、ロボット制御システム及びロボット制御方法を提供する。
【解決手段】ロボットアーム(3)の関節に作用するトルクを検知するトルク検知部と、ロボットアームの特定部位を対象物に接触させる際の特定部位の位置に関する位置情報を取得する位置情報取得部と、特定部位を対象物に接触させる際の接触力の指令値を取得する指令値取得部と、位置情報取得部によって取得された位置情報および指令値取得部によって取得された指令値に基づいて、トルク検知部によって検知されたトルクに含まれる、接触力に起因する他軸誤差を推定する誤差推定部と、トルク検知部によって検知されたトルク、及び誤差推定部によって推定された他軸誤差に基づいて、特定部位が対象物に接触するようにロボットアームを制御する。
【選択図】図2
【特許請求の範囲】
【請求項1】
ロボットアームの関節に作用するトルクを検知するトルク検知部と、
前記ロボットアームの特定部位を対象物に接触させる際の前記特定部位の位置に関する位置情報を取得する位置情報取得部と、
前記特定部位を前記対象物に接触させる際の接触力の指令値を取得する指令値取得部と、
前記位置情報取得部によって取得された位置情報および前記指令値取得部によって取得された指令値に基づいて、前記トルク検知部によって検知されたトルクに含まれる、前記特定部位と前記対象物とが接触している状態での接触力に起因する他軸誤差を推定する誤差推定部と、
前記トルク検知部によって検知されたトルク、及び前記誤差推定部によって推定された他軸誤差に基づいて、前記特定部位が前記対象物に接触するように前記ロボットアームを制御する制御部と、を備えた
ことを特徴とするロボット制御装置。
【請求項2】
前記トルク検知部によって検知されたトルクから前記誤差推定部によって推定された他軸誤差を減算することによって、補正後のトルクを取得する補正部を備え、
前記制御部は、前記補正部によって取得された補正後のトルクに基づいて、前記特定部位が前記対象物に接触するように前記ロボットアームを制御する
ことを特徴とする請求項1記載のロボット制御装置。
【請求項3】
前記誤差推定部は、前記トルク検知部によって検知されたトルクに含まれる、前記ロボットアームの重力及び慣性力の少なく一方に起因する他軸誤差を推定する
ことを特徴とする請求項1記載のロボット制御装置。
【請求項4】
前記誤差推定部は、前記ロボットアームの重力及び慣性力の少なく一方に起因する他軸誤差を、前記ロボットアームの動力学モデルと、角度計測値、角速度計測値及び角加速度計測値の少なくとも一つと、に基づいて推定する
ことを特徴とする請求項3記載のロボット制御装置。
【請求項5】
請求項1乃至4のいずれか1項記載のロボット制御装置と、
前記ロボットアームと、を備えた
ことを特徴とするロボット制御システム。
【請求項6】
トルク検知部と、位置情報取得部と、指令値取得部と、誤差推定部と、制御部と、を備えた装置が行うロボット制御方法であって、
前記トルク検知部が、ロボットアームの関節に作用するトルクを検知するステップと、
前記位置情報取得部が、前記ロボットアームの特定部位を対象物に接触させる際の前記特定部位の位置に関する位置情報を取得するステップと、
前記指令値取得部が、前記特定部位を前記対象物に接触させる際の接触力の指令値を取得するステップと、
前記誤差推定部が、前記位置情報取得部によって取得された位置情報および前記指令値取得部によって取得された指令値に基づいて、前記トルク検知部によって検知されたトルクに含まれる、前記特定部位と前記対象物とが接触している状態での接触力に起因する他軸誤差を推定するステップと、
前記制御部が、前記トルク検知部によって検知されたトルク、及び前記誤差推定部によって推定された他軸誤差に基づいて、前記特定部位が前記対象物に接触するように前記ロボットアームを制御するステップと、を備えた
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット制御装置、ロボット制御システム及びロボット制御方法に関する。
【背景技術】
【0002】
一般に、ロボットアームの関節にトルクセンサを備え、関節の回動軸周りに働く回転力(トルクと呼ぶ)を検知可能な産業用のロボットが知られている。このようなロボットは、ロボットアームの手先又はリンクに加わる外力を検知し、ロボットアームの手先に装着したエンドエフェクタを作業対象であるワークに押付けて加工する等の力作業を行うことが可能となる。このようなロボットのトルクセンサは、関節に作用するトルクを検知するためのものだが、実際には、トルクセンサに働くトルク以外の2方向の回転力や3方向の並進力の影響を受けて、トルク検知結果に誤差(他軸誤差と呼ぶ)を生じることがある。
【0003】
従来、ロボットアームの質量などに起因してトルク検知結果に生じる他軸誤差を推定し、それを補正するロボットが開示されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2020-037172号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上述したようなロボットの力作業においては、ロボットアームが作業対象に接触することに起因してトルク検知結果に他軸誤差を生じることがある。しかしながら、特許文献1に記載されたロボットは、このような力作業において、他軸誤差を補正することができないという課題がある。
【0006】
本開示は、上記課題を解決するものであって、ロボットアームが作業対象から受けた力に起因してトルク検知結果に生じた他軸誤差を補正することができるロボット制御装置、ロボット制御システム及びロボット制御方法を提供することを目的としている。
【課題を解決するための手段】
【0007】
本開示に係るロボット制御装置は、ロボットアームの関節に作用するトルクを検知するトルク検知部と、ロボットアームの特定部位を対象物に接触させる際の特定部位の位置に関する位置情報を取得する位置情報取得部と、ロボットアームの特定部位を対象物に接触させる際の接触力の指令値を取得する指令値取得部と、位置情報取得部によって取得された位置情報および前記指令値取得部によって取得された指令値に基づいて、トルク検知部によって検知されたトルクに含まれる、特定部位と対象物とが接触している状態での接触力に起因する他軸誤差を推定する誤差推定部と、トルク検知部によって検知されたトルク、及び誤差推定部によって推定された誤差に基づいて、特定部位が対象物に接触するようにロボットアームを制御する制御部と、を備えたことを特徴とする。
【発明の効果】
【0008】
本開示によれば、ロボットアームの特定部位を対象物に接触させる際に生じた他軸誤差を接触力の指令値に基づいて推定し、当該推定結果に基づいてロボットアームを制御するので、ロボットアームが作業対象から受ける力に起因してトルク検知結果に生じた他軸誤差を補正することができる。
【図面の簡単な説明】
【0009】
図1】実施の形態1に係るロボット制御システムを示す概略図。
図2】実施の形態1に係るロボット制御システムの構成を示すブロック図。
図3】実施の形態1に係るロボット制御装置のハードウェア構成の一例を示す図。
図4】実施の形態1に係るロボット制御装置のハードウェア構成の一例を示す図。
図5】実施の形態1に係る他軸誤差補正部の構成を示すブロック図。
図6】実施の形態1に係る外乱補正部の構成を示すブロック図。
図7】実施の形態1に係る力制御部の構成を示すブロック図。
図8】実施の形態1に係る位置制御部の構成を示すブロック図。
図9】実施の形態1に係る駆動制御部の構成を示すブロック図。
図10】実施の形態1に係るロボット制御装置が行う処理を示すフローチャート。
図11】実施の形態1に係る他軸誤差補正部が行う処理を示すフローチャート。
図12】実施の形態1に係るトルクセンサの座標系の定義例を示す概念図。
図13】実施の形態1に係る力制御部が行う処理を示すフローチャート。
図14】実施の形態1に係る位置制御部が行う処理を示すフローチャート。
【発明を実施するための形態】
【0010】
以下、本開示に係る実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は、実施の形態1に係るロボット制御システム1Aの構成例を示す図である。図1に示すように、ロボット制御システム1Aは、指令値生成部1、ロボット制御装置2、及びロボットアーム3を備えている。指令値生成部1は、ロボット制御装置2が処理を行う際の各種指令値を生成する。ロボット制御装置2は、ロボットアーム3の動作を制御する。
【0011】
ロボットアーム3は、互いに相対移動可能なリンクL1、L2を含む2以上の複数のリンクと、先端に取り付けられているエンドエフェクタE1と、を有している。複数のリンクは、それぞれ特定の中心軸線を回動中心として隣接するリンク同士が互いに回動可能に、関節によって互いに連結されている。例えば、リンクL1、L2は、特定の中心軸線を回動中心として互いに回動可能に、関節J1によって互いに連結されている。また、例えば、ロボットアーム3は、6個の関節を有する6軸垂直多関節ロボットとして構成されている。なお、以下の記載において、関節J1における上記特定の中心軸線を中心とする回動方向を、関節J1の回動方向ともいう。
【0012】
ロボットアーム3は、ロボット制御装置2から電流の供給を受けて動作する。例えば、ロボットアーム3は、ロボット制御装置2から電流の供給を受けて、特定部位としてのエンドエフェクタE1を対象物であるワークW1に接触させるように、動作する。言い換えると、ロボットアーム3は、ロボット制御装置2から電流の供給を受けて、力点であるエンドエフェクタE1をワークW1に押付けることで、ワークW1に接触力を作用させる作業を行う。具体的には、ロボットアーム3は、ロボット制御装置2から電流の供給を受けて、加工ツールであるエンドエフェクタE1を被加工物であるワークW1に押付けることで、ワークW1を加工する作業を行う。
【0013】
なお、ロボットアーム3は、ロボット制御装置2から電流の供給を受けて動作するものに限らず、図示しない他の装置から電力の供給を受けると共に、ロボット制御装置から制御信号を取得して、ロボット制御装置からの制御信号に基づいて動作するように構成されていてもよい。また、ロボットアームによって行う作業は、ロボットアームの特定部位がワークに接触してワークからの外力を受ける作業であればよく、ワークを押して移動する作業であってもよいし、ワークを押して変形させる作業であってもよいし、ワークを持ち上げる作業であってもよい。また、以下の記載において、ロボットアームの特定部位がワークに接触してワークから外力を受ける作業を、力作業ともいう。
【0014】
図2は、実施の形態1に係るロボット制御システム1Aの構成を示すブロック図である。例えば、指令値生成部1は、予め定められたロボットアーム3を制御するためのロボットプログラムに従い、力作業を行う際のエンドエフェクタE1のワークW1に対する接触力の指令値である力指令値と、力作業を行う際のエンドエフェクタE1の位置及び姿勢の指令値である位置指令値を生成(算出)する。また、ロボット制御装置2が保持するロボット運動学・動力学モデルに、エンドエフェクタE1とロボットアーム3との境目から見た力点の相対位置情報を反映する。
【0015】
図2に示すように、ロボットアーム3は、各関節に対応する複数のトルクセンサ31、複数のエンコーダ32及び複数のモータ33を有しており、それぞれロボット制御装置2と電力線、信号線等の電線によって電気的に接続されている。なお、ロボットアーム3は、ロボット制御装置2と電線によって接続されているものに限らず、ロボット制御装置と信号を送受信可能に無線で接続されてかつ電力の供給をロボット制御装置以外から受けるように構成されていてもよいし、ロボット制御装置と信号を送受信可能に電線で接続されてかつ電力の供給をロボット制御装置以外から受けるように構成されていてもよく、図示しないロボット制御装置以外の装置から電力及び制御信号を受けるように構成されていてもよい。
【0016】
モータ33は、ロボット制御装置2からの制御信号に基づいて、対応する関節で連結された複数のリンクを互いに回動させる。例えば、モータ33は、サーボモータによって構成されている。エンコーダ32は、対応する関節の回動角度を検知(計測)して、検知した回動角度に応じた信号を出力する。なお、以下の記載において、エンコーダ32によって検知された回動角度の値を、角度計測値ともいう。
【0017】
トルクセンサ31は、対応する関節に印加されたトルクを検知(計測)する。言い換えると、トルクセンサ31は、対応する関節に作用するトルクを検知する。トルクセンサ31は、トルクを検知すると、検知したトルクの大きさに応じた信号を出力する。例えば、トルクセンサ31は、ひずみゲージ式トルクセンサによって構成されている。なお、トルクセンサは、静電容量式、磁歪式、光学式等、他の方式によってトルクを検知するセンサであってもよい。また、以下の記載において、トルクセンサ31によって検知されたトルクの値を、トルク計測値ともいう。
【0018】
トルクセンサ31は、関節の回動方向(駆動方向)に作用するトルクを検知するために設けられているが、一般に、このようなトルクセンサによるトルク計測値は、関節の回動方向以外の方向の力の影響を受けるため、トルク計測値には誤差が含まれる。言い換えると、トルクセンサによるトルク計測値は、関節の回動方向に印加されるトルクに加えて、関節の回動方向以外の方向の力が反映された値になる。例えば、トルクセンサは、ロボットアーム3がワークW1(図1参照)と接触することによりワークW1から受ける外力、ロボットアーム3の質量に起因する重力及び慣性力等により、関節の回動方向以外の方向の力を受ける。なお、以下の記載において、ロボットアーム3が受ける関節の回動方向以外の方向の力を、各関節の他軸力ともいう。また、以下の記載において、トルク計測値に含まれる他軸力に起因する誤差を、他軸誤差ともいう。また、トルク計測値には、他軸誤差に加えて、各種要因でゼロ点がシフトすることによるオフセット外乱、電気的ノイズ等の外乱に起因する外乱誤差が含まれる。
【0019】
ロボット制御装置2は、他軸誤差補正部21、外乱補正部22、力制御部23、位置制御部24、合算部25、駆動制御部26を有している。他軸誤差補正部21は、指令値生成部1から力指令値及び角度計測値を取得し、トルクセンサ31からトルク計測値を取得する。他軸誤差補正部21は、これら力指令値、角度計測値及びトルク計測値に基づいて、トルク計測値を補正する。言い換えると、他軸誤差補正部21は、力指令値、角度計測値及びトルク計測値に基づいて、トルク計測値から他軸誤差を除去した他軸誤差補正後トルク値を算出する。
【0020】
外乱補正部22は、エンコーダ32から角度計測値を取得し、他軸誤差補正部21から他軸誤差補正後トルクを取得する。外乱補正部22は、角度計測値及び他軸誤差補正後トルクに基づいて、他軸誤差補正後トルク値から外乱誤差を除去した外乱補正後トルク値を算出する。力制御部23は、指令値生成部1から力指令値を取得し、エンコーダ32から角度計測値を取得し、外乱補正部22から外乱補正後トルク値を取得する。力制御部23は、力指令値、角度計測値及び外乱補正後トルク値に基づいて、ロボットアーム3が力指令値に従って動作するために求められる制御量である力制御量を算出する。
【0021】
位置制御部24は、指令値生成部1から位置指令値を取得し、エンコーダ32から角度計測値を取得する。位置制御部24は、位置指令値及び角度計測値に基づいて、ロボットアーム3が位置指令値に従って動作するために求められる位置の制御量である位置制御量を算出する。合算部25は、力制御部23から力制御量を取得し、位置制御部24から位置制御量を取得する。合算部25は、力制御量及び位置制御量を合成(合算)し、合成結果を駆動制御部26に出力する。制御部としての駆動制御部26は、合算部25から合成結果を取得し、合成結果に基づいてモータ33を制御する。例えば、駆動制御部26は、合算部25から取得した合成結果に基づいて、モータ33を駆動するための電流を出力する。なお、駆動制御部は、モータ33を駆動するための電流を出力するものに限らず、モータを制御するための制御信号をモータに出力するように構成されていてもよい。
【0022】
次に、図3及び図4を参照して、ロボット制御装置2のハードウェア構成について説明する。図3は、実施の形態1に係るロボット制御装置2のハードウェア構成の一例を示すブロック図であり、図4は、実施の形態1に係るロボット制御装置2の図3とは異なるハードウェア構成の一例を示すブロック図である。例えば、図3に示すように、ロボット制御装置2は、プロセッサ2a、メモリ2b及びI/Oポート2cを有し、メモリ2bに格納されているプログラムをプロセッサ2aが読み出して実行するように構成されている。メモリ2bは、例えば、RAM、ROM、フラッシュメモリ、EPROM、EEPROM等の、不揮発性又は揮発性の半導体メモリであってよい。また、メモリ2bは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等であってもよい。さらにメモリ2bは、HDD又はSSDであってもよい。
【0023】
また、例えば、図4に示すように、ロボット制御装置2は、専用のハードウェアである処理回路2d及びI/Oポート2cを有している。処理回路2dは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、システムLSI(Large-Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又はこれらの組み合わせによって構成される。ロボット制御装置2の各機能は、これらプロセッサ2a又は専用のハードウェアである処理回路2dがソフトウェア、ファームウェア又はソフトウェアとファームウェアとの組合せであるプログラムを実行することによって実現される。
【0024】
次に、図5乃至図9を参照して、実施の形態1に係るロボット制御装置2の構成の詳細について説明する。図5は、実施の形態1に係る他軸誤差補正部の構成を示すブロック図である。図5に示すように、他軸誤差補正部21は、他軸力演算部211、他軸誤差演算部212、減算器213を有している。指令値取得部としての他軸力演算部211は、指令値生成部1から力指令値を取得する。また、他軸力演算部211は、エンコーダ32からエンドエフェクタE1の位置に関する情報である角度計測値を取得する。言い換えると、位置情報取得部としての他軸力演算部211は、ロボットアーム3のエンドエフェクタE1をワークW1に接触させる際のエンドエフェクタE1の位置に関する位置情報を取得している。
【0025】
他軸力演算部211は、角度計測値、力指令値、ロボット運動学モデル、また必要に応じてロボット動力学モデル、角度計測値を微分演算して算出した角速度計測値、角加速度計測値に基づいて、他軸力の推定値を算出する。なお、以下の記載において、他軸力演算部211が算出した他軸力の推定値を、他軸力推定値ともいう。他軸誤差演算部212は、他軸力推定値に基づいて、他軸誤差の推定値を算出する。言い換えると、誤差推定部としての他軸誤差演算部212は、他軸力演算部211によって取得された位置情報に基づいて、トルクセンサ31によって検知されたトルクに含まれる、エンドエフェクタE1とワークW1とが接触している状態での接触力に起因する誤差である他軸誤差を推定する。なお、以下の記載において、他軸誤差演算部212が算出した他軸誤差の推定値を、他軸誤差推定値ともいう。
【0026】
トルク検知部及び補正部としての減算器213は、トルクセンサ31からトルク計測値を取得することで、関節J1に作用するトルクを検知する。また、減算器213は、取得したトルク計測値から他軸誤差推定値を差し引いて他軸誤差補正後トルク値を算出し、算出した他軸誤差補正後トルク値を外乱補正部に出力する。言い換えると、減算器213は、他軸誤差演算部212によって推定された誤差に基づいて、トルクセンサ31から取得したトルク計測値を補正している。
【0027】
図6は、実施の形態1に係る外乱補正部の構成を示すブロック図である。図6に示すように、誤差推定部としての外乱補正部22は、外乱演算部221、減算器222を有している。外乱演算部221は、必要に応じて他軸誤差補正後トルク値、トルク計測値、オフセット外乱の既知情報、ロボット動力学モデル及び角度計測値、並びにこれらを微分演算して算出した角速度計測値及び角加速度計測値に基づいて、外乱推定値を推定(算出)する。減算器222は、他軸誤差補正後トルク値から外乱推定値を差し引くことで外乱補正後トルク値を算出し、算出した外乱補正後トルク値を力制御部23に出力する。
【0028】
図7は、実施の形態1に係る力制御部23の構成を示すブロック図である。図7に示すように、接触力取得部としての力制御部23は、力換算部231、力制御量演算部232、角速度換算部233を有している。力換算部231は、外乱補正後トルク値に基づいてロボットアーム3がワークW1に作用させる接触力の推定値を算出することで、接触力を取得する。なお、以下の記載において、力換算部231が算出した接触力の推定値を力推定値ともいう。力制御量演算部232は、力推定値を力指令値に追従させるための制御演算を行い、力点に関する速度の指令値を算出する。なお、以下の記載において、力制御量演算部232が算出した力点に関する速度の指令値を速度指令値ともいう。角速度換算部233は、速度指令値及び既知のロボットアーム3の幾何情報に基づいて、対応する関節におけるリンク間の角速度の指令値である角速度指令値を算出する。言い換えると、角速度換算部233は、速度指令値を角速度指令値に変換する。角速度換算部233は、算出した角速度指令値を力制御量として合算部25へ出力する。
【0029】
図8は、実施の形態1に係る位置制御部の構成を示すブロック図である。図8に示すように、位置制御部24は、位置換算部241、位置制御量演算部242、角速度換算部243を有している。位置換算部241は、角度計測値に基づいて力点の位置を算出する。なお、以下の記載において、位置換算部241が算出した力点の位置を位置計測値ともいう。位置制御量演算部242は、位置計測値を位置指令値に追従させるための制御演算を行い、力点の速度の指令値である速度指令値を算出する。角速度換算部243は、速度指令値に基づいて、角速度指令値を算出する。言い換えると、角速度換算部243は、速度指令値を角速度指令値に変換する。角速度換算部243は、算出した角速度指令値を位置制御量として合算部25へ出力する。合算部25は、力制御部23から出力された力制御量としての角速度指令値と、位置制御部から出力された位置制御量としての角速度指令値をひとつの角速度指令値に合算する。
【0030】
図9は、実施の形態1に係る駆動制御部の構成を示すブロック図である。図9に示すように、駆動制御部26は、角速度演算部261、及び角速度制御量演算部262を有している。角速度演算部261は、角度計測値に基づいて、角速度計測値を算出する。例えば、角速度演算部261は、角度計測値を微分演算して角速度計測値を算出する。角速度制御量演算部262は、合算部25が出力した角速度指令値と、角速度演算部261が出力した角速度計測値に基づいて、角速度フィードバック制御演算を行い、演算結果としてモータ33を駆動する電流の指令値である電流指令値を出力する。
【0031】
次に、図10乃至図14を参照して、実施の形態1に係るロボット制御装置2が行う処理について説明する。図10は、実施の形態1に係るロボット制御装置2が行う処理を示すフローチャートである。具体的には、図10は、実施の形態1に係るロボット制御装置2が行う、ロボットアーム3の力点であるエンドエフェクタE1をワークW1に押付ける押付作業を行うようにロボットアーム3を制御する押付制御処理を示すフローチャートである。押付制御処理において、ロボットアーム3は、6軸垂直多関節ロボットであり、力点は、ロボットアーム3の手先であるエンドエフェクタE1であり、押付作業の作業内容は、指令値生成部1が有するロボットプログラムに記述された、ベース座標系(ワークW1及びロボットアーム3のベースが固定されている座標系)の-Z方向(地面に向かう方向)に向けて力点をワークW1に10Nで押付ける作業であるものとする。また、押付制御処理の開始時点において、力点は、押付作業位置であるワークW1に対して十分に近い位置に存在し、-Z方向を向いており、ワークW1に接触していないものとする。また、このような押付作業において、作業中のロボットアーム3の位置及び姿勢の変化は小さいため、ロボットアーム3の質量に起因するトルク計測値の変動は、無視できるものとする。なお、以下の記載において、押付制御処理の開始時点における力点の位置を押付開始位置ともいう。
【0032】
ステップST1では、ロボット制御装置2は、外乱補正部22が有する外乱演算部221において、外乱推定値を算出する。上記の通り、当該処理においては、作業中のロボットアーム3の質量に起因するトルク計測値の変動は無視できるため、トルク計測値の変動は、接触力によってのみ発生するものとして演算を行う。また、実施の形態1に係るロボット制御装置2は、外乱推定値を一定値であるものとして押付制御処理を行う。例えば、ロボット制御装置2は、ロボットアーム3が押付開始位置で静止した状態の他軸誤差補正後トルク値を外乱推定値として押付制御処理を行う。なお、この状態において、ロボットアーム3がワークW1に接触していないため、他軸誤差補正後トルク値は、トルク計測値と同一値である。ロボット制御装置2は、外乱推定値をトルク計測値から差し引くことで、押付作業中の接触力に起因するトルク計測値の変動量を正確に把握することができる。ステップST1の処理を行うと、ロボット制御装置2は、ロボットアーム3による押付作業を開始する(ステップST2)
【0033】
ステップST3では、ロボット制御装置2は、他軸誤差補正部21において、他軸誤差補正後トルク値を算出する。図11は、実施の形態1に係る他軸誤差補正部21が行う処理を示すフローチャートである。図11に示すように、ステップST3-1では、ロボット制御装置2は、他軸力演算部211において、以下の数式(1)に基づき、各トルクセンサ31に関する他軸力推定値を算出する。


また、iは、関節番号であり、最もロボットアーム3のベースに近い関節が1、エンドエフェクタ側に進むにつれて2,3,4,5,6となる。
【0034】
図12は、実施の形態1に係るトルクセンサ31の座標系の定義例を示す概念図である。図12に示すように、他軸力演算部211は、トルクセンサ31の中心部を原点とし、座標軸のZ方向を関節の回動方向であるトルク方向、X方向及びY方向を他軸方向である、トルク方向以外の方向とする座標系における値として、他軸力推定値を算出する。言い換えると、他軸力演算部211は、当該座標系において、トルクセンサ31に働くX,Y,Z軸方向の並進力及びX,Y軸回りの回転力が他軸力であるものとして、他軸力推定値を算出する。なお、以下の記載において、他軸力演算部211が他軸力推定値を算出する際の座標系をセンサ座標系ともいう。また、センサ座標系は、トルクセンサ31との相対位置が固定されているものとする。
【0035】
並進方向の他軸力推定値は、センサ座標系における並進方向の力指令値に相当する。一方、回転方向の他軸力推定値は、センサ座標系における回転方向の力指令値の他に、センサ座標系における力点の位置と、センサ座標系における並進方向の力指令値を外積演算した結果と、が関係する。なお、他軸力推定値を算出する際のセンサ座標系の定義は、上記のものに限らず、他の定義であってもよい。また、数式(1)は、ベース座標系における値としているが、ベース座標系を並進移動あるいは回転移動した座標系における値としてもよい。
【0036】
他軸力演算部211は、数式(1)の算出に必要なトルクセンサ31の位置を、以下の数式(2)に基づきロボットアームのベースからトルクセンサ31までに介する関節の角度計測値を用いた順運動学演算により算出する。


なお、数式(2)において、Hi-1,i(θ)、θ、S、hは、以下の値を示す。

i-1,i(θ):関節i-1からiまでの同次変換行列(4×4) ※関節0はロボットアーム3のベース
θ:関節iの角度計測値(1×1)
:関節iからセンサiまでの同次変換行列(4×4)
h:同次変換行列の並進ベクトル成分を抽出する関数
【0037】
他軸力演算部211は、数式(1)の算出に必要な力点の位置を、以下の数式(3)に示すロボットアーム3のベースから力点までに介する関節の角度計測値を用いた順運動学演算により算出する。実施の形態1において、力点はロボットアーム3の手先であるエンドエフェクタE1であるため、他軸力演算部211は、力点の位置の算出において、ロボットアーム3が有する全ての関節の角度計測値を使用する。

con=h{H0,1(θ)・・・Hi-1,i(θ)C} ・・・(3)

なお、数式(3)において、Cは、以下の値を示す。

:関節iからリンクi上の力点までの同次変換行列(4×4)
また、実施の形態1において、力点が手先であるため、iの値は、6である。なお、他軸力演算部は、センサ座標系における力点の位置を計算できるのであれば、上記以外の計算方法を実施してもよい。
【0038】
ステップST3-2では、他軸誤差補正部21は、他軸誤差演算部212において、以下の数式(4)に基づき他軸誤差推定値を算出する。


なお、数式(4)において、τ err、si,x,si,y,si,z,si,a,si,bは、以下の値を示す。

τ err:センサiの他軸誤差推定値
i,x,si,y,si,z,si,a,si,b:センサiの他軸感度推定値
【0039】
他軸誤差推定値は、例えば、他軸力の重み付き線形和で表現され、重みに相当する他軸感度推定値は、トルクセンサ31固有の他軸感度を推定した値である。他軸感度推定値は、トルクセンサ31のスペックシート値を使用してもよいし、トルクセンサ31に何らかの手段で他軸力を印加したときの応答に基づいて推定した値を使用してもよい。なお、他軸誤差推定値は、重み付き線形和以外の形式をとってもよい。例えば、他軸誤差推定値は、他軸力に関する非線形関数としてもよいし、他軸力に関する表引きでもよい。また、以下の記載において、他軸誤差演算部212が接触力に起因した他軸力推定値を使用して算出した他軸誤差推定値を、接触起因他軸誤差推定値ともいう。
【0040】
ステップST3-3では、他軸誤差補正部21は、減算器においてトルク計測値から他軸誤差推定値を差し引いてトルク計測値に含まれる他軸誤差を除去し、他軸誤差補正後トルク値を算出して外乱補正部に送信する。
【0041】
図10に示すように、ステップST4では、ロボット制御装置2は、外乱補正部22において他軸誤差補正後トルク値からステップST1で算出した外乱推定値を差し引き、外乱補正後トルク値を算出する。
【0042】
ステップST5では、ロボット制御装置2は、力制御部23において、力推定値を力指令値に追従させるための角速度指令値を算出する。図13は、実施の形態1に係る力制御部23が行う処理を示すフローチャートである。ステップST5-1において、力制御部23は、指令値生成部がロボットプログラムの内容に従って算出した力指令値を取得する。実施の形態1において、Z軸並進方向は-10N、X及びY軸並進方向並びにX,Y及びZ軸回転方向は0Nを維持するものとする。ステップST5-2では、力制御部23は、力換算部231において、以下の数式(5)に基づき力推定値を算出する。

est=J-Tτest ・・・(5)

なお、数式(5)において、Fest、J及びτestは、以下の値を示す。

est:ベース座標系から見た力推定値(6×1)
J:ベース座標系から見た各関節から力点までのヤコビアン(6×6)
τest:外乱補正後トルク値(6×1)
【0043】
ステップST5-3では、力制御部23は、力制御量演算部232において、以下の数式(6)に基づき力比例フィードバック制御演算を行い、力点に関する速度指令値を算出する。実施の形態1において、力制御部23は、ロボットプログラムの内容に従い、Z軸並進方向の力ゲインを所望の力制御性能を確保できる正値とし、それ以外の方向については力制御しないため0を維持する。なお、力制御部は、補正の精度を向上させるために、Z軸並進方向以外についても力制御するように構成されていてもよい。

cmd=diag(K)(Fcmd-Fcmp) ・・・(6)

なお、数式(6)において、V cmd、K、Fcmd及びdiagは、以下の値を示す。

cmd:ベース座標系から見た速度指令値(6×1)
:ベース座標系から見た力比例ゲイン(6×1)
cmd:ベース座標系から見た力指令値(6×1)
diag:ベクトルを対角行列に変換する関数
【0044】
ステップST5-4では、力制御部23は、角速度換算部において、以下の数式(7)に基づき速度指令値を角速度指令値に変換する。


【0045】
図10に示すように、ステップST6では、ロボット制御装置2は、位置制御部24において、位置計測値を位置指令値に追従させるための角速度指令値を算出する。図14は、実施の形態1に係る位置制御部24が行う処理を示すフローチャートである。図14に示すように、ステップST6-1では、位置制御部24は、ロボットプログラムの内容に従い、指令値生成部において生成された位置指令値を取得する。実施の形態1においては、押付開始時の位置計測値が維持される。
【0046】
ステップST6-2では、位置制御部24は、位置換算部241において順運動学演算を行い位置計測値を算出する。ステップST6-3では、位置制御部24は、位置制御量演算部242において、以下の数式(8)に基づき位置比例フィードバック制御演算を行い、力点に関する速度指令値を算出する。実施の形態1において、位置制御部24は、ロボットプログラムの内容に従い、並進Z方向の位置ゲインは位置制御しないため0、それ以外の方向は所望の位置制御性能を確保できる正値を維持する。

cmd=diag(K)(Pcmd-Pmes) ・・・(8)

なお、数式(8)において、V cmd、K、Pcmd及びPmesは、以下の値を示す。

cmd:ベース座標系から見た速度指令値(6×1)
:ベース座標系から見た位置比例ゲイン(6×1)
cmd:ベース座標系から見た位置指令値(6×1)
mes:ベース座標系から見た位置計測値(6×1)
なお、回転方向の位置差分値は、オイラー角の差分値であり、単純な引き算ではない。
【0047】
ステップST6-4では、位置制御部24は、角速度換算部243において、以下の数式(9)に基づき速度指令値を角速度指令値に変換する。


【0048】
図10に示すように、ステップST7では、ロボット制御装置2は、合算部25において力制御部23及び位置制御部24が算出した角速度指令値の和を算出し、駆動制御部26に送信する。ステップST8では、駆動制御部26は、まず角速度演算部261において角度計測値を微分演算して角速度計測値を算出する。つぎに、駆動制御部26は、角速度制御量演算部262において、以下の数式(10)に基づき、角速度比例積分フィードバック制御演算を行い、モータの電流指令値を算出する。


【0049】
ステップST9では、ロボット制御装置2は、モータ33を電流指令値に従い動作させることにより、ロボットアーム3による押付動作が実施される。なお、図10に示す押付動作処理において、ロボット制御装置2は、ステップST1の処理を押付作業前に一度だけ実施し、ステップST2~ST9の処理を押付作業中にロボットアーム3の制御周期ごとに実施する。
【0050】
以上、実施の形態1に係るロボット制御システム1Aは、ロボットアーム3の関節J1に作用するトルクを検知する減算器213と、ロボットアームの特定部位を対象物に接触させる際のエンドエフェクタE1の位置に関する位置情報及びロボットアームの特定部位を対象物に接触させる際の接触力の指令値を取得する他軸力演算部211と、他軸力演算部211によって取得された位置情報および前記指令値取得部によって取得された指令値に基づいて、減算器213によって検知されたトルクに含まれる、接触力に起因する誤差を推定する他軸誤差演算部212と、減算器213によって検知されたトルク、及び他軸誤差演算部212によって推定された誤差に基づいて、エンドエフェクタE1がワークW1に接触するようにロボットアーム3を制御する駆動制御部26と、を備えている。このように構成されていることにより、ロボット制御システム1Aは、ロボットアーム3のエンドエフェクタE1をワークW1に接触させる際に、ロボットアーム3がワークW1から受ける力に起因するトルクの他軸誤差を接触力の指令値に基づいて推定し、当該推定結果に基づいてロボットアーム3を制御するので、ロボットアーム3がワークW1から受ける力に起因してトルク検知結果に生じた他軸誤差を補正することができる。これにより、ロボット制御システム1Aは、従来よりも高い精度でロボットアーム3の動作を制御することが可能になる。
【0051】
また、ロボット制御システム1Aは、トルク計測値からロボットアーム3とワークW1との接触力に起因する他軸誤差を除去した値を用いてロボットアーム3の力制御を実施するため、ロボットアーム3は、正確な力を作業対象であるワークW1に印加することができる。これにより、例えば、ロボット制御システム1Aは、ロボットアーム3がワークW1の加工を行う際の加工品質を改善することができる。
【0052】
一般に、力作業では、実施の形態1のように、力指令値(本実施形態ではベース座標系-Z方向に10N)及び力点(本実施形態ではロボットアームの手先)が決められている。実際の接触力が力指令値通りに発生していれば、数式(1)の通り、センサ座標系における力指令値及び力点の位置を用いて各トルクセンサに印加される他軸力を計算可能である。そして、事前に求めた他軸力と他軸誤差との関係を用いて、数式(4)の通りトルク計測値の補正が可能である.
【0053】
実際の接触力と力指令値とに差があると、計算した他軸力も実際の値と差があるため補正誤差を生じるが、他軸力と他軸誤差との関係が正確に求められている状態で補正したトルク計測値に基づいた力制御を同時に実行すれば、制御によって実際の接触力と力指令値の差は徐々に減少するため、補正誤差も減少する。そして、最終的な定常状態では、実際の接触力と力指令値とが一致し、補正誤差が十分小さくなることが期待できる。制御の過渡状態では補正誤差が残るが、過渡状態は、実際の接触力が力指令値へ漸近する途上であり、実際の接触力と力指令値に差がある状態なので、ここでの補正誤差は大きな問題にはならない。
【0054】
なお、実施の形態1では、他軸誤差補正部が先に他軸誤差を補正し、その後で外乱補正部が補正する順番で説明した。補正はこの順番が望ましいが、他軸誤差補正部と外乱補正部とは処理の順番を入れ替えることも可能である。ただし、他軸誤差を二重に補正しないよう注意する必要がある。単に順番を入れ替えるだけでは、外乱補正部は外乱推定値の算出時(ステップST1)に他軸誤差推定値を考慮することができず、外乱推定値は推定時の他軸誤差推定値を含んでしまう。これを回避するためには、例えば、外乱補正部が前回の他軸誤差推定値又は他軸誤差補正後トルク値を保持する機能を備えるとよい。他にも、他軸誤差補正後トルク値から二重補正分を除去する仕組みを用意してもよい。
【0055】
また、実施の形態1では、力制御部と位置制御部が角速度の指令値を算出し、それらを合算した角速度指令値に従って駆動制御部が各関節を制御する例で説明したが、これに限るものではない。位置制御部が位置指令値を算出し、力制御部が位置指令補正値を算出し、それらを合算した補正後位置指令値に従って駆動制御部が各関節を制御するのでもよい。この他、駆動制御部が電流やトルクの指令値を受けて制御するようにしてもよい。
【0056】
また、実施の形態1では、力点はロボットアーム3の手先であるエンドエフェクタE1としているが、手先以外のロボットアームの部位としてもよいし、ロボットアームに設置した感圧センサ等で検知してもよいし、ロボットの周辺やロボット上に備え付けたカメラ等で計測してもよい。
【0057】
また、実施の形態1では、全関節にトルクセンサが備えられていることを前提としているが、少なくとも1つの関節に備えられている場合でも、同様の手順で接触力に起因した他軸誤差補正を実施することが可能である。
【0058】
また、実施の形態1では、トルクセンサを用いてトルク検知を実施することを前提としているが、それ以外の手段で検知してもよい。たとえば、減速機入力側と出力側に備えたエンコーダの計測値を用いたトルク検知を実施してもよいし、角度計測値やモータ電流計測値を用いたトルクオブザーバを用いてもよい。
【0059】
また、実施の形態1では、全関節の角度計測値を使用することを前提としているが、一部関節の角度計測値でも十分な場合がある。例えば、力指令値がベース座標系といった関節角度に依存しない座標系で与えられている場合は、ロボットアームのベースから力点までに経由する関節の角度計測値を使用すれば十分である。なお、力点よりもロボットアーム3の手先側の関節には接触力起因の他軸力は印加されないため、他軸力推定値は0とみなしてよい。一方、力指令値がツール座標系(ロボットアーム3の手先に固定された座標系)といった関節角度に依存する座標系で与えられている場合は、センサから力点まで、あるいはセンサからその座標系までの少なくとも一方が経由する関節の角度計測値を使用すれば十分である。
【0060】
実施の形態2.
次に、実施の形態2に係るロボット制御システムについて説明する。実施の形態2に係るロボット制御システムは、実施の形態1に係るロボット制御システム1Aに対し、他軸誤差補正部が行う処理に係る構成が異なるが、他の構成については実施の形態1に係るロボット制御システム1Aと同様であり、実施の形態1に係るロボット制御システム1Aと同様の構成については、同一の名称又は同一の符号を付して説明を省略する。
【0061】
実施の形態1において、ロボット制御装置2の他軸誤差補正部21は、接触力に起因する他軸誤差を補正した。また、外乱補正部22は、外乱推定値を一定値として補正した。しかし、この方法では、ロボットアーム3の手先を動かす作業の場合、ロボットアームの質量に起因する他軸力がロボットアーム3の手先の移動に従って変化することで他軸誤差が変動する場合があり、他軸誤差補正部21による補正性能が低下するという課題がある。このため、ロボットアームは、正確な力を作業対象に印加することが難しくなる。そこで実施の形態2に係るロボット制御装置の他軸誤差補正部は、接触力に起因する他軸誤差に加えて、ロボットアームの質量に起因する他軸誤差も補正する。また、実施の形態2に係るロボット制御装置の外乱補正部は、一定値に加えてロボット質量起因のトルクに関する補正も実施する。
【0062】
以下、他軸誤差補正部に係る実施の形態1との差異について述べる。実施の形態2に係る他軸誤差補正部は、トルクセンサに印加されるロボット質量起因の他軸力による計測値変動を抑制するため、他軸力推定値の算出時に接触力起因の成分のほかにロボット質量起因の成分も考慮する。具体的には、実施の形態2に係る他軸誤差補正部は、他軸力推定値を、以下の数式(11)のx,y,z,a,b成分として算出する。


【0063】
数式(11)に含まれる、ベース座標系におけるトルクセンサに印加されるロボットアーム3の質量に起因する並進力・回転力(重力・慣性力・遠心力に由来)は、例えば、非特許文献1に記載された公知の技術であるRecursive Newton Euler Methodを用いて算出可能である。
【0064】
【非特許文献1】Armstrong W.W., 1979. Recursive solution to the equation of motion of an N-links manipulator. In Proc. 5th World Congress on Theory of Machines and Mechanisms, p. 1343-1346.
【0065】
実施の形態2に係る他軸誤差補正部は、上記の算出に当たって、ロボットの動力学モデル並びに角度計測値や、それを微分演算して得られた角速度計測値や角加速度計測値を用いる。なお、重力に起因する他軸力に関する補正のみが必要な場合は、角速度計測値、角加速度計測値は不要である。一般的に、力作業中は、低速度、低加速度で動作するので、重力に関する補正のみでも十分な場合がある。
【0066】
実施の形態2に係るロボット制御システムは、上記の数式(11)で算出した他軸力推定値を用いて他軸誤差補正後トルク値を算出することにより、外乱補正後トルク値に含まれるロボットアーム3の手先の移動に伴う他軸誤差の変動の影響が軽減され、接触力に起因する計測値を精度良く算出することができる。なお、ロボットアームの質量に起因する他軸力推定値を使用して算出した他軸誤差推定値を、質量起因他軸誤差推定値ともいう。
【0067】
また、実施の形態2に係る外乱補正部は、トルクセンサに印加されるロボットアームの質量に起因するトルクによる計測値の変動を抑制するため、外乱推定値の算出結果を式(11)のc成分に一定値を加算したものとする。この一定値は、例えば、ロボットアームが押付開始位置で静止した状態の他軸誤差補正後トルク値から上記c成分を差し引いた値とする。実施の形態2に係るロボット制御システムは、この外乱推定値を用いて外乱補正後トルク値を算出することにより、外乱補正後トルク値に含まれるロボットアームの手先の移動に伴うトルク変動の影響が軽減され、接触力起因の計測値を精度良く算出することができる。
【0068】
以上、実施の形態2に係るロボット制御システムは、トルク計測値から接触力に起因する他軸誤差ならびにロボットアームの質量に起因する他軸誤差を除去した値を用いて力制御を実施するため、作業中にロボットアームが大きく姿勢を変える作業(例えば、ロボットアームの手先に設置したリュータを金属板の縁に倣わせて面取りする作業等)の場合でも、ロボットアームは正確な力を作業対象に印加することができ、加工品質を改善することができる。
【0069】
なお、本開示は、各実施の形態の自由な組合せ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【0070】
1 :指令値生成部
1A :ロボット制御システム
2 :ロボット制御装置
3 :ロボットアーム
21 :他軸誤差補正部
22 :外乱補正部(誤差推定部)
23 :力制御部
24 :位置制御部
25 :合算部
26 :駆動制御部(制御部)
31 :トルクセンサ
32 :エンコーダ
33 :モータ
211 :他軸力演算部(位置情報取得部、指令値取得部)
212 :他軸誤差演算部(誤差推定部)
213 :減算器(トルク検知部、補正部)
221 :外乱演算部
222 :減算器
231 :力換算部
232 :力制御量演算部
233 :角速度換算部
241 :位置換算部
242 :位置制御量演算部
243 :角速度換算部
261 :角速度演算部
262 :角速度制御量演算部
E1 :エンドエフェクタ
J1 :関節
L1、L2 :リンク
W1 :ワーク
Z :並進
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14