(57)【特許請求の範囲】
【請求項１】
複数の移動区間で作業を行うロボットの動作を制御するパラメータを事前に教示された移動区間毎に記憶するパラメータ記憶部と、
複数の前記移動区間の前記動作を組み合わせた一連動作における前記ロボットの前記一連動作における状態を示す状態変数を前記移動区間毎の前記パラメータに基づいて取得する状態変数取得部と、
前記一連動作における前記状態変数に基づいて、前記一連動作を評価する前記一連動作の評価値および前記一連動作のサイクルタイムを算出する評価部と、
前記一連動作における前記評価値が第１の条件を満たし且つ前記一連動作のサイクルタイムが第２の条件を満たすパラメータの前記移動区間毎の値を多目的最適化手法を用いた学習で算出し、算出したパラメータの値を前記パラメータ記憶部に記憶させる機械学習部と、
を備えることを特徴とするパラメータ算出装置。
【請求項２】
前記パラメータには、前記ロボットの速さを決めるパラメータが含まれる、
ことを特徴とする請求項１に記載のパラメータ算出装置。
【請求項３】
前記パラメータには、前記ロボットが前記一連動作を実行する作業環境のレイアウトを決めるパラメータが含まれる、
ことを特徴とする請求項１に記載のパラメータ算出装置。
【請求項４】
前記評価値は、前記一連動作を繰り返す場合の前記ロボットが備える部品の予測寿命、前記一連動作で消費される前記部品の消費電流、および前記一連動作で消費される前記部品の消費電力の少なくとも１つである、
ことを特徴とする請求項１から３の何れか１つに記載のパラメータ算出装置。
【請求項５】
前記機械学習部は、前記評価値が制約条件を満たしつつ、前記サイクルタイムが短くなるパラメータの値を学習で算出する、
ことを特徴とする請求項１から４の何れか１つに記載のパラメータ算出装置。
【請求項６】
前記機械学習部は、前記サイクルタイムが制約条件を満たしつつ、前記評価値が改善されるパラメータの値を学習で算出する、
ことを特徴とする請求項１から４の何れか１つに記載のパラメータ算出装置。
【請求項７】
前記評価値の１つが、前記予測寿命である場合には、
前記状態変数は、前記一連動作における、前記ロボットの関節の変位、前記関節の速度、および前記関節の加速度を含み、
前記評価部は、前記変位、前記速度、および前記加速度を用いて前記関節に加わる負荷トルクを算出し、前記負荷トルクおよび前記関節の動作量に基づいて前記部品の前記一連動作での損傷度を算出し、前記予測寿命を前記損傷度に基づいて算出する、
ことを特徴とする請求項４に記載のパラメータ算出装置。
【請求項８】
前記評価値の１つが、前記消費電流である場合には、
前記状態変数は、前記一連動作における、前記ロボットの関節を駆動する電流値を含み、
前記評価部は、前記電流値を用いて、前記消費電流を算出する、
ことを特徴とする請求項４に記載のパラメータ算出装置。
【請求項９】
前記評価値の１つが、前記消費電力である場合には、
前記状態変数は、前記一連動作における、前記ロボットの関節を駆動する電流値を含み、
前記評価部は、前記電流値を用いて、前記消費電力を算出する、
ことを特徴とする請求項４に記載のパラメータ算出装置。
【請求項１０】
前記機械学習部は、前記移動区間毎に算出された評価値に基づいて、学習を行うパラメータの初期値を調整する、
ことを特徴とする請求項１から９の何れか１つに記載のパラメータ算出装置。
【請求項１１】
前記機械学習部は、前記移動区間毎に算出された評価値に基づいて、学習を行う移動区間を選択する、
ことを特徴とする請求項１から１０の何れか１つに記載のパラメータ算出装置。
【請求項１２】
前記機械学習部は、前記移動区間における動作時間と前記評価値との比率を前記移動区間毎に算出し、前記比率に基づいて、学習を行う移動区間を選択する、
ことを特徴とする請求項１から１０の何れか１つに記載のパラメータ算出装置。
【請求項１３】
前記状態変数取得部は、前記ロボットの動作を模擬するシミュレータによるシミュレーション結果から、前記状態変数を取得する、
ことを特徴とする請求項１から１２の何れか１つに記載のパラメータ算出装置。
【請求項１４】
前記状態変数取得部は、実際にロボットが動作した際の動作結果に基づいて、前記状態変数を取得する、
ことを特徴とする請求項１から１２の何れか１つに記載のパラメータ算出装置。
【請求項１５】
前記機械学習部が前記パラメータの値を学習する移動区間を記憶する区間記憶部をさらに備え、
前記区間記憶部は、ユーザによって指定された移動区間を記憶し、
前記機械学習部は、前記区間記憶部が記憶している移動区間に対し、前記パラメータの値を学習する、
ことを特徴とする請求項１から１０の何れか１つに記載のパラメータ算出装置。
【請求項１６】
前記機械学習部が前記パラメータの値を学習している間に、前記パラメータ記憶部に記憶されるパラメータの値、前記評価部が算出するサイクルタイム、前記評価部が算出する評価値の少なくとも１つを可視化した情報を生成する学習経過可視化部をさらに備える、
ことを特徴とする請求項１から１５の何れか１つに記載のパラメータ算出装置。
【請求項１７】
前記機械学習部が算出したパラメータの値に基づいて、前記ロボットを動作させるためのプログラムを生成するプログラム生成部をさらに備える、
ことを特徴とする請求項１から１６の何れか１つに記載のパラメータ算出装置。
【請求項１８】
前記一連動作の前記評価値は、前記一連動作に含まれる前記移動区間におけるそれぞれの評価値の和であり、
前記一連動作のサイクルタイムは、前記一連動作に含まれる前記移動区間におけるそれぞれの動作時間の和である、
ことを特徴とする請求項１から１７の何れか１つに記載のパラメータ算出装置。
【請求項１９】
請求項１から１８のいずれか１つに記載のパラメータ算出装置と、
前記パラメータ算出装置が算出したパラメータの前記移動区間毎の値に基づいて、前記ロボットの動作を制御するロボットコントローラと、
を有することを特徴とするロボット制御システム。
【請求項２０】
請求項１９に記載のロボット制御システムと、
前記ロボット制御システムによって制御される前記ロボットと、
を有することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作を制御するためのパラメータを算出するパラメータ算出装置、ロボット制御システム、およびロボットシステムに関する。
【背景技術】
【０００２】
近年、産業用のロボットには、生産性を向上させるために、対象作業に応じた動作の高速化が求められている。一方で、ロボットの関節軸のアクチュエータが、出力可能な最大速度で繰り返し動作を行うと、負荷の大きさによっては、ロボットが備える部品が過大に消耗し設計寿命を満たさなくなる場合がある。このため、ロボットを制御する制御装置は、ロボットの関節軸に加わる負荷トルクなどを監視し、アクチュエータに出力する動作指令を生成するための速度または加速度のパラメータを調整することが望まれる。【０００３】
特許文献１に記載の寿命推定シミュレーション装置は、ロボット動作のシミュレーションによって得られた減速機の負荷の値が、目標寿命を満たすための負荷基準値より大きい場合には、速度指令値を低減させている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１４４３４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１の技術では、特定タイミングの速度指令値を低減させることで寿命を延ばしており、減速機の一連動作の全体に対しては、寿命などの制約条件を考慮していない。このため、上記特許文献１の技術では、一連動作の全体に対し、寿命などの制約条件とサイクルタイムとの両方を考慮して動作指令を調整することはできない。すなわち、上記特許文献１の技術では、一連動作に対する制約条件と、一連動作に対するサイクルタイムとの両方が、それぞれ特定の条件を満たすことはできない。【０００６】
本発明は、上記に鑑みてなされたものであって、一連動作に対する制約条件と、一連動作に対するサイクルタイムとの両方が、それぞれ特定条件を満たす全体最適化を実現することができるパラメータ算出装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明のパラメータ算出装置は、複数の移動区間で作業を行うロボットの動作を制御するパラメータを事前に教示された移動区間毎に記憶するパラメータ記憶部と、複数の移動区間の動作を組み合わせた一連動作におけるロボットの状態を示す状態変数を移動区間毎のパラメータに基づいて取得する状態変数取得部と、を備える。また、本発明のパラメータ算出装置は、一連動作における状態変数に基づいて、一連動作を評価する一連動作の評価値および一連動作のサイクルタイムを算出する評価部と、一連動作における評価値が第１の条件を満たし且つ一連動作のサイクルタイムが第２の条件を満たすパラメータの移動区間毎の値を多目的最適化手法を用いた学習で算出し、算出したパラメータの値をパラメータ記憶部に記憶させる機械学習部と、を備える。
【発明の効果】
【０００８】
本発明にかかるパラメータ算出装置は、一連動作に対する制約条件と、一連動作に対するサイクルタイムとの両方が、それぞれ特定条件を満たす全体最適化を実現することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかるパラメータ算出装置の構成を示すブロック図
【図２】実施の形態１にかかるパラメータ算出装置によるパラメータの算出処理手順を示すフローチャート
【図３】実施の形態１にかかるパラメータ算出装置の第１の別構成例を示すブロック図
【図４】実施の形態１にかかるロボットの一連動作を説明するための図
【図５】実施の形態１にかかるパラメータ算出装置が生成する速度パターンの例を示す図
【図６】図５に示した速度パターンに対して、最高速度および加速度が低減された場合の速度パターンの例を示す図
【図７】実施の形態１にかかるパラメータ算出装置が生成する速度パターンと、比較例の速度パターンとの差異を説明するための図
【図８】実施の形態１にかかるパラメータ算出装置の第２の別構成例を示すブロック図
【図９】実施の形態１にかかるパラメータ算出装置の第３の別構成例を示すブロック図
【図１０】実施の形態１にかかるパラメータ算出装置の第４の別構成例を示すブロック図
【図１１】図１０のパラメータ算出装置がインタフェース画面に表示させる情報を説明するための図
【図１２】実施の形態１にかかるパラメータ算出装置の第５の別構成例を示すブロック図
【図１３】実施の形態２にかかるパラメータ算出装置の第１の構成例を示すブロック図
【図１４】実施の形態２にかかるパラメータ算出装置の第２の構成例を示すブロック図
【図１５】実施の形態３にかかるパラメータ算出装置の構成例を示すブロック図
【図１６】実施の形態５にかかるパラメータ算出装置を備えたロボットシステムの構成例を示すブロック図
【図１７】実施の形態１から５にかかるパラメータ算出装置のハードウェア構成例を示す図
【図１８】実施の形態６にかかるパラメータ算出装置が作業環境のレイアウトを調整する前の制御区間を示す図
【図１９】実施の形態６にかかるパラメータ算出装置が作業環境のレイアウトを調整した後の制御区間を示す図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかるパラメータ算出装置、ロボット制御システム、およびロボットシステムを図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
＜装置構成＞
図１は、実施の形態１にかかるパラメータ算出装置の構成を示すブロック図である。ロボット動作パラメータ算出装置であるパラメータ算出装置１００は、ロボットを動作させる際に用いられるパラメータ（動作パラメータ）を算出する装置である。動作パラメータには、ロボットの最高速度、加速度、待機時間などのロボットの速さを決めるパラメータと、ロボットの移動経路を決めるパラメータとがある。実施の形態１から５では、動作パラメータがロボットの速さを決めるパラメータである場合について説明し、実施の形態６では、動作パラメータがロボットの移動経路を決めるパラメータである場合について説明する。パラメータ算出装置１００は、パラメータ記憶部１１０と、状態変数取得部１２０と、評価部１３０と、機械学習部１４０と、終了条件判定部１５０とを備えている。
【００１２】
本実施の形態では、ロボットがアームロボットである場合について説明するが、ロボットは何れのロボットであってもよい。ユーザは、ティーチングペンダントと呼ばれるリモートコントロール装置を用いて、ロボットのアーム部を移動させることによって、製品の製造工程においてアーム部が通過すべき特定の位置（教示点）を教示する。あるいは、ユーザは、ロボットのアーム部などを直接操作することでロボットのアーム部へ教示点を教示することが可能となっている。ロボットには、アーム部を直接操作するための操作器がアーム部に取り付けられており、操作者が操作器を直接手で掴んでアーム部を移動させることによって、製品の製造工程においてアーム部が通過すべき特定の位置（教示点）を教示する。これにより、ロボットは、製品の製造工程において、各教示点へアーム部を順番に移動させる。
【００１３】
パラメータ記憶部１１０は、ロボットへの動作指令を生成する際に用いられるパラメータを教示区間ごとに記憶する。パラメータ記憶部１１０は、機械学習部１４０が学習して算出したパラメータの組み合わせを教示区間ごとに記憶する。教示区間は、ロボットの１つの動作の始点となる教示点から終点となる教示点までの移動区間である。ロボットは、複数の教示区間を移動することによって、一連動作を実行する。なお、動作の始点および動作の終点は、ロボットの移動を制御するための制御プログラム（ロボット言語）に基づいて設定されてもよい。この場合、パラメータ記憶部１１０は、ロボットへの動作指令を生成する際に用いられるパラメータを制御区間ごとに記憶する。制御区間は、ロボットの１つの動作の始点から終点までの移動区間である。
【００１４】
状態変数取得部１２０は、パラメータ記憶部１１０に格納されている、教示区間ごとのパラメータを読み出す。状態変数取得部１２０は、教示区間ごとに設定されたパラメータに基づいて、複数の教示区間で構成される一連動作を試行した場合のロボットの各部品（例えば、各関節）の状態変数を算出することで、一連動作における状態変数を取得する。状態変数は、ロボットの状態を示す情報であり、ロボットの動作に応じて変化する。状態変数の例は、一連動作における、各関節の変位、速度、加速度、消費電流、消費電力である。
【００１５】
評価部１３０は、状態変数取得部１２０が取得した状態変数を用いて、一連動作を評価するための評価値、および一連動作のサイクルタイムを算出する。本実施の形態では、評価値が、一連動作を繰り返す場合のロボットが備える部品の予測寿命、一連動作で消費される部品の実効電流（消費電流）、または一連動作で消費される部品の電力（消費電力）である。
【００１６】
評価部１３０は、状態変数取得部１２０が取得した状態変数を用いて、一連動作の試行に要した時間をサイクルタイムとして算出する。さらに、評価部１３０は、一連動作に対する予測寿命、一連動作で消費される消費電流、および一連動作で消費される消費電力の少なくとも１つを評価値として算出する。
【００１７】
評価部１３０は、評価値が制約条件を充足するか否かの判定を行うことで、評価値を評価する。制約条件は、ロボットが備える部品の、設計寿命、一連動作での消費電流上限、一連動作での消費電力上限のうち少なくとも１つに基づいて設定される条件である。設計寿命は、ユーザによって任意に設定可能な寿命であり、後述する定格寿命とは異なる。評価部１３０は、評価値が一連動作に対する予測寿命である場合には、設計寿命に基づいて設定された制約条件を用いる。評価部１３０は、評価値が一連動作における消費電流である場合には、一連動作での消費電流上限に基づいて設定された制約条件を用いる。評価部１３０は、評価値が一連動作での消費電力である場合には、一連動作での消費電力上限に基づいて設定された制約条件を用いる。
【００１８】
例えば、評価部１３０は、制約条件として、設計寿命、消費電流上限、または消費電力上限をそのまま用いて、評価値が制約条件を満たすか否かを評価する。また、評価部１３０は、設計寿命の特定割合（例えば９０％）、消費電流上限の特定割合、または消費電力上限の特定割合を用いて制約条件を満たすか否かを評価してもよい。すなわち、制約条件は、設計寿命の特定割合、消費電流上限の特定割合、または消費電力上限の特定割合であってもよい。評価部１３０は、制約条件を満たすか否かの判定結果と、サイクルタイムと、制約条件と、評価に用いたパラメータとを機械学習部１４０に送る。
【００１９】
機械学習部１４０は、制約条件を満たすか否かの判定結果と、サイクルタイムと、制約条件とを記憶しておく。機械学習部１４０は、一連動作全体での制約条件が充足される範囲で、評価部１３０で算出されたサイクルタイムが最小となるパラメータの組合せを探索する。本実施の形態では、評価値が制約条件を満たすことが、評価値が第１の条件を満たすことに対応し、サイクルタイムが短くなることが、サイクルタイムが第２の条件を満たすことに対応する。機械学習部１４０は、パラメータ記憶部１１０に格納されているパラメータの値を、探索したパラメータの値（サイクルタイムが最小となるパラメータの組合せ）に更新する。
【００２０】
終了条件判定部１５０は、パラメータ調整（パラメータ算出）の終了条件に基づいて、終了条件が満たされているか否かを判定する。パラメータ調整の終了条件は、例えば機械学習部１４０におけるパラメータの組合せの探索回数が規定された最大探索回数に達することである。また、パラメータ調整の終了条件は、最小化を目的とするサイクルタイムの、前回の機械学習までに得られているサイクルタイムの最小値からの低減量が、１０-6秒未満などの十分に小さい値になることであってもよい。本実施の形態では、終了条件を満たした場合のパラメータを最適なパラメータといい、終了条件を満たした場合のサイクルタイムを最小のサイクルタイムという。すなわち、評価値が改善されていく中で、終了条件を満たした場合のパラメータを最適なパラメータという。また、評価値が改善されていく中で、終了条件を満たした場合の、サイクルタイムを最小のサイクルタイムという。
【００２１】
終了条件が満たされている場合、終了条件判定部１５０は、その時点で得られている、サイクルタイムが最小となるパラメータの組合せを、最適なパラメータの組合せとして、外部装置に出力する。外部装置の例は、ロボットを制御するコントローラである。
【００２２】
終了条件が満たされていない場合、終了条件判定部１５０は、状態変数取得部１２０に終了条件が満たされていないことを通知する。この場合、パラメータ算出装置１００は、サイクルタイムが最小となるパラメータを、新たに算出する。
【００２３】
＜機械学習部の繰り返し処理＞
図２は、実施の形態１にかかるパラメータ算出装置によるパラメータの算出処理手順を示すフローチャートである。ユーザは、調整するパラメータの数を決めるため、教示点の情報（教示点の位置）をパラメータ算出装置１００に入力する。パラメータ算出装置１００は、教示点の情報を受け付ける（ステップＳ１０１）。これにより、パラメータ算出装置１００は、教示点の情報を受け付けて、パラメータ記憶部１１０に格納する。
【００２４】
また、パラメータ記憶部１１０は、一連動作で最適化されるパラメータの組合せの初期値を記憶しておく（ステップＳ１０２）。パラメータ記憶部１１０が記憶しておくパラメータの組合せの初期値は、ユーザによってパラメータ算出装置１００に入力されてもよいし、パラメータ算出装置１００が他の装置から受信してもよい。なお、ステップＳ１０１の処理と、ステップＳ１０２の処理とは、何れが先に実行されてもよい。
【００２５】
次に、状態変数取得部１２０は、パラメータ記憶部１１０に格納されているパラメータの組合せを読み出して、一連動作の状態変数を取得する（ステップＳ１０３）。すなわち、状態変数取得部１２０は、パラメータ記憶部１１０に格納されているパラメータに基づいて、一連動作を試行した場合のロボットの各関節の状態変数を取得する。本実施の形態では、状態変数が、各関節の変位、速度、および加速度である場合について説明する。
【００２６】
次に、評価部１３０は、サイクルタイムおよび評価値を算出する（ステップＳ１０４）。具体的には、評価部１３０は、予測寿命、消費電流、および消費電力の少なくとも１つを評価値として算出するとともに、サイクルタイムを算出する。本実施の形態では、状態変数が、各関節の変位、速度、および加速度であるので、評価部１３０は、予測寿命を評価値として算出する。
【００２７】
評価部１３０は、評価値が制約条件を充足するか否かの判定を行うことで、評価値を評価する。次に、評価部１３０は、評価値が制約条件を満たすか否かを判定する（ステップＳ１０５）。また、評価部１３０は、制約条件を満たすか否かの判定結果と、サイクルタイムと、制約条件と、評価に用いたパラメータとを機械学習部１４０に送る。
【００２８】
制約条件を満たす場合（ステップＳ１０５、Ｙｅｓ）、機械学習部１４０は、これまでに制約条件を満たしたパラメータの組合せのうちサイクルタイムが最も短くなる組合せを、最適なパラメータの組合せの候補に設定する。以下、機械学習部１４０が設定した、設定時点で最適なパラメータの候補を、最適候補のパラメータという。最適候補のパラメータは、サイクルタイムが短くなるようパラメータを改善したものである。最適候補のパラメータを用いた場合のサイクルタイムが、最小候補のサイクルタイムである。機械学習部１４０は、パラメータ記憶部１１０に格納されているパラメータの値を、設定した最適候補のパラメータの組合せに更新する（ステップＳ１０６）。
【００２９】
このように、機械学習部１４０は、第１の評価項目である評価値および第２の評価項目であるサイクルタイムが、それぞれ特定条件を満たすことができるパラメータを学習で算出する。実施の形態１では、評価値が満たす特定条件は、制約条件を満たすことであり、サイクルタイムが、満たす特定条件は、サイクルタイムが改善（短く）されることである。
【００３０】
制約条件を満たさない場合（ステップＳ１０５、Ｎｏ）、機械学習部１４０は、最適化アルゴリズム（多目的最適化手法）に従って、新たなパラメータの組合せを生成する。最適化アルゴリズムの例は、後述する粒子群最適化法、ベイズ最適化法などである。機械学習部１４０は、生成した新たなパラメータの組合せをパラメータ記憶部１１０に設定する（ステップＳ１０７）。
【００３１】
また、機械学習部１４０が、パラメータ記憶部１１０に格納されているパラメータの値を、設定した最適候補のパラメータの組合せに更新した場合、終了条件判定部１５０は、終了条件を満たすか否かを判定する（ステップＳ１０８）。終了条件が満たされている場合（ステップＳ１０８、Ｙｅｓ）、パラメータ算出装置１００は、最適なパラメータの探索処理を終了する。終了条件が満たされていない場合（ステップＳ１０８、Ｎｏ）、機械学習部１４０は、ステップＳ１０７の処理を実行する。すなわち、機械学習部１４０は、最適化アルゴリズムに従って生成した新たなパラメータの組合せをパラメータ記憶部１１０に設定する。
【００３２】
パラメータ算出装置１００は、ステップＳ１０７の処理の後、ステップＳ１０３の処理に戻り、終了条件を満たすまで、ステップＳ１０３からＳ１０８の処理を繰り返す。
【００３３】
＜シミュレータを用いる場合の装置構成＞
図３は、実施の形態１にかかるパラメータ算出装置の第１の別構成例を示すブロック図である。図３では、シミュレータを用いて状態変数の取得を実現する場合のパラメータ算出装置１００Ａの構成を示している。図３の各構成要素のうち図１に示すパラメータ算出装置１００と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００３４】
パラメータ算出装置１００の第１の別構成例であるパラメータ算出装置１００Ａは、状態変数取得部１２０の代わりに、状態変数取得部１２０Ａを備えている。パラメータ算出装置１００Ａは、ロボットコントローラおよびロボットの動力学モデルを模擬したシミュレータを用いて状態変数の取得を実現する。すなわち、状態変数取得部１２０Ａは、ロボットコントローラおよびロボットの動力学モデルを模擬したシミュレータを用いて一連動作を試行することで状態変数を取得する。
【００３５】
状態変数取得部１２０Ａは、指令生成部１２１と、動作試行部１２２とを備えている。指令生成部１２１は、パラメータ記憶部１１０および終了条件判定部１５０に接続されている。動作試行部１２２は、指令生成部１２１および評価部１３０に接続されている。
【００３６】
指令生成部１２１は、パラメータ記憶部１１０に格納されているパラメータを読み出してロボットの動作指令値を生成する。
【００３７】
動作試行部１２２は、ロボットの動力学モデルを模擬したシミュレータを用いて、ロボットへの動作指令値に基づくシミュレーションを行い、シミュレーション結果から、一連動作におけるロボットの各関節の状態変数を取得する。
【００３８】
動作試行部１２２は、動作指令値に基づいたシミュレーションにおいて、ロボットの動力学モデルに、指令生成部１２１で生成された動作指令値をそのまま入力してもよいし、指令生成部１２１で生成された動作指令値に特定の処理を実行してから入力してもよい。この場合、動作試行部１２２は、例えば、指令生成部１２１で生成された動作指令値に、動作指令値を成型するフィルタ、フィードフォワード制御系を模擬したフィルタ、およびフィードバック制御系を模擬したフィルタの少なくとも１つを通した値を入力する。
【００３９】
なお、図３では、動力学モデルから出力された値を各関節の状態変数として取得する例を説明したが、動作試行部１２２は、必ずしもロボットの動力学モデルを備える必要はない。例えば、指令生成部１２１で生成された動作指令値が、ロボットの各関節の速度、または各関節を駆動する際に消費される電流を表す場合、動作試行部１２２は、一連動作を試行する間に生成される動作指令値を、そのままロボットの速度または消費電流の状態変数として取得してもよい。
【００４０】
また、動作試行部１２２は、一連動作を試行する間に指令生成部１２１で生成された動作指令値に特定の処理を実行した値をロボットの状態変数として取得してもよい。この場合、動作試行部１２２は、例えば、指令生成部１２１で生成される動作指令値に、動作指令値を成型するフィルタ、フィードフォワード制御系を模擬したフィルタ、およびフィードバック制御系を模擬したフィルタの少なくとも１つを通した値を、ロボットの状態変数として取得する。
【００４１】
＜一連動作の定義＞
図４は、実施の形態１にかかるロボットの一連動作を説明するための図である。ロボット３００は、ロボットコントローラ２００から出力される動作指令値に従って動作する。ロボット３００の動作を設計するユーザは、ロボット３００を掴んでロボット３００の先端部３１０を移動させることで、教示点Ｐ１，Ｐ２，Ｐ３を設定する。図４におけるロボット３００の先端部３１０は、搬送対象物である製品を把持する把持機構を有している。
【００４２】
本実施の形態における一連動作とは、速度０を区切りとして始点から終点までの複数の移動区間（制御区間）で構成される、速度パターンの連なりのことである。すなわち、本実施の形態における１つの制御区間は、速度０から速度が上昇し速度０に戻るまでの１つの速度パターンを分割した区間ではなく、速度０から速度が上昇し速度０に戻るまでの１つの区間を指す。ロボット３００が行う動作が、教示点Ｐ１から教示点Ｐ２への移動と、教示点Ｐ２から教示点Ｐ３への移動と、教示点Ｐ３から教示点Ｐ１への移動とで構成される場合、本実施の形態では、これらの３つの動作を合わせて一連動作と呼ぶ。指令生成部１２１は、この一連動作のうち、教示点Ｐ１から教示点Ｐ２への移動区間を教示区間Ｐ１−Ｐ２に設定し、教示点Ｐ２から教示点Ｐ３への移動区間を教示区間Ｐ２−Ｐ３に設定し、教示点Ｐ３から教示点Ｐ１への移動区間を教示区間Ｐ３−Ｐ１に設定する。
【００４３】
指令生成部１２１は、教示区間Ｐ１−Ｐ２に対し、教示区間Ｐ１−Ｐ２用に設定されたパラメータに基づいて、先端部３１０が始点である教示点Ｐ１から終点である教示点Ｐ２に至るまでの制御周期ごとの動作指令を生成する。
【００４４】
同様に、指令生成部１２１は、教示区間Ｐ２−Ｐ３に対しても、教示区間Ｐ２−Ｐ３用に設定されたパラメータに基づいて、教示点Ｐ２から教示点Ｐ３に至るまでの制御周期ごとの動作指令を生成する。また、指令生成部１２１は、教示区間Ｐ３−Ｐ１に対しても、教示区間Ｐ３−Ｐ１用に設定されたパラメータに基づいて、教示点Ｐ３から教示点Ｐ１に至るまでの制御周期ごとの動作指令を生成する。
【００４５】
＜調整対象のパラメータ＞
１つの教示区間で調整されるパラメータの数がｍ（ｍは自然数）個であり、一連動作に含まれる教示区間の数がｎ（ｎは自然数）個である場合、機械学習部１４０が、最適化の対象とするパラメータの組合せの次元はｍ×ｎとなる。
【００４６】
本実施の形態において、それぞれの教示区間で制御周期ごとに生成される動作指令値を定めるために調整されるパラメータは、先端部３１０の最高速度、先端部３１０の加速度、先端部３１０の次の動作までの待機時間のうちの少なくとも１つとする。以下の説明では、先端部３１０の次の動作までの待機時間をＤｌｙ時間という。
【００４７】
図５は、実施の形態１にかかるパラメータ算出装置が生成する速度パターンの例を示す図である。図５では、パラメータ算出装置１００Ａが、最高速度および加速度のパラメータに基づいて生成する、ロボットの１つの教示区間における速度パターンＰＴ１を示している。図５に示すグラフの横軸は時間であり、縦軸は先端部３１０の速度である。
【００４８】
指令生成部１２１は、図５に示す速度パターンＰＴ１を実現するための各関節の動作指令値を生成する。速度パターンＰＴ１は、時刻ｔ０から時刻ｔ１までの加速区間、時刻ｔ１から時刻ｔ２までの等速区間、時刻ｔ２から時刻ｔ３までの減速区間とで構成されている。時刻ｔ３から時刻ｔ４までの時間ＴｔがＤｌｙ時間である。図５では、時刻ｔ０から時刻ｔ４までが１つの教示区間であり、区間ＴＡで示している。よって、時刻ｔ３から時刻ｔ４までは、速度ｖが０となっており、指令生成部１２１は、この速度０を区切りとして制御区間を設定することができる。
【００４９】
加速区間における速度パターンＰＴ１の傾きが、加速区間における加速度であり、減速区間における速度パターンＰＴ１の傾きが、減速区間における減速度である。指令生成部１２１は、最高速度のパラメータに基づいて、等速区間における速度ｖ１を決定し、加速度パラメータによって加速区間における加速度＝ｖ１／（ｔ１−ｔ０）および減速区間における減速度＝−ｖ１／（ｔ３−ｔ２）を決定する。
【００５０】
ロボットは、各関節のアクチュエータが出力可能な最大の速度および加速度で動作すると、ロボットに加わる負荷が過剰に大きくなる場合がある。この場合には、指令生成部１２１が、教示区間ごとに調整可能なパラメータを調整することによって、最高速度および加速度を低減させるか、Ｄｌｙ時間を増大させることによって、サイクルタイムの増大と引き換えに負荷を低減してもよい。これにより、パラメータ算出装置１００Ａは、一連動作の全体における予測寿命の制約条件を満たすことができる。
【００５１】
図６は、図５に示した速度パターンに対して、最高速度および加速度が低減された場合の速度パターンの例を示す図である。図６では、パラメータ算出装置１００Ａが速度パターンＰＴ１に対して最高速度および加速度を低減することによって生成する速度パターンＰＴ２を示している。図６に示すグラフの横軸は時間であり、縦軸は先端部３１０の速度である。すなわち、速度パターンＰＴ１と速度パターンＰＴ２とでは、速度０を区切りにした制御区間に対して、異なる速度パターンになることを意味している。
【００５２】
速度パターンＰＴ２は、時刻ｔ０から時刻ｔ１ａまでの加速区間、時刻ｔ１ａから時刻ｔ２ａまでの等速区間、時刻ｔ２ａから時刻ｔ３ａまでの減速区間とで構成されている。加速区間における速度パターンＰＴ２の傾きが、加速区間における加速度であり、減速区間における速度パターンＰＴ２の傾きが、減速区間における減速度である。
【００５３】
指令生成部１２１は、等速区間における速度ｖ１を速度ｖ２に下げ、加速区間における加速度を下げ、減速区間における減速度を下げる。教示区間の始点から終点までの移動経路を固定とすると、ロボットの各軸の移動量は不変である。このため、指令生成部１２１は、速度パターンＰＴ２が時刻ｔ０から時刻ｔ３ａまでに描く台形の面積と、速度パターンＰＴ１が時刻ｔ０から時刻ｔ３までに描く台形の面積とが同じとなるよう、速度パターンＰＴ２を生成する。
【００５４】
したがって、機械学習部１４０は、最高速度および加速度を低減した場合に生じるサイクルタイムの増分（ｔ３ａ−ｔ３）＞０を、速度パターンＰＴ２として設定された、最高速度（速度ｖ２）、加速度、減速度、Ｄｌｙ時間の各パラメータから算出することができる。なお、加速度の絶対値および減速度の絶対値が同じ大きさである場合、機械学習部１４０は、減速度の代わりに加速度を用いてサイクルタイムの増分を算出してもよいし、加速度の代わりに減速度を用いてサイクルタイムの増分を算出してもよい。
【００５５】
なお、指令生成部１２１は、最高速度および加速度の値を調整するパラメータ以外のパラメータを用いて速度パターンＰＴ１，ＰＴ２を設定してもよい。例えば、指令生成部１２１は、最高速度の上限値に対する緩和率を調整するパラメータ、および加速度の上限値に対する緩和率を調整するパラメータを用いて速度パターンＰＴ１，ＰＴ２を設定してもよい。
【００５６】
例えば、指令生成部１２１は、最高速度がｖ＿ｍａｘの関節の最高速度緩和率ｄを０〜１の範囲で調整し、調整後の最高速度が（ｖ＿ｍａｘ）×（１−ｄ）となるように速度パターンＰＴ１，ＰＴ２を設定してもよい。このとき、ｖ＿ｍａｘとしては、関節ごとに事前に設計された最高速度の上限値が、ｖ＿ｍａｘとして適用されてもよい。関節ごとに事前に設計された最高速度の上限値は、関節を動作させるモータのアクチュエータの能力によって決まる値である。また、ｖ＿ｍａｘとしては、教示区間ごとに出すことのできる最高速度が、ｖ＿ｍａｘとして適用されてもよい。
【００５７】
本実施の形態における評価部１３０は、状態変数取得部１２０Ａで取得された状態変数から算出される評価値を、一連動作の全体で統合して評価する。また、制約条件下でサイクルタイムが最小となるようにパラメータが調整される一連動作に含まれる教示区間は、ユーザがロボット言語を用いて指定することができる。ユーザは、ロボットに与えられる作業を構成する動作のうちの一部の区間を指定して、パラメータ算出装置１００Ａにパラメータの最適化を行わせてもよい。この場合、ユーザは、ロボット言語で作成されたプログラムに対し、パラメータの最適化を行わせる区間の開始点と終了点とを指定する。
【００５８】
図７は、実施の形態１にかかるパラメータ算出装置が生成する速度パターンと、比較例の速度パターンとの差異を説明するための図である。図７では、設計寿命を満たすことを制約条件とする場合に、一連動作で評価を行う場合には、教示区間毎の動作で評価を行う場合と比較して、サイクルタイムの小さい解を得られることを説明する。
【００５９】
図７に示すグラフの横軸は時間であり、縦軸は先端部３１０の速度である。図７に示す上段のグラフが、比較例の速度パターンであり、図７に示す下段のグラフが、パラメータ算出装置１００Ａが生成する速度パターンである。ここでも、速度０を区切りとして教示区間（制御区間）が設定されている。
【００６０】
教示区間毎の動作で評価を行う場合、各教示区間において、設計寿命を満たすよう速度パターンが生成される。例えば、設計寿命が１００００時間である場合、教示区間Ｐ１−Ｐ２，Ｐ２−Ｐ３，Ｐ３−Ｐ１の各予測寿命が１００００時間よりも長い時間となるよう速度パターンが生成される。図７では、教示区間Ｐ１−Ｐ２，Ｐ２−Ｐ３，Ｐ３−Ｐ１の各予測寿命が１１０００時間となるよう、比較例の速度パターンが生成されている場合を示している。
【００６１】
評価部１３０が、一連動作で評価を行う場合には、一部の動作（一部の教示区間の移動）のみを繰り返した場合の予測寿命が設計寿命未満であったとしても、一連動作全体を繰り返した場合に設計寿命を満たすことができるパラメータの組合せならば最適解の候補として認めることができる。これは、特定の教示区間において予測寿命が設計寿命未満であったとしても、他の区間における予測寿命が設計寿命以上であれば、一連動作全体の予測寿命が設計寿命を満たす場合があるからである。このため、評価部１３０は、高速動作でサイクルタイム短縮に寄与する部分（教示区間）と、低速動作で寿命向上に寄与する部分（教示区間）とのバランスを取って、設計寿命を満たす範囲でサイクルタイムの小さい解を得ることができる。
【００６２】
図７では、教示区間Ｐ１−Ｐ２，Ｐ２−Ｐ３，Ｐ３−Ｐ１の各予測寿命が、それぞれ１１０００時間、１５０００時間、７０００時間となるよう、評価部１３０が、速度パターンを生成した場合を示している。この場合の、一連動作の予測寿命は、１１０００時間であり、比較例の速度パターンの予測寿命と同じであるが、一連動作で予測寿命を評価しているので比較対象よりもサイクルタイムを小さくすることができる。
【００６３】
＜予測寿命を制約条件として用いる場合の装置構成＞
図８は、実施の形態１にかかるパラメータ算出装置の第２の別構成例を示すブロック図である。図８では、設計寿命に基づく制約条件を設定する場合のパラメータ算出装置１００Ｂの構成を示している。ここでは、図３に示したパラメータ算出装置１００Ａに対して、設計寿命に基づく制約条件を設定する場合のパラメータ算出装置１００Ｂについて説明する。図８の各構成要素のうち図３に示すパラメータ算出装置１００Ａと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００６４】
パラメータ算出装置１００の第２の別構成例であるパラメータ算出装置１００Ｂは、評価部１３０の代わりに、評価部１３０Ｂを備えている。評価部１３０Ｂは、動力学計算部１３１と、損傷度計算部１３２と、制約判定部１３３ａとを備えている。動力学計算部１３１は、動作試行部１２２および損傷度計算部１３２に接続され、損傷度計算部１３２は、制約判定部１３３ａに接続され、制約判定部１３３ａは、機械学習部１４０に接続されている。
【００６５】
動力学計算部１３１は、状態変数取得部１２０Ａで取得された各関節の変位、速度、および加速度の値を用いて、関節に加えられる負荷トルクを算出する。損傷度計算部１３２は、負荷トルク、および各関節の動作量に基づいて、ロボットが備える関節の損傷度を算出することで、一連動作を繰り返す場合のロボットの予測寿命を算出する。各関節の動作量は、関節の構造に基づいて速度から換算される、回転数または直動距離である。ロボットが備える部品（構成部）の損傷度は、ロボットが備える部品に与えられる損傷の度合いである。ロボットが備える部品の損傷度は、負荷トルクおよび各関節の動作量が大きいほど大きくなる。損傷度の詳細な定義については後述する。
【００６６】
制約判定部１３３ａは、損傷度計算部１３２で算出された予測寿命と、設計寿命と、に基づく判定式を用いて、パラメータ記憶部１１０から読み出されたパラメータの組合せが一連動作での制約条件を満たすか否かを判定する。判定式は、後述する式（１２）などである。
【００６７】
＜動力学計算＞
ロボットの各関節は、複数の部品で構成されており、部品が回転する関節は回転軸、直動する関節は直動軸と呼ばれる。評価部１３０Ｂに含まれる動力学計算部１３１は、ロボットの制御周期Δｔ（単位：秒）ごとに、各関節に加わる負荷トルクの大きさＴ＿ｉ［ｋ］、およびロボットが備える部品の入力回転数ｎ＿ｉ［ｋ］を演算する。具体的には、動力学計算部１３１は、動作試行部１２２から取得した各関節の変位、速度、および加速度を、減速機、ボールねじなどを介した各関節の動力伝達機構の出力側の変位、速度、および加速度に換算する。そして、動力学計算部１３１は、換算した値を用いて、各関節に加わる負荷トルクの大きさＴ＿ｉ［ｋ］、およびロボットが備える部品の入力回転数ｎ＿ｉ［ｋ］を演算する。Ｔ＿ｉおよびｎ＿ｉの添え字「ｉ」は、ロボットの第ｉ（ｉは自然数）軸に関連する値であることを表している。また、［ｋ］は、後述する損傷度算出周期でカウンタがリセットされた時点から数えて、第ｋ（ｋは自然数）番目の制御周期Δｔで演算された値であることを表している。
【００６８】
＜損傷度の定義と算出方法＞
本実施の形態では、一連動作を繰り返す場合の予測寿命を評価値に用いるために、ロボットの損傷度を次のように定義する。損傷度は、繰り返し動作によってロボットが備える部品が疲労破壊に至ることを寿命とみなす場合に、現在の稼働状態においてどの程度疲労が蓄積しているかを表す指標とする。本実施の形態では、損傷度計算部１３２が、部品ｑの損傷度を、（現在までの部品ｑの駆動時間累積値または回転数累積値）／（現在の動作条件で求められる部品ｑの定格寿命または定格寿命相当回転数）の式を用いて算出する。定格寿命相当回転数は、定格寿命に相当する回転数である。
【００６９】
定格寿命または定格寿命相当回転数の算出式は、部品の種類によって異なるので、損傷度計算部１３２に対しては、損傷度の算出式を部品の種類ごとに設定しておく。パラメータ算出装置１００Ｂに対し、損傷度を定義しておくことで、メーカーごとに定格寿命の表し方が異なる複数の部品の予測寿命を同一の基準で評価することができる。
【００７０】
本実施の形態では、損傷度計算部１３２は、教示区間ごとに損傷度を算出し、全教示区間の損傷度の和を一連動作の損傷度とする。また、損傷度計算部１３２は、一連動作全体が終了した時点を損傷度の算出周期である損傷度算出周期として一連動作の損傷度を算出してもよい。
【００７１】
例えば、損傷度算出周期で算出された損傷度が同じ動作の繰り返しによって累積されていき、累積値が１に達する時点が予測寿命であるとする。一連動作を１試行分終えた時点でのロボットの損傷度をＲｌｃ、サイクルタイムをｔｃ（単位：秒）とする場合、損傷度計算部１３２は、予測寿命であるＬｃ（単位：時間）を、以下の式（１）を用いて算出することができる。
【００７２】
Ｌｃ＝（ｔｃ／３６００）／Ｒｌｃ・・・（１）
【００７３】
第ｉ軸の部品ｑの一連動作１回分の損傷度をＲｌｃ＿ｉ＿ｑとすると、損傷度計算部１３２は、ロボット全体の予測寿命の算出に用いられる損傷度であるＲｌｃを、以下の式（２）を用いて算出することができる。
【００７４】
Ｒｌｃ＝ｍａｘ＿ｉ,ｑ（Ｒｌｃ＿ｉ＿ｑ）・・・（２）
【００７５】
すなわち、損傷度計算部１３２は、全てのｉ、ｑのうち、最も損傷度の大きい軸、部品の損傷度をロボット全体の損傷度の評価に用いる。
【００７６】
損傷度計算部１３２は、第ｉ軸の部品ｑの損傷度Ｒｌ＿ｉ［ｋ］＿ｑを、規定された損傷度算出周期ｔ１［ｋ］＝ｋ×Δｔごとに算出される平均負荷トルクＴａｖ＿ｉ［ｋ］、および平均入力回転数Ｎａｖ＿ｉ［ｋ］に基づいて算出する。
【００７７】
損傷度計算部１３２は、第ｋ番目のΔｔまでのｒ（ｒは部品ｑの種類によって異なる乗数）乗トルク累積値Ｔａｃｃ＿ｉ［ｋ］、入力回転数累積値Ｎａｃｃ＿ｉ［ｋ］、および駆動時間累積値ｔｂ＿ｉ［ｋ］（単位：秒）を、それぞれ以下の式（３）から式（５）を用いて算出することができる。ｒ乗トルク累積値Ｔａｃｃ＿ｉ［ｋ］は、トルク乗数がｒである部品ｑの駆動に用いられるトルクの累積値であり、入力回転数累積値Ｎａｃｃ＿ｉ［ｋ］は、部品ｑの入力回転数ｎ＿ｉ［ｋ］の累積値であり、駆動時間累積値ｔｂ＿ｉ［ｋ］は、部品ｑの駆動時間の累積値である。
【００７８】
Ｔａｃｃ＿ｉ［ｋ］＝Ｔａｃｃ＿ｉ［ｋ−１］＋Ｔ＿ｉ［ｋ］r×ｎ＿ｉ［ｋ］×Δｔ、Ｔａｃｃ＿ｉ［０］＝０・・・（３）
【００７９】
Ｎａｃｃ＿ｉ［ｋ］＝Ｎａｃｃ＿ｉ［ｋ−１］＋ｎ＿ｉ［ｋ］×Δｔ、Ｎａｃｃ＿ｉ［０］＝０・・・（４）
【００８０】
ｔｂ＿ｉ［ｋ］＝ｔｂ＿ｉ［ｋ−１］＋Δｔ、ｔｂ＿ｉ［０］＝０・・・（５）
【００８１】
損傷度計算部１３２は、式（３）から式（５）で示した、ｒ乗トルク累積値Ｔａｃｃ＿ｉ［ｋ］、入力回転数累積値Ｎａｃｃ＿ｉ［ｋ］、および駆動時間累積値ｔｂ＿ｉ［ｋ］を用いて、平均負荷トルクＴａｖ＿ｉ［ｋ］、および平均入力回転数Ｎａｖ＿ｉ［ｋ］を、それぞれ以下の式（６）および式（７）を用いて算出することができる。平均負荷トルクＴａｖ＿ｉ［ｋ］は、負荷トルクの平均値であり、平均入力回転数Ｎａｖ＿ｉ［ｋ］は、入力回転数ｎ＿ｉ［ｋ］の平均値である。
【００８２】
Ｔａｖ＿ｉ［ｋ］＝（Ｔａｃｃ＿ｉ［ｋ］／Ｎａｃｃ＿ｉ［ｋ］）（1/r）・・・（６）
【００８３】
Ｎａｖ＿ｉ［ｋ］＝Ｎａｃｃ＿ｉ［ｋ］／ｔｂ＿ｉ［ｋ］・・・（７）
【００８４】
部品ｑが減速機の場合には、損傷度計算部１３２は、減速機の定格トルクＴｒ＿ｉ、定格回転数Ｎｒ＿ｉ、および定格寿命Ｌ１０＿ｉ（単位：時間）を定数として、現在の動作条件における定格寿命Ｌｈ＿ｉ［ｋ］（単位：時間）を、以下の式（８）を用いて算出することができる。また、損傷度計算部１３２は、損傷度Ｒｌ＿ｉ［ｋ］＿（減速機）を以下の式（９）を用いて算出することができる。
【００８５】
Ｌｈ＿ｉ［ｋ］＝Ｌ１０＿ｉ×（Ｔｒ＿ｉ／Ｔａｖ＿ｉ［ｋ］）r×（Ｎｒ＿ｉ／Ｎａｖ＿ｉ［ｋ]））・・・（８）
【００８６】
Ｒｌ＿ｉ［ｋ］＿（減速機）＝（ｔｂ＿ｉ［ｋ］／３６００）／Ｌｈ＿ｉ［ｋ］・・・（９）
【００８７】
評価対象部品がベアリングの場合には、損傷度計算部１３２は、平均負荷トルクＴａｖ＿ｉ［ｋ］からベアリングの位置に加わる平均荷重への換算係数ｕ＿ｉ、ベアリングの基本動定格荷重Ｃ＿ｉ、動作中の機械の振動の大きさを考慮するための荷重係数ｆｗ＿ｉ、およびベアリング内の転動体の種類によって異なる乗数ｒを用いて、現在の動作条件における定格寿命相当回転数Ｌｒ＿ｉを、以下の式（１０）を用いて算出することができる。また、損傷度計算部１３２は、損傷度Ｒｌ＿ｉ［ｋ］＿（ベアリング）を、以下の式（１１）を用いて算出することができる。基本動定格荷重Ｃ＿ｉは、特定回転数の定格寿命が得られる一定の荷重である。
【００８８】
Ｌｒ＿ｉ［ｋ］＝（Ｃ＿ｉ／（ｆｗ＿ｉ×Ｔａｖ＿ｉ［ｋ］×ｕ＿ｉ））r×１０6・・・（１０）
【００８９】
Ｒｌ＿ｉ［ｋ］＿（ベアリング）＝Ｎａｃｃ＿ｉ［ｋ］／Ｌｒ＿ｉ  ［ｋ］・・・（１１）
【００９０】
＜寿命制約の充足方法＞
一連動作を繰り返した場合、予測寿命であるＬｃが、設計寿命であるＬｓを下回らないという制約条件は、以下の式（１２）で表すことができる。
【００９１】
Ｌｃ≧Ｌｓ・・（１２）
【００９２】
パラメータ算出装置１００Ｂは、制約条件として以下の式（１３）を用いてもよい。式（１３）では、規定された設計寿命のＬｓに対して特定の定数ａを掛けた値（ａ×Ｌｓ）が用いられている。
【００９３】
Ｌｃ≧ａ×Ｌｓ・・・（１３）
【００９４】
評価部１３０Ｂは、設定されたパラメータの組合せに対して算出した予測寿命が設計寿命に基づく制約条件を満たさなかった場合には、評価値に大きなペナルティを与えることで、機械学習部１４０において制約を満たさないパラメータの組合せが採用されないようにすることができる。
【００９５】
評価部１３０Ｂは、例えば、予測寿命が設計寿命未満であった場合には、最小化することを目的とするサイクルタイムに対して１００倍程度の大きさの評価値を出力することにより、制約条件を満たさないパラメータの組合せが学習終了時に最適解として出力されないようにすることができる。
【００９６】
＜機械学習部の動作＞
機械学習部１４０は、評価部１３０Ｂで算出された評価値を用いて、設計寿命に基づく制約条件を満たす範囲でサイクルタイムが最小となるパラメータの組合せを探索する。前述したように、１つの教示区間で調整するパラメータの数がｍ個、一連動作に含まれる教示区間の数がｎ個の場合、機械学習部１４０が探索するパラメータの組合せの次元はｍ×ｎである。機械学習部１４０は、探索方法としては、連続値または離散値を扱うことのできる公知の多目的最適化手法を適用することができる。機械学習部１４０は、粒子群最適化法（ＰＳＯ:Ｐａｒｔｉｃｌｅ  Ｓｗａｒｍ  Ｏｐｔｉｍｉｚａｔｉｏｎ）、ベイズ最適化法などを適用することができる。
【００９７】
また、機械学習部１４０は、公知の強化学習方法として、学習主体がとる行動としての連続値または離散値の選択と、選択された行動に対する評価値の算出とが可能な、Ａｃｔｏｒ−Ｃｒｉｔｉｃ法を適用することもできる。機械学習部１４０は、終了条件判定部１５０において学習終了条件を満たすまで最適化処理を行い、パラメータ記憶部１１０に格納されるパラメータの組合せを更新する。
【００９８】
＜最適化の実施例＞
最適化の実施例として、連続値の組合せを扱うＰＳＯを用いる方法を説明する。一般に、粒子群最適化法では、多次元空間においてＮ（Ｎは２以上の自然数）個の粒子群が定義され、毎回のパラメータ探索処理で、各粒子の位置ｐおよび速度ｖが、それぞれ以下の式（１４）および式（１５）を用いて更新される。
【００９９】
ｐ←ｐ＋ｖ・・・（１４）
【０１００】
ｖ←ｗ×ｖ＋ｃ１×ｒ１×（ｐｊ−ｐ）＋ｃ２×ｒ２×（ｐｇ−ｐ）・・・（１５）
【０１０１】
ここで、ｗは慣性定数を表し、ｃ１およびｃ２は群の中で評価値の高い位置に向かう粒子の割合を表し、ｒ１およびｒ２は０から１の範囲の値をとる乱数を表す。また、ｐｊはその粒子がこれまでに発見した最良の位置を表し、ｐｇは群全体でこれまでに発見された最良の位置を表す。
【０１０２】
本実施の形態では、調整対象のパラメータの組合せが粒子の位置ｐに相当する。パラメータ算出装置１００Ｂは、規定された探索回数Ｔが経過した時点で最小のサイクルタイムが得られたパラメータの組合せを最適解として出力する。
【０１０３】
機械学習部１４０にＰＳＯを適用する場合、パラメータ算出装置１００Ｂは、一連動作の状態変数の取得と評価を、Ｎ個の粒子のそれぞれに対して行う。評価部１３０Ｂは、粒子ごとに制約条件を満たすか否か判定し、制約条件を満たす粒子の中で最もサイクルタイムの評価値が良い粒子に他の粒子が近づくように式（１４）および式（１５）によって新たにＮ個の粒子の位置を定める。
【０１０４】
＜パラメータ探索範囲の調整方法の工夫＞
［教示区間ごとの評価値を用いて、探索初期値を調整］
機械学習部１４０は、調整対象のパラメータの組合せに対して、損傷度計算部１３２が教示区間ごとに算出する損傷度を用いて、探索範囲を限定することができる。機械学習部１４０は、ＰＳＯを用いる場合には、各粒子の初期値をランダムに設定するのではなく、全教示区間で最大の速度および最大の加速度で一連動作を試行した場合の損傷度の大小に応じて、損傷度が大きい教示区間ほど速度および加速度が低減されるような値に設定することができる。これによって、パラメータ算出装置１００Ｂは、サイクルタイムの増分に対して予測寿命向上の効果が高いパラメータの組合せを発見しやすくなり、少ない探索回数でサイクルタイムを低減することができる。
【０１０５】
［教示区間ごとの評価値を用いて、調整する教示区間を選択］
機械学習部１４０は、調整するパラメータの個数を削減することで探索時間を削減するために、一連動作のうち損傷度の大きい上位の教示区間の動作だけを調整対象としてもよい。機械学習部１４０は、教示区間毎の、動作の損傷度と動作時間との比率から、対象とする動作を決定してもよい。例えば、損傷度が大きい教示区間は、負荷の大きい教示区間である。このため、損傷度が大きい教示区間は、同じ動作時間で損傷度が小さい教示区間よりも、速度または加速度を低減することによる一連動作の寿命向上の効果が高いと考えられる。したがって、機械学習部１４０は、動作時間に対する損傷度の比率が大きい上位の動作だけ調整対象としてもよい。なお、機械学習部１４０は、教示区間毎の、評価値（変位、速度、加速度など）と動作時間との比率から、調整する教示区間を決定してもよい。
【０１０６】
また、機械学習部１４０は、全教示区間を調整対象とする場合においても、一連動作のうち損傷度の大きい上位の教示区間のパラメータだけ調整した場合のパラメータを、パラメータの組合せの初期値としてもよい。また、機械学習部１４０は、各動作の損傷度と、各動作の動作時間との比率から初期値で調整する教示区間を選択してもよい。
【０１０７】
このように、機械学習部１４０は、一連動作に含まれるすべての教示区間の動作を調整対象としてもよいし、評価部１３０Ｂの評価値に基づいて機械学習部１４０が選択する教示区間の動作だけを調整対象としてもよい。また、機械学習部１４０は、ユーザが指定した教示区間の動作だけを調整対象としてもよい。
【０１０８】
図９は、実施の形態１にかかるパラメータ算出装置の第３の別構成例を示すブロック図である。図９では、ユーザが指定した教示区間の動作だけを調整対象とする場合のパラメータ算出装置１００Ｃの構成を示している。図９の各構成要素のうち図１に示すパラメータ算出装置１００と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【０１０９】
パラメータ算出装置１００の第３の別構成例であるパラメータ算出装置１００Ｃは、パラメータ算出装置１００の構成要素に加えて調整区間記憶部１６０を備えている。調整区間記憶部１６０は、ユーザがプログラミングツールを用いて入力した調整対象の教示区間を記憶する。調整区間記憶部１６０は、調整対象の教示区間に対応する値を記憶する。
【０１１０】
機械学習部１４０は、調整区間記憶部１６０に格納されている値を読み出して、読み出した値に対応する教示区間のパラメータのみを調整する。これによって、パラメータ算出装置１００Ｃは、例えば特定の教示区間では最高速度および加速度を低減したくない場合に、指定した教示区間だけで調整を行い、一連動作の制約条件を満たすパラメータの組合せを求めることができる。また、パラメータ算出装置１００Ｃは、調整するパラメータの個数を削減することで探索時間を削減できる。
【０１１１】
このように、パラメータ算出装置１００Ｃは、教示区間ごとに設定された全てのパラメータに基づいて網羅的にパラメータの組合せを試行する場合に比べて、ロボットの一連動作における設計寿命の制約条件を満たしながら、サイクルタイムの増大を抑制することができるパラメータの組合せを、少ない試行回数で生成することができる。
【０１１２】
また、パラメータ算出装置１００Ｃは、機械学習部１４０でパラメータ調整が行われている間のパラメータ調整に関連する情報を可視化するツールを備えていてもよい。パラメータ調整に関連する情報は、パラメータ記憶部１１０に新たに記憶されるパラメータの値、評価部１３０で算出されるサイクルタイム、および評価部１３０で算出される予測寿命の評価値の少なくとも１つである。
【０１１３】
図１０は、実施の形態１にかかるパラメータ算出装置の第４の別構成例を示すブロック図である。図１０では、パラメータ調整が行われている間のパラメータ調整に関連する情報を可視化する場合のパラメータ算出装置１００Ｄの構成を示している。図１０の各構成要素のうち図１に示すパラメータ算出装置１００と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。図１１は、図１０のパラメータ算出装置がインタフェース画面に表示させる情報を説明するための図である。
【０１１４】
パラメータ算出装置１００の第４の別構成例であるパラメータ算出装置１００Ｄは、パラメータ算出装置１００の構成要素に加えて学習経過可視化部１７０を備えている。学習経過可視化部１７０は、評価部１３０および機械学習部１４０に接続されている。学習経過可視化部１７０は、評価部１３０からサイクルタイムおよび予測寿命を取得し、機械学習部１４０からパラメータの値を取得する。
【０１１５】
学習経過可視化部１７０は、評価部１３０および機械学習部１４０から取得した情報、すなわちパラメータの学習経過状態に関連する情報を、インタフェース画面５００に表示させる。インタフェース画面５００は、学習経過可視化部１７０が出力する情報（可視化する結果）の表示画面である。
【０１１６】
学習経過可視化部１７０は、学習経過状態として、例えば以下の（Ａ）から（Ｄ）の情報を、インタフェース画面５００に出力する。
（Ａ）図２のステップＳ１０４で計算された、評価値（各関節の予測寿命の評価値など）
（Ｂ）図２のステップＳ１０５で判定された、予測寿命の評価値が制約条件を満たすか否かの判定結果
（Ｃ）図２のステップＳ１０６で更新された、更新時点での最良のパラメータの組合せ
（Ｄ）最適化されたパラメータでのサイクルタイムの変化
【０１１７】
インタフェース画面５００は、各関節の一連動作の評価値、最良のパラメータの組合せ（最適パラメータ）、サイクルタイムなどを表示する。これによって、ユーザは学習の経過を観察し、一連動作の評価値への寄与が大きいパラメータ、および解が収束するまでの機械学習部１４０の探索回数を把握することができる。
【０１１８】
また、パラメータ算出装置１００は、機械学習部１４０で調整された結果のパラメータに基づいてロボットを動作させるプログラムを出力する機能を備えていてもよい。図１２は、実施の形態１にかかるパラメータ算出装置の第５の別構成例を示すブロック図である。図１２では、調整されたパラメータに基づいてロボットを動作させるプログラムを生成する場合のパラメータ算出装置１００Ｅの構成を示している。図１２の各構成要素のうち図１に示すパラメータ算出装置１００と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【０１１９】
パラメータ算出装置１００の第５の別構成例であるパラメータ算出装置１００Ｅは、パラメータ算出装置１００の構成要素に加えてプログラム生成部１８０を備えている。プログラム生成部１８０は、終了条件判定部１５０に接続されている。
【０１２０】
プログラム生成部１８０は、終了条件判定部１５０が、パラメータ調整の終了条件が満たされたと判断した時点で、終了条件判定部１５０から最適なパラメータの組合せを取得する。プログラム生成部１８０が、終了条件判定部１５０から取得する最適なパラメータの組合せは、パラメータ記憶部１１０に格納されているパラメータの組合せである。
【０１２１】
プログラム生成部１８０は、取得したパラメータに基づく動作指令値でロボットに一連動作をさせるためのプログラムを生成する。プログラム生成部１８０が生成するプログラムは、ロボットを動作させるためにユーザが用いるプログラミング言語で記述される。プログラム生成部１８０は、生成したプログラムを、外部装置（ロボットを制御するコントローラなど）に出力する。これによって、ユーザはロボットの一連動作の最適なプログラムを得ることができる。
【０１２２】
ところで、１つの速度パターンに対してパラメータ調整による部分最適化を行っても、複数の速度パターンを含んだ一連動作全体で要求される制約条件を考慮した解は得られない。一方、本実施の形態では、複数の速度パターンを含んだ一連動作に対してパラメータ調整による全体最適化を行っている。したがって、本実施の形態では、一連動作全体で要求される制約条件を満たし且つサイクルタイムを短縮する解を得ることができる。
【０１２３】
また、特定のタイミングの指令速度および指令加速度を所定量だけ低減させることで評価基準を満たす動作プログラムを生成する方法がある。この方法でも、一連動作の全体を評価しているわけではないので、一連動作全体で要求される制約条件を満たす最適解を得ることはできない。
【０１２４】
また、ロボットの関節変位、速度、および加速度から機械要素に作用するトルクおよび動作速度を演算することで機械要素の寿命を評価し、目標寿命と評価された寿命との比率を用いて一連動作の速度および加速度を一律に低減する方法がある。この方法では、制御区間毎に異なる割合で動作速度および加速度を調整する全体最適化を行うことはできない。一方、本実施の形態では、一連動作での損傷度等への制御区間毎の寄与を考慮しているので、損傷度等から算出された予測寿命を制約条件とした全体最適化が実現できる。
【０１２５】
このように実施の形態１では、機械学習部１４０が、一連動作を繰り返した場合の寿命の制約条件が充足される範囲で一連動作におけるサイクルタイムが最小となるパラメータの組合せを探索する。したがって、パラメータ算出装置１００，１００Ａ〜１００Ｅは、ロボットの一連動作の全体に対し、寿命の制約条件を満たしつつサイクルタイムの増大を抑制することができる。これにより、ロボットは、変種変量生産への対応が容易になる。また、ロボットは、対象作業に応じた動作を高速化できるので生産性を向上させることができる。また、区切りとしては、１つの移動動作が完結する、速度０を区切りにした制御区間を、それぞれ積み重ねた一連動作に対して最適化できれば、全作業を通して全体最適化となる。したがって、一連動作に対する制約条件と、一連動作に対するサイクルタイムとの両方が、それぞれ特定条件を満たす全体最適化を実現することができる。
【０１２６】
実施の形態２．
つぎに、図１３および図１４を用いてこの発明の実施の形態２について説明する。実施の形態２では、状態変数取得部１２０Ａが、各関節の駆動で消費される電流値を状態変数として取得し、評価部が、関節の一連動作の駆動で消費される、消費電流または消費電力を評価値として算出する。学習部は、一連動作における、消費電流または消費電力の評価値が制約条件を満たしつつ、サイクルタイムが改善されるパラメータを学習し、サイクルタイムが最小となる最適なパラメータを探索する。
【０１２７】
＜消費電流を制約条件として用いる場合の装置構成＞
図１３は、実施の形態２にかかるパラメータ算出装置の第１の構成例を示すブロック図である。図１３の各構成要素のうち図８に示す実施の形態１のパラメータ算出装置１００Ｂと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【０１２８】
パラメータ算出装置１００Ｆは、ロボットの一連動作における各部品の消費電流を算出する。ロボットの部品の例は、アクチュエータを備えた関節である。パラメータ算出装置１００Ｆは、ロボットの一連動作におけるアクチュエータの消費電流を、ロボットが備える部品の消費電流として算出し、消費電流上限に基づいて設定された制約条件を満たすよう、パラメータを生成する。なお、パラメータ算出装置１００Ｆは、ロボットが備える、アクチュエータ以外の部品に対して、消費電流を算出し、消費電流上限に基づいて設定された制約条件を満たすよう、パラメータを生成してもよい。
【０１２９】
パラメータ算出装置１００Ｆは、パラメータ算出装置１００Ｂと比較して、評価部１３０Ｂの代わりに評価部１３０Ｆを備えている。評価部１３０Ｆは、消費電流計算部１３４、および制約判定部１３５ａを備えている。
【０１３０】
消費電流計算部１３４は、動作試行部１２２および制約判定部１３５ａに接続されており、制約判定部１３５ａは、機械学習部１４０に接続されている。消費電流計算部１３４は、状態変数取得部１２０Ａで取得される、各関節のアクチュエータの消費電流値を用いて、一連動作における消費電流を算出する。
【０１３１】
消費電流計算部１３４は、教示区間ごとに消費電流を算出し、各教示区間における消費電流の和を一連動作の消費電流とする。また、消費電流計算部１３４は、一連動作全体が終了した時点を消費電流の算出周期である消費電流算出周期として一連動作の消費電流を算出してもよい。
【０１３２】
消費電流計算部１３４は、状態変数取得部１２０Ａでロボットの制御周期Δt（単位：秒）ごとに取得された電流値を実効値に換算した値Ｉ＿ｉ［ｋ］を算出する。消費電流計算部１３４は、消費電流算出周期ｔ２［ｋ］＝ｋ×Δｔにおける第ｉ軸の消費電流累積値Ｉａｃｃ＿ｉ［ｋ］を、以下の式（１６）を用いて算出する。消費電流累積値Ｉａｃｃ＿ｉ［ｋ］は、アクチュエータを駆動した際の消費電流の累積値である。
【０１３３】
Ｉａｃｃ＿ｉ［ｋ］＝Ｉａｃｃ＿ｉ［ｋ−１］＋Ｉ＿ｉ［ｋ］×Δｔ、Ｉａｃｃ＿ｉ［０］＝０・・・（１６）
【０１３４】
制約判定部１３５ａは、消費電流計算部１３４で算出された一連動作における消費電流と、消費電流上限とに基づいた判定式を用いて、パラメータ記憶部１１０から読み出されたパラメータの組合せが一連動作での制約条件を満たすか否か判定する。一連動作全体での第ｉ軸の消費電流累積値Ｉａｃｃ＿ｉ［ｋ］をＩｃ＿ｉとし、第ｉ軸の消費電流上限をＩｓ＿ｉとすると、第ｉ軸の消費電流累積値Ｉａｃｃ＿ｉ［ｋ］が、第ｉ軸の消費電流上限を超えないという制約条件は、以下の式（１７）で表すことができる。このとき、消費電流上限Ｉｓ＿ｉとしては、実際の生産工程でロボットを使用するために必要とされる消費電流上限の値が設定されてもよい。また、ユーザがロボットの一連動作を設計する際にインタフェースを介して設定した消費電流上限値が、Ｉｓ＿ｉとして適用されてもよい。
【０１３５】
Ｉｃ＿ｉ≦Ｉｓ＿ｉ・・・（１７）
【０１３６】
＜消費電力を制約条件として用いる場合の装置構成＞
図１４は、実施の形態２にかかるパラメータ算出装置の第２の構成例を示すブロック図である。図１４の各構成要素のうち図１３に示すパラメータ算出装置１００Ｆと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【０１３７】
パラメータ算出装置１００Ｇは、ロボットの一連動作における各関節のアクチュエータの消費電力を算出し、消費電力上限に基づいて設定された制約条件を満たすよう、パラメータを生成する。なお、パラメータ算出装置１００Ｇは、ロボットが備える、アクチュエータ以外の部品に対し、消費電力を算出し、消費電力上限に基づいて設定された制約条件を満たすよう、パラメータを生成してもよい。
【０１３８】
パラメータ算出装置１００Ｆは、パラメータ算出装置１００Ｇと比較して、評価部１３０Ｆの代わりに評価部１３０Ｇを備えている。評価部１３０Ｇは、消費電力計算部１３６、および制約判定部１３７ａを備えている。
【０１３９】
消費電力計算部１３６は、動作試行部１２２および制約判定部１３７ａに接続されており、制約判定部１３７ａは、機械学習部１４０に接続されている。消費電力計算部１３６は、状態変数取得部１２０Ａで取得される、各関節のアクチュエータの消費電力値を用いて、一連動作における消費電力を算出する。
【０１４０】
消費電力計算部１３６は、消費電流計算部１３４と同様の処理によって、消費電流累積値Ｉａｃｃ＿ｉ［ｋ］を算出する。さらに、消費電力計算部１３６は、式（１６）を用いて算出した消費電流累積値Ｉａｃｃ＿ｉ［ｋ］と、定格電圧Ｖ＿ｉとを用いて、消費電力累積値Ｗａｃｃ＿ｉ［ｋ］を算出する。すなわち、消費電力計算部１３６は、以下に示す式（１８）を用いて消費電力累積値Ｗａｃｃ＿ｉ［ｋ］を算出する。消費電力累積値Ｗａｃｃ＿ｉ［ｋ］は、アクチュエータを駆動した際の消費電力の累積値である。
【０１４１】
Ｗａｃｃ＿ｉ［ｋ］＝Ｉａｃｃ＿ｉ［ｋ］×Ｖ＿ｉ・・・（１８）
【０１４２】
制約判定部１３７ａは、消費電力計算部１３６で算出された一連動作における消費電力と、消費電力上限と、に基づいた判定式を用いて、パラメータ記憶部１１０から読み出されたパラメータの組合せが一連動作での制約条件を満たすか否か判定する。一連動作全体での第ｉ軸の消費電力累積値Ｗａｃｃ＿ｉ［ｋ］をＷｃ＿ｉとし、第ｉ軸の消費電力上限をＷｓ＿ｉとすると、第ｉ軸の消費電力累積値Ｗａｃｃ＿ｉ［ｋ］が、第ｉ軸の消費電力上限を超えないという制約条件は、以下の式（１９）で表すことができる。このとき、消費電力上限Ｗｓ＿ｉとしては、実際の生産工程でロボットを使用するために必要とされる消費電力上限の値が設定されてもよい。また、ユーザがロボットの一連動作を設計する際にインタフェースを介して設定した消費電力上限値が、Ｗｓ＿ｉとして適用されてもよい。
【０１４３】
Ｗｃ＿ｉ≦Ｗｓ＿ｉ・・・（１９）
【０１４４】
このように、消費電力を制約条件として用いる場合、パラメータ算出装置１００Ｇは、制約判定部１３５ａにおいて式（１７）を用いる代わりに、制約判定部１３７ａにおいて式（１９）を用いて制約条件を満たすか否か判定することができる。
【０１４５】
本実施の形態における機械学習部１４０は、式（１７）で表される電流制約条件または式（１９）で表される電力制約条件を満たす範囲でサイクルタイムが最小となるパラメータの組合せを探索する。すなわち、機械学習部１４０の動作は、式（１２）の寿命制約を満たす範囲でサイクルタイムが最小となるパラメータの組合せを探索する代わりに、式（１７）の電流制約条件または式（１９）の電力制約条件を満たす範囲でサイクルタイムが最小となるパラメータの組合せを探索する。機械学習部１４０は、この探索処理以外は、実施の形態１と同様の処理を実行する。
【０１４６】
機械学習部１４０は、調整対象のパラメータの組合せに対して、消費電流計算部１３４で教示区間ごとに算出された消費電流累積値Ｉａｃｃ＿ｉ［ｋ］または消費電力計算部１３６で教示区間ごとに算出された消費電力量累積値に基づいて、パラメータを調整する教示区間を選択してもよい。この場合、機械学習部１４０は、消費電流累積値Ｉａｃｃ＿ｉ［ｋ］または消費電力量累積値の大きな教示区間を、パラメータの調整対象に選択する。これにより、機械学習部１４０は、パラメータの探索範囲を限定することができる。
【０１４７】
また、機械学習部１４０は、調整するパラメータの個数を削減することで探索時間を削減するために、一連動作のうち消費電流または消費電力の大きい上位の教示区間の動作だけ調整対象としてもよい。機械学習部１４０は、教示区間毎の、動作の消費電流または消費電力と、動作時間との比率から、対象とする動作を決定してもよい。
【０１４８】
また、機械学習部１４０は、全教示区間を調整対象とする場合においても、一連動作のうち消費電流または消費電力の大きい上位の教示区間のパラメータだけを調整した場合のパラメータを、パラメータの組合せの初期値としてもよい。また、機械学習部１４０は、各動作の消費電流または消費電力と、各動作の動作時間との比率から初期値で調整する教示区間を選択してもよい。
【０１４９】
このように実施の形態２では、機械学習部１４０が、一連動作における消費電流または消費電力の制約条件が充足される範囲で一連動作におけるサイクルタイムが最小となるパラメータの組合せを探索する。したがって、パラメータ算出装置１００Ｆは、ロボットの一連動作の全体に対し、消費電流の制約条件を満たしつつサイクルタイムの増大を抑制することができる。また、パラメータ算出装置１００Ｇは、ロボットの一連動作の全体に対し、消費電力の制約条件を満たしつつサイクルタイムの増大を抑制することができる。
【０１５０】
また、パラメータ算出装置１００Ｆは、特定の教示区間をパラメータの調整対象としているの。このため、教示区間ごとに設定された全てのパラメータに基づいて網羅的にパラメータの組合せを試行する場合に比べて、ロボットの一連動作における消費電流上限の制約条件を満たしながら、サイクルタイムの増大を抑制することができるパラメータの組合せを、少ない試行回数で生成することができる。
【０１５１】
また、パラメータ算出装置１００Ｇは、教示区間ごとに設定された全てのパラメータに基づいて網羅的にパラメータの組合せを試行する場合に比べて、ロボットの一連動作における消費電力上限の制約条件を満たしながら、サイクルタイムの増大を抑制することができるパラメータの組合せを、少ない試行回数で生成することができる。
【０１５２】
実施の形態３．
つぎに、図１５を用いてこの発明の実施の形態３について説明する。実施の形態３では、評価部が、一連動作における、予測寿命、消費電流、および消費電力のうちの２つ以上を評価値として算出する。学習部は、一連動作における、予測寿命、消費電流、および消費電力のうちの２つ以上を評価値が制約条件を満たしつつ、サイクルタイムが改善されるパラメータを学習し、サイクルタイムが最小となる最適なパラメータを探索する。
【０１５３】
＜予測寿命、電流、および電力のうちの２つ以上を制約条件として用いる場合の装置構成＞
図１５は、実施の形態３にかかるパラメータ算出装置の構成例を示すブロック図である。図１５の各構成要素のうちパラメータ算出装置１００Ｂ，１００Ｆ，１００Ｇと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【０１５４】
パラメータ算出装置１００Ｈは、ロボットの一連動作における、設計寿命に基づいた制約条件、消費電流上限に基づいた制約条件、消費電力上限に基づいた制約条件のうちの２つ以上を満たすよう、パラメータを生成する。
【０１５５】
パラメータ算出装置１００Ｈは、パラメータ算出装置１００Ｂと比較して、評価部１３０Ｂの代わりに評価部１３０Ｈを備えている。評価部１３０Ｈは、設計寿命に基づく制約条件、消費電流上限に基づく制約条件、および消費電力上限に基づく制約条件のうちの２つ以上を設定する。評価部１３０Ｈは、制約選択部１３８、動力学計算部１３１、損傷度計算部１３２、消費電流計算部１３４、消費電力計算部１３６、および制約判定部１３９を備えている。
【０１５６】
制約選択部１３８は、パラメータ記憶部１１０、状態変数取得部１２０Ａ、動力学計算部１３１、消費電流計算部１３４、および消費電力計算部１３６に接続されている。動力学計算部１３１は、損傷度計算部１３２に接続されている。制約判定部１３９は、損傷度計算部１３２、消費電流計算部１３４、消費電力計算部１３６、および機械学習部１４０に接続されている。
【０１５７】
ユーザによって設計寿命に基づく制約条件が選択された場合、状態変数取得部１２０Ａは、予測寿命に関連する状態変数（各関節の変位、速度、および加速度の値）を取得する。また、ユーザによって消費電流上限または消費電力上限に基づく制約条件が選択された場合、状態変数取得部１２０Ａは、消費電流または消費電力に関連する状態変数（各関節のアクチュエータの消費電流値）を取得する。
【０１５８】
制約選択部１３８は、設計寿命、消費電流上限、および消費電力上限に基づく制約条件のうち、ユーザからの指示に従って、設定する制約条件の種類を選択する。ユーザによって設計寿命に基づく制約条件が選択された場合、制約選択部１３８は、状態変数を動力学計算部１３１に送る。これにより、動力学計算部１３１は、関節に加えられる負荷トルクを算出し、損傷度計算部１３２は、一連動作を繰り返した場合の予測寿命を計算する。損傷度計算部１３２は、予測寿命を制約判定部１３９に送る。
【０１５９】
また、ユーザによって消費電流上限に基づく制約条件が選択された場合、制約選択部１３８は、状態変数を消費電流計算部１３４に送る。これにより、消費電流計算部１３４は、状態変数を用いて一連動作における消費電流累積値Ｉｃ＿ｉを算出する。消費電流計算部１３４は、消費電流累積値Ｉｃ＿ｉを制約判定部１３９に送る。
【０１６０】
また、ユーザによって消費電力上限に基づく制約条件が選択された場合、制約選択部１３８は、状態変数を消費電力計算部１３６に送る。これにより、消費電力計算部１３６は、状態変数を用いて一連動作における消費電力累積値Ｗｃ＿ｉを算出する。消費電力計算部１３６は、消費電力累積値Ｗｃ＿ｉを制約判定部１３９に送る。
【０１６１】
制約判定部１３９は、ユーザによって設計寿命に基づく制約条件が選択された場合、式（１２）を用いて制約条件を満たすか否かを判定する。制約判定部１３９は、ユーザによって消費電流上限に基づく制約条件が選択された場合、式（１７）を用いて制約条件を満たすか否かを判定する。制約判定部１３９は、ユーザによって消費電力上限に基づく制約条件が選択された場合、式（１９）を用いて制約条件を満たすか否かを判定する。
【０１６２】
制約判定部１３９は、評価値が、ユーザによって選択された全ての制約条件を満たす場合に、一連動作の制約条件が満たされていると判定する。機械学習部１４０は、実施の形態１，２と同様の処理によって、パラメータを学習する。
【０１６３】
このように実施の形態３では、機械学習部１４０が、寿命、消費電流および消費電力のうちの複数が制約条件を充足する範囲で一連動作におけるサイクルタイムが最小となるパラメータの組合せを探索する。したがって、パラメータ算出装置１００Ｈは、ロボットの一連動作の全体に対し、寿命、消費電流および消費電力のうちの複数に対する制約条件を満たしつつサイクルタイムの増大を抑制することができる。
【０１６４】
実施の形態４．
つぎに、図１５を用いてこの発明の実施の形態４について説明する。実施の形態４では、パラメータ算出装置が、サイクルタイムの制約条件を満たしつつ、一連動作における、損傷度、消費電流、または消費電力の評価値を改善させることができるパラメータの組合せを生成する。すなわち、評価部が、一連動作における、損傷度、消費電流、または消費電力を評価値として算出する。学習部は、サイクルタイムが制約条件を満たしつつ、一連動作における、損傷度、消費電流、または消費電力が改善されるパラメータを学習し、一連動作における、損傷度、消費電流、または消費電力が最適となるパラメータを探索する。
【０１６５】
損傷度の評価値の改善は、損傷度を減らすことであり、消費電流の評価値の改善は、消費電流を減らすことであり、消費電力の評価値の改善は、消費電力を減らすことである。実施の形態４では、サイクルタイムが満たす特定条件は、制約条件（特定時間以内）を満たすことであり、評価値が満たす特定条件は、評価値を改善することである。すなわち、評価値が改善されることが、評価値が第１の条件を満たすことに対応し、サイクルタイムが制約条件を満たすことが、サイクルタイムが第２の条件を満たすことに対応する。
【０１６６】
＜サイクルタイムを制約条件として、予測寿命を延ばす場合＞
本実施の形態では、パラメータ算出装置１００Ｂ，１００Ｆ，１００Ｇの何れかが用いられる。パラメータ算出装置１００Ｂ，１００Ｆ，１００Ｇは、サイクルタイムに基づく制約条件を満たしつつ、一連動作における、損傷度、消費電流、または消費電力を最小にするパラメータの組合せを求める。
【０１６７】
制約判定部１３３ａ，１３５ａ，１３７ａが、サイクルタイムに基づいて設定された制約条件が充足されているか否かを判定し、機械学習部１４０が、損傷度、消費電流、または消費電力を最小にするパラメータの組合せを求める。損傷度を最小にすることは予測寿命を最長にすることと同義である。
【０１６８】
以下、実施の形態４におけるパラメータ算出装置の動作処理について説明する。損傷度（予測寿命）を低減させる場合は、パラメータ算出装置１００Ｂが用いられる。消費電流を低減させる場合は、パラメータ算出装置１００Ｆが用いられる。消費電力を低減させる場合は、パラメータ算出装置１００Ｇが用いられる。
【０１６９】
なお、実施の形態４におけるパラメータ算出装置１００Ｂ，１００Ｆ，１００Ｇの動作処理のうち、実施の形態１から３におけるパラメータ算出装置１００Ｂ，１００Ｆ，１００Ｇの動作処理と同様の動作処理については、その説明を省略する。また、実施の形態４では、制約判定部１３３ａ，１３５ａ，１３７ａは、同様の処理を行うので、ここでは制約判定部１３３ａの処理について説明する。また、実施の形態４では、評価部１３０Ｂ，１３０Ｆ，１３０Ｇは、同様の処理を行うので、ここでは評価部１３０Ｂの処理について説明する。
【０１７０】
制約判定部１３３ａには、一連動作をこれ以上は遅くできない限界のサイクルタイム基準値ｔｓが設定されている。サイクルタイム基準値ｔｓは、サイクルタイムの制約条件であり、一連動作を実行する際に認められる最長のサイクルタイムである。制約判定部１３３ａは、評価部１３０Ｂで算出されたサイクルタイムｔｃが以下の式（２０）を満たしていれば、一連動作におけるサイクルタイムの制約条件が満たされていると判定する。
【０１７１】
ｔｃ≦ｔｓ・・・（２０）
【０１７２】
サイクルタイム基準値ｔｓには、例えば各教示区間で設計寿命を満たすまで速度および加速度を同じ割合で低減した場合のサイクルタイムの９０％などが設定される。また、サイクルタイム基準値ｔｓには、実際の生産工程でロボットの動作を設計する場合に必要とされるサイクルタイムの値が設定されてもよい。
【０１７３】
機械学習部１４０は、式（２０）の制約条件が充足される範囲で、評価部１３０Ｂで算出された一連動作の損傷度、消費電流、または消費電力が最小となるパラメータの組合せを探索する。換言すると、機械学習部１４０は、式（２０）の制約条件が充足される範囲で、評価部１３０Ｂが算出した評価値が改善されるパラメータの組合せを探索する。機械学習部１４０は、探索したパラメータの組合せで、パラメータ記憶部１１０に格納されているパラメータの組合せを更新する。
【０１７４】
パラメータ算出装置１００Ｂが用いられる場合、機械学習部１４０は、式（２０）の制約条件が充足される範囲で、一連動作の損傷度が最小となるパラメータの組合せを探索する。
【０１７５】
パラメータ算出装置１００Ｆが用いられる場合、機械学習部１４０は、式（２０）の制約条件が充足される範囲で、一連動作の消費電流が最小となるパラメータの組合せを探索する。
【０１７６】
パラメータ算出装置１００Ｇが用いられる場合、機械学習部１４０は、式（２０）の制約条件が充足される範囲で、一連動作の消費電力が最小となるパラメータの組合せを探索する。
【０１７７】
なお、実施の形態４で説明した処理を、パラメータ算出装置１００Ｈに適用してもよい。
【０１７８】
なお、実施の形態３のパラメータ算出装置１００Ｈが、サイクルタイムの制約条件を満たしながら、一連動作における、損傷度、消費電流、および消費電力の各評価値のうち少なくとも１つを改善させることができるパラメータの組合せを生成してもよい。この場合、制約選択部１３８は、最適化する対象を、損傷度、消費電流、および消費電力の中から少なくとも１つ選択する。
【０１７９】
このように実施の形態４では、機械学習部１４０が、一連動作を繰り返した場合のサイクルタイムの制約条件が充足される範囲で一連動作における寿命、消費電流、および消費電力の少なくとも１つが改善されるよう、パラメータの組合せを探索する。したがって、機械学習部１４０は、ロボットの一連動作に許容されるサイクルタイムを満たしつつ、一連動作に対し、予測寿命を延ばすこと、消費電流を抑制すること、または消費電力を抑制することが可能な動作指令を生成することができる。すなわち、機械学習部１４０は、一連動作における、予測寿命、消費電流、または消費電力を考慮した場合のサイクルタイムの増大を抑制することができる。
【０１８０】
実施の形態５．
つぎに、図１６を用いてこの発明の実施の形態５について説明する。実施の形態５では、実際のロボットから状態変数を取得する。
【０１８１】
＜実際のロボットから状態変数を取得する場合の装置構成＞
図１６は、実施の形態５にかかるパラメータ算出装置を備えたロボットシステムの構成例を示すブロック図である。図１６の各構成要素のうちパラメータ算出装置１００と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【０１８２】
ロボットシステム７００は、ロボット制御システム６００と、ロボット３００とを備えている。ロボット制御システム６００は、ロボット３００を制御するシステムであり、パラメータ算出装置１００Ｉおよびロボットコントローラ２００を備えている。
【０１８３】
パラメータ算出装置１００Ｉは、実際のロボット３００に接続されたセンサ４００との間で通信を実行し、ロボット３００から状態変数を取得する。パラメータ算出装置１００Ｉは、パラメータ記憶部１１０と、状態変数取得部１２０Ｂと、評価部１３０と、機械学習部１４０と、終了条件判定部１５０とを備えている。すなわち、パラメータ算出装置１００Ｉは、パラメータ算出装置１００と比較して、状態変数取得部１２０の代わりに、状態変数取得部１２０Ｂを備えている。
【０１８４】
状態変数取得部１２０Ｂは、パラメータ送信部１２３および状態変数受信部１２４を備えている。パラメータ送信部１２３は、パラメータ記憶部１１０、終了条件判定部１５０およびロボットコントローラ２００に接続されており、状態変数受信部１２４は、センサ４００および評価部１３０に接続されている。
【０１８５】
パラメータ送信部１２３は、パラメータ記憶部１１０に格納されているパラメータをロボットコントローラ２００に送信する。状態変数受信部１２４は、ロボット３００を動作させたときの状態変数をセンサ４００から受信する。
【０１８６】
ロボットコントローラ２００は、パラメータ算出装置１００Ｉが算出したパラメータを用いてロボット３００を制御する装置である。ロボットコントローラ２００は、指令生成部２０１を備えている。
【０１８７】
指令生成部２０１は、パラメータ送信部１２３からパラメータを受信し、パラメータに基づいて、ロボット３００への動作指令値を生成する。指令生成部２０１は、生成した動作指令値をロボット３００へ送信する。ロボット３００は、指令生成部２０１が生成した動作指令値に基づいて一連動作を実行する。
【０１８８】
センサ４００は、一連動作におけるロボット３００の各関節の状態変数を取得し、状態変数受信部１２４に送信する。センサ４００は、ロボット３００の内部に配置されてもよいし、ロボット３００の外部に配置されてもよい。また、センサ４００は、ロボットシステム７００の内部に配置されてもよいし、ロボットシステム７００の外部に配置されてもよい。
【０１８９】
ロボットシステム７００では、パラメータ送信部１２３が、パラメータ記憶部１１０に格納されているパラメータを指令生成部２０１に送信すると、指令生成部２０１が、パラメータに基づいて、ロボット３００への動作指令値を生成する。ロボット３００は、動作指令値に基づいて一連動作を実行し、センサ４００は、一連動作におけるロボット３００の各関節の状態変数を取得して状態変数受信部１２４に送信する。
【０１９０】
これにより、状態変数受信部１２４は、指令生成部２０１が生成した動作指令値に基づいてロボット３００を動作させたときの状態変数をセンサ４００から受信する。このように、パラメータ算出装置１００Ｉは、実際のロボット３００の動作結果から状態変数を取得する。状態変数受信部１２４は、受信した状態変数を評価部１３０に送信する。
【０１９１】
評価部１３０、機械学習部１４０、および終了条件判定部１５０は、実施の形態１で説明した処理と同様の処理を実行する。これにより、パラメータ算出装置１００Ｉは、ロボット３００の一連動作の全体に対し、設計寿命の制約条件を満たしつつサイクルタイムの増大を抑制することができるパラメータを生成する。
【０１９２】
なお、パラメータ算出装置１００Ｉは、ロボットコントローラ２００の内部に配置されてもよい。この場合、ロボットコントローラ２００は、教示点を受け付けてパラメータ算出装置１００Ｉに入力する教示点入力部と、パラメータ算出装置１００Ｉが生成したパラメータを出力するパラメータ出力部と、を備える。また、状態変数取得部１２０Ｂは、パラメータ算出装置１００Ａ〜１００Ｈに適用されてもよい。
【０１９３】
このように実施の形態５によれば、パラメータ算出装置１００Ｉは、実際のロボット３００から取得した状態変数を用いて、一連動作の制約条件下で最適なパラメータの組合せを求めることができる。
【０１９４】
ここで、パラメータ算出装置１００，１００Ａ〜１００Ｉのハードウェア構成について説明する。図１７は、実施の形態１から５にかかるパラメータ算出装置のハードウェア構成例を示す図である。なお、パラメータ算出装置１００，１００Ａ〜１００Ｉは、同様のハードウェア構成を有しているので、ここではパラメータ算出装置１００のハードウェア構成について説明する。
【０１９５】
パラメータ算出装置１００は、図１７に示した制御回路、すなわちプロセッサ３０１、メモリ３０２により実現することができる。プロセッサ３０１の例は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、ＤＳＰ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。メモリ３０２の例は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）である。
【０１９６】
パラメータ算出装置１００は、プロセッサ３０１が、メモリ３０２で記憶されている、パラメータ算出装置１００の動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、パラメータ算出装置１００の手順または方法をコンピュータに実行させるものであるともいえる。メモリ３０２は、プロセッサ３０１が各種処理を実行する際の一時メモリにも使用される。
【０１９７】
なお、パラメータ算出装置１００の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【０１９８】
実施の形態６．
つぎに、一連動作を実行するロボット３００の作業環境のレイアウトを決定するためのパラメータを調整する場合の実施の形態について説明する。ロボット３００の作業環境のレイアウトを決定するためのパラメータは、ロボット３００の移動経路（制御区間）を決定するためのパラメータである。すなわち、本実施の形態では、動作パラメータがロボットの移動経路を決めるパラメータである場合について説明する。
【０１９９】
本実施の形態に係るパラメータ算出装置としては、実施の形態１から５で説明したパラメータ算出装置１００，１００Ａ〜１００Ｉの何れが用いられてもよい。すなわち、パラメータ算出装置１００，１００Ａ〜１００Ｉの何れによっても、ロボット３００の作業環境のレイアウトを決定するためのパラメータを調整することができる。
【０２００】
本実施の形態では、パラメータ算出装置１００が、作業環境のレイアウトを決定するためのパラメータを調整する場合について説明する。具体的には、パラメータ算出装置１００が、パラメータ記憶部１１０と、状態変数取得部１２０と、評価部１３０と、機械学習部１４０と、終了条件判定部１５０とを用いて、パラメータ算出装置１００，１００Ａ〜１００Ｉの何れかの機能を実行することで、作業環境のレイアウトを決定するためのパラメータを調整する。
【０２０１】
図１８および図１９を用いて、ロボット３００による作業環境のレイアウトの調整処理と調整による効果を説明する。図１８は、実施の形態６にかかるパラメータ算出装置が作業環境のレイアウトを調整する前の制御区間を示す図である。図１９は、実施の形態６にかかるパラメータ算出装置が作業環境のレイアウトを調整した後の制御区間を示す図である。ここでは、図１８中のレイアウトＡ０の模式図が表すように、ロボットベース原点Ｏ１に設置されたロボット３００が、はじめに手先初期位置の教示点Ｐ１からパーツフィーダ８００上の教示点Ｐ２に移動し、つぎに教示点Ｐ２から組立ステージ８０１上の教示点Ｐ３に移動し、最後に教示点Ｐ３から教示点Ｐ１に戻ることで完了する一連動作を考える。
【０２０２】
図１９中のレイアウトＡ１の模式図は、ロボットベース原点Ｏ１および教示点Ｐ１，Ｐ２，Ｐ３をそれぞれロボットベース原点Ｏ１’および教示点Ｐ１’  ，Ｐ２’，Ｐ３’に変更した場合に、一連動作を構成する教示区間（制御区間）Ｐ１’−Ｐ２’，Ｐ２’−Ｐ３’，Ｐ３’−Ｐ１’におけるロボット３００の姿勢および各関節の移動量が変化することを表している。
【０２０３】
作業環境のレイアウトを決定する要素であるロボット３００の据付位置やパーツフィーダ８００および組立ステージ８０１の配置が変化すると、一連動作を構成する制御区間ごとのロボット３００の姿勢および各関節の移動量が変化する。したがって、パラメータ算出装置１００が備える評価部１３０において、実施の形態１から５の何れかに記載の方式により算出される一連動作の評価値が変化する。機械学習部１４０は、この評価値に基づき、実施の形態１から５の何れかに記載の方式を用いて、作業環境のレイアウトを決定するためのパラメータを算出する。
【０２０４】
作業環境のレイアウトを決定するためのパラメータの例は、ロボットベース原点Ｏ１および教示点Ｐ１，Ｐ２，Ｐ３の３次元座標（ｘ，ｙ，ｚ）である。パラメータ記憶部１１０は、これらの３次元座標を調整対象のパラメータとして記憶する。機械学習部１４０は、例えば各教示点の３次元座標（ｘ，ｙ，ｚ）を粒子の位置ベクトルとするＰＳＯにより、評価部１３０で算出されたサイクルタイムおよび一連動作の評価値を用いて３次元座標の組合せを算出する。
【０２０５】
パラメータ算出装置１００が出力した最適パラメータのレイアウトでロボット３００による作業を実施するために、ユーザはパーツフィーダ８００、組立ステージ８０１などの設備の位置を移動させてもよい。あるいは、ユーザは、位置が固定されたベルトコンベアなどの設備上でロボット３００が物体をピッキングする地点を移動させてもよい。
【０２０６】
機械学習部１４０は、実施の形態１から５の何れかに記載の方式により、パラメータの探索範囲を調整することができる。機械学習部１４０は、例えば、図１８中のレイアウトＡ０において、パーツフィーダ８００および組立ステージ８０１の配置位置は固定しておき、教示点Ｐ２，Ｐ３の座標は調整せず、ロボットベース原点Ｏ１および教示点Ｐ１の座標のみを調整対象とすることができる。
【０２０７】
さらに、本実施の形態に係るパラメータ算出装置１００は、作業環境のレイアウトを決定するためのパラメータとともに、実施の形態１から５の何れかで説明した一連動作の制御区間ごとのパラメータを算出してもよい。パラメータ算出装置１００は、例えば、一連動作に含まれる各教示点の３次元座標をパラメータとして算出するとともに、つぎの教示点までの制御区間での速度および加速度をパラメータとして算出してもよい。また、パラメータ算出装置１００は、実施の形態１から５の何れかで説明した一連動作の制御区間ごとのパラメータは算出せず、作業環境のレイアウトを決定するためのパラメータだけを算出してもよい。
【０２０８】
このように、本実施の形態では、ロボット３００の動作を制御するパラメータには、ロボット３００が一連動作を実行する作業環境のレイアウトを決定するパラメータが必ず含まれている。一方、本実施の形態では、実施の形態１から５の何れかで説明した、ロボット３００の動作を制御するパラメータは、パラメータ記憶部１１０が記憶するパラメータおよび機械学習部１４０が学習するパラメータでなくてもよい。
【０２０９】
このように実施の形態６によれば、一連動作の制約条件を満たしながらサイクルタイムの増大を抑制する作業環境のレイアウトを決定することができる。
【０２１０】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０２１１】
１００，１００Ａ〜１００Ｉ  パラメータ算出装置、１１０  パラメータ記憶部、１２０，１２０Ａ，１２０Ｂ  状態変数取得部、１２１，２０１  指令生成部、１２２  動作試行部、１２３  パラメータ送信部、１２４  状態変数受信部、１３０，１３０Ｂ，１３０Ｆ，１３０Ｇ，１３０Ｈ  評価部、１３１  動力学計算部、１３２  損傷度計算部、１３３ａ，１３５ａ，１３７ａ，１３９  制約判定部、１３４  消費電流計算部、１３６  消費電力計算部、１３８  制約選択部、１４０  機械学習部、１５０  終了条件判定部、１６０  調整区間記憶部、１７０  学習経過可視化部、１８０  プログラム生成部、２００  ロボットコントローラ、３００  ロボット、３０１  プロセッサ、３０２  メモリ、３１０  先端部、４００  センサ、５００  インタフェース画面、６００  ロボット制御システム、７００  ロボットシステム、８００  パーツフィーダ、８０１  組立ステージ、Ｏ１，Ｏ１’  ロボットベース原点、Ｐ１，Ｐ１’，Ｐ２，Ｐ２’，Ｐ３，Ｐ３’  教示点。
【要約】
パラメータ算出装置（１００）が、ロボットの動作を制御するパラメータを速度０を区切りにした制御区間毎に記憶するパラメータ記憶部（１１０）と、複数の制御区間で構成された一連動作におけるロボットの状態を示す状態変数をパラメータに基づいて取得する状態変数取得部（１２０）と、状態変数に基づいて、一連動作を評価する評価値および一連動作のサイクルタイムを算出する評価部（１３０）と、評価値が第１の条件を満たし且つサイクルタイムが第２の条件を満たすパラメータを多目的最適化手法を用いた学習で算出し、算出したパラメータをパラメータ記憶部（１１０）に記憶させる機械学習部（１４０）と、を備える。【図１】
0006833115.tif 000002
【図２】
0006833115.tif 000003
【図３】
0006833115.tif 000004
【図４】
0006833115.tif 000005
【図５】
0006833115.tif 000006
【図６】
0006833115.tif 000007
【図７】
0006833115.tif 000008
【図８】
0006833115.tif 000009
【図９】
0006833115.tif 000010
【図１０】
0006833115.tif 000011
【図１１】
0006833115.tif 000012
【図１２】
0006833115.tif 000013
【図１３】
0006833115.tif 000014
【図１４】
0006833115.tif 000015
【図１５】
0006833115.tif 000016
【図１６】
0006833115.tif 000017
【図１７】
0006833115.tif 000018
【図１８】
0006833115.tif 000019
【図１９】
0006833115.tif 000020