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

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

▶ セイコーエプソン株式会社の特許一覧

特開2024-146960ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム
<>
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図1
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図2
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図3
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図4
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図5
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図6
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図7
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図8
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図9
  • 特開-ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024146960
(43)【公開日】2024-10-16
(54)【発明の名称】ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラム
(51)【国際特許分類】
   B25J 9/22 20060101AFI20241008BHJP
【FI】
B25J9/22 A
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023059689
(22)【出願日】2023-04-03
(71)【出願人】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】福泉 尊久
(72)【発明者】
【氏名】戸田 淳
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS06
3C707BS10
3C707BS15
3C707CV07
3C707CW07
3C707DS01
3C707KS33
3C707KS37
3C707KV01
3C707KX10
3C707LS20
3C707MT06
(57)【要約】
【課題】ロボットの力制御パラメーターを適切に調整できる技術を提供する。
【解決手段】本開示の方法は、(a)力制御動作のシミュレーターを用いて、力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、シミュレーションパラメーターを決定する工程と、(b)シミュレーションパラメーターが設定されたシミュレーターを用いて力制御パラメーターに関する第2最適化処理を実行することによって、力制御パラメーターの1つ以上の候補値を含む候補値群を決定する工程と、(c)候補値群から力制御パラメーターの実候補値を決定するとともに、実候補値が設定されたロボットの実機を用いて力制御パラメーターに関する第3最適化処理を実行することによって、力制御パラメーターを決定する工程と、を含む。
【選択図】図6
【特許請求の範囲】
【請求項1】
ロボットの力制御動作のための力制御パラメーターを調整する方法であって、
(a)前記力制御動作のシミュレーターを用いて、前記力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、前記シミュレーションパラメーターを決定する工程と、
(b)前記シミュレーションパラメーターが設定された前記シミュレーターを用いて前記力制御パラメーターに関する第2最適化処理を実行することによって、前記力制御パラメーターの1つ以上の候補値を含む候補値群を決定する工程と、
(c)前記候補値群から前記力制御パラメーターの実候補値を決定するとともに、前記実候補値が設定された前記ロボットの実機を用いて前記力制御パラメーターに関する第3最適化処理を実行することによって、前記力制御パラメーターを決定する工程と、
を含む方法。
【請求項2】
請求項1に記載の方法であって、更に、
前記ロボットを用いて実行された前記力制御動作に関する実機動作データを取得する工程を含み、
前記第1最適化処理は、前記実機動作データと前記シミュレーターによるシミュレーション結果との類似度を表す評価関数を用いて実行される、方法。
【請求項3】
請求項1に記載の方法であって、
前記ワークの物理的特性は、摩擦係数と剛性率の少なくとも一方を含む、方法。
【請求項4】
ロボットシステムであって、
ロボットと、
前記ロボットの力制御動作のシミュレーションを行うシミュレーターと、
前記力制御動作のための力制御パラメーターを調整する処理を実行するパラメーター調整部と、
を備え、
前記パラメーター調整部は、
(a)前記シミュレーターを用いて、前記力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、前記シミュレーションパラメーターを決定する処理と、
(b)前記シミュレーションパラメーターが設定された前記シミュレーターを用いて前記力制御パラメーターに関する第2最適化処理を実行することによって、前記力制御パラメーターの1つ以上の候補値を含む候補値群を決定する処理と、
(c)前記候補値群から前記力制御パラメーターの実候補値を決定するとともに、前記実候補値が設定された前記ロボットの実機を用いて前記力制御パラメーターに関する第3最適化処理を実行することによって、前記力制御パラメーターを決定する処理と、
を実行する、ロボットシステム。
【請求項5】
ロボットの力制御動作のための力制御パラメーターを調整する処理をプロセッサーに実行させるコンピュータープログラムであって、
(a)前記力制御動作のシミュレーターを用いて、前記力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、前記シミュレーションパラメーターを決定する処理と、
(b)前記シミュレーションパラメーターが設定された前記シミュレーターを用いて前記力制御パラメーターに関する第2最適化処理を実行することによって、前記力制御パラメーターの1つ以上の候補値を含む候補値群を決定する処理と、
(c)前記候補値群から前記力制御パラメーターの実候補値を決定するとともに、前記実候補値が設定された前記ロボットの実機を用いて前記力制御パラメーターに関する第3最適化処理を実行することによって、前記力制御パラメーターを決定する処理と、
を前記プロセッサーに実行させる、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットの力制御動作のための力制御パラメーターを調整する方法、ロボットシステム、及び、コンピュータープログラムに関する。
【背景技術】
【0002】
特許文献1には、ロボットや工作機械などを制御対象とするモデルを調整する技術が開示されている。この従来技術は、制御対象のシミュレーション動作データと実機動作データを比較してモデルを調整する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2020-3893号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、シミュレーションによってロボットの力制御パラメーターを調整する際には、ワークなどの物理的特性に関するパラメーターによる影響を考慮すべきである。即ち、ワークなどの物理的特性に関するパラメーターが適切に調整されていなければ、接触時の力やトルクの再現ができないため、シミュレーション環境下では力制御パラメーターの調整が困難であるという問題があった。
【課題を解決するための手段】
【0005】
本開示の第1の形態によれば、ロボットの力制御動作のための力制御パラメーターを調整する方法が提供される。この方法は、(a)前記力制御動作のシミュレーターを用いて、前記力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、前記シミュレーションパラメーターを決定する工程と、(b)前記シミュレーションパラメーターが設定された前記シミュレーターを用いて前記力制御パラメーターに関する第2最適化処理を実行することによって、前記力制御パラメーターの1つ以上の候補値を含む候補値群を決定する工程と、(c)前記候補値群から前記力制御パラメーターの実候補値を決定するとともに、前記実候補値が設定された前記ロボットの実機を用いて前記力制御パラメーターに関する第3最適化処理を実行することによって、前記力制御パラメーターを決定する工程と、を含む。
【0006】
本開示の第2の形態によれば、ロボットシステムが提供される。このロボットシステムは、ロボットと、前記ロボットの力制御動作のシミュレーションを行うシミュレーターと、前記力制御動作のための力制御パラメーターを調整する処理を実行するパラメーター調整部と、を備える。前記パラメーター調整部は、(a)前記シミュレーターを用いて、前記力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、前記シミュレーションパラメーターを決定する処理と、(b)前記シミュレーションパラメーターが設定された前記シミュレーターを用いて前記力制御パラメーターに関する第2最適化処理を実行することによって、前記力制御パラメーターの1つ以上の候補値を含む候補値群を決定する処理と、(c)前記候補値群から前記力制御パラメーターの実候補値を決定するとともに、前記実候補値が設定された前記ロボットの実機を用いて前記力制御パラメーターに関する第3最適化処理を実行することによって、前記力制御パラメーターを決定する処理と、を実行する。
【0007】
本開示の第3の形態によれば、ロボットの力制御動作のための力制御パラメーターを調整する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)前記力制御動作のシミュレーターを用いて、前記力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、前記シミュレーションパラメーターを決定する処理と、(b)前記シミュレーションパラメーターが設定された前記シミュレーターを用いて前記力制御パラメーターに関する第2最適化処理を実行することによって、前記力制御パラメーターの1つ以上の候補値を含む候補値群を決定する処理と、(c)前記候補値群から前記力制御パラメーターの実候補値を決定するとともに、前記実候補値が設定された前記ロボットの実機を用いて前記力制御パラメーターに関する第3最適化処理を実行することによって、前記力制御パラメーターを決定する処理と、を前記プロセッサーに実行させる。
【図面の簡単な説明】
【0008】
図1】実施形態におけるロボットシステムの構成を示す説明図。
図2】情報処理装置の機能ブロック図。
図3】力制御動作の一例を示す説明図。
図4】力制御動作における時系列データの一例を示すグラフ。
図5】力制御動作における時系列データの他の例を示すグラフ。
図6】力制御パラメーターの調整処理の全体手順を示すフローチャート。
図7】シミュレーションパラメーターに関する第1最適化処理の手順を示すフローチャート。
図8】力制御パラメーターに関する第2最適化処理の手順を示すフローチャート。
図9】力制御パラメーターに関する第3最適化処理の手順を示すフローチャート。
図10】力制御パラメーターの候補値に関する探索範囲の変化例を示す説明図。
【発明を実施するための形態】
【0009】
図1は、一実施形態におけるロボットシステムの一例を示す説明図である。このロボットシステムは、ロボット100と、ロボット100を制御する制御装置200と、情報処理装置300と、を備える。ロボット100は、架台500上に設置されている。情報処理装置300は、例えばパーソナルコンピューターである。
【0010】
ロボット100は、基台110と、ロボットアーム120とを備えている。ロボットアーム120は、4つの関節J1~J4で順次接続されている。ロボットアーム120の先端部には、力センサー410と、エンドエフェクター150が装着されている。ロボットアーム120の先端近傍には、ロボット100の制御点としてのTCP(Tool Center Point)が設定されている。本実施形態では、4つの関節J1~J4を有する4軸ロボットを例示しているが、複数の関節を有する任意のアーム機構を有するロボットを用いることが可能である。また、本実施形態のロボット100は、水平多関節ロボットであるが、垂直多関節ロボットを使用してもよい。
【0011】
力センサー410は、エンドエフェクター150に掛かる力を検出するセンサーである。力センサー410としては、単軸方向の力を検出可能なロードセルや、複数の軸方向の力成分を検出可能な力覚センサーやトルクセンサーを利用可能である。本実施形態では、力センサー410として、6軸の力覚センサーを用いている。6軸の力覚センサーは、固有のセンサー座標系において互いに直交する3個の検出軸に平行な力の大きさと、3個の検出軸まわりのトルクの大きさとを検出する。なお、力センサー410は、エンドエフェクター150の位置以外の位置に設けるようにしてもよく、例えば、関節J1~J4のうちの1つ以上の関節に設けるようにしてもよい。
【0012】
図2は、実施形態における情報処理装置300の機能を示すブロック図である。情報処理装置300は、例えばパーソナルコンピューターなどの情報処理装置として実現可能である。情報処理装置300は、プロセッサー310と、メモリー320と、インターフェイス回路330と、インターフェイス回路330に接続された入力デバイス340及び表示デバイス350と、を有している。インターフェイス回路330には、更に、制御装置200が接続されている。ロボット100のセンサー類400の計測結果は、制御装置200を介して情報処理装置300に供給される。
【0013】
センサー類(sensors)400は、図1で説明した力センサー410の他に、ロボット100の各関節に設けられたモーターの電流を測定する電流センサー420と、各関節の動作位置を検出する関節エンコーダー430とを含んでいる。センサー類400は、後述する最適化処理の評価関数を求めるために利用することができる。
【0014】
プロセッサー310は、ロボット100の力制御動作のシミュレーションを行うシミュレーター370と、ロボット100の力制御パラメーターを調整するパラメーター調整部380の機能を有する。
【0015】
シミュレーター370は、ロボット模擬部374と、制御装置模擬部375とを含んでいる。ロボット模擬部374は、力センサー模擬部371と電流センサー模擬部372と関節エンコーダー模擬部373とを含んでいる。ロボット模擬部374は、更に、ロボット100の機械的構造を模擬するように構成されている。
【0016】
パラメーター調整部380は、動作実行部381と、パラメーター探索部382と、評価関数算出部383の機能を含む。動作実行部381は、ロボット制御プログラムに従ってロボット100に作業を実行させる。パラメーター探索部382は、最適化処理によってシミュレーションパラメーターやロボット100の力制御パラメーターの候補値を探索する処理を実行する。評価関数算出部383は、最適化処理に用いる評価関数を算出する。
【0017】
シミュレーター370とパラメーター調整部380の機能は、メモリー320に格納されたコンピュータープログラムをプロセッサー310が実行することによって実現される。但し、シミュレーター370とパラメーター調整部380の機能の一部又は全部をハードウェア回路で実現してもよい。また、シミュレーター370は、情報処理装置300と異なる装置で実現されていてもよい。
【0018】
メモリー320には、パラメーター初期値IPと、動作終了条件TCと、ロボット制御プログラムRPが格納される。パラメーター初期値IPは、最適化処理の探索対象であるシミュレーションパラメーターと力制御パラメーターの初期値である。パラメーター調整条件ACは、力制御パラメーターの調整の際に使用する条件である。パラメーター調整条件は、例えば、力制御動作の動作終了条件や、最適化処理における探索範囲と評価関数とを含んでいる。力制御動作の動作終了条件は、シミュレーター370や実機のロボット100に力制御動作を試行させたときに、その動作を終了させる条件である。動作終了条件の例については後述する。ロボット制御プログラムRPは、ロボット100を動作させる複数の命令で構成される。
【0019】
図1に示すロボット100は、例えば、以下のような各種の力制御動作を実行可能である。
(1)接触:第1ワークW1が第2ワークW2に接触したことを検出したら停止する。
(2)面合わせ:第1ワークW1の下面を第2ワークW2の上面に合わせる。
(3)探り:第1ワークW1を移動させて、他のワークに設けられた穴や段差の位置で停止させる。
(4)倣い:第1ワークW1を他のワークの凹凸のある表面に沿って動かす。
(5)押し付け:第1ワークW1を所望の力で他のワークに押し付ける。
本実施形態において、ロボット100は、力制御動作として、第1ワークW1と第2ワークW2の面合わせ動作を実行する。
【0020】
図3は、面合わせ動作の様子を示す説明図である。この図には、力センサー410の座標系を構成するX軸とY軸とZ軸が描かれている。面合わせ動作は、第1ワークW1の下面を第2ワークW2の上面にぴったりと接触させる動作である。すなわち、まず、第2ワークW2の上方の待機位置においてエンドエフェクター150で第1ワークW1を把持した状態から第1ワークW1を下降させ、第1ワークW1が第2ワークW2の上面に接触すると、第1ワークW1を旋回させて第1ワークW1の下面を第2ワークW2の上面にぴったりと接触させて第1ワークW1を停止させる。この旋回の際には、力センサー410で検出されるZ方向の力を許容範囲内に維持しつつ、回転方向のトルクがゼロになるまで第1ワークW1を旋回させる力制御が実行される。図3の例では、「回転方向のトルク」はX軸回りのトルクである。
【0021】
力制御動作の動作終了条件は、例えば、以下の成功条件SCと失敗条件FCとを含むように設定することができる。
<動作終了条件TC>
(1)成功条件SC
以下の制約条件CC1~CC3が継続時間δtに亘って同時に成立した場合に、動作が成功したものとして動作を終了する。
・Z軸方向の力Fzに関する制約条件CC1:FL≦Fz≦FU
・X軸回りのトルクTxに関する制約条件CC2:-Te≦Tx≦+Te
・Y軸回りのトルクTyに関する制約条件CC3:-Te≦Ty≦+Te
ここで、FL及びFUは、力Fzの許容範囲を規定する上限値及び下限値、TeはトルクTx,Tyのゼロに近い許容範囲を規定する許容値である。
(2)失敗条件FC
成功条件SCが成立せずに、動作開始から動作上限時間Tmaxが経過した場合には、動作が失敗したと見なして動作を終了する。
【0022】
図4は、力制御動作で得られる特性値の時系列データの一例を示すグラフである。この時系列データは、面合わせ動作の成功例のデータであり、Z軸方向の力FzとX軸回りのトルクTxの時間変化を示している。Y軸回りのトルクTyは図示が省略されているが、図3の動作ではトルクTyはほぼゼロである。力Fzの下限値FLと上限値FUは、第1ワークW1が第2ワークW2の表面にしっかりと接触していることを示す力Fzの許容範囲を規定する。これらの値FL,FUの絶対値は、例えば、5N~20Nの範囲の値にそれぞれ設定される。トルクTxの許容範囲を規定する許容値Teは、トルクTxがほぼゼロに近い範囲にあると見なせる程度に小さな値である。この許容値Teは、例えば、20Nmm~80Nmmの範囲の値に設定される。図4の例では、時刻t0で面合わせ動作が開始され、時刻t1で第1ワークW1が第2ワークW2に接触し、時刻t2で制約条件CC1~CC3がすべて成立する。その後、継続時間δtに亘って制約条件CC1~CC3が維持されているので、時刻t3で成功条件SCが成立して、面合わせ動作が終了している。時刻t0から時刻t3までの時間を、「力制御動作の動作時間」と呼ぶ。
【0023】
図5は、力制御動作で得られる特性値の時系列データの他の例を示すグラフである。この時系列データは、面合わせ動作の失敗例のデータである。すなわち、時刻t10で面合わせ動作が開始され、時刻t11で第1ワークW1が第2ワークW2に接触し、時刻t12で制約条件CC1~CC3が一旦すべて成立する。しかし、その後はトルクTxが大きく変化してしまうので、継続時間δtに亘って制約条件CC1~CC3が同時に成立することがなく、時刻t14で動作上限時間Tmaxが経過する。この結果、時刻t14で失敗条件FCが成立して、面合わせ動作が終了している。すなわち、面合わせ動作は、タイムアウトにより終了している。この例では、時刻t10から時刻t14までの時間が、「力制御動作の動作時間」に相当する。
【0024】
上述した動作終了条件は一例であり、力制御動作の種類に適した動作終了条件が設定される。一般に、力制御動作の動作終了条件は、以下のうちの少なくとも1つの条件を含むものとして設定することが可能である。
(i)力制御に関する制約条件
(ii)制御点TCPの位置に関する制約条件
(iii)継続時間に関する条件
(iv)動作上限時間に関する条件
これらの条件のうち、(i)力制御に関する制約条件と、(ii)制御点TCPの位置に関する制約条件は、それぞれ区間として設定される。上述した面合わせ動作のための動作終了条件の例では、制約条件CC1~CC3が「(i)力制御に関する条件」に相当し、継続時間δtが「(iii)継続時間に関する条件」に相当し、動作上限時間Tmaxが「(iv)動作上限時間に関する条件」に相当する。シミュレーター370や実機のロボット100による力制御動作により得られる時系列データは、動作終了条件に含まれる力や位置に関するデータを含むように作成される。
【0025】
図6は、力制御パラメーターの調整処理の手順を示すフローチャートである。ステップS10では、動作実行部381が、実機のロボット100とワークW1,W2を用いて力制御動作を実行し、実機動作データを取得する。実機動作データは、成功条件SCが成立した場合について作成することが好ましい。
【0026】
ステップS20では、パラメーター調整部380が、シミュレーター370の動作環境をユーザーから受け付けてシミュレーター370に設定する。シミュレーター370の動作環境は、ロボット100の種類及び配置と、ワークW1,W2の形状、重量及び配置と、を含んでおり、製造現場と同じ環境を表すように設定される。
【0027】
ステップS30では、パラメーター調整部380が、パラメーター調整条件ACをユーザーから受け付ける。パラメーター調整条件ACは、力制御パラメーターの調整の際に使用する条件であり、上述した動作終了条件と、最適化処理における探索範囲と、評価関数の計算式とを含む。
【0028】
ステップS40では、パラメーター調整部380が、シミュレーションパラメーターの初期候補値をユーザーから受け付けてシミュレーター370に設定する。以下では、シミュレーションパラメーターを「SIMパラメーター」と呼ぶ。SIMパラメーターは、シミュレーション結果を実機動作データに近づけるために調整対象となるパラメーターであり、ワークW1,W2の物理的特性を含んでいる。ワークの物理的特性は、例えば、ワーク同士の摩擦係数と、個々のワークの剛性率と、のうちの少なくとも一方を含むことが好ましい。SIMパラメーターに含まれるワークの物理的特性は、次のステップS50で調整されるので、重量や形状などのように正確に測定可能な特性ではなく、摩擦係数や剛性率のように正確に測定することが難しい特性であることが好ましい。SIMパラメーターは、更に、ロボット100の各制御軸のPID制御ゲインを含むことが好ましい。こうすれば、振動の発生をうまく模擬するようにSIMパラメーターを調整できる。
【0029】
SIMパラメーターの初期候補値は、パラメーター調整条件ACの一部としてステップS30で受け付けるようにしてもよい。また、SIMパラメーターの初期候補値の一部又は全部を、予め設定されたデフォールト値としてもよく、或いは、ランダムに選択された値に決定してもよい。
【0030】
ステップS50では、パラメーター探索部382が、シミュレーター370を用いて、SIMパラメーターに関する第1最適化処理を実行することによって、SIMパラメーターを決定する。ステップS50の詳細手順については後述する。
【0031】
ステップS60では、パラメーター探索部382が、シミュレーター370を用いて力制御パラメーターに関する第2最適化処理を実行することによって、力制御パラメーターの1つ以上の候補値を含む候補値群を決定する。この際、シミュレーター370には、ステップS50で決定されたSIMパラメーターが設定される。力制御パラメーターとしては、例えば、インピーダンス制御における各制御軸に対する目標力、仮想質量係数、仮想粘性係数、及び、仮想弾性係数の中の1つ以上の項目を選択することができる。本開示では、1組の力制御パラメーターを、単に「1つの力制御パラメーター」とも呼ぶ。例えば、仮想質量係数と仮想粘性係数と仮想弾性係数の3つの値で1組の力制御パラメーターが構成される場合には、これらの3つの値が「1つの力制御パラメーター」に相当する。
【0032】
力制御の方法としては、インピーダンス制御に限らず、剛性制御、ダンピング制御などの位置制御ベースの力制御、あるいは、Active Stiffness Controlなどのトルク制御ベースの力制御などを利用可能である。これらの制御には、それぞれ異なる種類の力制御パラメーターが使用される。ステップS60の詳細手順については後述する。
【0033】
ステップS70では、パラメーター探索部382が、実機のロボット100を用いて力制御パラメーターに関する第3最適化処理を実行することによって、力制御パラメーターを決定する。この際、ステップS60で決定された力制御パラメーターの候補値群から力制御パラメーターの実候補値が決定され、その実候補値がロボット100や制御装置200に設定される。ステップS70の詳細手順については後述する。
【0034】
なお、ステップS50,S60,70における最適化処理としては、例えば、ランダムサーチや、遺伝的アルゴリズム、ベイズ最適化、CMA-ES(Covariance Matrix Adaptation Evolution Strategy)などの最適化アルゴリズムを用いて実行される。本実施形態では、CMA-ESを使用する。最適化処理で使用される評価関数又は目的関数については後述する。
【0035】
図7は、SIMパラメーターに関する第1最適化処理の手順を示すフローチャートである。ステップS51では、パラメーター探索部382が、SIMパラメーターの候補値をシミュレーター370に設定する。図7のルーチンが最初に実行される場合には、ステップS40においてSIMパラメーターの初期候補値が既に設定されているので、ステップS51はスキップされる。
【0036】
ステップS52では、ステップS20で設定されたシミュレーター370の動作環境や、ステップS30で設定されたパラメーター調整条件の下で、シミュレーター370が力制御動作のシミュレーションを実行する。また、シミュレーションの動作を表す時系列データが、シミュレーション結果として取得される。シミュレーション結果は、力センサー模擬部371で検出される力及びトルクと、ロボット模擬部374の特定位置の位置・姿勢とを含んでいる。
【0037】
ステップS53では、評価関数算出部383が、第1最適化処理の評価関数である第1評価関数を算出する。評価関数を「目的関数」とも呼ぶ。第1評価関数としては、ステップS10で取得した実機動作データと、ステップS52で得られたシミュレーション結果との類似度を表す値を使用することができる。この類似度としては、実機動作データとシミュレーション結果における力変化の距離の逆数に相関があるものを使用することが可能である。例えば、第1評価関数E1は次式で算出される。
E1 = Si = 1/(1+Dis) …(q1)
ここで、Siは実機動作データとシミュレーション結果の類似度、Disは実機動作データとシミュレーション結果における力変化の距離である。
【0038】
実機動作データとシミュレーション結果における力変化の距離Disとしては、例えば、ユークリッド距離やフーリエ変換距離、DTW(Dynamic Time Warping)距離などの様々な手法で算出される距離を使用することが可能である。「力変化」とは、力の時系列データを意味する。「力」としては、力センサー410で測定可能な力とトルクのうちで、その力制御動作で監視対象となるものが使用される。例えば、図4で説明した力制御動作では、力FzとトルクTx, Tyが距離Disの算出に使用される。但し、力センサー410で測定可能な力とトルクのすべてを距離Disの算出に使用してもよい。上記(q1)式で算出される第1評価関数E1は、0~1の範囲の値を取る。なお、距離Disの逆数1/Disを類似度Siとしてもよい。
【0039】
第1評価関数E1は、上記(q1)式の代わりに、次式で算出してもよい。
E1 = 1/(1+C1×Dis + C2×δFmax + C3×δTmax + C4×δPmax) …(q2)
ここで、C1~C4はそれぞれ正の係数、δFmaxは実機動作データとシミュレーション結果における最大力の差分、δTmaxは実機動作データとシミュレーション結果における最大トルクの差分、δPmaxは実機動作データとシミュレーション結果における位置・姿勢の差分の最大値である。「位置・姿勢の差分」は、例えば、位置・姿勢を表す6次元ベクトルのユークリッド距離である。
【0040】
上記(q2)式で与えられる第1評価関数E1は、力変化の距離Disの逆数と、最大力の差分δFmaxの逆数と、最大トルクの差分δTmaxの逆数と、位置・姿勢の差分の最大値δPmaxの逆数と、に相関のある値である。このような第1評価関数E1を使用すれば、第1最適化処理によって、より精度よく実機の環境を再現するSIMパラメーターを決定することができる。
【0041】
ステップS54では、パラメーター探索部382が、第1最適化処理に関する第1終了条件が成立したか否かを判定する。第1終了条件としては、例えば、第1評価関数E1が予め設定された第1目標値以下になっている、という条件を用いることができる。或いは、第1評価関数E1が第1目標値以下になったSIMパラメーターの数が、予め設定された最小数以上に達した、という条件を用いても良い。第1終了条件が成立していない場合には、ステップS55に進み、CMA-ESのアルゴリズムに従ってSIMパラメーターの世代が更新される。CMA-ES以外の最適化アルゴリズムが使用される場合には、ステップS55においてSIMパラメーターの次の候補値が決定されるようにしてもよい。ステップS55の処理後は、ステップS51に戻り、ステップS51~S54が再度実行される。
【0042】
一方、第1終了条件が成立した場合には、ステップS56に進み、パラメーター探索部382が、第1評価関数E1が上位である複数の解の中から最適なSIMパラメーターを1つ決定する。ここで、「解」とは、第1最適化処理で使用されたSIMパラメーターのうち、成功条件SCを満たしたものを意味する。最適なSIMパラメーターとしては、第1評価関数E1が上位である複数の解のうち、第1評価関数E1が最上位の解や、第1評価関数E1が中央値である解などを選択することが可能である。本実施形態では、第1評価関数E1が最上位である解が、最適なSIMパラメーターとして決定される。こうして、図7の処理が終了すると、図6のステップS60における第2最適化処理が実行される。第2最適化処理では、ステップS50で決定された最適なSIMパラメーターが使用される。
【0043】
図8は、力制御パラメーターに関する第2最適化処理の手順を示すフローチャートである。ステップS61では、パラメーター探索部382が、力制御パラメーターの仮候補値を決定してシミュレーター370に設定する。仮候補値の初期値は、図6のステップS30においてパラメーター調整条件として受け付けられている。また、ステップS61が2回目以降に実行される場合には、第2最適化処理における最適化アルゴリズムに従って仮候補値が決定される。本実施形態では、第2最適化処理における最適化アルゴリズムとしてCMA-ESを使用する。なお、「仮候補値」という語句は、第2最適化処理における力制御パラメーターの候補値であることを意味する。
【0044】
ステップS62では、シミュレーター370が、力制御パラメーターの仮候補値を用いて力制御動作のシミュレーションを実行する。この結果、シミュレーションの動作を表す時系列データが、シミュレーション結果として取得される。
【0045】
ステップS63では、評価関数算出部383が、第2最適化処理の評価関数である第2評価関数を算出する。第2評価関数としては、力制御動作の動作時間を含むものを使用することが好ましい。第2評価関数E2は、例えば次式で与えられる。
E2 = t + k1×ΔFz +k2×ΔTx + k3×ΔTy …(q3)
ここで、tは力制御動作の動作時間、k1~k3は0以上の係数、ΔFz,ΔTx,ΔTyは動作終了時刻における力の制約条件CC1~CC3からの逸脱量である。動作時間tは、動作開始時刻から動作終了時刻までの時間である。なお、k1~k3をすべてゼロとしてもよい。
【0046】
上記(q3)式の右辺第2項~第4項は、力の制約条件CC1~CC3からの逸脱量に応じたペナルティである。力制御動作が成功した場合には、力の制約条件CC1~CC3からの逸脱量はゼロなので、3つのペナルティ項はゼロである。一方、力制御動作が失敗した場合には、3つのペナルティ項のうちの1つ以上が正の値となる。第2最適化処理では、第2評価関数E2を減少させるように力制御パラメーターの候補値が探索される。上記(q3)式以外の式を用いて第2評価関数E2を求めるようにしてもよい。この場合にも、力の制約条件からの逸脱量に応じてペナルティが増加するように第2評価関数E2の式を設定することが好ましい。
【0047】
ステップS64では、パラメーター探索部382が、第2最適化処理に関する第2終了条件が成立したか否かを判定する。第2終了条件としては、例えば、第2評価関数E2が予め設定された第2目標値以下になっている、という条件を用いることができる。或いは、第2評価関数E2が第2目標値以下になった力制御パラメーターの数が、予め設定された最小数以上に達した、という条件を用いても良い。第2終了条件が成立していない場合には、ステップS65に進み、CMA-ESのアルゴリズムに従って力制御パラメーターの仮候補値の世代が更新される。CMA-ES以外の最適化アルゴリズムが使用される場合には、ステップS65において力制御パラメーターの次の仮候補値が決定されるようにしてもよい。ステップS65の処理後は、ステップS61に戻り、ステップS61~S64が再度実行される。
【0048】
一方、第2終了条件が成立した場合には、ステップS66に進み、パラメーター探索部382が、第2評価関数E2が上位である複数の解の中から力制御パラメーターの1つ以上の候補値を含む候補値群を決定する。ここで、「解」とは、第2最適化処理で使用された力制御パラメーターのうち、成功条件SCを満たしたものを意味する。候補値群は、第2評価関数E2が上位である複数の解で構成してもよい。また、候補値群を、第2評価関数E2が最上位の1つの解のみで構成してもよく、或いは、第2評価関数E2が中央値である1つの解のみで構成してもよい。こうして、図8の処理が終了すると、図6のステップS70における第3最適化処理が実行される。
【0049】
図9は、力制御パラメーターに関する第3最適化処理の手順を示すフローチャートである。ステップS71では、パラメーター探索部382が、力制御パラメーターの実候補値を決定して、ロボット100の制御装置200に設定する。「実候補値」という語句は、第3最適化処理における力制御パラメーターの候補値であることを意味する。実候補値の初期値と初期探索範囲は、図8のステップS66で決定された候補値群を用いてユーザーが設定してもよい。或いは、図8のステップS66で決定された候補値群を用い、第3最適化処理における最適化アルゴリズムに従って実候補値の初期値と初期探索範囲を決定してもよい。本実施形態では、第3最適化処理における最適化アルゴリズムとしてWS-CMA-ES (Warm Starting CMA-ES)を使用する。
【0050】
図10は、力制御パラメーターの候補値に関する探索範囲の変化例を示す説明図である。ここでは、第2最適化処理における最適化アルゴリズムとしてCMA-ESを使用し、第3最適化処理における最適化アルゴリズムとしてWS-CMA-ESを使用する場合を想定している。図10の上側の図は、図8のステップS66で決定された候補値群の範囲を示している。ここでは、1組の力制御パラメーターが2つのパラメーター値CP1, CP2で構成されるものと仮定している。黒丸は力制御パラメーターの候補値(CP1, CP2)を示し、実線は候補値群を包含する範囲を示している。図10の下側の図における破線は、図9の第3最適化処理で使用される初期探索範囲を示している。WS-CMA-ESでは、実線で表される候補値群の範囲を一定の幅αで拡張した範囲が初期探索範囲として使用される。このように、シミュレーター370を用いた第2最適化処理によって得られた候補値群を活用すれば、実機を用いた第3最適化処理における試行回数を減少させることが可能となる。
【0051】
ステップS72では、動作実行部381が、力制御パラメーターの実候補値を用いて、実機のロボット100に力制御動作を試行させる。力制御動作中には、力センサー410を含むセンサー類400の測定値が時系列データとして取得される。
【0052】
ステップS73では、パラメーター探索部382が、第3最適化処理の評価関数である第3評価関数を算出する。第3評価関数としては、第2最適化処理で使用された第2評価関数と同じものを用いることが可能である。但し、第3評価関数として第2評価関数と異なるものを使用してもよい。この場合にも、第3評価関数として、力制御動作の動作時間を含むものを使用することが好ましい。
【0053】
ステップS74では、パラメーター探索部382が、第3最適化処理に関する第3終了条件が成立したか否かを判定する。第3終了条件としては、例えば、第3評価関数が予め設定された第3目標値以下になっている、という条件を用いることができる。或いは、第3評価関数が第3目標値以下になった力制御パラメーターの数が、予め設定された最小数以上に達した、という条件を用いても良い。第3終了条件が成立していない場合には、ステップS75に進み、WS-CMA-ESのアルゴリズムに従って力制御パラメーターの実候補値の世代が更新される。WS-CMA-ESやCMA-ES以外の最適化アルゴリズムが使用される場合には、ステップS75において力制御パラメーターの次の実候補値が決定されるようにしてもよい。ステップS75の処理後は、ステップS71に戻り、ステップS71~S74が再度実行される。
【0054】
一方、第3終了条件が成立した場合には、ステップS76に進み、パラメーター探索部382が、第3評価関数が上位である複数の解の中から最適な力制御パラメーターを1つ以上決定して、ユーザーに提示する。ここで、「解」とは、第3最適化処理で使用された力制御パラメーターのうち、成功条件SCを満たしたものを意味する。最適な力制御パラメーターとしては、第3評価関数が上位である複数の解のうち、第3評価関数が最上位の解や、第3評価関数が中央値である解などを選択することが可能である。本実施形態では、第3評価関数が最上位である解が、最適な力制御パラメーターとして決定される。最適な力制御パラメーターがユーザーに提示されると、すべての処理が終了する。
【0055】
以上のように、上記実施形態では、シミュレーターを用いた第1最適化処理によって、ワークの物理的特性を含むSIMパラメーターを最適化できる。また、シミュレーターを用いた第2最適化処理と実機を用いた第3最適化処理によって力制御パラメーターの最適化を行うので、実機のみを用いる最適化に比べて、少ない実機動作回数で適切な力制御パラメーターを決定できる。特に、第1最適化処理では、ワークの物理的特性を含むSIMパラメーターの最適値を求めるので、実機のロボット100を用いた調整時に振動限界付近の力制御パラメーターを探索することが不要となる。この結果、大きな振動が発生してワークが破損する可能性を低減することができる。
【0056】
・他の実施形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0057】
(1)本開示の第1の形態によれば、ロボットの力制御動作のための力制御パラメーターを調整する方法が提供される。この方法は、(a)前記力制御動作のシミュレーターを用いて、前記力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、前記シミュレーションパラメーターを決定する工程と、(b)前記シミュレーションパラメーターが設定された前記シミュレーターを用いて前記力制御パラメーターに関する第2最適化処理を実行することによって、前記力制御パラメーターの1つ以上の候補値を含む候補値群を決定する工程と、(c)前記候補値群から前記力制御パラメーターの実候補値を決定するとともに、前記実候補値が設定された前記ロボットの実機を用いて前記力制御パラメーターに関する第3最適化処理を実行することによって、前記力制御パラメーターを決定する工程と、を含む。
この方法によれば、シミュレーターを用いた第1最適化処理によって、ワークの物理的特性を含むシミュレーションパラメーターを最適化できる。また、シミュレーターを用いた第2最適化処理と実機を用いた第3最適化処理によって力制御パラメーターの最適化を行うので、実機のみを用いる最適化に比べて、少ない実機動作回数で適切な力制御パラメーターを決定できる。
【0058】
(2)上記方法は、更に、前記ロボットを用いて実行された前記力制御動作に関する実機動作データを取得する工程を含み、前記第1最適化処理は、前記実機動作データと前記シミュレーターによるシミュレーション結果との類似度を表す評価関数を用いて実行されるものとしてもよい。
この方法によれば、実機動作データとシミュレーション結果の一致度が高くなるようにシミュレーションパラメーターを適切な値に調整できる。
【0059】
(3)上記方法において、前記ワークの物理的特性は、摩擦係数と剛性率の少なくとも一方を含むものとしてもよい。
この方法によれば、ワークや摩擦係数や剛性率などの物理的特性を含むシミュレーションパラメーターを適切な値に調整できる。
【0060】
(4)本開示の第2の形態によれば、ロボットシステムが提供される。このロボットシステムは、ロボットと、前記ロボットの力制御動作のシミュレーションを行うシミュレーターと、前記力制御動作のための力制御パラメーターを調整する処理を実行するパラメーター調整部と、を備える。前記パラメーター調整部は、(a)前記シミュレーターを用いて、前記力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、前記シミュレーションパラメーターを決定する処理と、(b)前記シミュレーションパラメーターが設定された前記シミュレーターを用いて前記力制御パラメーターに関する第2最適化処理を実行することによって、前記力制御パラメーターの1つ以上の候補値を含む候補値群を決定する処理と、(c)前記候補値群から前記力制御パラメーターの実候補値を決定するとともに、前記実候補値が設定された前記ロボットの実機を用いて前記力制御パラメーターに関する第3最適化処理を実行することによって、前記力制御パラメーターを決定する処理と、を実行する。
【0061】
(5)本開示の第3の形態によれば、ロボットの力制御動作のための力制御パラメーターを調整する処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)前記力制御動作のシミュレーターを用いて、前記力制御動作の対象となるワークの物理的特性を含むシミュレーションパラメーターに関する第1最適化処理を実行することによって、前記シミュレーションパラメーターを決定する処理と、(b)前記シミュレーションパラメーターが設定された前記シミュレーターを用いて前記力制御パラメーターに関する第2最適化処理を実行することによって、前記力制御パラメーターの1つ以上の候補値を含む候補値群を決定する処理と、(c)前記候補値群から前記力制御パラメーターの実候補値を決定するとともに、前記実候補値が設定された前記ロボットの実機を用いて前記力制御パラメーターに関する第3最適化処理を実行することによって、前記力制御パラメーターを決定する処理と、を前記プロセッサーに実行させる。
【0062】
本開示は、上記以外の種々の形態で実現することも可能である。例えば、ロボットとロボット制御装置とを備えたロボットシステム、ロボット制御装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
【符号の説明】
【0063】
100…ロボット、110…基台、120…ロボットアーム、150…エンドエフェクター、200…制御装置、300…情報処理装置、310…プロセッサー、320…メモリー、330…インターフェイス回路、340…入力デバイス、350…表示デバイス、370…シミュレーター、371…力センサー模擬部、372…電流センサー模擬部、373…関節エンコーダー模擬部、374…ロボット模擬部、375…制御装置模擬部、380…パラメーター調整部、381…動作実行部、382…パラメーター探索部、383…評価関数算出部、400…センサー類、410…力センサー、420…電流センサー、430…関節エンコーダー
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10