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

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

Info

Publication number
JP2022070451A
JP2022070451A JP2020179522A JP2020179522A JP2022070451A JP 2022070451 A JP2022070451 A JP 2022070451A JP 2020179522 A JP2020179522 A JP 2020179522A JP 2020179522 A JP2020179522 A JP 2020179522A JP 2022070451 A JP2022070451 A JP 2022070451A
Authority
JP
Japan
Prior art keywords
parameter set
robot
value
parameter
condition information
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
JP2020179522A
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 JP2020179522A priority Critical patent/JP2022070451A/ja
Priority to US17/509,100 priority patent/US20220126440A1/en
Priority to CN202111249961.2A priority patent/CN114474039B/zh
Publication of JP2022070451A publication Critical patent/JP2022070451A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/1602Programme controls characterised by the control system, structure, architecture
    • 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/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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
    • 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
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation
    • 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)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

【課題】ロボットのパラメーターの設定の経験のないユーザーによるパラメーターの設定、および新たな環境で動作するロボットのパラメーターの設定を支援する。【解決手段】この方法は、(a)ロボットの対象動作の軌跡を規定する軌跡情報を受け取る工程と、(b)対象動作を制御するためのパラメーターセットを調整するという指示に応じて、1以上の初期パラメーターセットについて、それぞれの初期パラメーターセットを使用して対象動作をロボットに実行させた場合の、制御結果の評価指標の値を取得する工程と、(c)取得された評価指標の値に基づく1以上の参考表示を表示部に表示する工程と、(d)パラメーターセットの最適化処理の条件を定める条件情報であって、評価指標についての条件情報の入力を受け取って、条件情報にしたがって、パラメーターセットの最適化処理を行い、新たなパラメーターセットの値を決定する工程と、を備える。【選択図】図7

Description

