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

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

▶ トヨタ自動車株式会社の特許一覧

特開2025-17182ロボット駆動装置、ロボット駆動方法及びロボット駆動プログラム
<>
  • 特開-ロボット駆動装置、ロボット駆動方法及びロボット駆動プログラム 図1
  • 特開-ロボット駆動装置、ロボット駆動方法及びロボット駆動プログラム 図2
  • 特開-ロボット駆動装置、ロボット駆動方法及びロボット駆動プログラム 図3
  • 特開-ロボット駆動装置、ロボット駆動方法及びロボット駆動プログラム 図4
  • 特開-ロボット駆動装置、ロボット駆動方法及びロボット駆動プログラム 図5
  • 特開-ロボット駆動装置、ロボット駆動方法及びロボット駆動プログラム 図6
  • 特開-ロボット駆動装置、ロボット駆動方法及びロボット駆動プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025017182
(43)【公開日】2025-02-05
(54)【発明の名称】ロボット駆動装置、ロボット駆動方法及びロボット駆動プログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20250129BHJP
【FI】
B25J13/08 Z
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023120133
(22)【出願日】2023-07-24
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】羽多野 顕
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707CX01
3C707HS27
3C707KS35
3C707KW05
3C707LT11
3C707LV23
3C707LW05
(57)【要約】
【課題】従来のロボット駆動装置では、位置制御及びトルク制御を十分に安定化させることが困難である問題があった。
【解決手段】本発明のロボット駆動装置は、ロボットの関節に取り付けられたモータに与える駆動電流を制御指令値に応じて増減させるとともに、前記モータの回転角に対応する位置現在値を出力するモータ駆動回路と、前記制御指令値を生成する制御指令値生成部と、制御指令値生成部の周期処理と同期した周期で、位置目標値及び仮想バネ定数を補正した補正後位置目標値及び補正後仮想バネ定数を前記制御指令値生成回路に出力する補正処理部と、を有し、前記補正処理部において、モータに与えられる外乱のうち周波数が低い外乱に対しては位置目標値に対して補正を加える位置制御手法を適用し、周波数が高い外乱に対しては仮想バネ定数に補正を加える仮想バネ定数制御手法を適用する。
【選択図】図5
【特許請求の範囲】
【請求項1】
ロボットの関節に取り付けられたモータに与える駆動電流を制御指令値に応じて増減させるとともに、前記モータの回転角に対応する位置現在値を出力するモータ駆動回路と、
少なくとも、前記位置現在値、前記ロボットの関節の位置目標値、仮想バネ定数、トルク目標値及び速度目標値を用いて前記制御指令値を生成する制御指令値生成部と、
前記制御指令値生成部の周期処理と同期した周期で、前記位置目標値及び前記仮想バネ定数を補正した補正後位置目標値及び補正後仮想バネ定数を前記制御指令値生成部に出力する補正処理部と、を有し、
前記補正処理部は、
前記モータに与えられる外乱のうち周波数が低い低周波側外乱成分に対しては前記位置目標値に対して補正を加える位置制御手法を適用し、周波数が高い高周波側外乱成分に対しては仮想バネ定数に補正を加える仮想バネ定数制御手法を適用した補正処理を行うロボット駆動装置。
【請求項2】
前記補正処理部は、
予め設定される値であって、前記モータに与えられる外乱により変動する外乱指標の目標値である外乱指標目標値を参照する参照処理と、
前記外乱指標の成分うち低周波側の周波数特性を有する前記低周波側外乱成分が前記外乱指標目標値以上であれば、予め設定された算出式に基づき算出される値を前記補正後位置目標値に設定し、前記低周波側外乱成分が前記外乱指標目標値よりも小さければ前記補正後位置目標値に予め設定される初期値を設定する第1の補正処理と、
前記外乱指標の成分うち高周波側の周波数特性を有する前記高周波側外乱成分が前記外乱指標目標値以上であれば、予め設定された算出式に基づき算出される値を前記補正後仮想バネ定数に設定し、前記低周波側外乱成分が前記外乱指標目標値よりも小さければ予め設定される初期値を前記補正後仮想バネ定数に設定する第2の補正処理と、を行う請求項1に記載のロボット駆動装置。
【請求項3】
前記補正処理部は、
前記第1の補正処理において補正された前記位置目標値を参照して前記第2の補正処理を行う請求項2に記載のロボット駆動装置。
【請求項4】
前記補正処理部は、
前記低周波側外乱成分が前記高周波側外乱成分以上であった場合、前記第1の補正処理に加えて、予め設定される初期値を前記補正後仮想バネ定数に設定する第1の補足補正処理を行い、
前記低周波側外乱成分が前記高周波側外乱成分よりも小さかった場合、前記第2の補正処理に加えて、予め設定される初期値を前記補正後位置目標値に設定する第2の補足補正処理を行う請求項2に記載のロボット駆動装置。
【請求項5】
前記外乱指標は、前記関節の位置偏差又は前記モータのトルク偏差であり、
前記補正処理部は、前記関節の位置偏差又は前記モータのトルク偏差を高周波側と低周波側の成分に分離するフィルタ処理部を有する請求項2に記載のロボット駆動装置。
【請求項6】
ロボットの関節に取り付けられたモータに与える駆動電流を制御指令値に応じて増減させるとともに、前記モータの回転角に対応する位置現在値を出力するモータ駆動回路と、
少なくとも、前記位置現在値、前記ロボットの関節の位置目標値、仮想バネ定数、トルク目標値及び速度目標値を用いて前記制御指令値を生成する制御指令値生成部と、
前記制御指令値生成部の周期処理と同期した周期で、前記位置目標値及び前記仮想バネ定数を補正した補正後位置目標値及び補正後仮想バネ定数を前記制御指令値生成部に出力する補正処理部と、を有するロボット駆動装置におけるロボット駆動方法であって、
前記補正処理部において、
前記モータに与えられる外乱のうち周波数が低い低周波側外乱成分に対しては前記位置目標値に対して補正を加える位置制御手法を適用し、周波数が高い高周波側外乱成分に対しては仮想バネ定数に補正を加える仮想バネ定数制御手法を適用した補正処理を行うロボット駆動方法。
【請求項7】
ロボットの関節に取り付けられたモータに与える駆動電流を制御指令値に応じて増減させるとともに、前記モータの回転角に対応する位置現在値を出力するモータ駆動回路と、
少なくとも、前記位置現在値、前記ロボットの関節の位置目標値、仮想バネ定数、トルク目標値及び速度目標値を用いて前記制御指令値を生成する制御指令値生成部と、
前記制御指令値生成部の周期処理と同期した周期で、前記位置目標値及び前記仮想バネ定数を補正した補正後位置目標値及び補正後仮想バネ定数を前記制御指令値生成部に出力する補正処理部と、を有し、前記補正処理部における演算処理を実行する演算部を有するロボット駆動装置において、前記演算部で実行されるロボット駆動プログラムであって、
前記モータに与えられる外乱のうち周波数が低い低周波側外乱成分に対しては前記位置目標値に対して補正を加える位置制御手法を適用し、周波数が高い高周波側外乱成分に対しては仮想バネ定数に補正を加える仮想バネ定数制御手法を適用した補正処理を行うロボット駆動プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はロボット駆動装置、ロボット駆動方法及びロボット駆動プログラムに関し、例えば、仮想バネ定数と位置目標を用いたロボットの制御を行うロボット駆動装置、ロボット駆動方法及びロボット駆動プログラムに関する。
【背景技術】
【0002】
物体に接触させるアームを有するロボットでは、アームが物体に接触或いは衝突する際にトルクの入力変化量が大きく、かつ、変化の周波数が高いため制御が不安定になりやすい問題がある。そこで、このような不安定な制御を安定化させる技術が特許文献1に開示されている。
【0003】
特許文献1に記載のロボットは、本体部と、床面上を移動する移動機構をそれぞれ含む、複数の移動機構部と、1又は複数の関節部をそれぞれ備え、前記本体部と各前記移動機構部との間をそれぞれ結合する、複数の脚部と、を備えたロボットであって、前記関節部は、インピーダンス制御により駆動される駆動軸を含む。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2022-099034号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載された位置制御においては、位置制御の精度を保証するために仮想バネ定数を比較的高めに設定する必要があり、現在位置の算出精度が低いと目標位置を変化させることが困難で振動しやすい問題がある。また、バネ定数制御においては、仮想バネ定数の取りうる値に下限が存在し、位置偏差を許容できなくなるといった課題がある。このように特許文献1に記載のロボットでは、位置制御及びトルク制御を安定化させるために取得する制御パラメータに利用の制限があるため、位置制御及びトルク制御を十分に安定化させることが困難である問題がある。
【0006】
本発明は、このような問題を解決するためになされたものであり、ロボットのアーム等の駆動部における位置制御をより安定化させることを目的とするものである。
【課題を解決するための手段】
【0007】
本発明にかかるロボット駆動装置の一態様は、ロボットの関節に取り付けられたモータに与える駆動電流を制御指令値に応じて増減させるとともに、前記モータの回転角に対応する位置現在値を出力するモータ駆動回路と、少なくとも、前記位置現在値、前記ロボットの関節の位置目標値、仮想バネ定数、トルク目標値及び速度目標値を用いて前記制御指令値を生成する制御指令値生成部と、前記制御指令値生成部の周期処理と同期した周期で、前記位置目標値及び前記仮想バネ定数を補正した補正後位置目標値及び補正後仮想バネ定数を前記制御指令値生成部に出力する補正処理部と、を有し、前記補正処理部は、前記モータに与えられる外乱のうち周波数が低い低周波側外乱成分に対しては前記位置目標値に対して補正を加える位置制御手法を適用し、周波数が高い高周波側外乱成分に対しては仮想バネ定数に補正を加える仮想バネ定数制御手法を適用した補正処理を行う。
【0008】
本発明にかかるロボット駆動方法の一態様は、ロボットの関節に取り付けられたモータに与える駆動電流を制御指令値に応じて増減させるとともに、前記モータの回転角に対応する位置現在値を出力するモータ駆動回路と、少なくとも、前記位置現在値、前記ロボットの関節の位置目標値、仮想バネ定数、トルク目標値及び速度目標値を用いて前記制御指令値を生成する制御指令値生成部と、前記制御指令値生成部の周期処理と同期した周期で、前記位置目標値及び前記仮想バネ定数を補正した補正後位置目標値及び補正後仮想バネ定数を前記制御指令値生成部に出力する補正処理部と、を有するロボット駆動装置におけるロボット駆動方法であって、前記補正処理部において、前記モータに与えられる外乱のうち周波数が低い低周波側外乱成分に対しては前記位置目標値に対して補正を加える位置制御手法を適用し、周波数が高い高周波側外乱成分に対しては仮想バネ定数に補正を加える仮想バネ定数制御手法を適用した補正処理を行う。
【0009】
本発明にかかるロボット駆動プログラムの一態様は、ロボットの関節に取り付けられたモータに与える駆動電流を制御指令値に応じて増減させるとともに、前記モータの回転角に対応する位置現在値を出力するモータ駆動回路と、少なくとも、前記位置現在値、前記ロボットの関節の位置目標値、仮想バネ定数、トルク目標値及び速度目標値を用いて前記制御指令値を生成する制御指令値生成部と、前記制御指令値生成部の周期処理と同期した周期で、前記位置目標値及び前記仮想バネ定数を補正した補正後位置目標値及び補正後仮想バネ定数を前記制御指令値生成部に出力する補正処理部と、を有し、前記補正処理部における演算処理を実行する演算部を有するロボット駆動装置において、前記モータに与えられる外乱のうち周波数が低い低周波側外乱成分に対しては前記位置目標値に対して補正を加える位置制御手法を適用し、周波数が高い高周波側外乱成分に対しては仮想バネ定数に補正を加える仮想バネ定数制御手法を適用した補正処理を行う。
【0010】
本発明にかかるロボット駆動装置、ロボット駆動方法及びロボット駆動プログラムでは、モータに与えられる外乱の周波数が低い場合には位置目標値に対して補正を加え、外乱の周波数が高い場合には仮想バネ定数に補正を加える。
【発明の効果】
【0011】
本発明により、ロボットの位置制御の安定度を高めることができる。
【図面の簡単な説明】
【0012】
図1】実施の形態1にかかるロボット駆動装置のブロック図である。
図2】位置目標値を変化させる場合の制御ロジックを説明する図である。
図3】仮想バネ定数を変化させる場合の制御ロジックを説明する図である。
図4】実施の形態1にかかる補正処理部のブロック図である。
図5】実施の形態1にかかる補正処理部の動作を説明するフローチャートである。
図6】実施の形態2にかかる補正処理部のブロック図である。
図7】実施の形態2にかかる補正処理部の動作を説明するフローチャートである。
【発明を実施するための形態】
【0013】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0014】
また、上述したプログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【0015】
実施の形態1
図1に実施の形態1にかかるロボット駆動装置1のブロック図を示す。図1に示す例は、ロボットのアームの関節等に設けられたモータを駆動することでロボットを動作させるものである。図1に示すように、実施の形態1にかかるロボット駆動装置1は、補正処理部10、制御指令値生成部11、モータ駆動回路12を有する。なお、ロボット駆動装置1では、位置目標値Pos_ref、仮想バネ定数Kp_ref、トルク目標値τref、速度目標値Vel_ref及び制御ゲインKd_refが図示しない上位システムから与えられる。また、ロボット駆動装置1では、制御ゲインKd_refが与えられない場合もある。
【0016】
モータ駆動回路12は、ロボットの関節に取り付けられたモータに与える駆動電流I_odを制御指令値に応じて増減させるとともに、モータの回転角に対応する位置現在値Pos_curを出力する。制御指令値生成部11は、補正処理部10は、少なくとも、位置現在値Pos_cur、ロボットの関節の位置目標値Pos_ref、仮想バネ定数Kp_ref、トルク目標値τref及び速度目標値Vel_refを用いて制御指令値を生成する。補正処理部10は、制御指令値生成部11の周期処理と同期した周期で、位置目標値Pos_ref及び仮想バネ定数Kp_refを補正した補正後位置目標値Pos_ref_c及び補正後仮想バネ定数Kp_ref_cを出力する。なお、実施の形態1では、制御指令値生成部11は、補正処理部10が出力する補正後位置目標値Pos_ref_c及び補正後仮想バネ定数Kp_ref_cを位置目標値Pos_ref及び仮想バネ定数Kp_refとして利用する。
【0017】
図1では、制御指令値生成部11の構成の一例を示している。具体的には、図1では、制御指令値生成部11が減算器21、乗算器22、現在速度算出部23、減算器24、乗算器25、加算器26、加算器27を有する例を示した。
【0018】
減算器21は、補正後位置目標値Pos_ref_cから位置現在値Pos_curを減算して位置偏差を出力する。乗算器22は、減算器21が出力する位置偏差に補正後仮想バネ定数Kp_ref_cを乗算した値を出力する。現在速度算出部23は、位置現在値Pos_curを微分して速度現在値を出力する。減算器24は、速度目標値Vel_refから速度現在値を減算して速度偏差を出力する。乗算器25は、減算器24が出力する速度偏差に制御ゲインKd_refを乗算した値を出力する。加算器26は、乗算器25が出力した値にトルク目標値τrefを加算した値を出力する。加算器27は、乗算器22が出力した値に加算器27が出力した値を加算してモータ駆動回路12に与える制御指令値を出力する。
【0019】
実施の形態1にかかるロボット駆動装置1では、補正処理部10において、モータに与えられる外乱のうち周波数が低い低周波側外乱成分に対しては位置目標値Pos_refに対して補正を加える位置制御手法を適用し、周波数が高い高周波側外乱成分に対しては仮想バネ定数Kp_refに補正を加える仮想バネ定数制御手法を適用した補正処理を行う。具体的には、補正処理部10は、位置目標値Pos_refと仮想バネ定数Kp_refの少なくとも一方についてモータに加わる外乱要因に対応した補正を行う。以下の説明では、モータに加わる外乱に起因して変動するパラメータのうちトルクを指示するパラメータを用いて補正処理の切り替えを行う例を説明するが、外乱に起因してモータに生じる変化を捉えられるパラメータのうち周波数が異なる成分を含むパラメータであれば補正処理の切り替えに用いることは可能である。
【0020】
さらに具体的には、実施の形態1にかかるロボット駆動装置1では、トルク変動の周波数特性を解析し、低周波側のトルク変動に対しては位置目標値の補正を行う位置制御手法を用いた第1の補正処理を行い、高周波側のトルク変動に対しては仮想バネ定数の補正を行う仮想バネ定数制御手法を用いた第2の補正処理を行う。そこで、位置制御手法と仮想バネ定数制御手法の制御ロジックについて説明する。
【0021】
図2に位置目標値を変化させる場合(位置制御手法)の制御ロジックを説明する図を示す。なお、図2では、仮想バネ定数は一定に維持されるものとする。図2に示す例では、位置現在値と、位置の目標値である位置目標値Pos_refとの差が位置差P1に達した時点で推定トルクτcurがトルク目標値τrefに達する。そして、位置制御手法では、位置現在値と位置目標値Pos_refとの差がさらに拡大した場合には、位置目標値Pos_refを、位置現在値との差が一定になるように補正後位置目標値Pos_ref_c(図2の補正あり目標位置)に補正する。位置制御手法を適用しない場合、現在位置値と位置目標値Pos_refとの位置差が位置差P1より拡大すると位置現在値を位置目標値Pos_refに近づけるために推定トルクがトルク目標値τrefよりも高くなる(図2の補正無しトルク)。一方、この位置制御手法を適用すると、位置現在値と位置目標値Pos_refとの位置差が位置差P1より拡大しても補正後の推定トルクはトルク目標値τrefで維持される。
【0022】
続いて、図3に仮想バネ定数を変化させる場合(仮想バネ定数制御手法)の制御ロジックを説明する図を示す。なお、図3に示す例では、位置目標値は一定に維持されるものとする。図3に示す例においても、位置現在値と、位置の目標値である位置目標値Pos_refとの差が位置差P1に達した時点で推定トルクτcurがトルク目標値τrefに達する。そして、仮想バネ定数手法では、位置現在値と位置目標値Pos_refとの差がさらに拡大した場合には、仮想バネ定数Kpを位置差の大きさに応じて仮想バネ定数Kp_refよりも徐々に小さくなるように補正する。仮想バネ定数制御手法を適用しない場合、現在位置値と位置目標値Pos_refとの位置差が位置差P1より拡大すると位置現在値を位置目標値Pos_refに近づけるために推定トルクがトルク目標値τrefよりも高くなる(図2の補正無しトルク)。一方、この仮想バネ定数制御手法を適用すると、位置現在値と位置目標値Pos_refとの位置差が位置差P1より拡大しても補正後の推定トルクはトルク目標値τrefで維持される。
【0023】
図2及び図3で説明したように、位置制御手法も仮想バネ定数制御手法もいずれの手法であっても、トルク目標値τrefを上限とするように推定トルクを制限することはできる。しかしながら、位置制御手法は、低い周波数で変動するトルク制御により効果的であり、仮想バネ定数制御手法は高い周波数で変動するトルク制御により効果的であるという違いがある。そこで、実施の形態1にかかるロボット駆動装置1では、補正処理部10において、低周波側のトルク変動に対しては位置目標値の補正を行う位置制御手法を用いた第1の補正処理を行い、高周波側のトルク変動に対しては仮想バネ定数の補正を行う仮想バネ定数制御手法を用いた第2の補正処理を行う。そこで、補正処理部10の構成及び動作について以下でさらに詳細に説明する。
【0024】
補正処理部10は、補正処理を行うに当たり、参照処理、第1の補正処理及び第2の補正処理を行う。参照処理では、予め設定される値であって、モータに与えられる外乱により変動する外乱指標の目標値である外乱指標目標値を参照する。以下の説明では、外乱指標としてトルク値を用いる、そこで補正処理部10では、外乱指標の目標値としてトルク目標値τrefを参照する。また、補正処理部10では、モータのトルクとして、モータから得た位置現在値を用いた演算から得られる推定値を用いる。このトルクの推定値を以下の説明では推定トルクと称する。なお、以下で説明する補正処理部10では、モータ駆動回路12がモータ制御において取得する回転角に基づき出力する位置現在値Pos_curを用いて推定トルクを算出する例を説明するが、トルクセンサや電流センサ等を用いて取得されるパラメータから得られる値を以下で説明する推定トルクとして利用することもできる。なお、トルクセンサは、応答周波数が低い(例えば、1KHz以下)ため、トルクセンサから得られたトルク値は、以下で説明する低周波側推定トルクτcur_Lの代替値として好適である。また、電流センサは、応答周波数が高い(例えば、200KHz以下)ため、電流センサから得られた電流値から算出する推定トルクは、以下で説明する高周波側推定トルクτcur_Hの代替値として好適である。
【0025】
第1の補正処理では、外乱指標(推定トルク)の成分うち低周波側の周波数特性を有する低周波側外乱成分(例えば、低周波側推定トルクτcur_L)が外乱指標目標値(例えば、トルク目標値τref)以上であれば、予め設定された算出式に基づき算出される値を補正後位置目標値Pos_ref_cに設定し、低周波側外乱成分が外乱指標目標値よりも小さければ予め設定される初期値(例えば、位置目標値Pos_ref)を補正後位置目標値Pos_ref_cに設定する。
【0026】
第2の補正処理では、外乱指標(推定トルク)の成分うち高周波側の周波数特性を有する高周波側外乱成分(例えば、高周波側推定トルクτcur_H)が外乱指標目標値(例えば、トルク目標値τref)以上であれば、予め設定された算出式に基づき算出される値を補正後仮想バネ定数Kp_ref_cに設定し、低周波側外乱成分が外乱指標目標値よりも小さければ予め設定される初期値を補正後仮想バネ定数Kp_ref_cに設定する。
【0027】
上記動作を実現する補正処理部10の構成例について説明する。そこで、図4に実施の形態1にかかる補正処理部10のブロック図を示す。図4に示すように、補正処理部10は、補正位置算出部31、補正Kp算出部32、ディレイ回路33、34、フィルタ処理部35を有する。なお、実施の形態1にかかるロボット駆動装置1では、制御指令値生成部11が所定の周期でモータ駆動回路12に与える制御指令値を生成するため、補正処理部10も制御指令値生成部11の周期に同期した周期で補正処理を行う。図4及び以下の説明では、nを現周期、n-1を前周期の値であることを示す符号として示した。
【0028】
補正位置算出部31は、参照処理と第1の補正処理とを行う。具体的には、参照処理では、補正位置算出部31は、与えられるトルク目標値τrefを参照する。また、補正位置算出部31は、トルク目標値τrefと、フィルタ処理部35において算出された低周波側推定トルクτcur_Lと、を比較し、低周波側推定トルクτcur_Lがトルク目標値τref以上である場合、(1)式に基づき位置目標値Pos_refの補正値である補正後位置目標値Pos_ref_cを算出する。
Pos_ref_c[n]=(τcur_L-τref)*Kp_ref*Pos_ref_c[n-1]・・・(1)
なお、(1)式においてKp_refは、仮想バネ定数Kp_refである。一方、補正位置算出部31は、低周波側推定トルクτcur_Lがトルク目標値τrefよりも小さい場合、(2)式に基づき位置目標値Pos_refの補正値である補正後位置目標値Pos_ref_cを算出する。
Pos_ref_c[n]=Pos_ref・・・(2)
つまり、補正位置算出部31は、低周波側推定トルクτcur_Lがトルク目標値τrefよりも小さい場合、補正後位置目標値Pos_ref_cを位置目標値Pos_refに戻す、或いは、維持する。
【0029】
補正Kp算出部32は、参照処理と第2の補正処理とを行う。具体的には、参照処理では、補正Kp算出部32は、与えられるトルク目標値τrefを参照する。また、補正Kp算出部32は、トルク目標値τrefと、フィルタ処理部35において算出された高周波側推定トルクτcur_Hと、を比較し、高周波側推定トルクτcur_Hがトルク目標値τref以上である場合、(3)式に基づき仮想バネ定数Kp_refの補正値である補正後仮想バネ定数Kp_ref_cを算出する。
Kp_ref[n]=τref/(Pos_σ_H)・・・(3)
なお、(3)式のPos_σ_Hは、高周波側の位置偏差であり、(4)式で表わされる。
Pos_σ_H=Pos_ref_c[n]-Pos_cur_L・・・(4)
(4)式においてPos_cur_Lは、高周波側位置現在値Pos_cur_Hである。一方、補正Kp算出部32は、高周波側推定トルクτcur_Hがトルク目標値τrefよりも小さい場合、(5)式に基づき仮想バネ定数Kp_refの補正値である補正後仮想バネ定数Kp_ref_cを算出する。
Kp_ref_c[n]=Kp_ref・・・(5)
つまり、補正Kp算出部32は、高周波側推定トルクτcur_Hがトルク目標値τrefよりも小さい場合、補正後仮想バネ定数Kp_ref_cを仮想バネ定数Kp_refに戻す、或いは、維持する。
【0030】
ディレイ回路33は、補正位置算出部31が出力した補正後位置目標値Pos_ref_cを次の処理周期まで保持する。ディレイ回路34は、補正Kp算出部32が出力した補正後仮想バネ定数Kp_ref_cを次の処理周期まで保持する。
【0031】
フィルタ処理部35は、関節の位置偏差又はモータのトルク偏差を高周波側と低周波側の成分に分離する。具体的には、フィルタ処理部35は、モータから位置現在値Pos_curを取得し、取得した位置現在値Pos_curに対してフィルタ処理を施して、低周波側位置現在値Pos_cur_Lと高周波側位置現在値Pos_cur_Hとを算出する。そして、フィルタ処理部35は、低周波側位置現在値Pos_cur_Lを用いて低周波側位置偏差と低周波側推定トルクτcur_Lを算出する。また、フィルタ処理部35は、高周波側位置現在値Pos_cur_Hを用いて高周波側位置偏差Pos_σ_Hと高周波側推定トルクτcur_Hを算出する。
【0032】
上記演算を行うために、フィルタ処理部35は、ローパスフィルタ41、減算器42。乗算器43、ハイパフィルタ44、減算器45、乗算器46を有する。ローパスフィルタ41は、位置現在値Pos_curに対してローパスフィルタ処理を施して、低周波側位置現在値Pos_cur_Lを出力する。減算器42は、補正後位置目標前回値Pos_ref_c[n-1]から低周波側位置現在値Pos_cur_Lを減算して低周波側位置偏差を出力する。乗算器43は、補正後仮想バネ定数前回値Kp_ref_c[n-1]に減算器42が出力した低周波側位置偏差を乗算して低周波側推定トルクτcur_Lを出力する。
【0033】
ハイパフィルタ44は、位置現在値Pos_curに対してハイパス処理を施して、高周波側位置現在値Pos_cur_Hを出力する。減算器45は、補正後位置目標値Pos_ref_c[n]から高周波側位置現在値Pos_cur_Hを減算して高周波側位置偏差Pos_σ_Hを出力する。乗算器46は、補正後仮想バネ定数前回値Kp_ref_c[n-1]に減算器45が出力した高周波側位置偏差Pos_σ_Hを乗算して高周波側推定トルクτcur_Hを出力する。
【0034】
上記処理を行う順序について具体的に説明を行う。そこで、図5に実施の形態1にかかる補正処理部10の動作を説明するフローチャートを示す。なお、補正処理部10は、図5で示した処理を制御指令値生成部11の処理周期に同期した周期で繰り返す。
【0035】
図5に示すように、補正処理部10は、処理を開始すると、まず、位置現在値Pos_curを取得する(ステップS1)。続いて、補正処理部10は、ローパスフィルタ41において、位置現在値Pos_curから低周波側位置現在値Pos_cur_Lを算出する(ステップS2)。また、補正処理部10は、補正処理部10は、ハイパフィルタ44において、位置現在値Pos_curから高周波側位置現在値Pos_cur_Hを算出する(ステップS3)。
【0036】
次いで、補正処理部10は、フィルタ処理部35において、補正後位置目標前回値Pos_ref_c[n-1]と、低周波側位置現在値Pos_cur_Lと、補正後仮想バネ定数前回値Kp_ref_c[n-1]と、を用いて低周波側推定トルクτcur_Lを算出する(ステップS4)。その後、補正処理部10は、補正位置算出部31において、補正後位置目標値Pos_ref_c[n]を算出する(ステップS5)。このステップS5では、補正位置算出部31は、低周波側推定トルクτcur_Lとトルク目標値τrefとの大小関係に基づき(1)式と(2)式の何れか一方の計算式を選択して補正後位置目標値Pos_ref_c[n]を算出する。
【0037】
次いで、補正処理部10は、フィルタ処理部35において、ステップS5で算出された補正後位置目標値Pos_ref_c[n]と、高周波側位置現在値Pos_cur_Hと、を用いて高周波側位置偏差Pos_σ_Hを算出する(ステップS6)。また、補正処理部10は、フィルタ処理部35において、補正後仮想バネ定数前回値Kp_ref_c[n-1]と、高周波側位置偏差Pos_σ_Hと、を用いて高周波側推定トルクτcur_Hを算出する(ステップS7)。その後、補正処理部10は、補正Kp算出部32において、補正後仮想バネ定数Kp_ref_c[n]を算出する(ステップS8)。このステップS8では、補正Kp算出部32は、高周波側推定トルクτcur_Hとトルク目標値τrefとの大小関係に基づき(3)式と(5)式の何れか一方の計算式を選択して補正後仮想バネ定数Kp_ref_c[n]を算出する。
【0038】
上記説明より、実施の形態1にかかるロボット駆動装置1では、補正処理部10が外乱により生じるトルク変動を低周波成分と高周波成分とに分離し、低周波成分に対しては位置制御手法を適用し、高周波成分に対しては仮想バネ定数制御手法を適用した制御を行う。これにより、実施の形態1にかかるロボット駆動装置1では、位置制御手法と仮想バネ定数制御手法との何れか一方のみを適用した制御手法における制限がなくすことが可能になる。そして、実施の形態1にかかるロボット駆動装置1に位置制御手法と仮想バネ定数制御手法との何れか一方のみを適用した制御手法に比べて高い安定性を実現することができる。
【0039】
具体的には、実施の形態1にかかるロボット駆動装置1は、モータにより駆動されるアーム等が物体に衝突或いは接触した時に安定的に位置とトルクをコントロールすることができる。また、実施の形態1にかかるロボット駆動装置1は、モータにより駆動されるアーム等が物体に衝突或いは接触した後にさらに位置偏差が大きくなっていく場合にトルクを一定にすることができる。このような制御により、実施の形態1にかかるロボット駆動装置1では、アームが物体に衝突或いは接触した際に物体を破損させるような事故を防ぐことが可能になる。
【0040】
実施の形態2
実施の形態2では、実施の形態1の補正処理部10の別の形態となる補正処理部10aについて説明する。なお、実施の形態2の説明において実施の形態1の説明で説明した構成要素については実施の形態1と同じ符号を付して説明を省略する。
【0041】
図6に実施の形態2にかかる補正処理部10aのブロック図を示す。図6に示すように、実施の形態2にかかる補正処理部10aは、補正位置算出部31、補正Kp算出部32及びフィルタ処理部35を補正パラメータ算出部51及びフィルタ処理部55に置き換えたものである。補正パラメータ算出部51は、補正位置算出部31で行っていた第1の補正処理と補正Kp算出部32で行っていた第2の補正処理とを行う。
【0042】
ここで、補正パラメータ算出部51では、低周波側推定トルクτcur_Lが高周波側推定トルクτcur_H以上であれば(1)式及び(2)式に基づき補正後位置目標値Pos_ref_c[n]を算出する第1の補正処理を行う。また、補正パラメータ算出部51は、第1の補正処理とともに、予め設定される初期値(例えば、仮想バネ定数Kp_ref)を補正後仮想バネ定数Kp_ref_c[n]に設定する。
【0043】
また、補正パラメータ算出部51では、低周波側推定トルクτcur_Lが高周波側推定トルクτcur_Hよりも小さければ(3)式及び(5)式に基づき補正後位仮想バネ定数Kp_ref_c[n]を算出する第2の補正処理を行う。また、補正パラメータ算出部51は、第2の補正処理とともに、予め設定される初期値(例えば、位置目標値Pos_ref)を補正後位置目標値Pos_ref_c[n]に設定する。
【0044】
フィルタ処理部55は、減算器45を減算器65に置き換えたものである。フィルタ処理部55では、減算器45において、補正後位置目標前回値Pos_ref_c[n-1]から高周波側位置現在値Pos_cur_Hを減算することで、高周波側位置偏差Pos_σ_Hを算出する。これは、実施の形態2では、仮想バネ定数Kp_refの補正値の算出に前周期で算出された補正後位置目標前回値Pos_ref_c[n-1]を利用することで、補正パラメータ算出部51が高周波側推定トルクτcur_Hと低周波側推定トルクτcur_Lとの大小関係に基づき位置目標値Pos_refと仮想バネ定数Kp_refの何れかに対して補正処理を行うことができる。
【0045】
このように、実施の形態2にかかる補正処理部10aの動作は、補正値を算出するための処理フローが異なる。そこで、図7に実施の形態2にかかる補正処理部10aの動作を説明するフローチャートし、補正処理部10aの動作について説明する。
【0046】
図7に示すように、補正処理部10aは、処理を開始すると、まず、位置現在値Pos_curを取得する(ステップS11)。続いて、補正処理部10aは、ローパスフィルタ41において、位置現在値Pos_curから低周波側位置現在値Pos_cur_Lを算出する(ステップS12)。また、補正処理部10aは、補正処理部10は、ハイパフィルタ44において、位置現在値Pos_curから高周波側位置現在値Pos_cur_Hを算出する(ステップS13)。
【0047】
次いで、補正処理部10aは、フィルタ処理部55において、補正後位置目標前回値Pos_ref_c[n-1]と、低周波側位置現在値Pos_cur_Lと、補正後仮想バネ定数前回値Kp_ref_c[n-1]と、を用いて低周波側推定トルクτcur_Lを算出する(ステップS14)。また、補正処理部10aは、フィルタ処理部55において、補正後位置目標前回値Pos_ref_c[n-1]と、高周波側位置現在値Pos_cur_Hと、を用いて高周波側位置偏差Pos_σ_Hを算出する(ステップS15)。そして、補正処理部10aは、フィルタ処理部55において、補正後仮想バネ定数前回値Kp_ref_c[n-1]と、高周波側位置偏差Pos_σ_Hと、を用いて高周波側推定トルクτcur_Hを算出する(ステップS16)。
【0048】
その後、補正処理部10aは、補正パラメータ算出部51において、低周波側推定トルクτcur_Lと高周波側推定トルクτcur_Hとの大小比較を行う(ステップS17)。そして、低周波側推定トルクτcur_Lが高周波側推定トルクτcur_H以上の大きさであれば、第1の補正処理により、補正後位置目標値Pos_ref_c[n]を算出する(ステップS18)。また、図示はしていないが、ステップS18では、補正処理部10aは、第1の補足補正処理により、補正後仮想バネ定数Kp_ref_c[n]として仮想バネ定数Kp_refを出力する。一方、低周波側推定トルクτcur_Lが高周波側推定トルクτcur_Hよりも小さければ、第2の補正処理により、補正後仮想バネ定数Kp_ref_c[n]を算出する(ステップS19)。また、図示はしていないが、ステップS19では、補正処理部10aは、第2の補足補正処理により、補正後位置目標値Pos_ref_c[n]として位置目標値Pos_refを出力する。
【0049】
上記説明より、実施の形態2にかかる補正処理部10aを含むロボット駆動装置は、補正後位置目標値Pos_ref_c及び補正後仮想バネ定数Kp_ref_cの算出に要する計算量が実施の形態1にかかる補正処理部10よりも少ない。これにより、実施の形態2にかかる補正処理部10aは、実施の形態1の補正処理部10よりも演算負荷を低減することができる。また、実施の形態2にかかる補正処理部10aは、実施の形態1の補正処理部10よりも演算負荷が少ないため、より高速な周期で動作を行う事が可能になる。
【0050】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【0051】
1 ロボット駆動装置
10、10a 補正処理部
11 制御指令値生成部
12 モータ駆動回路
21、24、42、45、65 減算器
22、25、43、46 乗算器
23 現在速度算出部
26、27 加算器
31 補正位置算出部
32 補正Kp算出部
33、34 ディレイ回路
34 ディレイ回路
35 フィルタ処理部
41 ローパスフィルタ
44 ハイパフィルタ
51 補正パラメータ算出部
55 フィルタ処理部
Pos_cur 位置現在値
Pos_ref 位置目標値
Pos_ref_c 補正後位置目標値
Kp_ref 仮想バネ定数
Kp_ref_c 補正後仮想バネ定数
Vel_ref 速度目標値
Kd_ref 制御ゲイン
τref トルク目標値
τcur_L 低周波側推定トルク
τcur_H 高周波側推定トルク
図1
図2
図3
図4
図5
図6
図7