JP2019113985A - 最適化方法、制御装置、およびロボット - Google Patents
最適化方法、制御装置、およびロボット Download PDFInfo
- Publication number
- JP2019113985A JP2019113985A JP2017245968A JP2017245968A JP2019113985A JP 2019113985 A JP2019113985 A JP 2019113985A JP 2017245968 A JP2017245968 A JP 2017245968A JP 2017245968 A JP2017245968 A JP 2017245968A JP 2019113985 A JP2019113985 A JP 2019113985A
- Authority
- JP
- Japan
- Prior art keywords
- constraint
- robot
- function
- parameter
- parameters
- 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
Links
Images
Landscapes
- Manipulator (AREA)
- Feedback Control In General (AREA)
Abstract
【課題】内容が分からない関数について、制約条件を満たし、かつ、好ましい解を与える入力パラメーターを得るための最適化方法、制御装置、およびロボットを提供する。【解決手段】(a)1組以上の入力パラメーターの値に対する制約関数の観測値を準備するS300。(b)制約関数の観測値が統計的分布にしたがうという仮定のもとで観測値から得られる制約関数の統計パラメーターに基づき、未観測の入力パラメーターに対する制約関数の出力の信頼限界を決定するS342。(c)制約関数の出力が条件を満たすと推定される入力パラメーターの制約範囲を決定するS344。(d)制約範囲内で目的関数の最適化を行って、1組の入力パラメーターを決定するS346。(e)決定された1組の入力パラメーターによる目的関数の観測値を得る。(f)工程(b)から(e)を繰り返し、最もよい観測値に対応する入力パラメーターを、出力する。【選択図】図13
Description
本開示は、内容が分からない関数について、好ましい解を与える入力パラメーターを得るための最適化方法、制御装置、およびロボットに関するものである。
従来、内容が分からない関数について、制約条件を満たしかつ好ましい解を与える入力パラメーターを得るための最適化方法が存在する(非特許文献1)。非特許文献1においては、制約条件を伴うベイズ最適化が提案されている。非特許文献1の技術においては、ベイズ最適化においてパラメーターを生成する際、安全を表す制約条件を満たす確率を予測し、高い確率で安全と判断されるときのみ、パラメーターを評価する(非特許文献1の図2参照)。
A. K. a. A. P. S. Felix Berkenkamp, "Bayesian Optimization with Safety Constraints: Safe and Automatic Parameter Tuning in Robotics," 2016.
しかし、装置における制御パラメータと、その制御パラメータにしたがって制御された場合の個別の装置の実際の動作結果(たとえば、オーバーシュートや残留振動など)と、の関係を表す関数など、内容が分からない関数について、制約条件を満たしかつ好ましい解を与える入力パラメーターを得る技術において、より効率的に解を得る手法が望まれている。
本開示は、上述の課題を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
(1)本開示の一形態によれば、目的関数の入力パラメーターの最適化方法が提供される。この最適化方法は:(a)1組以上の入力パラメーターの値に対する制約関数の観測値を準備する工程と;(b)前記制約関数の前記観測値から得られる、前記制約関数の統計パラメーターに基づいて、前記1組以上の入力パラメーターとは異なる複数組の入力パラメーターに対する前記制約関数の出力の信頼限界を決定する工程と;(c)前記制約関数の出力の前記信頼限界を使用して、前記制約関数の出力が条件を満たすと推定される入力パラメーターの制約範囲を決定する工程と;(d)前記決定された制約範囲内において、目的関数の最適化を行って、前記複数組の入力パラメーターの中から1組の入力パラメーターを新たに決定する工程と、(e)前記工程(d)で決定された前記1組の入力パラメーターによる前記目的関数の観測値を得る工程と;(f)前記工程(b)から前記工程(e)を繰り返すことにより得られる、複数の入力パラメーターに対する前記目的関数の複数の観測値のうち、最も評価値が高い観測値に対応する入力パラメーターを、出力する工程と;を含む。
このような態様とすれば、内容が分からない目的関数について、制約条件を満たしかつ好ましい解を与える入力パラメーターを得る際に、制約条件を満たす可能性が高い1以上の制約範囲内の入力パラメーターから、目的関数の出力が好ましいと推定できる入力パラメーターを、次の入力パラメーターとして決定することができる。そして、そのようにして得られた目的関数の複数の観測値のうち、最も評価値が高い観測値に対応する入力パラメーターを、入力パラメーターの最適解として得ることができる。よって、効率的に、かつ、局所解に陥ることなく、制約条件を満たす入力パラメーターの最適解を得ることができる。
このような態様とすれば、内容が分からない目的関数について、制約条件を満たしかつ好ましい解を与える入力パラメーターを得る際に、制約条件を満たす可能性が高い1以上の制約範囲内の入力パラメーターから、目的関数の出力が好ましいと推定できる入力パラメーターを、次の入力パラメーターとして決定することができる。そして、そのようにして得られた目的関数の複数の観測値のうち、最も評価値が高い観測値に対応する入力パラメーターを、入力パラメーターの最適解として得ることができる。よって、効率的に、かつ、局所解に陥ることなく、制約条件を満たす入力パラメーターの最適解を得ることができる。
(2)上記形態の最適化方法であって、前記工程(d)における前記目的関数の最適化は、ベイズ最適化である、態様とすることもできる。
このような態様とすれば、グリッドサーチなどの他の手法で目的関数の最適化を行う態様に比べて、効率的に新たな入力パラメーターを決定することができる。
このような態様とすれば、グリッドサーチなどの他の手法で目的関数の最適化を行う態様に比べて、効率的に新たな入力パラメーターを決定することができる。
(3)上記形態の最適化方法であって、前記工程(b)において、前記制約関数の観測値がしたがうと仮定される統計的分布は、ガウス分布である、態様とすることもできる。
このような態様とすれば、制約関数の観測値が他の分布に従うという仮定を置く態様に比べて、簡易な処理で、様々な制約関数に対して高度に適合する最適化を行うことができる。
このような態様とすれば、制約関数の観測値が他の分布に従うという仮定を置く態様に比べて、簡易な処理で、様々な制約関数に対して高度に適合する最適化を行うことができる。
(4)上記形態の最適化方法であって、前記入力パラメーターは、ロボットの動作を制御するためのパラメーターである、態様とすることもできる。
このような態様とすれば、ロボットの動作の最適化を容易に行うことができる。
このような態様とすれば、ロボットの動作の最適化を容易に行うことができる。
(5)上記形態の最適化方法であって、前記目的関数が:前記ロボットの所定部位が目標位置へ移動する動作の開始から終了までの所要時間と;前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれと;前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれが、あらかじめ定められた値未満となるまでの前記動作の開始時からの経過時間と;前記ロボットが前記動作を行う際に要する駆動力と;前記ロボットが前記動作を行う際に発生する音の大きさと;のうちの1以上を要素として含む、態様とすることもできる。
このような態様とすれば、実際に求められる指標についての評価が高くなるように、ロボットの動作の最適化を行うことができる。
このような態様とすれば、実際に求められる指標についての評価が高くなるように、ロボットの動作の最適化を行うことができる。
(6)上記形態の最適化方法であって、前記制約関数が、前記所要時間と、前記ずれと、前記経過時間と、前記駆動力と、前記音の大きさと、のうち前記目的関数に含まれないものの1以上を要素として含む、態様とすることもできる。
このような態様とすれば、実際に求められる指標についての制約条件を満たすように、ロボットの動作の最適化を行うことができる。
このような態様とすれば、実際に求められる指標についての制約条件を満たすように、ロボットの動作の最適化を行うことができる。
(7)本開示の他の形態によれば、目的関数の入力パラメーターの最適化する制御装置が提供される。この制御装置は:入力パラメーターを決定する決定部と;前記入力パラメーターを出力する出力部と、を備える。前記決定部は:1組以上の入力パラメーターの値に対する制約関数の観測値を準備し;前記制約関数の前記観測値から得られる、前記制約関数の統計パラメーターに基づいて、前記1組以上の入力パラメーターとは異なる複数組の入力パラメーターに対する前記制約関数の出力の信頼限界を決定し;前記制約関数の出力の前記信頼限界を使用して、前記制約関数の出力が条件を満たすと推定される入力パラメーターの制約範囲を決定し;前記決定された制約範囲内において、目的関数の最適化を行って、前記複数組の入力パラメーターの中から1組の入力パラメーターを新たに決定し;前記決定された入力パラメーターによる前記目的関数の観測値を取得し;前記信頼限界の決定と、制約範囲の決定と、新たな入力パラメーターの決定と、前記制約関数の観測値を取得と、を繰り返すことにより得られる、複数の入力パラメーターに対する前記目的関数の複数の観測値のうち、最も評価値が高い観測値に対応する入力パラメーターを決定し、決定した前記入力パラメーターを前記出力部に出力させる。
(8)本開示の他の形態によれば、上記形態の制御装置によって制御されるロボットが提供される。
(9)本開示の他の形態によれば、ロボットを制御する制御装置が提供される。この制御装置は、コンピューター実行可能な命令を実行してロボットを制御するように構成されたプロセッサーを備える。前記プロセッサーは:1組以上の入力パラメーターの値に対する制約関数の観測値を準備し;前記制約関数の前記観測値から得られる、前記制約関数の統計パラメーターに基づいて、前記1組以上の入力パラメーターとは異なる複数組の入力パラメーターに対する前記制約関数の出力の信頼限界を決定し;前記制約関数の出力の前記信頼限界を使用し;前記制約関数の出力が条件を満たすと推定される入力パラメーターの制約範囲を決定し;前記決定された制約範囲内において、目的関数の最適化を行って、前記複数組の入力パラメーターの中から1組の入力パラメーターを新たに決定し;前記決定された入力パラメーターによる前記目的関数の観測値を取得し;前記信頼限界の決定と、制約範囲の決定と、新たな入力パラメーターの決定と、前記目的関数の観測値を取得と、を繰り返すことにより得られる、複数の入力パラメーターに対する前記目的関数の複数の観測値のうち、最も評価値が高い観測値に対応する入力パラメーターを、出力するように構成されている。
上述した本開示の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部または全部を解決するため、あるいは、本明細書に記載された効果の一部または全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部または全部を解決するため、あるいは、本明細書に記載された効果の一部または全部を達成するために、上述した本開示の一形態に含まれる技術的特徴の一部または全部を上述した本開示の他の形態に含まれる技術的特徴の一部または全部と組み合わせて、本開示の独立した一形態とすることも可能である。
本発明は、上記以外の種々の形態で実現することも可能である。例えば、ロボットシステムの制御装置、その制御装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した一時的でない記録媒体等の形態で実現することができる。
本開示の実施形態について、添付図面を参照しながら以下の順に説明する。なお、各図において互いに対応する構成要素には同一の符号が付され、重複する説明は省略される。
A.実施形態:
A1.ロボットシステムの構成:
A2.ロボットの制御:
(1)ロボットの構成と制御装置の機能:
(2)対象物を検出する処理:
(3)ロボットの位置制御および力制御:
(i)サーボ43dにおける処理:
(ii)位置制御部43aおよび力制御部43bにおける処理:
(iii)接触判定部43cにおける処理:
A3.ピックアップ処理:
A4.パラメーターの最適化:
(1)パラメーターの最適化処理:
(2)制約条件のないベイズ最適化:
(3)制約条件つきベイズ最適化:
(4)目的関数:
(5)制約関数:
(6)最適化するパラメーター:
(7)評価:
B.他の実施形態:
A.実施形態:
A1.ロボットシステムの構成:
A2.ロボットの制御:
(1)ロボットの構成と制御装置の機能:
(2)対象物を検出する処理:
(3)ロボットの位置制御および力制御:
(i)サーボ43dにおける処理:
(ii)位置制御部43aおよび力制御部43bにおける処理:
(iii)接触判定部43cにおける処理:
A3.ピックアップ処理:
A4.パラメーターの最適化:
(1)パラメーターの最適化処理:
(2)制約条件のないベイズ最適化:
(3)制約条件つきベイズ最適化:
(4)目的関数:
(5)制約関数:
(6)最適化するパラメーター:
(7)評価:
B.他の実施形態:
A.実施形態:
A1.ロボットシステムの構成:
図1は、本開示の一実施形態のロボットシステムを示す斜視図である。本開示の一実施形態としてのロボットシステムは、ロボット1〜3と、制御装置40と、を備えている。ロボット1〜3と制御装置40は、ケーブルにより通信可能に接続されている。ロボット1〜3は、制御装置40によって制御される。
A1.ロボットシステムの構成:
図1は、本開示の一実施形態のロボットシステムを示す斜視図である。本開示の一実施形態としてのロボットシステムは、ロボット1〜3と、制御装置40と、を備えている。ロボット1〜3と制御装置40は、ケーブルにより通信可能に接続されている。ロボット1〜3は、制御装置40によって制御される。
制御装置40は、コンピューター等のハードウェア資源と、記憶部44に記憶された各種のソフトウェア資源と、を備える。その結果、制御装置40は、プログラムを実行可能である。ハードウェア資源は、CPU,RAM,ROM等からなる構成であってもよいし、ASIC等によって構成されてもよく、種々の構成を採用可能である。
ロボット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はねじり関節である。
アームAにおいて最も先端側に位置するアーム部材A6には、力覚センサーPSとエンドエフェクターとが装着される。ロボット1〜3は、6軸のアームAを駆動させることによって、可動範囲内においてエンドエフェクターを任意の位置に配置し、任意の姿勢(すなわち、角度)とすることができる。
アーム部材A1〜A6とエンドエフェクターは、関節J1〜J6の角度が変化することによって位置を変更される可動部である。各関節J1〜J6における回転軸を、本明細書において「作動軸」とも呼ぶ。これらの可動部が動作することによってロボット1〜3は各種の作業を行うことができる。
ロボット1〜3には、互いに異なるエンドエフェクターが取り付けられている。ロボット1に取りつけられているエンドエフェクターは、撮像部21である。撮像部21は、視野内の画像を撮像することができる。撮像部21は、露光時間と絞りを調整可能な機構を備えている。ロボット2に取りつけられているエンドエフェクターは、照明部22である。照明部22は、照射範囲に光を照射することができる。照明部22は、明るさを調整可能な機構を備えている。以下、撮像部21および照明部22を「光学系」とも呼ぶ。ロボット3に取り付けられているエンドエフェクターは、グリッパー23である。グリッパー23は、対象物Wを把持することができる。
本実施形態においては、ロボット1〜3が備えるエンドエフェクターに対して相対的に固定された位置が、ツールセンターポイント(TCP)として定義される。TCPの位置はエンドエフェクターの基準の位置となる。TCPを原点として、TCP座標系が定義される。TCP座標系は、エンドエフェクターに対して相対的に固定された3次元直交座標系である。
力覚センサーPSは、6軸の力検出器である。力覚センサーPSは、力覚センサー上の点を原点とした3次元直交座標系であるセンサー座標系において、互いに直交する3個の検出軸と平行な力の大きさと、当該3個の検出軸まわりのトルクの大きさとを検出する。なお、本明細書において、「力」と表記した場合、トルクも意味し得る。
ロボット1〜3が設置された空間を規定する座標系を、本明細書において、「ロボット座標系」という。ロボット座標系は、水平面上において互いに直交するx軸とy軸と、鉛直上向きを正方向とするz軸とによって規定される3次元の直交座標系である(図1の左上参照)。z軸における負の方向は重力方向と一致する。x,y,z方向の位置により3次元空間における任意の位置を表現できる。x軸周りの回転角をRxで表し、y軸周りの回転角をRyで表し、z軸周りの回転角をRzで表す。Rx,Ry,Rz方向の回転角により3次元空間における任意の姿勢を表現できる。以下、「位置」と表記した場合、姿勢も意味し得る。
図1に示すロボットシステムは、ロボットに作用する力を制御する力制御を実行可能である。力制御においては、任意の点に作用する作用力が目標力になるように、アームAが制御される。作用点に作用する力は、3次元直交座標系である力制御座標系によって定義される。目標力(トルクを含む)は、力制御座標系で表現される作用点を起点としたベクトルで、表現可能である。後述するパラメーターの最適化が行われる以前において、目標力ベクトルの起点は、力制御座標系の原点である。また、作用力の方向は、力制御座標系の1軸方向と一致している。パラメーターの最適化が行われた場合、目標力ベクトルの起点は、力制御座標系の原点と異なり得る。また、目標力ベクトルの方向は、力制御座標系の軸方向と異なり得る。
本実施形態において各種の座標系の関係は予め定義されている。その結果、各種の座標系での座標値は、互いに変換可能である。すなわち、TCP座標系、センサー座標系、ロボット座標系、および力制御座標系における位置やベクトルは、互いに変換可能である。ここでは技術の理解を容易にするためえ、制御装置40がTCPの位置およびTCPに作用する作用力を、ロボット座標系で制御するものとして説明をする。
A2.ロボットの制御:
(1)ロボットの構成と制御装置の機能:
図2は、制御装置40の機能ブロックと、ロボット1〜3と、光学系20との関係を示すブロック図である。ロボット1〜3は、教示を行うことにより各種作業が可能となる汎用ロボットである。ロボット1〜3は、それぞれアクチュエーターとしてのモーターM1〜M6と、センサーとしてのエンコーダーE1〜E6とを備える。
(1)ロボットの構成と制御装置の機能:
図2は、制御装置40の機能ブロックと、ロボット1〜3と、光学系20との関係を示すブロック図である。ロボット1〜3は、教示を行うことにより各種作業が可能となる汎用ロボットである。ロボット1〜3は、それぞれアクチュエーターとしてのモーターM1〜M6と、センサーとしてのエンコーダーE1〜E6とを備える。
モーターM1〜M6は、それぞれ関節J1〜J6を駆動する。ロボットのアームAの制御は、具体的には、モーターM1〜M6を制御することにより行われる。各モーターM1〜M6には、電力を供給する電源線が接続されている。各電源線には、電流計が備えられている。制御装置40は、電流計を介して、各モーターM1〜M6に供給された電流を計測することができる。エンコーダーE1〜E6は、それぞれモーターM1〜M6の回転角度を検出する。
制御装置40は、算出部41、検出部42、制御部43として機能する。
(2)対象物を検出する処理:
検出部42は、対象物を検出する処理を実行する。検出部42は、光学系20を構成する撮像部21と照明部22(図1も参照)とに接続されている。検出部42は、撮像部21を制御し、撮像部21が備える撮像センサーによって撮像された画像を取得することができる。また、検出部42は、照明部22を制御し、照明部22が照射する光の明るさを変化させることができる。
検出部42は、対象物を検出する処理を実行する。検出部42は、光学系20を構成する撮像部21と照明部22(図1も参照)とに接続されている。検出部42は、撮像部21を制御し、撮像部21が備える撮像センサーによって撮像された画像を取得することができる。また、検出部42は、照明部22を制御し、照明部22が照射する光の明るさを変化させることができる。
撮像部21から画像が出力されると、検出部42は、撮像画像に対して、記憶部44に記憶されたテンプレートデータ44c(図2の左下部参照)を適用して、テンプレートマッチング処理を行う。その結果、対象物の位置および姿勢が検出される。
テンプレートデータ44cは、検出部42から見た対象物の姿勢ごとに用意されている複数種類のテンプレートを含む。複数種類のテンプレートは、それぞれ種類に応じたIDが付されている。検出部42は、姿勢ごとのテンプレートデータ44cを順次、撮像された画像と比較する。その際、検出部42は、テンプレートデータ44cの大きさを変化させて、撮像された画像と比較する。検出部42は、撮像された画像の中で、テンプレートデータ44cと画像との差分が閾値以下であった形状の像を、対象物の像として検出する。
対象物の像が検出されると、検出部42は、適合したテンプレートデータ44cと、予め決められた座標系間の関係(図2の中段右部のU2参照)と、に基づいて対象物の位置および姿勢を特定する。
具体的には、検出部42は、対象物と適合した際のテンプレートデータ44cの大きさに基づいて、撮像部21と対象物との光軸方向の距離を決定する。検出部42は、画像内で検出された対象物の位置に基づいて、光軸に垂直な2方向についての対象物の位置を決定する。検出部42は、テンプレートマッチング処理において適合したテンプレートデータ44cの種類によって、検出部42から見た対象物の姿勢を特定する。
たとえば、撮像部21の撮像センサーの光軸と撮像平面上の互いに垂直な2軸が、TCP座標系のz軸ならびにx軸およびy軸と、それぞれ平行に定義されている場合であれば、検出部42は、以下のような処理を行う。すなわち、検出部42は、適合したテンプレートデータ44cの大きさと、テンプレートデータ44cが対象物と適合した位置とに基づいて、TCP座標系における対象物の位置を特定する。また、検出部42は、適合したテンプレートデータ44cの種類を表すIDに基づいて、TCP座標系における対象物の姿勢を特定する。
その後、検出部42は、各座標系の対応関係を利用し、任意の座標系における対象物の位置および姿勢、たとえば、ロボット座標系における対象物の位置および姿勢を、特定する。
制御装置40の記憶部44(図2の左下部参照)には、各種のパラメーター44aが記憶されている。検出部42は、テンプレートマッチング処理を、パラメーター44aのうちの一部のパラメーターを使用して実行する。
図3は、パラメーター44aの例を示す図である。図3に示す例において、パラメーター44aは、光学パラメーターと動作パラメーターと力制御パラメーターとを含む。
光学パラメーターは、検出部42による検出に関するパラメーターである。光学パラメーターは、撮像部21に関する撮像部パラメーターと、照明部22に関する照明部パラメーターと、撮像部21によって撮像された対象物の画像に対する画像処理に関する画像処理パラメーターと、を含む。
図3の上段に示す撮像部パラメーターは、対象物を撮像する際に撮像部21が配置される位置を、「撮像部の位置」として、含む。撮像部の位置は、種々の手法で記述されてよい。たとえば、撮像部21のTCPの位置が、ロボット座標系で記述されることができる。撮像部パラメーターは、さらに、対象物を撮像する際の撮像部21の露光時間および絞りの値を、「撮像部の露光時間」および「撮像部の絞り」として、含む。
対象物を撮像する際には、検出部42は、撮像部パラメーターを参照し、位置制御部43a(図2参照)に、撮像部21の位置を渡す。位置制御部43aは、撮像部21の位置に基づいてTCPの目標位置Ltを生成し、目標位置Ltに基づいてロボット1を制御する(図1参照)。検出部42は、撮像部パラメーターを参照し、撮像部21の露光時間と絞りを設定する。撮像部21においてはその露光時間と絞りによって撮像が行われる。
図3の上段に示す照明部パラメーターは、対象物を撮像する際に照明部22が配置される位置を、「照明部の位置」として含む。照明部の位置は、種々の手法で記述されてよい。たとえば、照明部22のTCPの位置が、ロボット座標系で記述されることができる。照明部パラメーターは、さらに、対象物を撮像する際の照明部22の明るさの値を、「照明部の明るさ」として含む。
対象物を撮像する際には、検出部42は、照明部パラメーターを参照し、位置制御部43a(図2参照)に、照明部22の位置を渡す。位置制御部43aは、照明部22の位置に基づいてTCPの目標位置Ltを生成し、当該目標位置Ltに基づいてロボット2を制御する(図1参照)。検出部42は、照明部パラメーターを参照し、照明部22の明るさを設定する。照明部22は、設定された明るさの光を出力する。
図3の上段に示す画像処理パラメーターは、テンプレートマッチング処理を実行する際の処理順序を示す画像処理シーケンスを含む。本実施形態において、テンプレートマッチング処理における閾値は可変である。画像処理パラメーターは、現在のテンプレートマッチングの閾値を含む。検出部42は、テンプレートデータ44cと画像とを比較する前に、平滑化処理、鮮鋭化処理などの各種の処理を実行可能である。画像処理パラメーターは、平滑化処理と鮮鋭化処理の強度を含む。
撮像部21から画像が出力されると、検出部42は、画像処理パラメーターを参照し、画像処理シーケンスに基づいて、画像処理の順序(実行するか否かを含む)を決定し、決定した順序で平滑化処理や鮮鋭化処理等の画像処理を実行する。このとき、検出部42は、画像処理パラメーターに記述された強度で、平滑化処理や鮮鋭化処理等の画像処理を実行する。また、画像処理シーケンスに含まれるテンプレートデータ44cと画像との比較を実行する際には、画像処理パラメーターが示す閾値に基づいて、比較を行う。
以上のように検出部42は、図3に示した光学パラメーターに基づいて撮像部21や照明部22の位置を特定し、ロボット1、ロボット2を動作させることが可能である(図1参照)。しかし、ロボット1およびロボット2を駆動する際の位置は、後述する動作パラメーターや力制御パラメーターによって与えられてもよい。
(3)ロボットの位置制御および力制御:
制御部43(図2の中段参照)においては、モーターM1〜M6の回転角度の組み合わせと、ロボット座標系におけるTCPの位置との対応関係U1が、図示しない記憶媒体に記憶されている。制御部43においては、さらに、座標系同士の対応関係U2が、図示しない記憶媒体に記憶されている。なお、対応関係U1,U2は記憶部44に記憶されていてもよい。
制御部43(図2の中段参照)においては、モーターM1〜M6の回転角度の組み合わせと、ロボット座標系におけるTCPの位置との対応関係U1が、図示しない記憶媒体に記憶されている。制御部43においては、さらに、座標系同士の対応関係U2が、図示しない記憶媒体に記憶されている。なお、対応関係U1,U2は記憶部44に記憶されていてもよい。
制御部43や、検出部42、および後述する算出部41は、対応関係U2に基づいて、任意の座標系におけるベクトルを、他の座標系におけるベクトルに変換することができる。たとえば、制御部43および算出部41は、力覚センサーPSの出力に基づいて、センサー座標系でのロボット1〜3への作用力を取得し、ロボット座標系におけるTCPの位置に作用する力に変換することができる。また、制御部43および算出部41は、力制御座標系で表現された目標力をロボット座標系におけるTCPの位置における目標力に変換することができる。
制御部43は、アームAを駆動することによって、ロボット1〜3の各部位の位置や、各部位に作用する力を、制御する。制御部43は、機能部としての位置制御部43a、力制御部43b、接触判定部43c、およびサーボ43dを備えている(図2中段参照)。位置制御部43aは、位置の制御を実行する。力制御部43bは、力の制御を実行する。接触判定部43cは、ロボットが作業において想定されていない物体と接触したか否かを判定する機能を実行する。サーボ43dは、サーボ制御を実行する。以下で、制御部43の各機能部の機能を、より詳細に説明する。
(i)サーボ43dにおける処理:
サーボ43dは、エンコーダーE1〜E6の出力が示すモーターM1〜M6の回転角度Daと、制御目標である目標角度Dtと、を一致させるフィードバック制御を実行する。より具体的には、サーボ43dは、回転角度Daと目標角度Dtとの偏差De、その偏差Deの積分、およびその偏差Deの微分を使用して、位置についてのPID制御を実行する。図2において、比例ゲインKpp、積分ゲインKpi、微分ゲインKpdを示す。
サーボ43dは、エンコーダーE1〜E6の出力が示すモーターM1〜M6の回転角度Daと、制御目標である目標角度Dtと、を一致させるフィードバック制御を実行する。より具体的には、サーボ43dは、回転角度Daと目標角度Dtとの偏差De、その偏差Deの積分、およびその偏差Deの微分を使用して、位置についてのPID制御を実行する。図2において、比例ゲインKpp、積分ゲインKpi、微分ゲインKpdを示す。
サーボ43dは、上記Kpp,Kpi,Kpdを使用した位置についてのPID制御の出力と、回転角度Daの微分との偏差、その偏差の積分、その偏差の微分を使用して、速度についてのPID制御を実行する。図2において、比例ゲインKvp、積分ゲインKvi、微分ゲインKvdを示す。
以上の処理の結果、制御量Dcが決定される。制御量Dcは、モーターM1〜M6のそれぞれについて決定される。制御部43は、各モーターM1〜M6の制御量Dcで、各モーターM1〜M6を制御する。制御部43がモーターM1〜M6を制御する信号は、PWM(Pulse Width Modulation)変調された信号である。なお、制御部43は、サーボ43dが使用するサーボゲインKpp,Kpi,Kpd,Kvp,Kvi,Kvdを変化させることができる。
図2の左下に示す記憶部44には、各種のパラメーター44aに加えて、ロボット1〜3を制御するためのロボットプログラム44bが記憶されている。ロボットプログラム44bは、主に、ロボット1〜3が実施する作業のシーケンス(すなわち、動作の順序)を示す。ロボットプログラム44bは、予め定義されたコマンドの組み合わせによって記述される。これに対して、パラメーター44aは、主に、各動作を実現するために必要とされる具体的な値である。パラメーター44aは、各コマンドの引数として記述される。
本実施形態において、パラメーター44aおよびロボットプログラム44bは、ロボットに対する教示によって生成され、記憶部44に記憶される(図2の左下部参照)。記憶部44に記憶されたパラメーター44aおよびロボットプログラム44bは、算出部41によって修正され得る。
動作パラメーター(図3の中段参照)は、ロボット1〜3の動作に関するパラメーターである。動作パラメーターは、位置制御の際に参照される。ロボット1〜3による一連の作業は複数の動作に分けられる。各動作を実施する際のパラメーター44aが、教示によって生成される。
動作パラメーターには、各動作における「始点」と「終点」を示すパラメーターが含まれる(図3の中段参照)。始点と終点は、種々の座標系で定義されてよい。本実施形態においては、制御対象のロボットのTCPの「始点」および「終点」は、ロボット座標系で定義される。ロボット座標系の各軸についての並進位置と回転位置とが定義される。
動作パラメーターには、複数の動作における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(図1参照)が一列にならぶ姿勢を取ったとき、関節J1を基準とする回転のイナーシャは最大となる。このとき、6個のアーム部材A1〜A6の全体の重心は、もっとも関節J1から遠い位置にある。一方、6個のアーム部材A1〜A6の全体の重心がもっとも関節J1に近づく姿勢をアームAがとったとき、関節J1を基準とする回転のイナーシャは最小となる。モーターが実現しうる加速度は、モーターが動かす対象物のイナーシャによって変化する。このため、各関節を駆動するモーターに指示される加速度は、それぞれの関節から先のイナーシャに応じて、決定される。TCPの加速度(図4のt1〜t2、t3〜t4参照)は、以下のように定められる。
図5は、TCPの加減速特性に含まれるTCPの基準目標加速度Astと、イナーシャIの関係を示すグラフである。各関節J1〜J6について、動作パラメーターの一つとして、制限最大加速度a0が定められている。制限最大加速度a0は、その関節から先のロボットの構成のイナーシャIが最大値Imaxであるときに、モーターが定常的に実現しうる加速度である。また、各関節J1〜J6について、動作パラメーターの一つとして、上限最大加速度a1が定められている。上限最大加速度a1は、その関節から先のロボットの構成のイナーシャIが所定値Ith以下であるときに、モーターが定常的に実現しうる加速度である。イナーシャIthは、その関節から先のロボットの構成のイナーシャの最小値Iminと最大値Imaxとの間の値である。なお、制限最大加速度a0および上限最大加速度a1は、ロボットが、あらかじめ定められた定格負荷を保持していることを前提として、決定される。
図5から分かるように、その関節から先のイナーシャが所定値Ith以下であるとき、基準目標加速度Astは、一定値a1となる。その関節から先のイナーシャが所定値Ithより大きいとき、基準目標加速度Astは、傾きbで、イナーシャに対して直線的に減少する。すなわち、bは、基準目標加速度Astの変化率である。
b={(a0−a1)/(Imax−Ith)} ・・・ (Eq1)
b={(a0−a1)/(Imax−Ith)} ・・・ (Eq1)
さらに、基準目標加速度Astは、ロボットが保持している負荷の大きさに応じて補正される。TCPの目標加速度At(図4のt1〜t2、t3〜t4参照)は、基準目標加速度Astに負荷補正係数CLを掛けることによって得られる。
At=CL×Ast ・・・ (Eq2)
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)}
c={−(w−w0)/(wmax−wmin)}+1
=d×(w−w0)+1
ここで、wは、ロボットが保持している負荷の大きさである。
w0は、基準となる定格負荷である。
wmaxは、ロボットが保持し得る負荷の最大値である。
wminは、ロボットが保持し得る負荷の最小値である。
d={−1/(wmax−wmin)}
動作パラメーターの一部としての加減速特性のパラメーター(図3の中段参照)には、制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きdが含まれる。これらのパラメーターを後述する処理によって最適化することにより、作動軸の加減速の変化を、動作ごとに自動的に設定することができる。
動作パラメーターには、サーボゲインKpp,Kpi,Kpd,Kvp,Kvi,Kvdが含まれている(図3の中段参照)。制御部43は、サーボ43dが適用するサーボゲインKpp,Kpi,Kpd,Kvp,Kvi,Kvdが、動作パラメーター44aとして記憶されている値になるように、調整する。本実施形態においてサーボゲインの値は、動作ごとに定められる。ただし、後述の最適化等において、サーボゲインはより短い期間ごとに定められてもよい。
(ii)位置制御部43aおよび力制御部43bにおける処理:
(a)力制御モード:
力制御パラメーター(図3の下段参照)は、ロボット1〜3の力制御に関するパラメーターであり、力制御の際に参照される。力制御パラメーターには、「始点」、「終点」、「加減速特性」、および「サーボゲイン」を示すパラメーターが含まれる。力制御パラメーターにおいて、始点、終点、加減速特性、サーボゲインは、動作パラメーターに属する始点、終点、加減速特性、サーボゲイン(図3の中段参照)と同様である。始点、終点、加減速特性は、ロボット座標系の3軸の並進と回転について定義される。サーボゲインはモーターM1〜M6のそれぞれについて定義される。
(a)力制御モード:
力制御パラメーター(図3の下段参照)は、ロボット1〜3の力制御に関するパラメーターであり、力制御の際に参照される。力制御パラメーターには、「始点」、「終点」、「加減速特性」、および「サーボゲイン」を示すパラメーターが含まれる。力制御パラメーターにおいて、始点、終点、加減速特性、サーボゲインは、動作パラメーターに属する始点、終点、加減速特性、サーボゲイン(図3の中段参照)と同様である。始点、終点、加減速特性は、ロボット座標系の3軸の並進と回転について定義される。サーボゲインはモーターM1〜M6のそれぞれについて定義される。
ただし、力制御の場合、始点および終点の中の少なくとも一部は定義されない(すなわち、任意とされる)場合もある。たとえば、ある方向に作用する力が0になるように衝突回避や倣い制御が行われる場合、当該方向における始点および終点は定義されず、当該方向の力を0にするように、位置が任意に変化し得る状態が定義される場合もある。
力制御パラメーターには、「力制御座標系」を示す情報が含まれる(図3の下段参照)。力制御座標系は、力制御の目標力を定義するための座標系である。最適化が行われる前においては、目標力ベクトルの起点が、力制御座標系の原点であり、目標力ベクトルの方向に、力制御座標系の1軸が向いている。ロボットの教示において力制御における各種の目標力が定義される際に、各作業の各動作における目標力の作用点が教示される。たとえば、対象物の一点を他の物体に当て、両者の接触点で、対象物から他の物体に一定の目標力を作用させた状態で、対象物の向きを変化させる場合は、以下のように力制御座標系が定義しなおされる。すなわち、対象物が他の物体と接触する点が目標力の作用点となり、当該作用点を原点とした力制御座標系が定義される。
力制御パラメーターは、力制御の目標力が作用する点を原点とし、目標力の方向に1軸が向いている座標系、すなわち、力制御座標系を特定するための情報を、パラメーターとして含んでいる。なお、当該パラメーターは種々の定義が可能である。たとえば、力制御座標系を特定するためのパラメーターは、力制御座標系と他の座標系(ロボット座標系等)との関係を示すデータによって定義可能である。
力制御パラメーターには、「目標力」が含まれる(図3の下段参照)。目標力は、各種の作業において、任意の点に作用すべき力として教示される力であり、力制御座標系によって定義される。目標力を示す目標力ベクトルは、目標力ベクトルの起点と、起点からの6軸成分(3軸の並進力、3軸のトルク)として定義され、力制御座標系で表現される。なお、力制御座標系と他の座標系との関係を利用すれば、当該目標力を任意の座標系、たとえば、ロボット座標系におけるベクトルに変換することが可能である。
力制御パラメーターには、「インピーダンスパラメーター」が含まれる(図3の下段参照)。力制御部43bが実施する力制御は、インピーダンス制御である。インピーダンス制御は、仮想の機械的インピーダンスを、モーターM1〜M6の駆動力によって実現する制御である。インピーダンス制御においては、TCPが仮想的に有する質量が、仮想慣性係数mとして定義される。TCPが仮想的に受ける粘性抵抗が、仮想粘性係数dとして定義される。TCPが仮想的に受ける弾性力のバネ定数が、仮想弾性係数kとして定義される。インピーダンスパラメーターは、これらのm,d,kである。インピーダンスパラメーターは、ロボット座標系の各軸に対する並進と回転について定義される。
本実施形態において力制御座標系、目標力、インピーダンスパラメーターは、各ロボットが実行する動作ごとに値を設定される。しかし、後述の最適化において、より短い期間ごとに値を設定されてもよい。
本実施形態において、各ロボットが実行する一連の作業は複数の動作に分けられ、各動作を実施するロボットプログラム44bが教示によって生成される。位置制御部43aは、ロボットプログラム44bが示す各動作を、さらに微小時間ΔT毎の微小動作に細分化する。位置制御部43aは、パラメーター44aに基づいて微小動作ごとの目標位置Ltを生成する(図2の中段参照)。力制御部43bは、記憶部44内のパラメーター44aに基づいて、一連の作業の各動作における目標力fLtを決定する。なお、動作によっては、目標力fLtが定義されない場合もある。その場合、力制御を伴わない位置制御が行われる。
ここで、添え字として使用される「L」の文字は、ロボット座標系を規定する軸の方向(x,y,z,Rx,Ry,Rz)のなかのいずれか1個の方向を表す。また、添え字として使用されるLは、L方向の位置も表すこととする。たとえば、L=xである場合、Ltは、ロボット座標系にて設定された目標位置のx方向成分xtであり、fLtは、目標力のx方向成分fxtである。
たとえば、位置制御部43aは、動作パラメーターまたは力制御パラメーターが示す始点、終点、加減速特性(図3の下段参照)を参照し、始点から終点までその加減速特性でTCPが移動する場合の微小動作ごとのTCPの位置を、目標位置Ltとして生成する(図2の中段右部参照)。
一方、力制御部43bは、各動作についての力制御パラメーターが示す目標力(図2の中段左部および図3の下段参照)を参照し、力制御座標系とロボット座標系との対応関係U2に基づいて、各動作についての力制御パラメーターが示す目標力を、ロボット座標系における目標力fLtに変換する。
なお、当該目標力fLtは、任意の点に作用する力として変換され得る。一方、後述する作用力は、TCPに作用している力として表現される。このため、作用力と目標力fLtとを運動方程式で解析できるようにするため、ここでは、目標力fLtがTCPの位置における力に変換されるものとして説明を行う。
制御部43は、位置制御や力制御を実行するため、ロボット1〜3の状態を取得する。具体的には、制御部43は、モーターM1〜M6の回転角度Daを取得する(図2の右上参照)。制御部43は、対応関係U1に基づいて、当該回転角度Daをロボット座標系におけるTCPの位置L(x,y,z,Rx,Ry,Rz)に変換する(図2の中段右部参照)。
制御部43は、対応関係U2を参照し、力覚センサーPSの検出値および位置と、TCPの位置Lと、に基づいて、力覚センサーPSに現実に作用している力を、TCPに作用している作用力fLに変換して、ロボット座標系において特定する(図2の中段右部参照)。力覚センサーPSの出力において、力覚センサーPSに作用している力は、センサー座標系で定義されている。制御部43は、力覚センサーPSの検出値と、ロボット座標系におけるTCPの位置Lと、対応関係U2と、に基づいて、ロボット座標系においてTCPに作用する作用力fLを特定する。また、ロボットに作用するトルクは、作用力fLと、ツール接触点(エンドエフェクターとワークの接触点)から力覚センサーPSまでの距離とから算出することができ、図示されないfLトルク成分として特定される。
制御部43は、得られた作用力fLに対して重力補償を行う。「重力補償」とは、作用力fLから重力成分を除去する処理である。重力補償は、たとえば、TCPの姿勢ごとにTCPに作用する作用力fLの重力成分を予め調査しておき、作用力fLから当該重力成分を減算することにより、実現可能である。
TCPに作用する重力以外の作用力fLと、TCPに作用すべき目標力fLtとが特定されると、力制御部43bは、対象物等の物体がTCPに存在し、当該TCPに力が作用し得る状態において、インピーダンス制御による補正量ΔL(以後、力由来補正量ΔLと呼ぶ。)を決定する。
具体的には、力制御部43bは、記憶部44内のパラメーター44aを参照して、インピーダンスパラメーターm,d,k(図3の下段参照)を取得する。また、力制御部43bは、目標力fLtと作用力fLとの力偏差ΔfL(t)を計算する。そして、それらを運動方程式(Eq3)に代入して力由来補正量ΔLを計算する。力由来補正量ΔLは、TCPが機械的インピーダンスによる作用力fLを受けた場合に、目標力fLtと作用力fLとの力偏差ΔfL(t)を解消して目標力fLtを達成するために、TCPが移動すべき位置Lの大きさを意味する。
m[d2/dt2]ΔL(t)+m[d/dt]ΔL(t)+kΔL(t)=ΔfL(t)・・・(Eq3)
式(Eq3)の右辺は、目標力fLtと現実の作用力fLとの力偏差ΔfL(t)である。式(Eq3)の左辺は、TCPの位置Lの2階微分値に仮想慣性係数mを乗算した第1項と、TCPの位置Lの微分値に仮想粘性係数dを乗算した第2項と、TCPの位置Lに仮想弾性係数kを乗算した第3項とによって構成される。式(Eq3)における微分とは、時間による微分を意味する。
力由来補正量ΔLが得られると、制御部43は、対応関係U1に基づいて、ロボット座標系を規定する各軸の方向のΔLを、各モーターM1〜M6の目標の回転角度である目標角度Dtに変換する。なお、図2の中段右部においては、(Lt+ΔL)に基づいて目標角度Dtが決定される旨、記されている。しかし、これは、後述するハイブリッドモードにおける処理を表しているものであり、力制御モードにおいては、力由来補正量ΔLに基づいて目標角度Dtが決定される。
サーボ43dは、目標角度Dtと、モーターM1〜M6の現実の回転角度であるエンコーダーE1〜E6の出力(回転角度Da)と、に基づいて、各モーターM1〜M6の制御量Dcを決定する。サーボ43dにおける具体的なの処理は、すでに述べたとおりである。制御部43は、各モーターM1〜M6の制御量Dcで、各モーターM1〜M6を制御する。
以上のように、運動方程式に基づいて目標力fLtから制御量Dcを導出して、モーターM1〜M6を制御するモードを、本明細書において「力制御モード」という。
(b)位置制御モードおよびハイブリッドモード:
エンドエフェクター等の構成要素が対象物Wから力を受けない非接触状態の動作では、制御部43は、力制御を行わない。すなわち、制御部43は、目標位置から線形演算で導出する回転角度で、モーターM1〜M6を制御する。目標位置から線形演算で導出する回転角度でモーターM1〜M6を制御するモードを、本明細書において「位置制御モード」という。
エンドエフェクター等の構成要素が対象物Wから力を受けない非接触状態の動作では、制御部43は、力制御を行わない。すなわち、制御部43は、目標位置から線形演算で導出する回転角度で、モーターM1〜M6を制御する。目標位置から線形演算で導出する回転角度でモーターM1〜M6を制御するモードを、本明細書において「位置制御モード」という。
また、制御部43は、目標位置から線形演算で導出する回転角度と、目標力を運動方程式に代入して導出する回転角度とを、たとえば線型結合によって統合し、統合した回転角度でモーターM1〜M6を制御することができる。そのような制御モードを、本明細書において「ハイブリッドモード」という。
これらの制御モードは、動作ごとに、ロボットプログラム44bによって予め決められる。
位置制御モードで制御を行う場合、位置制御部43aは、微小動作ごとの目標位置Ltを決定する。微小動作ごとの目標位置Ltが得られると、制御部43は、目標位置Ltと対応関係U1に基づいて、ロボット座標系を規定する各軸の方向の動作位置を、各モーターM1〜M6の目標の回転角度である目標角度Dtに変換する。なお、図2の中段右部においては、(Lt+ΔL)に基づいて目標角度Dtが決定される旨、記されている。しかし、これは、ハイブリッドモードにおける処理を表しているものであり、位置制御モードにおいては、目標位置Ltに基づいて目標角度Dtが決定される。
サーボ43dは、パラメーター44aを参照してサーボゲインKpp,Kpi,Kpd,Kvp,Kvi,Kvdを取得し、目標角度Dtに基づいて、制御量Dcを導出する。制御量Dcは、モーターM1〜M6のそれぞれについて特定され、各モーターM1〜M6の制御量DcでモーターM1〜M6のそれぞれが制御される。この結果、各動作において、TCPは、微小動作ごとの目標位置Ltを経由し、加減速特性に従って始点から終点まで移動する。
一方、ハイブリッドモードでは、制御部43は、微小動作ごとの目標位置Ltに、力由来補正量ΔLを加算することにより動作位置(Lt+ΔL)を特定し、当該動作位置に基づいて目標角度Dtを取得し(図2の中段右部参照)、制御量Dcを取得する。
(iii)接触判定部43cにおける処理:
接触判定部43cは、ロボット1〜3が作業において想定されていない物体と接触したか否かを判定する機能を実行する。接触判定部43cは、ロボット1〜3のそれぞれが備える力覚センサーPSの出力を取得する(図2の中段右部参照)。そして、出力が予め決められた基準値を超えた場合に、接触判定部43cは、ロボット1〜3が作業において想定されていない物体と接触したと判定する。この場合、種々の処理が行われてよいが、接触判定部43cは、たとえば、ロボット1〜3の制御量Dcを0としてロボット1〜3を停止させる。なお、停止させる際の制御量は、種々の制御量であってよく、直前の制御量Dcをキャンセルする制御量でロボット1〜3を動作させる構成等であってもよい。
接触判定部43cは、ロボット1〜3が作業において想定されていない物体と接触したか否かを判定する機能を実行する。接触判定部43cは、ロボット1〜3のそれぞれが備える力覚センサーPSの出力を取得する(図2の中段右部参照)。そして、出力が予め決められた基準値を超えた場合に、接触判定部43cは、ロボット1〜3が作業において想定されていない物体と接触したと判定する。この場合、種々の処理が行われてよいが、接触判定部43cは、たとえば、ロボット1〜3の制御量Dcを0としてロボット1〜3を停止させる。なお、停止させる際の制御量は、種々の制御量であってよく、直前の制御量Dcをキャンセルする制御量でロボット1〜3を動作させる構成等であってもよい。
A3.ピックアップ処理:
以下で、ロボット1〜3の動作を説明する。ここでは、一例として、ロボット2の照明部22で照明され、ロボット1の撮像部21で撮像された対象物Wを、ロボット3のグリッパー23でピックアップする作業について、説明する(図1参照)。ピックアップ処理は、ロボットプログラム44bによって検出部42および制御部43が実行する処理によって実現される(図2参照)。本実施形態においてピックアップ処理は、作業台に対象物Wが配置した状態で実行される。
以下で、ロボット1〜3の動作を説明する。ここでは、一例として、ロボット2の照明部22で照明され、ロボット1の撮像部21で撮像された対象物Wを、ロボット3のグリッパー23でピックアップする作業について、説明する(図1参照)。ピックアップ処理は、ロボットプログラム44bによって検出部42および制御部43が実行する処理によって実現される(図2参照)。本実施形態においてピックアップ処理は、作業台に対象物Wが配置した状態で実行される。
図6は、ピックアップ処理のフローチャートの例を示す図である。ピックアップ処理が開始されると、ステップS100において、検出部42は、撮像部21で撮像した画像を取得する。より具体的には、以下の処理が行われる。
検出部42は、パラメーター44aに含まれる照明部の位置(図3の右上部参照)を参照して、照明部22の目標位置を決定し、その目標位置を位置制御部43aに渡す。位置制御部43a(図2の中段右部参照)は、現在の照明部22の位置を始点とし、パラメーター44aが示す照明部22の目標位置を終点とする位置制御を実行し、目標位置に照明部22を移動させる。
検出部42は、パラメーター44aに含まれる照明部の明るさ(図3の右上部参照)を参照して、照明部22の明るさの目標値を決定し、照明部22を制御して、その目標値の明るさの光を照射させる。
検出部42は、パラメーター44aに含まれる撮像部の位置(図3の右上部参照)を参照して、撮像部21の目標位置を決定し、その目標位置を位置制御部43aに渡す。位置制御部43a(図2の中段右部参照)は、現在の撮像部21の位置を始点とし、パラメーター44aが示す撮像部21の目標位置を終点とする位置制御を実行し、目標位置に撮像部21を移動させる。
検出部42は、パラメーター44aに含まれる撮像部の露光時間および撮像部の絞り(図3の右上部参照)を参照して、撮像部21の露光時間および絞りの目標値を決定する。そして、検出部42は、撮像部21を制御して、露光時間および絞りを、それぞれの目標値に設定する。
露光時間および絞りの設定が完了すると、撮像部21は、画像を撮像し、検出部42に出力する。以上の処理により、検出部42は、ステップS100において画像を取得する。
図6のステップS105において、検出部42は、取得した画像に基づいて、対象物の検出に成功したか否かを判定する。より具体的には、以下の処理が行われる。
検出部42は、パラメーター44aを参照して画像処理シーケンスを特定し、その画像処理シーケンスが示す各処理を、パラメーター44aが示す強度で実行する(図2の左下部参照)。また、検出部42は、テンプレートデータ44cを参照し(図2の左下部参照)、テンプレートデータ44cと画像との差分を閾値と比較する。差分が閾値以下である場合に、検出部42は、対象物の検出が成功したと判定する。
図6のステップS105において、対象物の検出が成功したと判定されない場合、検出部42は、テンプレートデータ44cと画像の相対位置、またはテンプレートデータ44cの大きさ、の少なくとも一方を変化させ、ステップS100以降の処理を繰り返す。一方、ステップS105において、対象物の検出が成功したと判定された場合、処理はステップS110に進む。
ここで説明するピックアップ処理は、対象物の検出(S100,S105)の後に、以下の動作を含む。(i)検出部42が検出した対象物Wの位置および姿勢に合わせて、ロボット3のグリッパー23を移動させる。(ii)検出部42が検出した対象物Wの位置および姿勢に合わせて、グリッパー23の姿勢を変化させる。(iii)グリッパー23で対象物Wをピックアップする。(iv)所定の位置まで対象物Wを運ぶ。(v)グリッパー23から対象物Wを離す。
位置制御部43aおよび力制御部43bは、ロボットプログラム44bに基づいて、あらかじめ、実行する処理に含まれている複数の動作(ここでは、上記(i)〜(v)を含む複数の動作)を特定する。なお、ここでは、大まかに(i)〜(v)までの動作を挙げて説明したが、実際には、ピックアップ処理は、より多くの細かい動作を含む。
ステップS110において、制御部43は、制御目標を特定する。制御目標は、力由来補正量ΔL、目標位置Ltなどである(図2の中段右部参照)。制御目標は、次に実行される動作の制御モードによって異なる。次に実行される動作は、各動作の中で未処理かつ時系列で最先の動作である。
次に実行される動作が、力制御モードで実行される動作である場合、制御目標は、力由来補正量ΔLである(上記A2.(3)(ii)(a)参照)。次に実行される動作が力制御モードで実行される動作である場合、力制御部43bは、パラメーター44aの力制御パラメーターを参照し、力制御座標系および目標力を取得する(図3の下段参照)。力制御部43b(図2の中段右部参照)は、力制御座標系に基づいて、当該目標力をロボット座標系の目標力fLtに変換する。また、力制御部43bは、力覚センサーPSの出力をTCPに作用している作用力fLに変換する。さらに、力制御部43bは、パラメーター44aの力制御パラメーター(インピーダンスパラメーターm,d,k)を参照して、力由来補正量ΔLを決定する(図3の下段および図2の中段右部参照)。
次に実行される動作が、位置制御モードで実行される動作である場合、制御目標は目標位置Ltである(上記A2.(3)(ii)(b)参照)。次に実行される動作が位置制御モードで実行される動作である場合、位置制御部43a(図2の中段左部参照)は、次に実行される動作を、さらに微小動作に細分化する。そして、位置制御部43aは、パラメーター44aの動作パラメーターを参照し、始点、終点、および加減速特性に基づいて、微小動作ごとの目標位置Ltを決定する(図3の中段、および図2の中段参照)。
次に実行される動作が、ハイブリッドモードで実行される動作である場合、制御目標は、目標位置Ltおよび力由来補正量ΔLである。次に実行される動作が、ハイブリッドモードで実行される動作である場合、位置制御部43aは、次に実行される動作を微小動作に細分化する。そして、位置制御部43a(図2の中段左部参照)は、パラメーター44aの力制御パラメーターを参照し、始点、終点、および加減速特性に基づいて、微小動作ごとの目標位置Ltを取得する(図3の下段、および図2の中段参照)。その後、位置制御部43aは、力制御座標系、目標力fLt、インピーダンスパラメーター、作用力fLに基づいて、力由来補正量ΔLを決定する(図3の下段、および図2の中段右部参照)。
図6のステップS115において、サーボ43d(図2の中段左部参照)は、グリッパー23が取り付けられているロボット3を、決定した制御目標(目標位置Ltや力由来補正量ΔL)で制御する。
ステップS120において、制御部43は、現在の動作が終了したか否かを判定する。この判定は、種々の終了判定条件によって実行されてよい。たとえば、現在の動作が、位置制御モードで実行される動作であれば、TCPが目標位置に達したことや、目標位置においてTCPが整定したこと等が、判定条件として挙げられる。
現在の動作が、力制御モードで実行される動作であれば、作用力が目標力に一致した状態から作用力が指定の大きさ以上、または指定の大きさ以下に変化したことや、TCPが指定の範囲外になったこと等が、判定条件として挙げられる。作用力が目標力に一致した状態から作用力が指定の大きさ以上、または指定の大きさ以下に変化したことを判定条件とする場合としては、たとえば、ピックアップ処理における対象物の把持動作の完了を判定する場合や、把持解除動作の完了を判定する場合が挙げられる。TCPが指定の範囲外になったことを判定条件とする場合としては、たとえば、ドリルによる対象物の貫通処理においてドリルが貫通したことを判定する場合が挙げられる。
ステップS120において、現在の動作が終了したと判定された場合、処理は、ステップS125に進む。一方、ステップS120において、現在の動作が終了したと判定されない場合、制御部43は、微小時間ΔT後に、次の微小動作の制御目標に基づいて、ステップS115以降の処理を実行する。なお、現在、実行されている動作が、位置制御モードで実行される動作である場合、制御部43は、引き続き、ステップS115で、制御目標としての力由来補正量ΔLに基づく制御を行う。
ステップS125において、制御部43は、処理が終了したか否かを判定する。ステップS120で終了したと判定された動作が、ピックアップ処理における最終動作であった場合、制御部43は、ピックアップ処理が終了したと判定する。ステップS125でピックアップ処理が終了したと判定された場合、図6のフローの処理は、終了する。ステップS125で処理が終了したと判定されなかった場合、処理は、ステップS130に進む。
ステップS130では、制御部43は、ピックアップ処理のシーケンスの次の動作を、現在の動作に変更し、ステップS110以降の処理を実行する。
A4.パラメーターの最適化:
(1)パラメーターの最適化処理:
図7は、加減速特性を表すパラメーターとサーボゲインを表すパラメーターを最適化する最適化方法を示すフローチャートである。本実施形態においては、ロボット1〜3の運用に先立って、動作パラメーターのうちの加減速特性を表すパラメーターとサーボゲインを表すパラメーター(図3中段参照)が最適化される。図7の処理は、算出部41(図2の下段中央参照)によって実行される。図7の処理を実現する算出部41の機能部を、決定部41aとして図2に示す。
(1)パラメーターの最適化処理:
図7は、加減速特性を表すパラメーターとサーボゲインを表すパラメーターを最適化する最適化方法を示すフローチャートである。本実施形態においては、ロボット1〜3の運用に先立って、動作パラメーターのうちの加減速特性を表すパラメーターとサーボゲインを表すパラメーター(図3中段参照)が最適化される。図7の処理は、算出部41(図2の下段中央参照)によって実行される。図7の処理を実現する算出部41の機能部を、決定部41aとして図2に示す。
ステップS200においては、加減速特性とサーボゲインを最適化する動作が決定される。選択される動作には、たとえば、上記のピックアップ処理の説明において例示した(i)〜(v)の動作が含まれる(上記A3.参照)。
ステップS210では、評価するパラメーターの具体的な値が決定される。評価するパラメーターは、たとえば、制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きdの具体的な値の組み合わせである(図4および図5参照)。ステップS210では、これらのパラメーターの具体的な値が、ベイズ最適化により、決定される。パラメーターの具体的な値の決定方法については、後に説明する。
ステップS220では、ステップS210で決定されたパラメーターにしたがって、ステップS200で決定された動作が実施される。そして、ステップS210で決定されたパラメーターにしたがって実施された動作が、目的関数および制約関数によって評価される。目的関数に含まれうる評価の指標としては、以下の指標がある。
(I−1)動作の開始から終了までの所要時間。
所要時間が短いほど、評価は高くなる。動作の開始から終了までの所要時間は、動作の開始時および終了時のTCPの目標位置と、エンコーダーE1〜E6(図2上段参照)から得られるTCPの各時刻の位置に基づいて、決定することができる。
所要時間が短いほど、評価は高くなる。動作の開始から終了までの所要時間は、動作の開始時および終了時のTCPの目標位置と、エンコーダーE1〜E6(図2上段参照)から得られるTCPの各時刻の位置に基づいて、決定することができる。
(I−2)動作の終了時におけるTCPの位置ずれの最大値(いわゆる、オーバーシュート)。
図8は、動作の終了時におけるTCPの位置を示すグラフである。この指標においては、ロボットのTCPの目標位置Ltと、オーバーシュートLmaxと、のずれが小さいほど、評価は高くなる。TCPの位置ずれは、動作の終了時のTCPの目標位置Ltと、エンコーダーE1〜E6(図2上段参照)から得られる動作の終了時前後のTCPの位置Lと、ロボットのアームの先端に設けられている6軸の加速度センサーの出力と、に基づいて、決定することができる。
図8は、動作の終了時におけるTCPの位置を示すグラフである。この指標においては、ロボットのTCPの目標位置Ltと、オーバーシュートLmaxと、のずれが小さいほど、評価は高くなる。TCPの位置ずれは、動作の終了時のTCPの目標位置Ltと、エンコーダーE1〜E6(図2上段参照)から得られる動作の終了時前後のTCPの位置Lと、ロボットのアームの先端に設けられている6軸の加速度センサーの出力と、に基づいて、決定することができる。
(I−3)動作の終了時におけるTCPの位置ずれが、あらかじめ定められた値Lpm未満となる時刻までの、目標位置に到達しているべき時刻からの経過時間Ts(いわゆる、整定時間)。
整定時間Ts(図8参照)が短いほど、評価は高くなる。整定時間Tsは、動作の終了時のTCPの目標位置Ltと、エンコーダーE1〜E6(図2上段参照)から得られる動作の終了時前後のTCPの位置Lと、ロボットのアームの先端に設けられている6軸の加速度センサーの出力と、に基づいて、決定することができる。
整定時間Ts(図8参照)が短いほど、評価は高くなる。整定時間Tsは、動作の終了時のTCPの目標位置Ltと、エンコーダーE1〜E6(図2上段参照)から得られる動作の終了時前後のTCPの位置Lと、ロボットのアームの先端に設けられている6軸の加速度センサーの出力と、に基づいて、決定することができる。
(I−4)ロボットが動作を行う際に要するモーターの駆動力。
駆動力が小さいほど評価は高くなる。ロボットが動作を行う際に要するモーターの駆動力(トルク)は、モーターM1〜M6に流れる電流を計測する電流計の出力に基づいて、決定することができる。ロボットが動作を行う際に要するモーターの駆動力は、たとえば、動作の開始後から次の動作の開始前まで動作に要したモーターの駆動力の最大値とすることができる。
駆動力が小さいほど評価は高くなる。ロボットが動作を行う際に要するモーターの駆動力(トルク)は、モーターM1〜M6に流れる電流を計測する電流計の出力に基づいて、決定することができる。ロボットが動作を行う際に要するモーターの駆動力は、たとえば、動作の開始後から次の動作の開始前まで動作に要したモーターの駆動力の最大値とすることができる。
(I−5)ロボットが動作を実行する際に発生する音の大きさ。
図9は、ロボットが動作を実行する際に発生する音の大きさ(dB)を、横軸を周波数として表したグラフである。この指標においては、音の大きさが小さいほど、評価は高くなる。ロボットが動作を実行する際に発生する音の大きさは、以下のように決定することができる。すなわち、各ロボットの近傍に設けられたマイクによって、音を収集し、あらかじめ定められた周波数帯Rtに含まれる音の大きさ(エネルギー量)に基づいて、「音の大きさ」の指標を決定することができる。そのように、「音の大きさ」の評価指標を定めることにより、ユーザーに取って不快な音を抑制するように、パラメーターを設定することができる。
図9は、ロボットが動作を実行する際に発生する音の大きさ(dB)を、横軸を周波数として表したグラフである。この指標においては、音の大きさが小さいほど、評価は高くなる。ロボットが動作を実行する際に発生する音の大きさは、以下のように決定することができる。すなわち、各ロボットの近傍に設けられたマイクによって、音を収集し、あらかじめ定められた周波数帯Rtに含まれる音の大きさ(エネルギー量)に基づいて、「音の大きさ」の指標を決定することができる。そのように、「音の大きさ」の評価指標を定めることにより、ユーザーに取って不快な音を抑制するように、パラメーターを設定することができる。
制約関数は、たとえば、上記指標のうち目的関数に含まれない指標を含むことができる。
図7のステップS230では、それまでにS220で実施されたパラメーターの設定のうち、制約関数の出力値が制約条件を満たし、かつ、もっとも目的関数の観測値の評価が高かったパラメーターの設定を、暫定的な最適設定として、最適化モデルを更新する。
ステップS240では、最適化の終了条件が満たされるか否かが判定される。具体的には、ステップS230で決定された暫定的なパラメーターの設定値についての目的関数による評価が十分に高いこと、または、あらかじめ定められた回数だけステップS210〜S230の処理が実行されたこと、のいずれかが満たされる場合には、最適化の終了条件が満たされると判定される。最適化の終了条件が満たされない場合には、処理の繰り返し回数のカウントが増やされて、処理はS210に戻る。最適化の終了条件が満たされる場合には、処理はS250に進む。
ステップS250では、算出部41は、その時点で最適化モデルを規定する入力パラメーターを、記憶部44(図2の右下部参照)に出力し、記憶させる。その後、図7の処理は終了する。ステップS250の機能を実現する算出部41の機能部を、出力部41bとして図2に示す。
このような処理を行うことにより、ステップS210〜S230を繰り返すことにより得られた、複数の入力パラメーターに対する目的関数の複数の観測値のうち、最もよい観測値に対応する入力パラメーターが、決定される。その結果、目的関数の評価が高い設定で、ロボットを運用することができる。
上記の説明では、制約条件に関する処理の詳細な説明は省略した。しかし、実際のロボットの動作においては、制約条件が存在する。制約条件は、たとえば、TCPの目標位置からのずれの大きさが所定値以下であること、エンドエフェクターが目的位置に達した後の整定時間が所定値以下であること、ロボットを動作させる際のモーターの駆動力が所定値以下であること、などである。図7のステップS210では、そのような制約条件を満たしつつ、評価指標における評価が高いことが期待できるパラメーターの値が、ベイズ最適化により決定される。
以下では、技術の理解を容易にするため、まず、制約条件がないときのベイズ最適化について説明し、その後、本実施形態の制約条件つきベイズ最適化について説明する。
(2)制約条件のないベイズ最適化:
ベイズ最適化は、m次元の入力xに応じて出力yを与えるブラックボックス関数が、ガウス過程(Gaussian Process:GP)に従うものと仮定して、出力yを最大化する入力xを探索する方法である。ブラックボックス関数がガウス過程に従うと仮定して処理を行うことにより、目的関数の観測値が他の分布に従うという仮定を置く態様に比べて、簡易な処理で、様々な目的関数に対して高度に適合する最適化を行うことができる。
目的関数y=f(x):m次元ベクトルである入力x(x∈Rm)で決まるスカラー値y(y∈R)を与えるブラックボックス関数。mは、1以上の整数。
ベイズ最適化は、m次元の入力xに応じて出力yを与えるブラックボックス関数が、ガウス過程(Gaussian Process:GP)に従うものと仮定して、出力yを最大化する入力xを探索する方法である。ブラックボックス関数がガウス過程に従うと仮定して処理を行うことにより、目的関数の観測値が他の分布に従うという仮定を置く態様に比べて、簡易な処理で、様々な目的関数に対して高度に適合する最適化を行うことができる。
目的関数y=f(x):m次元ベクトルである入力x(x∈Rm)で決まるスカラー値y(y∈R)を与えるブラックボックス関数。mは、1以上の整数。
たとえば、ある動作における加減速特性パラメーターを、その動作の所要時間について最適化する場合には、m次元の入力xは、制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きdの具体的な値の組み合わせである(図4および図5参照)。そして、目的関数y=f(x)は、その動作の開始から終了までの所要時間が短くなるほど大きくなる関数とする。ここで、動作の所要時間について加減速特性パラメーターを最適化するために、目的関数を、所要時間が短くなるほど大きくなる関数としたのは、以下の処理において、観測値yが高い値ほど入力xが好ましい、という評価を与えるためである。
yが最大となるxを求める最適化は、以下の式で表される。
観測される出力として、観測ノイズεを加算した形式のものを使用する。
出力の観測値yj=f(xj)+ε
出力の観測値yj=f(xj)+ε
n組の入力xに対するn個の出力yの組を、観測値の組(x1:n,y1:n)とする。
必須ではないが、ガウス過程が観測結果によりフィットするようにハイパーパラメーターは調整され得る。
獲得関数(Acquired Function:AF)は、未観測の入力xに対する評価値を示す関数である。獲得関数が最も高い入力xが次の入力として選択される。獲得関数として、たとえば、次の関数AFi(x)やAF2(x)が使用され得る。
式(5)の右辺の「±」において、「+」が使用されるときは「信頼限界上限(UCB)」による獲得関数であり、「−」が使用されるときは「信頼限界下限(LCB)」による獲得関数である。
図10は、制約条件がないときのベイズ最適化の処理を示すフローチャートである。図10の処理は、図7のステップS210の処理に相当する。ステップS300pにおいて、1以上のシード点(x0,y0)を求める。「シード点」とは、m次元ベクトルである既知の入力x0と、それに対して得られるスカラー値y0の組み合わせである。シード点の入力x0は、意図的に選択されてもよいし、ランダムに選択されてもよい。
ステップS310pにおいて、繰り返し回数のカウントiを1とする。
ステップS320pにおいて、入力xi(m次元ベクトル)を決定し、入力xiに対する出力yi(スカラー値)を得る。最初にステップS320pの処理が行われるときは、入力xiは、意図的に選択されてもよいし、ランダムに選択されてもよい。図7のS240を経て、再度、S210の処理(図10の処理)が行われる場合は、図10の処理は、ステップS320pから始まる。
ステップS330pにおいて、ハイパーパラメーターh(式(2)および式(3)のα,Λ,β参照)を調整する。より具体的には、i組の入力x1:iからi個の出力y1:iが得られる確率pyを最大化するハイパーパラメーターhを求め、得られた値にハイパーパラメーターhを更新する。なお、図10のS330p中の「argmax」は、最大値(ここでは確率pyの最大値)を与える引数(ここではハイパーパラメーターh)を求める演算子である。
ステップS340pにおいて、それまでの処理でステップS320pにおいて出力yが得られているi組の入力x以外の入力xの中から、獲得関数AF(x)(式(4)および式(5)参照)が最大となる入力xを求める。得られたxを次の入力xi+1とする。その後、図10の処理は終了し、図7のステップS230に進む。
たとえば、ある動作の開始から終了までの所要時間を目的関数として、その動作における加減速特性パラメーター(制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きd)を最適化した場合には、以上の処理によって、以下の効果が得られる。すなわち、その動作の所要時間を、理論的最適解に近い程度まで短くすることができる加減速特性パラメーター(制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きd)を、効率的に得ることができる。ただし、図10の処理においては、制約条件は考慮されていない。
(3)制約条件つきベイズ最適化:
前述のように、実際のロボットの動作においては、制約条件が存在する。制約条件は、たとえば、TCPの目標位置からのずれの大きさが所定値以下であること、エンドエフェクターが目的位置に達した後の整定時間が所定値以下であること、ロボットを動作させる際のモーターの駆動力が所定値以下であること、などである。以下では、そのような制約条件を満たしつつ、動作パラメーター(図3中段参照)を最適化する最適化方法について説明する。
前述のように、実際のロボットの動作においては、制約条件が存在する。制約条件は、たとえば、TCPの目標位置からのずれの大きさが所定値以下であること、エンドエフェクターが目的位置に達した後の整定時間が所定値以下であること、ロボットを動作させる際のモーターの駆動力が所定値以下であること、などである。以下では、そのような制約条件を満たしつつ、動作パラメーター(図3中段参照)を最適化する最適化方法について説明する。
観測される制約関数の出力ciとして、観測ノイズεiを加算した形式のものを使用する。
ci=gi(x)+εi
ci=gi(x)+εi
制約付きベイズ最適化としては、以下の制約付きEI関数を使用したものがある。
なお、制約付き最適化問題を、次式で表される制約無しの問題として扱う方法も提案されている。
本実施形態においては、以下のように制約付きベイズ最適化が改良される。上述の式(2),(3)と同様の式を使って、i番目の制約関数ci=gi(x)の平均と分散を推定する。
獲得関数AFとして信頼限界(Confidence Bound)を使用すると、獲得関数AFを用いてxを求める問題は、次のような制約付き最適化問題となる。
式(11)は、次式に書き換えることができる。
式(12)の解法としては、一般の制約付き最適化問題で利用される内点法(Interior point method)や有効制約法(Active set method)等の周知の方法を使用できる。
なお、式(12)を使った最適化は、制約付きの非線形計画問題であり、多くの局所的最適解を含むため、最適解に到達できない可能性がある。この問題を解決する方法の一つは、ランダムに選択した初期値セットを含む獲得関数を最適化して次の実行可能点(feasible point)を決定する方法であるが、次の実行可能点(制約条件を満たす点)がうまく求まらない場合がある。実行可能点がうまく求まらない場合の対策の一つは、最良点を次の点として選択することである。最良点を選択する基準としては、例えば、上記式(5)または式(7)の獲得関数を使用できる。
図11は、以上で説明した制約条件つきベイズ最適化処理のイメージを説明する説明図である。図11において、横軸は入力xを表す。入力xは、m次元ベクトルであるが、ここでは、技術の理解を容易にするために、xを1軸で表している。図11において、縦軸は、ciである。図11中、黒い丸が、すでに得られている観測値、すなわち、既知の入力xと、それに対して得られている制約関数ciの出力の組み合わせを表す。
m次元の入力xに応じて出力を与えるi番目の制約関数ci=gi(x)が、ガウス過程に従うものと仮定して、既知の観測値に基づいて、i番目の制約関数ciの平均μi cnと分散σi cn 2が推定される(式(9),(10)参照)。制約関数がガウス過程に従うと仮定して処理を行うことにより、制約関数の観測値が他の分布に従うという仮定を置く態様に比べて、簡易な処理で、様々な制約関数に対して高度に適合する最適化を行うことができる。
図11において、各xに対する平均μi cnを太い曲線で示す。また、平均μi cnに対して、信頼限界下限と信頼限界上限を、平均μi cnの太い曲線の上下に位置する細い曲線CBで示す。たとえば、式(11)において、δ=0.05とすると、未観測の制約関数の出力ciは、95%の確率で、図11において信頼限界上限を表す細い曲線(平均μi cnを表す太い曲線の上側に位置する)よりも下側に位置することとなる。
図12は、式(12)による処理のイメージを説明する説明図である。なお、図11および図12は、いずれもイメージを説明するための図である。このため、図11のグラフと図12のグラフは、正確に整合するとは限らない。
図12の上段には、CFi(x)=[μi cn(x)+zσi cn(x)]のグラフを示す(式(12)のs.t.以下参照)。図12の上段のグラフにおいて、黒い丸が、既知の入力xと、それに対して得られる[μi cn(x)+zσi cn(x)]の組み合わせを表す。式(12)においては、[μi cn(x)+zσi cn(x)]で推定されるci(x)が、0より小さいことが求められている。よって、[μi cn(x)+zσi cn(x)]のグラフが0より小さい区間が、制約関数ciが0より小さいと推定できるxの領域CxAである。制約関数ci(x)が0より小さいと推定できるxの制約範囲を「制約x範囲CxA」とも呼ぶ。
なお、制約x範囲CxAは、式(12)におけるzに応じて定まる。より具体的には、制約x範囲CxAは、zを規定するδに応じて定まる。たとえば、δ=0.05とすると、制約x範囲CxA内にあるxは、95%の確率で、ci<0を満たすと推定できる。
図12の中段には、目的関数の出力yの分布のグラフを示す。目的関数の出力yの分布は、式(2),(3)によって得られる平均と分散から推定される。図12の中段において、黒い丸が、すでに得られている観測値、すなわち、既知の入力xと、それに対して得られている目的関数yの出力yの組み合わせを表す。図12の中段において、各xに対する目的関数の出力の平均μnを太い曲線で示す。また、平均μnに対して、信頼限界下限と信頼限界上限を、平均μnの太い曲線の上下に位置する細い曲線CBで示す。
目的関数の出力yの獲得関数AFとして、制約条件の場合と同様、信頼限界を採用すると、獲得関数AF(x)は、図12の下段に示すようになる。それまでの処理で出力yが得られている入力x以外の入力xであって、かつ、制約x範囲CxA内にあるxのうちで、獲得関数AF(x)を最大にする入力xが、次の入力xi+1とされる(図10のS340p参照)。
図13は、本実施形態における制約条件つきベイズ最適化の処理を示すフローチャートである。図13の処理は、図7のステップS210の処理に相当する。図13の処理は、制御装置40の算出部41(図2の下段参照)によって実行される。すなわち、制御装置40の算出部41が、記憶部44に記憶されたパラメーター44a(図2の中段左部参照)を修正する。
ステップS300において、1以上のシード点(x0,y0,c0)を求める。「シード点」とは、m次元ベクトルである既知の入力x0と、入力x0に対して得られるスカラー値y0と、入力x0に対して得られるスカラー値c0(x)の組み合わせである。シード点の入力x0は、意図的に選択されてもよいし、ランダムに選択されてもよい。
ステップS310において、繰り返し回数のカウントiを1とする。
ステップS320において、入力xi(m次元ベクトル)を決定し、入力xiに対する目的関数の出力yi(スカラー値)および制約関数の出力ci(スカラー値)を得る。最初にステップS320の処理が行われるときは、入力x1は、意図的に選択されてもよいし、ランダムに選択されてもよい。図7のS240を経て、再度、S210の処理(図13の処理)が行われる場合は、図13の処理は、ステップS320から始まる。
ステップS330において、ハイパーパラメーターh(式(2)および式(3)のα,Λ,β参照)を調整する。より具体的には、i組の入力x1:iからi個の出力y1:iが得られる確率pyを最大化するハイパーパラメーターhyを求め、得られた値にハイパーパラメーターhyを更新する。また、i組の入力x1:iからi個の出力c1:iが得られる確率pcを最大化するハイパーパラメーターhcを求め、得られた値にハイパーパラメーターhcを更新する。hyとhcとは異なっていてもよい。
ステップS340において、それまでの処理でステップS320において出力yが得られている(i+1)組の入力x以外の入力xの中から、式(12)にしたがって(μn(x)+λnσn(x))が最大となる入力xを求める。得られたxを次の入力xi+1とする。
具体的には、ステップS340において、各制約関数の観測値cがガウス分布にしたがうという仮定のもとで、以下の処理が行われる。すなわち、ステップS342において、それまでに得られている制約関数の観測値c1:iから、平均μi cnおよび分散σi cn 2を得る(式(9)および式(10)参照)。それらの制約関数の統計パラメーターに基づいて、それまでに観測値を得たx1:iとは異なる複数組の入力パラメーターに対する制約関数の出力cの信頼限界CBが、決定される(図11参照)。ステップS344において、制約関数の出力cの信頼限界CBを使用して、制約関数の出力cが条件を満たすと推定される入力パラメーターの制約x範囲CxAが決定される(図12上段参照)。ステップS346において、決定された制約x範囲CxA内において、ベイズ最適化により、目的関数yの最適化を行って、1組の入力パラメーターxn+1が新たに決定される(図12の中段および下段参照)。その後、処理は図7のS220に進む。
このように、ベイズ最適化により次の入力xi+1を決定することにより、グリッドサーチなどの他の手法で目的関数の最適化を行う態様に比べて、効率的に新たな入力パラメーターを決定することができる。
なお、図7のS230では、それまでにS220で評価が得られているすべての入力xの中から、制約関数ci<0を満たす入力xであって、評価関数の出力yが最大の入力xを、暫定的な最適化モデルの入力パラメータとして決定する。
たとえば、ある動作の開始から終了までの所要時間を目的関数として、その動作終了時におけるTCPの目的位置からのずれ量が所定値以下であるという条件下で、その動作における加減速特性パラメーター(制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きd)を最適化した場合には、以上の処理によって、以下の効果が得られる。すなわち、その動作の所要時間を、理論的最適解に近い程度まで短くすることができる加減速特性パラメーター(制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きd)を、効率的に得ることができる。
本実施形態によれば、実施してみなければ分からないある動作の所要時間について、制約条件を満たしかつ好ましい解を与える入力パラメーターxを得る際に、制約条件を満たす可能性が高い1以上の制約範囲内の入力パラメーターxから、目的関数の出力yが好ましいと推定できる入力パラメーターを、次の入力パラメーターxi+1として決定することができる(図11、図12および図13のS340参照)。そして、そのようにして得られた目的関数の複数の観測値のうち、最もよい観測値に対応する入力パラメーターを、入力パラメーターの最適解として得ることができる(図7のS230,S250参照)。よって、効率的に、かつ、局所解に陥ることなく、制約条件を満たす入力パラメーターの最適解を得ることができる。
なお、本実施形態における図13のS300の処理が、あらかじめ定められた1組以上の入力パラメーターに対する制約関数の観測値を準備する工程の具体例である。S342の処理が、前記制約関数の観測値が統計的分布にしたがうという仮定のもとで前記制約関数の前記観測値から得られる、前記制約関数の統計パラメーターに基づいて、前記1組以上の入力パラメーターとは異なる複数組の入力パラメーターに対する前記制約関数の出力の信頼限界を決定する工程の具体例である(図11も参照)。図13のS344の処理が、前記制約関数の出力の前記信頼限界を使用して、前記制約関数の出力が条件を満たすと推定される入力パラメーターの制約範囲を決定する工程の具体例である(図12の上段も参照)。S346の処理が、前記決定された制約範囲内において、目的関数の最適化を行って、前記複数組の入力パラメーターの中から1組の入力パラメーターを新たに決定する工程の具体例である(図12の中段および下段参照)。
本実施形態における図7のS220の処理が、決定された前記1組の入力パラメーターによる前記目的関数の観測値を得る工程の具体例である。S230およびS250の処理が、前記工程を繰り返すことにより得られる、複数の入力パラメーターに対する前記目的関数の複数の観測値のうち、最もよい観測値に対応する入力パラメーターを、出力する工程の具体例である。
本実施形態における上限最大加速度a1(図5参照)が、最大加速度の具体例である。
(4)目的関数:
目的関数としては、上記(I−1)〜(I−5)で説明した評価指標など、さまざまな評価指標を表す関数を採用しうる。上記各指標について入力パラメーターを最適化することにより、実際にロボットの運用において求められる指標についての評価が高くなるように、ロボットの動作の最適化を行うことができる。たとえば、目的関数としては、以下の関数を採用しうる(上記(I−1)参照)。
目的関数としては、上記(I−1)〜(I−5)で説明した評価指標など、さまざまな評価指標を表す関数を採用しうる。上記各指標について入力パラメーターを最適化することにより、実際にロボットの運用において求められる指標についての評価が高くなるように、ロボットの動作の最適化を行うことができる。たとえば、目的関数としては、以下の関数を採用しうる(上記(I−1)参照)。
ここで、tpは、動作p(p:1〜P。Pは、1以上の整数)のサイクルタイム(動作の開始から終了までの時間)、dpは、動作pにおける移動距離、Eは、動作1〜Pについての期待値を表す関数であって0以上1未満の値を返す関数である。ここでは、具体的には、Eは、(tp/dp)(p:1〜P)の平均値に対応する0以上1未満の値を返す関数である。
(5)制約関数:
制約関数としては、上記(I−1)〜(I−5)で説明した評価指標のうち、目的関数ではない指標など、さまざまな評価指標を表す関数を採用しうる。上記各指標について制約条件を設定して入力パラメーターを最適化することにより、実際に求められる指標についての制約条件を満たすように、ロボットの動作の最適化を行うことができる。たとえば、制約関数としては、以下の関数を採用しうる。
制約関数としては、上記(I−1)〜(I−5)で説明した評価指標のうち、目的関数ではない指標など、さまざまな評価指標を表す関数を採用しうる。上記各指標について制約条件を設定して入力パラメーターを最適化することにより、実際に求められる指標についての制約条件を満たすように、ロボットの動作の最適化を行うことができる。たとえば、制約関数としては、以下の関数を採用しうる。
(C1)オーバーシュートが0.1mm未満であること(上記(I−2)参照)。
この制約条件は、以下の式で表すことができる。
この制約条件は、以下の式で表すことができる。
ここで、OSpは、動作pにおけるオーバーシュート、すなわち、動作pの終了時におけるTCPの位置ずれの最大値である。
(C2)その動作において必要とされる最大トルクが、モーターの仕様としての最大トルクの80%未満であること(上記(I−4)参照)。
この制約条件は、以下の式で表すことができる。
ここで、Tpは、動作pにおいて必要とされる最大トルクであり、Tmaxは、モーターの仕様としての最大トルクである。
(6)最適化するパラメーター:
最適化するパラメーターとしては、様々なパラメーターを採用しうる(図2の中段左部参照)。たとえば、最適化するパラメーターとしては、以下のようなパラメーターを採用しうる。
最適化するパラメーターとしては、様々なパラメーターを採用しうる(図2の中段左部参照)。たとえば、最適化するパラメーターとしては、以下のようなパラメーターを採用しうる。
(OP1)加減速特性を表すパラメーター:制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きd(図3の中段、図4および図5参照)。加減速特性を表すパラメーターは、関節(作動軸)ごとに設定される。なお、各パラメーターは、加速の場合と減速の場合とを分けて設定されることができる。
(OP2)重力補正パラメーター:重力による影響(たとえば、アーム部材のたわみ)を打ち消すために制御目標を補正する際に使用されるパラメーターである。重力補正パラメーターは、各関節について、6軸(x,y,z,Rx,Ry,Rz)ごとに設定される。
(OP3)ねじれ補正パラメーター:重力および加速度によるアーム部材のねじれを打ち消すために加速度を補正する際に使用されるパラメーターである。各関節について、Rx,Ry,Rzごとに設定される。
(OP2)重力補正パラメーター:重力による影響(たとえば、アーム部材のたわみ)を打ち消すために制御目標を補正する際に使用されるパラメーターである。重力補正パラメーターは、各関節について、6軸(x,y,z,Rx,Ry,Rz)ごとに設定される。
(OP3)ねじれ補正パラメーター:重力および加速度によるアーム部材のねじれを打ち消すために加速度を補正する際に使用されるパラメーターである。各関節について、Rx,Ry,Rzごとに設定される。
(OP4)運用限界加速度パラメーター:ロボットを破損させず、かつ、振動(上記(I−2),(I−3)参照)が許容範囲内となるように設定される加速度を表すパラメーターである。運用限界加速度パラメーターは、加減速特性を表すパラメーターと同様の手法で、イナーシャに応じて設定することができる(図5参照)。運用限界加速度パラメーターは、各関節について、設定される。各パラメーターは、加速の場合と減速の場合とを分けて設定されることができる。
(OP5)運用限界加速度用の補正パラメーター:運用限界加速度を、ロボットが保持する負荷の大きさに応じて補正するためのパラメーターである。運用限界加速度用の補正パラメーターは、ロボットが保持する負荷の大きさに応じて設定される。運用限界加速度用の補正パラメーターは、基準目標加速度Astを補正して目標加速度Atを得る際の手法と同様の手法で、運用限界加速度に対して適用される。
(OP6)速度用の補正パラメーター:関節の回転速度を、ロボットが保持する負荷の大きさに応じて補正するためのパラメーターである。速度用の補正パラメーターは、ロボットが保持する負荷の大きさに応じて設定される。速度用の補正パラメーターは、基準目標加速度Astを補正して目標加速度Atを得る際の手法と同様の手法で、速度に対して適用される。
(OP5)運用限界加速度用の補正パラメーター:運用限界加速度を、ロボットが保持する負荷の大きさに応じて補正するためのパラメーターである。運用限界加速度用の補正パラメーターは、ロボットが保持する負荷の大きさに応じて設定される。運用限界加速度用の補正パラメーターは、基準目標加速度Astを補正して目標加速度Atを得る際の手法と同様の手法で、運用限界加速度に対して適用される。
(OP6)速度用の補正パラメーター:関節の回転速度を、ロボットが保持する負荷の大きさに応じて補正するためのパラメーターである。速度用の補正パラメーターは、ロボットが保持する負荷の大きさに応じて設定される。速度用の補正パラメーターは、基準目標加速度Astを補正して目標加速度Atを得る際の手法と同様の手法で、速度に対して適用される。
(OP7)高さ補正パラメーター:関節の回転速度および回転加速度を、ロボットのアームAの最大高さ位置に応じて補正するためのパラメーターである。たとえば、6個のアーム部材A1〜A6(図1参照)が一列にならび、かつ、Z軸+方向を向くとき、ロボットのアームAの最大高さ位置は、最大となる。なお、アーム部材A6の位置が、常に最大高さ位置となるとは限らない。アームAが屈曲しているときには、他のアーム部材の位置が、最大高さ位置となる場合がある。アームAの最大高さ位置が高いほど振動が発生しやすくなるため、高さ補正パラメーターによって、加速度が制限される。速度用の補正パラメーターは、ロボットのアームAの最大高さ位置に応じて設定される。
上記各パラメーターに代表される、ロボットの動作を制御するためのパラメーターを、本実施形態の手法で最適化することにより、ロボットの動作の最適化を容易に行うことができる。また、本実施形態では、ベイズ最適化を使用してロボットの動作に関する動作パラメーターを決定する。このため、勾配法など他の手法を使用して動作パラメーターを決定する態様に比べて、局所解に陥る可能性を低減しつつ、自動的かつ効率的にロボットの動作パラメーターを決定して、ロボットを制御することができる。
(7)評価:
ロボット3のピックアップ処理(図3参照)について、関節J1〜J6の加減速特性を表すパラメーター(OP1)を最適化する処理を行った。最適化の対象としたピックアップ処理は、35個の動作を含む。比較例では、人間が動作パラメーターを設定した。実施例では、本実施形態のベイズ最適化(図7および図13参照)を適用して、動作パラメーターを設定した。実施例においては、目的関数を上記式(13)とした。制約条件は、上記(C1)、ならびに関節J1〜J3に関する上記(C2)とした。最適化の終了条件(図7のS240参照)は、繰り返し回数iが40回に達したこと、とした。
ロボット3のピックアップ処理(図3参照)について、関節J1〜J6の加減速特性を表すパラメーター(OP1)を最適化する処理を行った。最適化の対象としたピックアップ処理は、35個の動作を含む。比較例では、人間が動作パラメーターを設定した。実施例では、本実施形態のベイズ最適化(図7および図13参照)を適用して、動作パラメーターを設定した。実施例においては、目的関数を上記式(13)とした。制約条件は、上記(C1)、ならびに関節J1〜J3に関する上記(C2)とした。最適化の終了条件(図7のS240参照)は、繰り返し回数iが40回に達したこと、とした。
表1より、実施例においては、比較例に比べて、平均サイクルタイムE(tp/dp)が短縮されていることが分かる。また、比較例において各パラメータを決定するまでには、専門技能を有するオペレータが約1週間を要した。これに対して、実施例において各パラメータを決定するのに要した時間は約8時間であった。このことから、本実施形態のロボットシステムによれば、ロボットにおいて各動作パラメータを決定するのに要する時間を、大幅に短縮できることが分かる。また、各動作パラメータの決定がシステムによって自動的に行われ、人手を要しない(オペレータを拘束しない)ことから、ロボットの設置および運用におけるコストを大幅に削減できることが分かる。
図14は、最適化されたピックアップ処理に含まれる35個の動作の実施例および比較例におけるサイクルタイムを示す。図14の横軸が、35個の動作を表す。図14の縦軸が、各動作のサイクルタイムを表す。黒い三角形が実施例の値を示す。黒い丸が比較例の値を示す。図14から明らかなように、ほぼすべての動作において、実施例におけるサイクルタイムが、比較例におけるサイクルタイムよりも短いことが分かる。なお、これら35個の動作のサイクルタイムの実施例および比較例ごとの平均値が、表1の平均サイクルタイムである。
図15は、実施例において、ある動作のパラメーターの最適化を行う際にテストされたパラメーター設定値の目的関数による評価の推移を示すグラフである。より具体的には、図15の実線のグラフは、図7のステップS220で実施され、評価されたパラメーターによる目的関数の出力を、示している。制約付きベイズ最適化は、制約条件を満たしつつよりよい評価が得られそうな入力値を選択し(図13のS340参照)、目的関数の出力を評価するものであるため、試行回数が後になるほど目的関数の出力が高い値になるわけではない。
図16は、実施例において、図15の動作のパラメーターの最適化を行う際にテストされたパラメーター設定値の制約関数による評価の推移を示すグラフである。より具体的には、一点鎖線のグラフは、図7のステップS220で実施され、評価されたパラメーターによる、オーバーシュートの制約関数の出力を、示している(上記(C1)参照)。二点鎖線のグラフは、ステップS220で評価されたパラメーターによる、関節J1の最大トルクの制約関数の出力を、示している(上記(C2)参照)。破線のグラフは、ステップS220で評価されたパラメーターによる、関節J2の最大トルクの制約関数の出力を、示している(上記(C2)参照)。実線のグラフは、ステップS220で評価されたパラメーターによる、関節J3の最大トルクの制約関数の出力を、示している(上記(C2)参照)。
図16の制約関数の出力値のグラフがいずれも0を下回っている試行のときの入力xが、最適解の候補となり得る(式(14),式(15)ならびに図7のS230参照)。その条件を満たす試行のときの目的関数の評価値を、図15において白い丸で示す。図7のS230では、それまでに得られている入力値のうち、もっとも目的関数の出力値が高い入力値が、暫定的な最適解とされ、最適化モデルが更新される。図7のS230における暫定的な最適解の目的関数の評価値の推移を、図15において、一点鎖線で示す。図15より、試行回数が増えると、よりよい解が得られていることが分かる。
B.他の実施形態:
B1.他の実施形態1:
(1)図17は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット1〜3及びその制御装置40の他に、パーソナルコンピューター400,410と、LANなどのネットワーク環境を介して提供されるクラウドサービス500とが描かれている。パーソナルコンピューター400,410は、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス500においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、ロボット1〜3の制御装置を実現することが可能である。
B1.他の実施形態1:
(1)図17は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット1〜3及びその制御装置40の他に、パーソナルコンピューター400,410と、LANなどのネットワーク環境を介して提供されるクラウドサービス500とが描かれている。パーソナルコンピューター400,410は、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス500においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、ロボット1〜3の制御装置を実現することが可能である。
(2)図18は、複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。この例では、ロボット1〜3の制御装置40が、ロボット1の中に格納されている点が図2と異なる。この例においても、複数のプロセッサーの一部または全部を利用して、ロボット1〜3の制御装置を実現することが可能である。
(3)上記実施形態では、対象物Wをロボット3のグリッパー23でピックアップする処理を例にして、動作パラメーターの最適化について説明した(図3および図6参照)。しかし。ただし、パラメーターが最適化される処理は、ピックアップ処理における動作パラメーターに限定されず、他にも種々の処理に適用可能である。たとえば、パラメーターが最適化される処理は、撮像部21を配置する処理や、照明部22を配置する処理に適用可能である。また、パラメーターが最適化される処理は、ネジ締め、挿入、ドリルによる穴あけ、バリ取り、研磨、組み立て、製品チェック等印も適用可能である。さらに、パラメーターが最適化される処理は、画像処理パラメータ(図3上段参照)にも適用可能である。
(4)上記実施形態では、ピックアップ処理の各動作は正常に終了するものとして、説明した。しかし、図6のステップS120において、動作が失敗したと推定される場合に、動作が終了したと判定されてもよい。ただし、この場合には、処理の中止や中断が行われることが好ましい。動作の失敗を判定するための終了判定条件としては、たとえば、TCPの移動速度や加速度が上限値を超えた場合やタイムアウトが発生した場合等が挙げられる。終了判定条件を充足したか否かは、各種のセンサー、力覚センサーPSや撮像部21、他のセンサー等が利用されてよい。
(5)上記実施形態においては、最適化される動作パラメーターには、制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きdが含まれる(図4および図5参照)。しかし、最適化される動作パラメーターは、これらの動作パラメーター以外の動作パラメーター、たとえば、動作の始点や終点を表すパラメーターやサーボゲインを表すパラメーター、さらには、光学パラメーターや力制御パラメーターなどのパラメーターとすることもできる(図3参照)。
(6)本明細書では、技術内容の説明において、便宜的に「複数組の入力パラメーター」と記載している。制約関数や目的関数の平均および分布を推定する入力パラメーターが、連続値である場合も、本明細書における「複数組の入力パラメーター」に含まれるものとする(図11および図12中段参照)。
B2.他の実施形態2:
上記実施形態においては、ベイズ最適化により、目的関数についての入力パラメーターの最適化を行った(図11および図12参照)。しかし、入力パラメーターの最適化は、Nelder-Mead法、遺伝的アルゴリズムなど、他の最適化アルゴリズムによって行われることもできる。
上記実施形態においては、ベイズ最適化により、目的関数についての入力パラメーターの最適化を行った(図11および図12参照)。しかし、入力パラメーターの最適化は、Nelder-Mead法、遺伝的アルゴリズムなど、他の最適化アルゴリズムによって行われることもできる。
B3.他の実施形態3:
上記実施形態においては、ある入力に対する目的関数の未観測の出力および制約関数の未観測の出力が、それぞれガウス分布にしたがうという仮定の下に、最適化が行われる。しかし、目的関数の出力および制約関数の出力が統計的分布にしたがうという推定は、三角分布、ガンマ分布、ワイブル分布など、ガウス分布以外の統計的分布を使用して行われてもよい。また、目的関数の未観測の出力と、制約関数の未観測の出力とが、互いに異なる統計的分布にしたがうという推定の下で処理を行うこともできる。
上記実施形態においては、ある入力に対する目的関数の未観測の出力および制約関数の未観測の出力が、それぞれガウス分布にしたがうという仮定の下に、最適化が行われる。しかし、目的関数の出力および制約関数の出力が統計的分布にしたがうという推定は、三角分布、ガンマ分布、ワイブル分布など、ガウス分布以外の統計的分布を使用して行われてもよい。また、目的関数の未観測の出力と、制約関数の未観測の出力とが、互いに異なる統計的分布にしたがうという推定の下で処理を行うこともできる。
なお、本明細書において、「統計的分布」とは、有限個の統計パラメーターによって全体を規定することができる分布を意味する。
B4.他の実施形態4:
上記実施形態においては、最適化されるパラメーターは、垂直多関節型ロボットの動作を制御するためのパラメーターである(図1および図3参照)。しかし、最適化されるパラメーターは、水平多関節ロボット、直行ロボットなど他のロボットや、プリンター、ヘッドマウントディスプレイなど、他の装置の動作を制御するためのパラメーターとすることもできる。たとえば、最適化されるパラメーターは、7個以上の作動軸を含むロボットの動作や、双腕ロボットなどの複腕ロボットの動作を制御するためのパラメーターとすることもできる。一般的に、7個以上の作動軸を含むロボットや、複腕ロボットは、他のロボットに比べて負荷が大きい。このため、そのようなロボットの動作を制御するためのパラメーターを最適化する場合には、目標関数に「ロボットが動作を行う際に要する駆動力」を含むことが望ましい。
上記実施形態においては、最適化されるパラメーターは、垂直多関節型ロボットの動作を制御するためのパラメーターである(図1および図3参照)。しかし、最適化されるパラメーターは、水平多関節ロボット、直行ロボットなど他のロボットや、プリンター、ヘッドマウントディスプレイなど、他の装置の動作を制御するためのパラメーターとすることもできる。たとえば、最適化されるパラメーターは、7個以上の作動軸を含むロボットの動作や、双腕ロボットなどの複腕ロボットの動作を制御するためのパラメーターとすることもできる。一般的に、7個以上の作動軸を含むロボットや、複腕ロボットは、他のロボットに比べて負荷が大きい。このため、そのようなロボットの動作を制御するためのパラメーターを最適化する場合には、目標関数に「ロボットが動作を行う際に要する駆動力」を含むことが望ましい。
B5.他の実施形態5:
(1)上記実施形態においては、式(13)で表される目的関数を採用した。しかし、目的関数としては、上記(I−1)〜(I−5)を要素として含む他の関数を採用することもできる。また、目的関数は、動作の際に生じる最大加速度(関節の回転の加速度であってもよいし、3次元空間における移動の加速度であってもよい)など、上記(I−1)〜(I−5)以外の要素を含むこともできる。目的関数は、評価指標の要素を2以上含むことができる。目的関数は、評価指標の要素の重み付け和を含むことができる。また、目的関数は、異なる評価指標の要素を、分子と分母に持つ項を有することもできる。
(1)上記実施形態においては、式(13)で表される目的関数を採用した。しかし、目的関数としては、上記(I−1)〜(I−5)を要素として含む他の関数を採用することもできる。また、目的関数は、動作の際に生じる最大加速度(関節の回転の加速度であってもよいし、3次元空間における移動の加速度であってもよい)など、上記(I−1)〜(I−5)以外の要素を含むこともできる。目的関数は、評価指標の要素を2以上含むことができる。目的関数は、評価指標の要素の重み付け和を含むことができる。また、目的関数は、異なる評価指標の要素を、分子と分母に持つ項を有することもできる。
(2)上記実施形態においては、位置ずれは、TCPのオーバーシュートOSである(図8参照)。しかし、位置ずれは、ずれの平均値や分散など、他の方法で評価することもできる。また、位置ずれを評価する所定部位は、エンドエフェクターの任意の部位、ロボットのアームの先端、力覚センサーの任意の部位、いずれかの関節の任意の部位など、TCP以外の部位とすることができる。
(3)上記実施形態においては、評価指標としての整定時間は、目標位置に到達しているべき時刻からの経過時間Tsであった(上記(I−3)、および図8参照)。しかし、評価指標としての整定時間は、ロボットの基準となる部位が動作の終了時における目標位置に最初に達した時刻や、動作の開始時刻など、他の基準時刻からの経過時間であってもよい。
B6.他の実施形態6:
上記実施形態においては、式(14)および式(15)で表される制約関数を採用した。しかし、制約関数としては、上記(I−1)〜(I−5)のうち、目的関数に含まれていないものを要素として含む他の関数を採用することもできる。また、制約関数は、動作の際に生じる最大加速度(関節の回転の加速度であってもよいし、3次元空間における移動の加速度であってもよい)など、上記(I−1)〜(I−5)以外の要素を含むこともできる。制約関数は、評価指標の要素を2以上含むことができる。制約関数は、評価指標の要素の重み付け和を含むことができる。また、制約関数は、異なる評価指標の要素を、分子と分母に持つ項を有することもできる。
上記実施形態においては、式(14)および式(15)で表される制約関数を採用した。しかし、制約関数としては、上記(I−1)〜(I−5)のうち、目的関数に含まれていないものを要素として含む他の関数を採用することもできる。また、制約関数は、動作の際に生じる最大加速度(関節の回転の加速度であってもよいし、3次元空間における移動の加速度であってもよい)など、上記(I−1)〜(I−5)以外の要素を含むこともできる。制約関数は、評価指標の要素を2以上含むことができる。制約関数は、評価指標の要素の重み付け和を含むことができる。また、制約関数は、異なる評価指標の要素を、分子と分母に持つ項を有することもできる。
B7.他の実施形態7:
上記実施形態においては、最適化される動作パラメーターには、上限最大加速度a1が含まれる(図4および図5参照)。しかし、最適化される動作パラメーターは、上限最大加速度a1以外の動作パラメーター、たとえば、動作の始点や終点を表すパラメーターやサーボゲインを表すパラメーター、さらには、光学パラメーターや力制御パラメーターなどのパラメーターとすることもできる(図3参照)。
上記実施形態においては、最適化される動作パラメーターには、上限最大加速度a1が含まれる(図4および図5参照)。しかし、最適化される動作パラメーターは、上限最大加速度a1以外の動作パラメーター、たとえば、動作の始点や終点を表すパラメーターやサーボゲインを表すパラメーター、さらには、光学パラメーターや力制御パラメーターなどのパラメーターとすることもできる(図3参照)。
B8.他の実施形態8:
上記実施形態においては、最適化される動作パラメーターには、制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きdが含まれる(図4および図5参照)。しかし、最適化される動作パラメーターは、これらの動作パラメーター以外の動作パラメーター、たとえば、動作の始点や終点を表すパラメーターやサーボゲインを表すパラメーター、さらには、光学パラメーターや力制御パラメーターなどのパラメーターとすることもできる(図3参照)。
上記実施形態においては、最適化される動作パラメーターには、制限最大加速度a0、上限最大加速度a1、基準目標加速度Astの傾きb、負荷補正係数CLの傾きdが含まれる(図4および図5参照)。しかし、最適化される動作パラメーターは、これらの動作パラメーター以外の動作パラメーター、たとえば、動作の始点や終点を表すパラメーターやサーボゲインを表すパラメーター、さらには、光学パラメーターや力制御パラメーターなどのパラメーターとすることもできる(図3参照)。
B9.他の実施形態9:
本開示は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
本開示は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
A…アーム;A1〜A6…アーム部材;AF(x)…獲得関数;Ast…基準目標加速度;CB…信頼限界;CFi(x)…制約関数の出力の平均に信頼限界上限を足し合わせたもの;CxA…制約x範囲;Da…回転角度;Dc…制御量;De…偏差;Dt…目標角度;E1〜E6…エンコーダー;I…イナーシャ;Imax…イナーシャの最大値;Imin…イナーシャの最小値;Ith…イナーシャの値;J1〜J6…関節;Kpd…微分ゲイン;Kpi…積分ゲイン;Kpp…比例ゲイン;Kvd…微分ゲイン;Kvi…積分ゲイン;Kvp…比例ゲイン;ΔL…力由来補正量;L…位置;Lt…目標位置;Lmax…位置の最大値;Lpm…位置の許容範囲の幅の1/2;M…処理のカウントの上限値;M1〜M6…モーター;OS…オーバーシュート;PS…力覚センサー;Rt…音の大きさの評価において考慮される周波数帯;T…基台;TCP…ツールセンターポイント;Ts…整定時間;U1…モーターM1〜M6の回転角度の組み合わせとロボット座標系におけるTCPの位置との対応関係;U2…座標系同士の対応関係;V…TCPの速度;W…対象物;a0…制限最大加速度;a1…上限最大加速度;b…基準目標加速度Astの変化率;ci…制約関数;d…仮想粘性係数;f…目的関数;fL…作用力;ΔfL…力偏差;h,hc,hy…ハイパーパラメーター;μi cn…制約関数の出力の推定値(平均);k…仮想弾性係数;m…仮想慣性係数;μn…目的関数の出力の推定値(平均);t…時間;t1…移動開始時刻;t2…加速終了時刻;t3…減速開始時刻;t4…移動終了時刻;x…入力パラメーター(m次元ベクトル);xn+1…新たに決定される入力パラメーター;y…目的関数の出力(スカラー値);1〜3…ロボット;20…光学系;21…撮像部;22…照明部;23…グリッパー;40…制御装置;41…算出部;41a…決定部;41b…出力部;42…検出部;43…制御部;43a…位置制御部;43b…力制御部;43c…接触判定部;43d…サーボ;44…記憶部;44a…動作パラメーター;44b…ロボットプログラム;44c…テンプレートデータ;400,410…パーソナルコンピューター;500…クラウドサービス
Claims (14)
- 目的関数の入力パラメーターの最適化方法であって、
(a)1組以上の入力パラメーターの値に対する制約関数の観測値を準備する工程と、
(b)前記制約関数の前記観測値から得られる前記制約関数の統計パラメーターに基づいて、前記1組以上の入力パラメーターとは異なる複数組の入力パラメーターに対する前記制約関数の出力の信頼限界を決定する工程と、
(c)前記制約関数の出力の前記信頼限界を使用して、前記制約関数の出力が条件を満たすと推定される入力パラメーターの制約範囲を決定する工程と、
(d)前記決定された制約範囲内において、目的関数の最適化を行って、前記複数組の入力パラメーターの中から1組の入力パラメーターを新たに決定する工程と、
(e)前記工程(d)で決定された前記1組の入力パラメーターによる前記目的関数の観測値を得る工程と、
(f)前記工程(b)から前記工程(e)を繰り返すことにより得られる、複数の入力パラメーターに対する前記目的関数の複数の観測値のうち、最も評価値が高い観測値に対応する入力パラメーターを、出力する工程と、
を含む、目的関数の入力パラメーターの最適化方法。 - 請求項1記載の最適化方法であって、
前記工程(d)における前記目的関数の最適化は、ベイズ最適化である、最適化方法。 - 請求項1または2記載の最適化方法であって、
前記工程(b)において、前記制約関数の観測値がしたがうと仮定される統計的分布は、ガウス分布である、最適化方法。 - 請求項1から3のいずれか1項に記載の最適化方法であって、
前記入力パラメーターは、ロボットの動作を制御するためのパラメーターである、最適化方法。 - 請求項4記載の最適化方法であって、
前記目的関数は、
前記ロボットの所定部位が目標位置へ移動する動作の開始から終了までの所要時間と、
前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれと、
前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれが、あらかじめ定められた値未満となるまでの前記動作の開始時からの経過時間と、
前記ロボットが前記動作を行う際に要する駆動力と、
前記ロボットが前記動作を行う際に発生する音の大きさと、
のうちの1以上を要素として含む、最適化方法。 - 請求項5記載の最適化方法であって、
前記制約関数は、
前記所要時間と、前記ずれと、前記経過時間と、前記駆動力と、前記音の大きさと、のうち前記目的関数に含まれないものの1以上を要素として含む、最適化方法。 - 目的関数の入力パラメーターの最適化する制御装置であって、
入力パラメーターを決定する決定部と、
前記入力パラメーターを出力する出力部と、を備え、
前記決定部は、
1組以上の入力パラメーターの値に対する制約関数の観測値を準備し、
前記制約関数の前記観測値から得られる、前記制約関数の統計パラメーターに基づいて、前記1組以上の入力パラメーターとは異なる複数組の入力パラメーターに対する前記制約関数の出力の信頼限界を決定し、
前記制約関数の出力の前記信頼限界を使用して、前記制約関数の出力が条件を満たすと推定される入力パラメーターの制約範囲を決定し、
前記決定された制約範囲内において、目的関数の最適化を行って、前記複数組の入力パラメーターの中から1組の入力パラメーターを新たに決定し、
前記決定された入力パラメーターによる前記目的関数の観測値を取得し、
前記信頼限界の決定と、制約範囲の決定と、新たな入力パラメーターの決定と、前記制約関数の観測値を取得と、を繰り返すことにより得られる、複数の入力パラメーターに対する前記目的関数の複数の観測値のうち、最も評価値が高い観測値に対応する入力パラメーターを決定し、決定した前記入力パラメーターを前記出力部に出力させる、制御装置。 - 請求項7記載の制御装置であって、
前記目的関数の最適化は、ベイズ最適化である、制御装置。 - 請求項7または8記載の制御装置であって、
前記制約関数の観測値がしたがうと仮定される統計的分布は、ガウス分布である、制御装置。 - 請求項7から9のいずれか1項に記載の制御装置であって、
前記入力パラメーターは、ロボットの動作を制御するためのパラメーターである、制御装置。 - 請求項10記載の制御装置であって、
前記目的関数は、
前記ロボットの所定部位が目標位置へ移動する動作の開始から終了までの所要時間と、
前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれと、
前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれが、あらかじめ定められた値未満となるまでの前記動作の開始時からの経過時間と、
前記ロボットが前記動作を行う際に要する駆動力と、
前記ロボットが前記動作を行う際に発生する音の大きさと、
のうちの1以上を要素として含む、制御装置。 - 請求項11記載の制御装置であって、
前記制約関数は、
前記所要時間と、前記ずれと、前記経過時間と、前記駆動力と、前記音の大きさと、のうち前記目的関数に含まれないものの1以上を要素として含む、制御装置。 - 請求項7から12のいずれか1項に記載の制御装置によって制御されるロボット。
- ロボットを制御する制御装置であって、
コンピューター実行可能な命令を実行してロボットを制御するように構成されたプロセッサーを備え、
前記プロセッサーは、
1組以上の入力パラメーターの値に対する制約関数の観測値を準備し、
前記制約関数の前記観測値から得られる、前記制約関数の統計パラメーターに基づいて、前記1組以上の入力パラメーターとは異なる複数組の入力パラメーターに対する前記制約関数の出力の信頼限界を決定し、
前記制約関数の出力の前記信頼限界を使用して、前記制約関数の出力が条件を満たすと推定される入力パラメーターの制約範囲を決定し、
前記決定された制約範囲内において、目的関数の最適化を行って、前記複数組の入力パラメーターの中から1組の入力パラメーターを新たに決定し、
前記決定された入力パラメーターによる前記目的関数の観測値を取得し、
前記信頼限界の決定と、制約範囲の決定と、新たな入力パラメーターの決定と、前記目的関数の観測値を取得と、を繰り返すことにより得られる、複数の入力パラメーターに対する前記目的関数の複数の観測値のうち、最も評価値が高い観測値に対応する入力パラメーターを、出力するように構成されている、制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017245968A JP2019113985A (ja) | 2017-12-22 | 2017-12-22 | 最適化方法、制御装置、およびロボット |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017245968A JP2019113985A (ja) | 2017-12-22 | 2017-12-22 | 最適化方法、制御装置、およびロボット |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019113985A true JP2019113985A (ja) | 2019-07-11 |
Family
ID=67223725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017245968A Pending JP2019113985A (ja) | 2017-12-22 | 2017-12-22 | 最適化方法、制御装置、およびロボット |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019113985A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114248267A (zh) * | 2020-09-25 | 2022-03-29 | 精工爱普生株式会社 | 参数显示方法、存储介质及信息处理装置 |
CN114367974A (zh) * | 2020-10-16 | 2022-04-19 | 精工爱普生株式会社 | 调整机器人的参数集的方法、记录介质及信息处理装置 |
WO2023181497A1 (ja) | 2022-03-23 | 2023-09-28 | パナソニックIpマネジメント株式会社 | 評価装置、評価方法、およびプログラム |
JP7478069B2 (ja) | 2020-08-31 | 2024-05-02 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
JP7565654B1 (ja) | 2023-12-29 | 2024-10-11 | 江蘇科技大学 | ロボット関節モジュール制御システムの最適化方法 |
-
2017
- 2017-12-22 JP JP2017245968A patent/JP2019113985A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7478069B2 (ja) | 2020-08-31 | 2024-05-02 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
CN114248267A (zh) * | 2020-09-25 | 2022-03-29 | 精工爱普生株式会社 | 参数显示方法、存储介质及信息处理装置 |
CN114248267B (zh) * | 2020-09-25 | 2023-06-02 | 精工爱普生株式会社 | 参数显示方法、存储介质及信息处理装置 |
CN114367974A (zh) * | 2020-10-16 | 2022-04-19 | 精工爱普生株式会社 | 调整机器人的参数集的方法、记录介质及信息处理装置 |
US20220118616A1 (en) * | 2020-10-16 | 2022-04-21 | Seiko Epson Corporation | Method of adjusting parameter set of robot, program, and information processing device |
CN114367974B (zh) * | 2020-10-16 | 2023-06-27 | 精工爱普生株式会社 | 调整机器人的参数集的方法、记录介质及信息处理装置 |
WO2023181497A1 (ja) | 2022-03-23 | 2023-09-28 | パナソニックIpマネジメント株式会社 | 評価装置、評価方法、およびプログラム |
JP7565654B1 (ja) | 2023-12-29 | 2024-10-11 | 江蘇科技大学 | ロボット関節モジュール制御システムの最適化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3357651B1 (en) | Control device, robot, and robot system | |
US20180225113A1 (en) | Control device, robot, and robot system | |
US20180222057A1 (en) | Control device, robot, and robot system | |
JP2019113985A (ja) | 最適化方法、制御装置、およびロボット | |
US20180222058A1 (en) | Control device, robot, and robot system | |
CN114474039B (zh) | 支持机器人的参数集的调整的方法以及信息处理装置 | |
US8271134B2 (en) | Robot having learning control function | |
JP5480198B2 (ja) | 学習制御機能を備えたスポット溶接ロボット | |
JP6174654B2 (ja) | センサの位置と向きを算出する機能を備えたロボットシステム | |
US11298822B2 (en) | Robot, method of controlling robot, and robot control device | |
JP2019111604A (ja) | 制御装置、ロボット、およびロボットシステム | |
JP2016198828A (ja) | ロボット制御方法、ロボット装置、プログラム及び記録媒体 | |
CN114248267B (zh) | 参数显示方法、存储介质及信息处理装置 | |
WO2019239562A1 (ja) | 機械学習装置及びこれを備えたロボットシステム | |
JP2022011402A (ja) | ロボットの制御方法およびロボットシステム | |
CN114367974B (zh) | 调整机器人的参数集的方法、记录介质及信息处理装置 | |
JP2012236254A (ja) | 移動体把持装置と方法 | |
WO2022209924A1 (ja) | ロボット遠隔操作制御装置、ロボット遠隔操作制御システム、ロボット遠隔操作制御方法、およびプログラム | |
JP2014188640A (ja) | ロボットおよびロボット制御方法 | |
WO2024034338A1 (ja) | 情報処理装置 | |
Yue et al. | Manipulating deformable linear objects: Sensor‐based skills of adjustment motions for vibration reduction | |
JP7528709B2 (ja) | 力制御パラメーター調整方法 | |
JP2024023119A (ja) | 情報処理装置 | |
JP7433509B2 (ja) | 制御装置、ロボットシステム、学習装置、軌跡モデル、制御方法、およびプログラム | |
JP7209859B2 (ja) | 組み立て装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20180910 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20181121 |
|
RD07 | Notification of extinguishment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7427 Effective date: 20200807 |