JP7357689B2 - 制御装置、ロボットシステム及び制御方法 - Google Patents

制御装置、ロボットシステム及び制御方法 Download PDF

Info

Publication number
JP7357689B2
JP7357689B2 JP2021561148A JP2021561148A JP7357689B2 JP 7357689 B2 JP7357689 B2 JP 7357689B2 JP 2021561148 A JP2021561148 A JP 2021561148A JP 2021561148 A JP2021561148 A JP 2021561148A JP 7357689 B2 JP7357689 B2 JP 7357689B2
Authority
JP
Japan
Prior art keywords
trajectory
correction parameter
learning
motion
actual
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
JP2021561148A
Other languages
English (en)
Other versions
JPWO2021106237A5 (ja
JPWO2021106237A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2021106237A1 publication Critical patent/JPWO2021106237A1/ja
Publication of JPWO2021106237A5 publication Critical patent/JPWO2021106237A5/ja
Application granted granted Critical
Publication of JP7357689B2 publication Critical patent/JP7357689B2/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
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本開示は、制御装置、ロボットシステム及び制御方法に関する。
複数のリンクのそれぞれを動かす複数のモータ(つまり、複数の軸)を有するロボット装置の動作を制御する制御装置において、ロボット装置の先端のリンクの実際の動作軌跡を目標の動作軌跡に近づけるために、複数のモータのそれぞれにおけるサーボ遅れ時間を基準時間に一致させる制御方法が提案されている。例えば、特許文献1を参照。
特開2009-151527号公報
しかしながら、ロボット装置では、ユーザによるサーボ遅れ時間の設定を制限している場合がある。この場合、ロボット装置の実際の動作軌跡と目標の動作軌跡との差が低減されないため、ロボット装置の動作精度が低下するという課題がある。
本開示は、ロボット装置の動作精度を向上させることを目的としている。
本開示の一態様に係る制御装置は、第1のリンクを含む複数のリンクと、動作指令に基づいて前記複数のリンクをそれぞれ動かす複数のモータと、前記複数のモータの回転位置をそれぞれ検出する複数の回転位置検出器とを有するロボット装置を制御する制御装置であって、習用の動作データに基づいて前記複数のモータを駆動した場合に前記複数の回転位置検出器によって検出された前記回転位置を用いて算出された前記第1のリンクの実際の動作軌跡と、前記学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの理想の動作軌跡と、の差に対応する補正パラメータを算出する補正パラメータ算出部と、実際の動作データに基づいて前記複数のモータを駆動する場合に、前記実際の動作データを前記補正パラメータとして算出されたj(jは2以上の正の整数)個の中間点を経由する軌跡として補正し、補正された前記実際の動作データに基づいて前記複数のモータの前記動作指令を生成する動作指令部と、を有し、前記補正パラメータ算出部は、前記実際の動作軌跡上の点から前記差が大きい点から順に選択されたj個の点をj個の極大点として特定し、前記j個の極大点のそれぞれに対応して、前記j個の極大点のそれぞれと、前記理想の動作軌跡との前記差が大きいほど、前記理想の動作軌跡から大きく離れ、前記理想の動作軌跡に対して、前記j個の極大点とは反対側に存在する前記j個の中間点を算出することを特徴とする。
本開示によれば、ロボット装置の動作精度を向上させることができる。
実施の形態1に係るロボットシステムの構成を概略的に示す斜視図である。 実施の形態1に係るロボットシステムのロボット装置の先端のリンクの目標軌跡及び実際の動作軌跡の一例を示す斜視図である。 実施の形態1に係るロボットシステムの構成を概略的に示すブロック図である。 実施の形態1に係るロボットシステムの制御装置のハードウェア構成を示す図である。 実施の形態1に係る制御装置における、実際の動作軌跡を目標軌跡に近づける処理を示す模式図である。 実施の形態1に係る制御装置の学習フェーズにおける動作の一例を示すフローチャートである。 実施の形態1に係るロボットシステムの制御装置の学習用の動作データ記憶部に記憶されているデータの一例を示す図である。 実施の形態1に係る制御装置の補正パラメータ記憶部に記憶されているデータの一例を示す図である。 実施の形態1に係る制御装置における、補正パラメータを算出する処理を示す模式図である。 図6の補正パラメータを算出する処理を示すフローチャートである。 実施の形態1に係る制御装置の運用フェーズにおける動作の一例を示すフローチャートである。 実施の形態2に係る制御装置における補正パラメータを算出する処理を示すフローチャートである。 (A)図12のステップST111からステップST214までの処理を示す模式図である。(B)図12のステップST215からステップST217までの処理を示す模式図である。(C)図12のステップST218の処理を示す模式図である。 実施の形態3に係る制御装置において、補正パラメータを算出する処理を示すフローチャートである。 実施の形態4に係るロボットシステムにおける、ロボット装置の複数のモータの動作指令に含まれる補正パラメータの指定数と、実際の動作軌跡と目標軌跡との軌跡誤差との関係の一例を示すグラフである。 (A)実施の形態5に係る制御装置における、実際の第1の動作軌跡上の極大点を指定する方法の一例を概略的に示す模式図である。(B)実施の形態5に係る制御装置における、実際の第1の動作軌跡上の極大点を指定する方法の他の例を概略的に示す模式図である。 実施の形態6に係るロボットシステムの構成を概略的に示すブロック図である。 実施の形態7に係るロボットシステムの構成を概略的に示すブロック図である。 (A)は、図18に示される補正パラメータ記憶部に記憶されているデータの一例を示す図である。(B)は、図18に示される目標動作データ取得部に入力されるデータの一例を示す図である。
以下に、本開示の実施の形態に係る制御装置及びロボットシステムを、図面を参照しながら説明する。以下の実施の形態は、例にすぎず、実施の形態を適宜組み合わせること及び各実施の形態を適宜変更することが可能である。
実施の形態1.
図1は、実施の形態1に係るロボットシステム1の構成を概略的に示す斜視図である。図1に示されるように、ロボットシステム1は、ロボット装置(以下、単に「ロボット」ともいう)100と、ロボット装置100の動作を制御する制御装置50とを有する。
ロボット装置100は、例えば、垂直多関節型のロボットである。なお、ロボット装置100は、垂直多関節型のロボットに限られず、例えば、水平多関節型のロボット又は門型のロボットであってもよい。また、ロボット装置100は、例えば、部品加工を行う組立ロボットとして用いられる。
ロボット装置100は、ベース110と、第1のアーム120と、第2のアーム130と、第3のアーム140と、第4のアーム150と、リスト160と、フランジ170とを有する。ベース110、第1のアーム120、第2のアーム130、第3のアーム140、第4のアーム150、リスト160、及びフランジ170のそれぞれは、ロボット装置100におけるリンクである。ベース110は略円柱状のリンクである。ベース110は、例えば床面などの設置面に固定される固定面110aを有する。図1に示されるXYZ直交座標系において、X軸とY軸は、ベース110の固定面110aに平行な座標軸である。Z軸は、X軸とY軸に直交する座標軸である。
第1のアーム120は、ベース110上でZ軸に平行な第1の軸J1周りに回転可能である。第2のアーム130は、第1のアーム120と第2の軸J2周りに回転可能に連結されている。第3のアーム140は、第2のアーム130と第3の軸J3周りに回転可能に連結されている。第4のアーム150は、第3のアーム140と第4の軸J4周りに回転可能に連結されている。リスト160は、第4のアーム150の先端部と第5の軸J5周りに回転可能に連結されている。フランジ170は、リスト160と第6の軸J6周りに回転可能に連結されている。つまり、ロボット装置100は、第1の軸J1から第6の軸J6までに対応する6軸の関節を有するロボットである。なお、ロボット装置100は、2以上の軸の関節を有するロボットであればよい。
ロボット装置100は、制御装置50に接続されている。制御装置50は、ロボット装置100の動作中における第1のリンクとしてのフランジ170の位置を制御する。実施の形態1では、制御装置50は、ロボット装置100に動作指令が入力されたときのフランジ170の実際の動作軌跡(例えば、後述する図2に示される実際の動作軌跡T2)を理想の動作軌跡(例えば、後述する図2に示される目標軌跡T1)に近づける制御を行う。なお、制御装置50は、ロボット装置100における先端のリンクであるフランジ170とは異なる他のリンク(例えば、第4のアーム150など)の位置を制御してもよい。また、フランジ170に先端のリンクとしての物体把持機構が取り付けられている場合、制御装置50は、その物体把持機構の位置を制御してもよい。
図2は、ロボット装置100のフランジ170の理想の動作軌跡と実際の動作軌跡の一例を示す図である。図2には、ロボット装置100に動作指令が入力された場合のフランジ170の理想の動作軌跡(つまり、目標軌跡)T1、及びロボット装置100に目標軌跡T1に対応する動作指令が入力された場合のフランジ170の実際の動作軌跡T2が示されている。図2に示されるように、フランジ170の実際の動作軌跡T2は、目標軌跡T1と一致しない場合がある。制御装置50は、目標軌跡T1と実際の動作軌跡T2との差(以下、「軌跡誤差」ともいう)を低減する制御を行う。つまり、制御装置50は、実際の動作軌跡T2を目標軌跡T1に近づける制御を行う。
図3は、実施の形態1に係るロボットシステム1の構成を概略的に示すブロック図である。図3に示されるように、ロボット装置100は、複数のリンクをそれぞれ動かす複数のモータM1~M6と、複数のモータM1~M6のそれぞれの回転位置を検出する複数の回転位置検出器としての複数のエンコーダE1~E6とを有する。ベース110には、第1のアーム120を回転させるモータM1と、モータM1の回転位置を検出するエンコーダE1とが備えられている。第1のアーム120には、第2のアーム130を回転させるモータM2と、モータM2の回転位置を検出するエンコーダE2とが備えられている。第2のアーム130には、第3のアーム140を回転させるモータM3と、モータM3の回転位置を検出するエンコーダE3とが備えられている。第3のアーム140には、第4のアーム150を回転させるモータM4と、モータM4の回転位置を検出するエンコーダE4とが備えられている。第4のアーム150には、リスト160を回転させるモータM5と、モータM5の回転位置を検出するエンコーダE5とが備えられている。リスト160には、フランジ170(図1参照)を回転させるモータM6と、モータM6の回転位置を検出するエンコーダE6とが備えられている。複数のモータM1~M6は、例えば、サーボモータである。
制御装置50は、モータ制御装置60と、演算装置70とを有する。モータ制御装置60は、複数のモータM1~M6及び複数のエンコーダE1~E6に接続されている。モータ制御装置60は、演算装置70から出力される動作指令に基づいて複数のモータM1~M6を駆動させる。複数のモータM1~M6が駆動した場合、モータ制御装置60には、複数のエンコーダE1~E6によって検出された複数の回転位置にそれぞれ対応する複数の検出信号(つまり、エンコーダ値)が入力される。モータ制御装置60は、複数のエンコーダE1~E6から入力された複数の検出信号を演算装置70(具体的には、後述する補正パラメータ算出部72)に出力する。モータ制御装置60は、複数のモータM1~M6のそれぞれに対応する複数のモータ制御部61~66を有する。
演算装置70は、補正パラメータ算出部72と、動作指令部74とを有する。補正パラメータ算出部72は、軌跡誤差を低減させる計算に用いられる補正パラメータ(以下、「軌跡誤差低減パラメータ」ともいう)を、例えば、機械学習によって算出する。補正パラメータは、予め定められた学習用の動作データに基づいて複数のモータM1~M6を駆動した場合に得られるフランジ170(図1参照)の実際の動作軌跡と、学習用の動作データに基づいて複数のモータM1~M6を駆動する場合におけるフランジ170の理想の動作軌跡との差に対応する。フランジ170の実際の動作軌跡は、複数のエンコーダE1~E6によって検出された複数のモータM1~M6のそれぞれの回転位置を用いて算出される。
動作指令部74は、補正パラメータ算出部72によって算出された補正パラメータを用いて実際の動作データを補正し、補正された実際の動作データに基づいて複数のモータM1~M6の動作指令を生成する。動作指令部74は、生成した複数のモータM1~M6の動作指令をモータ制御装置60に出力する。
演算装置70は、第1の記憶部としての動作データ記憶部71と、第2の記憶部としての補正パラメータ記憶部73を更に有していてもよい。動作データ記憶部71(以下、「学習用動作一覧DB」ともいう)は、学習用の動作データが記憶されたデータベースである。補正パラメータ記憶部(以下、「軌跡誤差低減DB」ともいう)73は、補正パラメータ算出部72によって算出された補正パラメータが記憶されたデータベースである。なお、動作データ記憶部71及び補正パラメータ記憶部73は、同じ記憶装置の異なる記憶領域であってもよい。また、動作データ記憶部71及び補正パラメータ記憶部73は、制御装置50の一部でなくてもよく、クラウドサーバなどの外部の装置であってもよい。
図4は、制御装置50のハードウェア構成を示す図である。図4に示されるように、制御装置50は、ソフトウェアとしてのプログラムを格納する記憶装置としてのメモリ51と、メモリ51に格納されたプログラムを実行する情報処理部としてのプロセッサ52とを用いて(例えば、コンピュータによって)実現することができる。なお、制御装置50の一部を、図4に示されるメモリ51とプロセッサ52とによって実現してもよい。また、制御装置50は、電気回路によって実現されてもよい。
次に、図5を用いて、制御装置50における、フランジ170の実際の動作軌跡T20を目標軌跡T10に近づける処理について説明する。図5では、説明の理解を容易にするために、図1及び2に示されるロボット装置100を3次元空間で動作させるときのフランジ170の動作軌跡が2次元平面であるXY平面に投影されている。また、目標軌跡T10は、始点Sと終点Fとを結んでX軸方向に延びる直線の軌跡である。実際の動作軌跡T20は、その始点S及び終点Fが目標軌跡T10と一致し、始点Sと終点Fとの間で目標軌跡T10からずれた-Y軸方向に凸の円弧状の曲線の軌跡である。実際の動作軌跡T20の通過点QのX座標は、目標軌跡T10上の基準点PのX座標と同一である。つまり、実際の動作軌跡T20は、X軸方向において、目標軌跡T10とのずれは生じていない。なお、目標軌跡T10において、始点Sと基準点Pとの間の距離は、基準点Pと終点Fとの間の距離に等しい。
実際の動作軌跡T20上の通過点Qと目標軌跡T10上の基準点Pとの間には、Y軸方向において、第1の差としての軌跡誤差D1が生じている。通過点QのY座標を基準点PのY座標に近づけるために、基準点Pよりも+Y軸側に位置する中間点Cの座標が算出される。ここで、中間点CのX座標は、基準点P及び通過点QのX座標と同一である。中間点CのY座標の値は、後述する計算式を用いて通過点QのY座標から導き出される。中間点Cの座標は、目標軌跡T10に対応する動作指令の補正に用いられる。具体的には、目標軌跡T10に対応する動作指令は、始点S、中間点C、及び終点Fを含む軌跡に沿ってフランジ170を動作させることを意図した動作指令R10に補正される。補正された動作指令R10は、始点S及び終点Fの間で目標軌跡T10からずれた+Y軸方向に凸の円弧状の曲線で表される。補正された動作指令R10に基づいてロボット装置100(図1参照)が動作することによって、フランジ170(図1参照)の実際の動作軌跡T21は、目標軌跡T10に近づけられる。また、中間点Cの座標は、ロボットシステム1を利用するユーザが制御装置50において設定可能なパラメータである。
次に、図3に示される演算装置70の動作について説明する。演算装置70の動作には、補正パラメータ算出部72によって処理が実行される「学習フェーズ」と、動作指令部74によって処理が実行される「運用フェーズ」とが含まれる。
図6は、演算装置70の学習フェーズにおける動作の一例を示すフローチャートである。まず、ステップST101において、補正パラメータ算出部72は、学習用動作一覧DBとしての動作データ記憶部71から学習用の動作データを読み込む。図7は、動作データ記憶部71に記憶されている学習用の動作データの一例を示す図である。動作データ記憶部71は、例えば、複数の学習用の動作データを予め記憶している。動作データ記憶部71では、例えば、機械学習においてロボット装置100を動作させるときのパラメータ(つまり、複数のロボットパラメータ)がテーブル形式で記憶されている。図7では、複数の学習用の動作データのそれぞれを構成するパラメータの一部が抜粋されて示されている。パラメータは、例えば、フランジ170が動作する動作平面としての「平面」、フランジ170が動作する方向としての「動作方向」、フランジ170の動作平面に対するフランジ170の角度(例えば、フランジ170の先端平面の角度)である「平面に対する角度」、フランジ170の動作の始点から終点までの距離としての「動作距離」を含む。また、パラメータは、例えば、フランジ170に取り付けられる物体把持機構が把持するワークの重量としての「ワーク重量」、フランジ170が終点に到達したときのフランジ170の姿勢としての「フランジ姿勢」、フランジ170の動作速度としての「速度」、始点としての「動作開始点」、ワークの形状情報としての「ワーク重心位置」を含む。なお、図7では、「ワーク重心位置」の図示が省略されている。また、ロボット装置100を動作させるときのパラメータ数は、ロボットシステムによって任意に選択でき、図7に示されたパラメータの一部のみでもよい。
図6に戻って、ステップST102において、補正パラメータ算出部72は、予め定められた学習動作(例えば、図9で後述する複数の学習動作)が完了しているか否かを判定する。学習動作が完了している場合(つまり、ステップST102において、Yesの場合)、補正パラメータ算出部72は、処理を終了する。学習動作が完了していない場合(つまり、ステップST102において、Noの場合)、補正パラメータ算出部72は、処理をステップST103へ進める。
ステップST103において、補正パラメータ算出部72は、補正パラメータとして、複数のモータM1~M6の動作指令を生成するための計算に用いられる中間点の座標を算出する。なお、中間点を算出する処理の詳細については、後述する。
ステップST104において、補正パラメータ算出部72は、始点の座標、終点の座標、及び中間点の座標を補正パラメータ記憶部73に書き込む。実施の形態1では、補正パラメータ算出部72は、始点の座標及び終点の座標を含む学習用の動作データと、中間点の座標とを関連付けたデータを補正パラメータ記憶部73に書き込む。図8は、補正パラメータ記憶部73に記憶されているデータの一例を示す図である。図8に示されるように、軌跡誤差低減DBとしての補正パラメータ記憶部73では、図7に示される複数の学習用の動作データのそれぞれに対応するように、中間点の座標がテーブル形式で記憶されている。なお、図8では、終点の座標の図示が省略されている。また、図8に示されるように、複数の学習用の動作データのそれぞれに対応する中間点の座標の数は、2つ以上であってもよい。2つ以上の中間点の座標が記憶されている場合、その2つ以上の中間点を含む軌跡に沿ってフランジ170を動作させることを意図した実際の動作データを構成する1つのパラメータとして、中間点の通過順が記憶されていてもよい。
図9は、中間点の座標を算出する処理を示す模式図である。図9では、説明の理解を容易にするために、目標軌跡T100は、図5と同様に、始点Sと終点Fとを結んでX軸方向に延びる直線の軌跡である。目標軌跡T100における始点SのY座標及び終点FのY座標の値は、0である。実施の形態1では、ロボット装置100のフランジ170(図1参照)の実際の動作軌跡を目標軌跡T100に近づけるために、第1の学習用の動作データに基づいてロボット装置100を動作させる第1の学習動作と、第2の学習用の動作データに基づいてロボット装置100を動作させる第2の学習動作とが行われる。
まず、第1の学習動作を説明する。第1の学習用の動作データは、第1の中間点C1に基づいて生成される。第1の中間点C1は、目標軌跡T100上における点である。ここで、始点Sと第1の中間点C1との間の距離は、第1の中間点C1と終点Fとの間の距離に等しい。実際の第1の動作軌跡T200は、第1の学習用の動作データに基づいてロボット装置100(図1参照)を動作させたときのフランジ170(図1参照)の実際の動作軌跡である。実際の第1の動作軌跡T200は、始点Sと終点Fとの間で目標軌跡T100からずれた+Y軸方向に凸の円弧状の曲線の軌跡である。第1の極大点A1は、実際の第1の動作軌跡T200上において、目標軌跡T100と最大の軌跡誤差が生じている通過点である。言い換えれば、第1の極大点A1は、軌跡誤差の微分値が0となる実際の第1の動作軌跡T200上の通過点のうち、その前後の通過点と比較して軌跡誤差が大きい通過点である。ここで、目標軌跡T100は、y=0の直線の軌跡であるため、実際の第1の動作軌跡T200と目標軌跡T100との最大の軌跡誤差は、第1の極大点A1のY座標A1yに相当する。
次に、第1の学習動作に続く第2の学習動作を説明する。第2の学習用の動作データは、第2の中間点C2に基づいて生成される。第2の中間点C2は、第1の学習動作において、第1の極大点A1に基づいて算出される。第2の中間点C2は、第1の中間点C1よりも+X軸側にずれている。実際の第2の動作軌跡T201は、第2の学習用の動作データに基づいてロボット装置100を動作させたときのフランジ170の実際の動作軌跡である。実際の第2の動作軌跡T201上における第2の極大点A2は、実際の第2の動作軌跡T201と目標軌跡T100との最大の軌跡誤差が生じている通過点である。上述した通り、目標軌跡T100は、y=0の直線の軌跡であるため、実際の第2の動作軌跡T201と目標軌跡T100との最大の軌跡誤差は、第2の極大点A2のY座標A2yに相当する。
実際の第2の動作軌跡T201は、実際の第1の動作軌跡T200よりも目標軌跡T100に近づいている。しかし、実際の第2の動作軌跡T201と目標軌跡T100との間には、Y軸方向において、わずかな軌跡誤差が生じている。実際の第2の動作軌跡T201を目標軌跡T100に更に近づけるために、第3の中間点C3が算出される。第3の中間点C3は、第2の中間点C2、第1の極大点A1及び第2の極大点A2に基づいて算出される。第3の中間点C3の座標は、実際の第2の動作軌跡T201を目標軌跡T100に近づける計算に用いられる第1の補正パラメータである。なお、図12及び図13(A)~(C)で後述するように、実際の第2の動作軌跡T201を目標軌跡T100に近づけるために複数の第3の中間点の座標が算出されてもよい。
第3の中間点C3のX座標C3xは、第2の中間点C2のX座標C2xと同一である。次に、第3の中間点C3のY座標C3yを算出する計算式について説明する。ここで、中間点のY座標と最大の軌跡誤差との関係が一次関数によって規定される場合、第1の中間点C1のY座標C1yと最大の軌跡誤差A1yとの関係は、以下の式(1)で示され、第2の中間点C2のY座標C2yと最大の軌跡誤差A2yとの関係は、以下の式(2)で示される。なお、式(1)及び(2)に示される「a」及び「b」は、係数である。
a・C1y+b=A1y (1)
a・C2y+b=A2y (2)
ここで、第1の中間点C1は、y=0の直線の軌跡である目標軌跡T100上における点であるため、第1の中間点C1のY座標C1yは、以下の式(3)で示される。
1y=0 (3)
式(1)~式(3)から、係数a及びbについて、以下の式(4)及び(5)が導き出される。
a=(A2y-A1y)/C2y (4)
b=A1y (5)
ここで、仮に、第3の中間点C3の座標(C3x,C3y)に基づいて生成された第3の学習用の動作データによってロボット装置100を動作させたときの実際の第3の動作軌跡と目標軌跡T100との最大の軌跡誤差がA3yである場合、第3の中間点C3のY座標C3yと軌跡誤差A3yとの関係は、以下の式(6)で示される。
a・C3y+b=A3y (6)
式(6)に式(4)及び(5)を代入すると、以下の式(7)が導き出される。
3y・(A2y-A1y)/C2y+A1y=A3y (7)
軌跡誤差A3yがA3y→0となるために必要な第3の中間点C3のY座標C3yは、式(7)において、A3y=0を代入した後に変形した以下の式(8)で示される。
3y=-A1y・C2y/(A2y-A1y) (8)
第3の中間点C3のY座標C3yは、実際の第2の動作軌跡T201を目標軌跡T100に近づける動作指令を生成するために用いられる補正値である。
図10は、第3の中間点C3の座標(C3x,C3y)を算出する処理(図8に示されるステップST103)を示すフローチャートである。図10におけるステップST111からステップST115までは、第1の学習動作における処理である。また、図10におけるステップST116からステップST118までは、第2の学習動作における処理である。まず、ステップST111において、補正パラメータ算出部72は、目標軌跡T11の始点Sの座標(S,0)及び終点Fの座標(F,0)を取得する。
ステップST112において、補正パラメータ算出部72は、目標軌跡T11の始点Sと終点Fとの間に位置する第1の中間点C1の座標(C1x,C1y)を算出する。ここで、第1の中間点C1のX座標C1xは、以下の式(9)で求められる。
1x=(S+F)/2 (9)
なお、図9では、第1の中間点C1のY座標C1yは、上述した式(3)に示される通り、0である。
ステップST113において、補正パラメータ算出部72は、始点S、第1の中間点C1、及び終点Fを含む軌跡に対応する第1の学習用の動作データを生成し、第1の学習用の動作データに基づいてロボット装置100を動作させて、図9に示される実際の第1の動作軌跡T200を取得する。
ステップST114において、補正パラメータ算出部72は、実際の第1の動作軌跡T200と目標軌跡T100との軌跡誤差が最大となる第1の極大点A1の座標(A1x,A1y)を取得する。
ステップST115において、補正パラメータ算出部72は、第1の極大点A1の座標(A1x,A1y)に基づいて、第2の中間点C2の座標(C2x,C2y)を算出する。第2の中間点C2のX座標C2x及びY座標C2yは、以下の式(10)及び(11)で求められる。
2x=A1x (10)
2y=-A1y (11)
ステップST116において、補正パラメータ算出部72は、始点S、第2の中間点C2、及び終点Fを含む軌跡に対応する第2の学習用の動作データを生成し、第2の学習用の動作データに基づいてロボット装置100を動作させて、図9に示される実際の第2の動作軌跡T201を取得する。
ステップST117において、補正パラメータ算出部72は、実際の第2の動作軌跡T201と目標軌跡T100との軌跡誤差が最大となる第2の極大点A2の座標(A2x,A2y)を取得する。
ステップST118において、補正パラメータ算出部72は、第2の中間点C2の座標(C2x,C2y)、第1の極大点A1の座標(A1x,A1y)及び第2の極大点A2の座標(A2x,A2y)に基づいて、第3の中間点C3の座標(C3x,C3y)を算出する。第3の中間点C3のX座標C3xは、第2の中間点C2のX座標C2xと同一であるため、以下の式(12)で求められる。
3x=C2x (12)
第3の中間点C3のY座標C3yは、上述した式(8)に示される通りである。
補正パラメータ算出部72は、第3の中間点C3の座標(C3x,C3y)を算出した後に、学習フェーズにおける処理を終了する。
なお、図10では、第1の学習動作と第2の学習動作とを行う学習フェーズを説明したが、学習フェーズは、第2の学習動作に続く第3の学習動作が行われてもよい。また、演算装置70の動作における学習フェーズでは、第1の学習動作のみが行われてもよい。つまり、第nの中間点Cnの座標(Cnx,ny)が算出された後に、学習フェーズの処理が終了してもよい。nは、2以上の整数である。また、図10において、補正パラメータ算出部72は、ステップST117において、第2の極大点A2を取得した後に、軌跡誤差A2yが予め定められた閾値以下であるか否かを判定し、処理をステップST118に進めるか否かを決めてもよい。具体的には、軌跡誤差A2yが閾値以下である場合、補正パラメータ算出部72は学習フェーズにおける処理を終了し、軌跡誤差A2yが閾値よりも大きい場合、補正パラメータ算出部72は処理をステップST118へ進めてもよい。更に、中間点の座標を3次元に拡張する場合には、複数の座標軸を用意し、図10に示されるステップST111からステップST118までの処理を複数回実施すればよい。
次に、算出された第3の中間点C3の座標(C3x,C3y)に基づいて図3に示される複数のモータM1~M6の動作指令を生成する処理について述べる。図11は、制御装置50の運用フェーズにおける動作を示すフローチャートである。まず、ステップST121において、フランジ170の目標軌跡に対応する実際の動作データが、ロボットシステム1のユーザによって、制御装置50に入力される。図11では、説明の理解を容易にするために、制御装置50に入力される実際の動作データは、フランジ170を図9に示される目標軌跡T100に沿って動かすことを意図した動作データである。
ステップST122において、動作指令部74は、補正パラメータ記憶部73から目標軌跡T100に対応する第3の中間点C3の座標(C3x,C3y)を読み込む。
ステップST123において、動作指令部74は、目標軌跡T100に対応する実際の動作データを第3の中間点C3の座標(C3x,C3y)を用いて補正し、補正された動作データを補正された動作指令として生成する。具体的には、動作指令部74は、目標軌跡T100に対応する実際の動作データを、始点S、第3の中間点C3、及び終点Fを含む軌跡に沿ってフランジ170を動かすことを意図した動作データに補正して、補正された実際の動作データを生成する。動作指令部74は、補正された実際の動作データに基づいて、複数のモータM1~M6の動作指令(例えば、複数のモータM1~M6のそれぞれのトルク、又は複数のモータM1~M6のそれぞれの駆動時間)を計算する。
ステップST124において、動作指令部74は、生成した複数のモータM1~M6の動作指令をモータ制御装置60に出力する。計算によって得られた複数のモータM1~M6の動作指令に基づいて、複数のモータM1~M6が動作する。図11に示される運用フェーズでは、補正された動作データに基づいて複数のモータM1~M6の動作指令が生成されているため、実際の動作軌跡が目標軌跡に近づけられる。
以上に説明したように、実施の形態1によれば、軌跡誤差を低減するために、学習によって算出された軌跡誤差低減パラメータとしての中間点C(図5に示される)の座標、又は、第3の中間点C3の座標(C3x,C3y)(図9に示される)に基づいて補正された動作指令によって、複数のモータM1~M6がフランジ170を含む複数のリンクを動かすため、フランジ170の実際の動作軌跡を目標軌跡T100に近づけることができる。その結果、ロボット装置100の動作精度を向上させることができる。
また、中間点C(図5に示される)の座標、又は、第3の中間点C3の座標(C3x,C3y)(図9に示される)は、制御装置50においてユーザによって設定可能(つまり、入力可能)なパラメータであるため、ロボット装置100内部のパラメータを変更することなく、フランジ170の実際の動作軌跡を目標軌跡T100に近づけることができる。ここで、ロボット装置の複数のモータのそれぞれにおけるサーボ遅れ時間(つまり、応答遅れ時間)は、ロボット装置を安定して動作させるために重要なパラメータである。そのため、ロボット装置において、ユーザによるサーボ遅れ時間を変更する設定が制限されている場合がある。このとき、何らかの事情でロボット装置の動作特性が変わった場合、先端のリンクの実際の動作軌跡を目標軌跡に近づけることができない。実施の形態1に係る制御装置50は、上述した通り、ユーザによって設定可能なパラメータである中間点Cの座標、又は、第3の中間点C3の座標(C3x,C3y)を用いて、フランジ170の実際の動作軌跡を目標軌跡T100に近づけることができるため、サーボ遅れ時間の設定が制限されているロボット装置を制御する制御装置として実施の形態1に係る制御装置50が適用された場合の効果は、大きい。
実施の形態2.
実施の形態1では、図10のステップST114及びステップST115に示されるように、補正パラメータ算出部72は、実際の第1の動作軌跡T200上における1つの第1の極大点A1に基づいて1つの第2の中間点C2を算出する。実施の形態2では、図12及び図13(A)~(C)を用いて、実際の第1の動作軌跡T210上における2つの第1の極大点A11,A12に基づいて、複数の第2の中間点C21,C22の座標を算出する例、及び複数の第3の中間点C31,C32の座標を算出する例を説明する。
図12は、実施の形態2に係る制御装置における中間点を算出する処理を示すフローチャートである。図12において、図9に示される処理ステップと同じ処理ステップには、図9に示されるステップ番号と同じ番号が付されている。図13(A)は、図12のステップST111からステップST214までの処理を示す模式図である。図13(B)は、図12のステップST215からステップST217までの処理を示す模式図である。図13(C)は、図12のステップST218の処理を示す模式図である。
ステップST214において、補正パラメータ算出部72は、実際の第1の動作軌跡T210上において、目標軌跡T110との差が大きい順に複数の第1の極大点A11,A12を指定し、それら複数の第1の極大点A11,A12の座標(A11x,A11y),(A12x,A12y)を取得する。ここで、1つ目の第1の極大点A11は、実際の第1の動作軌跡T210上において、目標軌跡T110との差が最大となる差D11が生じている第1の通過点である。2つ目の第1の極大点A12は、実際の第1の動作軌跡T210上において、目標軌跡T110と第2の差D12が生じている第2の通過点である。第2の差D12は、差D11よりも小さい。なお、補正パラメータ算出部72は、実際の第1の動作軌跡T210上において、3個以上の第1の極大点を指定してもよく、例えば、10個の第1の極大点を指定してもよい。
ステップST215において、補正パラメータ算出部72は、複数の第1の極大点A11,A12に基づいて、複数の第2の中間点C21,C22の座標(C21x,C21y),(C22x,C22y)を算出する。ここで、1つ目の第2の中間点C21の座標(C21x,C21y)は、第1の極大点A11を目標軌跡T110上における第1の基準点P11に近づける計算に用いられる。2つ目の第2の中間点C22の座標(C22x,C22y)は、第1の極大点A12を目標軌跡T110上における第2の基準点P12に近づける計算に用いられる。複数の第2の中間点C21,C22の座標(C21x,C21y),(C22x,C22y)は、実施の形態1で説明した式(10)及び(11)を参考にして導き出される。1つ目の第2の中間点C21の座標(C21x,C21y)は、以下の式(13)及び(14)で示され、2つ目の第2の中間点C22の座標(C22x,C22y)は、以下の式(15)及び(16)で示される。
21x=A11x (13)
21y=-A11y (14)
22x=A12x (15)
22y=-A12y (16)
すなわち、ステップST214において、m個の第1の極大点A1mが指定されたとき、ステップST215で算出される第2の中間点C2mのX座標C2mx及びY座標C2myは、以下の式(17)及び(18)で示される。なお、mは、1以上の整数である。
2mx=A1mx (17)
2my=-A1my (18)
ステップST216において、補正パラメータ算出部72は、始点S、複数の第2の中間点C21,C22、及び終点Fを含む軌跡に対応する第2の学習用の動作データを生成し、第2の学習用の動作データに基づいてロボット装置100を動作させて、図13(B)に示される実際の第2の動作軌跡T211を取得する。
ステップST217において、補正パラメータ算出部72は、実際の第2の動作軌跡T211と目標軌跡T110との軌跡誤差が最大となる複数の第2の極大点A21,A22を指定し、それら複数の第2の極大点A21,A22の座標(A21x,A21y),(A22x,A22y)を取得する。
ステップST218において、補正パラメータ算出部72は、複数の第2の中間点C21,C22の座標、複数の第1の極大点A11,A12の座標、複数の第2の極大点A21,A22の座標に基づいて、複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)を算出する。複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)は、実際の第2の動作軌跡T211を目標軌跡T100に近づける動作指令を生成するために用いられる補正パラメータである。一方の第3の中間点C31の座標(C31x,C31y)は第1の補正パラメータであり、他方の第3の中間点C32の座標(C32x,C32y)は第2の補正パラメータである。
複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)は、実施の形態1で説明した式(8)及び(12)を参考にして導き出される。例えば、1つ目の第3の中間点C31の座標(C31x,C31y)は、以下の式(19)及び(20)で示され、2つ目の第3の中間点C32の座標(C32x,C32y)は、以下の式(21)及び(22)で示される。
31x=C21x (19)
31y=-A11y・C21y/(A21y-A11y) (20)
32x=C22x (21)
32y=-A12y・C22y/(A22y-A12y) (22)
すなわち、ステップST217において、m個の第2の極大点A2mが指定されたとき、ステップST218で算出される第3の中間点C3mのX座標C3mx及びY座標C3myは、以下の式(23)及び(24)で示される。
3mx=C2mx (23)
3my=-A1my・C2my/(A2my-A1my) (24)
実施の形態2によれば、軌跡誤差低減パラメータとしての複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)に基づいて補正された動作指令によって、複数のモータM1~M6がフランジ170を含む複数のリンクを動かすため、フランジ170の実際の動作軌跡を目標軌跡T100に近づける精度を向上させることができる。その結果、ロボット装置100の動作精度を更に向上させることができる。
上記以外の点について、実施の形態2は、実施の形態1と同じである。
実施の形態3.
実施の形態2では、図12に示されるステップST218において、複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)が算出された後に、処理が終了した。実施の形態3では、複数の第3の中間点C31,C32の座標に基づいて生成された第3の学習用の動作データによって、ロボット装置を動作させたときの実際の第3の動作軌跡と目標軌跡T110との差が予め定められた閾値よりも小さいか否かによって、処理を終了するか否かを判定する例を説明する。
図14は、実施の形態3に係る制御装置において、中間点を算出する処理を示すフローチャートである。図14において、図12に示される処理ステップと同じ処理ステップには、図12に示されるステップ番号と同じ番号が付されている。図14に示されるように、実施の形態3に係る制御装置の補正パラメータ算出部は、ステップST301において、複数の第3の中間点C31,C32の座標に基づいて生成された第3の学習用の動作データによってロボット装置を動作させ、実際の第3の動作軌跡を取得する。
ステップST302において、補正パラメータ算出部72は、実際の第3の動作軌跡と目標軌跡T110との軌跡誤差が予め定められた閾値よりも小さいか否かを判定する。軌跡誤差が閾値よりも小さい場合(つまり、ステップST302においてYesの場合)、補正パラメータ算出部は、処理を終了する。軌跡誤差が閾値よりも大きい場合(つまり、ステップST302においてNoの場合)、補正パラメータ算出部は、処理をステップST217へ戻す。なお、ステップST302においてNoの場合、補正パラメータ算出部は、処理をステップST214へ戻してもよい。
以上に説明したように、実施の形態3に係る制御装置を用いれば、複数の第3の中間点C31,C32の座標が、実際の第2の動作軌跡T211を目標軌跡T110に近づけるために有効でないと判定された場合、複数の第3の中間点C31,C32の座標を再設定する、又は新たな第3の中間点を追加設定することが可能となるため、ロボット装置100の動作精度を更に向上させることができる。
上記以外の点について、実施の形態3は、実施の形態1又は2と同じである。
実施の形態4.
実施の形態2では、図12に示されるステップST218において、補正パラメータ算出部が複数の第3の中間点C31,C32の座標(C31x,C31y),(C32x,C32y)を算出する例を説明した。実施の形態4においては、補正パラメータ算出部が算出する第3の中間点の数の上限値が指定されてもよい。
図15は、実施の形態4に係るロボットシステムにおいて、複数のモータM1~M6の補正された動作指令において指定された第3の中間点の数(以下、「中間点の指定数」ともいう)と軌跡誤差との関係の一例を示すグラフである。図15において、横軸は、中間点の指定数であり、縦軸は、補正された動作指令に基づいて複数のモータM1~M6を駆動した場合におけるフランジ170の実際の動作軌跡と目標軌跡との軌跡誤差の値である。図15では、中間点の指定数が5個の場合に軌跡誤差が最も小さくなる。また、中間点の指定数が6個の場合には、中間点の指定数が5個の場合と比較して軌跡誤差が大きくなる。
このように、中間点の指定数と軌跡誤差との関係に極小値が存在する場合、実施の形態4に係る制御装置の補正パラメータ算出部は、中間点の指定数を5個とする。図15では、補正パラメータ算出部は、フランジ170の実際の動作軌跡上における極大点の指定数を5個に制限し、それら5個の極大点にそれぞれ対応する5個の第3の中間点の座標を算出する。このとき、補正パラメータ算出部は、実際の動作軌跡上において目標軌跡との軌跡誤差が大きい順に5個の極大点を指定することが望ましい。つまり、補正パラメータ算出部は、補正された動作指令に基づいて複数のモータ(図3参照)を駆動した場合におけるフランジ170の実際の動作軌跡と目標軌跡との差を最も小さくするために、実際の動作軌跡上のj個の極大点を取得し、j個の極大点に基づいてj個の中間点の座標を算出する。jは、1,2,…,Nであり、Nは正の整数である。
以上に説明したように、実施の形態4に係る制御装置を用いれば、軌跡誤差を最も低減する中間点の指定数に基づいて実際の動作データが補正されるため、フランジ170の実際の動作軌跡を目標軌跡に近づけることができる。その結果、ロボット装置100の動作精度を向上させることができる。
上記以外の点について、実施の形態4は、実施の形態1から3のいずれかと同じである。
実施の形態5.
実施の形態2では、図12に示されるステップST214において、補正パラメータ算出部72が、実際の第1の動作軌跡T210上における複数の第1の極大点A11,A12を指定する例を説明した。実施の形態5においては、図13(A)に示される実際の第1の動作軌跡T210上における第1の極大点を指定するときに、その第1の極大点が予め決められた方法によって指定されてもよい。
図16(A)は、実施の形態5に係る制御装置において、実際の第1の動作軌跡T210上における第1の極大点を指定する方法の一例を概略的に示す模式図である。図16(A)において、図13(A)を用いて説明した実施の形態2と同じ構成要素には同じ符号が付されている。図16(A)に示されるように、実際の第1の動作軌跡T210上において、隣り合う複数の第1の極大点A11,A12間の距離L1が予め定められた基準距離以下のとき、補正パラメータ算出部72は、第1の極大点A11に基づいて第2の中間点C21の座標を算出する処理のみを実行する。つまり、図16(A)では、実際の第1の動作軌跡T210上において、一方の第1の極大点A12が他方の第1の極大点A11に近接して位置しているとき、第1の極大点A12に対応する第2の中間点C22の座標を算出する処理を実行しない。なお、補正パラメータ算出部72は、第1の極大点A12に基づいて第2の中間点C22の座標を算出する処理のみを実行し、第1の極大点A11に対応する第2の中間点C21の座標を算出する処理を実行しなくてもよい。
図16(B)は、実施の形態5に係る制御装置において、実際の第1の動作軌跡T210上における第1の極大点を指定する方法の他の例を概略的に示す模式図である。図16(B)に示されるように、距離L1が予め決められた基準距離以下のとき、補正パラメータ算出部72は、第1の極大点A11と第1の極大点A12との間に位置する第3の通過点A13を目標軌跡T110上の第3の基準点P13に近づける計算に用いられる第2の中間点の座標を算出する。つまり、図16(B)では、実際の第1の動作軌跡T210上において、一方の第1の極大点A12が他方の第1の極大点A11に近接して位置しているとき、第1の極大点A11及び第1の極大点A12との間に位置する第3の通過点A13を、新たな第1の通過点として第2の中間点の座標を算出する処理を実行する。
以上に説明したように、実施の形態5に係る制御装置を用いれば、実際の第1の動作軌跡T210における第1の極大点の数が制限されるため、制御装置の演算装置における処理時間、及び制御装置の学習フェーズにおけるロボット装置100の動作時間を短縮することができる。
上記以外の点について、実施の形態5は、実施の形態1から4のいずれかと同じである。
実施の形態6.
図17は、実施の形態6に係るロボットシステム6の構成を概略的に示すブロック図である。実施の形態6に係るロボットシステム6は、シミュレーション装置80を有する点で実施の形態1に係るロボットシステム1と相違する。図17において、図3に示される構成要素と同一又は対応する構成要素には、図3に示される符号と同じ符号が付される。
シミュレーション装置80は、学習用の動作データに基づいて複数のモータM1~M6(図3参照)を駆動した場合のフランジ170(図1参照)の動作を模擬して、フランジ170の実際の動作軌跡を予想する。シミュレーション装置80がフランジ170の実際の動作軌跡を予想する時間は、学習用の動作データに基づいてロボット装置100を実際に動作させたときにおけるフランジ170の実際の動作軌跡が算出される時間よりも短い。シミュレーション装置80は、予想したフランジ170の実際の動作軌跡を補正パラメータ算出部72に出力する。補正パラメータ算出部72は、シミュレーション装置80によって得られた実際の動作軌跡に基づいて補正パラメータを算出する。
以上に説明したように、実施の形態6に係るロボットシステム6を用いれば、補正パラメータ算出部72は、演算装置70の学習フェーズにおけるフランジ170の実際の動作軌跡を短時間に得ることができる。
上記以外の点について、実施の形態6は、実施の形態1から5のいずれかと同じである。
実施の形態7.
実施の形態1から6のいずれかでは、補正パラメータを学習によって算出するために用いられる学習用の動作データと、ロボット装置100を目標軌跡T1(図2参照)に沿って動かすことを意図した実際の動作データとが同じである例を説明した。実施の形態7では、学習用の動作データと実際の動作データとが異なる例を説明する。
図18は、実施の形態7に係るロボットシステム7の構成を概略的に示すブロック図である。図18において、図3に示される構成要素と同一又は対応する構成要素には、図3に示される符号と同じ符号が示されている。図18に示されるように、ロボットシステム7は、ロボット装置100と、ロボット装置100の動作を制御する制御装置750とを有する。
制御装置750は、補正パラメータを算出する演算処理とロボット装置100への動作指令を生成する演算処理とを行う演算装置770を有する。演算装置770は、動作データ記憶部71と、補正パラメータ算出部772と、補正パラメータ記憶部773と、動作指令部74と、動作データ取得部775とを有する。動作データ取得部775は、ロボット装置100を実際に駆動させるときの駆動条件を示す実際の動作データを取得する。動作データ取得部775には、例えば、図示されない入力装置から実際の動作データが入力される。動作データ取得部775は、入力された実際の動作データを補正パラメータ算出部772に出力する。なお、実際の動作データは、入力装置から補正パラメータ算出部772に直接入力されてもよい。
図19(A)は、図18に示される補正パラメータ記憶部773に記憶されているデータの一例を示す図である。図19(A)に示されるように、補正パラメータ記憶部773では、学習用の動作データと、その学習用の動作データに対応付けされた補正パラメータとがテーブル形式で記憶されている。
補正パラメータ記憶部773に記憶されている学習用の動作データは、複数の学習用データを有する。図19(A)では、学習用の動作データは、「No.1」で示される第1の学習用データと、「No.2」で示される第2の学習用データとを有する。なお、図19(A)では、学習用の動作データを構成するパラメータの一部が抜粋して示されている。
補正パラメータ記憶部773は、補正パラメータとして第1の中間点の座標と第2の中間点の座標とを記憶している。図19(A)に示される例では、第1の中間点の座標は(50,2,0)であり、第2の中間点の座標は(50,104,0)である。第1の中間点の座標(50,2,0)は第1の学習用データに対応し、第2の中間点の座標(50,104,0)は第2の学習用データに対応する。なお、第1の中間点の座標(50,2,0)に対応する第1の学習用データにおける「動作開始点」の座標は(0,0,0)であり、第2の中間点の座標(50,104,0)に対応する第2の学習用データにおける「動作開始点」の座標は(0,100,0)である。
図19(B)は、図18に示される動作データ取得部775が取得する実際の動作データの一例を示す図である。図19(B)では、実際の動作データを構成するパラメータの一部が抜粋して示されている。図19(A)及び(B)に示されるように、実際の動作データにおける「平面」、「動作方向」、「フランジ姿勢」、「速度」及び「動作距離」は、学習用の動作データにおける「平面」、「動作方向」、「フランジ姿勢」、「速度」及び「動作距離」と同じである。しかし、実際の動作データにおける「動作開始点」の座標は(0,50,0)であり、学習用の動作データにおける「動作開始点」の座標(0,0,0)、(0,100,0)と異なる。つまり、補正パラメータ記憶部773には、実際の動作データと同じ学習用の動作データに対応する中間点の座標が記憶されていない。
このように、学習用の動作データが実際の動作データと異なる場合、補正パラメータ算出部772は、学習用の動作データ、学習用の動作データに基づいて算出された補正パラメータ、及び実際の動作データに基づいて、当該実際の動作データに対応する新たな補正パラメータを算出する。具体的には、実施の形態7では、補正パラメータ算出部772は、新たな補正パラメータとしての新たな中間点の座標を第1の中間点の座標及び第2の中間点の座標から補間により推定する処理を行う。
以下では、新たな中間点の座標を算出する例について説明する。補正パラメータ算出部772には、動作データ取得部775から実際の動作データが入力される。図19(A)及び(B)に示される例では、実際の動作データにおける「動作開始点」の座標(0,50,0)と第1の学習用データにおける「動作開始点」の座標(0,0,0)との間の距離は、実際の動作データにおける「動作開始点」の座標(0,50,0)と第2の学習用データにおける「動作開始点」の座標(0,100,0)との間の距離と等しい。
そのため、補正パラメータ算出部772は、第1の中間点の座標(50,2,0)と新たな中間点の座標との間の距離が、第2の中間点の座標(50,104,0)と新たな中間点の座標との間の距離と等しいとの条件を満たす、新たな中間点の座標を算出する。実施の形態7では、上記条件を満たす新たな中間点の座標は、(50,53,0)である。
補正パラメータ算出部772は、例えば、新たな中間点の座標を線形補間(つまり、1次補間)により推定する。なお、線形補間により新たな中間点の座標を推定する場合には、第1の中間点の座標及び第2の中間点の座標はいずれも、絶対座標である必要がある。また、補正パラメータ算出部772は、線形補間に限らず、2次以上の多項式補間又は機械学習を用いた補間など他の補間方法によって、推定中間点の座標を推定してもよい。機械学習を用いた補間は、サポートベクタマシン又はK近傍法を用いた補間、ニューラルネットワークを用いた補間などである。
補正パラメータ算出部772によって算出された新たな中間点の座標は、動作指令部74に出力される。動作指令部74は、新たな中間点の座標(50,53,0)を含む軌跡に沿ってロボット装置100を動作させることを意図した動作指令を生成する。生成された動作指令は、モータ制御装置60に出力される。なお、新たな中間点の座標は、補正パラメータ記憶部773において、図19(B)に示される実際の動作データと対応付けられて記憶されてもよい。
以上に説明した実施の形態7に係るロボットシステム7によれば、補正パラメータ算出部772は、学習用の動作データ、学習用の動作データに基づいて算出された第1及び第2の中間点の座標、及び実際の動作データに基づいて、新たな中間点の座標を算出する。これにより、学習用の動作データが実際の動作データと異なる場合であっても、ロボット装置100の動作軌跡を目標軌跡に近づけることができる。よって、ロボット装置100の動作精度を向上させることができる。
上記以外の点について、実施の形態7は、実施の形態1から6のいずれかと同じである。
〈実施の形態7の変形例〉
実施の形態7の変形例に係るロボットシステムでは、学習用の動作データを構成する複数の学習用データのうち実際の動作データに近い学習用データ、つまり、実際の動作データとの誤差が最も小さい学習用データを抽出し、その学習用データを用いて補正パラメータを算出する点で、実施の形態7に係るロボットシステム7と相違する。これ以外については、実施の形態7の変形例に係るロボットシステムは、実施の形態7に係るロボットシステム7と同じである。そのため、以下の説明では、図18、19(A)及び(B)を参照する。
学習用の動作データが実際の動作データと異なる場合、実施の形態7の変形例では、補正パラメータ算出部772は、複数の学習用データ(例えば、図19(A)に示される「No.1」の学習用データ及び「No.2」の学習用データ)のうち実際の動作データに近い学習用データを抽出する。補正パラメータ算出部772は、例えば、最小二乗法によって、複数の学習用データのうち実際の動作データとの誤差が小さい学習用データを抽出する。なお、補正パラメータ算出部772は、最小二乗法に限らず、マッピングなどの他の方法によって実際の動作データに近い学習用データを抽出してもよい。マッピングによって抽出する場合には、例えば、学習用データのパラメータと実際の動作データのパラメータを空間にマッピングし、学習用データのパラメータと実際の動作データとのパラメータとの間の最短距離が探索される。
補正パラメータ算出部772は、抽出された学習用データに基づいてロボット装置100を駆動した場合の実際の動作軌跡と、理想の動作軌跡との差に対応する補正パラメータを算出する。算出された補正パラメータは、動作指令部74に出力される。動作指令部74は、学習用データに対応する補正パラメータを含む軌跡に沿ってロボット装置100を動作させることを意図した動作指令を生成する。生成された動作指令は、モータ制御装置60に出力される。
以上に説明した実施の形態7の変形例によれば、補正パラメータ算出部772は、複数の学習用データのうち実際の動作データとの誤差が最も小さい学習用データに基づいて補正パラメータを算出する。これにより、学習用の動作データが実際の動作データと異なる場合であっても、ロボット装置100の動作軌跡を目標軌跡に近づけることができる。よって、ロボット装置100の動作精度を向上させることができる。
また、学習用の動作データが1つの学習用データで構成されている構成では、学習用の動作データと実際の動作データとが異なるケースが発生する度に補正パラメータを算出する必要がある。一方、実施の形態7の変形例によれば、学習用の動作データが複数の学習用データで構成されているため、実際の動作データに近い学習用データを抽出する処理を行うことができ、学習用の動作データと実際の動作データとが異なるケースが発生した場合に、補正パラメータを設定し易い。
1、6、7 ロボットシステム、 50、750 制御装置、 60 モータ制御装置、 70、770 演算装置、 71 動作データ記憶部、 72、772 補正パラメータ算出部、 73、773 補正パラメータ記憶部、 74 動作指令部、 80 シミュレーション装置、 100 ロボット装置、 110 ベース、 120 第1のアーム、 130 第2のアーム、 140 第3のアーム、 150 第4のアーム、 160 リスト、 170 フランジ、 A1,A11,A12 第1の極大点、 A2,A21,A22 第2の極大点、 C1 第1の中間点、 C2,C21,C22 第2の中間点、 C3,C31,C32 第3の中間点、 E1、E2、E3、E4、E5、E6 エンコーダ、 M1、M2、M3、M4、M5、M6 モータ、 T1、T10、T100、T110 目標軌跡、 T200、T201、T210、T211 実際の動作軌跡。

