JP2022065759A - ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置 - Google Patents

ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置 Download PDF

Info

Publication number
JP2022065759A
JP2022065759A JP2020174447A JP2020174447A JP2022065759A JP 2022065759 A JP2022065759 A JP 2022065759A JP 2020174447 A JP2020174447 A JP 2020174447A JP 2020174447 A JP2020174447 A JP 2020174447A JP 2022065759 A JP2022065759 A JP 2022065759A
Authority
JP
Japan
Prior art keywords
index
parameter set
robot
value
parameter
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.)
Pending
Application number
JP2020174447A
Other languages
English (en)
Inventor
公威 溝部
Kimii Mizobe
竜太郎 関
Ryutaro SEKI
篤 豊福
Atsushi Toyofuku
淳 戸田
Atsushi Toda
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 JP2020174447A priority Critical patent/JP2022065759A/ja
Priority to CN202111199503.2A priority patent/CN114367974B/zh
Priority to US17/500,973 priority patent/US20220118616A1/en
Publication of JP2022065759A publication Critical patent/JP2022065759A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera means
    • 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
    • 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/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • 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
    • 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/1653Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36252Generate machining program based on a simulation to optimize a machine parameter
    • 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/39412Diagnostic of robot, estimation of parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】ロボットのパラメーターの調整において、ユーザーが求める質を満たす解を、より短い時間で得る。【解決手段】この方法は、(a)ロボットの対象動作の軌跡を規定する軌跡情報を受け取る工程と(b)一方が優れる場合に他方が劣る第1指標と第2指標を決定する工程と、(c)最適化処理の条件を定め、第1指標または第2指標に関する条件情報を、受け取る工程と、(d)条件情報に基づき、探索範囲と最適化処理に使用するパラメーターセットと、を決定する工程と、(e)決定されたパラメーターセットに基づいて対象動作を実行させた場合の、第1指標と第2指標の値を取得する工程と、(f)取得された第1指標および第2指標の値に基づいて、新たなパラメーターセットを決定する工程と、(g)工程(e)および(f)を繰り返して、工程(d)で決定したパラメーターセットよりも、第1指標が優れたパラメーターセットを取得する工程と、を備える。【選択図】図7

Description