本開示は、ロボットのパラメーターセットの調整を支援する方法、プログラム、および情報処理装置に関する。
従来、ロボットの制御パラメーターを設定する技術が存在する。特許文献1の技術においては、サーバコンピューターは、「動作時間短縮の優先」、「軌跡精度の優先」、「エネルギー消費量最小化の優先」などの最適化の目的に応じた複数の調整用パラメーターを導出する。計算された調整用パラメーターのそれぞれについて、最適化の効果が算出される。たとえば、最適化の目的に「動作時間短縮の優先」が選択された場合は動作時間短縮の割合が算出され、「エネルギー消費量最小化の優先」が選択された場合はエネルギー消費量の減少割合が算出される。オペレーターは、それらの最適化の効果を確認し、いずれの調整用パラメーターを導入するか選択する。ロボット制御盤は、現状の調整用パラメーターのデータを、サーバコンピューターから受信した調整用パラメーターのデータに変更する。
特開2003-103482号公報
しかし、最適化の効果が、たとえば「動作時間短縮の割合」として示されても、ロボットのパラメーターの設定の経験が十分にないユーザーには、その具体的な動作時間が、どの程度すぐれているのか把握できない。また、「動作時間短縮の優先」を最適化の目的として得られたパラメーターについて、「軌跡精度」の値が、ユーザーにとって許容範囲内であるのか、判断がつかない。
本願の発明者は、特許文献1の技術を改変して、たとえば、あらかじめユーザーに軌跡精度の想定範囲について数値を指定させて、その制約の下で、「動作時間短縮の優先」を最適化の目的として、パラメーターを導出する方法についても検討した。しかし、ユーザーに、軌跡精度についてあらかじめ数値を指定させると、実現不可能な数値を指定する可能性がある。そのような場合には、最適化処理によって調整用パラメーターを得ることができない。
本開示の一形態によれば、ロボットのパラメーターセットの調整を支援する方法が提供される。この方法は、(a)前記ロボットの対象動作の軌跡を規定する軌跡情報を受け取る工程と、(b)前記対象動作を制御するためのパラメーターセットを調整するという指示に応じて、あらかじめ用意されている1以上の初期パラメーターセットについて、それぞれの初期パラメーターセットを使用して前記対象動作を前記ロボットに実行させた場合の、制御結果の評価指標の値を取得する工程と、(c)前記1以上の初期パラメーターセットについて取得された前記評価指標の値に基づく1以上の参考表示を表示部に表示する工程と、(d)前記パラメーターセットの最適化処理の条件を定める条件情報であって、前記評価指標についての条件情報の入力を受け取って、前記条件情報にしたがって、前記パラメーターセットの最適化処理を行い、新たなパラメーターセットの値を決定する工程と、を備える。
本開示の一実施形態のロボットシステムを示す説明図である。 制御装置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の処理の繰り返しによって得られたパラメーターセットの動作時間OTの値およびオーバーシュート量OSの値を示す散布図である。 ステップS250において示されるユーザーインターフェイス画面I251を示す図である。 実施形態2のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207bを示す図である。 実施形態3のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207cを示す図である。 実施形態4のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207dを示す図である。 実施形態5のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207eを示す図である。 実施形態6のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207fを示す図である。
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である。インピーダンスパラメーターは、ロボット座標系の各軸に対する並進と回転について定義される。
本実施形態において力制御座標系、目標力、インピーダンスパラメーターは、各ロボットが実行する動作ごとに値を設定される(図3参照)。しかし、より短い区間ごとに値を設定されてもよい。
初期パラメーター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の下段右部参照)。また、設定装置600は、各動作を実現するために必要とされる具体的なパラメーターを設定する。技術の理解を容易にするため、図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」として示す(図6の下段中央部参照)。RAM630に格納されたロボットプログラムをロボットプログラム630cとして示す(図6の上段左部参照)。RAM630に格納された初期パラメーターを初期パラメーター630dとして示す(図6の中段左部参照)。制御装置40から受信される初期パラメーター44pは、高速パラメーター44p1、標準パラメーター44p2、および高精度パラメーター44p3を含む(図2の下段左部参照)。RAM630に格納された高速パラメーター、標準パラメーター、および高精度パラメーターを、それぞれ高速パラメーター630e、高精度パラメーター630g、および標準パラメーター630fとして、図6に示す(図6の中段左部参照)。
図7のステップS203においては、パラメーターセットを調整するという指示に応じて、初期パラメーター630dを使用して対象動作をロボット3に実行させた場合の様々な指標の値が取得される。具体的には、キーボード604およびマウス605を介して、ユーザーから、パラメーターセットを調整するという指示が、CPU610に入力される。そして、その指示に応じて、ステップS200で取得されたロボットプログラム630cと、初期パラメーター630dのうち標準パラメーター630fのパラメーターセットと、にしたがって、ロボット3による動作が実行される。そして、その動作の実行中に、エンコーダーE1~E6ならびに加速度センサーS1の出力が取得され、後述する動作時間、オーバーシュート量などの様々な指標の値が取得される。たとえば、オーバーシュート量が、0.20mmであったとする。
ステップS203においてロボットに動作を実行させるCPU610の機能部を、図6において、「動作実行部611」として示す(図6の上段中央部参照)。ロボットの動作についての様々な指標の値を取得するCPU610の機能部を、図6において、「評価部613」として示す(図6の中段中央部参照)。
図7のステップS205においては、CPU610は、ロボット3の制御結果を評価するための二つの指標であって、一方が優れる場合に他方が劣る傾向を有する第1指標と第2指標を決定する。具体的には、第1指標と第2指標の決定は、ユーザーからの指示に従って行われる。第1指標と第2指標は、以下の指標の中から決定される。
(I-1)動作時間:
動作時間は、動作の開始から終了までの所要時間である。ある制御において、動作時間が短いほど、その制御の評価は高い。動作時間は、動作の開始時および終了時のTCPの目標位置と、エンコーダーE1~E6(図2上段参照)から得られるTCPの各時刻の位置に基づいて、決定することができる。動作時間を計測するCPU610の機能部を、図6において、「動作時間計測部613a」として示す(図6の中段中央部参照)。なお、指標として、平均動作速度を採用することもできる。平均動作速度は、動作時間として得られる。
(I-2)オーバーシュート量:
オーバーシュート量は、動作の終了時におけるTCPの位置ずれの最大値である。ある制御において、オーバーシュート量が小さいほど、その制御の評価は高い。
図8は、動作の終了時におけるTCPの位置を示すグラフである。オーバーシュート量OSは、ロボットのTCPの目標位置Ltと、オーバーシュートLmaxと、のずれとして計測される。TCPの位置ずれは、動作の終了時のTCPの目標位置Ltと、エンコーダーE1~E6(図2上段参照)から得られる動作の終了時前後のTCPの位置Lと、ロボットのアームの先端に設けられている加速度センサーS1の出力と、に基づいて、決定することができる。オーバーシュート量を計測するCPU610の機能部を、図6において、「オーバーシュート量計測部613b」として示す(図6の中段中央部参照)。
(I-3)動作の終了後の振動量:
振動量は、動作の終了後におけるTCPの位置ずれが、あらかじめ定められた値Lpm未満となる時刻Tsまでの、目標位置からの行き過ぎ量の絶対値の合計で評価される。ある制御において、動作の終了後の振動量が小さいほど、その制御の評価は高い。振動量を計測するCPU610の機能部を、図6において、「振動量計測部613c」として示す(図6の中段中央部参照)。
(I-4)騒音レベル:
騒音レベルは、ロボットが動作を実行する際に発生する音の大きさである。ある制御において、騒音レベルが小さいほど、その制御の評価は高い。
図9は、ロボットが動作を実行する際に発生する音の大きさ(dB)を、横軸を周波数として表したグラフである。騒音レベルは、以下のように決定することができる。すなわち、各ロボットの近傍に設けられたマイクによって、音を収集し、あらかじめ定められた周波数帯Rtに含まれる音の大きさ、すなわちエネルギー量に基づいて、騒音レベルを決定することができる。「音の大きさ」の評価指標を定めることにより、ユーザーに取って不快な音を抑制するように、パラメーターを設定することができる。騒音レベルを計測するCPU610の機能部を、図6において、「騒音レベル計測部613d」として示す(図6の中段中央部参照)。
(I-5)推定寿命:
推定寿命Lは、以下の式(Eq3)に従って計算される。ある制御において、推定寿命が大きいほど、その制御の評価は高い。
Figure 2022070451000002
Figure 2022070451000003
推定寿命を計算するCPU610の機能部を、図6において、「推定寿命計算部613e」として示す(図6の中段中央部参照)。
(I-6)トルク割合:
各モーターのトルク割合は、[動作中に出力軸に与えられたトルクの平均値]/「許容トルクの値」で得られる。「許容トルク」は、モーターが出力軸に連続的に与えることができるトルクである。「許容トルク」は、モーターごとに定められている。「動作中に出力軸に与えられたトルクの平均値」は、モーターM1~M6に流れる電流を計測する電流計の出力に基づいて、決定することができる。ある制御において、トルク割合が小さいほど、その制御の評価は高い。トルク割合を計算するCPU610の機能部を、図6において、「トルク割合計算部613f」として示す(図6の中段中央部参照)。
CPU610の機能部として図6に示す動作時間計測部613a、オーバーシュ1ート量計測部613b、振動量計測部613c、騒音レベル計測部613d、推定寿命計算部613e、およびトルク割合計算部613fは、ロボットの動作についての様々な指標の値を取得する評価部613の一部である(図6の中段中央部参照)。
図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」として示す(図6の下段中央部参照)。
CPU610は、ユーザーからの指示に応じて、ユーザーインターフェイス画面I205に表示されている3個以上の指標の中から第1指標と第2指標を決定する。図10の例では、動作時間が、パラメーターセットの評価に使用される第1指標として選択され、オーバーシュート量が、パラメーターセットの評価に使用される第2指標として選択されている。このため、動作時間が、第1指標として決定され、オーバーシュート量が、第2指標として決定される。ステップS205において指標を決定する処理を実現するCPU610の機能部を、図6において、「指標決定部612a」として示す(図6の上段中央部参照)。
このような処理を行うことにより、ユーザーの意向を反映した性能を実現できるパラメーターセットを、後のステップ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個の動作モードは、具体的には、初期パラメーター630dのうちの標準パラメーター630fと比べて、振動を許容する第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を使用して取得されたオーバーシュート量の値に基づく、現実的な複数の条件情報の候補を、参考表示R71~R73として、ユーザーに提示することができる。このため、ユーザーは、標準パラメーター630fを使用した場合のオーバーシュート量OSの値に基づく参考表示R71~R73を見た上で、最適化処理において解が得られる程度の現実的な条件情報を、後のステップS209において、入力することができる。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、ロボット1~3のパラメーターセットを調整することができる。また、新たな環境で動作するロボットのパラメーターを調整する際にも、ロボット1~3のパラメーターセットを調整することができる。さらに、現実的に実現不可能な範囲を避ける条件情報が入力されるため、効率的にパラメーターセットの最適化処理を行うことができる。
なお、条件情報によって定められる制約値以外の指標の上限および下限は、あらかじめ定められ、制御装置40の記憶部44に格納されている。CPU610は、記憶部44内の指標の上限および下限を読み出して、ステップS220における最適化処理において利用する。
動作モードの表示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として示す(図6の上段左部参照)。条件情報を受け付けるCPU610の機能部を、図6において、「条件受付部617」として示す(図6の下段中央部参照)。
このような処理を行うことにより、ユーザーは、ステップS203で取得されたオーバーシュート量の値に基づく複数の条件情報の候補の中から、一つを選択することで、条件情報を入力することができる。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、オーバーシュート量についての現実的な条件情報を入力することができる。
また、第1指標としての動作時間OTと第2指標としてのオーバーシュート量OSとは、一方が優れる場合に他方が劣る傾向を有する。このため、動作モードの表示L71~L73が示す、オーバーシュート量が異なる3個の条件情報の候補には、動作時間OTを優先する条件情報に対応する動作モードと、オーバーシュート量OSを優先する条件情報に対応する動作モードとが含まれる(図11のL71,L73参照)。このため、ユーザーは、提示された複数の動作モードの選択を通じて、自らの意向を反映させつつ、容易に条件情報を入力することができる。
図7のステップS210,S220においては、入力された条件情報630bにしたがって、パラメーターセットの最適化処理が行われ、新たなパラメーターセットの値が決定される。
ステップS210においては、CPU610は、ステップS209で受け取った条件情報630bに基づいて、最適化処理の探索範囲と、探索に使用するパラメーターセットと、を決定する。具体的には、ステップS209で受け取られた条件情報630bが表す制約値を使用して、最適化処理の探索範囲が決定される。ステップS209で受け取られた条件情報630bが対応づけられているパラメーターセットが、探索に使用するパラメーターセットとして決定される。図11の例においては、ボタンB73によって、動作モードの表示L73が選択されている。このため、オーバーシュート量0.10mm以下の範囲が、最適化処理の探索範囲として決定される(図11の下段中央部参照)。また、初期パラメーター630dのうちの高精度パラメーター630gが、探索に使用する初期解としてのパラメーターセットとして決定される(図11の下段右部参照)。
ステップ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」として示す(図6の中段中央部参照)。
ステップ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」である(図11の中段中央部参照)。
ステップ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」として示す(図6の上段中央部参照)。
ステップS223,S225の処理は、ステップS227の条件が満たされるまで、繰り返し実行される。その結果、ステップS210で最初に決定されたパラメーターセットよりも、第1指標としての動作時間OTについて優れているパラメーターセットが取得される。ステップS223,S225の処理を繰り返して、ステップS227において、目的関数f(xi)の値が最も優れているパラメーターセットを決定するCPU610の機能部を、図6において、「パラメーター取得部612c」として示す(図6の中段中央部参照)。また、指標決定部612a、新パラメーター決定部612b、パラメーター取得部612c、初期条件決定部612dを包含するCPU610の機能部を、図6において、「パラメーター探索部612」として示す(図6の上段中央部参照)。
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参照)。
本実施形態においては、ユーザーは、初期パラメーター630dである標準パラメーター630fを使用した場合のオーバーシュート量の値に基づく参考表示R71~R73を見た上で、オーバーシュート量についての条件情報630bを入力することができる(図11)。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、容易にロボット1~3のパラメーターセットを調整することができる。
また、本実施形態においては、受け付けた条件情報に基づいて、最適化処理の探索範囲と、パラメーターセットの初期解とが決定される(図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の44a参照)。ロボット3は、そのパラメーターセットのパラメーター44aと、ロボットプログラム44bと、によって、制御される。
本実施形態における、パラメーターセットの調整の対象となっている動作を、「対象動作」とも呼ぶ。ロボットプログラム44bおよびロボットプログラム630cを、「軌跡情報」とも呼ぶ。ディスプレイ602を、「表示部」とも呼ぶ。記憶部44内に格納されている高速パラメーター44p1、標準パラメーター44p2、および高精度パラメーター44p3、ならびにRAM630に格納された高速パラメーター630e、高精度パラメーター630g、および標準パラメーター630fを、「初期パラメーターセット」とも呼ぶ。動作時間、オーバーシュート量、振動量、騒音レベル、推定寿命、トルク割合等の指標を、「評価指標」とも呼ぶ。
本実施形態における設定装置600を、「情報処理装置」とも呼ぶ。図7のステップS203の機能を実現するCPU610の評価部613を、「初期評価部」とも呼ぶ。図7のステップS225において、動作をロボット3に実行させた場合の第1指標と第2指標の値を取得する処理を、「評価処理」とも呼ぶ。ステップS227に続いて実行されるステップS223において、直前のステップS225で取得された第1指標の値および第2指標の値に基づいて、新たなパラメーターセットを決定する処理を、「新パラメーター決定処理」とも呼ぶ。
B.実施形態2:
実施形態2は、図7のステップS203,S207,S209,S210における具体的な処理が実施形態1とは異なっている。実施形態2の他の点は、実施形態1と同じである。
実施形態2においても、図7のステップS203においては、パラメーターセットを調整するという指示に応じて、初期パラメーター630dを使用して対象動作をロボット3に実行させた場合の様々な指標の値が取得される。ただし、ロボットプログラム630cと、あらかじめ用意されている3組の初期パラメーターセット44p1~44p3について、それぞれの初期パラメーターセット44p1~44p3を使用して動作をロボット3に実行させた場合の様々な指標の値が取得される。
具体的には、第2実施形態においては、初期パラメーター630dの高速パラメーター630e、標準パラメーター630f、および高精度パラメーター630gを使用して、ロボット3による動作が実行される。そして、それらの動作の実行中に、エンコーダーE1~E6ならびに加速度センサーS1の出力が取得され、動作時間、オーバーシュート量などの様々な指標の値が取得される。
ステップS203においてロボットに動作を実行させるCPU610の機能部は、動作実行部611である(図6の上段中央部参照)。ロボットの動作についての様々な指標の値を取得するCPU610の機能部は、評価部613である(図6の中段中央部参照)。
図7のステップS207において、CPU610は、3組の初期パラメーターセット44p1~44p3について取得された動作時間OTの値およびオーバーシュート量OSの値に基づく参考表示R74a~R76a,R74b~R76bをディスプレイ602に表示する。
図14は、実施形態2のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207bを示す図である。ユーザーインターフェイス画面I207bは、条件情報を受け付けるためのユーザーインターフェイス画面である。ユーザーインターフェイス画面I207bは、動作モードの表示L74~L76と、ボタンB74~B76と、を含む。
ボタンB74~B76は、表示L74~L76で表される動作モードを選択するためのボタンである。ボタンB74~B76は、ボタンB74~B76のうちの一つだけが選択できるように構成されている。
動作モードの表示L74~L76は、3個の動作モードを表す。表示L74~L76が表す3個の動作モードは、具体的には、振動を許容する高速モードと、振動を低減する高精度モードと、それらの中間の性質を有する通常モードである(図14の左部参照)。
動作モードの表示L74が表す高速モードは、高速パラメーター630eと対応づけられている。動作モードの表示L76が表す高精度モードは、高精度パラメーター630gと対応づけられている。動作モードの表示L75が表す通常モードは、標準パラメーター630fと対応づけられている。
動作モードの表示L71~L73は、参考表示R74a~R76a,R74b~R76bを含む。参考表示R74a,74bは、それぞれステップS203において初期パラメーター630dのうちの高速パラメーター630eについて取得された動作時間およびオーバーシュート量の値に基づく表示である。参考表示R75a,75bは、それぞれステップS203において初期パラメーター630dのうちの標準パラメーター630fについて取得された動作時間およびオーバーシュート量の値に基づく表示である。参考表示R76a,76bは、それぞれステップS203において初期パラメーター630dのうちの高精度パラメーター630gについて取得された動作時間およびオーバーシュート量の値に基づく表示である。すなわち、参考表示R74a~R76a,R74b~R76bは、それぞれの初期パラメーターセットを使用した場合の第1指標と第2指標の値を表示する。
このような表示を行うことにより、ユーザーは、複数の初期パラメーターセット44p1~44p3の第1指標としての動作時間の値および第2指標としてのオーバーシュート量の値に基づく参考表示R74a~R76a,R74b~R76bを見た上で、動作時間およびオーバーシュート量についての条件情報を入力することができる(図14のB74~B76参照)。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、第1指標および第2指標についての自らの希望を反映させて、ロボット1~3のパラメーターセットを調整することができる。
また、参考表示R74a~R76a,R74b~R76bは、ステップS203において動作の実行に使用されたすべての初期パラメーターセット44p1~44p3についての参考表示である。このため、ユーザーは、すべての初期パラメーターセット44p1~44p3の動作時間OTの値およびオーバーシュート量OSの値に基づく参考表示R74a~R76a,R74b~R76bを見た上で、広い選択肢の中から動作時間およびオーバーシュート量についての条件情報630bを入力することができる。このため、動作時間およびオーバーシュート量についての希望を反映させる際の自由度が高い。
図7のステップS209においては、CPU610は、条件情報を受け付ける。具体的には、CPU610は、ユーザーインターフェイス画面I207bのボタンB74~B76による、3個の動作モードの表示L74~L76の中からの選択を受け付けることにより、条件情報を受け付ける。
ボタンB74が選択された場合、条件情報として、動作モードの表示L74が表す高速モードが入力される。ボタンB75が選択された場合、条件情報として、動作モードの表示L75が表す通常モードが入力される。ボタンB76が選択された場合、条件情報として、動作モードの表示L76が表す高精度モードが入力される。
図7のステップS210においては、CPU610は、ステップS209で受け取った条件情報630bに基づいて、最適化処理の探索範囲と、探索に使用するパラメーターセットと、を決定する。具体的には、ステップS209で受け取られた条件情報630bが対応する第2指標の制約値を使用して、最適化処理の探索範囲が決定される。ステップS209で受け取られた条件情報630bが表している動作モードの動作時間およびオーバーシュート量が取得される際に使用されたパラメーターセットが、探索に使用するパラメーターセットとして決定される(図7のS203参照)。図14の例においては、ボタンB74によって、動作モードの表示L74が選択されている。このため、オーバーシュート量0.4mm以下の範囲が、最適化処理の探索範囲として決定される(図14の上段右部参照)。また、初期パラメーター630dのうちの高速パラメーター630eが、探索に使用する初期解としてのパラメーターセットとして決定される(図14の上段左部参照)。
このような態様においても、パラメーターセットの設定の経験が十分にないユーザーであっても、動作時間およびオーバーシュート量の現実的でかつ良い値を、動作時間およびオーバーシュート量についての条件情報630bとして、入力することができる。
C.実施形態3:
実施形態3は、図7のステップS207,S209,S210における具体的な処理が実施形態2とは異なっている。実施形態3の他の点は、実施形態2と同じである。
図15は、実施形態3のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207cを示す図である。ユーザーインターフェイス画面I207cは、条件情報を受け付けるためのユーザーインターフェイス画面である。ユーザーインターフェイス画面I207cは、参考表示R77,R78と、入力窓D71,D72と、ボタンB77,B78,B81,B82と、を含む。
ボタンB77,B78は、条件情報を規定する指標を、第1指標としての動作時間と第2指標としてのオーバーシュート量の中から選択するためのボタンである。ユーザーは、条件情報としての探索の制約値を動作時間で指定することを希望する場合には、ボタンB77を選択する。ボタンB77が選択された場合には、入力窓D72はグレーアウトして、値を入力されることができなくなる。ユーザーは、探索の制約値をオーバーシュート量で指定することを希望する場合には、ボタンB78を選択する。ボタンB78が選択された場合には、入力窓D71はグレーアウトして、値を入力されることができなくなる。
参考表示R77は、ステップS203において初期パラメーター630dのうちの高速パラメーター630eについて取得された動作時間の値に基づく、表示である。参考表示R78は、ステップS203において初期パラメーター630dのうちの高精度パラメーター630gについて取得されたオーバーシュート量の値に基づく、表示である。すなわち、実施形態3においては、ステップS207における参考表示R77,R78は、ステップS203で3組の初期パラメーターセットによる動作について取得された動作時間およびオーバーシュート量のうち、動作時間の最良の値およびオーバーシュート量の最良の値のみに基づく表示である。
入力窓D71は、第1指標である動作時間の上限を、条件情報として受け付けるためのインターフェイスである。ユーザーは、最適化の探索の制約値を動作時間で指定することを希望する場合には、ボタンB77を選択し、参考表示R77に示された動作時間の値を参考にして、動作時間の上限として希望する数値を、入力窓D71に入力する。
入力窓D72は、第2指標であるオーバーシュート量の上限を、条件情報として受け付けるためのインターフェイスである。ユーザーは、最適化の探索の制約値をオーバーシュート量で指定することを希望する場合には、ボタンB78を選択し、参考表示R78に示されたオーバーシュート量の値を参考にして、オーバーシュート量の上限として希望する数値を、入力窓D72に入力する。
このような表示を行うことにより、ユーザーは、初期パラメーターセット44p1~44p3を使用した場合の動作時間およびオーバーシュート量の最良の値に基づく参考表示R77,R78を見た上で、動作時間またはオーバーシュート量についての現実的な条件情報630bを入力することができる(図15参照)。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、動作時間およびオーバーシュート量の現実的でかつ良い値を、動作時間およびオーバーシュート量についての条件情報630bとして、入力することができる。また、動作時間およびオーバーシュート量の値のうち、最良の値以外の値に基づく参考表示はなされないため、すべての指標について参考表示が行われる態様に比べて、ディスプレイ602における参考表示を、ユーザーが把握しやすい。
ボタンB81は、入力窓D71または入力窓D72に入力した指標の値を、確定するためのボタンである。ボタンB82は、入力窓D71または入力窓D72に入力した指標の値を破棄して、入力窓D71または入力窓D72に値を入力しなおすためのボタンである。
図7のステップS209においては、CPU610は、ユーザーインターフェイス画面I207cのボタンB77,B78で選択された指標、ならびに入力窓D71または入力窓D72に入力された指標の値を、条件情報として受け付ける。
図7のステップS210においては、CPU610は、ステップS209で受け取った条件情報630bに基づいて、最適化処理の探索範囲を決定する。具体的には、ステップS209で受け取られた条件情報630bが表す指標およびその値を使用して、最適化処理の探索範囲が決定される。図15の例においては、ボタンB77が選択され、入力窓D71には、1.2秒が入力されている。このため、動作時間1.2秒以下の範囲が、最適化処理の探索範囲として決定される。また、実施形態3においては、ユーザーインターフェイス画面I207cにおける入力によらず、初期パラメーター630dのうちの標準パラメーター630fが、探索に使用する初期解としてのパラメーターセットとして決定される(図6の上段左部参照)。
このような態様においても、パラメーターセットの設定の経験が十分にないユーザーであっても、動作時間およびオーバーシュート量の現実的でかつ良い値を、動作時間およびオーバーシュート量についての条件情報630bとして、入力することができる。
また、本実施形態においては、ユーザーの意向を反映した制約値の具体的な値に基づいて、最適化処理の探索範囲が決定される(図15のD71,D72参照)。このため、あらかじめ選択肢が用意され、選択肢の選択によって条件情報630bが入力される態様に比べて、ユーザーの意向に沿ったパラメーターセットを得ることができる可能性が高い。
D.実施形態4:
実施形態4は、図7のステップS207,S209,S210における具体的な処理が実施形態1とは異なっている。実施形態4の他の点は、実施形態1と同じである。
図16は、実施形態4のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207dを示す図である。ユーザーインターフェイス画面I207dは、参考表示R79と、入力窓D73と、ボタンB51,B52と、を含む。
参考表示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に入力した数値を確定するためのボタンである。ボタンB52は、入力窓D73に入力した指標の値を破棄して、入力窓D73に値を入力しなおすためのボタンである。
図7のステップS209においては、CPU610は、第2指標であるオーバーシュート量OSに関する条件情報を、受け付ける。具体的には、ユーザーインターフェイス画面I207dにおいて、入力窓D73に制約値が入力され、ボタンB51が押されることにより、CPU610は、入力窓D73に入力した制約値を、条件情報として受け付ける。
図7のステップS210においては、CPU610は、ステップS209で受け取った条件情報630bに基づいて、最適化処理の探索範囲と、探索に使用するパラメーターセットと、を決定する。具体的には、ステップS209で入力窓D73を介して受け取られたオーバーシュート量の上限値を使用して、最適化処理の探索範囲が決定される。また、実施形態4においては、ユーザーインターフェイス画面I207dにおける入力によらず、ランダムに定められたパラメーターセットが、探索に使用する初期解としてのパラメーターセットとして決定される。
本実施形態においても、受け付けた条件情報に基づいて、最適化処理の探索範囲が決定される(図16参照)。このため、最適化処理の探索範囲がユーザーの意向を反映しない態様に比べて、ユーザーの意向に沿ったパラメーターセットを、より短い時間で得ることができる。
E.実施形態5:
実施形態5は、図7のステップS207,S209,S210における具体的な処理が実施形態4とは異なっている。実施形態5の他の点は、実施形態4と同じである。
図17は、実施形態5のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207eを示す図である。ユーザーインターフェイス画面I207eは、参考表示R79と、入力窓D74と、ボタンB51,B52と、を含む。
参考表示R79は、図16に示す実施形態4の参考表示R79と同じである。ボタンB51,B52は、図16に示す実施形態4のボタンB51,B52と同じである。
入力窓D74は、第1指標である動作時間の上限を、条件情報として受け付けるためのインターフェイスである。ユーザーは、参考表示R79に示された動作時間の値およびオーバーシュート量の値を参考にして、動作時間の上限として希望する数値を、キーボード604およびマウス605を介して、入力窓D74に入力する。
たとえば、参考表示R79に示された動作時間の値1.4秒が十分に短く、オーバーシュート量の値0.20mmが大きいと感じるのであれば、ユーザーは、動作時間の上限として、参考表示R79として示される値より大きい値、たとえば1.6秒を入力することができる。参考表示R79に示された動作時間の値1.4秒が長く、オーバーシュート量の値0.20mmが十分に小さいと感じるのであれば、ユーザーは、動作時間の上限として、参考表示R79として示される値より小さい値、たとえば1.2秒を入力することができる。
図7のステップS209においては、CPU610は、第1指標である動作時間に関する条件情報を、受け付ける。具体的には、ユーザーインターフェイス画面I207eにおいて、入力窓D74に制約値が入力され、ボタンB51が押されることにより、CPU610は、入力窓D74に入力した制約値を、条件情報として受け付ける。
図7のステップS210においては、CPU610は、ステップS209で受け取った条件情報630bに基づいて、最適化処理の探索範囲と、探索に使用するパラメーターセットと、を決定する。具体的には、ステップS209で入力窓D74を介して受け取られた動作時間の上限値を使用して、最適化処理の探索範囲が決定される。また、ユーザーインターフェイス画面I207eにおける入力によらず、ランダムに定められたパラメーターセットが、探索に使用する初期解としてのパラメーターセットとして決定される。
本実施形態においても、受け付けた条件情報に基づいて、最適化処理の探索範囲が決定される(図17参照)。このため、最適化処理の探索範囲がユーザーの意向を反映しない態様に比べて、ユーザーの意向に沿ったパラメーターセットを、より短い時間で得ることができる。
F.実施形態6:
実施形態6は、図7のステップS207,S209における具体的な処理が実施形態1とは異なっている。実施形態6の他の点は、実施形態1と同じである。
図18は、実施形態6のステップS207において、設定装置600のディスプレイ602に表示されるユーザーインターフェイス画面I207fを示す図である。ユーザーインターフェイス画面I207fは、参考表示R79と、動作モードの表示L81~L83と、ボタンB81~B83を含む。
参考表示R79は、図16に示す実施形態4の参考表示R79と同じである。
ボタンB81~B83は、表示L81~L83で表される動作モードを選択するためのボタンである。ボタンB81~B83は、ボタンB81~B83のうちの一つだけが選択できるように構成されている。
動作モードの表示L81~L83は、3個の動作モードを表す。表示L81~L83が表す動作モードは、第2指標であるオーバーシュート量について程度が異なる3個の条件情報の候補に対応する動作モードである。表示L71~L73が表す3個の動作モードは、具体的には、初期パラメーター630dのうちの標準パラメーター630fと比べて、振動を許容する第1モードと、振動をより低減する第3モードと、同程度のオーバーシュート量を有する第2モードである。
動作モードの表示L81~L83は、参考表示R81~R83を含む。参考表示R81~R83は、ステップS203において初期パラメーター630dのうちの標準パラメーター630fについて取得されたオーバーシュート量の値に基づく、表示である。
参考表示R81~R83は、条件情報の候補を示す。参考表示R82は、ステップS203において取得されたオーバーシュート量の値0.20mmを、制約値の候補として示す。参考表示R81は、ステップS203において取得されたオーバーシュート量の値0.20mmの1.5倍の値を、制約値の候補として示す。参考表示R83は、ステップS203において取得されたオーバーシュート量の値0.20mmの0.5倍の値を、制約値の候補として示す。
このような処理を行うことにより、標準パラメーター630fを使用して取得されたオーバーシュート量の値に基づく、現実的な複数の条件情報の候補を、参考表示R79,R81~R83として、ユーザーに提示することができる。このため、ユーザーは、標準パラメーター630fを使用した場合のオーバーシュート量OSの値に基づく参考表示R79,R81~R83を見た上で、現実的な条件情報の入力を行うことができる。よって、パラメーターセットの設定の経験が十分にないユーザーであっても、ロボット1~3のパラメーターセットを調整することができる。
動作モードの表示L81が表す第1モードは、初期パラメーター630dのうち、高速パラメーター630eと対応づけられている(図6の中段左部参照)。動作モードの表示L83が表す第3モードは、初期パラメーター630dのうち、高精度パラメーター630gと対応づけられている。動作モードの表示L82が表す第2モードは、初期パラメーター630dのうち、標準パラメーター630fと対応づけられている。
図7のステップS209においては、CPU610は、第2指標であるオーバーシュート量OSに関する条件情報を、受け付ける。具体的には、CPU610は、ユーザーインターフェイス画面I207fのボタンB81~B83による、3個の動作モードの表示L81~L83の中からの選択を受け付けることにより、条件情報を受け付ける。
ボタンB81が選択された場合、条件情報として、動作モードの表示L81が表す第1モードが入力される。ボタンB82が選択された場合、条件情報として、動作モードの表示L82が表す第2モードが入力される。ボタンB83が選択された場合、条件情報として、動作モードの表示L83が表す第3モードが入力される。受け付けられた条件情報は、RAM630に格納される。
このような処理を行うことにより、ユーザーは、ステップS203で取得されたオーバーシュート量の値に基づく複数の条件情報の候補の中から、一つを選択することで、条件情報を入力することができる。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、オーバーシュート量についての条件情報を入力することができる。
G.他の実施形態:
G1.他の実施形態1:
(1)上記実施形態においては、最適化される動作パラメーター44cには、制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きd、サーボゲインを表すパラメーターが含まれる(図4および図5参照)。しかし、最適化される動作パラメーター44cは、これらの動作パラメーター44c以外の動作パラメーター44c、たとえば、動作の中継点を表すパラメーターを含むことができる。
(2)上記実施形態では、対象物Wをロボット3のグリッパー23でピックアップする処理を例にして、動作パラメーター44cの最適化について説明した(図1および図3参照)。しかし、パラメーターが最適化される処理は、ピックアップ処理における動作パラメーター44cに限定されず、他にも種々の処理に適用可能である。
たとえば、パラメーターが最適化される処理は、撮像部21を配置する処理や、照明部22を配置する処理とすることができる。すなわち、光学パラメーター44dを最適化処理の対象とすることもできる(図3の上段参照)。また、ロボット1~3が力覚センサーを備える場合には、パラメーターが最適化される処理は、力制御を含む処理とすることができる。すなわち、力制御パラメーター44eを最適化処理の対象とすることもできる(図3の上段参照)。パラメーターが最適化される処理は、たとえば、ネジ締め、挿入、ドリルによる穴あけ、バリ取り、研磨、組み立て、製品チェック等印も適用可能である。
(3)上記実施形態においては、3組の初期パラメーターセットが用意される(図2の44p1~44p3)。しかし、あらかじめ用意されるパラメーターセットの数は、1組、2組、4組以上など、他の数であってもよい。
(4)上記実施形態においては、初期パラメーター44pは、コンピューターによる最適化処理によって、定められる(図2の下段左部参照)。しかし、初期パラメーターは、ロボットのパラメーターの設定について十分な経験を有する人間が行ってもよい。また、人間が設定した初期パラメーターを、後にコンピューターによる最適化処理によって、調整してもよい。さらに、コンピューターによる最適化処理によって設定された初期パラメーターを、後に、人間が調整してもよい。
(5)上記実施形態においては、図7のステップS203において、初期パラメーター630dを使用して対象動作をロボット3に実行させた場合の様々な指標の値が取得される。その際の実行回数は、1回であってもよいし、複数回であってもよい。実行回数が複数回である場合には、ステップS203で取得される指標は、実際に得られた指標の値の平均値、最良値、最悪値などとすることができる。
(6)上記実施形態においては、図7のステップS203,225において、実際にロボット3を、パラメーターセットを使用して動作させて、第1指標および第2指標の値を測定している。しかし、ロボットの残留振動を再現できるシミュレーターを使用してシミュレーションを行い、パラメーターセットによる制御の評価を行ってもよい。
(7)上記実施形態1においては、参考表示は、取得された指標の値に所定の係数を掛けて得られる値を、制約値の候補として示す(図11のR71~R73参照)。しかし、制約値の候補は、取得された指標の値に所定の量を加算または減算して得られる値など、他の方法で定められた値であってもよい。
(8)上記実施形態1においては、参考表示R71~R73は、ステップS203において初期パラメーター630dのうちの標準パラメーター630fについて取得された第2指標であるオーバーシュート量の値に基づく、表示である。しかし、参考表示は、初期パラメーターについて取得された第1指標の値に基づく表示とすることもできる。また、上記実施形態2で示すように、初期パラメーターについて取得された第1指標の値と第2指標の値の両方に基づく表示とすることもできる(図14のR74a~R76a,R74b~R76b、図15のR77,R78、図16~図18のR79参照)。
(9)上記実施形態1においては、表示L71~L73が表す動作モードは、第2指標であるオーバーシュート量について程度が異なる3個の条件情報の候補に対応する動作モードである(図11のR71~R73参照)。しかし、表示が対応する動作モードは、第1指標としての動作時間について程度が異なる複数の条件情報の候補に対応する動作モードであってもよい。また、表示が対応する動作モードは、第1指標と第2指標の両方について程度が異なる複数の条件情報の候補に対応する動作モードであってもよい(図14のR74a~R76a,R74b~R76b参照)。さらに、表示が対応する動作モードは、第1指標と第2指標の一方について程度が異なるが、他方については等しい、複数の条件情報の候補に対応する動作モードを含んでもよい。
(10)上記実施形態においては、上記実施形態1のステップS207においては、表示L71~L73によって、3個の動作モードが示される(図11参照)。しかし、図7のステップS207において示される動作モードの数は、1個、2個、4個以上など、他の数であってもよい。
(11)上記実施形態1,2,6においては、条件情報は、3個の動作モードの中から選択された一つの動作モードを表す情報である(図7のS209、ならびに図11のB73および図14のB74、図18のB81参照)。上記実施形態3~5においては、条件情報は、入力窓D73~D74に入力された、指標の上限である制約値である(図7のS209、ならびに図15のD71,D72、図16のD73、および図17のD74参照)。しかし、条件情報は、たとえば、第1指標および/または第2指標についてのユーザーが考える理想的な値など、対象動作を制御するためのパラメーターセットの最適化処理の条件を定める情報であって、第1指標と第2指標の少なくとも一方に関するものであればよい。ただし、条件情報は、最適化処理の目的とされる指標以外の指標に関するものであることが望ましい。
(12)上記実施形態においては、式(Eq4)におけるλは定数である。しかし、λは、最適化処理における繰り返しにおいて徐々に大きく設定されてもよい。そのような態様とすれば、より安定して解を得ることができる。
(13)上記実施形態のステップS220においては、CMA-ESにより、最適化処理が行われる(図7参照)。しかし、最適化処理は、他の方法で行われることもできる。
たとえば、ベイズ最適化アルゴリズムを用いて最適化処理を行うこともできる。ベイズ最適化は、m次元の入力xに応じて出力yを与えるブラックボックス関数が、ガウス過程(Gaussian Process:GP)に従うものと仮定して、出力yを最大化する入力xを探索する方法である。ブラックボックス関数がガウス過程に従うと仮定して処理を行うことにより、目的関数の観測値が他の分布に従うという仮定を置く態様に比べて、簡易な処理で、様々な目的関数に対して高度に適合する最適化を行うことができる。
たとえば、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個の点のそれぞれの目的関数の値に基づいて、定められる。このような処理を繰り返すことにより、最終的には、多面体が最適解に向かって移動し、かつ縮小する。
このような態様としても、パラメーターセットの設定の経験が十分にないユーザーであっても、初期パラメーターセット44p1~44p3を使用した場合の指標の値に基づく参考表示R71~R73に基づいて、ロボットのパラメーターセットを調整することができる(図11参照)。
(14)上記実施形態においては、オーバーシュート量O(x)についての制約の下で、T(x)を最小にするパラメーターセットを求める単目的最適化が行われる(上記(Eq4)および図7のS220参照)。しかし、たとえば、動作時間、オーバーシュート量、振動量、騒音レベル、推定寿命、トルク割合のうちの2以上を最適化の目的とする、多目的最適化を行って、パラメーターセットを決定してもよい。
そのような場合には、入力された条件情報に基づいて、探索範囲が定められることが好ましい。たとえば、探索範囲を定める指標の上限および下限の少なくとも一方は、取得された指標の値に所定の係数を掛けて得られる値とすることができる。探索範囲を定める指標の上限および下限の少なくとも一方は、取得された指標の値に所定の量を加算または減算して得られる値とすることができる。
(15)上記実施形態においては、図7のステップS220内の繰り返し処理の終了条件は、あらかじめ定められた回数だけステップS223~S225の処理が実行されたことである。しかし、最適化の繰り返し処理の終了条件は、他の条件でもよく、たとえば、あらかじめ定められた閾値よりも優れた目的関数の値を有する1以上の解が得られたこと、とすることもできる。
(16)上記実施形態1においては、図7のステップS250において、最適化処理によって得られた1組のパラメーターセットの動作時間OTおよびオーバーシュート量OSが示される(図13参照)。しかし、最適化処理の過程で得られた複数のパラメーターセットについて、第1指標および第2指標の一方または両方を提示し、複数のパラメーターセットの中から一つのパラメーターセットをユーザーに選択させる態様とすることもできる(図12の黒丸および白丸参照)。
(17)上記実施形態においては、最適化されるパラメーターは、垂直多関節型ロボットの動作を制御するためのパラメーターである(図1および図3参照)。しかし、最適化されるパラメーターは、水平多関節ロボット、直行ロボットなど他のロボットの動作を制御するためのパラメーターとすることもできる。たとえば、最適化されるパラメーターは、7個以上の作動軸を含むロボットの動作や、双腕ロボットなどの複腕ロボットの動作を制御するためのパラメーターとすることもできる。一般的に、7個以上の作動軸を含むロボットや、複腕ロボットは、他のロボットに比べて負荷が大きい。このため、そのようなロボットの動作を制御するためのパラメーターを最適化する場合には、目標関数に「ロボットが動作を行う際に要する駆動力」を含むことが望ましい。
G2.他の実施形態2:
上記実施形態2の図7のステップS203においては、初期パラメーターセット44p1~44p3を使用して動作をロボット3に実行させた場合の様々な指標の値が取得される。そして、図7のステップS207において、3組の初期パラメーターセット44p1~44p3について取得された動作時間OTの値およびオーバーシュート量OSの値に基づく参考表示R74a~R76a,R74b~R76bがディスプレイ602に表示される(図14参照)。
しかし、あらかじめ用意されている複数の初期パラメーターセットの一部のみを使用して、動作をロボット3に実行させ、様々な指標の値を取得してもよい。さらに、実施形態1のように、あらかじめ用意されている複数の初期パラメーターセットのうちの一組のみを使用して、動作をロボット3に実行させ、様々な指標の値を取得してもよい。
G3.他の実施形態3:
上記実施形態2の図7のステップS207において、CPU610は、3組の初期パラメーターセット44p1~44p3について取得された動作時間OTの値およびオーバーシュート量OSの値に基づく参考表示R74a~R76a,R74b~R76bをディスプレイ602に表示する。しかし、参考表示は、あらかじめ用意されており、ステップS203において動作の実行に使用された複数の初期パラメーターセットの一部についてのみ、表示されてもよい。
G4.他の実施形態4:
実施形態3においては、ステップS207における参考表示R77,R78は、ステップS203で3組の初期パラメーターセットによる動作について取得された動作時間およびオーバーシュート量のうち、動作時間の最良の値およびオーバーシュート量の最良の値のみに基づく表示である(図15参照)。しかし、参考表示は、各指標についての最良の値以外の表示を含んでもよい。たとえば、参考表示は、動作の実行またはシミュレーションによって取得された各指標の複数の値のうち、各指標についての最良の値の表示と最悪の値の表示とを含んでもよい。
G5.他の実施形態5:
第1実施形態において、動作モードの表示L71~L73は、3個の動作モードを表す。表示L71~L73が表す動作モードは、第2指標であるオーバーシュート量について程度が異なる3個の条件情報の候補に対応する動作モードである(図11)。しかし、初期パラメーターセットについて取得された指標の値に基づく参考表示を表示部に表示する工程は、実施形態3~実施形態5の参考表示R77~R79のように、条件情報の候補ではない情報の表示であってもよい(図15~図17参照)。
G6.他の実施形態6:
上記実施形態1の図7のステップS209においては、CPU610は、ユーザーインターフェイス画面I207のボタンB71~B73による、3個の動作モードの表示L71~L73の中からの選択を受け付けることにより、条件情報を受け付ける。しかし、条件情報の受付は、実施形態3~実施形態5の入力窓D71~D74を介する入力のように、動作モードの選択ではなく、数値の入力であってもよい。
G7.他の実施形態7:
上記実施形態1のステップS210においては、CPU610は、ステップS209で受け取った条件情報630bに基づいて、最適化処理の探索範囲と、探索に使用するパラメーターセットと、を決定する。しかし、探索に使用する初期解としてのパラメーターセットは、入力された条件情報に基づかずに定められてもよい。たとえば、探索に使用する初期解としてのパラメーターセットは、実施形態3のように、あらかじめ定められていてもよい。また、探索に使用する初期解としてのパラメーターセットは、実施形態4のように、ランダムに定められてもよい。
たとえば、最適化手法として、ベイズ最適化アルゴリズムを用いる場合には、解の質は初期解に左右されない。このため、探索に使用する初期解としてのパラメーターセットは、ランダムに定められてもよい。一方、CMA-ESやNelder-Mead法のように、解の質が初期解に左右される手法を用いて最適化処理を行う場合には、あらかじめ複数の動作について最適化処理が行われた初期パラメーターセットや、パラメーターセットの設定の経験がある人間によって定められた初期パラメーターセットを、初期解として使用することが好ましい。
H.さらに他の実施形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
(1)本開示の一形態によれば、ロボットのパラメーターセットの調整を支援する方法が提供される。この方法は、(a)前記ロボットの対象動作の軌跡を規定する軌跡情報を受け取る工程と、(b)前記対象動作を制御するためのパラメーターセットを調整するという指示に応じて、あらかじめ用意されている1以上の初期パラメーターセットについて、それぞれの初期パラメーターセットを使用して前記対象動作を前記ロボットに実行させた場合の、制御結果の評価指標の値を取得する工程と、(c)前記1以上の初期パラメーターセットについて取得された前記評価指標の値に基づく1以上の参考表示を表示部に表示する工程と、(d)前記パラメーターセットの最適化処理の条件を定める条件情報であって、前記評価指標についての条件情報の入力を受け取って、前記条件情報にしたがって、前記パラメーターセットの最適化処理を行い、新たなパラメーターセットの値を決定する工程と、を備える。
このような態様とすれば、ユーザーは、初期パラメーターセットを使用した場合の評価指標の値に基づく参考表示を見た上で、最適化処理において解が得られる程度の条件情報を入力することができる。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、ロボットのパラメーターセットを調整することができる。
(2)上記方法において、前記工程(b)が、あらかじめ用意されている2以上の初期パラメーターセットについて、それぞれの初期パラメーターセットを使用して前記対象動作を前記ロボットに実行させた場合の前記評価指標の値を取得する工程であり、前記工程(c)が、前記2以上の初期パラメーターセットについて取得された前記評価指標の値に基づく2以上の前記参考表示を前記表示部に表示する工程である、態様とすることもできる。
このような態様とすれば、ユーザーは、複数の初期パラメーターセットの評価指標の値に基づく参考表示を見た上で、評価指標についての条件情報を入力することができる。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、評価指標についての希望を反映させて、ロボットのパラメーターセットを調整することができる。
(3)上記方法において、前記2以上の前記参考表示が、前記工程(b)において前記対象動作の実行に使用されたすべての前記初期パラメーターセットについての参考表示である、態様とすることもできる。
このような態様とすれば、ユーザーは、すべての初期パラメーターセットの評価指標の値に基づく参考表示を見た上で、評価指標についての条件情報を入力することができる。このため、評価指標についての希望を反映させる際の自由度が高い。
(4)上記方法において、前記工程(c)における前記参考表示が、前記工程(b)で取得された前記評価指標の値のうち、最良の値のみに基づく表示である、態様とすることもできる。
このような態様とすれば、ユーザーは、初期パラメーターセットを使用した場合の評価指標の最良の値に基づく参考表示を見た上で、その評価指標についての条件情報を入力することができる。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、評価指標の現実的でかつ良い値を、評価指標についての条件情報として、入力することができる。また、評価指標の値のうち、最良の値以外の値に基づく参考表示はなされないため、表示部における参考表示を、ユーザーが把握しやすい。
(5)上記方法において、前記工程(c)が、前記条件情報の2以上の候補であって、前記評価指標の程度が異なる2以上の候補に関する2以上の動作モードの表示を前記表示部に表示する工程を含む、態様とすることもできる。
このような態様とすれば、取得された評価指標の値に基づく、現実的な複数の条件情報の候補を、ユーザーに提示することができる。
(6)上記方法において、前記工程(d)が、前記2以上の動作モードの表示の中からの選択を受け付けることにより、前記条件情報を受け付ける工程を含む、態様とすることもできる。
このような態様とすれば、ユーザーは、取得された評価指標の値に基づく、複数の条件情報の中から一つを選択することで、条件情報を入力することができる。このため、パラメーターセットの設定の経験が十分にないユーザーであっても、評価指標についての条件情報を入力することができる。
(7)上記方法において、前記工程(d)が、前記条件情報に基づいて、最適化処理の探索範囲と、前記最適化処理に使用する前記パラメーターセットと、を決定する工程と、前記探索範囲と、前記最適化処理に使用する前記パラメーターセットと、を使用して、前記パラメーターセットの最適化処理を行い、新たなパラメーターセットの値を決定する工程と、を含む、態様とすることもできる。
このような態様においては、受け取った条件情報に基づいて、最適化処理の探索範囲と、パラメーターセットの初期解とが決定される。このため、パラメーターセットの初期解がランダムに決定される態様に比べて、ユーザーの意向に沿ったパラメーターセットを、より短い時間で得ることができる。
(8)本開示の他の形態によれば、コンピューターに、ロボットのパラメーターセットの調整を支援させるためのプログラムが提供される。このプログラムは、(a)前記ロボットの対象動作の軌跡を規定する軌跡情報を受け取る機能と、(b)前記対象動作を制御するためのパラメーターセットを調整するという指示に応じて、あらかじめ用意されている1以上の初期パラメーターセットについて、それぞれの初期パラメーターセットを使用して前記対象動作を前記ロボットに実行させた場合の、制御結果の評価指標の値を取得する機能と、(c)前記1以上の初期パラメーターセットについて取得された前記評価指標の値に基づく1以上の参考表示を表示部に表示する機能と、(d)前記パラメーターセットの最適化処理の条件を定める条件情報であって、前記評価指標についての条件情報の入力を受け取って、前記条件情報にしたがって、前記パラメーターセットの最適化処理を行い、新たなパラメーターセットの値を決定する機能と、を前記コンピューターに実現させる。
(9)本開示の他の形態によれば、ロボットのパラメーターセットの調整を支援する情報処理装置が提供される。この情報処理装置は、(a)前記ロボットの対象動作の軌跡を規定する軌跡情報を受け取る軌跡受付部と、(b)前記対象動作を制御するためのパラメーターセットを調整するという指示に応じて、あらかじめ用意されている1以上の初期パラメーターセットについて、それぞれの初期パラメーターセットを使用して前記対象動作を前記ロボットに実行させた場合の、制御結果の評価指標の値を取得する初期評価部と、(c)前記1以上の初期パラメーターセットについて取得された前記評価指標の値に基づく1以上の参考表示を表示部に表示する表示制御部と、(d)前記パラメーターセットの最適化処理の条件を定める条件情報であって、前記評価指標についての条件情報の入力を受け取って、前記条件情報にしたがって、前記パラメーターセットの最適化処理を行い、新たなパラメーターセットの値を決定するパラメーター探索部と、を備える。
本開示は、上記以外の種々の形態で実現することも可能である。例えば、ロボットシステムの制御装置、その制御装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体等の形態で実現することができる。
A…アーム、A1~A6…アーム部材、Ast…基準目標加速度、At…目標加速度、B11~B15…ボタン、B51…ボタン、B52…ボタン、B71…ボタン、B72…ボタン、B73…ボタン、B74…ボタン、B75…ボタン、B76…ボタン、B77…ボタン、B78…ボタン、B81…ボタン、B82…ボタン、B83…ボタン、B91…ボタン、B92…ボタン、D11…選択窓、D12…選択窓、D71…入力窓、D72…入力窓、D73…入力窓、D74…入力窓、Da…回転角度、Dc…制御量、De…偏差、Dt…目標角度、E1~E6…エンコーダー、I…イナーシャ、I205…ユーザーインターフェイス画面、I207…ユーザーインターフェイス画面、I207b…ユーザーインターフェイス画面、I207c…ユーザーインターフェイス画面、I207d…ユーザーインターフェイス画面、I207e…ユーザーインターフェイス画面、I207f…ユーザーインターフェイス画面、I251…ユーザーインターフェイス画面、Imax…最大値、Imin…最小値、Ith…イナーシャの閾値、J1~J6…関節、Kpd…微分ゲイン、Kpi…積分ゲイン、Kpp…比例ゲイン、Kvd…微分ゲイン、Kvi…積分ゲイン、Kvp…比例ゲイン、L…位置、L71…表示、L72…表示、L73…表示、L74…表示、L75…表示、L76…表示、L81…参考表示、L81…表示、L82…表示、L83…表示、L91…表示、L92…表示、Lmax…オーバーシュート、Lpm…許容誤差、Lt…目標位置、M1~M6…モーター、OS…オーバーシュート量、OT…動作時間、R71…参考表示、R72…参考表示、R73…参考表示、R74a,74b…参考表示、R75a,75b…参考表示、R76a,76b…参考表示、R77…参考表示、R78…参考表示、R79…参考表示、R81…参考表示、R82…参考表示、R83…参考表示、Rt…周波数帯、S1…加速度センサー、T…基台、TCP…ツールセンターポイント、Ts…TCPの位置ずれがLpm未満となる時刻、U1…対応関係、U2…対応関係、V…速度、W…対象物、a0…制限最大加速度、a1…上限最大加速度、b…基準目標加速度の傾き、t1…時刻、t2…時刻、t3…時刻、t4…時刻、1…ロボット、2…ロボット、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…オーバーシュート量計測部、613c…振動量計測部、613d…騒音レベル計測部、613e…推定寿命計算部、613f…トルク割合計算部、614…表示制御部、615…軌跡受付部、617…条件受付部、630…RAM、630a…パラメーター、630b…条件情報、630c…ロボットプログラム、630d…初期パラメーター、630e…高速パラメーター、630f…標準パラメーター、630g…高精度パラメーター、640…ROM