Claims (10)

  1. 第1のリンクを含む複数のリンクと、動作指令に基づいて前記複数のリンクをそれぞれ動かす複数のモータと、前記複数のモータの回転位置をそれぞれ検出する複数の回転位置検出器とを有するロボット装置を制御する制御装置であって、
    習用の動作データに基づいて前記複数のモータを駆動した場合に前記複数の回転位置検出器によって検出された前記回転位置を用いて算出された前記第1のリンクの実際の動作軌跡と、前記学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの理想の動作軌跡と、の差に対応する補正パラメータを算出する補正パラメータ算出部と、
    実際の動作データに基づいて前記複数のモータを駆動する場合に、前記実際の動作データを前記補正パラメータとして算出されたj(jは2以上の正の整数)個の中間点を経由する軌跡として補正し、補正された前記実際の動作データに基づいて前記複数のモータの前記動作指令を生成する動作指令部と、
    を有し、
    前記補正パラメータ算出部は、前記実際の動作軌跡上の点から前記差が大きい点から順に選択されたj個の点をj個の極大点として特定し、前記j個の極大点のそれぞれに対応して、前記j個の極大点のそれぞれと、前記理想の動作軌跡との前記差が大きいほど、前記理想の動作軌跡から大きく離れ、前記理想の動作軌跡に対して、前記j個の極大点とは反対側に存在する前記j個の中間点を算出すること
    を特徴とする制御装置。
  2. 第1のリンクを含む複数のリンクと、動作指令に基づいて前記複数のリンクをそれぞれ動かす複数のモータと、前記複数のモータの回転位置をそれぞれ検出する複数の回転位置検出器とを有するロボット装置を制御する制御装置であって、
    習用の動作データに基づいて前記複数のモータを駆動した場合に前記複数の回転位置検出器によって検出された前記回転位置を用いて算出された前記第1のリンクの実際の動作軌跡と、前記学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの理想の動作軌跡と、の差に対応する補正パラメータを算出する補正パラメータ算出部と、
    実際の動作データに基づいて前記複数のモータを駆動する場合に、前記実際の動作データを前記補正パラメータとして算出された第n(nは3以上の正の整数)のj(jは2以上の正の整数)個の中間点を経由する軌跡として補正し、補正された前記実際の動作データに基づいて前記複数のモータの前記動作指令を生成する動作指令部と、
    を有し、
    前記補正パラメータ算出部は、第1のj個の中間点を経由する軌跡を示す第1の学習用の動作データの実際の動作軌跡である第1の実際の動作軌跡上の点から前記差が大きい点から順に選択されたj個の点を第1のj個の極大点として特定し、前記第1のj個の極大点のそれぞれに対応して、前記第1のj個の極大点のそれぞれと、前記理想の動作軌跡との前記差が大きいほど、前記理想の動作軌跡から大きく離れ、前記理想の動作軌跡に対して、前記第1のj個の極大点とは反対側に存在する第2のj個の中間点を算出し、
    前記補正パラメータ算出部は、第i(iは2以上の正の整数)のj個の中間点を経由する第iの学習用の動作データの実際の動作軌跡である第iの実際の動作軌跡上の点から前記差が大きい点から順に選択されたj個の点を第iのj個の極大点として特定し、前記第iのj個の極大点のそれぞれに対応して、前記第iのj個の極大点のそれぞれと、前記理想の動作軌跡との前記差が大きいほど、前記第iのj個の中間点を、前記理想の動作軌跡に対して前記iのj個の極大点がずれている方向とは反対方向に大きくずらすことで、前記i+1のj個の中間点を算出する処理を、i=2から、i+1=nとなるまで繰り返すこと
    を特徴とする制御装置。
  3. 前記補正パラメータ算出部は、前記学習用の動作データが前記実際の動作データと異なる場合には、前記学習用の動作データと、前記学習用の動作データに基づいて算出された前記補正パラメータと、前記実際の動作データとに基づいて、前記実際の動作データに対応する新たな補正パラメータを算出する
    請求項1又は2に記載の制御装置。
  4. 前記学習用の動作データは、複数の学習用データを有し、
    前記補正パラメータ算出部は、前記複数の学習用データのそれぞれが前記実際の動作データと異なる場合には、前記複数の学習用データのうち前記実際の動作データとの誤差が最も小さい学習用データに基づいて、前記補正パラメータを算出する
    求項1に記載の制御装置。
  5. 前記学習用の動作データを予め記憶する第1の記憶部を更に有する、
    請求項1からのいずれか1項に記載の制御装置。
  6. 前記補正パラメータ算出部によって算出された前記補正パラメータを記憶する第2の記憶部を更に有する、
    請求項1からのいずれか1項に記載の制御装置。
  7. 請求項1からのいずれか1項に記載の制御装置と、
    前記ロボット装置と、を有する、
    ロボットシステム。
  8. 前記学習用の動作データに基づいて前記複数のモータを駆動させたときの前記第1のリンクの動作を模擬して、前記実際の動作軌跡を予想するシミュレーション装置を更に有し、
    前記補正パラメータ算出部は、前記シミュレーション装置によって予想された前記実際の動作軌跡に基づいて前記補正パラメータを算出する、
    請求項に記載のロボットシステム。
  9. 第1のリンクを含む複数のリンクと、動作指令に基づいて前記複数のリンクをそれぞれ動かす複数のモータと、前記複数のモータの回転位置をそれぞれ検出する複数の回転位置検出器とを有するロボット装置を制御する制御方法であって、
    補正パラメータ算出部が、学習用の動作データに基づいて前記複数のモータを駆動した場合に前記複数の回転位置検出器によって検出された前記回転位置を用いて算出された前記第1のリンクの実際の動作軌跡と、前記学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの理想の動作軌跡と、の差に対応する補正パラメータを算出するステップと、
    動作指令部が、実際の動作データに基づいて前記複数のモータを駆動する場合に、前記実際の動作データを前記補正パラメータとして算出されたj(jは2以上の正の整数)個の中間点を経由する軌跡として補正し、補正された前記実際の動作データに基づいて前記複数のモータの前記動作指令を生成するステップと、
    を有し、
    前記補正パラメータ算出部は、前記実際の動作軌跡上の点から前記差が大きい点から順に選択されたj個の点をj個の極大点として特定し、前記j個の極大点のそれぞれに対応して、前記j個の極大点のそれぞれと、前記理想の動作軌跡との前記差が大きいほど、前記理想の動作軌跡から大きく離れ、前記理想の動作軌跡に対して、前記j個の極大点とは反対側に存在する前記j個の中間点を算出すること
    を特徴とする制御方法。
  10. 第1のリンクを含む複数のリンクと、動作指令に基づいて前記複数のリンクをそれぞれ動かす複数のモータと、前記複数のモータの回転位置をそれぞれ検出する複数の回転位置検出器とを有するロボット装置を制御する制御方法であって、
    補正パラメータ算出部が、学習用の動作データに基づいて前記複数のモータを駆動した場合に前記複数の回転位置検出器によって検出された前記回転位置を用いて算出された前記第1のリンクの実際の動作軌跡と、前記学習用の動作データに基づいて前記複数のモータを駆動した場合における前記第1のリンクの理想の動作軌跡と、の差に対応する補正パラメータを算出するステップと、
    動作指令部が、実際の動作データに基づいて前記複数のモータを駆動する場合に、前記実際の動作データを前記補正パラメータとして算出された第n(nは3以上の正の整数)のj(jは2以上の正の整数)個の中間点を経由する軌跡として補正し、補正された前記実際の動作データに基づいて前記複数のモータの前記動作指令を生成するステップと、
    を有し、
    前記補正パラメータ算出部は、第1のj個の中間点を経由する軌跡を示す第1の学習用の動作データの実際の動作軌跡である第1の実際の動作軌跡上の点から前記差が大きい点から順に選択されたj個の点を第1のj個の極大点として特定し、前記第1のj個の極大点のそれぞれに対応して、前記第1のj個の極大点のそれぞれと、前記理想の動作軌跡との前記差が大きいほど、前記理想の動作軌跡から大きく離れ、前記理想の動作軌跡に対して、前記第1のj個の極大点とは反対側に存在する第2のj個の中間点を算出し、
    前記補正パラメータ算出部は、第i(iは2以上の正の整数)のj個の中間点を経由する第iの学習用の動作データの実際の動作軌跡である第iの実際の動作軌跡上の点から前記差が大きい点から順に選択されたj個の点を第iのj個の極大点として特定し、前記第iのj個の極大点のそれぞれに対応して、前記第iのj個の極大点のそれぞれと、前記理想の動作軌跡との前記差が大きいほど、前記第iのj個の中間点を、前記理想の動作軌跡に対して前記iのj個の極大点がずれている方向とは反対方向に大きくずらすことで、前記i+1のj個の中間点を算出する処理を、i=2から、i+1=nとなるまで繰り返すこと
    を特徴とする制御方法。
