JP6915395B2 - 制御装置、ロボットシステム、テーブル作成方法およびロボット制御方法 - Google Patents

制御装置、ロボットシステム、テーブル作成方法およびロボット制御方法 Download PDF

Info

Publication number
JP6915395B2
JP6915395B2 JP2017118375A JP2017118375A JP6915395B2 JP 6915395 B2 JP6915395 B2 JP 6915395B2 JP 2017118375 A JP2017118375 A JP 2017118375A JP 2017118375 A JP2017118375 A JP 2017118375A JP 6915395 B2 JP6915395 B2 JP 6915395B2
Authority
JP
Japan
Prior art keywords
unit
control device
robot
operating
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017118375A
Other languages
English (en)
Other versions
JP2019000948A5 (ja
JP2019000948A (ja
Inventor
正樹 元▲吉▼
正樹 元▲吉▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2017118375A priority Critical patent/JP6915395B2/ja
Priority to CN201810613635.7A priority patent/CN109129414B/zh
Priority to US16/009,324 priority patent/US20180361592A1/en
Publication of JP2019000948A publication Critical patent/JP2019000948A/ja
Publication of JP2019000948A5 publication Critical patent/JP2019000948A5/ja
Application granted granted Critical
Publication of JP6915395B2 publication Critical patent/JP6915395B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J17/00Joints
    • B25J17/02Wrist joints
    • B25J17/0258Two-dimensional joints
    • B25J17/0275Universal joints, e.g. Hooke, Cardan, ball joints
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • B25J9/0087Dual arms
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1605Simulation of manipulator lay-out, design, modelling of manipulator
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1651Programme controls characterised by the control loop acceleration, rate control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39325External force control, additional loop comparing forces corrects position

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本発明は、制御装置、ロボットシステム、テーブル作成方法およびロボット制御方法に関する。



従来、ロボットの技術分野において、減速機として、波動歯車減速機が使用されている。波動歯車減速機は、その原理上、角度伝達誤差を含む。特許文献1は、波動歯車減速機の角度伝達誤差を低減する制御方法を提案している。特許文献1の技術においては、制御対象として、モーターと減速機が一体となっている装置が想定されている。そのような装置を制御対象とする場合は、以下のような方法で、その装置の角度伝達誤差を低減できる。すなわち、装置の完成後に装置の入力と出力の測定を同時に行って、伝達誤差を算出する。そして、その伝達誤差に基づいて装置用の補正値を決定し、その補正値を使用してその装置を制御する。
しかし、ロボットのように複数組のモーターと減速機が使用される装置においては、装置が完成し工場などに設置された後、メンテナンスの際に一部の減速機が交換されることがある。そのような場合には、装置の完成後に設定された補正値を使用した制御を行っても、装置全体として角度伝達誤差を低減できなくなる。
そのような装置において、一部の減速機が交換された場合には、交換後に新たに装置の入力と出力の測定を行って、その装置用の新たな補正値を決定することができる。しかし、装置が設置された環境によっては、減速機を含む装置の周囲に、その装置が処理する部材を供給する供給装置、減速機を含む装置が処理した部材を次の工程に搬送する搬送装置、他の加工装置などが設けられている場合がある。そのような場合には、新たな減速機用の補正値を決定するための測定は、それら周囲の装置と干渉しないように行われなければならない。そのような場合には、測定の際の装置の動作範囲が小さくなるため、十分な精度で補正値を決定できない場合がある。
また、測定の際の装置の動作範囲を十分に確保するため、減速機を含む装置を周囲に干渉物がない環境に移動させてから、新たな減速機用の補正値を決定するための測定を行うこともできる。しかし、そのような場合には、移設を行わない場合に比べて、その装置が行っている生産が中断する時間が長くなってしまう。
そのような問題を解決するための技術として、特許文献2においては、トルク指令、モーター角度、手先位置から、ロボット全体ではなく、ロボットの各関節における角度伝達誤差の補正値を求める技術が提案されている。特許文献2の技術においては、補正パラメーターを決定するために、ロボットに水平面上での一方向の直線動作をさせて測定を行っている。
特開2008−90692号公報 特開2011−212823号公報
しかし、特許文献2においては、角度伝達誤差を測定する際に補正値の測定精度を高めることができる動作については、考慮されていない。たとえば、特許文献2において実施されている水平面上での直線動作においては、補正値を決定しようとしている減速機が設けられている関節以外の関節も同時に駆動される。このため、測定値には、他の関節に起因する誤差が含まれる。また、特許文献2の技術においては、関節を一方向に動かして測定を行っている。このため、特許文献2の技術においては、減速機のロストモーション(静止摩擦力や、軸の弾性的なねじれに起因する、動作の向きに関して非対称の位置の誤差)やバックラッシ(駆動力を伝達する構成要素同士の隙間に起因する位置の誤差)が考慮されていない。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
(1)本開示の一形態によれば、ロボットを制御する制御装置が提供される。前記ロボットは、駆動力を発生させる第1駆動部によって第1伝達部を介して駆動される第1可動部を備える。この制御装置は:前記第1可動部の位置精度を向上させるためのパラメーターを導出する第1処理を指示する信号を受け付ける受付部と;前記受付部が前記信号を受け付けたことに起因して、前記第1駆動部を制御して、前記第1可動部に第1特定動作を行わせる制御部と、を備える。前記第1特定動作は、前記第1可動部を第1位置から第2位置へ動作させる第1動作要素と、前記第1動作要素とは逆向きに前記第1可動部を動作させる第2動作要素と、を含む。前記制御部は、前記第1動作要素と前記第2動作要素とが実行されているときに:前記第1伝達部の入力側の動作位置を検出する第1入力位置検出部を使用して、前記第1伝達部の前記入力側の動作位置を検出させ;前記第1伝達部の出力側の動作位置を検出する第1出力位置検出部を使用して、前記第1伝達部の前記出力側の動作位置を検出させる。
このような態様とすれば、第1動作要素の際の第1伝達部の入力側の動作位置と出力側の動作位置とを検出することができる。そして、第1動作要素とは逆向きの第2動作要素の際の第1伝達部の入力側の動作位置と出力側の動作位置とを検出することができる。そのため、入力側の動作位置から理論的に計算される出力側の理想的な動作位置と、測定された出力側の動作位置とのズレを、逆向きの二つの移動を行った場合について入手することができる。よって、それらの測定値に基づいて、ロストモーションやバックラッシを考慮して、第1可動部の位置精度を向上させるためのパラメーターを決定することができる。
(2)上記形態の制御装置であって、前記第1動作要素と前記第2動作要素は、回転であり、前記第1伝達部の前記入力側の前記動作位置は、角度位置であり、前記第1伝達部の前記出力側の前記動作位置は、角度位置である、態様とすることもできる。このような態様とすれば、回転運動を伝達する第1伝達部の角度伝達誤差を解消するための補正値を高精度に決定することができる。
(3)上記形態の制御装置であって、前記第1動作要素と前記第2動作要素の移動速度は、いずれも100°/秒以下である、態様とすることができる。このような態様とすれば、第1動作要素と第2動作要素の移動速度が100°/秒より大きい態様に比べて、第1可動部の慣性に起因する振動等が第1伝達部の出力側および入力側の動作位置に与える影響を低減して、測定を行うことができる。
(4)上記形態の制御装置であって、前記第1伝達部は、前記第1駆動部からの継続的な一定の入力に対して周期的な伝達誤差を発生させ、前記第1位置と前記第2位置との間の角度範囲は、1周期分の前記伝達誤差を生じさせる角度範囲を含む、態様とすることができる。このような態様とすれば、第1位置と前記第2位置との間の角度範囲が、1周期分の伝達誤差を生じさせる角度範囲よりも小さい態様に比べて、より高い精度で第1伝達部の角度伝達誤差を測定することができる。
(5)上記形態の制御装置であって、前記第1伝達部は、回転入力を、前記回転入力の回転速度よりも低い回転速度を有する回転出力に変換する減速機を含む、態様とすることができる。
(6)上記形態の制御装置であって、前記第1出力位置検出部は、前記第1伝達部の出力軸の動作位置を検出することができる、態様とすることができる。このような態様とすれば、第1伝達部の出力によって駆動される下流の構成の動作位置を測定する態様に比べて、第1伝達部の出力位置を正確に検出することができる。
(7)上記形態の制御装置であって、前記第1出力位置検出部は、前記第1可動部の角速度および加速度の少なくとも一方を検出することができる慣性センサーである、態様とすることができる。このような態様とすれば、第1可動部の角速度を検出するための慣性センサーが第1可動部に設けられている場合には、その慣性センサーを有効に活用して、第1伝達部の出力位置を検出することができる。
(8)上記形態の制御装置であって、前記パラメーターは、前記第1伝達部の伝達誤差を低減する補正値を含む、態様とすることができる。このような態様とすれば、第1動作要素と第2動作要素の際に得られた測定値に基づいて、ロストモーションやバックラッシを考慮して、第1伝達部の伝達誤差を低減するための補正値を決定することができる。
(9)上記形態の制御装置であって、前記パラメーターは、前記第1伝達部の伝達誤差を低減する補正値を導出するためのパラメーターを含む、態様とすることができる。このような態様とすれば、第1動作要素と第2動作要素の際に得られた測定値に基づいて、ロストモーションやバックラッシを考慮して、第1伝達部の伝達誤差を低減するためのパラメーターを決定することができる。
(10)上記形態の制御装置であって、前記第2動作要素は、前記第1可動部を前記第2位置から前記第1位置へ動作させる動作である、態様とすることができる。このような態様とすれば、逆方向の二つの移動について、同程度の精度で、第1可動部の位置精度を向上させるためのパラメーターを決定することができる。
(11)上記形態の制御装置であって、前記第1特定動作は、前記第1動作要素と前記第2動作要素との組み合わせを複数、含む、態様とすることができる。このような態様とすれば、第1特定動作として第1動作要素と第2動作要素との組み合わせを1回だけ行う態様に比べて、逆方向の二つの移動について、より高精度に、第1可動部の位置精度を向上させるためのパラメーターを決定することができる。
(12)上記形態の制御装置であって、前記受付部は、前記受付部は、前記第1処理を指示する信号として、前記第1処理を実行すべき旨のコマンドを表す信号を受け付けることができる、態様とすることができる。このような態様とすれば、ユーザーは、コマンドを使って、自ら望む内容を詳細に指定して、関節の減速機の入力側の動作位置および出力側の動作位置を検出させることができる。
(13)上記形態の制御装置であって、前記ロボットは、それぞれ駆動力を発生させる駆動部によって伝達部を介して関節において駆動される可動部を2個以上備え、前記第1処理を指示する信号は、前記2個以上の可動部のうち前記第1可動部としての1の可動部の前記関節の指定を表す情報を含む、態様とすることができる。このような態様とすれば、ユーザーの意思を反映して、指定された関節に対応する可動部について、第1処理を行って、その第1伝達部の入力側の動作位置および出力側の動作位置を検出することができる。
(14)上記形態の制御装置であって、前記ロボットは、さらに、駆動力を発生させる第2駆動部によって第2伝達部を介して駆動される第2可動部を備え;前記受付部は、前記第1可動部の位置精度を向上させるための前記パラメーターを導出し、前記第2可動部の位置精度を向上させるためのパラメーターを導出する第2処理を指示する信号を受け付けることができ;前記制御装置は:前記受付部が前記第2処理を指示する信号を受け付けたことに起因して、前記第1駆動部を制御して前記第1可動部に前記第1特定動作を行わせ、前記第2駆動部を制御して、前記第1特定動作と少なくとも一部、並行して、前記第2可動部に第2特定動作を行わせ;前記第2特定動作は、前記第2可動部を第3位置から第4位置へ動作させる第3動作要素と、前記第3動作要素とは逆向きに前記第2可動部を動作させる第4動作要素と、を含み;前記制御部は:前記第1動作要素と前記第2動作要素とが実行されているときに、前記第1入力位置検出部を使用して、前記第1伝達部の前記入力側の動作位置を検出させ、前記第1出力位置検出部を使用して、前記第1伝達部の前記出力側の動作位置を検出させ;前記第3動作要素と前記第4動作要素とが実行されているときに:前記第2伝達部の入力側の動作位置を検出する第2入力位置検出部を使用して、前記第2伝達部の前記入力側の動作位置を検出させ;前記第2伝達部の出力側の動作位置を検出する第2出力位置検出部を使用して、前記第2伝達部の前記出力側の動作位置を検出させる、態様とすることができる。
このような態様とすれば、第1伝達部についての測定と第2伝達部についての測定を前後して行う態様に比べて、第1可動部と第2可動部の位置精度を向上させるためのパラメーターを、短時間で決定することができる。
(15)上記形態の制御装置であって、前記第1動作要素から第4動作要素は、回転であり;前記第1伝達部の前記入力側の前記動作位置、前記第1伝達部の前記出力側の前記動作位置、前記第2伝達部の前記入力側の前記動作位置、および前記第2伝達部の前記出力側の前記動作位置は、いずれも角度位置であり;前記第1可動部の回転軸と前記第2可動部の回転軸とは、互いに垂直である、態様とすることができる。このような対応とすれば、互いに影響を与えることなく、第1特定動作と第2特定動作による測定結果を得ることができる。
(16)上記形態の制御装置であって、前記ロボットは、駆動力を発生させる駆動部によって伝達部を介して関節において駆動される可動部を3個以上備え;前記第2処理を指示する信号は、前記3個以上の可動部のうち、前記第1可動部としての1の可動部の前記関節の指定と、前記第2可動部としての他の1の可動部の前記関節の指定と、を表す情報を含む、態様とすることができる。このような対応とすれば、二つの可動部について第2処理を行って、それらの伝達部の入力側の動作位置および出力側の動作位置を検出すべき旨の指示を、ユーザーは容易に行うことができる。
(17)本開示の他の形態によれば、上記形態のいずれかの制御装置によって制御されるロボットが提供される。
(18)本開示の他の形態によれば、上記形態のいずれかの制御装置と;前記制御装置によって制御される前記ロボットと;を備えるロボットシステムが提供される。
上述した本開示の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部又は全部を解決するため、あるいは、本明細書に記載された効果の一部又は全部を達成するために、上述した本開示の一形態に含まれる技術的特徴の一部又は全部を上述した本開示の他の形態に含まれる技術的特徴の一部又は全部と組み合わせて、本開示の独立した一形態とすることも可能である。
第1実施形態のロボットシステム1を示す説明図である。 ロボット制御装置300の制御部309の構成要素と、ロボット100が備えるサーボモーター410およびモーター角度センサー420、減速機510、ならびに出力側角度センサー520と、の関係を示すブロック図である。 サーボモーター410の出力軸410oが一定の速度で回転した場合の、減速機510の入力軸510iの角度位置Di0を示す。 サーボモーター410の出力軸410oから継続的な一定の速度の入力があった場合の、減速機510の出力軸510oの角度位置の一例Do0を示す。 減速機510の出力軸510oから継続的な一定の速度の出力を行おうとする場合の、減速機510の入力軸510iの角度位置の一例Di1を示す。 減速機510の出力軸510oから継続的な一定の速度の出力を行おうとする場合の、減速機510の出力軸510oの角度位置Do1を示す。 アーム110の位置精度を向上させるためのパラメーターを導出するの設定の手順を示すフローチャートである。 ある向きにアーム110を動作させたときの角度位置の誤差を示すグラフである。 第2実施形態のロボット100bを示す説明図である。 第2実施形態において、図5のステップS100で、設定装置600のディスプレイ602に表示されるユーザーインターフェイスUI01を示す図である。 図5のステップS200が実行されている際に、設定装置600のディスプレイ602に表示されるユーザーインターフェイスUI02を示す図である。 図5のステップS400においてROM302に格納される補正値表を示す図である。 第3実施形態において、図5のステップS100で、設定装置600のディスプレイ602に表示されるユーザーインターフェイスUI03を示す図である。 図5のステップS200において、関節J1に角度範囲10°で特定動作を行わせるためのコマンドおよび付属パラメーターを示す図である。 図5のステップS200において、関節J1,J2にそれぞれ角度範囲10°で特定動作を行わせるための複数のコマンドおよび付属パラメーターを示す図である。
A.第1実施形態:
A1.ロボットシステムの構成:
図1は、第1実施形態のロボットシステム1を示す説明図である。本実施形態のロボットシステム1は、ロボット100と、ロボット制御装置300と、設定装置600と、を備える。
ロボット100は、回転関節X11を備えたアーム110を有する1軸ロボットである。関節X11は、ねじり関節である。ロボット100は、関節X11を回転させることにより、アーム110を、3次元空間中の指定された位置に配することができる。なお、第1実施形態では、技術の理解を容易にするために、回転関節X11を一つだけ備えたロボットを例として示す。しかし、本開示は、複数の関節を備えた多軸ロボットに適用可能である。
ロボット100は、さらに、サーボモーター410と、減速機510と、モーター角度センサー420と、出力側角度センサー520と、フレームF100と、を備える。アーム110と、サーボモーター410と、減速機510と、モーター角度センサー420と、出力側角度センサー520とは、フレームF100に取りつけられている。
サーボモーター410は、ロボット制御装置300から電流を供給されて駆動力を発生させる。より具体的には、サーボモーター410は、電流を供給されて、その出力軸410oを回転させる。モーター角度センサー420は、出力軸410oの角度位置を検出する。モーター角度センサー420が検出した出力軸410oの角度位置は、ロボット制御装置300に送信される。
減速機510は、入力軸510iと出力軸510oを備える。減速機510は、入力軸510iに対する回転入力を、回転入力より回転速度が低い回転出力に変換して、出力軸510oから出力する。減速機510は、具体的には、波動歯車減速機である。
減速機510の入力軸510iは、サーボモーター410の出力軸410oに接続されている。そして、入力軸510iの角度位置は、サーボモーター410の出力軸410oの角度位置と等しい。このため、サーボモーター410の出力軸410oの角度位置を検出することができるモーター角度センサー420は、減速機510の入力軸510iの角度位置を検出していることとなる。
サーボモーター410の出力軸410oからの継続的な一定の入力に対して、減速機510は、周期的な伝達誤差を発生させる。すなわち、サーボモーター410の出力軸410oからの継続的な一定速度の回転入力に対して、減速機510の出力軸510oの回転速度および角度位置は、周期的なずれを含む。
アーム110は、減速機510の出力軸510oに固定されている。その結果、アーム110は、出力軸510oの回転によって、減速機510を介して、関節X11において回転される。
出力側角度センサー520は、アーム110を挟んで減速機510とは逆の側に配されている。減速機510の出力軸510oは、アーム110を貫通している。出力側角度センサー520は、減速機510の出力軸510oの角度位置を検出する。すなわち、モーター角度センサー420が、減速機510の入力側の動作位置を検出しているのに対して、出力側角度センサー520は、減速機510の出力側の動作位置を検出している。
なお、本明細書においては、駆動力を伝達する伝達部(本実施形態において減速機510)において、入力される駆動力を受ける部材(本実施形態において入力軸510i)の動作位置を、「入力側の動作位置」と記載する。駆動力を伝達する伝達部において、出力される駆動力を他の構成に伝達する部材(本実施形態において出力軸510o)の動作位置を、「出力側の動作位置」と記載する。
出力側角度センサー520は、具体的には、光学式のロータリーエンコーダーである。ただし、出力側角度センサー520は、絶対的な角度位置を検出することができるエンコーダーである。減速機510の出力軸510oの角度位置を検出するロータリーエンコーダーを設けることにより、減速機510の出力によって駆動されるより下流の構成(たとえば、エンドエフェクタ)の動作位置を測定する態様に比べて、減速機510の出力位置を正確に検出することができる。出力側角度センサー520が検出した出力軸510oの角度位置は、ロボット制御装置300に送信される。
ロボット制御装置300は、ロボット100を制御する制御装置である。ロボット制御装置300は、ロボット100に接続されている。ロボット制御装置300は、RAM301,ROM302,CPU303を備えるコンピューターである。CPU303は、ROM302に記憶されたコンピュータープログラムをRAM301にロードして実行することによって、後述する様々な機能を実現する。
設定装置600は、ロボット制御装置300に対して、ロボット100の動作の際に使用されるパラメーターを設定する。設定装置600は、出力装置として機能するディスプレイ602と、入力装置として機能するキーボード604およびマウス605と、を備えたコンピューターである。設定装置600は、さらに、CPU610とROM630とRAM640とを備えている。CPU610は、ROM630に記憶されたコンピュータープログラムをRAM640にロードして実行することによって、後述する様々な機能を実現する。
設定装置600は、ロボット制御装置300に接続されている。設定装置600は、ロボット制御装置300(具体的には、モーター角度センサー420と、出力側角度センサー520など)からの出力に基づいて、ロボット100の動作の際に使用されるパラメーターを決定する。そして、設定装置600は、ロボット制御装置300のROM302に、そのパラメーターを記憶させる。ロボット制御装置300は、そのパラメーターを使用してロボット100に出力する制御信号を生成する。それらのパラメーターに基づいて制御信号を生成し、ロボット100を制御するCPU303の機能部を、「制御部309」として図1に示す。
図2は、ロボット制御装置300の制御部309の構成要素と、ロボット100が備えるサーボモーター410およびモーター角度センサー420、減速機510、ならびに出力側角度センサー520と、の関係を示すブロック図である。ロボット制御装置300の制御部309は、制御信号生成部310と、位置制御部320と、速度制御部330と、補正部365と、を備える。
制御信号生成部310は、アーム110が位置すべき目標位置を表す位置制御信号を生成し、位置制御部320に出力する。
位置制御部320は、制御信号生成部310から位置制御信号を受信する。位置制御部320は、位置フィードバックとして、ロボット100のモーター角度センサー420から、サーボモーター410の角度位置を受信する。位置制御部320は、それらの情報に基づいて、ロボット100のサーボモーター410の速度制御信号を生成し、速度制御部330に出力する。
速度制御部330は、位置制御部320から速度制御信号を受信する。また、速度制御部330は、速度フィードバックとして、モーター角度センサー420から出力されたサーボモーター410の角度位置を微分して得られる信号、すなわち回転速度の信号を受信する。図2において、角度位置の微分を表すブロックを「S」を付したブロックで示す。速度制御部330は、位置制御部320からの速度制御信号と、サーボモーター410の回転速度と、に基づいて、トルク制御信号を生成し、出力する。その後、トルク制御信号に基づいて、サーボモーター410に供給する電流量が決定され、決定された電流量の電流がサーボモーター410に供給される。
補正部365は、モーター角度センサー420から、出力軸410oの角度位置(減速機510の入力軸510iの角度位置に等しい)の信号を受信する。補正部365は、出力軸410oの最新の角度位置の信号と、直前の角度位置の信号と、からサーボモーター410の回転の向きを決定し、回転の向きおよび最新の角度位置に応じて、補正信号を生成する。そして、補正部365は、補正信号を位置制御部320に出力する。その結果、位置制御部320は、モーター角度センサー420からのサーボモーター410の角度位置と、補正部365からの補正信号と、が加算された信号を受信する。
さらに、補正部365は、補正信号を微分して得られる信号を速度制御部330に出力する。その結果、速度制御部330は、サーボモーター410の角度位置を微分して得られる速度信号と、補正部365からの補正信号を微分して得られる信号と、が加算された信号を受信する。
図3Aは、サーボモーター410の出力軸410oが一定の速度で回転した場合の、サーボモーター410の出力軸410o(すなわち、減速機510の入力軸510i)の角度位置Di0を示す。図3Bは、サーボモーター410の出力軸410oから継続的な一定の速度の入力があった場合の、減速機510の出力軸510oの角度位置の一例Do0を示す。ただし、図3Bに示す出力軸510oの角度位置Do0のスケールと、図3Aに示す入力軸510iの角度位置Di0のスケールとは異なる。図3Aおよび図3Bは、それぞれ、補正部365が補正値を出力しないと仮定した場合の入力軸510iの角度位置Di0と、出力軸510oの角度位置Do0と、を示す。
前述のように、サーボモーター410の出力軸410oからの継続的な一定の入力に対して、減速機510は、周期的な伝達誤差を発生させる。このため、減速機510の入力軸510iの角度位置Di0が時間に比例して増大するのに対して、減速機510の出力軸510oの角度位置Do0は、時間に対する比例値(破線で示す)に対して、周期的なずれを含む。
図4Aは、本実施形態において、減速機510の出力軸510oから継続的な一定の速度の出力を行おうとする場合の、減速機510の入力軸510iの角度位置の一例Di1を示す。図4Bは、本実施形態において、減速機510の出力軸510oから継続的な一定の速度の出力を行おうとする場合の、減速機510の出力軸510oの角度位置Do1を示す。ただし、図4Bに示す出力軸510oの角度位置Do1のスケールと、図4Aに示す入力軸510iの角度位置Di1のスケールとは異なる。図4Aおよび図4Bは、補正部365を機能させて、減速機510の出力軸510oにおいて継続的な一定の速度の出力を行おうとする場合の、望ましい入力軸510iの角度位置Di1と、出力軸510oの角度位置Do1と、を示す。なお、参考のために、図3Aに示した入力軸510iの角度位置Di1を図4Aにおいて破線で示す。
前述のように、位置制御部320は、位置フィードバックとして、モーター角度センサー420からのサーボモーター410の角度位置と、補正部365からの補正信号と、が加算された信号を受信する(図2参照)。速度制御部330は、速度フィードバックとして、サーボモーター410の角度位置を微分して得られる速度信号と、補正部365からの補正信号を微分して得られる信号と、が加算された信号を受信する。位置制御部320がそのような位置フィードバックに基づいて速度制御信号を生成し、速度制御部330がそのような速度フィードバックに基づいてトルク制御信号を生成すると、サーボモーター410の出力軸410oの角度位置、すなわち、減速機510の入力軸510iの角度位置Di1は、図4Aに示すように、時間に対して比例する値(図4Aの破線参照)に対して周期的なずれを有することとなる。
図4Aに示す角度位置Di1を実現する入力を入力軸510iに対して受けると、出力軸510oの角度位置Do1は、図4Bに示すように、時間に対して比例する直線となる。補正部365は、このような原理に基づいて、出力軸510oの角度位置Do1の精度を高める機能を奏する(図2参照)。
補正部365から位置制御部320に出力されるべき周期的な補正信号が、サイン(sin)に、位置に応じた所定の係数を乗じた値であると仮定すると、補正部365から速度制御部330に出力される補正信号の微分値は、コサイン(cos)に、速度に応じた所定の係数を乗じた値となる(図2参照)。補正信号の微分値としては、1回前に取得したサーボモーター410の角度位置に基づいた補正信号と、最新の角度位置に基づいた補正信号との差分により算出される値よりも、数式的にコサイン(cos)に速度に応じた係数を乗じて算出される値のほうが、時間遅延が少なくなる。このため、本実施形態によれば、め精度のよい補正ができる。
A2.位置精度を向上させるためのパラメーターの設定:
図5は、アーム110の位置精度を向上させるためのパラメーターを導出するための設定の手順を示すフローチャートである。図5の処理は、設定装置600、ロボット制御装置300およびロボット100によって実行される。
ステップS100では、ユーザーが、アーム110の位置精度を向上させるためのパラメーターを導出する処理の開始を指示する。具体的には、ユーザーは、キーボード604およびマウス605を介して、設定装置600に処理の開始時を指示する(図1参照)。設定装置600は、指示が入力されると、アーム110の位置精度を向上させるためのパラメーターを導出する処理を指示する信号SSを、ロボット制御装置300に送信する。このような信号を生成する設定装置600のCPU610の機能部を、図1において「命令生成部612」として示す。また、ロボット制御装置300においてこの信号を受け付ける機能を奏する機能部を、図1において「受付部307」として示す。
図5のステップS200においては、アーム110の位置精度を向上させるためのパラメーターを導出する処理を指示する信号SSを受付部307が受け付けたことに起因して、ロボット制御装置300の制御部309は、ロボット100のサーボモーター410を駆動して、アーム110に特定動作を行わせる。
具体的には、ステップS220において、制御部309は、あらかじめ定められた角度位置である第1位置P1(図1参照)から、同様に、あらかじめ定められた角度位置である第2位置P2に、アーム110を回転運動させる。その際の移動速度は、100°/秒以下である。この動作を、本明細書において、「第1動作要素Me1」または「往動」と呼ぶ。
第1位置P1と第2位置P2との間の角度範囲は、本実施形態においては、周期的な伝達誤差を発生させる減速機510が1周期分の伝達誤差の変化を生じさせ、4周期分以上の伝達誤差の変化を生じさせない角度範囲である。減速機510は波動歯車減速機であるため、入力軸510iが半回転するたびに、入力軸510iと出力軸510oとの間の角度伝達誤差は、1周期分の変化を起こす。このため、第1位置P1と前記第2位置P2との間の角度範囲は、入力軸510iの角度範囲において半周分より大きく2周分より小さい角度範囲である。
第1動作要素Me1が実行されている間に、ロボット制御装置300の制御部309は、モーター角度センサー420を使用して、減速機510の入力側の動作位置、すなわち、入力軸510iの角度位置を検出させる(図1参照)。また、第1動作要素Me1が実行されている間に、ロボット制御装置300の制御部309は、出力側角度センサー520を使用して、減速機510の出力側の動作位置、すなわち、出力軸510oの角度位置を検出させる。検出されたそれぞれの角度位置は、ロボット制御装置300に送信され、ロボット制御装置300を介して、設定装置600に送信される。
ステップS240において、制御部309は、第2位置P2から第1位置P1に、アーム110を回転運動させる。すなわち、この動作において、アーム110は、第1動作要素Me1とは逆向きに動作する。その際の移動速度も、100°/秒以下である。この動作を、本明細書において、「第2動作要素Me2」または「復動」と呼ぶ。
第1動作要素Me1および第2動作要素Me2の移動速度を上記のような比較的低い値とすることにより、アーム110の慣性に起因する振動(アーム110の移動中の振動および停止指示後のアーム110の残留振動を含む)が、減速機510の出力側および入力側の動作位置に与える影響を低減することができる。
第2動作要素Me2が実行されている間に、ロボット制御装置300の制御部309は、モーター角度センサー420を使用して、減速機510の入力側の動作位置、すなわち、入力軸510iの角度位置を検出させる。また、第2動作要素Me2が実行されている間に、ロボット制御装置300の制御部309は、出力側角度センサー520を使用して、減速機510の出力側の動作位置、すなわち、出力軸510oの角度位置を検出させる。検出されたそれぞれの角度位置は、ロボット制御装置300に送信され、ロボット制御装置300を介して、設定装置600にも送信される。
このような処理を行うことにより、第1動作要素Me1の際の減速機510の入力側の動作位置と出力側の動作位置とを検出することができる(図5のS220参照)。そして、第1動作要素Me1とは逆向きの第2動作要素Me2の際の減速機510の入力側の動作位置と出力側の動作位置とを検出することができる(図5のS240参照)。そのため、入力側の動作位置から理論的に計算される出力側の理想的な動作位置と、測定された出力側の動作位置とのズレを、逆向きの二つの移動を行った場合について入手することができる(図3B参照)。よって、設定装置600は、それらの測定値に基づいて、ロストモーションやバックラッシが考慮された、アーム110の位置精度を向上させるためのパラメーターを決定することができる。
ステップS200においては、ステップS220,S240の処理が、複数回、繰り返し行われる。すなわち、ステップS200においては、第1動作要素Me1と第2動作要素Me2との組み合わせを複数、含む特定動作が実行される。
このような処理を行うことにより、アーム110を大きく動作させることなく、高精度な補正用のパラメーターが得られる。よって、ロボット100を工場に設置した後、ロボット100の減速機510が交換された場合にも、ロボット100をその設置場所から移動させることなく、かつ、周囲の構造物に干渉することなく、高精度な補正用のパラメーターが得られる。
図5のステップS300において、設定装置600のCPU610は、ステップS200で得られたそれぞれの動作要素におけるアーム110の角度位置の測定結果に基づいて、補正パラメーターの値を計算する。設定装置600のCPU610は、より具体的には、入力側の動作位置から理論的に計算される出力側の理想的な動作位置と、測定された出力側の動作位置とのずれを、それぞれの動作要素について計算する。そして、それぞれの動作要素についてのずれを打ち消すことができるように、補正値を計算する。このような設定装置600のCPU610の機能部を、パラメーター決定部614として図1に示す。
パラメーター決定部614は、まず、第1動作要素Me1における、入力軸510iの角度位置から得られる理想的な出力軸510oの角度位置に対する、実際の出力軸510oの角度位置のずれ、すなわち角度伝達誤差の入力軸510iの角度位置に沿った変化を得る。そして、その角度伝達誤差を正弦波で近似する。その近似式を式(1)で示す。
α=A×sin(n×θ+φ) ・・・ (1)
α:角度伝達誤差
θ:減速機510の入力軸510iの角度位置
A:振幅(第1の設定パラメーター)
n:角度伝達誤差の周期に対応する係数
φ:位相補正量(第2の設定パラメーター)
ここで、nは、減速機の入力軸が1回転する間に、入力軸と出力軸との間の角度伝達誤差が起こす変化の周期の数である。nの値は、減速機510の構成によって決まる。本実施形態において減速機510は波動歯車減速機であるため、入力軸510iが半回転するたびに、入力軸510iと出力軸510oとの間の角度伝達誤差は1周期分の変化を起こす。すなわち、本実施形態において、nは、2およびその倍数である。
ステップS220において得られた第1動作要素Me1におけるアーム110の角度位置の複数組の測定結果に基づいて、パラメーター決定部614は、重回帰分析により、上記式(1)の振幅Aと、位相補正量φを計算する。振幅Aを「第1の補正パラメーター」とも呼ぶ。位相補正量φを「第2の補正パラメーター」とも呼ぶ。第1の補正パラメーターおよび第2の補正パラメーターは、減速機510の伝達誤差を低減する補正値を導出するためのパラメーターである。第1動作要素Me1に対応する振幅Aと、位相補正量φを、それぞれ振幅A1と、位相補正量φ1とする。
同様の処理により、ステップS240において得られた第2動作要素Me2におけるアーム110の角度位置の複数組の測定結果に基づいて、パラメーター決定部614は、上記式(1)の振幅Aと、位相補正量φを計算する。第2動作要素Me2に対応する振幅Aと、位相補正量φを、それぞれ振幅A2と、位相補正量φ2とする。
図5のステップS400では、設定装置600のパラメーター決定部614は、振幅A1と位相補正量φ1の組み合わせと、振幅A2と位相補正量φ2の組み合わせとを、それぞれ第1動作要素Me1の向きおよび第2動作要素Me2の向きと対応づけて、ロボット制御装置300のROM302に記憶させる。また、それらのパラメーターは、設定装置600のディスプレイ602に表示される。
ロボット100を運用する際には、制御部309の補正部365は、サーボモーター410が第1動作要素Me1の向きと同じ向きに回転している場合には、補正パラメーターとして、振幅A1と位相補正量φ1とを使用して、式(1)に基づいて、減速機510の入力軸510iの角度位置θに応じた角度伝達誤差αを計算する。そして、得られた角度伝達誤差αを打ち消す補正量「−α」を位置制御部320への位置フィードバックに加算する(図2参照)。また、その補正量「−α」の微分値を、速度制御部330への速度フィードバックに加算する。このような処理を行うことにより、入力側の任意の動作位置に対して、適切な補正値を決定することができる。
サーボモーター410が第2動作要素Me2の向きと同じ向き(第1動作要素Me1の向きとは逆の向き)に回転している場合には、制御部309の補正部365は、補正パラメーターとして、振幅A2と位相補正量φ2とを使用して、式(1)に基づいて、減速機510の入力軸510iの角度位置θに応じた角度伝達誤差αを計算する。そして、得られた角度伝達誤差αを打ち消す補正量「−α」を位置制御部320への位置フィードバックに加算する(図2参照)。また、その補正量「−α」の微分値を、速度制御部330への速度フィードバックに加算する。このような処理を行うことにより、入力側の任意の動作位置に対して、適切な補正値を決定することができる。
また、上記のように、動作方向に応じて処理を切り換えることにより、減速機のロストモーションやバックラッシを打ち消すような、高精度な角度伝達誤差の補正を行うことができる(図3A〜図4B参照)。
図6は、ある向きにアーム110を動作させたときの角度位置の誤差を示すグラフである。グラフG0は、補正部365の機能を停止させてアーム110を動作させたときの角度位置の誤差を示すグラフである。グラフG1は、補正部365を機能させてアーム110を動作させたときの角度位置の誤差を示すグラフである。図6から分かるように、上記のような処理によって決定された補正値で補正を行うことにより、アーム110の位置精度が有意に向上したことが分かる。
なお、本実施形態におけるサーボモーター410は、「第1駆動部」とも呼ばれる。減速機510は、「第1伝達部」とも呼ばれる。アーム110は、「第1可動部」とも呼ばれる。ロボット制御装置300は、「制御装置」とも呼ばれる。モーター角度センサー420は、「第1入力位置検出部」とも呼ばれる。出力側角度センサー520は、「第1出力位置検出部」とも呼ばれる。関節X11についての図5のステップS200〜S400が、「第1可動部の位置精度を向上させるためのパラメーターを導出する第1処理」として機能する。
B.第2実施形態:
図7は、第2実施形態のロボット100bのアーム110aを示す説明図である。第2実施形態においては、ロボット100bの構成が第1実施形態のロボット100とは異なる。また、第2実施形態においては、第1実施形態において数式(1)のパラメーターであった第1の補正パラメーターAおよび第2の補正パラメーターφに代えて、入力軸の角度位置に応じた補正値自体が、あらかじめ記憶される。そして、ロボット100を運用する際には、その補正値を使用して補正が行われる。第2実施形態の他の点は、第1実施形態と同じである。
ロボット100bは、6個の回転関節J1〜J6を備えたアーム110aを有する6軸ロボットである。すなわち、ロボット100bは、それぞれサーボモーターによって減速機を介して回転関節において駆動される6個の要素アーム110b〜110gで構成されたアーム110aを備える。関節J1,J4,J6は、ねじり関節である。関節J2,J3,J5は、曲げ関節である。ロボット100bは、6個の関節J1〜J6をそれぞれサーボモーターで回転させることにより、アーム110aの先端部に取りつけられたエンドエフェクターを、3次元空間中の指定された位置に指定された姿勢で配することができる。なお、技術の理解を容易にするため、図7において、エンドエフェクターの図示は省略している。
ロボット100bは、各関節について、第1実施形態のロボット100と同様に、関節を駆動するサーボモーターと、サーボモーターの回転出力を減速する減速機と、サーボモーターの出力軸の角度位置を検出するモーター角度センサーと、を備える(図1参照)。なお、ロボット100bは、各関節について、減速機の出力軸の角度位置を検出するエンコーダー(図1の出力側角度センサー520)を備えない。
図7においては、技術の理解を容易にするため、関節J1に備えられるサーボモーター410b、モーター角度センサー420b、および減速機510bと、関節J3に備えられるサーボモーター410c、モーター角度センサー420c、および減速機510cと、を示す。関節J1の回転軸と、関節J2およびJ3の回転軸とは、互いに垂直である。
ロボット100bは、各要素アーム110b〜110gに慣性センサーを備える。図7においては、技術の理解を容易にするため、関節J1と関節J2の間の要素アーム110bに備えられる慣性センサー710と、関節J3と関節J4の間の要素アーム110dに備えられる慣性センサー720と、を示す。
慣性センサー710,720は、X軸、Y軸、Z軸方向を回転軸とする角速度を計測し、出力することができる。慣性センサー710,720による測定値は、ロボット制御装置300に送信され、ロボット制御装置300を介して、設定装置600にも送信される。
第2実施形態のロボットシステムにおいても、図5の処理にしたがって補正パラメーターの設定が行われる。
図8は、第2実施形態において、図5のステップS100で、設定装置600のディスプレイ602に表示されるユーザーインターフェイスUI01を示す図である。ユーザーインターフェイスUI01は、入力窓UI91,UI92、処理開始ボタンUI12、ならびに設定角度表示UI13を備える。
入力窓UI91は、位置精度を向上させるためのパラメーターを導出する処理の対象となる関節を選択するための入力窓である。入力窓UI91は、関節J1〜J6のうちの一つを、選択的に入力されることができる。図8においては、入力窓UI91において、関節J1が指定されている。
入力窓UI92は、特定動作における振幅(すなわち、動作要素の両端を規定する第1位置と第2位置との間の角度範囲の1/2)の大きさを入力するための入力窓である。入力窓UI91は、デフォルトであらかじめ数値が入力されている。ユーザーは、その数値を変更したい場合に、マウス605およびキーボード604を介して、入力窓UI92に数値を入力する。図8においては、入力窓UI92において、「10°」が指定されている。
第2実施形態のロボット100bの各関節の減速機にとって、「10°」は、1周期分の伝達誤差の変化を生じさせるのに十分な角度範囲である。第2実施形態において、各関節の減速機の減速比は、1/80である。このため、入力軸が180°回転(半回転)する間に、出力軸は2.25°(=180°/80)回転する。よって、振幅10°の回転運動、すなわち、両端の間が20°の回転運動は、入力軸の半回転を8回(20°/2.25°)分含む。言い換えれば、振幅10°の動作要素において、減速機の伝達誤差は、8周期以上の変化を生じる。
設定角度表示UI13は、各関節J1〜J6について、ロボット100bの現在の姿勢における角度位置、第1位置、第2位置を、それぞれ絶対的な角度位置で表示する表である。
図8の例において、関節J1は、現在、10°の角度位置にあり(UI13参照)、関節J1において特定動作(図5のS200参照)を行う際の振幅は、10°が指定されている(UI92参照)。このため、関節J1において、第1位置P11と第2位置P12とは、それぞれ20°([現在位置10°]+[振幅10°])と0°([現在位置10°]−[振幅10°])の角度位置である(UI13参照)。その結果、第1位置P11と第2位置P12との間の角度範囲は、20°である。なお、ユーザーが入力窓UI92の角度範囲を変更した場合には、ユーザーが入力した角度範囲と、現在位置とに基づいて、第1位置および第2位置が変更される。
それぞれの関節の特定動作における振幅、ならびに第1位置および第2位置は、以下の条件を満たすように決定される。すなわち、対象となる関節が、現在の位置を中心とする第1位置と第2位置との間の任意の角度位置をとっても、周囲の構造物と干渉しないように、振幅ならびに第1位置および第2位置は定められる。
本実施形態においては、現在の角度位置を中心にして特定動作の角度範囲が決められる。このため、ユーザーは、ロボット100bの周囲の構造と干渉しない特定動作を、容易に決定することができる。
図7において、代表例として、関節J1で回転する要素アーム110bの第1位置P11と第2位置P12、ならびに関節J3で回転する要素アーム110dの第1位置P21と第2位置P22を、模式的に示す。図7においては、技術の理解を容易にするため、第1位置P11と第2位置P12を、第1動作要素Me11と第2動作要素Me12とをそれぞれ示す異なる矢印上に、示している。関節J3で回転する要素アーム110dの第1位置P21と第2位置P22についても、同様である。
図8の処理開始ボタンUI12は、図5のステップS200以下の処理を、設定装置600、ロボット制御装置300、およびロボット100bに行わせるためのボタンである。処理開始ボタンUI12がONされると、位置精度を向上させるためのパラメーターを導出する処理を指示する信号SSが、設定装置600の命令生成部612によって生成され、設定装置600からロボット制御装置300に送信される。処理を指示する信号SSは、関節J1〜J6のうち測定対象としての関節の指定を表す情報を含む。
本実施形態において、各要素アームは、対応するサーボモーターによって減速機を介して関節において駆動される。すなわち、一つの関節の回転は、基部がその関節に接続されている一つの要素アームを回転移動させる。このため、位置精度を向上させるためのパラメーターを導出する処理を指示する信号SSは、実質的に、複数の要素アーム110b〜110gのうち測定対象としての一つの要素アームの指定を表す情報を含んでいる。なお、本明細書において、要素アームの「基部」とは、アームに沿って見たとき、要素アームの両端のうち、アーム全体の固定端ABに近い側の端である。
第2実施形態においては、図5のステップS100で、図8に示すユーザーインターフェイスUI01が設定装置600のディスプレイ602に表示される。ユーザーは、入力窓UI91を介して、関節J1〜J6のうちの一つを、位置精度を向上させるためのパラメーターを導出する処理対象として、入力する。そして、ユーザーは、入力窓UI92を介して、特定動作の振幅の大きさを入力する。そして、処理開始ボタンUI12を押して、入力した設定内容に沿って、図5のステップS200以下の処理を行わせる。
このような処理を行うことにより、たとえば、ロボット100bのいずれかの関節の減速機が交換された場合には、ユーザーは、交換された減速機を介して駆動される関節を指定することができる(図8のUI91参照)。その結果、その関節に一端を接続された要素アームの位置精度を向上させるためのパラメーターを導出する処理を、簡単な操作で行わせることができる。
図9は、図5のステップS200が実行されている際に、設定装置600のディスプレイ602に表示されるユーザーインターフェイスUI02を示す図である。ユーザーインターフェイスUI02は、進捗表示UI44と、キャンセルボタンUI45を備える。
進捗表示UI44は、ステップS200の処理の進捗を示す棒グラフである。ステップS200の処理が進むにつれて、棒グラフは、左から右に伸びる。棒グラフの先頭には、進捗率が数字で示される。図9において、進捗率は30%である。
キャンセルボタンUI45は、ユーザーインターフェイスUI01(図8参照)を通じて行われる処理を、強制的に終了させるためのボタンである。
図5のステップS200においては、ステップS220,S240の処理が、複数回、繰り返し行われる。このため、処理の完了までに比較的長い時間を要する場合がある。ステップS200において、ユーザーインターフェイスUI02(図9参照)を表示することにより、ユーザーは、処理の進捗を把握することができる。また、処理の終了を待てない場合には、ユーザーは、マウス605を介してキャンセルボタンUI45を押すことにより、処理を強制的に終了させることができる。その結果、処理の終了を待たされることに起因するユーザーのいらだちを軽減することができる。
第2実施形態においては、図5のステップS300において、第1動作要素中に計測されたX軸、Y軸、Z軸方向を回転軸とする角速度に基づいて、制御部309が、第1動作要素中の、指定された関節を中心とする慣性センサーの角度位置を計算する。そして、制御部309は、第1動作要素中の慣性センサーの角度位置に基づいて、指定された関節を中心とする要素アームの角度位置(減速機の出力軸の角度位置に等しい)を計算する。すなわち、慣性センサーは、要素アームの角度位置を直接検出するものではないが、要素アームの角度位置と同等の情報を取得しうる。よって、広義には、要素アームの出力側の動作位置は、慣性センサーによって検出されるといえる。
慣性センサーの検出値に基づいて得られた第1動作要素中の要素アームの角度位置(減速機の出力軸の角度位置に等しい)と、減速機の入力軸の角度位置である第1動作要素中のモーター角度センサーによる測定値と、に基づいて、設定装置600のパラメーター決定部614は、近似式(1)の第1および第2の補正パラメーターA,φを計算する。
第2実施形態においては、その後、さらに、パラメーター決定部614は、第1および第2の補正パラメーターA1,φ1を近似式(1)に設定し、減速機の入力軸の複数の角度位置θ(たとえば、1度間隔の360個の角度位置)について、角度伝達誤差αを計算する。そして、パラメーター決定部614は、角度伝達誤差αに基づいて、それぞれの角度位置θに応じた補正値を計算する。
同様の処理が、第2動作要素中の慣性センサーおよびモーター角度センサーの測定値に基づいて、行われる。
図10は、図5のステップS400において、パラメーター決定部614によってROM302に格納される補正値表を示す図である。ステップS400においては、ステップS300で計算された、減速機の伝達誤差を打ち消す補正値が、それぞれの角度位置と対応づけられて、表としてROM302に記憶される。第1動作要素Me1の向きと対応づけられる補正値A〜A360の表T11と、第2動作要素Me2の向きと対応づけられる補正値の表T12の2種類の表が作成され、ROM302に保存される。
ロボット100を運用する際には、制御部309の補正部365は、サーボモーター410が第1動作要素Me1の向きと同じ向きに回転している場合には、補正パラメーターとして、表T11を参照して得られる補正値を位置制御部320への位置フィードバックに加算する(図2参照)。より詳細には、補正値は、表T11に格納されている、入力軸510iの角度位置最も近い二つの角度位置に対応する二つの補正値を使用して、補完処理を行って、決定される。また、補正部365は、その補正値の微分値を、速度制御部330への速度フィードバックに加算する。
サーボモーター410が第2動作要素Me2の向きと同じ向きに回転している場合には、制御部309の補正部365は、補正パラメーターとして、表T12を参照して得られる補正値を位置制御部320への位置フィードバックに加算する(図2参照)。また、補正部365は、その補正値の微分値を、速度制御部330への速度フィードバックに加算する。
このような処理を行うことにより、ロボット100を運用する際に、式(1)に基づいて補正値を計算する態様に比べて、小さい負荷で、減速機のロストモーションやバックラッシを打ち消すような、高精度の角度伝達誤差の補正を行うことができる(図3A〜図4B参照)。
なお、本実施形態における関節J1のサーボモーター410bは、「第1駆動部」とも呼ばれる。減速機510bは、「第1伝達部」とも呼ばれる。要素アーム110bは、「第1可動部」とも呼ばれる。モーター角度センサー420bは、「第1入力位置検出部」とも呼ばれる。要素アーム110bの慣性センサー710は、「第1出力位置検出部」とも呼ばれる。関節J1についての図5のステップS200〜S400が、「第1可動部の位置精度を向上させるためのパラメーターを導出する第1処理」として機能する。
本実施形態における各要素アーム110b〜110gは、「可動部」とも呼ばれる。各要素アーム110b〜110gを駆動するサーボモーターは、「駆動部」とも呼ばれる。各要素アーム110b〜110gに接続される減速機は、「伝達部」とも呼ばれる。
C.第3実施形態:
第3実施形態においては、図5のステップS100で、設定装置600のディスプレイ602に表示されるユーザーインターフェイスが第2実施形態とは異なる。そして、第3実施形態においては、回転軸の方向が互いに垂直な複数の関節について、同時に特定動作が実施される。第3実施形態の他の点は、第2実施形態と同じである。
図11は、第3実施形態において、図5のステップS100で、設定装置600のディスプレイ602に表示されるユーザーインターフェイスUI03を示す図である。ユーザーインターフェイスUI03は、入力部UI91a〜UI91f、入力窓UI92a〜UI92f、ならびに処理開始ボタンUI12を備える。
入力部UI91a〜UI91fは、位置精度を向上させるためのパラメーターを導出する処理の対象である1以上の関節を、選択するためのチェックボックスである。入力部UI91a〜UI91fは、関節J1〜J6のうちの一つ以上の指定を入力されることができる。図11の例においては、入力部UI91a〜UI91fにおいて、関節J1〜J3が指定されている。
このような処理を行うことにより、2以上の関節について、特定動作および特定動作中の動作位置の測定を行って、それらの関節の減速機の入力側の動作位置および出力側の動作位置を検出すべき旨の指示を、ユーザーは容易に行うことができる。
入力窓UI92a〜UI92fは、特定動作における振幅(第1位置と第2位置との間の角度範囲の1/2)の大きさを入力するための入力窓である。ユーザーは、角度範囲の数値を入力する場合には、マウス605およびキーボード604を介して、入力窓UI92a〜UI92fに数値を入力する。ユーザーが入力窓UI92の角度範囲を変更した場合には、ユーザーが入力した角度範囲と、関節(減速機の出力軸)の現在位置とに基づいて、第1位置および第2位置が変更される。図11においては、入力部UI91a〜UI92cにおいて、「10°」が指定されている。
処理開始ボタンUI12の機能は、図5のステップS200以下の処理を、設定装置600、ロボット制御装置300、およびロボット100bに行わせるためのボタンである。処理開始ボタンUI12がONされると、位置精度を向上させるためのパラメーターを導出する処理を指示する信号SSが生成され、設定装置600からロボット制御装置300に送信される(図2参照)。
位置精度を向上させるためのパラメーターを導出する処理を指示する信号SSは、設定装置600の命令生成部612によって、生成される。より具体的には、命令生成部612は、以下の処理を行う。命令生成部612は、ユーザーインターフェイスUI03を介して指定された関節のうち、回転軸が互いに垂直な関節を選択する。そして、命令生成部612は、それらの関節の情報と、それぞれの関節について第1位置および第2位置と、の情報を含む、処理を開始すべき旨の信号SSを生成する。
そのように生成された信号SSは、次のような処理を指示する信号である。すなわち、その処理は、指定された関節のうちの一つに接続されている要素アーム(たとえば、関節J1に基部が接続されている要素アーム110b)の位置精度を向上させるためのパラメーターを導出するとともに、その処理と並行して、指定された関節のうちの他の一つに接続されている要素アーム(たとえば、関節J3に基部が接続されている要素アーム110d)の位置精度を向上させるためのパラメーターを導出する処理である。このような処理を指示する信号SSは、前述のように、ロボット100bが備える3個以上の要素アームのうち、測定対象の1の要素アームの関節の指定と、測定対象としての他の1の要素アームの関節の指定と、を表す情報を含む。このような複数の関節についての並行する処理を指示する信号SSを、特に「信号SS2」と表記する。
命令生成部612は、その後、ユーザーインターフェイスUI03を介して指定された関節のうち、まだ選択されていない関節から、回転軸が互いに垂直な関節を選択する。そして、それらの関節の情報と、それぞれの関節についてあらかじめ定められている第1位置および第2位置と、の情報を含む、処理を開始すべき旨の信号SSを生成する。
なお、ユーザーインターフェイスUI03を介して指定された関節のうち、まだ選択されていない関節の中に、回転軸が互いに垂直な複数の関節が存在しない場合には、命令生成部612は、一つの関節を選択する。
このような処理を繰り返し行うことによって、命令生成部612は、ユーザーインターフェイスUI03を介して指定されたすべての関節について、位置精度を向上させるためのパラメーターを導出する処理を開始すべき旨の信号SSを生成する。それらの信号は、設定装置600から順次、送信され、ロボット制御装置300の受付部307によって受け付けられる。
一つの要素アームの位置精度を向上させるためのパラメーターを導出する処理を指示する信号SSを受付部307が受け付けた場合の処理は、第2実施形態と同様である。
複数の要素アームの位置精度を向上させるためのパラメーターを導出する処理を指示する信号SS2を受付部307が受け付けた場合には、ロボット制御装置300の制御部309は、信号SS2を受け付けたことに起因して、図5のステップS200において、以下の処理を行う。
すなわち、制御部309は、ロボット100bのサーボモーターを制御して、指定された関節のうちの一つに接続された要素アームに特定動作(以下、「第1特定動作」とも呼ぶ)を行わせるとともに、第1特定動作と並行して、指定された関節のうちの他の一つに接続された要素アームにも特定動作(以下、「第2特定動作」とも呼ぶ)を行わせる。ここでは、制御部309は、関節J1で動作するサーボモーター410bを制御して要素アーム110bに第1特定動作を行わせ、関節J3で動作するサーボモーター410cを制御して要素アーム110dに第2特定動作を行わせる。
特定動作の内容については、第1実施形態で説明したとおりである。なお、関節J1における第1特定動作の回転軸と、関節J3における第2特定動作の回転軸とは、互いに垂直である。そして、関節J1における第1特定動作において、第1動作要素Me11および第2動作要素Me12の振幅は、10°である(図11参照)。関節J3における第2特定動作において、第1動作要素Me21および第2動作要素Me22の振幅は、10°である(図11参照)。
複数の要素アームの位置精度を向上させるためのパラメーターを導出する処理を指示する信号SS2を受付部307が受け付けた場合には、以上のようにして、複数の関節について、同時に特定動作が実行され、各関節の減速機の入力側の動作位置と、出力側の動作位置が、往動と復動について測定される。
このような処理を行うことにより、各関節の減速機についての測定を前後して順に行う態様に比べて、各関節に接続された要素アームの位置精度を向上させるためのパラメーターを、短時間で決定することができる。
また、本実施形態において、並行して特定動作および誤差の測定が行われる関節の回転軸は、互いに垂直である。このため、互いの測定結果に影響を与えることなく、第1特定動作と第2特定動作による正確な測定結果を得ることができる。
本実施形態においては、あらかじめ指定された複数の関節について、特定動作が自動的に実行される。このため、ユーザーは、複数の関節について特定動作を行わせ、測定を行わせるために、ロボットシステム1に対して複数回、実行指示(図11のUI12)をする必要がない。
なお、本実施形態における関節J1のサーボモーター410bは、「第1駆動部」とも呼ばれる。減速機510bは、「第1伝達部」とも呼ばれる。要素アーム110bは、「第1可動部」とも呼ばれる。モーター角度センサー420bは、「第1入力位置検出部」とも呼ばれる。要素アーム110bの慣性センサー710は、「第1出力位置検出部」とも呼ばれる。関節J1についての図5のステップS200〜S400が、「第1可動部の位置精度を向上させるためのパラメーターを導出する第1処理」として機能する。
なお、本実施形態における関節J3のサーボモーター410cは、「第2駆動部」とも呼ばれる。減速機510cは、「第2伝達部」とも呼ばれる。要素アーム110dは、「第2可動部」とも呼ばれる。モーター角度センサー420cは、「第2入力位置検出部」とも呼ばれる。要素アーム110dの慣性センサー720は、「第2出力位置検出部」とも呼ばれる。関節J3についての図5のステップS200〜S400が、「第2可動部の位置精度を向上させるためのパラメーターを導出する第2処理」として機能する。
関節J3で回転する要素アーム110dの第1位置P21は、同時に駆動される要素アーム110bの第1位置と区別するために、「第3位置」とも呼ばれる。要素アーム110dの第2位置P22は、同時に駆動される要素アーム110bの第2位置と区別するために、「第4位置」とも呼ばれる。
関節J3について、要素アーム110dを第1位置P21から第2位置P22に移動させる第1動作要素Me21は、同時に駆動される要素アーム110bの第1動作要素と区別するために、「第3動作要素」とも呼ばれる。関節J3について、要素アーム110dを第2位置P22から第1位置P21に移動させる第2動作要素Me22は、同時に駆動される要素アーム110bの第2動作要素と区別するために、「第4動作要素」とも呼ばれる。
D.第4実施形態:
上記実施形態では、設定装置600のディスプレイ602を介してユーザーが入力を行い、その入力に応じて命令生成部612がロボット制御装置300に対する命令を生成する。しかし、ユーザーが直接コマンドを入力して、ロボット制御装置300の制御部309に特定動作を行わせることもできる。第4実施形態においては、要素アームの位置精度を向上させるためのパラメーターを導出する処理を指示する信号SSの生成のさせ方が、第2実施形態とは異なる。第4実施形態の他の点は、第2実施形態と同じである。
図12は、図5のステップS200において、関節J1に角度範囲10°で特定動作を行わせるためのコマンドおよび付属パラメーターを示す図である。「Measure」というコマンドによって、特定動作(図5のS200参照)の実施が指示される。コマンド「Measure」の後ろの最初のパラメーター「J1」によって、特定動作において動かされる関節が指定される。ここでは、関節「J1」が指定されている(図7参照)。コマンド「Measure」の後ろの二つ目のパラメーター「10」によって、特定動作で関節が動かされる際の振幅が指定される。ここでは、「10°」が指定されている(図8のUI92参照)。なお、図12に示したコマンドおよびパラメーターの例は、図8に示したユーザーインターフェイスUI01の例と同じ内容を指定している(図8のUI91およびUI92参照)。
このようなコマンドは、キーボード604を介して、設定装置600に入力される。設定装置600の命令生成部612は、入力されたコマンドに基づいて、図5のステップS200以下の処理を開始すべき旨の信号SSを作成し、ロボット制御装置300に送信する。ロボット制御装置300の受付部307は、パラメーターを導出する処理を開始すべき旨のコマンドを表す信号SSを、受け付ける。
このような態様とすれば、ユーザーは、コマンドを使って、自ら望む処理内容を詳細に指定して、関節の減速機の入力側の動作位置および出力側の動作位置を検出させることができる。
図13は、図5のステップS200において、関節J1,J2にそれぞれ角度範囲10°で特定動作を行わせるための複数のコマンドおよび付属パラメーターを示す図である。「Go」というコマンドによって、ロボット100bが特定の姿勢をとることが指示される。コマンド「Go」の後ろのパラメーター「P1d」によって、特定の姿勢が指定される。ロボット100bが「P1d」で特定された姿勢をとった後、そのときの関節J1の角度位置を中心として、コマンド「Measure (J1, 10)」によって、関節J1について10°の振幅で特定動作が実行される。
その後、同様に、「Go P2d」というコマンドによって、ロボット100bが「P2d」で特定された姿勢をとった後、そのときの関節J2の角度位置を中心として、コマンド「Measure (J2, 10)」によって、関節J2について10°の振幅で特定動作が実行される。
図13に示す複数のコマンドも、キーボード604を介して、設定装置600に入力される。設定装置600のCPU610の機能部である命令生成部612は、入力された複数のコマンドに基づいて信号SSを作成し、ロボット制御装置300に送信する。ロボット制御装置300の受付部307は、パラメーターを導出する処理を開始すべき旨のコマンドを表す信号SSを、受け付ける。
このような態様とすれば、ユーザーは、指定した関節について、自ら望んだ順序で、それらの関節の減速機の入力側の動作位置および出力側の動作位置を検出させることができる。
たとえば、パラメーター「P1d」によって指定される特定の姿勢において、関節J1を振幅10°で動かしても、ロボット100bは他の機器と干渉しないが、パラメーター「P1d」によって指定される特定の姿勢において、関節J2を振幅10°で動かすと、他の機器と干渉する場合がある。本実施形態によれば、ユーザーは、コマンドを使用して、それぞれの関節について、特定動作によって他の機器と干渉しない動作位置にロボットの姿勢を変化させて、特定動作を行わせることができる。
E.他の実施形態:
E1.他の実施形態1:
(1)上記第1実施形態においては、サーボモーター410の出力軸410oに減速機510の入力軸510iが接続されており、サーボモーター410の出力軸410oの角度位置と、減速機510の入力軸510iの角度位置とは等しい(図1の410o,510i参照)。しかし、駆動力を発生させる駆動部と伝達部の間には、他の歯車機構や、ベルトとプーリーなど、回転速度を変化させる機構が設けられていてもよい。そのような機構の減速比Npとし、駆動部の出力軸の角度位置をθoとすると、減速機の入力軸の角度位置θは、θ=Np×θoで得られる。
(2)上記第1実施形態においては、第1入力位置検出部としてのモーター角度センサー420は、第1駆動部としてのサーボモーター410の出力軸410oの角度位置を検出する(図1参照)。しかし、第1伝達部の入力側の動作位置を検出する第1入力位置検出部は、第1伝達部の入力を測定してもよい。
(3)上記第1実施形態においては、ロボット制御装置300は、ロボット100とは別個の構成として設けられている(図1参照)。しかし、制御装置は、ロボットと一体の形態で設けられることもできる。また、制御装置は、ロボットとは別に設けられ、有線または無線でロボットと接続される態様とすることもできる。
上記第1実施形態においては、設定装置600は、ロボット制御装置300およびロボット100とは別個の構成として設けられている(図1参照)。しかし、設定装置は、制御装置および/またはロボットと一体の形態で設けられることもできる。また、設定装置は、制御装置とは別に設けられ、有線または無線で制御装置と接続される態様とすることもできる。
また、ロボット制御装置300もしくは設定装置600の一部の機能部を別の装置が備えてもよい。例えば、上記第1実施形態において設定装置600が備えているパラメーター決定部614などの一部または全部の機能を、ロボット制御装置300が備えてもよい。
また、上記実施形態において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。たとえば、上記実施形態においては、制御部309としてのCPUがコンピュータープログラムを読み出して実行することにより、様々な機能を実現する。しかし、制御部が実現する機能の一部または全部はハードウェア回路により実現されてもよい。制御部は、何らかの処理を実現するプロセッサーとして構成されることができる。
E2.他の実施形態2:
上記第1実施形態においては、第1動作要素Me1および第2動作要素Me2は、回転である(図1参照)。しかし、第1動作要素Me1および第2動作要素Me2は、直線的な移動であってもよい。また、上記第1実施形態においては、第1位置P1および第2位置P2は、角度位置である。しかし、第1位置および第2位置は、直線上の位置であってもよい。
駆動部は、たとえば、出力が回転運動であるモーターとすることができる。また、駆動部は、出力が直線運動であるリニアモーターやシリンダーであってもよい。
E3.他の実施形態3:
上記第1実施形態においては、第1動作要素Me1と第2動作要素Me2の移動速度は、いずれも100°/秒以下である。しかし、第1動作要素と第2動作要素の移動速度は、150°/秒、300°/秒など、100°/秒より大きくてもよい。
E4.他の実施形態4:
上記第1実施形態においては、第1位置と第2位置とによって定められる角度範囲は、減速機510が1周期分以上の伝達誤差の変化を生じさせ、4周期分以上の伝達誤差の変化を生じさせない角度範囲である。また、上記第2実施形態においては、第1位置と第2位置とによって定められる角度範囲は、減速機の伝達誤差が8周期以上の変化を生じる角度範囲である。
しかし、第1位置と前記第2位置とによって定められる角度範囲は、他の角度範囲とすることもできる。たとえば、第1位置と前記第2位置とによって定められる角度範囲は、1周期分の伝達誤差を生じさせる角度範囲より短い角度範囲(たとえば、半周期を含む角度範囲)とすることもできる。そのような態様においても、得られた測定値に基づいて、1周期の伝達誤差を推定することができる。
E5他の実施形態5:
上記第1実施形態においては、駆動力を伝達する伝達部は、減速機510である。しかし、伝達誤差を低減させる対象である伝達部は、回転入力をより回転速度が高い回転出力に変換する構成であってもよいし、回転入力と回転出力がほぼ一致する構成であってもよい。
伝達部は、より具体的には、ベルトおよびプーリー、歯車機構、または継ぎ手とすることができる。ベルトおよびプーリー、ならびに歯車機構は、回転入力をより回転速度が高い回転出力に変換する構成であってもよいし、回転入力をより回転速度が低い回転出力に変換する構成であってもよいし、回転入力と回転出力がほぼ一致する構成であってもよい。
E6他の実施形態6:
上記第1実施形態においては、出力側角度センサー520は、第1伝達部としての減速機510の出力軸510oの角度位置を検出する。しかし、第1伝達部の出力側の動作位置を検出する第1出力位置検出部は、第1伝達部の出力を測定してもよいし、第1伝達部の出力によって駆動される下流の構成の動作位置を測定してもよい。第1伝達部の出力によって駆動される下流の構成の動作位置を測定する構成としては、たとえば、第2実施形態の慣性センサー710,720がある。また、たとえば、関節J3を固定して関節J2について特定動作を行い、関節J2に接続された要素アーム110cよりも下流の要素アーム110dに備えられる慣性センサー720を使用して測定値を得て、関節J2の補正値を決定することもできる。
また、アーム全体の固定端(図7のAB参照)に近い関節の動作位置の誤差がアームの先端のエンドエフェクタの位置に与える影響は、固定端ABから遠い(すなわち、アームの先端に近い)関節の動作位置の誤差がエンドエフェクタの位置に与える影響に比べて、大きい。アーム全体の固定端に近い関節については、その回転軸からアームの先端までの距離が長くなるためである。このため、ロボットが備えるすべての関節のうち、アーム全体の固定端に近い一部の関節のみについて、動作位置の誤差を測定しこれを補正するための慣性センサーを備える態様としてもよい。たとえば、第2実施形態のロボット100bにおいて、関節J1〜J6のうち、関節J1〜J3のみを補正する態様においては、第2実施形態のロボット100bにおいて各要素アーム110b〜110gに設けられている慣性センサーのうち、要素アーム110b,110dに設けられる慣性センサー710,720のみを備える形態でもよい。
E7他の実施形態7:
上記第2実施形態においては、慣性センサーとして、ジャイロセンサーが使用される(図7の710,720参照)。しかし、伝達部の出力側の動作位置を検出する出力位置検出部としては、他の様々なセンサーを使用することができる。たとえば、出力位置検出部としては、X,Y,Z軸方向の加速度と角速度を検出することができるIMU(Inertial Measurement Unit)を採用することができる。また、出力位置検出部としては、X,Y,Z軸方向のうち1以上の方向の加速度を検出することができる加速度センサーを採用することができる。さらに、出力位置検出部としては、X,Y,Z軸方向の1以上の方向の加速度と、X,Y,Z軸方向の1以上の方向の角速度と、を検出することができる慣性センサーを採用することができる。すなわち、第1出力位置検出部は、第1可動部の角速度および加速度の少なくとも一方を検出することができる慣性センサーとすることができる。また、出力位置検出部としては、伝達部の出力側の動作位置を検出することができるレーザー変位計や、カメラ等を採用することができる。測定時に測定対象に取りつけられるセンサーは、あらかじめ装置に組み込まれているセンサーであってもよいし、測定のために装置に取りつけられるセンサーであってもよい。
E8他の実施形態8:
上記第2実施形態においては、1度間隔の360個の角度位置について、補正値が計算され、表T11,T12として記憶される(図10参照)。しかし、あらかじめ記憶される補正値は、入力側の他の動作位置に対応するものであってもよい。また、あらかじめ記憶される補正値は、互いに等間隔ではない複数の動作位置に対応する補正値であってもよい。
E9.他の実施形態9:
上記第1実施形態においては、補正値を決定するための式(1)が含む補正パラメーターA,φが、あらかじめ記憶される。しかし、あらかじめ記憶されるパラメーターは、補正値を決定するための他の式の係数であってもよいし、あらかじめ用意された補正値群を適切に選択するためのパラメーターであってもよい。
E10.他の実施形態10:
上記第1実施形態においては、第1動作要素は、第1位置P1から第2位置P2にアーム110を動かす動作であり、第2動作要素は、第2位置P2から第1位置P1にアーム110を動かす動作である。このため、第1動作要素と第2動作要素の動作区間は等しい。しかし、第1動作要素と第2動作要素とは、異なる動作区間において実行される動作とすることもできる。また、第1動作要素の動作区間と第2動作要素の動作区間とは、一部が重複する動作区間であってもよい。たとえば、第1動作要素と第2動作要素とは、角度範囲と位相との少なくとも一方が異なっている態様とすることができる。
E11.他の実施形態11:
(1)上記実施形態においては、複数組の測定値は、式(1)を決定するために行われる重回帰分析において使用される。しかし、複数組の測定値は、他の方法で、補正値の決定に使用されることができる。たとえば、特定動作によって得られた複数組の測定値から、平均値が計算されることができる。そして、その平均値に基づいて、補正値を決定するための式の係数が決定されることができる。
(2)上記実施形態においては、図5のステップS220,S240の処理は、複数回行われる。しかし、伝達部の入力側の動作位置と出力側の動作位置を測定するための処理は、1回だけ行われることもできる。
E12.他の実施形態12:
上記第4実施形態においては、一つの関節についての特定動作を指示するコマンドについて説明した(図12および図13参照)。しかし、複数の関節についての特定動作を少なくとも一部重複する時間区間において実行することを指示するコマンドを、採用することもできる。
E13.他の実施形態13:
上記第2実施形態においては、本開示を6軸ロボットを例として説明した。しかし、本開示は、4軸ロボットや他の数の関節を備えるロボットに適用することもできる。ただし、本開示は、関節を2個以上有する装置に適用することが好ましく、関節を3個以上有する装置に適用することがより好ましい。
E14.他の実施形態14:
(1)上記第2実施形態においては、関節J1についての測定処理と、関節J1に垂直な回転軸を有する関節J3についての測定処理とが、並行して行われる。しかし、複数の関節についての測定は、一部または全部が異なる時間区間において実行されることができる。ただし、少なくとも一部が重複する時間区間において異なる関節についての測定が行われることが好ましい。
(2)また、並行して伝達誤差の測定が行われる関節は、互いに動作軸が垂直な関節でなくてもよい。たとえば、互いの動作軸がねじれの位置にある複数の関節について、少なくとも一部が重複する時間区間において、伝達誤差の測定を行うこともできる。また、動作軸が平行な複数の関節であっても、運用時に常に同期して動かすことが想定されている関節については、少なくとも一部が重複する時間区間において、伝達誤差の測定を行うことができる。
E15.他の実施形態15:
上記第2実施形態においては、ねじり関節J1についての測定処理と、ねじり関節J3についての測定処理とが、並行して行われる。しかし、並行して伝達誤差の測定が行われる関節は、回転関節に限らず、直進関節であってもよい。
E16.他の実施形態16:
上記第3実施形態においては、設定装置600の命令生成部612が、同時に伝達誤差の測定を行う関節を、ユーザーからの入力に応じて決定する(図11参照)。しかし、同時に伝達誤差の測定を行う関節の組み合わせがあらかじめ定められ、ROM等の記憶部に記憶されており、ユーザーがユーザーインターフェイスを通じてあらかじめ記憶されている関節の組み合わせの中から、1以上の組み合わせを選択する態様とすることもできる。
E17.他の実施形態17:
(1)上記実施形態においては、ロボットを例に本開示を説明した。しかし、本明細書で開示した技術は、ロボットに限らず、プリンター、プロジェクターど、駆動力を伝達する伝達部を介して制御が行われて物理的な状態が変化する様々な機械に適用することができる。たとえば、本明細書で開示した技術をプリンターの印刷ヘッドの動作や印刷媒体の搬送動作に適用することにより、ヘッドと印刷媒体との相対位置の精度を高めることができる。
(2)本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
100,100b…ロボット;110,110a…アーム;110b〜110g…要素アーム;300…ロボット制御装置;301…RAM;302…ROM;303…CPU;307…受付部;309…制御部;310…制御信号生成部;320…位置制御部;330…速度制御部;365…補正部;410,410b,410c…サーボモーター;410o…出力軸;420,420b,420c…モーター角度センサー;510,510b,510c…減速機;510i…入力軸;510o…出力軸;520…出力側角度センサー;600…設定装置;602…ディスプレイ;604…キーボード;605…マウス;610…CPU;614…パラメーター決定部;612…命令生成部;630…ROM;640…RAM;710,720…慣性センサー;Di0…減速機510の入力軸510iの角度位置;Di1…減速機510の入力軸510iの角度位置;Do0…減速機510の出力軸510oの角度位置;Do1…減速機510の出力軸510oの角度位置;A〜A360…補正値;AB…アーム110a全体の固定端;F100…フレーム;G0…補正部365の機能を停止させてアーム110を動作させたときの角度位置の誤差を示すグラフ;G1…補正部365を機能させてアーム110を動作させたときの角度位置の誤差を示すグラフ;J1〜J6,X11…関節;Me1,Me11…第1動作要素;Me2,Me12…第2動作要素;Me21…第1動作要素(第3動作要素);Me22…第2動作要素(第4動作要素);P1,P11…第1位置;P2,P12…第2位置;P21…第1位置(第3位置);P22…第2位置(第4位置);SS…パラメーター導出処理を指示する信号;SS2…複数の関節のパラメーター導出処理を指示する信号;T11…第1動作要素Me1の向きと対応づけられる補正値の表;T12…第2動作要素Me2の向きと対応づけられる補正値の表;UI01…ユーザーインターフェイス;UI02…ユーザーインターフェイス;UI03…ユーザーインターフェイス;UI12…処理開始ボタン;UI13…設定角度表示;UI44…進捗表示;UI45…キャンセルボタン;UI91…入力窓;UI91a〜UI91f…入力部;UI92…入力窓;UI92a〜UI92f…入力窓

Claims (11)

  1. ロボットを制御する制御装置であって、
    前記ロボットは、駆動力を発生させる第1駆動部によって第1伝達部を介して駆動される第1可動部を備え、
    前記制御装置は、
    前記第1可動部の位置精度を向上させるためのパラメーターを導出する第1処理を指示する信号を受け付ける受付部と、
    前記受付部が前記信号を受け付けたことに起因して、前記第1駆動部を制御して、前記第1可動部に第1特定動作を行わせる制御部と、を備え、
    前記第1特定動作は、前記第1可動部を移動速度が100°/秒以下の回転運動で第1位置から第2位置へ動作させる第1動作要素と、前記第1動作要素とは逆向きに前記第1可動部を移動速度が100°/秒以下の前記回転運動で動作させる第2動作要素と、を含み、
    前記制御部は、前記第1動作要素と前記第2動作要素とが実行されているときに、
    前記第1伝達部の入力側の動作位置を検出する第1入力位置検出部を使用して、前記第1伝達部の前記入力側の動作位置である角度位置を検出させ、
    前記第1伝達部の出力側の動作位置を検出する第1出力位置検出部を使用して、前記第1伝達部の前記出力側の動作位置である角度位置を検出させ、
    前記制御部は、検出された前記第1伝達部の前記入力側の前記動作位置および前記第1伝達部の前記出力側の前記動作位置に基づいて、前記パラメーターを導出する、制御装置。
  2. 請求項1に記載の制御装置であって、
    前記第1伝達部は、前記第1駆動部からの継続的な一定の入力に対して周期的な伝達誤差を発生させ、
    前記第1位置と前記第2位置との間の角度範囲は、1周期分の前記伝達誤差を生じさせる角度範囲を含む、制御装置。
  3. 請求項1または2に記載の制御装置であって、
    前記第1伝達部は、回転入力を、前記回転入力の回転速度よりも低い回転速度を有する回転出力に変換する減速機を含む、制御装置。
  4. 請求項1からのいずれか1項に記載の制御装置であって、
    前記パラメーターは、前記第1伝達部の伝達誤差を低減する補正値を含む、制御装置。
  5. 請求項1からのいずれか1項に記載の制御装置であって、
    前記第2動作要素は、前記第1可動部を前記第2位置から前記第1位置へ動作させる動作である、制御装置。
  6. 請求項に記載の制御装置であって、
    前記第1特定動作は、前記第1動作要素と前記第2動作要素との組み合わせを複数、含む、制御装置。
  7. 請求項1からのいずれか1項に記載の制御装置であって、
    前記受付部は、前記第1処理を指示する信号として、前記第1処理を実行すべき旨のコマンドを表す信号を受け付けることができる、制御装置。
  8. 請求項1からのいずれか1項に記載の制御装置であって、
    前記ロボットは、それぞれ駆動力を発生させる駆動部によって伝達部を介して関節において駆動される可動部を2個以上備え、
    前記第1処理を指示する信号は、前記2個以上の可動部のうち前記第1可動部としての1の可動部の前記関節の指定を表す情報を含む、制御装置。
  9. 請求項1からのいずれか1項に記載の制御装置と、
    前記制御装置によって制御される前記ロボットと、
    を備えるロボットシステム。
  10. 第1駆動部の駆動力をロボットの第1可動部に伝達する第1伝達部の伝達誤差を低減する補正値のテーブル作成方法であって、
    前記補正値を導出する第1処理を指示する信号を受け付け、
    前記信号を受け付けたことに起因して、前記第1駆動部を制御して、前記第1可動部を移動速度が100°/秒以下の回転運動で第1位置から第2位置へ動作させる第1動作要素および前記第1駆動部を制御して、前記第1動作要素とは逆向きに前記第1可動部を移動速度が100°/秒以下の前記回転運動で動作させる第2動作要素を実行し、
    前記第1動作要素を実行しているときに、前記第1伝達部の入力側の動作位置である角度位置および前記第1伝達部の前記出力側の動作位置である角度位置を検出し、
    前記第2動作要素を実行しているときに、前記第1伝達部の入力側の動作位置である角度位置および前記第1伝達部の前記出力側の動作位置である角度位置を検出し、
    前記第1動作要素を実行しているときに検出された前記第1伝達部の前記入力側の前記動作位置および前記第1伝達部の前記出力側の前記動作位置と、前記第2動作要素を実行しているときに検出された前記第1伝達部の前記入力側の前記動作位置および前記第1伝達部の前記出力側の前記動作位置と、に基づいて、前記補正値を導出し、記憶部に記憶する、テーブル作成方法。
  11. 第1駆動部の駆動力をロボットの第1可動部に伝達する第1伝達部の伝達誤差を低減する補正値を導出する第1処理を指示する信号を受け付け、
    前記信号を受け付けたことに起因して、前記第1駆動部を制御して、前記第1可動部を100°/秒以下の移動速度の回転運動で第1位置から第2位置へ動作させる第1動作要素および前記第1駆動部を制御して、前記第1動作要素とは逆向きに前記第1可動部を100°/秒以下の移動速度の前記回転運動で動作させる第2動作要素を実行し、
    前記第1動作要素を実行しているときに、前記第1伝達部の入力側の動作位置である角度位置および前記第1伝達部の前記出力側の動作位置である角度位置を検出し、
    前記第2動作要素を実行しているときに、前記第1伝達部の入力側の動作位置である角度位置および前記第1伝達部の前記出力側の動作位置である角度位置を検出し、
    前記第1動作要素を実行しているときに検出された前記第1伝達部の前記入力側の前記動作位置および前記第1伝達部の前記出力側の前記動作位置と、前記第2動作要素を実行しているときに検出された前記第1伝達部の前記入力側の前記動作位置および前記第1伝達部の前記出力側の前記動作位置と、に基づいて、前記補正値を導出し、
    導出した前記補正値に基づいて、前記第1駆動部を制御する、ロボット制御方法。
JP2017118375A 2017-06-16 2017-06-16 制御装置、ロボットシステム、テーブル作成方法およびロボット制御方法 Active JP6915395B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017118375A JP6915395B2 (ja) 2017-06-16 2017-06-16 制御装置、ロボットシステム、テーブル作成方法およびロボット制御方法
CN201810613635.7A CN109129414B (zh) 2017-06-16 2018-06-14 控制装置、机器人以及机器人系统
US16/009,324 US20180361592A1 (en) 2017-06-16 2018-06-15 Control device and robot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017118375A JP6915395B2 (ja) 2017-06-16 2017-06-16 制御装置、ロボットシステム、テーブル作成方法およびロボット制御方法

Publications (3)

Publication Number Publication Date
JP2019000948A JP2019000948A (ja) 2019-01-10
JP2019000948A5 JP2019000948A5 (ja) 2020-07-02
JP6915395B2 true JP6915395B2 (ja) 2021-08-04

Family

ID=64656817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017118375A Active JP6915395B2 (ja) 2017-06-16 2017-06-16 制御装置、ロボットシステム、テーブル作成方法およびロボット制御方法

Country Status (3)

Country Link
US (1) US20180361592A1 (ja)
JP (1) JP6915395B2 (ja)
CN (1) CN109129414B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018202589A (ja) * 2017-06-09 2018-12-27 セイコーエプソン株式会社 制御装置、ロボット、およびロボットシステム
JP6844462B2 (ja) * 2017-07-21 2021-03-17 株式会社デンソーウェーブ 角度検出器の偏心誤差補正方法、ロボットシステム
JP2019077008A (ja) * 2017-10-26 2019-05-23 セイコーエプソン株式会社 スカラロボット
JP2019141968A (ja) * 2018-02-22 2019-08-29 株式会社デンソーウェーブ ロボットのアーム回転軸速度検出装置
JP7278803B2 (ja) * 2019-03-01 2023-05-22 キヤノン株式会社 情報処理方法、情報処理装置、ロボットシステム、ロボットシステムの制御方法、ロボットシステムを用いた物品の製造方法、プログラム及び記録媒体
US11897146B2 (en) 2018-12-18 2024-02-13 Canon Kabushiki Kaisha Examination method for examining robot apparatus, control apparatus, and storage medium
DE102018133349A1 (de) * 2018-12-21 2020-06-25 Pilz Gmbh & Co. Kg Verfahren und Vorrichtung zur Momentschätzung
JP7310271B2 (ja) * 2019-04-25 2023-07-19 セイコーエプソン株式会社 制御装置、制御方法、およびロボットシステム
JP7414426B2 (ja) 2019-08-20 2024-01-16 ファナック株式会社 ロボットシステム
CN111347422B (zh) * 2019-12-27 2021-06-11 北京卫星制造厂有限公司 一种提高机器人关节精度的控制方法
US11148287B1 (en) * 2020-04-13 2021-10-19 Orangewood Labs Inc. System and/or method for error compensation in mechanical transmissions
JP7553191B2 (ja) * 2020-08-31 2024-09-18 東京エレクトロン株式会社 基板搬送システムの制御方法及び基板搬送システム
JP7567518B2 (ja) * 2021-02-01 2024-10-16 セイコーエプソン株式会社 減速機の角度伝達誤差補正方法およびロボットシステム
JP2022118490A (ja) * 2021-02-02 2022-08-15 日本電産サンキョー株式会社 制御装置及び産業用ロボット
CN114310907B (zh) * 2022-01-25 2024-01-16 佛山智能装备技术研究院 一种多工况自适应的工业机器人末端振动抑制方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6149217A (ja) * 1984-08-16 1986-03-11 Fujitsu Ltd 減速機の誤差補正方式
KR100241148B1 (ko) * 1995-07-13 2000-03-02 이종수 수치 제어기의 백래시 보정 장치 및 그 방법
JP2002175120A (ja) * 2000-12-08 2002-06-21 Harmonic Drive Syst Ind Co Ltd アクチュエータの位置決め誤差補正方法
WO2004052598A1 (ja) * 2002-12-12 2004-06-24 Matsushita Electric Industrial Co., Ltd. ロボット制御装置
CN1290679C (zh) * 2004-07-08 2006-12-20 北京理工大学 机器人关节的双闭环控制系统
JP5133141B2 (ja) * 2008-06-09 2013-01-30 株式会社ハーモニック・ドライブ・システムズ アクチュエータの回転伝達誤差補正方法およびアクチュエータの駆動制御装置
JP5277946B2 (ja) * 2008-12-24 2013-08-28 株式会社安川電機 ロボット制御装置およびロボットシステム
JP5929224B2 (ja) * 2012-01-20 2016-06-01 セイコーエプソン株式会社 ロボット
JP6164948B2 (ja) * 2013-06-20 2017-07-19 キヤノン株式会社 ロボット装置及び部品の製造方法
EP3112096B1 (en) * 2014-02-28 2020-10-14 Sony Corporation Robot arm apparatus, calibration method, and program
JP6496937B2 (ja) * 2014-03-06 2019-04-10 ソニー株式会社 アクチュエータ及びロボットアーム装置
EP3135445B1 (en) * 2014-03-28 2021-04-28 Sony Corporation Robot arm device
FR3019953B1 (fr) * 2014-04-09 2016-05-06 Staubli Sa Ets Procede de commande d'un robot multi-axes et robot pour la mise en oeuvre d'un tel procede
JP5980965B2 (ja) * 2015-01-08 2016-08-31 ファナック株式会社 複数の回転角検出器により回転角を更新するロボット制御装置
JP2016221615A (ja) * 2015-05-29 2016-12-28 キヤノン株式会社 ロボット装置の診断方法、およびロボットシステム
JP6652292B2 (ja) * 2015-09-24 2020-02-19 キヤノン株式会社 制御方法、制御プログラム、ロボットシステム、回転駆動装置の制御方法、およびロボット装置
JP6860417B2 (ja) * 2017-05-18 2021-04-14 川崎重工業株式会社 減速機角度伝達誤差同定システム及び減速機角度伝達誤差同定方法

Also Published As

Publication number Publication date
CN109129414A (zh) 2019-01-04
US20180361592A1 (en) 2018-12-20
CN109129414B (zh) 2023-05-12
JP2019000948A (ja) 2019-01-10

Similar Documents

Publication Publication Date Title
JP6915395B2 (ja) 制御装置、ロボットシステム、テーブル作成方法およびロボット制御方法
JP7058929B2 (ja) 駆動装置、ロボット装置、制御方法、物品の製造方法、制御プログラム、および記録媒体
JP6986373B2 (ja) ロボットシステム及びロボットシステムの制御方法
CN105965505A (zh) 机器人控制方法、机器人装置、程序和记录介质
JP5249452B1 (ja) 補正データを考慮した軌跡表示装置
JP6860417B2 (ja) 減速機角度伝達誤差同定システム及び減速機角度伝達誤差同定方法
JP6359210B1 (ja) 制御パラメータ調整装置
JP2011224662A (ja) ロボット制御装置の補正パラメータ同定装置
WO2022118760A1 (ja) ロボットを用いた3dプリンタ及びロボットの制御装置
JP2007515301A (ja) 多軸ロボットの可動部分の変位を制御するための方法及び装置
JP2004148466A (ja) ロボット制御装置
JP7034383B2 (ja) サーボ制御装置
CN110871456A (zh) 机器人
JP7267688B2 (ja) ロボットシステム、ロボットアームの制御方法、物品の製造方法、駆動装置および駆動装置の制御方法
JP7185495B2 (ja) 減速機システム、駆動ユニットへの指令値の補正方法、補正データの生成方法、及び減速機システムの製造方法
JP2020037172A (ja) ロボット
JP2019141983A (ja) ロボット制御装置
JP2003157114A (ja) ロストモーション補正方法およびロストモーション補正装置
JP2009104316A (ja) 回転構造物の位置制御方法
JPH01222311A (ja) 多自由度作業機械の曲面倣い制御装置
JP7121599B2 (ja) ロボットシステム及びロボットシステムの制御方法
JP2021133432A (ja) 補正方法、伝達誤差補正値の検証プログラム、及び制御装置、ロボット
JP7445006B2 (ja) 表示装置
JP7391523B2 (ja) 制御装置、ロボットシステム、制御方法、物品の製造方法、プログラム、及び記録媒体
TW202219674A (zh) 檢測傳達電動機輸出之旋轉力的動力傳達機構之異常的異常檢測裝置

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20180910

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200519

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200519

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20200806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210615

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210628

R150 Certificate of patent or registration of utility model

Ref document number: 6915395

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150