本開示は、ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置に関する。
従来、ロボットの制御パラメーターを設定する技術が存在する。特許文献1の技術においては、サーバーコンピューターは、「動作時間短縮の優先」、「軌跡精度の優先」、「エネルギー消費量最小化の優先」などの最適化の目的に応じた複数の調整用パラメーターを導出する。計算された調整用パラメーターのそれぞれについて、最適化の効果が算出される。オペレーターは、それらの最適化の効果を確認し、いずれの調整用パラメーターを導入するか選択する。ロボット制御盤は、現状の調整用パラメーターのデータを、サーバーコンピューターから受信した調整用パラメーターのデータに変更する。
一方、初期解を設定し、初期解の近傍から探索を開始して、解の最適化を行う探索手法が知られている。また、最適化の処理において、ユーザーがあらかじめ探索の範囲を指定する技術が知られている。そのような技術においては、ユーザーが望まない範囲を除いた、より狭い範囲で探索が行われるため、解がより短い時間で得られる。
特開2003-103482号公報
しかし、あらかじめ探索の範囲が指定される場合であっても、最初に生成される初期解がランダムに生成されることにより、ユーザーが求める質を満たす解が得られるまでの時間が、十分に短縮されない場合や、ユーザーが求める質を満たす解が得られない場合があった。
本開示の一形態によれば、ロボットのパラメーターセットを調整する方法が提供される。この方法は、(a)前記ロボットの対象動作の軌跡を規定する軌跡情報を受け取る工程と、(b)前記ロボットの制御結果を評価するための二つの指標であって、一方が優れる場合に他方が劣る傾向を有する第1指標と第2指標を決定する工程と、(c)前記対象動作を制御するための前記パラメーターセットの最適化処理の条件を定める条件情報であって、前記第1指標と前記第2指標の少なくとも一方に関する条件情報を、受け取る工程と、(d)前記条件情報に基づいて、最適化処理の探索範囲と、前記最適化処理に使用する前記パラメーターセットと、を決定する工程と、(e)決定された前記パラメーターセットに基づいて前記対象動作を前記ロボットに実行させた場合の、前記第1指標と前記第2指標の値を取得する工程と、(f)取得された前記第1指標の値および前記第2指標の値に基づいて、新たなパラメーターセットを決定する工程と、(g)前記工程(e)および(f)を繰り返し実行して前記最適化処理を行い、パラメーターセットを取得する工程と、を備える。
本開示の一実施形態のロボットシステムを示す説明図である。 制御装置40の機能ブロックと、ロボット1~3と、光学系20との関係を示すブロック図である。 パラメーター44aを示す図である。 加減速特性にしたがって制御されるTCPの速度の例を示す図である。 TCPの加減速特性に含まれるTCPの基準目標加速度Astと、イナーシャIの関係を示すグラフである。 設定装置600の構成を示すブロック図である。 ロボット1~3のパラメーターセットの調整をする方法を示すフローチャートである。 動作の終了時におけるTCPの位置を示すグラフである。 ロボットが動作を実行する際に発生する音の大きさ(dB)を、横軸を周波数として表したグラフである。 図7のステップS205において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I205を示す図である。 図7のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207を示す図である。 ステップS223,S225,S227の処理の繰り返しによって得られたパラメーターセットの第1指標としての動作時間OTの値および第2指標としてのオーバーシュート量OSの値を示す散布図である。 ステップS250において示されるユーザーインターフェイス画面I251を示す図である。 図7のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207dを示す図である。 オーバーシュート量OSと制限最大加速度a0の関係を示すグラフACを示す図である。
A.実施形態1:
A1.ロボットシステムの構成:
図1は、本開示の一実施形態のロボットシステムを示す説明図である。本開示の一実施形態としてのロボットシステムは、ロボット1~3と、制御装置40と、設定装置600を備えている。
制御装置40は、ロボット1~3を制御する。制御装置40は、ケーブルにより、ロボット1~3と通信可能に接続されている。制御装置40は、プロセッサーであるCPUと、RAMと、ROMと、を備えている。RAMは、メインメモリーと、補助記憶装置とを含む。制御装置40のCPUは、補助記憶装置に記憶されたコンピュータープログラムをメインメモリーにロードして実行することによって、ロボットを動作させる。
設定装置600は、ロボット1~3の動作を規定する動作プログラムを生成し、動作プログラムのパラメーターを設定する。設定装置600は、ケーブルにより、制御装置40と通信可能に接続されている。設定装置600によって生成された動作プログラムおよび設定装置600によって設定されたパラメーターが、制御装置40に送信される。制御装置40は、設定装置600から受信した動作プログラムおよびパラメーターにしたがってロボット1~3を動作させる。設定装置600の構成については、後に説明する。
ロボット1~3は、教示を行うことにより各種作業が可能となる汎用ロボットである。より具体的には、ロボット1~3は、アームAに各種のエンドエフェクターを装着して使用される単腕ロボットである。ロボット1~3は、それぞれ異なるエンドエフェクター21,22,23を備える6軸ロボットである。本実施形態において、ロボット1~3においてアームAや軸の構成は等しい。
ロボット3を例に、ロボット1~3の構成を説明する。ロボット3は、基台Tと、6個のアーム部材A1~A6と、6個の関節J1~J6を備える。基台Tは作業台に固定されている。基台Tならびに6個のアーム部材A1~A6は、関節J1~J6によって連結されている。本実施形態において、関節J2、J3、J5は曲げ関節である。関節J1、J4、J6はねじり関節である。各関節J1~J6における回転軸を、本明細書において「作動軸」とも呼ぶ。
アームAにおいて先端に位置するアーム部材A6には、エンドエフェクターが装着されている。ロボット1~3は、6軸のアームAを駆動させることによって、エンドエフェクターをあらかじめ定められた範囲内の任意の位置に配置し、任意の姿勢、すなわち角度を持たせることができる。
ロボット1~3には、互いに異なるエンドエフェクターが取り付けられている。ロボット1に取りつけられているエンドエフェクターは、撮像部21である。撮像部21は、視野内の画像を撮像することができる。撮像部21は、露光時間と絞りを調整可能な機構を備えている。ロボット2に取りつけられているエンドエフェクターは、照明部22である。照明部22は、照射範囲に光を照射することができる。照明部22は、明るさを調整可能な機構を備えている。以下、撮像部21および照明部22を「光学系」とも呼ぶ。ロボット3に取り付けられているエンドエフェクターは、グリッパー23である。グリッパー23は、対象物Wを把持することができる。
本実施形態においては、ロボット1~3が備えるエンドエフェクターに対して相対的に固定された位置が、ツールセンターポイント(TCP)として定義される。TCPの位置はエンドエフェクターの基準の位置となる。TCPを原点として、TCP座標系が定義される。TCP座標系は、エンドエフェクターに対して相対的に固定された3次元直交座標系である。
アームAにおいて先端に位置するアーム部材A6には、エンドエフェクターとともに加速度センサーS1が装着されている。加速度センサーS1は、互いに垂直な3軸の方向についての加速度、ならびにそれらの軸周りの角速度の情報を取得することができる。それらの情報に基づいて、制御装置40は、エンドエフェクターの傾き、エンドエフェクターの速さおよび向きを含む移動速度、ならびにエンドエフェクターの現在位置を認識する。
ロボット1~3が設置された空間を規定する座標系を、本明細書において、「ロボット座標系」という。ロボット座標系は、水平面上において互いに直交するx軸とy軸と、鉛直上向きを正方向とするz軸とによって規定される3次元の直交座標系である(図1の上段左部参照)。z軸における負の方向は重力方向と一致する。x,y,z方向の位置により3次元空間における任意の位置を表現できる。x軸周りの回転角をRxで表し、y軸周りの回転角をRyで表し、z軸周りの回転角をRzで表す。Rx,Ry,Rz方向の回転角により3次元空間における任意の姿勢を表現できる。以下、本明細書において、「位置」と表記した場合、姿勢も意味し得る。
本実施形態において座標系の間の関係はあらかじめ定義されている。その結果、各座標系における座標の値は、互いに変換可能である。すなわち、TCP座標系、センサー座標系、およびロボット座標系における位置やベクトルは、互いに変換可能である。ここでは技術の理解を容易にするため、制御装置40が、TCPの位置をロボット座標系で制御するものとして、技術内容を説明する。
A2.ロボットの制御:
(1)ロボットの構成と制御装置の機能:
図2は、制御装置40の機能ブロックと、ロボット1~3と、光学系20との関係を示すブロック図である。ロボット1~3は、それぞれアクチュエーターとしてのモーターM1~M6と、センサーとしてのエンコーダーE1~E6とを備える。
モーターM1~M6は、それぞれ関節J1~J6を駆動する。ロボットのアームAの制御は、具体的には、モーターM1~M6を制御することにより行われる。各モーターM1~M6に電力を供給する電源線には、それぞれ電流計が備えられている。制御装置40は、それらの電流計を介して、各モーターM1~M6に供給された電流を計測することができる。エンコーダーE1~E6は、それぞれモーターM1~M6の回転角度を検出する。
制御装置40は、記憶部44を備える。制御装置40は、検出部42、および制御部43として機能する。
検出部42は、光学系20を構成する撮像部21と照明部22とに接続されている。検出部42は、対象物を検出し、対象物の位置および姿勢を特定する。制御部43は、ロボット1~3のエンドエフェクターの位置制御を行う。以下で、エンドエフェクターの位置制御について、説明する。
(2)ロボットのエンドエフェクターの位置制御:
制御部43においては、モーターM1~M6の回転角度の組み合わせと、ロボット座標系におけるTCPの位置との対応関係U1が、図示しない記憶媒体に記憶されている(図2の中段右部参照)。制御部43においては、さらに、座標系同士の対応関係U2が、図示しない記憶媒体に記憶されている。なお、対応関係U1,U2は記憶部44に記憶されていてもよい。
制御部43は、対応関係U2に基づいて、任意の座標系におけるベクトルを、他の座標系におけるベクトルに変換することができる。たとえば、制御部43は、加速度センサーS1の出力に基づいて、センサー座標系でのロボット1~3の加速度を取得し、ロボット座標系におけるTCPの加速度に変換することができる。
制御部43は、アームAを駆動することによって、ロボット1~3の各部位の位置を制御する。制御部43は、機能部としての位置制御部43aおよびサーボ43dを備えている(図2中段参照)。
(i)サーボ43dにおける処理:
サーボ43dは、サーボ制御を実行する。より具体的には、サーボ43dは、エンコーダーE1~E6の出力が示すモーターM1~M6の回転角度Daと、制御目標である目標角度Dtと、を一致させるフィードバック制御を実行する。サーボ43dは、回転角度Daと目標角度Dtとの偏差De、その偏差Deの積分、およびその偏差Deの微分を使用して、位置についてのPID制御を実行する。図2において、比例ゲインKpp、積分ゲインKpi、微分ゲインKpdを示す(図2の中段左部参照)。
サーボ43dは、上記Kpp,Kpi,Kpdを使用した位置についてのPID制御の出力と、回転角度Daの微分との偏差、その偏差の積分、その偏差の微分を使用して、速度についてのPID制御を実行する。図2において、比例ゲインKvp、積分ゲインKvi、微分ゲインKvdを示す(図2の中段左部参照)。
以上の処理の結果、制御量Dcが決定される。制御量Dcは、モーターM1~M6のそれぞれについて決定される。制御部43は、各モーターM1~M6の制御量Dcで、各モーターM1~M6を制御する。制御部43がモーターM1~M6を制御する信号は、PWM(Pulse Width Modulation)変調された信号である。なお、サーボ43dが使用するサーボゲインKpp,Kpi,Kpd,Kvp,Kvi,Kvdは、変更されることができるパラメーターである。以下で、位置制御部43aにおける処理を説明する前に、ロボット1~3のパラメーターについて説明する。
(ii)ロボットのパラメーター:
記憶部44には、各種のパラメーター44aと、ロボット1~3を制御するためのロボットプログラム44bと、初期パラメーター44pと、が記憶されている(図2の中段左部参照)。ロボットプログラム44bは、主に、ロボット1~3が実施する作業のシーケンス、すなわち、動作の順序を示す。ロボットプログラム44bは、あらかじめ定義されたコマンドの組み合わせによって記述される。
パラメーター44aは、各動作を実現するために必要とされる具体的な値を表す。パラメーター44aは、各コマンドの引数として記述される。サーボゲインKpp,Kpi,Kpd,Kvp,Kvi,Kvdは、パラメーター44aの一部である。パラメーター44aは、動作ごとに最適化されることができる。
本実施形態において、パラメーター44aおよびロボットプログラム44bは、設定装置600を使用したロボットに対する教示によって生成され、記憶部44に記憶される(図2の下段右部参照)。記憶部44に記憶されたパラメーター44aおよびロボットプログラム44bは、設定装置600によって修正され得る。
図3は、パラメーター44aを示す図である。パラメーター44aは、動作パラメーター44cと光学パラメーター44dと力制御パラメーター44eとを含む。光学パラメーター44dは、ロボット1の撮像部21とロボット2の照明部22を制御するためのパラメーターである(図1の中段左部および図3の上段参照)。
動作パラメーター44cは、ロボット1~3のアームAの動作に関するパラメーターである。動作パラメーター44cは、位置制御において参照される。ロボット1~3による一連の作業は複数の動作に分けられる。各動作を実施する際の動作パラメーター44cが、教示によって生成される。
動作パラメーター44cには、各動作における「始点」と「終点」を示すパラメーターが含まれる(図3の中段参照)。始点と終点は、種々の座標系で定義されてよい。本実施形態においては、制御対象のロボットのTCPの「始点」および「終点」は、ロボット座標系で定義される。ロボット座標系の各軸についての並進位置と回転位置とが定義される。
動作パラメーター44cには、複数の動作におけるTCPの「加減速特性」が含まれる(図3の中段参照)。加減速特性によって、ロボット1~3のTCPが各動作の始点から終点まで移動する際の、各時刻におけるTCPの速度が規定される。
図4は、加減速特性にしたがって制御されるTCPの速度の例を示す図である。図4においては、始点におけるTCPの移動開始時刻t1からTCPが終点に到達する時刻t4までの各時刻において、TCPの速度Vが規定されている。図4の例においては、時刻t1~t2までの期間においてTCPは目標加速度で加速し、時刻t2~t3の期間において一定の速度を保ち、時刻t3~t4までの期間においてTCPは目標加速度で減速する。本実施形態では、加速時の目標加速度の絶対値の大きさと、減速時の目標加速度の絶対値の大きさは、同じであるものとする。
加減速特性も種々の座標系で定義されてよい。本実施形態においては、加減速特性によって記述される速度は、制御対象のロボットのTCPについての速度である。このTCPの速度は、ロボット座標系で定義される。すなわち、ロボット座標系の各軸についての並進速度と回転速度(角速度)とが定義される。
ロボット1~3において、ある関節から先のロボットの構成部分の形状は、その先にある関節の角度によって変化しうる。このため、ロボット1~3のある関節から先のイナーシャ、すなわち慣性モーメントは、その先にある関節の角度によって変化しうる。たとえば、6個のアーム部材A1~A6が一列にならぶ姿勢を取ったとき、関節J1を基準とする回転のイナーシャは最大となる(図1参照)。このとき、6個のアーム部材A1~A6の全体の重心は、もっとも関節J1から遠い位置にある。一方、6個のアーム部材A1~A6の全体の重心がもっとも関節J1に近づく姿勢をアームAがとったとき、関節J1を基準とする回転のイナーシャは最小となる。モーターが実現しうる加速度は、モーターが動かす対象物のイナーシャによって変化する。このため、各関節を駆動するモーターに指示される加速度は、それぞれの関節から先のイナーシャに応じて、決定される(図4のt1~t2、t3~t4参照)。TCPの加速度は、以下のように定められる。
図5は、TCPの加減速特性に含まれるTCPの基準目標加速度Astと、イナーシャIの関係を示すグラフである。各関節J1~J6について、動作パラメーター44cの一つとして、制限最大加速度a0が定められている。制限最大加速度a0は、その関節から先のロボットの構成のイナーシャIが最大値Imaxであるときに、モーターが定常的に実現しうる加速度である。また、各関節J1~J6について、動作パラメーター44cの一つとして、上限最大加速度a1が定められている。上限最大加速度a1は、その関節から先のロボットの構成のイナーシャIが所定値Ith以下であるときに、モーターが定常的に実現しうる加速度である。イナーシャIthは、その関節から先のロボットの構成のイナーシャの最小値Iminと最大値Imaxとの間の値である。なお、制限最大加速度a0および上限最大加速度a1は、ロボットが、あらかじめ定められた定格負荷を保持していることを前提として、決定される。
図5から分かるように、その関節から先のイナーシャが所定値Ith以下であるとき、基準目標加速度Astは、一定値a1となる。その関節から先のイナーシャが所定値Ithより大きいとき、基準目標加速度Astは、傾きbで、イナーシャに対して直線的に減少する。すなわち、bは、基準目標加速度Astの変化率である。
b={(a0-a1)/(Imax-Ith)} ・・・ (Eq1)
さらに、基準目標加速度Astは、ロボットが保持している負荷の大きさに応じて補正される。TCPの目標加速度Atは、基準目標加速度Astに負荷補正係数CLを掛けることによって得られる(図4のt1~t2、t3~t4参照)。
At=CL×Ast ・・・ (Eq2)
負荷補正係数CLは、たとえば、以下の式で定められる。ロボットが保持している負荷wが定格負荷w0のとき、c=1である。ロボットが保持している負荷wが定格負荷w0より大きいとき、c<1である。ロボットが保持している負荷wが定格負荷w0より小さいとき、c>1である。
c={-(w-w0)/(wmax-wmin)}+1
=d×(w-w0)+1
ここで、wは、ロボットが保持している負荷の大きさである。
w0は、基準となる定格負荷である。
wmaxは、ロボットが保持し得る負荷の最大値である。
wminは、ロボットが保持し得る負荷の最小値である。
d={-1/(wmax-wmin)}
動作パラメーター44cの一部としての加減速特性のパラメーターには、制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きdが含まれる(図3の中段参照)。これらのパラメーターを後述する処理によって最適化することにより、作動軸の加減速の変化を、動作ごとに自動的に設定することができる。
動作パラメーター44cには、サーボゲインKpp,Kpi,Kpd,Kvp,Kvi,Kvdが含まれている(図3の中段参照)。制御部43は、サーボ43dが適用するサーボゲインKpp,Kpi,Kpd,Kvp,Kvi,Kvdが、動作パラメーター44cとして記憶されている値になるように、調整する。本実施形態においてサーボゲインの値は、動作ごとに定められる。ただし、後述の最適化等において、サーボゲインはより短い区間ごとに定められてもよい。
力制御パラメーター44e(図3の下段参照)は、ロボット1~3の力制御に関するパラメーターであり、力制御の際に参照される。なお、技術の理解を容易にするため、本明細書においては、力制御の詳細については、説明を省略する。
力制御パラメーター44eには、「始点」、「終点」、「加減速特性」、および「サーボゲイン」を示すパラメーターが含まれる。力制御パラメーター44eにおいて、始点、終点、加減速特性、サーボゲインは、動作パラメーター44cに属する始点、終点、加減速特性、サーボゲイン(図3の中段参照)と同様である。
ただし、力制御の場合、始点および終点の中の少なくとも一部は定義されない場合がある。たとえば、ある方向に作用する力が0になるように衝突回避や倣い制御が行われる場合、その方向における始点および終点は定義されず、その方向の力を0にするように、位置が任意に変化し得る状態が定義される場合もある。
力制御パラメーター44eには、「力制御座標系」を示す情報が含まれる(図3の下段参照)。力制御座標系は、力制御の目標力を定義するための座標系である。最適化が行われる前においては、目標力ベクトルの起点が、力制御座標系の原点であり、目標力ベクトルの方向に、力制御座標系の1軸が向いている。ロボットの教示において力制御における各種の目標力が定義される際に、各作業の各動作における目標力の作用点が教示される。たとえば、対象物の一点を他の物体に当て、両者の接触点で、対象物から他の物体に一定の目標力を作用させた状態で、対象物の向きを変化させる場合は、以下のように力制御座標系が定義しなおされる。すなわち、対象物が他の物体と接触する点が目標力の作用点となり、当該作用点を原点とした力制御座標系が定義される。
力制御パラメーター44eは、力制御の目標力が作用する点を原点とし、目標力の方向に1軸が向いている座標系、すなわち、力制御座標系を特定するための情報を、パラメーターとして含んでいる。なお、当該パラメーターは種々の定義が可能である。たとえば、力制御座標系を特定するためのパラメーターは、力制御座標系と他の座標系(ロボット座標系等)との関係を示すデータによって定義可能である。
力制御パラメーター44eには、「目標力」が含まれる(図3の下段参照)。目標力は、各種の作業において、任意の点に作用すべき力として教示される力であり、力制御座標系によって定義される。目標力を示す目標力ベクトルは、目標力ベクトルの起点と、起点からの6軸成分、すなわち3軸の並進力および3軸のトルクとして定義され、力制御座標系で表現される。なお、力制御座標系と他の座標系との関係を利用すれば、当該目標力を任意の座標系、たとえば、ロボット座標系におけるベクトルに変換することが可能である。
力制御パラメーター44eには、「インピーダンスパラメーター」が含まれる(図3の下段参照)。インピーダンス制御は、仮想の機械的インピーダンスを、モーターM1~M6の駆動力によって実現する制御である。インピーダンス制御においては、TCPが仮想的に有する質量が、仮想慣性係数mとして定義される。TCPが仮想的に受ける粘性抵抗が、仮想粘性係数dとして定義される。TCPが仮想的に受ける弾性力のバネ定数が、仮想弾性係数kとして定義される。インピーダンスパラメーターは、これらのm,d,kである。インピーダンスパラメーターは、ロボット座標系の各軸に対する並進と回転について定義される。
本実施形態において力制御座標系、目標力、インピーダンスパラメーターは、各ロボットが実行する動作ごとに値を設定される。しかし、より短い区間ごとに値を設定されてもよい。
初期パラメーター44pは、動作を実現するために必要とされる具体的な値を表す(図2の下段左部参照)。パラメーター44aが、各動作について定められるのに対して、初期パラメーター44pは、様々な動作に対応できるように定められた汎用のパラメーターである。初期パラメーター44pは、ロボット1~3と、制御装置40とが工場から出荷される際に、あらかじめ記憶部44に格納されている。
初期パラメーター44pは、以下のように定められる。まず、ランダムに始点と終点を定めた100個の動作が決定される。それらの100個の動作について、平均動作速度の下限、オーバーシュート量の上限、トルク割合の上限、推定寿命の下限などの条件を定めた上で、平均の動作速度を最大化するように、設定装置600または他のコンピューターで最適化処理が行われる。その結果、設定された条件を満たし、平均の動作速度が大きい初期パラメーターが決定される。動作時間、オーバーシュート量、トルク割合、および推定寿命などについては、後に説明する。
本実施形態において、初期パラメーター44pは、それぞれ動作を実現するために必要とされる具体的な値を表す3組のパラメーターを含む。3組のパラメーターは、(a)オーバーシュート量は大きいが動作時間が短くなるパラメーターの組、(b)動作時間は長いがオーバーシュート量が小さくなるパラメーターの組、および(c)それらの中間の性質を有するパラメーターの組である。オーバーシュート量は大きいが動作時間が短くなるパラメーターの組を、「高速パラメーター44p1」とも呼ぶ(図2の下段左部参照)。動作時間は長いがオーバーシュート量が小さくなるパラメーターの組を、「高精度パラメーター44p3」とも呼ぶ。中間的な性質を有するパラメーターの組を、「標準パラメーター44p2」とも呼ぶ。
(iii)位置制御部43aにおける処理:
位置制御部43aは、位置の制御を実行する(図2の中段左部参照)。より具体的には、制御部43は、目標位置から線形演算で導出する回転角度で、モーターM1~M6を制御する。目標位置から線形演算で導出する回転角度でモーターM1~M6を制御するモードを、本明細書において「位置制御モード」という。
位置制御モードで制御を行う場合、位置制御部43aは、微小動作ごとの目標位置Ltを決定する。微小動作ごとの目標位置Ltが得られると、制御部43は、目標位置Ltと対応関係U1に基づいて、ロボット座標系を規定する各軸の方向の動作位置を、各モーターM1~M6の目標の回転角度である目標角度Dtに変換する(図2の中段右部参照)。
サーボ43dは、パラメーター44aを参照してサーボゲインKpp,Kpi,Kpd,Kvp,Kvi,Kvdを取得し、目標角度Dtに基づいて、制御量Dcを導出する(図2の中段左部参照)。制御量Dcは、モーターM1~M6のそれぞれについて特定され、各モーターM1~M6の制御量DcでモーターM1~M6のそれぞれが制御される。この結果、各動作において、TCPは、微小動作ごとの目標位置Ltを経由し、加減速特性に従って始点から終点まで移動する。
A3.設定装置の構成:
図6は、設定装置600の構成を示すブロック図である。設定装置600は、ロボット1~3の動作を規定する動作プログラムを生成する(図1の下段右部参照)。技術の理解を容易にするため、図6においては、ロボット1~3のうち、ロボット3のみを示す。
設定装置600は、出力装置として機能するディスプレイ602と、入力装置として機能するキーボード604およびマウス605と、を備えたコンピューターである。設定装置600は、さらに、プロセッサーであるCPU610と、RAM630と、ROM640と、を備えている。RAM630は、半導体メモリーであるメインメモリーと、補助記憶装置であるハードディスクとを含む。CPU610は、ハードディスクに記憶されたコンピュータープログラムを、メインメモリーにロードして実行することによって、パラメーターの最適化処理を含む様々な機能を実現する。設定装置600は、インターフェイスを介して、ロボット3の加速度センサーS1および制御装置40に接続されている。
A4.パラメーターの最適化処理:
(1)パラメーターの最適化処理の流れ:
図7は、ロボット1~3のパラメーターセットの調整をする方法を示すフローチャートである。本実施形態においては、ロボット1~3の運用に先立って、動作パラメーター44cのうちの加減速特性を表すパラメーターとサーボゲインを表すパラメーターが最適化される(図3参照)。これらのパラメーターの値の組を、本明細書において「パラメーターセット」と呼ぶ。図7の処理は、設定装置600のCPU610(図1の下段右部および図6参照)によって実行される。
ステップS200においては、CPU610は、ユーザーからの指示に応じて、加減速特性とサーボゲインを最適化する動作を決定する。具体的には、CPU610は、ユーザーから指示された動作の軌跡を規定するロボットプログラム44bと、初期パラメーター44pとを、制御装置40から受信し、RAM630に格納する。なお、ロボットプログラム44bにおいて、始点、終点などの情報はすでに特定されている。ここでは、ロボット3のグリッパー23で保持している対象物Wをある地点から他の地点まで移動させる動作が、最適化する動作として決定されたものとする(図1参照)。
ステップS200においてロボットプログラム44bを受け取るCPU610の機能部を、図6において、「軌跡受付部615」として示す。RAM630に格納されたロボットプログラムをロボットプログラム630cとして示す。RAM630に格納された初期パラメーターを初期パラメーター630dとして示す。
制御装置40から受信される初期パラメーター44pは、高速パラメーター44p1、標準パラメーター44p2、および高精度パラメーター44p3を含む(図2の下段左部参照)。RAM630に格納された高速パラメーター、標準パラメーター、および高精度パラメーターを、それぞれ高速パラメーター630e、高精度パラメーター630g、および標準パラメーター630fとして、図6に示す。
図7のステップS203においては、初期パラメーター630dを使用して対象動作をロボット3に実行させた場合の様々な指標の値が取得される。具体的には、ステップS200で取得されたロボットプログラム630cと、初期パラメーター630dのうち標準パラメーター630fのパラメーターセットと、にしたがって、ロボット3による動作が実行される。そして、その動作の実行中に、エンコーダーE1~E6ならびに加速度センサーS1の出力が取得され、後述する動作時間、オーバーシュート量などの様々な指標の値が取得される。たとえば、オーバーシュート量が、0.20mmであったとする。
ステップS203においてロボットに動作を実行させるCPU610の機能部を、図6において、「動作実行部611」として示す。ロボットの動作についての様々な指標の値を取得するCPU610の機能部を、図6において、「評価部613」として示す。
図7のステップS205においては、CPU610は、ロボット3の制御結果を評価するための二つの指標であって、一方が優れる場合に他方が劣る傾向を有する第1指標と第2指標を決定する。具体的には、第1指標と第2指標の決定は、ユーザーからの指示に従って行われる。第1指標と第2指標は、以下の指標の中から決定される。
(I-1)動作時間:
動作時間は、動作の開始から終了までの所要時間である。ある制御において、動作時間が短いほど、その制御の評価は高い。動作時間は、動作の開始時および終了時のTCPの目標位置と、エンコーダーE1~E6(図2上段参照)から得られるTCPの各時刻の位置に基づいて、決定することができる。動作時間を計測するCPU610の機能部を、図6において、「動作時間計測部613a」として示す。
(I-2)オーバーシュート量:
オーバーシュート量は、動作の終了時におけるTCPの位置ずれの最大値である。ある制御において、オーバーシュート量が小さいほど、その制御の評価は高い。
図8は、動作の終了時におけるTCPの位置を示すグラフである。オーバーシュート量OSは、ロボットのTCPの目標位置Ltと、オーバーシュートLmaxと、のずれとして計測される。TCPの位置ずれは、動作の終了時のTCPの目標位置Ltと、エンコーダーE1~E6(図2上段参照)から得られる動作の終了時前後のTCPの位置Lと、ロボットのアームの先端に設けられている加速度センサーS1の出力と、に基づいて、決定することができる。オーバーシュート量を計測するCPU610の機能部を、図6において、「オーバーシュ1ート量計測部613b」として示す。
(I-3)動作の終了後の振動量:
振動量は、動作の終了後におけるTCPの位置ずれが、あらかじめ定められた値Lpm未満となる時刻Tsまでの、目標位置からの行き過ぎ量の絶対値の合計で評価される。ある制御において、動作の終了後の振動量が小さいほど、その制御の評価は高い。振動量を計測するCPU610の機能部を、図6において、「振動量計測部613c」として示す。
(I-4)騒音レベル:
騒音レベルは、ロボットが動作を実行する際に発生する音の大きさである。ある制御において、騒音レベルが小さいほど、その制御の評価は高い。
図9は、ロボットが動作を実行する際に発生する音の大きさ(dB)を、横軸を周波数として表したグラフである。騒音レベルは、以下のように決定することができる。すなわち、各ロボットの近傍に設けられたマイクによって、音を収集し、あらかじめ定められた周波数帯Rtに含まれる音の大きさ、すなわちエネルギー量に基づいて、騒音レベルを決定することができる。「音の大きさ」の評価指標を定めることにより、ユーザーに取って不快な音を抑制するように、パラメーターを設定することができる。騒音レベルを計測するCPU610の機能部を、図6において、「騒音レベル計測部613d」として示す。
(I-5)推定寿命:
推定寿命Lは、以下の式(Eq3)に従って計算される。ある制御において、推定寿命が大きいほど、その制御の評価は高い。
Figure 2022065759000002
Figure 2022065759000003
推定寿命を計算するCPU610の機能部を、図6において、「推定寿命計算部613e」として示す。
(I-6)トルク割合:
各モーターのトルク割合は、[動作中に出力軸に与えられたトルクの平均値]/「許容トルクの値」で得られる。「許容トルク」は、モーターが出力軸に連続的に与えることができるトルクである。「許容トルク」は、モーターごとに定められている。「動作中に出力軸に与えられたトルクの平均値」は、モーターM1~M6に流れる電流を計測する電流計の出力に基づいて、決定することができる。ある制御において、トルク割合が小さいほど、その制御の評価は高い。トルク割合を計算するCPU610の機能部を、図6において、「トルク割合計算部613f」として示す。
CPU610の機能部として図6に示す動作時間計測部613a、オーバーシュ1ート量計測部613b、振動量計測部613c、騒音レベル計測部613d、推定寿命計算部613e、およびトルク割合計算部613fは、ロボットの動作についての様々な指標の値を取得する評価部613の一部である。
図7のステップS205においては、ロボット3の制御結果を評価するための第1指標と第2指標とが決定される。
図10は、図7のステップS205において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I205を示す図である。ユーザーインターフェイス画面I205は、ボタンB11~B15と、選択窓D11,D12と、を含む。
ユーザーインターフェイス画面I205においては、ロボット3の制御結果を評価するための3個以上の指標がディスプレイ602に表示される。より具体的には、動作時間が上段に表示され、オーバーシュート量、振動量、騒音レベル、推定寿命、およびトルク割合が、下段に表示される。オーバーシュート量、振動量、騒音レベル、推定寿命、およびトルク割合は、それらの評価が優れる場合に、動作時間が劣る、すなわち動作時間が長くなる傾向を有する指標である。すなわち、オーバーシュート量、振動量、騒音レベル、推定寿命、およびトルク割合と、動作時間とは、互いにトレードオフの関係にある指標である。
ユーザーは、選択窓D11において、「1」または「2」を選択することができる。動作時間を第1指標として選択する場合には、ユーザーは、選択窓D11において、「1」を選択する。動作時間を第2指標として選択する場合には、ユーザーは、選択窓D11において、「2」を選択する。
ユーザーは、ユーザーインターフェイス画面I205において、ボタンB11~B15のいずれか一つを選択することにより、オーバーシュート量、振動量、騒音レベル、推定寿命、およびトルク割合の中から一つの指標を選択することができる。
ユーザーは、選択窓D12において、「1」または「2」を選択することができる。ボタンB11~B15で選択した指標を第1指標として選択する場合には、ユーザーは、選択窓D12において、「1」を選択する。ボタンB11~B15で選択した指標を第2指標として選択する場合には、ユーザーは、選択窓D11において、「2」を選択する。
選択窓D11において「1」が選択された場合には、選択窓D12において、自動的に「2」が選択される。選択窓D11において「2」が選択された場合には、選択窓D12において、自動的に「1」が選択される。選択窓D12において「1」が選択された場合には、選択窓D11において、自動的に「2」が選択される。選択窓D12において「2」が選択された場合には、選択窓D11において、自動的に「1」が選択される。ディスプレイ602の表示を制御してユーザーインターフェイス画面を表示するCPU610の機能部を、図6において、「表示制御部614」として示す。
CPU610は、ユーザーからの指示に応じて、ユーザーインターフェイス画面I205に表示されている3個以上の指標の中から第1指標と第2指標を決定する。図10の例では、動作時間が、パラメーターセットの評価に使用される第1指標として選択され、オーバーシュート量が、パラメーターセットの評価に使用される第2指標として選択されている。このため、動作時間が、第1指標として決定され、オーバーシュート量が、第2指標として決定される。ステップS205において指標を決定する処理を実現するCPU610の機能部を、図6において、「指標決定部612a」として示す。
このような処理を行うことにより、ユーザーの意向を反映した性能を実現できるパラメーターセットを、後のステップS250において、ユーザーに対して提示することができる。
図7のステップS207において、CPU610は、初期パラメーターのパラメーターセットについて取得された第2指標としてのオーバーシュート量の値に基づく参考表示を行う。具体的には、ユーザーインターフェイス画面I207が、ディスプレイ602に表示される。
図11は、図7のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207を示す図である。ユーザーインターフェイス画面I207は、条件情報を受け付けるためのユーザーインターフェイス画面である。「条件情報」は、ロボットプログラム630cによって軌跡を規定される対象動作を制御するためのパラメーターセットの最適化処理の条件を定める情報である。ユーザーインターフェイス画面I207は、動作モードの表示L71~L73と、ボタンB71~B73を含む。
ボタンB71~B73は、表示L71~L73で表される動作モードを選択するためのボタンである。ボタンB71~B73は、ボタンB71~B73のうちの一つだけが選択できるように構成されている。
動作モードの表示L71~L73は、3個の動作モードを表す。表示L71~L73が表す動作モードは、第2指標であるオーバーシュート量について程度が異なる3個の条件情報の候補に対応する動作モードである。表示L71~L73が表す3個の動作モードは、具体的には、振動を許容する第1モードと、振動を低減する第3モードと、それらの中間の性質を有する第2モードである(図11の左部参照)。
動作モードの表示L71~L73は、参考表示R71~R73を含む。参考表示R71~R73は、ステップS203において初期パラメーター630dのうちの標準パラメーター630fについて取得されたオーバーシュート量の値に基づく、表示である。
参考表示R71~R73は、最適化処理における制約値の候補を示す。本実施形態において、制約値は、最適化処理におけるオーバーシュート量の上限値を表す。具体的には、参考表示R72は、ステップS203において取得されたオーバーシュート量の値0.20mmを、制約値の候補として示す。参考表示R71は、ステップS203において取得されたオーバーシュート量の値0.20mmの1.5倍の値を、制約値の候補として示す。参考表示R73は、ステップS203において取得されたオーバーシュート量の値0.20mmの0.5倍の値を、制約値の候補として示す。
このような表示を行うことにより、ユーザーは、標準パラメーター630fを使用した場合のオーバーシュート量OSの値に基づく参考表示R71~R73を見た上で、後のステップS209において条件情報の入力を行うことができる。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、ロボット1~3のパラメーターセットを調整することができる。
動作モードの表示L71が表す第1モードは、初期パラメーター630dのうち、高速パラメーター630eと対応づけられている(図11の右部、および図6の上段左部参照)。動作モードの表示L73が表す第3モードは、初期パラメーター630dのうち、高精度パラメーター630gと対応づけられている。動作モードの表示L72が表す第2モードは、初期パラメーター630dのうち、標準パラメーター630fと対応づけられている。
図7のステップS209においては、CPU610は、第2指標であるオーバーシュート量OSに関する条件情報を、受け付ける。具体的には、CPU610は、ユーザーインターフェイス画面I207のボタンB71~B73による、3個の動作モードの表示L71~L73の中からの選択を受け付けることにより、条件情報を受け付ける。
ボタンB71が選択された場合、条件情報として、動作モードの表示L71が表す第1モードが入力される。ボタンB72が選択された場合、条件情報として、動作モードの表示L72が表す第2モードが入力される。ボタンB73が選択された場合、条件情報として、動作モードの表示L73が表す第3モードが入力される。受け付けられた条件情報は、RAM630に格納される。RAM630に格納された条件情報を、図6において、条件情報630bとして示す。条件情報を受け付けるCPU610の機能部を、図6において、「条件受付部617」として示す。
第1指標としての動作時間OTと第2指標としてのオーバーシュート量OSとは、一方が優れる場合に他方が劣る傾向を有する。このため、動作モードの表示L71~L73が示す、オーバーシュート量が異なる3個の条件情報の候補には、動作時間OTを優先する条件情報に対応する動作モードと、オーバーシュート量OSを優先する条件情報に対応する動作モードとが含まれる(図11のL71,L73参照)。このため、ユーザーは、提示された複数の動作モードの選択を通じて、自らの意向を反映させつつ、容易に条件情報を入力することができる。
図7のステップS210においては、CPU610は、ステップS209で受け取った条件情報630bに基づいて、最適化処理の探索範囲と、探索に使用するパラメーターセットと、を決定する。具体的には、ステップS209で受け取られた条件情報630bが表す制約値を使用して、最適化処理の探索範囲が決定される。ステップS209で受け取られた条件情報630bが対応づけられているパラメーターセットが、探索に使用するパラメーターセットとして決定される。図11の例においては、ボタンB73によって、動作モードの表示L73が選択されている。このため、オーバーシュート量0.10mm以下の範囲が、最適化処理の探索範囲として決定される。また、初期パラメーター630dのうちの高精度パラメーター630gが、探索に使用する初期解としてのパラメーターセットとして決定される。
ステップS220においては、ステップS210で定められた探索範囲と、パラメーターセットと、を使用して、最適化処理が行われる。パラメーターセットの最適化問題は、制約付き非線形最適化問題として、以下のように定式化される。
Minimize:T(x)
s.t. O(x)-Oconst ≦ 0
ここで、
xは、複数のパラメーターを含むパラメーターセットのベクトルである。
T(x)は、動作時間である。
O(x)は、オーバーシュート量である。
Oconstは、オーバーシュート量の制約値である。
Oconstは、ステップS210で決定された最適化処理の探索範囲を表す。
ここでは、ペナルティー関数法を用いて、最適化のための目的関数f(x)を以下のように定義して、最適化アルゴリズムによる最適化を行う。
f(x)=T(x)+λ・max(0,O(x)-Oconst) ・・・(Eq4)
ここで、λは定数である。
その結果、ステップS210で決定されたオーバーシュート量の制約を満たした上で、動作時間が最小となるパラメーターセットが得られる。
本実施形態においては、ステップS220において、CMA-ES(Covariance Matrix Adaptation Evolution Strategy:共分散行列適応進化戦略)により、目的関数f(x)を最小にする最適化処理が行われる。
ステップS223においては、CPU610は、平均ベクトルの初期値m(0)、ステップサイズの初期値σ(0)、共分散行列の初期値C(0)を定める。平均ベクトルの初期値m(0)は、ステップS210で決定されたパラメーターセットである。ステップサイズの初期値σ(0)、および共分散行列の初期値C(0)は、あらかじめ定められている。CPU610は、平均ベクトルの初期値m(0)および共分散行列の初期値C(0)に基づいて、平均ベクトルの初期値m(0)の周辺において、複数のパラメーターセットの候補xiを決定する。ステップS210の処理の後、最初のステップS223の処理を実現するCPU610の機能部を、図6において、「初期条件決定部612d」として示す。
ステップS225においては、CPU610は、ステップS210で決定されたパラメーターセットに基づいて動作をロボット3に実行させた場合の、第1指標と第2指標の値を取得する。具体的には、CPU610は、複数のパラメーターセットの候補xiのそれぞれについて、目的関数f(xi)を求める。まず、ステップS223で決定されたパラメーターセットの候補xiにしたがって、ステップS200で決定された動作が実行される。そして、第1指標である動作時間T(xi)および第2指標であるオーバーシュート量O(xi)が、それぞれ取得される。取得された動作時間T(xi)およびオーバーシュート量O(xi)から、目的関数f(xi)が算出される。ステップS220においてロボットに動作を実行させるCPU610の機能部は、「動作実行部611」である(図6の上段中央部参照)。ステップS220においてロボットの動作を評価して第1指標および第2指標を取得するCPU610の機能部は、「評価部613」である。
ステップS227においては、最適化の終了条件が満たされるか否かが判定される。具体的には、あらかじめ定められた回数だけステップS223~S225の処理が実行されたか否かが判定される。あらかじめ定められた回数だけステップS223~S225の処理が実行された場合には、最適化の終了条件が満たされると判定される。
ステップS227において、最適化の終了条件が満たされる場合には、複数のパラメーターセットの候補xiの中から、目的関数f(xi)の値が最も優れているパラメーターセットが選択され、RAM630に記憶されて、処理はS250に進む。選択されるパラメーターセットは、ステップS210で決定されたパラメーターセットよりも、第1指標としての動作時間OTが優れているパラメーターセットとなる。選択されるパラメーターセットを含むパラメーターをパラメーター630aとして図6に示す(図6の上段左部参照)。
一方、ステップS227において、最適化の終了条件が満たされない場合には、処理の繰り返し回数のカウントが増やされて、処理はS223に戻る。ステップS227に続いて実行されるステップS223においては、CPU610は、直前のステップS225で取得された第1指標の値および第2指標の値に基づいて、新たなパラメーターセットを決定する。具体的には、直前のステップS225で取得された複数のパラメーターセットの候補xiの目的関数f(xi)に基づいて、進化パスが決定され、進化パスに基づいて、新たな平均ベクトルm(t+1)、ステップサイズσ(t+1)、共分散行列C(t+1)が決定される。そして、平均ベクトルm(t+1)および共分散行列C(t+1)に基づいて、平均ベクトルm(t+1)の周辺において、複数のパラメーターセットの候補xiが決定される。ステップS227に続いて実行されるステップS223の処理を実現するCPU610の機能部を、図6において、「新パラメーター決定部612b」として示す。
ステップS223,S225の処理は、ステップS227の条件が満たされるまで、繰り返し実行される。その結果、ステップS210で最初に決定されたパラメーターセットよりも、第1指標としての動作時間OTについて優れているパラメーターセットが取得される。ステップS223,S225の処理を繰り返して、ステップS227において、目的関数f(xi)の値が最も優れているパラメーターセットを決定するCPU610の機能部を、図6において、「パラメーター取得部612c」として示す。また、指標決定部612a、新パラメーター決定部612b、パラメーター取得部612c、初期条件決定部612dを包含するCPU610の機能部を、図6において、「パラメーター探索部612」として示す。
CMA-ESは、平均ベクトルの初期値m(0)の質によって、最終的に得られる解の質が左右されやすい。しかし、本実施形態においては、平均ベクトルの初期値m(0)を、あらかじめ多数の動作について最適化処理された汎用のパラメーターセットとする(図2の44pおよび図6の630d参照)。このため、CMA-ESによる最適化処理によって、第1指標について優れたパラメーターセットが得られる可能性を高めることができる。
図12は、ステップS223,S225,S227の処理の繰り返しによって得られたパラメーターセットの動作時間OTの値およびオーバーシュート量OSの値を示す散布図である。Xは、図7のステップS210で定められた制約値よりもオーバーシュート量が大きいパラメーターセットを表す。黒い丸は、制約値よりもオーバーシュート量が小さいパラメーターセットを表す。白い丸は、制約値よりもオーバーシュート量が小さいパラメーターセットであって、動作時間OTが最も小さいパラメーターセットを示す。白い丸が表すパラメーターセットが、ステップS209で受け取った制約値が規定する条件を満たす解のうち、動作時間OTを最小にする最適解である(図6の630a参照)。
本実施形態においては、受け付けた条件情報に基づいて、最適化処理の探索範囲と、パラメーターセットの初期解とが決定される(図11のL73、および図7のS210参照)。このため、パラメーターセットの初期解がランダムに決定される態様に比べて、ユーザーの意向に沿ったパラメーターセットを、より短い時間で得ることができる。
図7のステップS250においては、CPU610は、RAM630に記憶されているパラメーターセット、すなわち、制約値が規定する条件を満たす最適解であるパラメーターセットについて、それぞれの第1指標の値および第2指標の値に基づく表示をディスプレイ602に行う(図6の630a参照)。
図13は、ステップS250において示されるユーザーインターフェイス画面I251を示す図である。ユーザーインターフェイス画面I251は、表示L91,L92と、ボタンB91,B92と、を含む。表示L91は、最適化処理によって得られたパラメーターセットの動作時間OTを表す表示である。表示L92は、最適化処理によって得られたパラメーターセットのオーバーシュート量OSを表す表示である。ボタンB91は、最適化処理によって得られたパラメーターセットを採用するためのボタンである。ボタンB92は、最適化処理によって得られたパラメーターセットを採用せずに処理を終了するためのボタンである。
図7のステップS260においては、CPU610は、ユーザーから、最適化処理によって得られたパラメーターセットを採用するか否かの指示を受け取る。最適化処理によって得られたパラメーターセットを採用せずに処理を終了する場合には、ユーザーは、ボタンB92を押す。ボタンB92が押された場合には、最適化処理されたパラメーターセットは破棄され、処理は終了する。
最適化処理によって得られたパラメーターセットを採用する場合には、ユーザーは、ボタンB91を押す。ボタンB91が押された場合には、最適化処理されたパラメーターセットが設定装置600から制御装置40に送信され、記憶部44に記憶される(図2参照)。ロボット3は、そのパラメーターセットのパラメーター44aと、ロボットプログラム44bと、によって、制御される。
本実施形態における、パラメーターセットの調整の対象となっている動作を、「対象動作」とも呼ぶ。ロボットプログラム44bおよびロボットプログラム630cを、「軌跡情報」とも呼ぶ。ディスプレイ602を、「表示部」とも呼ぶ。記憶部44内に格納されている高速パラメーター44p1、標準パラメーター44p2、および高精度パラメーター44p3、ならびにRAM630に格納された高速パラメーター630e、高精度パラメーター630g、および標準パラメーター630fを、「初期パラメーターセット」とも呼ぶ。
本実施形態における設定装置600を、「情報処理装置」とも呼ぶ。図7のステップS225において、動作をロボット3に実行させた場合の第1指標と第2指標の値を取得する処理を、「評価処理」とも呼ぶ。ステップS227に続いて実行されるステップS223において、直前のステップS225で取得された第1指標の値および第2指標の値に基づいて、新たなパラメーターセットを決定する処理を、「新パラメーター決定処理」とも呼ぶ。
本実施形態において軌跡受付部615が実現する機能を、「第1機能」とも呼ぶ(図6参照)。指標決定部612aが実現する機能を、「第2機能」とも呼ぶ。条件受付部617が実現する機能を、「第3機能」とも呼ぶ。初期条件決定部612dが実現する機能を、「第4機能」とも呼ぶ。評価部613が実現する機能を、「第5機能」とも呼ぶ。新パラメーター決定部612bが実現する機能を、「第6機能」とも呼ぶ。パラメーター取得部612cが実現する機能を、「第7機能」とも呼ぶ。
B.実施形態2:
実施形態2は、図7のステップS207,S209,S210における具体的な処理が実施形態1とは異なっている。実施形態2の他の点は、実施形態1と同じである。
図7のステップS207において、CPU610は、初期パラメーターのパラメーターセットについて取得された第1指標としての動作時間OTの値および第2指標としてのオーバーシュート量OSの値に基づく参考表示を行う。具体的には、ユーザーインターフェイス画面I207dが、ディスプレイ602に表示される。
図14は、図7のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207dを示す図である。ユーザーインターフェイス画面I207dは、参考表示R79と、入力窓D73と、ボタンB51と、を含む。
参考表示R79は、ステップS203において初期パラメーター630dのうちの標準パラメーター630fについて取得された動作時間の値およびオーバーシュート量の値を表す表示である。具体的には、参考表示R79は、ステップS203において取得された動作時間の値1.4秒と、オーバーシュート量の値0.2mmと、を示している。
入力窓D73は、第2指標であるオーバーシュート量の上限を、条件情報として受け付けるためのインターフェイスである。ユーザーは、参考表示R79に示された動作時間の値およびオーバーシュート量の値を参考にして、オーバーシュート量の上限として希望する数値を、キーボード604およびマウス605を介して、入力窓D73に入力する。
第1指標としての動作時間OTと第2指標としてのオーバーシュート量OSとは、一方が優れる場合に他方が劣る傾向を有する。このため、ユーザーは、参考表示R79に示された動作時間の値およびオーバーシュート量の値を参考にして、オーバーシュート量の上限を決定することにより、自らの意向を反映させつつ、容易に条件情報を入力することができる。たとえば、参考表示R79に示された動作時間の値1.4秒が十分に短く、オーバーシュート量の値0.20mmが大きいと感じるのであれば、ユーザーは、オーバーシュート量の上限として、参考表示R79として示される値より小さい0.15mmを入力することができる。参考表示R79に示された動作時間の値1.4秒が長く、オーバーシュート量の値0.20mmが十分に小さいと感じるのであれば、ユーザーは、オーバーシュート量の上限として、参考表示R79として示される値より大きい0.25mmを入力することができる。
ボタンB51は、入力窓D73に入力した数値を確定するためのボタンである。
図7のステップS209においては、CPU610は、第2指標であるオーバーシュート量OSに関する条件情報を、受け付ける。具体的には、ユーザーインターフェイス画面I207dにおいて、入力窓D73に制約値が入力され、ボタンB51が押されることにより、CPU610は、入力窓D73に入力した制約値を、条件情報として受け付ける。
図7のステップS210においては、CPU610は、ステップS209で受け取った条件情報630bに基づいて、最適化処理の探索範囲と、探索に使用するパラメーターセットと、を決定する。具体的には、ステップS209で入力窓D73を介して受け取られたオーバーシュート量の上限値を使用して、最適化処理の探索範囲が決定される。ステップS209で入力窓D73を介して受け取られた条件情報630bが表す制約値に基づいて、探索に使用するパラメーターセットが決定される。
図15は、オーバーシュート量OSと制限最大加速度a0の関係を示すグラフACを示す図である。実施形態2においては、制御装置40の記憶部44に格納されている初期パラメーター44pは、オーバーシュート量と制限最大加速度a0の関係を示すグラフACを含む(図2の下段中央部参照)。グラフACは、ロボット1~3の関節ごとに定められている。グラフACは、ある関節をある速度から加速度a0で減速させて停止させた場合のオーバーシュート量を測定して得られる複数個の測定値に基づいて、定めることができる。図15において、黒い丸は、様々な制限最大加速度a0と、その制限最大加速度a0において測定されたオーバーシュート量を、表す。グラフACは、たとえば、最小二乗法により、各点に基づいて、2次曲線として得ることができる。
CPU610は、ロボットプログラム630cと制御装置40内の対応関係U1を参照して、ステップS209で入力窓D73を介して受け取られたオーバーシュート量の上限に基づいて、各関節のオーバーシュート量を計算する。そして、各関節のグラフACを参照して、各関節のオーバーシュート量に基づいて、各関節における制限最大加速度a0を計算する。実施形態2において、パラメーターセットのうちの制限最大加速度a0以外のパラメーターは、あらかじめ定められている。
ステップS210においては、CPU610は、以上のように、ステップS209で入力窓D73を介して受け取られた条件情報630bに基づいて、探索に使用するパラメーターセットを決定する。
本実施形態においても、受け付けた条件情報に基づいて、最適化処理の探索範囲と、パラメーターセットの初期解とが決定される(図14、および図15参照)。このため、パラメーターセットの初期解がランダムに決定される態様に比べて、ユーザーの意向に沿ったパラメーターセットを、より短い時間で得ることができる。
また、本実施形態においては、ユーザーの意向を反映した制約値の具体的な値に基づいて、パラメーターセットの初期解が決定される(図14のD73および図15参照)。このため、あらかじめ選択肢が用意され、選択肢の選択によって条件情報630bが入力される態様に比べて、ユーザーの意向に沿ったパラメーターセットを、より短い時間で得ることができる可能性が高い。
C.他の実施形態:
C1.他の実施形態1:
(1)上記実施形態では、対象物Wをロボット3のグリッパー23でピックアップする処理を例にして、動作パラメーター44cの最適化について説明した(図1および図3参照)。しかし、パラメーターが最適化される処理は、ピックアップ処理における動作パラメーター44cに限定されず、他にも種々の処理に適用可能である。たとえば、パラメーターが最適化される処理は、撮像部21を配置する処理や、照明部22を配置する処理に適用可能である。また、ロボット1~3が力覚センサーを備える場合には、パラメーターが最適化される処理は、力制御を含む処理に適用可能である。パラメーターが最適化される処理は、たとえば、ネジ締め、挿入、ドリルによる穴あけ、バリ取り、研磨、組み立て、製品チェック等印も適用可能である。
(2)上記実施形態においては、最適化される動作パラメーター44cには、制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きdが含まれる(図4および図5参照)。しかし、最適化される動作パラメーター44cは、これらの動作パラメーター44c以外の動作パラメーター44c、たとえば、動作の始点や終点を表すパラメーターやサーボゲインを表すパラメーター、さらには、光学パラメーターや力制御パラメーターなどのパラメーターとすることもできる(図3参照)。
(3)上記実施形態においては、初期パラメーター44pは、コンピューターによる最適化処理によって、定められる(図2の下段左部参照)。しかし、初期パラメーターは、ロボットのパラメーターの設定について十分な経験を有する人間が行ってもよい。また、人間が設定した初期パラメーターを、後にコンピューターによる最適化処理によって、調整してもよい。さらに、コンピューターによる最適化処理によって設定された初期パラメーターを、後に、人間が調整してもよい。
(4)上記実施形態においては、図7のステップS203において、初期パラメーター630dを使用して対象動作をロボット3に実行させた場合の様々な指標の値が取得される。その際の実行回数は、1回であってもよいし、複数回であってもよい。実行回数が複数回である場合には、ステップS203で取得される指標は、実際に得られた指標の値の平均値とすることができる。
(5)上記実施形態においては、図7のステップS203,225において、実際にロボット3を、パラメーターセットを使用して動作させて、第1指標および第2指標の値を測定している。しかし、ロボットの残留振動を再現できるシミュレーターを使用してシミュレーションを行い、パラメーターセットによる制御の評価を行ってもよい。
(6)上記実施形態1においては、参考表示R71~R73は、ステップS203において初期パラメーター630dのうちの標準パラメーター630fについて取得された第2指標であるオーバーシュート量の値に基づく、表示である。しかし、参考表示は、初期パラメーターについて取得された第1指標の値に基づく表示とすることもできる。また、上記実施形態2で示すように、初期パラメーターについて取得された第1指標の値と第2指標の値の両方に基づく表示とすることもできる(図14のR79参照)。
(7)上記実施形態1においては、表示L71~L73が表す動作モードは、第2指標であるオーバーシュート量について程度が異なる3個の条件情報の候補に対応する動作モードである(図11参照)。しかし、表示が対応する動作モードは、第1指標としての動作時間について程度が異なる複数の条件情報の候補に対応する動作モードであってもよい。また、表示が対応する動作モードは、第1指標と第2指標の両方について程度が異なる複数の条件情報の候補に対応する動作モードであってもよい。さらに、表示が対応する動作モードは、第1指標と第2指標の一方について程度が異なるが、他方については等しい、複数の条件情報の候補に対応する動作モードを含んでもよい。
(8)上記実施形態1においては、条件情報は、3個の動作モードの中から選択された一つの動作モードを表す情報である(図7のS209および図11のB73参照)。上記実施形態2においては、条件情報は、入力窓D73に入力された、第2指標であるオーバーシュート量の上限である制約値である(図7のS209および図14のD73参照)。しかし、条件情報は、たとえば、第1指標および/または第2指標についてのユーザーが考える理想的な値など、対象動作を制御するためのパラメーターセットの最適化処理の条件を定める情報であって、第1指標と第2指標の少なくとも一方に関するものであればよい。ただし、条件情報は、最適化処理の目的とされる指標以外の指標に関するものであることが望ましい。
(9)上記実施形態においては、式(Eq4)におけるλは定数である。しかし、λは、最適化処理における繰り返しにおいて徐々に大きく設定されてもよい。そのような態様とすれば、より安定して解を得ることができる。
(10)上記実施形態においては、オーバーシュート量O(x)についての制約の下で、T(x)を最小にするパラメーターセットを求める単目的最適化が行われる(上記(Eq4)および図7のS220参照)。しかし、たとえば、動作時間、オーバーシュート量、振動量、騒音レベル、推定寿命、トルク割合のうちの2以上を最適化の目的とする、多目的最適化を行って、パラメーターセットを決定してもよい。
(11)上記実施形態においては、図7のステップS220内の繰り返し処理の終了条件は、あらかじめ定められた回数だけステップS223~S225の処理が実行されたことである。しかし、最適化の繰り返し処理の終了条件は、他の条件でもよく、たとえば、あらかじめ定められた閾値よりも優れた目的関数の値を有する1以上の解が得られたこと、とすることもできる。
(12)上記実施形態のステップS220においては、CMA-ESにより、最適化処理が行われる(図7のS220参照)。しかし、最適化処理は、他の方法で行われることもできる。たとえば、Nelder-Mead法により最適化処理を行う場合には、以下のような処理を行うことができる。
最適化するパラメーターセットのパラメーターがN個であるとき、Nelder-Mead法は、以下のようにパラメーターセットの最適化処理に適用される。まず、N次元の空間において、N+1個の点であってそれぞれがパラメーターセットに対応する点で規定される多面体を選択する。その際、図7のステップS210において決定されたパラメーターセット、たとえば、高精度パラメーター630gに対応する点を、多面体の重心とする。言い換えれば、高精度パラメーター630gに基づいて、高精度パラメーター630gが重心となるように、N+1個のパラメーターセットが決定される。N+1個の点の中で、目的関数f(x)の値が最良である点を、他のN個の点が定める超平面の逆側に、単体の体積を保存したまま移動させる。新たな点を含むN+2個の点のそれぞれの目的関数の値に基づいて、新たにN+1個の点を決定し直す。新たに加えられる点の位置は、直前のN+2個の点のそれぞれの目的関数の値に基づいて、定められる。このような処理を繰り返すことにより、最終的には、多面体が最適解に向かって移動し、かつ縮小する。
このような態様としても、それぞれパラメーターセットに対応する最初のN+1個の点がランダムに決定される態様に比べて、ユーザーの意向に沿ったパラメーターセットを、より短い時間で得ることができる。ただし、本開示の技術は、初期解の近傍から探索を開始する最適化アルゴリズムに適用することが効果的である。
(13)上記実施形態1においては、図7のステップS250において、最適化処理によって得られた1組のパラメーターセットの動作時間OTおよびオーバーシュート量OSが示される(図13参照)。しかし、最適化処理の過程で得られた複数のパラメーターセットについて、第1指標および第2指標の一方または両方を提示し、複数のパラメーターセットの中から一つのパラメーターセットをユーザーに選択させる態様とすることもできる(図12の黒丸および白丸参照)。
(14)上記実施形態においては、最適化されるパラメーターは、垂直多関節型ロボットの動作を制御するためのパラメーターである(図1および図3参照)。しかし、最適化されるパラメーターは、水平多関節ロボット、直行ロボットなど他のロボットの動作を制御するためのパラメーターとすることもできる。たとえば、最適化されるパラメーターは、7個以上の作動軸を含むロボットの動作や、双腕ロボットなどの複腕ロボットの動作を制御するためのパラメーターとすることもできる。一般的に、7個以上の作動軸を含むロボットや、複腕ロボットは、他のロボットに比べて負荷が大きい。このため、そのようなロボットの動作を制御するためのパラメーターを最適化する場合には、目標関数に「ロボットが動作を行う際に要する駆動力」を含むことが望ましい。
C2.他の実施形態2:
実施形態1においては、CPU610は、ユーザーインターフェイス画面I207のボタンB71~B73による、3個の動作モードの表示L71~L73の中からの選択を受け付けることにより、条件情報を受け付ける(図7のS209および図11参照)。しかし、条件情報の受付は、動作モードの選択のほか、実施形態2のように、ユーザーからの制約値の入力により行われてもよい(図14参照)。また、制約値または制約値を規定する数値の入力は、第2指標に関する数値の入力のほか、第1指標に関する数値の入力であってもよく、第1指標および第2指標に関する数値の入力であってもよい。
C3.他の実施形態3:
上記実施形態2においては、ステップS209で入力窓D73を介して受け取られた条件情報630bが表す制約値によって定められる範囲が、最適化処理の探索範囲として決定される(図7のS210および図14参照)。しかし、最適化処理の探索範囲は、ユーザーが入力した数値自体を制約値として、決定されるのではなく、ユーザーが入力した数値に基づいて得られる数値を制約値として、決定されてもよい。
C4.他の実施形態4:
上記実施形態1においては、CPU610は、初期パラメーター630dのうちの標準パラメーター630fについて取得されたオーバーシュート量の値に基づく、参考表示R71~R73を、図7のステップS207において、ディスプレイ602に表示する(図11参照)。上記実施形態2においては、CPU610は、初期パラメーター630dのうちの標準パラメーター630fについて取得された動作時間の値およびオーバーシュート量の値を表す参考表示R79を表示する(図14参照)。しかし、条件情報の受け取りを行うインターフェイスにおいて、そのような参考表示を表示しない態様とすることもできる。そのような態様であっても、たとえば、複数の選択肢をそれぞれの特性を説明する表示とともに提示するユーザーインターフェイスを表示することとすれば、ユーザーは、容易に条件情報を入力することができる。
D.さらに他の実施形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
(1)本開示の一形態によれば、ロボットのパラメーターセットを調整する方法が提供される。この方法は、(a)前記ロボットの対象動作の軌跡を規定する軌跡情報を受け取る工程と、(b)前記ロボットの制御結果を評価するための二つの指標であって、一方が優れる場合に他方が劣る傾向を有する第1指標と第2指標を決定する工程と、(c)前記対象動作を制御するための前記パラメーターセットの最適化処理の条件を定める条件情報であって、前記第1指標と前記第2指標の少なくとも一方に関する条件情報を、受け取る工程と、(d)前記条件情報に基づいて、最適化処理の探索範囲と、前記最適化処理に使用する前記パラメーターセットと、を決定する工程と、(e)決定された前記パラメーターセットに基づいて前記対象動作を前記ロボットに実行させた場合の、前記第1指標と前記第2指標の値を取得する工程と、(f)取得された前記第1指標の値および前記第2指標の値に基づいて、新たなパラメーターセットを決定する工程と、(g)前記工程(e)および(f)を繰り返し実行して前記最適化処理を行い、パラメーターセットを取得する工程と、を備える。
このような態様においては、受け取った条件情報に基づいて、最適化処理の探索範囲と、パラメーターセットの初期解とが決定される。このため、パラメーターセットの初期解がランダムに決定される態様に比べて、ユーザーの意向に沿ったパラメーターセットを、より短い時間で得ることができる。
(2)上記方法において、前記工程(a)の後かつ前記工程(c)の前に、前記条件情報の2以上の候補であって、前記第1指標と前記第2指標の少なくとも一方について程度が異なる2以上の候補に関する2以上の動作モードの表示を表示部に表示する工程を備え、前記工程(c)が、前記2以上の動作モードの表示の中からの選択を受け付けることにより、前記条件情報を受け付ける工程である、態様とすることもできる。
このような態様においては、条件情報の2以上の候補には、第1指標を優先する条件情報と、第2指標を優先する条件情報とが含まれる。このため、ユーザーは、提示された2以上の動作モードの選択を通じて、自らの意向を反映させつつ、容易に条件情報を入力することができる。
(3)上記方法において、前記工程(c)が、前記条件情報として、前記第1指標と前記第2指標の少なくとも一方に関する制約値を受け付ける工程であり、前記工程(d)が、前記制約値に基づいて、前記パラメーターセットを決定する工程を含む、態様とすることもできる。
このような態様とすれば、ユーザーの意向を反映した制約値に基づいて、パラメーターセットの初期解が決定される。このため、あらかじめ選択肢が用意され、選択肢の選択によって条件情報が入力される態様に比べて、ユーザーの意向に沿ったパラメーターセットを、より短い時間で得ることができる可能性が高い。
(4)上記方法において、前記工程(a)の後かつ前記工程(c)の前に、あらかじめ用意されている1以上の初期パラメーターセットについて、それぞれの初期パラメーターセットを使用して前記対象動作を前記ロボットに実行させた場合の前記第1指標の値と前記第2指標の値を取得する工程と、前記1以上の初期パラメーターセットについて取得された前記第1指標の値と前記第2指標の値の少なくとも一方に基づく1以上の参考表示を行う工程と、を備える、態様とすることもできる。
このような態様とすれば、ユーザーは、初期パラメーターセットを使用した場合の第1指標の値と第2指標の値の少なくとも一方に基づく参考表示を見た上で、条件情報を入力することができる。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、ロボットのパラメーターセットを調整することができる。
(5)本開示の他の形態によれば、コンピューターに、ロボットのパラメーターセットの調整させるためのプログラムが提供される。このプログラムは、(a)前記ロボットの対象動作の軌跡を規定する軌跡情報を受け取る第1機能と、(b)前記ロボットの制御結果を評価するための二つの指標であって、一方が優れる場合に他方が劣る傾向を有する第1指標と第2指標を決定する第2機能と、(c)前記対象動作を制御するための前記パラメーターセットの最適化処理について条件を定める条件情報であって、前記第1指標と前記第2指標の少なくとも一方に関する条件情報を、受け付ける第3機能と、(d)前記条件情報に基づいて、最適化処理の探索範囲と、前記最適化処理に使用する前記パラメーターセットと、を決定する第4機能と、(e)決定された前記パラメーターセットに基づいて前記対象動作を前記ロボットに実行させた場合の、前記第1指標と前記第2指標の値を取得する第5機能と、(f)取得された前記第1指標の値および前記第2指標の値に基づいて、新たなパラメーターセットを決定する第6機能と、(g)前記第5機能による処理と前記第6機能による処理とを繰り返し実行して前記最適化処理を行い、パラメーターセットを取得する第7機能と、を前記コンピューターに実現させる。
(6)本開示の他の形態によれば、ロボットのパラメーターセットを調整する情報処理装置が提供される。この情報処理装置は、(a)前記ロボットの動作の軌跡を規定する軌跡情報を受け取る軌跡受付部と、(b)前記ロボットの制御結果を評価するための二つの指標であって、一方が優れる場合に他方が劣る傾向を有する第1指標と第2指標を決定する指標決定部と、(c)前記軌跡情報によって軌跡を規定される対象動作を制御するための前記パラメーターセットの最適化処理について条件を定める条件情報であって、前記第1指標と前記第2指標の少なくとも一方に関する条件情報を、受け付ける条件受付部と、(d)前記条件情報に基づいて、最適化処理の探索範囲と、前記最適化処理に使用する前記パラメーターセットと、を決定する初期条件決定部と、(e)決定された前記パラメーターセットに基づいて前記対象動作を前記ロボットに実行させた場合の、前記第1指標と前記第2指標の値を取得する評価処理を実行する評価部と、(f)取得された前記第1指標の値および前記第2指標の値に基づいて、新たなパラメーターセットを決定する新パラメーター決定処理を実行する新パラメーター決定部と、(g)前記評価部による評価処理および前記新パラメーター決定部による新パラメーター決定処理を繰り返し実行して前記最適化処理を行い、パラメーターセットを取得するパラメーター取得部と、を備える。
本開示は、上記以外の種々の形態で実現することも可能である。例えば、ロボットシステムの制御装置、その制御装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体等の形態で実現することができる。
A…アーム、A1~A6…アーム部材、AC…グラフ、Ast…基準目標加速度、B11~B15…ボタン、B51…ボタン、B71…ボタン、B72…ボタン、B73…ボタン、B91…ボタン、B92…ボタン、D11…選択窓、D12…選択窓、D73…入力窓、Da…回転角度、Dc…制御量、De…偏差、Dt…目標角度、E1~E6…エンコーダー、I…イナーシャ、I205…ユーザーインターフェイス画面、I207…ユーザーインターフェイス画面、I207d…ユーザーインターフェイス画面、I251…ユーザーインターフェイス画面、Imax…イナーシャの最大値、Imin…イナーシャの最小値、Ith…イナーシャの閾値、J1~J6…関節、Kpd…微分ゲイン、Kpi…積分ゲイン、Kpp…比例ゲイン、Kvd…微分ゲイン、Kvi…積分ゲイン、Kvp…比例ゲイン、L…位置、L71~L73…動作モードの表示、L91…動作時間OTを表す表示、L92…オーバーシュート量OSを表す表示、Lmax…オーバーシュート、Lpm…位置ずれの閾値、Lt…目標位置、M1~M6…モーター、OS…オーバーシュート量、OT…動作時間、R71~R73…参考表示、R79…参考表示、Rt…周波数帯、S1…加速度センサー、T…基台、Ts…TCPの位置ずれがLpm未満となる時刻、U1…ロボット座標系と各関節の回転角度の対応関係、U2…座標系同士の対応関係、V…速度、W…対象物、a0…制限最大加速度、a1…上限最大加速度、b…基準目標加速度の傾き、t1…移動開始時刻、t2~t4…時刻、1~3…ロボット、20…光学系、21…撮像部、22…照明部、23…グリッパー、40…制御装置、42…検出部、43…制御部、43a…位置制御部、43d…サーボ、44…記憶部、44a…パラメーター、44b…ロボットプログラム、44c…動作パラメーター、44d…光学パラメーター、44e…力制御パラメーター、44p…初期パラメーター、44p1…高速パラメーター、44p2…標準パラメーター、44p3…高精度パラメーター、600…設定装置、602…ディスプレイ、604…キーボード、605…マウス、610…CPU、611…動作実行部、612…パラメーター探索部、612a…指標決定部、612b…新パラメーター決定部、612c…パラメーター取得部、612d…初期条件決定部、613…評価部、613a…動作時間計測部、613b…オーバーシュ1ート量計測部、613c…振動量計測部、613d…騒音レベル計測部、613e…推定寿命計算部、613f…トルク割合計算部、614…表示制御部、615…軌跡受付部、617…条件受付部、630…RAM、630a…選択されたパラメーターセットを含むパラメーター、630b…条件情報、630c…ロボットプログラム、630d…初期パラメーター、630e…高速パラメーター、630f…標準パラメーター、630g…高精度パラメーター、640…ROM