Claims (9)

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

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020179522A JP2022070451A (ja) 2020-10-27 2020-10-27 ロボットのパラメーターセットの調整を支援する方法、プログラム、および情報処理装置
US17/509,100 US20220126440A1 (en) 2020-10-27 2021-10-25 Method of supporting adjustment of parameter set of robot, a non-transitory computer-readable storage medium, and information processing device
CN202111249961.2A CN114474039B (zh) 2020-10-27 2021-10-26 支持机器人的参数集的调整的方法以及信息处理装置

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
JP2022070451A true JP2022070451A (ja) 2022-05-13

Family

ID=81258989

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US20220126440A1 (ja)
JP (1) JP2022070451A (ja)
CN (1) CN114474039B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022065759A (ja) * 2020-10-16 2022-04-28 セイコーエプソン株式会社 ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置
US11712804B2 (en) 2021-03-29 2023-08-01 Samsung Electronics Co., Ltd. Systems and methods for adaptive robotic motion control
US11724390B2 (en) 2021-03-29 2023-08-15 Samsung Electronics Co., Ltd. Systems and methods for automated preloading of actuators
US11731279B2 (en) * 2021-04-13 2023-08-22 Samsung Electronics Co., Ltd. Systems and methods for automated tuning of robotics systems
CN116127631B (zh) * 2022-12-21 2023-10-03 西南交通大学 一种数据物理融合下的高速铁路轨道多目标精调方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2900360B1 (fr) * 2006-04-28 2008-06-20 Staubli Faverges Sca Procede et dispositif de reglage de parametres de fonctionnement d'un robot, programme et support d'enregistrement pour ce procede
WO2009141006A1 (en) * 2008-05-21 2009-11-26 Abb Technology Ab A method and a system for controlling an industrial robot in accordance with a set of motion control parameters
JP4962551B2 (ja) * 2009-10-20 2012-06-27 株式会社安川電機 ロボットシステムおよびロボットシステムの制御方法
EP2896487A1 (en) * 2012-09-04 2015-07-22 Kabushiki Kaisha Yaskawa Denki Method for adjusting robot control parameters, robot system, and robot control device
EP2818283A1 (en) * 2013-06-28 2014-12-31 Robotkonsult AB Method for robot calibration
JP6347595B2 (ja) * 2013-11-25 2018-06-27 キヤノン株式会社 ロボット制御方法、及びロボット制御装置
US10058995B1 (en) * 2016-07-08 2018-08-28 X Development Llc Operating multiple testing robots based on robot instructions and/or environmental parameters received in a request
CN106874616B (zh) * 2017-03-06 2021-04-20 北京经纬恒润科技股份有限公司 一种参数优化调整方法及系统
CN107253194B (zh) * 2017-07-31 2018-04-03 中南大学 一种运载机器人手臂操控多点映射智能控制方法及系统
JP6696627B2 (ja) * 2017-11-14 2020-05-20 三菱電機株式会社 ロボットの動作調整装置
JP7135408B2 (ja) * 2018-04-26 2022-09-13 セイコーエプソン株式会社 ロボット制御装置およびロボットシステム
JP2020013242A (ja) * 2018-07-17 2020-01-23 富士ゼロックス株式会社 ロボット制御システム、ロボット装置およびプログラム
JP6849643B2 (ja) * 2018-11-09 2021-03-24 ファナック株式会社 出力装置、制御装置、及び評価関数と機械学習結果の出力方法
JP6978452B2 (ja) * 2019-02-12 2021-12-08 ファナック株式会社 機械学習装置、制御装置、及び機械学習の探索範囲の設定方法