JP2021561148A 2019-11-25 2020-03-19 制御装置、ロボットシステム及び制御方法 Active JP7357689B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019212226 2019-11-25
JP2019212226 2019-11-25
PCT/JP2020/012190 WO2021106237A1 (ja) 2019-11-25 2020-03-19 制御装置及びロボットシステム

Publications (3)

Publication Number Publication Date
JPWO2021106237A1 JPWO2021106237A1 (ja) 2021-06-03
JPWO2021106237A5 JPWO2021106237A5 (ja) 2022-04-04
JP7357689B2 true JP7357689B2 (ja) 2023-10-06

Family

ID=76130415

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021561148A Active JP7357689B2 (ja) 2019-11-25 2020-03-19 制御装置、ロボットシステム及び制御方法

Country Status (2)

Country Link
JP (1) JP7357689B2 (ja)
WO (1) WO2021106237A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003530230A (ja) 2000-04-10 2003-10-14 エービービー エービー 産業ロボットの経路補正
JP2016078149A (ja) 2014-10-15 2016-05-16 キヤノン株式会社 ロボット装置の制御方法及びロボット装置、プログラム及び記録媒体
CN109571473A (zh) 2018-12-03 2019-04-05 武汉工程大学 一种误差可控的小线段轨迹光顺方法
CN109664303A (zh) 2019-02-28 2019-04-23 武汉工程大学 一种误差可控的四轴工业机器人b样条过渡式平顺轨迹生成方法
JP2021013983A (ja) 2019-07-11 2021-02-12 ファナック株式会社 移動機械の移動軌跡のずれを取得する装置、及び方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003530230A (ja) 2000-04-10 2003-10-14 エービービー エービー 産業ロボットの経路補正
JP2016078149A (ja) 2014-10-15 2016-05-16 キヤノン株式会社 ロボット装置の制御方法及びロボット装置、プログラム及び記録媒体
CN109571473A (zh) 2018-12-03 2019-04-05 武汉工程大学 一种误差可控的小线段轨迹光顺方法
CN109664303A (zh) 2019-02-28 2019-04-23 武汉工程大学 一种误差可控的四轴工业机器人b样条过渡式平顺轨迹生成方法
JP2021013983A (ja) 2019-07-11 2021-02-12 ファナック株式会社 移動機械の移動軌跡のずれを取得する装置、及び方法