Claims (6)

  1. ロボットのパラメーターセットを調整する方法であって、
    (a)前記ロボットの対象動作の軌跡を規定する軌跡情報を受け取る工程と、
    (b)前記ロボットの制御結果を評価するための二つの指標であって、一方が優れる場合に他方が劣る傾向を有する第1指標と第2指標を決定する工程と、
    (c)前記対象動作を制御するための前記パラメーターセットの最適化処理の条件を定める条件情報であって、前記第1指標と前記第2指標の少なくとも一方に関する条件情報を、受け取る工程と、
    (d)前記条件情報に基づいて、最適化処理の探索範囲と、前記最適化処理に使用する前記パラメーターセットと、を決定する工程と、
    (e)決定された前記パラメーターセットに基づいて前記対象動作を前記ロボットに実行させた場合の、前記第1指標と前記第2指標の値を取得する工程と、
    (f)取得された前記第1指標の値および前記第2指標の値に基づいて、新たなパラメーターセットを決定する工程と、
    (g)前記工程(e)および(f)を繰り返し実行して前記最適化処理を行い、パラメーターセットを取得する工程と、を備える、方法。
  2. 請求項1記載の方法であって、
    前記工程(a)の後かつ前記工程(c)の前に、前記条件情報の2以上の候補であって、前記第1指標と前記第2指標の少なくとも一方について程度が異なる2以上の候補に関する2以上の動作モードの表示を表示部に表示する工程を備え、
    前記工程(c)は、前記2以上の動作モードの表示の中からの選択を受け付けることにより、前記条件情報を受け付ける工程である、方法。
  3. 請求項1記載の方法であって、
    前記工程(c)は、前記条件情報として、前記第1指標と前記第2指標の少なくとも一方に関する制約値を受け付ける工程であり、
    前記工程(d)は、前記制約値に基づいて、前記パラメーターセットを決定する工程を含む、方法。
  4. 請求項1から3のいずれか1項に記載の方法であって、
    前記工程(a)の後かつ前記工程(c)の前に、
    あらかじめ用意されている1以上の初期パラメーターセットについて、それぞれの初期パラメーターセットを使用して前記対象動作を前記ロボットに実行させた場合の前記第1指標の値と前記第2指標の値を取得する工程と、
    前記1以上の初期パラメーターセットについて取得された前記第1指標の値と前記第2指標の値の少なくとも一方に基づく1以上の参考表示を行う工程と、を備える、方法。
  5. コンピューターに、ロボットのパラメーターセットを調整させるためのプログラムであって、
    (a)前記ロボットの対象動作の軌跡を規定する軌跡情報を受け取る第1機能と、
    (b)前記ロボットの制御結果を評価するための二つの指標であって、一方が優れる場合に他方が劣る傾向を有する第1指標と第2指標を決定する第2機能と、
    (c)前記対象動作を制御するための前記パラメーターセットの最適化処理について条件を定める条件情報であって、前記第1指標と前記第2指標の少なくとも一方に関する条件情報を、受け付ける第3機能と、
    (d)前記条件情報に基づいて、最適化処理の探索範囲と、前記最適化処理に使用する前記パラメーターセットと、を決定する第4機能と、
    (e)決定された前記パラメーターセットに基づいて前記対象動作を前記ロボットに実行させた場合の、前記第1指標と前記第2指標の値を取得する第5機能と、
    (f)取得された前記第1指標の値および前記第2指標の値に基づいて、新たなパラメーターセットを決定する第6機能と、
    (g)前記第5機能による処理と前記第6機能による処理とを繰り返し実行して前記最適化処理を行い、パラメーターセットを取得する第7機能と、
    を前記コンピューターに実現させるためのプログラム。
  6. ロボットのパラメーターセットを調整する情報処理装置であって、
    (a)前記ロボットの動作の軌跡を規定する軌跡情報を受け取る軌跡受付部と、
    (b)前記ロボットの制御結果を評価するための二つの指標であって、一方が優れる場合に他方が劣る傾向を有する第1指標と第2指標を決定する指標決定部と、
    (c)前記軌跡情報によって軌跡を規定される対象動作を制御するための前記パラメーターセットの最適化処理について条件を定める条件情報であって、前記第1指標と前記第2指標の少なくとも一方に関する条件情報を、受け付ける条件受付部と、
    (d)前記条件情報に基づいて、最適化処理の探索範囲と、前記最適化処理に使用する前記パラメーターセットと、を決定する初期条件決定部と、
    (e)決定された前記パラメーターセットに基づいて前記対象動作を前記ロボットに実行させた場合の、前記第1指標と前記第2指標の値を取得する評価処理を実行する評価部と、
    (f)取得された前記第1指標の値および前記第2指標の値に基づいて、新たなパラメーターセットを決定する新パラメーター決定処理を実行する新パラメーター決定部と、
    (g)前記評価部による評価処理および前記新パラメーター決定部による新パラメーター決定処理を繰り返し実行して前記最適化処理を行い、パラメーターセットを取得するパラメーター取得部と、を備える、情報処理装置。