Also Published As

Publication number Publication date
CN114474039B (zh) 2023-06-06
US20220126440A1 (en) 2022-04-28
CN114474039A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
JP2022070451A (ja) ロボットのパラメーターセットの調整を支援する方法、プログラム、および情報処理装置
JP2018126798A (ja) 制御装置、ロボットおよびロボットシステム
JP2018126796A (ja) 制御装置、ロボットおよびロボットシステム
TW201830184A (zh) 控制裝置、機器人及機器人系統
JP2011088225A (ja) インピーダンス制御パラメータの調整装置および調整方法
CN112847235B (zh) 基于深度强化学习的机器人分阶力引导装配方法及系统
CN112666831A (zh) 一种机器人磨抛加工接触力的主动控制方法
CN112218744A (zh) 学习多足机器人的敏捷运动的系统和方法
CN116533249A (zh) 基于深度强化学习的机械臂控制方法
Mol et al. Nested compliant admittance control for robotic mechanical assembly of misaligned and tightly toleranced parts
CN114516060A (zh) 用于控制机器人装置的设备和方法
CN113043279B (zh) 手术机器人的控制方法、控制器、系统、电子设备与介质
Lee et al. Microscale precision control of a computer-assisted transoral laser microsurgery system
JP3369351B2 (ja) 多関節マニピュレータの弾性設定方法および制御装置
CN114248267B (zh) 参数显示方法、存储介质及信息处理装置
JP2019111604A (ja) 制御装置、ロボット、およびロボットシステム
JP2019113985A (ja) 最適化方法、制御装置、およびロボット
JP2022065759A (ja) ロボットのパラメーターセットを調整する方法、プログラム、および情報処理装置
CN116392253A (zh) 一种应用于手术机器人的主动摆位方法及系统
JPH0635525A (ja) ロボットアームの制御方法
JP2022039291A (ja) 動作パラメーターの調整方法、及び、ロボットシステム
JP2020121358A (ja) 学習制御装置、ロボット制御装置およびロボット
US20230001574A1 (en) Operation Parameter Adjusting Method And Operation Parameter Adjusting Device For Adjusting Operation Parameters Of Robot
CN116901063B (zh) 一种基于二次规划的冗余空间机械臂轨迹规划方法
JP2003178107A (ja) 産業用多関節ロボットの設計・解析支援装置及び設計・解析支援プログラム