Also Published As

Publication number Publication date
WO2021106237A1 (ja) 2021-06-03
JPWO2021106237A1 (ja) 2021-06-03
CN114728411A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
US20200338730A1 (en) Trajectory planning device, trajectory planning method and program
JP6333795B2 (ja) 学習による教示作業の簡易化及び動作性能向上機能を備えたロボットシステム
CN110355751A (zh) 控制装置和机器学习装置
JP2016027951A (ja) ロボット装置の制御方法、およびロボット装置
JP2005193311A (ja) 冗長マニピュレータの制御方法
KR20110041950A (ko) 여유자유도 제어를 이용한 로봇의 교시 및 재현 방법
JPH079606B2 (ja) ロボット制御装置
WO2006121091A1 (ja) 経路計画装置
US20180036883A1 (en) Simulation apparatus, robot control apparatus and robot
CN105710880B (zh) 安全的、具有轨迹前进变量的机器人
JP2015066668A (ja) ロボットの教示点調整方法、ロボットの設置位置算出方法、ロボットシステム、プログラム及び記録媒体
JP7357689B2 (ja) 制御装置、ロボットシステム及び制御方法
CN114728411B (zh) 控制装置、机器人系统和控制方法
US20220072708A1 (en) Motion model calculation device, control device, joint mechanism, and motion model calculation method
JPH04227506A (ja) 位置決め装置の制御方法
JP7479205B2 (ja) ロボットシステム、制御装置、及び制御方法
JP6540810B2 (ja) ハンド力覚計測装置、ハンド力覚計測方法、及びハンド力覚計測プログラム
JP2006068890A (ja) 軌道決定システムおよび軌道決定方法
JPH07246581A (ja) マニピュレータの把持位置姿勢制御方式
US20230103364A1 (en) Device for controlling return of robot to origin thereof, and method of searching return path of robot to origin thereof
US20230286143A1 (en) Robot control in working space
JP7335096B2 (ja) ロボットシステムの障害物探索装置
US20230202026A1 (en) Robot Training System
JPH10244481A (ja) ロボットの動作プログラム作成方法および装置
JP3029286B2 (ja) ロボット及びロボットの制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230802

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: 20230829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230926

R150 Certificate of patent or registration of utility model

Ref document number: 7357689

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150