JP2020174447A 2020-10-16 2020-10-16 ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置 Pending JP2022065759A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020174447A JP2022065759A (ja) 2020-10-16 2020-10-16 ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置
CN202111199503.2A CN114367974B (zh) 2020-10-16 2021-10-14 调整机器人的参数集的方法、记录介质及信息处理装置
US17/500,973 US20220118616A1 (en) 2020-10-16 2021-10-14 Method of adjusting parameter set of robot, program, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020174447A JP2022065759A (ja) 2020-10-16 2020-10-16 ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置

Publications (1)

Publication Number Publication Date
JP2022065759A true JP2022065759A (ja) 2022-04-28

Family

ID=81138205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020174447A Pending JP2022065759A (ja) 2020-10-16 2020-10-16 ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置

Country Status (3)

Country Link
US (1) US20220118616A1 (ja)
JP (1) JP2022065759A (ja)
CN (1) CN114367974B (ja)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4962551B2 (ja) * 2009-10-20 2012-06-27 株式会社安川電機 ロボットシステムおよびロボットシステムの制御方法
JP2012232370A (ja) * 2011-04-28 2012-11-29 Seiko Epson Corp ロボットコントローラー、簡易設置型ロボット、及び簡易設置型ロボットの制御方法
JP2014034101A (ja) * 2012-08-10 2014-02-24 Toshiba Corp ロボット制御装置
JP5877867B2 (ja) * 2014-04-25 2016-03-08 ファナック株式会社 複数台のロボットのシミュレーション装置
US9440353B1 (en) * 2014-12-29 2016-09-13 Google Inc. Offline determination of robot behavior
WO2017168187A1 (en) * 2016-03-31 2017-10-05 Siemens Industry Software Ltd. Method and system for determining optimal positioning of a plurality of robots in a simulated production environment
JP2019113985A (ja) * 2017-12-22 2019-07-11 セイコーエプソン株式会社 最適化方法、制御装置、およびロボット
JP7135408B2 (ja) * 2018-04-26 2022-09-13 セイコーエプソン株式会社 ロボット制御装置およびロボットシステム
US11117059B2 (en) * 2018-08-21 2021-09-14 Gree, Inc. Non-transitory computer readable media, information processing device, and control method
CN109551484B (zh) * 2019-01-21 2022-03-29 深圳镁伽科技有限公司 运动参数的处理方法、装置和***及存储介质
CN111538314B (zh) * 2020-04-26 2021-06-18 湖南大学 一种交流伺服***控制性能分析方法
WO2022013933A1 (ja) * 2020-07-14 2022-01-20 日本電気株式会社 制御装置、制御方法及び記憶媒体
DE102020209511B3 (de) * 2020-07-28 2021-08-19 ArtiMinds Robotics GmbH Verfahren und System zur Bestimmung von optimierten Programmparametern für ein Roboterprogramm
JP2022070451A (ja) * 2020-10-27 2022-05-13 セイコーエプソン株式会社 ロボットのパラメーターセットの調整を支援する方法、プログラム、および情報処理装置

