(57)【要約】【課題】産業用機械の制御について、自動的に制御パラメーターを設定する。【解決手段】この制御装置は：ベイズ最適化を使用してロボットの動作に関する動作パラメーターを決定する決定部と；決定された動作パラメーターを使用してロボットを制御する制御部と、を備える。ベイズ最適化における目的関数は：ロボットの所定部位が目標位置へ移動する動作の開始から終了までの所要時間と；動作の終了時におけるロボットの所定部位の位置と目標位置とのずれと；動作の終了時における所定部位の位置と目標位置とのずれが、あらかじめ定められた値未満となるまでの動作の開始時からの経過時間と；ロボットが動作を行う際に要する駆動力と；ロボットが動作を行う際に発生する音の大きさと；のうちの１以上を要素として含む。【選択図】図３
2019111604.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを制御する制御装置であって、
ベイズ最適化を使用して前記ロボットの動作に関する動作パラメーターを決定する決定部と、
決定された前記動作パラメーターを使用して前記ロボットを制御する制御部と、を備え、
前記ベイズ最適化における目的関数は、
前記ロボットの所定部位が目標位置へ移動する動作の開始から終了までの所要時間と、
前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれと、
前記動作の終了時における前記所定部位の位置と前記目標位置とのずれが、あらかじめ定められた値未満となるまでの前記動作の開始時からの経過時間と、
前記ロボットが前記動作を行う際に要する駆動力と、
前記ロボットが前記動作を行う際に発生する音の大きさと、
のうちの１以上を要素として含む、制御装置。
【請求項２】
請求項１記載の制御装置であって、
前記ベイズ最適化を使用した前記動作パラメーターの決定の処理は、制約関数によって定められる条件を含み、
前記制約関数は、
前記所要時間と、前記ずれと、前記経過時間と、前記駆動力と、前記音の大きさと、のうち前記目的関数に含まれないものの１以上を要素として含む、制御装置。
【請求項３】
請求項１または２記載の制御装置であって、
前記動作パラメーターは、前記ロボットが備える作動軸の前記動作における最大加速度を含む、制御装置。
【請求項４】
請求項３記載の制御装置であって、
前記動作パラメーターは、
前記作動軸からの先の前記ロボットの構成部分の前記作動軸に対する慣性モーメントが最大であるときの前記作動軸の加速度と、
前記慣性モーメントの変化に対する前記作動軸の前記動作における加速度の変化率と、
前記作動軸の前記動作における加速度を、前記ロボットが保持する負荷に応じて調整するための係数と、
を含む、制御装置。
【請求項５】
請求項１から４のいずれか１項に記載の制御装置によって制御されるロボット。
【請求項６】
請求項１から４のいずれか１項に記載の制御装置と、
前記制御装置によって制御される前記ロボットと、
を備えるロボットシステム。
【請求項７】
ロボットを制御する制御装置であって、
コンピューター実行可能な命令を実行して前記ロボットを制御するように構成されたプロセッサーを備え、
前記プロセッサーは、
ベイズ最適化を使用して前記ロボットの動作に関する動作パラメーターを決定し、
決定された前記動作パラメーターを使用して前記ロボットを制御するように構成されており、
前記ベイズ最適化における目的関数は、
前記ロボットの所定部位が目標位置へ移動する動作の開始から終了までの所要時間と、
前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれと、
前記動作の終了時における前記所定部位の位置と前記目標位置とのずれが、あらかじめ定められた値未満となるまでの前記動作の開始時からの経過時間と、
前記ロボットが前記動作を行う際に要する駆動力と、
前記ロボットが前記動作を行う際に発生する音の大きさと、
のうちの１以上を要素として含む、制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作を制御する制御装置、ロボット、およびロボットシステムに関するものである。
【背景技術】
【０００２】
従来、産業用機械を運用するために、機械学習を使用する技術が存在する（特許文献１）。特許文献１の技術においては、機械学習を使用して、工作機械において工具を補正するタイミングを決定している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５９６９６７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の技術は、工作機械を動作させている間の工作機械の制御については、機械学習による最適化を実現できていない。工作機械機械に限らず、ロボットなど、様々な産業用機械の制御について、自動的に制御パラメーターを設定したいという要請が存在する。
【課題を解決するための手段】
【０００５】
本開示は、上述の課題を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００６】
（１）本開示の一形態によれば、ロボットを制御する制御装置が提供される。この制御装置は：ベイズ最適化を使用してロボットの動作に関する動作パラメーターを決定する決定部と；決定された前記動作パラメーターを使用して前記ロボットを制御する制御部と、を備える。前記ベイズ最適化における目的関数は：前記ロボットの所定部位が目標位置へ移動する動作の開始から終了までの所要時間と；前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれと；前記動作の終了時における前記所定部位の位置と前記目標位置とのずれが、あらかじめ定められた値未満となるまでの前記動作の開始時からの経過時間と；前記ロボットが前記動作を行う際に要する駆動力と；前記ロボットが前記動作を行う際に発生する音の大きさと；のうちの１以上を要素として含む。
このような態様とすれば、自動的にロボットの制御パラメータとしての動作パラメーターを決定して、ロボットを制御することができる。
【０００７】
（２）上記形態の制御装置であって、前記ベイズ最適化を使用した前記動作パラメーターの決定の処理は、制約関数によって定められる条件を含み、前記制約関数は、前記所要時間と、前記ずれと、前記経過時間と、前記駆動力と、前記音の大きさと、のうち前記目的関数に含まれないものの１以上を要素として含む、態様とすることもできる。
このような態様とすれば、実際のロボットの動作において要求される制約条件を満たす動作パラメーターを、決定することができる。
【０００８】
（３）上記形態の制御装置であって、前記動作パラメーターは、前記ロボットが備える作動軸の前記動作における最大加速度を含む、態様とすることもできる。
このような態様とすれば動作ごとの最大加速度を、自動的に設定することができる。
【０００９】
（４）上記形態の制御装置であって、前記動作パラメーターは：前記作動軸からの先の前記ロボットの構成部分の前記作動軸に対する慣性モーメントが最大であるときの前記作動軸の加速度と；前記慣性モーメントの変化に対する前記作動軸の前記動作における加速度の変化率と；前記作動軸の前記動作における加速度を、前記ロボットが保持する負荷に応じて調整するための係数と；を含む、態様とすることもできる。
ロボットが保持する負荷およびロボットの姿勢は、動作によって異なる。このため、ロボットの作動軸における望ましい加速度の変化も、動作によって異なる。上記の態様とすれば、作動軸の加減速の変化を、動作ごとに自動的に設定することができる。
【００１０】
（５）本開示の他の形態によれば、上記形態の制御装置によって制御されるロボットが提供される。
【００１１】
（６）本開示の他の形態によれば、上記形態の制御装置と、前記制御装置によって制御される前記ロボットと、を備えるロボットシステムが提供される。
【００１２】
（７）本開示の他の形態によれば、ロボットを制御する制御装置が提供される。この制御装置は、コンピューター実行可能な命令を実行して前記ロボットを制御するように構成されたプロセッサーを備える。前記プロセッサーは：ベイズ最適化を使用して前記ロボットの動作に関する動作パラメーターを決定し；決定された前記動作パラメーターを使用して前記ロボットを制御するように構成されている。前記ベイズ最適化における目的関数は：前記ロボットの所定部位が目標位置へ移動する動作の開始から終了までの所要時間と；前記動作の終了時における前記ロボットの前記所定部位の位置と前記目標位置とのずれと；前記動作の終了時における前記所定部位の位置と前記目標位置とのずれが、あらかじめ定められた値未満となるまでの前記動作の開始時からの経過時間と；前記ロボットが前記動作を行う際に要する駆動力と；前記ロボットが前記動作を行う際に発生する音の大きさと、；のうちの１以上を要素として含む。
【００１３】
上述した本開示の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部または全部を解決するため、あるいは、本明細書に記載された効果の一部または全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行うことが可能である。また、上述の課題の一部または全部を解決するため、あるいは、本明細書に記載された効果の一部または全部を達成するために、上述した本開示の一形態に含まれる技術的特徴の一部または全部を上述した本開示の他の形態に含まれる技術的特徴の一部または全部と組み合わせて、本開示の独立した一形態とすることも可能である。
【００１４】
本発明は、上記以外の種々の形態で実現することも可能である。例えば、ロボットシステムの制御装置、その制御装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した一時的でない記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【００１５】
【図１】本開示の一実施形態のロボットシステムを示す斜視図である。
【図２】制御装置４０の機能ブロックと、ロボット１〜３と、光学系２０との関係を示すブロック図である。
【図３】パラメーター４４ａの例を示す図である。
【図４】加減速特性にしたがって制御されるＴＣＰの速度の例を示す図である。
【図５】ＴＣＰの加減速特性に含まれるＴＣＰの基準目標加速度Ａｓｔと、イナーシャＩの関係を示すグラフである。
【図６】ピックアップ処理のフローチャートの例を示す図である。
【図７】加減速特性を表すパラメーターとサーボゲインを表すパラメーターを最適化する最適化方法を示すフローチャートである。
【図８】動作の終了時におけるＴＣＰの位置を示すグラフである。
【図９】ロボットが動作を実行する際に発生する音の大きさ（ｄＢ）を、横軸を周波数として表したグラフである。
【図１０】制約条件がないときのベイズ最適化の処理を示すフローチャートである。
【図１１】制約条件つきベイズ最適化処理のイメージを説明する説明図である。
【図１２】式（１２）による処理のイメージを説明する説明図である。
【図１３】本実施形態における制約条件つきベイズ最適化の処理を示すフローチャートである。
【図１４】最適化されたピックアップ処理に含まれる３５個の動作の実施例および比較例におけるサイクルタイムを示す。
【図１５】実施例において、パラメーターの最適化を行う際にテストされたパラメーター設定値の目的関数による評価の推移を示すグラフである。
【図１６】実施例において、パラメーターの最適化を行う際にテストされたパラメーター設定値の制約関数による評価の推移を示すグラフである。
【図１７】複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。
【図１８】複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。
【発明を実施するための形態】
【００１６】
本開示の実施形態について、添付図面を参照しながら以下の順に説明する。なお、各図において互いに対応する構成要素には同一の符号が付され、重複する説明は省略される。
Ａ．実施形態：
Ａ１．ロボットシステムの構成：
Ａ２．ロボットの制御：
（１）ロボットの構成と制御装置の機能：
（２）対象物を検出する処理：
（３）ロボットの位置制御および力制御：
（ｉ）サーボ４３ｄにおける処理：
（ｉｉ）位置制御部４３ａおよび力制御部４３ｂにおける処理：
（ｉｉｉ）接触判定部４３ｃにおける処理：
Ａ３．ピックアップ処理：
Ａ４．パラメーターの最適化：
（１）パラメーターの最適化処理：
（２）制約条件のないベイズ最適化：
（３）制約条件つきベイズ最適化：
（４）目的関数：
（５）制約関数：
（６）最適化するパラメーター：
（７）評価：
Ｂ．他の実施形態：
【００１７】
Ａ．実施形態：
Ａ１．ロボットシステムの構成：
図１は、本開示の一実施形態のロボットシステムを示す斜視図である。本開示の一実施形態としてのロボットシステムは、ロボット１〜３と、制御装置４０と、を備えている。ロボット１〜３と制御装置４０は、ケーブルにより通信可能に接続されている。ロボット１〜３は、制御装置４０によって制御される。
【００１８】
制御装置４０は、コンピューター等のハードウェア資源と、記憶部４４に記憶された各種のソフトウェア資源と、を備える。その結果、制御装置４０は、プログラムを実行可能である。ハードウェア資源は、ＣＰＵ，ＲＡＭ，ＲＯＭ等からなる構成であってもよいし、ＡＳＩＣ等によって構成されてもよく、種々の構成を採用可能である。
【００１９】
ロボット１〜３は、アームＡに各種のエンドエフェクターを装着して使用される単腕ロボットである。より具体的には、ロボット１〜３は、それぞれ異なるエンドエフェクター２１，２２，２３を備える６軸ロボットである。本実施形態において、ロボット１〜３においてアームＡや軸の構成は等しい。
【００２０】
ロボット３を例に、ロボット１〜３の構成を説明する。ロボット３は、基台Ｔと、６個のアーム部材Ａ１〜Ａ６と、６個の関節Ｊ１〜Ｊ６を備える。基台Ｔは作業台に固定されている。基台Ｔならびに６個のアーム部材Ａ１〜Ａ６は、関節Ｊ１〜Ｊ６によって互いに連結される。本実施形態において、関節Ｊ２、Ｊ３、Ｊ５は曲げ関節であり、関節Ｊ１、Ｊ４、Ｊ６はねじり関節である。
【００２１】
アームＡにおいて最も先端側に位置するアーム部材Ａ６には、力覚センサーＰＳとエンドエフェクターとが装着される。ロボット１〜３は、６軸のアームＡを駆動させることによって、可動範囲内においてエンドエフェクターを任意の位置に配置し、任意の姿勢（すなわち、角度）とすることができる。
【００２２】
アーム部材Ａ１〜Ａ６とエンドエフェクターは、関節Ｊ１〜Ｊ６の角度が変化することによって位置を変更される可動部である。各関節Ｊ１〜Ｊ６における回転軸を、本明細書において「作動軸」とも呼ぶ。これらの可動部が動作することによってロボット１〜３は各種の作業を行うことができる。
【００２３】
ロボット１〜３には、互いに異なるエンドエフェクターが取り付けられている。ロボット１に取りつけられているエンドエフェクターは、撮像部２１である。撮像部２１は、視野内の画像を撮像することができる。撮像部２１は、露光時間と絞りを調整可能な機構を備えている。ロボット２に取りつけられているエンドエフェクターは、照明部２２である。照明部２２は、照射範囲に光を照射することができる。照明部２２は、明るさを調整可能な機構を備えている。以下、撮像部２１および照明部２２を「光学系」とも呼ぶ。ロボット３に取り付けられているエンドエフェクターは、グリッパー２３である。グリッパー２３は、対象物Ｗを把持することができる。
【００２４】
本実施形態においては、ロボット１〜３が備えるエンドエフェクターに対して相対的に固定された位置が、ツールセンターポイント（ＴＣＰ）として定義される。ＴＣＰの位置はエンドエフェクターの基準の位置となる。ＴＣＰを原点として、ＴＣＰ座標系が定義される。ＴＣＰ座標系は、エンドエフェクターに対して相対的に固定された３次元直交座標系である。
【００２５】
力覚センサーＰＳは、６軸の力検出器である。力覚センサーＰＳは、力覚センサー上の点を原点とした３次元直交座標系であるセンサー座標系において、互いに直交する３個の検出軸と平行な力の大きさと、当該３個の検出軸まわりのトルクの大きさとを検出する。なお、本明細書において、「力」と表記した場合、トルクも意味し得る。
【００２６】
ロボット１〜３が設置された空間を規定する座標系を、本明細書において、「ロボット座標系」という。ロボット座標系は、水平面上において互いに直交するｘ軸とｙ軸と、鉛直上向きを正方向とするｚ軸とによって規定される３次元の直交座標系である（図１の左上参照）。ｚ軸における負の方向は重力方向と一致する。ｘ，ｙ，ｚ方向の位置により３次元空間における任意の位置を表現できる。ｘ軸周りの回転角をＲｘで表し、ｙ軸周りの回転角をＲｙで表し、ｚ軸周りの回転角をＲｚで表す。Ｒｘ，Ｒｙ，Ｒｚ方向の回転角により３次元空間における任意の姿勢を表現できる。以下、「位置」と表記した場合、姿勢も意味し得る。
【００２７】
図１に示すロボットシステムは、ロボットに作用する力を制御する力制御を実行可能である。力制御においては、任意の点に作用する作用力が目標力になるように、アームＡが制御される。作用点に作用する力は、３次元直交座標系である力制御座標系によって定義される。目標力（トルクを含む）は、力制御座標系で表現される作用点を起点としたベクトルで、表現可能である。後述するパラメーターの最適化が行われる以前において、目標力ベクトルの起点は、力制御座標系の原点である。また、作用力の方向は、力制御座標系の１軸方向と一致している。パラメーターの最適化が行われた場合、目標力ベクトルの起点は、力制御座標系の原点と異なり得る。また、目標力ベクトルの方向は、力制御座標系の軸方向と異なり得る。
【００２８】
本実施形態において各種の座標系の関係は予め定義されている。その結果、各種の座標系での座標値は、互いに変換可能である。すなわち、ＴＣＰ座標系、センサー座標系、ロボット座標系、および力制御座標系における位置やベクトルは、互いに変換可能である。ここでは技術の理解を容易にするためえ、制御装置４０がＴＣＰの位置およびＴＣＰに作用する作用力を、ロボット座標系で制御するものとして説明をする。
【００２９】
Ａ２．ロボットの制御：
（１）ロボットの構成と制御装置の機能：
図２は、制御装置４０の機能ブロックと、ロボット１〜３と、光学系２０との関係を示すブロック図である。ロボット１〜３は、教示を行うことにより各種作業が可能となる汎用ロボットである。ロボット１〜３は、それぞれアクチュエーターとしてのモーターＭ１〜Ｍ６と、センサーとしてのエンコーダーＥ１〜Ｅ６とを備える。
【００３０】
モーターＭ１〜Ｍ６は、それぞれ関節Ｊ１〜Ｊ６を駆動する。ロボットのアームＡの制御は、具体的には、モーターＭ１〜Ｍ６を制御することにより行われる。各モーターＭ１〜Ｍ６には、電力を供給する電源線が接続されている。各電源線には、電流計が備えられている。制御装置４０は、電流計を介して、各モーターＭ１〜Ｍ６に供給された電流を計測することができる。エンコーダーＥ１〜Ｅ６は、それぞれモーターＭ１〜Ｍ６の回転角度を検出する。
【００３１】
制御装置４０は、算出部４１、検出部４２、制御部４３として機能する。
【００３２】
（２）対象物を検出する処理：
検出部４２は、対象物を検出する処理を実行する。検出部４２は、光学系２０を構成する撮像部２１と照明部２２（図１も参照）とに接続されている。検出部４２は、撮像部２１を制御し、撮像部２１が備える撮像センサーによって撮像された画像を取得することができる。また、検出部４２は、照明部２２を制御し、照明部２２が照射する光の明るさを変化させることができる。
【００３３】
撮像部２１から画像が出力されると、検出部４２は、撮像画像に対して、記憶部４４に記憶されたテンプレートデータ４４ｃ（図２の左下部参照）を適用して、テンプレートマッチング処理を行う。その結果、対象物の位置および姿勢が検出される。
【００３４】
テンプレートデータ４４ｃは、検出部４２から見た対象物の姿勢ごとに用意されている複数種類のテンプレートを含む。複数種類のテンプレートは、それぞれ種類に応じたＩＤが付されている。検出部４２は、姿勢ごとのテンプレートデータ４４ｃを順次、撮像された画像と比較する。その際、検出部４２は、テンプレートデータ４４ｃの大きさを変化させて、撮像された画像と比較する。検出部４２は、撮像された画像の中で、テンプレートデータ４４ｃと画像との差分が閾値以下であった形状の像を、対象物の像として検出する。
【００３５】
対象物の像が検出されると、検出部４２は、適合したテンプレートデータ４４ｃと、予め決められた座標系間の関係（図２の中段右部のＵ２参照）と、に基づいて対象物の位置および姿勢を特定する。
【００３６】
具体的には、検出部４２は、対象物と適合した際のテンプレートデータ４４ｃの大きさに基づいて、撮像部２１と対象物との光軸方向の距離を決定する。検出部４２は、画像内で検出された対象物の位置に基づいて、光軸に垂直な２方向についての対象物の位置を決定する。検出部４２は、テンプレートマッチング処理において適合したテンプレートデータ４４ｃの種類によって、検出部４２から見た対象物の姿勢を特定する。
【００３７】
たとえば、撮像部２１の撮像センサーの光軸と撮像平面上の互いに垂直な２軸が、ＴＣＰ座標系のｚ軸ならびにｘ軸およびｙ軸と、それぞれ平行に定義されている場合であれば、検出部４２は、以下のような処理を行う。すなわち、検出部４２は、適合したテンプレートデータ４４ｃの大きさと、テンプレートデータ４４ｃが対象物と適合した位置とに基づいて、ＴＣＰ座標系における対象物の位置を特定する。また、検出部４２は、適合したテンプレートデータ４４ｃの種類を表すＩＤに基づいて、ＴＣＰ座標系における対象物の姿勢を特定する。
【００３８】
その後、検出部４２は、各座標系の対応関係を利用し、任意の座標系における対象物の位置および姿勢、たとえば、ロボット座標系における対象物の位置および姿勢を、特定する。
【００３９】
制御装置４０の記憶部４４（図２の左下部参照）には、各種のパラメーター４４ａが記憶されている。検出部４２は、テンプレートマッチング処理を、パラメーター４４ａのうちの一部のパラメーターを使用して実行する。
【００４０】
図３は、パラメーター４４ａの例を示す図である。図３に示す例において、パラメーター４４ａは、光学パラメーターと動作パラメーターと力制御パラメーターとを含む。
【００４１】
光学パラメーターは、検出部４２による検出に関するパラメーターである。光学パラメーターは、撮像部２１に関する撮像部パラメーターと、照明部２２に関する照明部パラメーターと、撮像部２１によって撮像された対象物の画像に対する画像処理に関する画像処理パラメーターと、を含む。
【００４２】
図３の上段に示す撮像部パラメーターは、対象物を撮像する際に撮像部２１が配置される位置を、「撮像部の位置」として、含む。撮像部の位置は、種々の手法で記述されてよい。たとえば、撮像部２１のＴＣＰの位置が、ロボット座標系で記述されることができる。撮像部パラメーターは、さらに、対象物を撮像する際の撮像部２１の露光時間および絞りの値を、「撮像部の露光時間」および「撮像部の絞り」として、含む。
【００４３】
対象物を撮像する際には、検出部４２は、撮像部パラメーターを参照し、位置制御部４３ａ（図２参照）に、撮像部２１の位置を渡す。位置制御部４３ａは、撮像部２１の位置に基づいてＴＣＰの目標位置Ｌｔを生成し、目標位置Ｌｔに基づいてロボット１を制御する（図１参照）。検出部４２は、撮像部パラメーターを参照し、撮像部２１の露光時間と絞りを設定する。撮像部２１においてはその露光時間と絞りによって撮像が行われる。
【００４４】
図３の上段に示す照明部パラメーターは、対象物を撮像する際に照明部２２が配置される位置を、「照明部の位置」として含む。照明部の位置は、種々の手法で記述されてよい。たとえば、照明部２２のＴＣＰの位置が、ロボット座標系で記述されることができる。照明部パラメーターは、さらに、対象物を撮像する際の照明部２２の明るさの値を、「照明部の明るさ」として含む。
【００４５】
対象物を撮像する際には、検出部４２は、照明部パラメーターを参照し、位置制御部４３ａ（図２参照）に、照明部２２の位置を渡す。位置制御部４３ａは、照明部２２の位置に基づいてＴＣＰの目標位置Ｌｔを生成し、当該目標位置Ｌｔに基づいてロボット２を制御する（図１参照）。検出部４２は、照明部パラメーターを参照し、照明部２２の明るさを設定する。照明部２２は、設定された明るさの光を出力する。
【００４６】
図３の上段に示す画像処理パラメーターは、テンプレートマッチング処理を実行する際の処理順序を示す画像処理シーケンスを含む。本実施形態において、テンプレートマッチング処理における閾値は可変である。画像処理パラメーターは、現在のテンプレートマッチングの閾値を含む。検出部４２は、テンプレートデータ４４ｃと画像とを比較する前に、平滑化処理、鮮鋭化処理などの各種の処理を実行可能である。画像処理パラメーターは、平滑化処理と鮮鋭化処理の強度を含む。
【００４７】
撮像部２１から画像が出力されると、検出部４２は、画像処理パラメーターを参照し、画像処理シーケンスに基づいて、画像処理の順序（実行するか否かを含む）を決定し、決定した順序で平滑化処理や鮮鋭化処理等の画像処理を実行する。このとき、検出部４２は、画像処理パラメーターに記述された強度で、平滑化処理や鮮鋭化処理等の画像処理を実行する。また、画像処理シーケンスに含まれるテンプレートデータ４４ｃと画像との比較を実行する際には、画像処理パラメーターが示す閾値に基づいて、比較を行う。
【００４８】
以上のように検出部４２は、図３に示した光学パラメーターに基づいて撮像部２１や照明部２２の位置を特定し、ロボット１、ロボット２を動作させることが可能である（図１参照）。しかし、ロボット１およびロボット２を駆動する際の位置は、後述する動作パラメーターや力制御パラメーターによって与えられてもよい。
【００４９】
（３）ロボットの位置制御および力制御：
制御部４３（図２の中段参照）においては、モーターＭ１〜Ｍ６の回転角度の組み合わせと、ロボット座標系におけるＴＣＰの位置との対応関係Ｕ１が、図示しない記憶媒体に記憶されている。制御部４３においては、さらに、座標系同士の対応関係Ｕ２が、図示しない記憶媒体に記憶されている。なお、対応関係Ｕ１，Ｕ２は記憶部４４に記憶されていてもよい。
【００５０】
制御部４３や、検出部４２、および後述する算出部４１は、対応関係Ｕ２に基づいて、任意の座標系におけるベクトルを、他の座標系におけるベクトルに変換することができる。たとえば、制御部４３および算出部４１は、力覚センサーＰＳの出力に基づいて、センサー座標系でのロボット１〜３への作用力を取得し、ロボット座標系におけるＴＣＰの位置に作用する力に変換することができる。また、制御部４３および算出部４１は、力制御座標系で表現された目標力をロボット座標系におけるＴＣＰの位置における目標力に変換することができる。
【００５１】
制御部４３は、アームＡを駆動することによって、ロボット１〜３の各部位の位置や、各部位に作用する力を、制御する。制御部４３は、機能部としての位置制御部４３ａ、力制御部４３ｂ、接触判定部４３ｃ、およびサーボ４３ｄを備えている（図２中段参照）。位置制御部４３ａは、位置の制御を実行する。力制御部４３ｂは、力の制御を実行する。接触判定部４３ｃは、ロボットが作業において想定されていない物体と接触したか否かを判定する機能を実行する。サーボ４３ｄは、サーボ制御を実行する。以下で、制御部４３の各機能部の機能を、より詳細に説明する。
【００５２】
（ｉ）サーボ４３ｄにおける処理：
サーボ４３ｄは、エンコーダーＥ１〜Ｅ６の出力が示すモーターＭ１〜Ｍ６の回転角度Ｄａと、制御目標である目標角度Ｄｔと、を一致させるフィードバック制御を実行する。より具体的には、サーボ４３ｄは、回転角度Ｄａと目標角度Ｄｔとの偏差Ｄｅ、その偏差Ｄｅの積分、およびその偏差Ｄｅの微分を使用して、位置についてのＰＩＤ制御を実行する。図２において、比例ゲインＫｐｐ、積分ゲインＫｐｉ、微分ゲインＫｐｄを示す。
【００５３】
サーボ４３ｄは、上記Ｋｐｐ，Ｋｐｉ，Ｋｐｄを使用した位置についてのＰＩＤ制御の出力と、回転角度Ｄａの微分との偏差、その偏差の積分、その偏差の微分を使用して、速度についてのＰＩＤ制御を実行する。図２において、比例ゲインＫｖｐ、積分ゲインＫｖｉ、微分ゲインＫｖｄを示す。
【００５４】
以上の処理の結果、制御量Ｄｃが決定される。制御量Ｄｃは、モーターＭ１〜Ｍ６のそれぞれについて決定される。制御部４３は、各モーターＭ１〜Ｍ６の制御量Ｄｃで、各モーターＭ１〜Ｍ６を制御する。制御部４３がモーターＭ１〜Ｍ６を制御する信号は、ＰＷＭ（Pulse Width Modulation）変調された信号である。なお、制御部４３は、サーボ４３ｄが使用するサーボゲインＫｐｐ，Ｋｐｉ，Ｋｐｄ，Ｋｖｐ，Ｋｖｉ，Ｋｖｄを変化させることができる。
【００５５】
図２の左下に示す記憶部４４には、各種のパラメーター４４ａに加えて、ロボット１〜３を制御するためのロボットプログラム４４ｂが記憶されている。ロボットプログラム４４ｂは、主に、ロボット１〜３が実施する作業のシーケンス（すなわち、動作の順序）を示す。ロボットプログラム４４ｂは、予め定義されたコマンドの組み合わせによって記述される。これに対して、パラメーター４４ａは、主に、各動作を実現するために必要とされる具体的な値である。パラメーター４４ａは、各コマンドの引数として記述される。
【００５６】
本実施形態において、パラメーター４４ａおよびロボットプログラム４４ｂは、ロボットに対する教示によって生成され、記憶部４４に記憶される（図２の左下部参照）。記憶部４４に記憶されたパラメーター４４ａおよびロボットプログラム４４ｂは、算出部４１によって修正され得る。
【００５７】
動作パラメーター（図３の中段参照）は、ロボット１〜３の動作に関するパラメーターである。動作パラメーターは、位置制御の際に参照される。ロボット１〜３による一連の作業は複数の動作に分けられる。各動作を実施する際のパラメーター４４ａが、教示によって生成される。
【００５８】
動作パラメーターには、各動作における「始点」と「終点」を示すパラメーターが含まれる（図３の中段参照）。始点と終点は、種々の座標系で定義されてよい。本実施形態においては、制御対象のロボットのＴＣＰの「始点」および「終点」は、ロボット座標系で定義される。ロボット座標系の各軸についての並進位置と回転位置とが定義される。
【００５９】
動作パラメーターには、複数の動作におけるＴＣＰの「加減速特性」が含まれている（図３の中段参照）。加減速特性によって、ロボット１〜３のＴＣＰが各動作の始点から終点まで移動する際の、各時刻におけるＴＣＰの速度が規定される。
【００６０】
図４は、加減速特性にしたがって制御されるＴＣＰの速度の例を示す図である。図４においては、始点におけるＴＣＰの移動開始時刻ｔ１からＴＣＰが終点に到達する時刻ｔ４までの各時刻において、ＴＣＰの速度Ｖが規定されている。図４の例においては、時刻ｔ１〜ｔ２までの期間においてＴＣＰは目標加速度で加速し、時刻ｔ２〜ｔ３の期間において一定の速度を保ち、時刻ｔ３〜ｔ４までの期間においてＴＣＰは目標加速度で減速する。本実施形態では、加速時の目標加速度の絶対値の大きさと、減速時の目標加速度の絶対値の大きさは、同じであるものとする。
【００６１】
なお、加減速特性も種々の座標系で定義されてよい。本実施形態においては、加減速特性によって記述される速度は、制御対象のロボットのＴＣＰについての速度である。このＴＣＰの速度は、ロボット座標系で定義される。すなわち、ロボット座標系の各軸についての並進速度と回転速度（角速度）とが定義される。
【００６２】
ロボット１〜３において、ある関節から先のロボットの構成部分の形状は、その先にある関節の角度によって変化しうる。このため、ロボット１〜３のある関節から先のイナーシャ（慣性モーメント）は、その先にある関節の角度によって変化しうる。たとえば、６個のアーム部材Ａ１〜Ａ６（図１参照）が一列にならぶ姿勢を取ったとき、関節Ｊ１を基準とする回転のイナーシャは最大となる。このとき、６個のアーム部材Ａ１〜Ａ６の全体の重心は、もっとも関節Ｊ１から遠い位置にある。一方、６個のアーム部材Ａ１〜Ａ６の全体の重心がもっとも関節Ｊ１に近づく姿勢をアームＡがとったとき、関節Ｊ１を基準とする回転のイナーシャは最小となる。モーターが実現しうる加速度は、モーターが動かす対象物のイナーシャによって変化する。このため、各関節を駆動するモーターに指示される加速度は、それぞれの関節から先のイナーシャに応じて、決定される。ＴＣＰの加速度（図４のｔ１〜ｔ２、ｔ３〜ｔ４参照）は、以下のように定められる。
【００６３】
図５は、ＴＣＰの加減速特性に含まれるＴＣＰの基準目標加速度Ａｓｔと、イナーシャＩの関係を示すグラフである。各関節Ｊ１〜Ｊ６について、動作パラメーターの一つとして、制限最大加速度ａ０が定められている。制限最大加速度ａ０は、その関節から先のロボットの構成のイナーシャＩが最大値Ｉｍａｘであるときに、モーターが定常的に実現しうる加速度である。また、各関節Ｊ１〜Ｊ６について、動作パラメーターの一つとして、上限最大加速度ａ１が定められている。上限最大加速度ａ１は、その関節から先のロボットの構成のイナーシャＩが所定値Ｉｔｈ以下であるときに、モーターが定常的に実現しうる加速度である。イナーシャＩｔｈは、その関節から先のロボットの構成のイナーシャの最小値Ｉｍｉｎと最大値Ｉｍａｘとの間の値である。なお、制限最大加速度ａ０および上限最大加速度ａ１は、ロボットが、あらかじめ定められた定格負荷を保持していることを前提として、決定される。
【００６４】
図５から分かるように、その関節から先のイナーシャが所定値Ｉｔｈ以下であるとき、基準目標加速度Ａｓｔは、一定値ａ１となる。その関節から先のイナーシャが所定値Ｉｔｈより大きいとき、基準目標加速度Ａｓｔは、傾きｂで、イナーシャに対して直線的に減少する。すなわち、ｂは、基準目標加速度Ａｓｔの変化率である。
ｂ＝｛（ａ０−ａ１）／（Ｉｍａｘ−Ｉｔｈ）｝  ・・・  （Ｅｑ１）
【００６５】
さらに、基準目標加速度Ａｓｔは、ロボットが保持している負荷の大きさに応じて補正される。ＴＣＰの目標加速度Ａｔ（図４のｔ１〜ｔ２、ｔ３〜ｔ４参照）は、基準目標加速度Ａｓｔに負荷補正係数ＣＬを掛けることによって得られる。
Ａｔ＝ＣＬ×Ａｓｔ  ・・・  （Ｅｑ２）
【００６６】
負荷補正係数ＣＬは、たとえば、以下の式で定められる。ロボットが保持している負荷ｗが定格負荷ｗ０のとき、ｃ＝１である。ロボットが保持している負荷ｗが定格負荷ｗ０より大きいとき、ｃ＜１である。ロボットが保持している負荷ｗが定格負荷ｗ０より小さいとき、ｃ＞１である。
ｃ＝｛−（ｗ−ｗ０）／（ｗｍａｘ−ｗｍｉｎ）｝＋１
＝ｄ×（ｗ−ｗ０）＋１
ここで、ｗは、ロボットが保持している負荷の大きさである。
ｗ０は、基準となる定格負荷である。
ｗｍａｘは、ロボットが保持し得る負荷の最大値である。
ｗｍｉｎは、ロボットが保持し得る負荷の最小値である。
ｄ＝｛−１／（ｗｍａｘ−ｗｍｉｎ）｝
【００６７】
動作パラメーターの一部としての加減速特性のパラメーター（図３の中段参照）には、制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄが含まれる。これらのパラメーターを後述する処理によって最適化することにより、作動軸の加減速の変化を、動作ごとに自動的に設定することができる。
【００６８】
動作パラメーターには、サーボゲインＫｐｐ，Ｋｐｉ，Ｋｐｄ，Ｋｖｐ，Ｋｖｉ，Ｋｖｄが含まれている（図３の中段参照）。制御部４３は、サーボ４３ｄが適用するサーボゲインＫｐｐ，Ｋｐｉ，Ｋｐｄ，Ｋｖｐ，Ｋｖｉ，Ｋｖｄが、動作パラメーター４４ａとして記憶されている値になるように、調整する。本実施形態においてサーボゲインの値は、動作ごとに定められる。ただし、後述の最適化等において、サーボゲインはより短い期間ごとに定められてもよい。
【００６９】
（ｉｉ）位置制御部４３ａおよび力制御部４３ｂにおける処理：
（ａ）力制御モード：
力制御パラメーター（図３の下段参照）は、ロボット１〜３の力制御に関するパラメーターであり、力制御の際に参照される。力制御パラメーターには、「始点」、「終点」、「加減速特性」、および「サーボゲイン」を示すパラメーターが含まれる。力制御パラメーターにおいて、始点、終点、加減速特性、サーボゲインは、動作パラメーターに属する始点、終点、加減速特性、サーボゲイン（図３の中段参照）と同様である。始点、終点、加減速特性は、ロボット座標系の３軸の並進と回転について定義される。サーボゲインはモーターＭ１〜Ｍ６のそれぞれについて定義される。
【００７０】
ただし、力制御の場合、始点および終点の中の少なくとも一部は定義されない（すなわち、任意とされる）場合もある。たとえば、ある方向に作用する力が０になるように衝突回避や倣い制御が行われる場合、当該方向における始点および終点は定義されず、当該方向の力を０にするように、位置が任意に変化し得る状態が定義される場合もある。
【００７１】
力制御パラメーターには、「力制御座標系」を示す情報が含まれる（図３の下段参照）。力制御座標系は、力制御の目標力を定義するための座標系である。最適化が行われる前においては、目標力ベクトルの起点が、力制御座標系の原点であり、目標力ベクトルの方向に、力制御座標系の１軸が向いている。ロボットの教示において力制御における各種の目標力が定義される際に、各作業の各動作における目標力の作用点が教示される。たとえば、対象物の一点を他の物体に当て、両者の接触点で、対象物から他の物体に一定の目標力を作用させた状態で、対象物の向きを変化させる場合は、以下のように力制御座標系が定義しなおされる。すなわち、対象物が他の物体と接触する点が目標力の作用点となり、当該作用点を原点とした力制御座標系が定義される。
【００７２】
力制御パラメーターは、力制御の目標力が作用する点を原点とし、目標力の方向に１軸が向いている座標系、すなわち、力制御座標系を特定するための情報を、パラメーターとして含んでいる。なお、当該パラメーターは種々の定義が可能である。たとえば、力制御座標系を特定するためのパラメーターは、力制御座標系と他の座標系（ロボット座標系等）との関係を示すデータによって定義可能である。
【００７３】
力制御パラメーターには、「目標力」が含まれる（図３の下段参照）。目標力は、各種の作業において、任意の点に作用すべき力として教示される力であり、力制御座標系によって定義される。目標力を示す目標力ベクトルは、目標力ベクトルの起点と、起点からの６軸成分（３軸の並進力、３軸のトルク）として定義され、力制御座標系で表現される。なお、力制御座標系と他の座標系との関係を利用すれば、当該目標力を任意の座標系、たとえば、ロボット座標系におけるベクトルに変換することが可能である。
【００７４】
力制御パラメーターには、「インピーダンスパラメーター」が含まれる（図３の下段参照）。力制御部４３ｂが実施する力制御は、インピーダンス制御である。インピーダンス制御は、仮想の機械的インピーダンスを、モーターＭ１〜Ｍ６の駆動力によって実現する制御である。インピーダンス制御においては、ＴＣＰが仮想的に有する質量が、仮想慣性係数ｍとして定義される。ＴＣＰが仮想的に受ける粘性抵抗が、仮想粘性係数ｄとして定義される。ＴＣＰが仮想的に受ける弾性力のバネ定数が、仮想弾性係数ｋとして定義される。インピーダンスパラメーターは、これらのｍ，ｄ，ｋである。インピーダンスパラメーターは、ロボット座標系の各軸に対する並進と回転について定義される。
【００７５】
本実施形態において力制御座標系、目標力、インピーダンスパラメーターは、各ロボットが実行する動作ごとに値を設定される。しかし、後述の最適化において、より短い期間ごとに値を設定されてもよい。
【００７６】
本実施形態において、各ロボットが実行する一連の作業は複数の動作に分けられ、各動作を実施するロボットプログラム４４ｂが教示によって生成される。位置制御部４３ａは、ロボットプログラム４４ｂが示す各動作を、さらに微小時間ΔＴ毎の微小動作に細分化する。位置制御部４３ａは、パラメーター４４ａに基づいて微小動作ごとの目標位置Ｌｔを生成する（図２の中段参照）。力制御部４３ｂは、記憶部４４内のパラメーター４４ａに基づいて、一連の作業の各動作における目標力ｆＬｔを決定する。なお、動作によっては、目標力ｆＬｔが定義されない場合もある。その場合、力制御を伴わない位置制御が行われる。
【００７７】
ここで、添え字として使用される「Ｌ」の文字は、ロボット座標系を規定する軸の方向（ｘ，ｙ，ｚ，Ｒｘ，Ｒｙ，Ｒｚ）のなかのいずれか１個の方向を表す。また、添え字として使用されるＬは、Ｌ方向の位置も表すこととする。たとえば、Ｌ＝ｘである場合、Ｌｔは、ロボット座標系にて設定された目標位置のｘ方向成分ｘｔであり、ｆＬｔは、目標力のｘ方向成分ｆｘｔである。
【００７８】
たとえば、位置制御部４３ａは、動作パラメーターまたは力制御パラメーターが示す始点、終点、加減速特性（図３の下段参照）を参照し、始点から終点までその加減速特性でＴＣＰが移動する場合の微小動作ごとのＴＣＰの位置を、目標位置Ｌｔとして生成する（図２の中段右部参照）。
【００７９】
一方、力制御部４３ｂは、各動作についての力制御パラメーターが示す目標力（図２の中段左部および図３の下段参照）を参照し、力制御座標系とロボット座標系との対応関係Ｕ２に基づいて、各動作についての力制御パラメーターが示す目標力を、ロボット座標系における目標力ｆＬｔに変換する。
【００８０】
なお、当該目標力ｆＬｔは、任意の点に作用する力として変換され得る。一方、後述する作用力は、ＴＣＰに作用している力として表現される。このため、作用力と目標力ｆＬｔとを運動方程式で解析できるようにするため、ここでは、目標力ｆＬｔがＴＣＰの位置における力に変換されるものとして説明を行う。
【００８１】
制御部４３は、位置制御や力制御を実行するため、ロボット１〜３の状態を取得する。具体的には、制御部４３は、モーターＭ１〜Ｍ６の回転角度Ｄａを取得する（図２の右上参照）。制御部４３は、対応関係Ｕ１に基づいて、当該回転角度Ｄａをロボット座標系におけるＴＣＰの位置Ｌ（ｘ，ｙ，ｚ，Ｒｘ，Ｒｙ，Ｒｚ）に変換する（図２の中段右部参照）。
【００８２】
制御部４３は、対応関係Ｕ２を参照し、力覚センサーＰＳの検出値および位置と、ＴＣＰの位置Ｌと、に基づいて、力覚センサーＰＳに現実に作用している力を、ＴＣＰに作用している作用力ｆＬに変換して、ロボット座標系において特定する（図２の中段右部参照）。力覚センサーＰＳの出力において、力覚センサーＰＳに作用している力は、センサー座標系で定義されている。制御部４３は、力覚センサーＰＳの検出値と、ロボット座標系におけるＴＣＰの位置Ｌと、対応関係Ｕ２と、に基づいて、ロボット座標系においてＴＣＰに作用する作用力ｆＬを特定する。また、ロボットに作用するトルクは、作用力ｆＬと、ツール接触点（エンドエフェクターとワークの接触点）から力覚センサーＰＳまでの距離とから算出することができ、図示されないｆＬトルク成分として特定される。
【００８３】
制御部４３は、得られた作用力ｆＬに対して重力補償を行う。「重力補償」とは、作用力ｆＬから重力成分を除去する処理である。重力補償は、たとえば、ＴＣＰの姿勢ごとにＴＣＰに作用する作用力ｆＬの重力成分を予め調査しておき、作用力ｆＬから当該重力成分を減算することにより、実現可能である。
【００８４】
ＴＣＰに作用する重力以外の作用力ｆＬと、ＴＣＰに作用すべき目標力ｆＬｔとが特定されると、力制御部４３ｂは、対象物等の物体がＴＣＰに存在し、当該ＴＣＰに力が作用し得る状態において、インピーダンス制御による補正量ΔＬ（以後、力由来補正量ΔＬと呼ぶ。）を決定する。
【００８５】
具体的には、力制御部４３ｂは、記憶部４４内のパラメーター４４ａを参照して、インピーダンスパラメーターｍ，ｄ，ｋ（図３の下段参照）を取得する。また、力制御部４３ｂは、目標力ｆＬｔと作用力ｆＬとの力偏差ΔｆＬ（ｔ）を計算する。そして、それらを運動方程式（Ｅｑ３）に代入して力由来補正量ΔＬを計算する。力由来補正量ΔＬは、ＴＣＰが機械的インピーダンスによる作用力ｆＬを受けた場合に、目標力ｆＬｔと作用力ｆＬとの力偏差ΔｆＬ（ｔ）を解消して目標力ｆＬｔを達成するために、ＴＣＰが移動すべき位置Ｌの大きさを意味する。
【００８６】
ｍ[d２／dt２]ΔＬ(t)＋ｍ[d／dt]ΔＬ(t)＋ｋΔＬ(t)＝ΔｆＬ(t)・・・（Ｅｑ３）
【００８７】
式（Ｅｑ３）の右辺は、目標力ｆＬｔと現実の作用力ｆＬとの力偏差ΔｆＬ（ｔ）である。式（Ｅｑ３）の左辺は、ＴＣＰの位置Ｌの２階微分値に仮想慣性係数ｍを乗算した第１項と、ＴＣＰの位置Ｌの微分値に仮想粘性係数ｄを乗算した第２項と、ＴＣＰの位置Ｌに仮想弾性係数ｋを乗算した第３項とによって構成される。式（Ｅｑ３）における微分とは、時間による微分を意味する。
【００８８】
力由来補正量ΔＬが得られると、制御部４３は、対応関係Ｕ１に基づいて、ロボット座標系を規定する各軸の方向のΔＬを、各モーターＭ１〜Ｍ６の目標の回転角度である目標角度Ｄｔに変換する。なお、図２の中段右部においては、（Ｌｔ＋ΔＬ）に基づいて目標角度Ｄｔが決定される旨、記されている。しかし、これは、後述するハイブリッドモードにおける処理を表しているものであり、力制御モードにおいては、力由来補正量ΔＬに基づいて目標角度Ｄｔが決定される。
【００８９】
サーボ４３ｄは、目標角度Ｄｔと、モーターＭ１〜Ｍ６の現実の回転角度であるエンコーダーＥ１〜Ｅ６の出力（回転角度Ｄａ）と、に基づいて、各モーターＭ１〜Ｍ６の制御量Ｄｃを決定する。サーボ４３ｄにおける具体的なの処理は、すでに述べたとおりである。制御部４３は、各モーターＭ１〜Ｍ６の制御量Ｄｃで、各モーターＭ１〜Ｍ６を制御する。
【００９０】
以上のように、運動方程式に基づいて目標力ｆＬｔから制御量Ｄｃを導出して、モーターＭ１〜Ｍ６を制御するモードを、本明細書において「力制御モード」という。
【００９１】
（ｂ）位置制御モードおよびハイブリッドモード：
エンドエフェクター等の構成要素が対象物Ｗから力を受けない非接触状態の動作では、制御部４３は、力制御を行わない。すなわち、制御部４３は、目標位置から線形演算で導出する回転角度で、モーターＭ１〜Ｍ６を制御する。目標位置から線形演算で導出する回転角度でモーターＭ１〜Ｍ６を制御するモードを、本明細書において「位置制御モード」という。
【００９２】
また、制御部４３は、目標位置から線形演算で導出する回転角度と、目標力を運動方程式に代入して導出する回転角度とを、たとえば線型結合によって統合し、統合した回転角度でモーターＭ１〜Ｍ６を制御することができる。そのような制御モードを、本明細書において「ハイブリッドモード」という。
【００９３】
これらの制御モードは、動作ごとに、ロボットプログラム４４ｂによって予め決められる。
【００９４】
位置制御モードで制御を行う場合、位置制御部４３ａは、微小動作ごとの目標位置Ｌｔを決定する。微小動作ごとの目標位置Ｌｔが得られると、制御部４３は、目標位置Ｌｔと対応関係Ｕ１に基づいて、ロボット座標系を規定する各軸の方向の動作位置を、各モーターＭ１〜Ｍ６の目標の回転角度である目標角度Ｄｔに変換する。なお、図２の中段右部においては、（Ｌｔ＋ΔＬ）に基づいて目標角度Ｄｔが決定される旨、記されている。しかし、これは、ハイブリッドモードにおける処理を表しているものであり、位置制御モードにおいては、目標位置Ｌｔに基づいて目標角度Ｄｔが決定される。
【００９５】
サーボ４３ｄは、パラメーター４４ａを参照してサーボゲインＫｐｐ，Ｋｐｉ，Ｋｐｄ，Ｋｖｐ，Ｋｖｉ，Ｋｖｄを取得し、目標角度Ｄｔに基づいて、制御量Ｄｃを導出する。制御量Ｄｃは、モーターＭ１〜Ｍ６のそれぞれについて特定され、各モーターＭ１〜Ｍ６の制御量ＤｃでモーターＭ１〜Ｍ６のそれぞれが制御される。この結果、各動作において、ＴＣＰは、微小動作ごとの目標位置Ｌｔを経由し、加減速特性に従って始点から終点まで移動する。
【００９６】
一方、ハイブリッドモードでは、制御部４３は、微小動作ごとの目標位置Ｌｔに、力由来補正量ΔＬを加算することにより動作位置（Ｌｔ＋ΔＬ）を特定し、当該動作位置に基づいて目標角度Ｄｔを取得し（図２の中段右部参照）、制御量Ｄｃを取得する。
【００９７】
（ｉｉｉ）接触判定部４３ｃにおける処理：
接触判定部４３ｃは、ロボット１〜３が作業において想定されていない物体と接触したか否かを判定する機能を実行する。接触判定部４３ｃは、ロボット１〜３のそれぞれが備える力覚センサーＰＳの出力を取得する（図２の中段右部参照）。そして、出力が予め決められた基準値を超えた場合に、接触判定部４３ｃは、ロボット１〜３が作業において想定されていない物体と接触したと判定する。この場合、種々の処理が行われてよいが、接触判定部４３ｃは、たとえば、ロボット１〜３の制御量Ｄｃを０としてロボット１〜３を停止させる。なお、停止させる際の制御量は、種々の制御量であってよく、直前の制御量Ｄｃをキャンセルする制御量でロボット１〜３を動作させる構成等であってもよい。
【００９８】
Ａ３．ピックアップ処理：
以下で、ロボット１〜３の動作を説明する。ここでは、一例として、ロボット２の照明部２２で照明され、ロボット１の撮像部２１で撮像された対象物Ｗを、ロボット３のグリッパー２３でピックアップする作業について、説明する（図１参照）。ピックアップ処理は、ロボットプログラム４４ｂによって検出部４２および制御部４３が実行する処理によって実現される（図２参照）。本実施形態においてピックアップ処理は、作業台に対象物Ｗが配置した状態で実行される。
【００９９】
図６は、ピックアップ処理のフローチャートの例を示す図である。ピックアップ処理が開始されると、ステップＳ１００において、検出部４２は、撮像部２１で撮像した画像を取得する。より具体的には、以下の処理が行われる。
【０１００】
検出部４２は、パラメーター４４ａに含まれる照明部の位置（図３の右上部参照）を参照して、照明部２２の目標位置を決定し、その目標位置を位置制御部４３ａに渡す。位置制御部４３ａ（図２の中段右部参照）は、現在の照明部２２の位置を始点とし、パラメーター４４ａが示す照明部２２の目標位置を終点とする位置制御を実行し、目標位置に照明部２２を移動させる。
【０１０１】
検出部４２は、パラメーター４４ａに含まれる照明部の明るさ（図３の右上部参照）を参照して、照明部２２の明るさの目標値を決定し、照明部２２を制御して、その目標値の明るさの光を照射させる。
【０１０２】
検出部４２は、パラメーター４４ａに含まれる撮像部の位置（図３の右上部参照）を参照して、撮像部２１の目標位置を決定し、その目標位置を位置制御部４３ａに渡す。位置制御部４３ａ（図２の中段右部参照）は、現在の撮像部２１の位置を始点とし、パラメーター４４ａが示す撮像部２１の目標位置を終点とする位置制御を実行し、目標位置に撮像部２１を移動させる。
【０１０３】
検出部４２は、パラメーター４４ａに含まれる撮像部の露光時間および撮像部の絞り（図３の右上部参照）を参照して、撮像部２１の露光時間および絞りの目標値を決定する。そして、検出部４２は、撮像部２１を制御して、露光時間および絞りを、それぞれの目標値に設定する。
【０１０４】
露光時間および絞りの設定が完了すると、撮像部２１は、画像を撮像し、検出部４２に出力する。以上の処理により、検出部４２は、ステップＳ１００において画像を取得する。
【０１０５】
図６のステップＳ１０５において、検出部４２は、取得した画像に基づいて、対象物の検出に成功したか否かを判定する。より具体的には、以下の処理が行われる。
【０１０６】
検出部４２は、パラメーター４４ａを参照して画像処理シーケンスを特定し、その画像処理シーケンスが示す各処理を、パラメーター４４ａが示す強度で実行する（図２の左下部参照）。また、検出部４２は、テンプレートデータ４４ｃを参照し（図２の左下部参照）、テンプレートデータ４４ｃと画像との差分を閾値と比較する。差分が閾値以下である場合に、検出部４２は、対象物の検出が成功したと判定する。
【０１０７】
図６のステップＳ１０５において、対象物の検出が成功したと判定されない場合、検出部４２は、テンプレートデータ４４ｃと画像の相対位置、またはテンプレートデータ４４ｃの大きさ、の少なくとも一方を変化させ、ステップＳ１００以降の処理を繰り返す。一方、ステップＳ１０５において、対象物の検出が成功したと判定された場合、処理はステップＳ１１０に進む。
【０１０８】
ここで説明するピックアップ処理は、対象物の検出（Ｓ１００，Ｓ１０５）の後に、以下の動作を含む。（ｉ）検出部４２が検出した対象物Ｗの位置および姿勢に合わせて、ロボット３のグリッパー２３を移動させる。（ｉｉ）検出部４２が検出した対象物Ｗの位置および姿勢に合わせて、グリッパー２３の姿勢を変化させる。（ｉｉｉ）グリッパー２３で対象物Ｗをピックアップする。（ｉｖ）所定の位置まで対象物Ｗを運ぶ。（ｖ）グリッパー２３から対象物Ｗを離す。
【０１０９】
位置制御部４３ａおよび力制御部４３ｂは、ロボットプログラム４４ｂに基づいて、あらかじめ、実行する処理に含まれている複数の動作（ここでは、上記（ｉ）〜（ｖ）を含む複数の動作）を特定する。なお、ここでは、大まかに（ｉ）〜（ｖ）までの動作を挙げて説明したが、実際には、ピックアップ処理は、より多くの細かい動作を含む。
【０１１０】
ステップＳ１１０において、制御部４３は、制御目標を特定する。制御目標は、力由来補正量ΔＬ、目標位置Ｌｔなどである（図２の中段右部参照）。制御目標は、次に実行される動作の制御モードによって異なる。次に実行される動作は、各動作の中で未処理かつ時系列で最先の動作である。
【０１１１】
次に実行される動作が、力制御モードで実行される動作である場合、制御目標は、力由来補正量ΔＬである（上記Ａ２．（３）（ｉｉ）（ａ）参照）。次に実行される動作が力制御モードで実行される動作である場合、力制御部４３ｂは、パラメーター４４ａの力制御パラメーターを参照し、力制御座標系および目標力を取得する（図３の下段参照）。力制御部４３ｂ（図２の中段右部参照）は、力制御座標系に基づいて、当該目標力をロボット座標系の目標力ｆＬｔに変換する。また、力制御部４３ｂは、力覚センサーＰＳの出力をＴＣＰに作用している作用力ｆＬに変換する。さらに、力制御部４３ｂは、パラメーター４４ａの力制御パラメーター（インピーダンスパラメーターｍ，ｄ，ｋ）を参照して、力由来補正量ΔＬを決定する（図３の下段および図２の中段右部参照）。
【０１１２】
次に実行される動作が、位置制御モードで実行される動作である場合、制御目標は目標位置Ｌｔである（上記Ａ２．（３）（ｉｉ）（ｂ）参照）。次に実行される動作が位置制御モードで実行される動作である場合、位置制御部４３ａ（図２の中段左部参照）は、次に実行される動作を、さらに微小動作に細分化する。そして、位置制御部４３ａは、パラメーター４４ａの動作パラメーターを参照し、始点、終点、および加減速特性に基づいて、微小動作ごとの目標位置Ｌｔを決定する（図３の中段、および図２の中段参照）。
【０１１３】
次に実行される動作が、ハイブリッドモードで実行される動作である場合、制御目標は、目標位置Ｌｔおよび力由来補正量ΔＬである。次に実行される動作が、ハイブリッドモードで実行される動作である場合、位置制御部４３ａは、次に実行される動作を微小動作に細分化する。そして、位置制御部４３ａ（図２の中段左部参照）は、パラメーター４４ａの力制御パラメーターを参照し、始点、終点、および加減速特性に基づいて、微小動作ごとの目標位置Ｌｔを取得する（図３の下段、および図２の中段参照）。その後、位置制御部４３ａは、力制御座標系、目標力ｆＬｔ、インピーダンスパラメーター、作用力ｆＬに基づいて、力由来補正量ΔＬを決定する（図３の下段、および図２の中段右部参照）。
【０１１４】
図６のステップＳ１１５において、サーボ４３ｄ（図２の中段左部参照）は、グリッパー２３が取り付けられているロボット３を、決定した制御目標（目標位置Ｌｔや力由来補正量ΔＬ）で制御する。
【０１１５】
ステップＳ１２０において、制御部４３は、現在の動作が終了したか否かを判定する。この判定は、種々の終了判定条件によって実行されてよい。たとえば、現在の動作が、位置制御モードで実行される動作であれば、ＴＣＰが目標位置に達したことや、目標位置においてＴＣＰが整定したこと等が、判定条件として挙げられる。
【０１１６】
現在の動作が、力制御モードで実行される動作であれば、作用力が目標力に一致した状態から作用力が指定の大きさ以上、または指定の大きさ以下に変化したことや、ＴＣＰが指定の範囲外になったこと等が、判定条件として挙げられる。作用力が目標力に一致した状態から作用力が指定の大きさ以上、または指定の大きさ以下に変化したことを判定条件とする場合としては、たとえば、ピックアップ処理における対象物の把持動作の完了を判定する場合や、把持解除動作の完了を判定する場合が挙げられる。ＴＣＰが指定の範囲外になったことを判定条件とする場合としては、たとえば、ドリルによる対象物の貫通処理においてドリルが貫通したことを判定する場合が挙げられる。
【０１１７】
ステップＳ１２０において、現在の動作が終了したと判定された場合、処理は、ステップＳ１２５に進む。一方、ステップＳ１２０において、現在の動作が終了したと判定されない場合、制御部４３は、微小時間ΔＴ後に、次の微小動作の制御目標に基づいて、ステップＳ１１５以降の処理を実行する。なお、現在、実行されている動作が、位置制御モードで実行される動作である場合、制御部４３は、引き続き、ステップＳ１１５で、制御目標としての力由来補正量ΔＬに基づく制御を行う。
【０１１８】
ステップＳ１２５において、制御部４３は、処理が終了したか否かを判定する。ステップＳ１２０で終了したと判定された動作が、ピックアップ処理における最終動作であった場合、制御部４３は、ピックアップ処理が終了したと判定する。ステップＳ１２５でピックアップ処理が終了したと判定された場合、図６のフローの処理は、終了する。ステップＳ１２５で処理が終了したと判定されなかった場合、処理は、ステップＳ１３０に進む。
【０１１９】
ステップＳ１３０では、制御部４３は、ピックアップ処理のシーケンスの次の動作を、現在の動作に変更し、ステップＳ１１０以降の処理を実行する。
【０１２０】
Ａ４．パラメーターの最適化：
（１）パラメーターの最適化処理：
図７は、加減速特性を表すパラメーターとサーボゲインを表すパラメーターを最適化する最適化方法を示すフローチャートである。本実施形態においては、ロボット１〜３の運用に先立って、動作パラメーターのうちの加減速特性を表すパラメーターとサーボゲインを表すパラメーター（図３中段参照）が最適化される。図７の処理は、算出部４１（図２の下段中央参照）によって実行される。図７の処理を実現する算出部４１の機能部を、決定部４１ａとして図２に示す。
【０１２１】
ステップＳ２００においては、加減速特性とサーボゲインを最適化する動作が決定される。選択される動作には、たとえば、上記のピックアップ処理の説明において例示した（ｉ）〜（ｖ）の動作が含まれる（上記Ａ３．参照）。
【０１２２】
ステップＳ２１０では、評価するパラメーターの具体的な値が決定される。評価するパラメーターは、たとえば、制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄの具体的な値の組み合わせである（図４および図５参照）。ステップＳ２１０では、これらのパラメーターの具体的な値が、ベイズ最適化により、決定される。パラメーターの具体的な値の決定方法については、後に説明する。
【０１２３】
ステップＳ２２０では、ステップＳ２１０で決定されたパラメーターにしたがって、ステップＳ２００で決定された動作が実施される。そして、ステップＳ２１０で決定されたパラメーターにしたがって実施された動作が、目的関数および制約関数によって評価される。目的関数に含まれうる評価の指標としては、以下の指標がある。
【０１２４】
（Ｉ−１）動作の開始から終了までの所要時間。
所要時間が短いほど、評価は高くなる。動作の開始から終了までの所要時間は、動作の開始時および終了時のＴＣＰの目標位置と、エンコーダーＥ１〜Ｅ６（図２上段参照）から得られるＴＣＰの各時刻の位置に基づいて、決定することができる。
【０１２５】
（Ｉ−２）動作の終了時におけるＴＣＰの位置ずれの最大値（いわゆる、オーバーシュート）。
図８は、動作の終了時におけるＴＣＰの位置を示すグラフである。この指標においては、ロボットのＴＣＰの目標位置Ｌｔと、オーバーシュートＬｍａｘと、のずれが小さいほど、評価は高くなる。ＴＣＰの位置ずれは、動作の終了時のＴＣＰの目標位置Ｌｔと、エンコーダーＥ１〜Ｅ６（図２上段参照）から得られる動作の終了時前後のＴＣＰの位置Ｌと、ロボットのアームの先端に設けられている６軸の加速度センサーの出力と、に基づいて、決定することができる。
【０１２６】
（Ｉ−３）動作の終了時におけるＴＣＰの位置ずれが、あらかじめ定められた値Ｌｐｍ未満となる時刻までの、目標位置に到達しているべき時刻からの経過時間Ｔｓ（いわゆる、整定時間）。
整定時間Ｔｓ（図８参照）が短いほど、評価は高くなる。整定時間Ｔｓは、動作の終了時のＴＣＰの目標位置Ｌｔと、エンコーダーＥ１〜Ｅ６（図２上段参照）から得られる動作の終了時前後のＴＣＰの位置Ｌと、ロボットのアームの先端に設けられている６軸の加速度センサーの出力と、に基づいて、決定することができる。
【０１２７】
（Ｉ−４）ロボットが動作を行う際に要するモーターの駆動力。
駆動力が小さいほど評価は高くなる。ロボットが動作を行う際に要するモーターの駆動力（トルク）は、モーターＭ１〜Ｍ６に流れる電流を計測する電流計の出力に基づいて、決定することができる。ロボットが動作を行う際に要するモーターの駆動力は、たとえば、動作の開始後から次の動作の開始前まで動作に要したモーターの駆動力の最大値とすることができる。
【０１２８】
（Ｉ−５）ロボットが動作を実行する際に発生する音の大きさ。
図９は、ロボットが動作を実行する際に発生する音の大きさ（ｄＢ）を、横軸を周波数として表したグラフである。この指標においては、音の大きさが小さいほど、評価は高くなる。ロボットが動作を実行する際に発生する音の大きさは、以下のように決定することができる。すなわち、各ロボットの近傍に設けられたマイクによって、音を収集し、あらかじめ定められた周波数帯Ｒｔに含まれる音の大きさ（エネルギー量）に基づいて、「音の大きさ」の指標を決定することができる。そのように、「音の大きさ」の評価指標を定めることにより、ユーザーに取って不快な音を抑制するように、パラメーターを設定することができる。
【０１２９】
制約関数は、たとえば、上記指標のうち目的関数に含まれない指標を含むことができる。
【０１３０】
図７のステップＳ２３０では、それまでにＳ２２０で実施されたパラメーターの設定のうち、制約関数の出力値が制約条件を満たし、かつ、もっとも目的関数の観測値の評価が高かったパラメーターの設定を、暫定的な最適設定として、最適化モデルを更新する。
【０１３１】
ステップＳ２４０では、最適化の終了条件が満たされるか否かが判定される。具体的には、ステップＳ２３０で決定された暫定的なパラメーターの設定値についての目的関数による評価が十分に高いこと、または、あらかじめ定められた回数だけステップＳ２１０〜Ｓ２３０の処理が実行されたこと、のいずれかが満たされる場合には、最適化の終了条件が満たされると判定される。最適化の終了条件が満たされない場合には、処理の繰り返し回数のカウントが増やされて、処理はＳ２１０に戻る。最適化の終了条件が満たされる場合には、処理はＳ２５０に進む。
【０１３２】
ステップＳ２５０では、算出部４１は、その時点で最適化モデルを規定する入力パラメーターを、記憶部４４（図２の右下部参照）に出力し、記憶させる。その後、図７の処理は終了する。ステップＳ２５０の機能を実現する算出部４１の機能部を、出力部４１ｂとして図２に示す。
【０１３３】
このような処理を行うことにより、ステップＳ２１０〜Ｓ２３０を繰り返すことにより得られた、複数の入力パラメーターに対する目的関数の複数の観測値のうち、最もよい観測値に対応する入力パラメーターが、決定される。その結果、目的関数の評価が高い設定で、ロボットを運用することができる。
【０１３４】
上記の説明では、制約条件に関する処理の詳細な説明は省略した。しかし、実際のロボットの動作においては、制約条件が存在する。制約条件は、たとえば、ＴＣＰの目標位置からのずれの大きさが所定値以下であること、エンドエフェクターが目的位置に達した後の整定時間が所定値以下であること、ロボットを動作させる際のモーターの駆動力が所定値以下であること、などである。図７のステップＳ２１０では、そのような制約条件を満たしつつ、評価指標における評価が高いことが期待できるパラメーターの値が、ベイズ最適化により決定される。
【０１３５】
以下では、技術の理解を容易にするため、まず、制約条件がないときのベイズ最適化について説明し、その後、本実施形態の制約条件つきベイズ最適化について説明する。
【０１３６】
（２）制約条件のないベイズ最適化：
ベイズ最適化は、ｍ次元の入力ｘに応じて出力ｙを与えるブラックボックス関数が、ガウス過程（Gaussian Process：ＧＰ）に従うものと仮定して、出力ｙを最大化する入力ｘを探索する方法である。ブラックボックス関数がガウス過程に従うと仮定して処理を行うことにより、目的関数の観測値が他の分布に従うという仮定を置く態様に比べて、簡易な処理で、様々な目的関数に対して高度に適合する最適化を行うことができる。
目的関数ｙ＝ｆ（ｘ）：ｍ次元ベクトルである入力ｘ（ｘ∈Ｒｍ）で決まるスカラー値ｙ（y∈Ｒ）を与えるブラックボックス関数。ｍは、１以上の整数。
【０１３７】
たとえば、ある動作における加減速特性パラメーターを、その動作の所要時間について最適化する場合には、ｍ次元の入力ｘは、制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄの具体的な値の組み合わせである（図４および図５参照）。そして、目的関数ｙ＝ｆ（ｘ）は、その動作の開始から終了までの所要時間が短くなるほど大きくなる関数とする。ここで、動作の所要時間について加減速特性パラメーターを最適化するために、目的関数を、所要時間が短くなるほど大きくなる関数としたのは、以下の処理において、観測値ｙが高い値ほど入力ｘが好ましい、という評価を与えるためである。
【０１３８】
ｙが最大となるｘを求める最適化は、以下の式で表される。
【０１３９】
【数１】
2019111604.tif 000003
【０１４０】
観測される出力として、観測ノイズεを加算した形式のものを使用する。
出力の観測値ｙｊ＝ｆ（ｘｊ）＋ε
【０１４１】
ｎ組の入力ｘに対するｎ個の出力ｙの組を、観測値の組（ｘ１：ｎ，ｙ１：ｎ）とする。
【０１４２】
目的関数ｆ（ｘ）の値は以下のガウス分布に従うと仮定する。
ガウス分布
【数１６】
2019111604.tif 000004
：ｎ組の観測の結果として得られる、未観測の入力ｘに対する平均の推定値
【数１７】
2019111604.tif 000005
と、分散の推定値
【数１８】
2019111604.tif 000006
と、で決まるガウス分布。
【０１４３】
【数２】
2019111604.tif 000007
【数３】
2019111604.tif 000008
【０１４４】
必須ではないが、ガウス過程が観測結果によりフィットするようにハイパーパラメーターは調整され得る。
【０１４５】
獲得関数（Acquired Function：ＡＦ）は、未観測の入力ｘに対する評価値を示す関数である。獲得関数が最も高い入力ｘが次の入力として選択される。獲得関数として、たとえば、次の関数ＡＦｉ（ｘ）やＡＦ2（ｘ）が使用され得る。
【０１４６】
ＥＩ関数（Expected Improvement）：
【数４】
2019111604.tif 000009
【０１４７】
信頼限界（Confidence Bound：ＣＢ）：
【数５】
2019111604.tif 000010
【０１４８】
式（５）の右辺の「±」において、「＋」が使用されるときは「信頼限界上限（ＵＣＢ）」による獲得関数であり、「−」が使用されるときは「信頼限界下限（ＬＣＢ）」による獲得関数である。
【０１４９】
図１０は、制約条件がないときのベイズ最適化の処理を示すフローチャートである。図１０の処理は、図７のステップＳ２１０の処理に相当する。ステップＳ３００ｐにおいて、１以上のシード点（ｘ０，ｙ０）を求める。「シード点」とは、ｍ次元ベクトルである既知の入力ｘ０と、それに対して得られるスカラー値ｙ０の組み合わせである。シード点の入力ｘ０は、意図的に選択されてもよいし、ランダムに選択されてもよい。
【０１５０】
ステップＳ３１０ｐにおいて、繰り返し回数のカウントｉを１とする。
【０１５１】
ステップＳ３２０ｐにおいて、入力ｘｉ（ｍ次元ベクトル）を決定し、入力ｘｉに対する出力ｙｉ（スカラー値）を得る。最初にステップＳ３２０ｐの処理が行われるときは、入力ｘｉは、意図的に選択されてもよいし、ランダムに選択されてもよい。図７のＳ２４０を経て、再度、Ｓ２１０の処理（図１０の処理）が行われる場合は、図１０の処理は、ステップＳ３２０ｐから始まる。
【０１５２】
ステップＳ３３０ｐにおいて、ハイパーパラメーターｈ（式（２）および式（３）のα，Λ，β参照）を調整する。より具体的には、ｉ組の入力ｘ１：ｉからｉ個の出力ｙ１：ｉが得られる確率ｐｙを最大化するハイパーパラメーターｈを求め、得られた値にハイパーパラメーターｈを更新する。なお、図１０のＳ３３０ｐ中の「ａｒｇｍａｘ」は、最大値（ここでは確率ｐｙの最大値）を与える引数（ここではハイパーパラメーターｈ）を求める演算子である。
【０１５３】
ステップＳ３４０ｐにおいて、それまでの処理でステップＳ３２０ｐにおいて出力ｙが得られているｉ組の入力ｘ以外の入力ｘの中から、獲得関数ＡＦ(x)（式（４）および式（５）参照）が最大となる入力ｘを求める。得られたｘを次の入力ｘｉ＋１とする。その後、図１０の処理は終了し、図７のステップＳ２３０に進む。
【０１５４】
たとえば、ある動作の開始から終了までの所要時間を目的関数として、その動作における加減速特性パラメーター（制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄ）を最適化した場合には、以上の処理によって、以下の効果が得られる。すなわち、その動作の所要時間を、理論的最適解に近い程度まで短くすることができる加減速特性パラメーター（制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄ）を、効率的に得ることができる。ただし、図１０の処理においては、制約条件は考慮されていない。
【０１５５】
（３）制約条件つきベイズ最適化：
前述のように、実際のロボットの動作においては、制約条件が存在する。制約条件は、たとえば、ＴＣＰの目標位置からのずれの大きさが所定値以下であること、エンドエフェクターが目的位置に達した後の整定時間が所定値以下であること、ロボットを動作させる際のモーターの駆動力が所定値以下であること、などである。以下では、そのような制約条件を満たしつつ、動作パラメーター（図３中段参照）を最適化する最適化方法について説明する。
【０１５６】
ある制約関数ｃｉ＝ｇｉ（ｘ）の出力ｃｉ（スカラー値）が０未満になるという制約条件の下で、出力ｙを最大化する入力ｘを求める。
【数６】
2019111604.tif 000011
【０１５７】
観測される制約関数の出力cｉとして、観測ノイズεｉを加算した形式のものを使用する。
ｃｉ＝ｇｉ（ｘ）+εｉ
【０１５８】
制約付きベイズ最適化としては、以下の制約付きＥＩ関数を使用したものがある。
【０１５９】
制約付きＥＩ関数（Constrained EI acquisition Function）：
【数７】
2019111604.tif 000012
【０１６０】
なお、制約付き最適化問題を、次式で表される制約無しの問題として扱う方法も提案されている。
【０１６１】
【数８】
2019111604.tif 000013
【０１６２】
本実施形態においては、以下のように制約付きベイズ最適化が改良される。上述の式（２），（３）と同様の式を使って、ｉ番目の制約関数ｃｉ＝ｇi（ｘ）の平均と分散を推定する。
【０１６３】
【数９】
2019111604.tif 000014
【数１０】
2019111604.tif 000015
【０１６４】
獲得関数ＡＦとして信頼限界（Confidence Bound）を使用すると、獲得関数ＡＦを用いてｘを求める問題は、次のような制約付き最適化問題となる。
【０１６５】
【数１１】
2019111604.tif 000016
【０１６６】
式（１１）は、次式に書き換えることができる。
【０１６７】
【数１２】
2019111604.tif 000017
【０１６８】
式（１２）の解法としては、一般の制約付き最適化問題で利用される内点法（Interior point method）や有効制約法（Active set method）等の周知の方法を使用できる。
【０１６９】
なお、式（１２）を使った最適化は、制約付きの非線形計画問題であり、多くの局所的最適解を含むため、最適解に到達できない可能性がある。この問題を解決する方法の一つは、ランダムに選択した初期値セットを含む獲得関数を最適化して次の実行可能点（feasible point）を決定する方法であるが、次の実行可能点（制約条件を満たす点）がうまく求まらない場合がある。実行可能点がうまく求まらない場合の対策の一つは、最良点を次の点として選択することである。最良点を選択する基準としては、例えば、上記式（５）または式（７）の獲得関数を使用できる。
【０１７０】
図１１は、以上で説明した制約条件つきベイズ最適化処理のイメージを説明する説明図である。図１１において、横軸は入力ｘを表す。入力ｘは、ｍ次元ベクトルであるが、ここでは、技術の理解を容易にするために、ｘを１軸で表している。図１１において、縦軸は、cｉである。図１１中、黒い丸が、すでに得られている観測値、すなわち、既知の入力ｘと、それに対して得られている制約関数ｃiの出力の組み合わせを表す。
【０１７１】
ｍ次元の入力ｘに応じて出力を与えるｉ番目の制約関数ｃi＝ｇi（ｘ）が、ガウス過程に従うものと仮定して、既知の観測値に基づいて、ｉ番目の制約関数ｃiの平均μｉｃｎと分散σｉｃｎ２が推定される（式（９），（１０）参照）。制約関数がガウス過程に従うと仮定して処理を行うことにより、制約関数の観測値が他の分布に従うという仮定を置く態様に比べて、簡易な処理で、様々な制約関数に対して高度に適合する最適化を行うことができる。
【０１７２】
図１１において、各ｘに対する平均μｉｃｎを太い曲線で示す。また、平均μｉｃｎに対して、信頼限界下限と信頼限界上限を、平均μｉｃｎの太い曲線の上下に位置する細い曲線ＣＢで示す。たとえば、式（１１）において、δ＝０．０５とすると、未観測の制約関数の出力ｃｉは、９５％の確率で、図１１において信頼限界上限を表す細い曲線（平均μｉｃｎを表す太い曲線の上側に位置する）よりも下側に位置することとなる。
【０１７３】
図１２は、式（１２）による処理のイメージを説明する説明図である。なお、図１１および図１２は、いずれもイメージを説明するための図である。このため、図１１のグラフと図１２のグラフは、正確に整合するとは限らない。
【０１７４】
図１２の上段には、ＣＦｉ（ｘ）＝［μｉｃｎ（ｘ）＋zσｉｃｎ（ｘ）］のグラフを示す（式（１２）のs.t.以下参照）。図１２の上段のグラフにおいて、黒い丸が、既知の入力ｘと、それに対して得られる［μｉｃｎ（ｘ）＋zσｉｃｎ（ｘ）］の組み合わせを表す。式（１２）においては、［μｉｃｎ（ｘ）＋zσｉｃｎ（ｘ）］で推定されるｃｉ（ｘ）が、０より小さいことが求められている。よって、［μｉｃｎ（ｘ）＋zσｉｃｎ（ｘ）］のグラフが０より小さい区間が、制約関数ｃｉが０より小さいと推定できるｘの領域ＣｘＡである。制約関数ｃｉ（ｘ）が０より小さいと推定できるｘの制約範囲を「制約ｘ範囲ＣｘＡ」とも呼ぶ。
【０１７５】
なお、制約ｘ範囲ＣｘＡは、式（１２）におけるｚに応じて定まる。より具体的には、制約ｘ範囲ＣｘＡは、ｚを規定するδに応じて定まる。たとえば、δ＝０．０５とすると、制約ｘ範囲ＣｘＡ内にあるｘは、９５％の確率で、ｃｉ＜０を満たすと推定できる。
【０１７６】
図１２の中段には、目的関数の出力ｙの分布のグラフを示す。目的関数の出力ｙの分布は、式（２），（３）によって得られる平均と分散から推定される。図１２の中段において、黒い丸が、すでに得られている観測値、すなわち、既知の入力ｘと、それに対して得られている目的関数ｙの出力ｙの組み合わせを表す。図１２の中段において、各ｘに対する目的関数の出力の平均μｎを太い曲線で示す。また、平均μｎに対して、信頼限界下限と信頼限界上限を、平均μｎの太い曲線の上下に位置する細い曲線ＣＢで示す。
【０１７７】
目的関数の出力ｙの獲得関数ＡＦとして、制約条件の場合と同様、信頼限界を採用すると、獲得関数ＡＦ（ｘ）は、図１２の下段に示すようになる。それまでの処理で出力ｙが得られている入力ｘ以外の入力ｘであって、かつ、制約ｘ範囲ＣｘＡ内にあるｘのうちで、獲得関数ＡＦ（ｘ）を最大にする入力ｘが、次の入力ｘｉ＋１とされる（図１０のＳ３４０ｐ参照）。
【０１７８】
図１３は、本実施形態における制約条件つきベイズ最適化の処理を示すフローチャートである。図１３の処理は、図７のステップＳ２１０の処理に相当する。図１３の処理は、制御装置４０の算出部４１（図２の下段参照）によって実行される。すなわち、制御装置４０の算出部４１が、記憶部４４に記憶されたパラメーター４４ａ（図２の中段左部参照）を修正する。
【０１７９】
ステップＳ３００において、１以上のシード点（ｘ０，ｙ０，ｃ０）を求める。「シード点」とは、ｍ次元ベクトルである既知の入力ｘ０と、入力ｘ０に対して得られるスカラー値ｙ０と、入力ｘ０に対して得られるスカラー値ｃ０（ｘ）の組み合わせである。シード点の入力ｘ０は、意図的に選択されてもよいし、ランダムに選択されてもよい。
【０１８０】
ステップＳ３１０において、繰り返し回数のカウントｉを１とする。
【０１８１】
ステップＳ３２０において、入力ｘｉ（ｍ次元ベクトル）を決定し、入力ｘｉに対する目的関数の出力ｙｉ（スカラー値）および制約関数の出力ｃｉ（スカラー値）を得る。最初にステップＳ３２０の処理が行われるときは、入力ｘ１は、意図的に選択されてもよいし、ランダムに選択されてもよい。図７のＳ２４０を経て、再度、Ｓ２１０の処理（図１３の処理）が行われる場合は、図１３の処理は、ステップＳ３２０から始まる。
【０１８２】
ステップＳ３３０において、ハイパーパラメーターｈ（式（２）および式（３）のα，Λ，β参照）を調整する。より具体的には、ｉ組の入力ｘ１：ｉからｉ個の出力ｙ１：ｉが得られる確率ｐｙを最大化するハイパーパラメーターｈｙを求め、得られた値にハイパーパラメーターｈｙを更新する。また、ｉ組の入力ｘ１：ｉからｉ個の出力ｃ１：ｉが得られる確率ｐｃを最大化するハイパーパラメーターｈｃを求め、得られた値にハイパーパラメーターｈｃを更新する。ｈｙとｈｃとは異なっていてもよい。
【０１８３】
ステップＳ３４０において、それまでの処理でステップＳ３２０において出力ｙが得られている（ｉ＋１）組の入力ｘ以外の入力ｘの中から、式（１２）にしたがって（μｎ（ｘ）+λｎσｎ（ｘ））が最大となる入力ｘを求める。得られたｘを次の入力ｘｉ＋１とする。
【０１８４】
具体的には、ステップＳ３４０において、各制約関数の観測値ｃがガウス分布にしたがうという仮定のもとで、以下の処理が行われる。すなわち、ステップＳ３４２において、それまでに得られている制約関数の観測値ｃ１：ｉから、平均μｉｃｎおよび分散σｉｃｎ２を得る（式（９）および式（１０）参照）。それらの制約関数の統計パラメーターに基づいて、それまでに観測値を得たｘ１：ｉとは異なる複数組の入力パラメーターに対する制約関数の出力ｃの信頼限界ＣＢが、決定される（図１１参照）。ステップＳ３４４において、制約関数の出力ｃの信頼限界ＣＢを使用して、制約関数の出力ｃが条件を満たすと推定される入力パラメーターの制約ｘ範囲ＣｘＡが決定される（図１２上段参照）。ステップＳ３４６において、決定された制約ｘ範囲ＣｘＡ内において、ベイズ最適化により、目的関数ｙの最適化を行って、１組の入力パラメーターｘｎ＋１が新たに決定される（図１２の中段および下段参照）。その後、処理は図７のＳ２２０に進む。
【０１８５】
このように、ベイズ最適化により次の入力ｘｉ＋１を決定することにより、グリッドサーチなどの他の手法で目的関数の最適化を行う態様に比べて、効率的に新たな入力パラメーターを決定することができる。
【０１８６】
なお、図７のＳ２３０では、それまでにＳ２２０で評価が得られているすべての入力ｘの中から、制約関数ｃｉ＜０を満たす入力ｘであって、評価関数の出力ｙが最大の入力ｘを、暫定的な最適化モデルの入力パラメータとして決定する。
【０１８７】
たとえば、ある動作の開始から終了までの所要時間を目的関数として、その動作終了時におけるＴＣＰの目的位置からのずれ量が所定値以下であるという条件下で、その動作における加減速特性パラメーター（制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄ）を最適化した場合には、以上の処理によって、以下の効果が得られる。すなわち、その動作の所要時間を、理論的最適解に近い程度まで短くすることができる加減速特性パラメーター（制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄ）を、効率的に得ることができる。
【０１８８】
本実施形態によれば、実施してみなければ分からないある動作の所要時間について、制約条件を満たしかつ好ましい解を与える入力パラメーターｘを得る際に、制約条件を満たす可能性が高い１以上の制約範囲内の入力パラメーターｘから、目的関数の出力ｙが好ましいと推定できる入力パラメーターを、次の入力パラメーターｘｉ＋１として決定することができる（図１１、図１２および図１３のＳ３４０参照）。そして、そのようにして得られた目的関数の複数の観測値のうち、最もよい観測値に対応する入力パラメーターを、入力パラメーターの最適解として得ることができる（図７のＳ２３０，Ｓ２５０参照）。よって、効率的に、かつ、局所解に陥ることなく、制約条件を満たす入力パラメーターの最適解を得ることができる。
【０１８９】
なお、本実施形態における図１３のＳ３００の処理が、あらかじめ定められた１組以上の入力パラメーターに対する制約関数の観測値を準備する工程の具体例である。Ｓ３４２の処理が、前記制約関数の観測値が統計的分布にしたがうという仮定のもとで前記制約関数の前記観測値から得られる、前記制約関数の統計パラメーターに基づいて、前記１組以上の入力パラメーターとは異なる複数組の入力パラメーターに対する前記制約関数の出力の信頼限界を決定する工程の具体例である（図１１も参照）。図１３のＳ３４４の処理が、前記制約関数の出力の前記信頼限界を使用して、前記制約関数の出力が条件を満たすと推定される入力パラメーターの制約範囲を決定する工程の具体例である（図１２の上段も参照）。Ｓ３４６の処理が、前記決定された制約範囲内において、目的関数の最適化を行って、前記複数組の入力パラメーターの中から１組の入力パラメーターを新たに決定する工程の具体例である（図１２の中段および下段参照）。
【０１９０】
本実施形態における図７のＳ２２０の処理が、決定された前記１組の入力パラメーターによる前記目的関数の観測値を得る工程の具体例である。Ｓ２３０およびＳ２５０の処理が、前記工程を繰り返すことにより得られる、複数の入力パラメーターに対する前記目的関数の複数の観測値のうち、最もよい観測値に対応する入力パラメーターを、出力する工程の具体例である。
【０１９１】
本実施形態における上限最大加速度ａ１（図５参照）が、最大加速度の具体例である。
【０１９２】
（４）目的関数：
目的関数としては、上記（Ｉ−１）〜（Ｉ−５）で説明した評価指標など、さまざまな評価指標を表す関数を採用しうる。上記各指標について入力パラメーターを最適化することにより、実際にロボットの運用において求められる指標についての評価が高くなるように、ロボットの動作の最適化を行うことができる。たとえば、目的関数としては、以下の関数を採用しうる（上記（Ｉ−１）参照）。
【０１９３】
【数１３】
2019111604.tif 000018
【０１９４】
ここで、ｔｐは、動作ｐ（ｐ：１〜Ｐ。Ｐは、１以上の整数）のサイクルタイム（動作の開始から終了までの時間）、ｄｐは、動作ｐにおける移動距離、Ｅは、動作１〜Ｐについての期待値を表す関数であって０以上１未満の値を返す関数である。ここでは、具体的には、Ｅは、（ｔｐ／ｄｐ）（ｐ：１〜Ｐ）の平均値に対応する０以上１未満の値を返す関数である。
【０１９５】
（５）制約関数：
制約関数としては、上記（Ｉ−１）〜（Ｉ−５）で説明した評価指標のうち、目的関数ではない指標など、さまざまな評価指標を表す関数を採用しうる。上記各指標について制約条件を設定して入力パラメーターを最適化することにより、実際に求められる指標についての制約条件を満たすように、ロボットの動作の最適化を行うことができる。たとえば、制約関数としては、以下の関数を採用しうる。
【０１９６】
（Ｃ１）オーバーシュートが０．１ｍｍ未満であること（上記（Ｉ−２）参照）。
この制約条件は、以下の式で表すことができる。
【０１９７】
【数１４】
2019111604.tif 000019
【０１９８】
ここで、ＯＳｐは、動作ｐにおけるオーバーシュート、すなわち、動作ｐの終了時におけるＴＣＰの位置ずれの最大値である。
【０１９９】
（Ｃ２）その動作において必要とされる最大トルクが、モーターの仕様としての最大トルクの８０％未満であること（上記（Ｉ−４）参照）。
【０２００】
この制約条件は、以下の式で表すことができる。
【０２０１】
【数１５】
2019111604.tif 000020
【０２０２】
ここで、Ｔｐは、動作ｐにおいて必要とされる最大トルクであり、Ｔｍａｘは、モーターの仕様としての最大トルクである。
【０２０３】
（６）最適化するパラメーター：
最適化するパラメーターとしては、様々なパラメーターを採用しうる（図２の中段左部参照）。たとえば、最適化するパラメーターとしては、以下のようなパラメーターを採用しうる。
【０２０４】
（ＯＰ１）加減速特性を表すパラメーター：制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄ（図３の中段、図４および図５参照）。加減速特性を表すパラメーターは、関節（作動軸）ごとに設定される。なお、各パラメーターは、加速の場合と減速の場合とを分けて設定されることができる。
（ＯＰ２）重力補正パラメーター：重力による影響（たとえば、アーム部材のたわみ）を打ち消すために制御目標を補正する際に使用されるパラメーターである。重力補正パラメーターは、各関節について、６軸（ｘ，ｙ，ｚ，Ｒｘ，Ｒｙ，Ｒｚ）ごとに設定される。
（ＯＰ３）ねじれ補正パラメーター：重力および加速度によるアーム部材のねじれを打ち消すために加速度を補正する際に使用されるパラメーターである。各関節について、Ｒｘ，Ｒｙ，Ｒｚごとに設定される。
【０２０５】
（ＯＰ４）運用限界加速度パラメーター：ロボットを破損させず、かつ、振動（上記（Ｉ−２），（Ｉ−３）参照）が許容範囲内となるように設定される加速度を表すパラメーターである。運用限界加速度パラメーターは、加減速特性を表すパラメーターと同様の手法で、イナーシャに応じて設定することができる（図５参照）。運用限界加速度パラメーターは、各関節について、設定される。各パラメーターは、加速の場合と減速の場合とを分けて設定されることができる。
（ＯＰ５）運用限界加速度用の補正パラメーター：運用限界加速度を、ロボットが保持する負荷の大きさに応じて補正するためのパラメーターである。運用限界加速度用の補正パラメーターは、ロボットが保持する負荷の大きさに応じて設定される。運用限界加速度用の補正パラメーターは、基準目標加速度Ａｓｔを補正して目標加速度Ａｔを得る際の手法と同様の手法で、運用限界加速度に対して適用される。
（ＯＰ６）速度用の補正パラメーター：関節の回転速度を、ロボットが保持する負荷の大きさに応じて補正するためのパラメーターである。速度用の補正パラメーターは、ロボットが保持する負荷の大きさに応じて設定される。速度用の補正パラメーターは、基準目標加速度Ａｓｔを補正して目標加速度Ａｔを得る際の手法と同様の手法で、速度に対して適用される。
【０２０６】
（ＯＰ７）高さ補正パラメーター：関節の回転速度および回転加速度を、ロボットのアームＡの最大高さ位置に応じて補正するためのパラメーターである。たとえば、６個のアーム部材Ａ１〜Ａ６（図１参照）が一列にならび、かつ、Ｚ軸＋方向を向くとき、ロボットのアームＡの最大高さ位置は、最大となる。なお、アーム部材Ａ６の位置が、常に最大高さ位置となるとは限らない。アームＡが屈曲しているときには、他のアーム部材の位置が、最大高さ位置となる場合がある。アームＡの最大高さ位置が高いほど振動が発生しやすくなるため、高さ補正パラメーターによって、加速度が制限される。速度用の補正パラメーターは、ロボットのアームＡの最大高さ位置に応じて設定される。
【０２０７】
上記各パラメーターに代表される、ロボットの動作を制御するためのパラメーターを、本実施形態の手法で最適化することにより、ロボットの動作の最適化を容易に行うことができる。また、本実施形態では、ベイズ最適化を使用してロボットの動作に関する動作パラメーターを決定する。このため、勾配法など他の手法を使用して動作パラメーターを決定する態様に比べて、局所解に陥る可能性を低減しつつ、自動的かつ効率的にロボットの動作パラメーターを決定して、ロボットを制御することができる。
【０２０８】
（７）評価：
ロボット３のピックアップ処理（図３参照）について、関節Ｊ１〜Ｊ６の加減速特性を表すパラメーター（ＯＰ１）を最適化する処理を行った。最適化の対象としたピックアップ処理は、３５個の動作を含む。比較例では、人間が動作パラメーターを設定した。実施例では、本実施形態のベイズ最適化（図７および図１３参照）を適用して、動作パラメーターを設定した。実施例においては、目的関数を上記式（１３）とした。制約条件は、上記（Ｃ１）、ならびに関節Ｊ１〜Ｊ３に関する上記（Ｃ２）とした。最適化の終了条件（図７のＳ２４０参照）は、繰り返し回数ｉが４０回に達したこと、とした。
【０２０９】
表１は、パラメーターの最適化に際して、ベイズ最適化を適用した場合と、適用しない場合の、平均サイクルタイムＥ（ｔｐ／ｄｐ）を示す表である。
【表１】
2019111604.tif 000021
【０２１０】
表１より、実施例においては、比較例に比べて、平均サイクルタイムＥ（ｔｐ／ｄｐ）が短縮されていることが分かる。また、比較例において各パラメータを決定するまでには、専門技能を有するオペレータが約１週間を要した。これに対して、実施例において各パラメータを決定するのに要した時間は約８時間であった。このことから、本実施形態のロボットシステムによれば、ロボットにおいて各動作パラメータを決定するのに要する時間を、大幅に短縮できることが分かる。また、各動作パラメータの決定がシステムによって自動的に行われ、人手を要しない（オペレータを拘束しない）ことから、ロボットの設置および運用におけるコストを大幅に削減できることが分かる。
【０２１１】
図１４は、最適化されたピックアップ処理に含まれる３５個の動作の実施例および比較例におけるサイクルタイムを示す。図１４の横軸が、３５個の動作を表す。図１４の縦軸が、各動作のサイクルタイムを表す。黒い三角形が実施例の値を示す。黒い丸が比較例の値を示す。図１４から明らかなように、ほぼすべての動作において、実施例におけるサイクルタイムが、比較例におけるサイクルタイムよりも短いことが分かる。なお、これら３５個の動作のサイクルタイムの実施例および比較例ごとの平均値が、表１の平均サイクルタイムである。
【０２１２】
図１５は、実施例において、ある動作のパラメーターの最適化を行う際にテストされたパラメーター設定値の目的関数による評価の推移を示すグラフである。より具体的には、図１５の実線のグラフは、図７のステップＳ２２０で実施され、評価されたパラメーターによる目的関数の出力を、示している。制約付きベイズ最適化は、制約条件を満たしつつよりよい評価が得られそうな入力値を選択し（図１３のＳ３４０参照）、目的関数の出力を評価するものであるため、試行回数が後になるほど目的関数の出力が高い値になるわけではない。
【０２１３】
図１６は、実施例において、図１５の動作のパラメーターの最適化を行う際にテストされたパラメーター設定値の制約関数による評価の推移を示すグラフである。より具体的には、一点鎖線のグラフは、図７のステップＳ２２０で実施され、評価されたパラメーターによる、オーバーシュートの制約関数の出力を、示している（上記（Ｃ１）参照）。二点鎖線のグラフは、ステップＳ２２０で評価されたパラメーターによる、関節Ｊ１の最大トルクの制約関数の出力を、示している（上記（Ｃ２）参照）。破線のグラフは、ステップＳ２２０で評価されたパラメーターによる、関節Ｊ２の最大トルクの制約関数の出力を、示している（上記（Ｃ２）参照）。実線のグラフは、ステップＳ２２０で評価されたパラメーターによる、関節Ｊ３の最大トルクの制約関数の出力を、示している（上記（Ｃ２）参照）。
【０２１４】
図１６の制約関数の出力値のグラフがいずれも０を下回っている試行のときの入力ｘが、最適解の候補となり得る（式（１４），式（１５）ならびに図７のＳ２３０参照）。その条件を満たす試行のときの目的関数の評価値を、図１５において白い丸で示す。図７のＳ２３０では、それまでに得られている入力値のうち、もっとも目的関数の出力値が高い入力値が、暫定的な最適解とされ、最適化モデルが更新される。図７のＳ２３０における暫定的な最適解の目的関数の評価値の推移を、図１５において、一点鎖線で示す。図１５より、試行回数が増えると、よりよい解が得られていることが分かる。
【０２１５】
Ｂ．他の実施形態：
Ｂ１．他の実施形態１：
（１）図１７は、複数のプロセッサーによってロボットの制御装置が構成される一例を示す概念図である。この例では、ロボット１〜３及びその制御装置４０の他に、パーソナルコンピューター４００，４１０と、ＬＡＮなどのネットワーク環境を介して提供されるクラウドサービス５００とが描かれている。パーソナルコンピューター４００，４１０は、それぞれプロセッサーとメモリーとを含んでいる。また、クラウドサービス５００においてもプロセッサーとメモリーを利用可能である。プロセッサーは、コンピューター実行可能な命令を実行する。これらの複数のプロセッサーの一部または全部を利用して、ロボット１〜３の制御装置を実現することが可能である。
【０２１６】
（２）図１８は、複数のプロセッサーによってロボットの制御装置が構成される他の例を示す概念図である。この例では、ロボット１〜３の制御装置４０が、ロボット１の中に格納されている点が図２と異なる。この例においても、複数のプロセッサーの一部または全部を利用して、ロボット１〜３の制御装置を実現することが可能である。
【０２１７】
（３）上記実施形態では、対象物Ｗをロボット３のグリッパー２３でピックアップする処理を例にして、動作パラメーターの最適化について説明した（図３および図６参照）。しかし。ただし、パラメーターが最適化される処理は、ピックアップ処理における動作パラメーターに限定されず、他にも種々の処理に適用可能である。たとえば、パラメーターが最適化される処理は、撮像部２１を配置する処理や、照明部２２を配置する処理に適用可能である。また、パラメーターが最適化される処理は、ネジ締め、挿入、ドリルによる穴あけ、バリ取り、研磨、組み立て、製品チェック等印も適用可能である。さらに、パラメーターが最適化される処理は、画像処理パラメータ（図３上段参照）にも適用可能である。
【０２１８】
（４）上記実施形態では、ピックアップ処理の各動作は正常に終了するものとして、説明した。しかし、図６のステップＳ１２０において、動作が失敗したと推定される場合に、動作が終了したと判定されてもよい。ただし、この場合には、処理の中止や中断が行われることが好ましい。動作の失敗を判定するための終了判定条件としては、たとえば、ＴＣＰの移動速度や加速度が上限値を超えた場合やタイムアウトが発生した場合等が挙げられる。終了判定条件を充足したか否かは、各種のセンサー、力覚センサーＰＳや撮像部２１、他のセンサー等が利用されてよい。
【０２１９】
（５）上記実施形態においては、最適化される動作パラメーターには、制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄが含まれる（図４および図５参照）。しかし、最適化される動作パラメーターは、これらの動作パラメーター以外の動作パラメーター、たとえば、動作の始点や終点を表すパラメーターやサーボゲインを表すパラメーター、さらには、光学パラメーターや力制御パラメーターなどのパラメーターとすることもできる（図３参照）。
【０２２０】
（６）本明細書では、技術内容の説明において、便宜的に「複数組の入力パラメーター」と記載している。制約関数や目的関数の平均および分布を推定する入力パラメーターが、連続値である場合も、本明細書における「複数組の入力パラメーター」に含まれるものとする（図１１および図１２中段参照）。
【０２２１】
Ｂ２．他の実施形態２：
上記実施形態においては、ベイズ最適化により、目的関数についての入力パラメーターの最適化を行った（図１１および図１２参照）。しかし、入力パラメーターの最適化は、Nelder-Mead法、遺伝的アルゴリズムなど、他の最適化アルゴリズムによって行われることもできる。
【０２２２】
Ｂ３．他の実施形態３：
上記実施形態においては、ある入力に対する目的関数の未観測の出力および制約関数の未観測の出力が、それぞれガウス分布にしたがうという仮定の下に、最適化が行われる。しかし、目的関数の出力および制約関数の出力が統計的分布にしたがうという推定は、三角分布、ガンマ分布、ワイブル分布など、ガウス分布以外の統計的分布を使用して行われてもよい。また、目的関数の未観測の出力と、制約関数の未観測の出力とが、互いに異なる統計的分布にしたがうという推定の下で処理を行うこともできる。
【０２２３】
なお、本明細書において、「統計的分布」とは、有限個の統計パラメーターによって全体を規定することができる分布を意味する。
【０２２４】
Ｂ４．他の実施形態４：
上記実施形態においては、最適化されるパラメーターは、垂直多関節型ロボットの動作を制御するためのパラメーターである（図１および図３参照）。しかし、最適化されるパラメーターは、水平多関節ロボット、直行ロボットなど他のロボットの動作を制御するためのパラメーターとすることもできる。たとえば、最適化されるパラメーターは、７個以上の作動軸を含むロボットの動作や、双腕ロボットなどの複腕ロボットの動作を制御するためのパラメーターとすることもできる。一般的に、７個以上の作動軸を含むロボットや、複腕ロボットは、他のロボットに比べて負荷が大きい。このため、そのようなロボットの動作を制御するためのパラメーターを最適化する場合には、目標関数に「ロボットが動作を行う際に要する駆動力」を含むことが望ましい。
【０２２５】
Ｂ５．他の実施形態５：
（１）上記実施形態においては、式（１３）で表される目的関数を採用した。しかし、目的関数としては、上記（Ｉ−１）〜（Ｉ−５）を要素として含む他の関数を採用することもできる。また、目的関数は、動作の際に生じる最大加速度（関節の回転の加速度であってもよいし、３次元空間における移動の加速度であってもよい）など、上記（Ｉ−１）〜（Ｉ−５）以外の要素を含むこともできる。目的関数は、評価指標の要素を２以上含むことができる。目的関数は、評価指標の要素の重み付け和を含むことができる。また、目的関数は、異なる評価指標の要素を、分子と分母に持つ項を有することもできる。
【０２２６】
（２）上記実施形態においては、位置ずれは、ＴＣＰのオーバーシュートＯＳである（図８参照）。しかし、位置ずれは、ずれの平均値や分散など、他の方法で評価することもできる。また、位置ずれを評価する所定部位は、エンドエフェクターの任意の部位、ロボットのアームの先端、力覚センサーの任意の部位、いずれかの関節の任意の部位など、ＴＣＰ以外の部位とすることができる。
【０２２７】
（３）上記実施形態においては、評価指標としての整定時間は、目標位置に到達しているべき時刻からの経過時間Ｔｓであった（上記（Ｉ−３）、および図８参照）。しかし、評価指標としての整定時間は、ロボットの基準となる部位が動作の終了時における目標位置に最初に達した時刻や、動作の開始時刻など、他の基準時刻からの経過時間であってもよい。
【０２２８】
Ｂ６．他の実施形態６：
上記実施形態においては、式（１４）および式（１５）で表される制約関数を採用した。しかし、制約関数としては、上記（Ｉ−１）〜（Ｉ−５）のうち、目的関数に含まれていないものを要素として含む他の関数を採用することもできる。また、制約関数は、動作の際に生じる最大加速度（関節の回転の加速度であってもよいし、３次元空間における移動の加速度であってもよい）など、上記（Ｉ−１）〜（Ｉ−５）以外の要素を含むこともできる。制約関数は、評価指標の要素を２以上含むことができる。制約関数は、評価指標の要素の重み付け和を含むことができる。また、制約関数は、異なる評価指標の要素を、分子と分母に持つ項を有することもできる。
【０２２９】
Ｂ７．他の実施形態７：
上記実施形態においては、最適化される動作パラメーターには、上限最大加速度ａ１が含まれる（図４および図５参照）。しかし、最適化される動作パラメーターは、上限最大加速度ａ１以外の動作パラメーター、たとえば、動作の始点や終点を表すパラメーターやサーボゲインを表すパラメーター、さらには、光学パラメーターや力制御パラメーターなどのパラメーターとすることもできる（図３参照）。
【０２３０】
Ｂ８．他の実施形態８：
上記実施形態においては、最適化される動作パラメーターには、制限最大加速度ａ０、上限最大加速度ａ１、基準目標加速度Ａｓｔの傾きｂ、負荷補正係数ＣＬの傾きｄが含まれる（図４および図５参照）。しかし、最適化される動作パラメーターは、これらの動作パラメーター以外の動作パラメーター、たとえば、動作の始点や終点を表すパラメーターやサーボゲインを表すパラメーター、さらには、光学パラメーターや力制御パラメーターなどのパラメーターとすることもできる（図３参照）。
【０２３１】
Ｂ９．他の実施形態９：
本開示は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【符号の説明】
【０２３２】
Ａ…アーム；Ａ１〜Ａ６…アーム部材；ＡＦ（ｘ）…獲得関数；Ａｓｔ…基準目標加速度；ＣＢ…信頼限界；ＣＦｉ（ｘ）…制約関数の出力の平均に信頼限界上限を足し合わせたもの；ＣｘＡ…制約ｘ範囲；Ｄａ…回転角度；Ｄｃ…制御量；Ｄｅ…偏差；Ｄｔ…目標角度；Ｅ１〜Ｅ６…エンコーダー；Ｉ…イナーシャ；Ｉｍａｘ…イナーシャの最大値；Ｉｍｉｎ…イナーシャの最小値；Ｉｔｈ…イナーシャの値；Ｊ１〜Ｊ６…関節；Ｋｐｄ…微分ゲイン；Ｋｐｉ…積分ゲイン；Ｋｐｐ…比例ゲイン；Ｋｖｄ…微分ゲイン；Ｋｖｉ…積分ゲイン；Ｋｖｐ…比例ゲイン；ΔＬ…力由来補正量；Ｌ…位置；Ｌｔ…目標位置；Ｌｍａｘ…位置の最大値；Ｌｐｍ…位置の許容範囲の幅の１／２；Ｍ…処理のカウントの上限値；Ｍ１〜Ｍ６…モーター；ＯＳ…オーバーシュート；ＰＳ…力覚センサー；Ｒｔ…音の大きさの評価において考慮される周波数帯；Ｔ…基台；ＴＣＰ…ツールセンターポイント；Ｔｓ…整定時間；Ｕ１…モーターＭ１〜Ｍ６の回転角度の組み合わせとロボット座標系におけるＴＣＰの位置との対応関係；Ｕ２…座標系同士の対応関係；Ｖ…ＴＣＰの速度；Ｗ…対象物；ａ０…制限最大加速度；ａ１…上限最大加速度；ｂ…基準目標加速度Ａｓｔの変化率；ｃｉ…制約関数；ｄ…仮想粘性係数；ｆ…目的関数；ｆＬ…作用力；ΔｆＬ…力偏差；ｈ，ｈｃ，ｈｙ…ハイパーパラメーター；μｉｃｎ…制約関数の出力の推定値（平均）；ｋ…仮想弾性係数；ｍ…仮想慣性係数；μｎ…目的関数の出力の推定値（平均）；ｔ…時間；ｔ１…移動開始時刻；ｔ２…加速終了時刻；ｔ３…減速開始時刻；ｔ４…移動終了時刻；ｘ…入力パラメーター（ｍ次元ベクトル）；ｘｎ＋１…新たに決定される入力パラメーター；ｙ…目的関数の出力（スカラー値）；１〜３…ロボット；２０…光学系；２１…撮像部；２２…照明部；２３…グリッパー；４０…制御装置；４１…算出部；４１ａ…決定部；４１ｂ…出力部；４２…検出部；４３…制御部；４３ａ…位置制御部；４３ｂ…力制御部；４３ｃ…接触判定部；４３ｄ…サーボ；４４…記憶部；４４ａ…動作パラメーター；４４ｂ…ロボットプログラム；４４ｃ…テンプレートデータ；４００，４１０…パーソナルコンピューター；５００…クラウドサービス
【図１】
2019111604.tif 000022
【図２】
2019111604.tif 000023
【図３】
2019111604.tif 000024
【図４】
2019111604.tif 000025
【図５】
2019111604.tif 000026
【図６】
2019111604.tif 000027
【図７】
2019111604.tif 000028
【図８】
2019111604.tif 000029
【図９】
2019111604.tif 000030
【図１０】
2019111604.tif 000031
【図１１】
2019111604.tif 000032
【図１２】
2019111604.tif 000033
【図１３】
2019111604.tif 000034
【図１４】
2019111604.tif 000035
【図１５】
2019111604.tif 000036
【図１６】
2019111604.tif 000037
【図１７】
2019111604.tif 000038
【図１８】
2019111604.tif 000039