Also Published As

Publication number Publication date
CN114367974B (zh) 2023-06-27
US20220118616A1 (en) 2022-04-21
CN114367974A (zh) 2022-04-19

Similar Documents

Publication Publication Date Title
JP2022070451A (ja) ロボットのパラメーターセットの調整を支援する方法、プログラム、および情報処理装置
EP3357651B1 (en) Control device, robot, and robot system
JP2018126798A (ja) 制御装置、ロボットおよびロボットシステム
US20170326731A1 (en) Robot controlling method, robot apparatus, program, recording medium, and method for manufacturing assembly component
JP4962551B2 (ja) ロボットシステムおよびロボットシステムの制御方法
EP3357650A2 (en) Control device, robot, and robot system
JP2018126799A (ja) 制御装置、ロボットおよびロボットシステム
CN111904795B (zh) 一种结合轨迹规划的康复机器人变阻抗控制方法
CN112218744A (zh) 学习多足机器人的敏捷运动的***和方法
CN112847235B (zh) 基于深度强化学习的机器人分阶力引导装配方法及***
KR20210053187A (ko) 다자유도 협동 로봇의 마찰 보상 방법
Lee et al. Microscale precision control of a computer-assisted transoral laser microsurgery system
JP2019111604A (ja) 制御装置、ロボット、およびロボットシステム
JP2019113985A (ja) 最適化方法、制御装置、およびロボット
CN114310914A (zh) 多自由度机械臂模糊自适应迭代轨迹跟踪控制方法及***
CN114248267B (zh) 参数显示方法、存储介质及信息处理装置
JP2022065759A (ja) ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置
CN116392253A (zh) 一种应用于手术机器人的主动摆位方法及***
JP2001092511A (ja) ロボットなどの制御ゲイン調整装置
CN111203883B (zh) 面向机器人电子元器件装配的自学习模型预测控制方法
KR102079122B1 (ko) 로봇을 위한 동역학 시뮬레이션 기반 제어 프레임 워크
JP2020121358A (ja) 学習制御装置、ロボット制御装置およびロボット
US20230001574A1 (en) Operation Parameter Adjusting Method And Operation Parameter Adjusting Device For Adjusting Operation Parameters Of Robot
JP2003178107A (ja) 産業用多関節ロボットの設計・解析支援装置及び設計・解析支援プログラム
CN116901063B (zh) 一种基于二次规划的冗余空间机械臂轨迹规划方法