(57)【要約】【課題】ロボットの使用範囲に対して、学習制御による振動低減効果を保ちつつ、学習制御の回数の増加を抑制する。【解決手段】ロボットシステム１は、センサ１２と、動作制御部１３及び学習制御部１４を有するロボット制御装置１０と、を備える。学習制御部１４は、動作制御部１３が動作指令によりロボット１１を動作させたときの該ロボット１１の制御対象部位に生じる振動を補正するための振動補正量を算出して該振動補正量を次回の前記動作指令に対して適用する学習制御を行う。学習制御部１４は、前記振動補正量を算出するための複数の学習制御器１６ａ〜１６ｄと、前記学習制御の対象とする動作プログラムによりロボット１１を動作させるときのロボット１１の動作情報に基づいて、複数の学習制御器１６ａ〜１６ｄのうちの一つを選択する選択部１７と、を備える。【選択図】図１
2018130800.tif 000002
【特許請求の範囲】
【請求項１】
ロボットと、該ロボットの動作を制御する動作制御部を有するロボット制御装置と、前記ロボットの制御対象部位に生じる振動を検出するセンサと、を備えたロボットシステムであって、
前記ロボット制御装置は、前記動作制御部が動作指令により前記ロボットを動作させたときの前記振動を補正するための振動補正量を算出して該振動補正量を次回の前記動作指令に対して適用する学習制御を行う学習制御部を含み、
前記学習制御部は、
前記ロボットの想定される複数の使用範囲に対してそれぞれ割当てられた、前記振動補正量を算出するための複数の学習制御器と、
前記学習制御の対象とする動作プログラムにより前記ロボットを動作させるときの該ロボットの動作情報に基づいて、前記複数の学習制御器のうちの一つを選択する選択部と、を備え、
前記動作情報は、前記ロボットの先端部を移動させる位置の情報と、前記先端部に対してエンドエフェクタが掛ける負荷の情報とを含み、
各々の前記使用範囲は、前記ロボットの先端部を移動させる位置の範囲と前記エンドエフェクタに応じた前記負荷の範囲の両方で定義される範囲である、
ロボットシステム。
【請求項２】
前記選択部は、前記先端部の移動位置の情報と前記負荷の情報とに基づいて、前記複数の使用範囲のうちの一つを特定し、前記複数の学習制御器のうち、該特定した使用範囲に対応する学習制御器を選択するようになされている、請求項１に記載のロボットシステム。
【請求項３】
前記学習制御部は、前記学習制御の実施中に前記センサから得られた前記振動の情報に基づき、前記選択部が選択した前記学習制御器が最適であるか否かを判定する判定部を備え、
該選択した学習制御器が最適でないと前記判定部により判定された場合には、前記選択部は、前記複数の学習制御器のうちの他の学習制御器に切替える、請求項１または２に記載のロボットシステム。
【請求項４】
動作指令に基づいてロボットを動作させて該ロボットの制御対象部位に生じる振動を補正するための振動補正量を算出し、該振動補正量を次回の前記動作指令に対して適用する学習制御を行う、ロボットの学習制御方法であって、
前記ロボットの想定される複数の使用範囲に対してそれぞれ割当てられた、前記振動補正量を算出するための複数の学習制御器を備えたコンピュータが、前記学習制御の対象とする動作プログラムから前記ロボットの動作情報を取得することと、
前記コンピュータが、前記動作情報に基づいて、前記複数の学習制御器のうちの一つを選択することと、
前記コンピュータが、前記選択された学習制御器により前記学習制御を行うこと、を含み、
前記動作情報は、前記ロボットの先端部を移動させる位置の情報と、前記先端部に対してエンドエフェクタが掛ける負荷の情報とを含み、
各々の前記使用範囲は、前記ロボットの先端部を移動させる位置の範囲と前記エンドエフェクタに応じた前記負荷の範囲の両方で定義される範囲である、
ロボットの学習制御方法。
【請求項５】
請求項４に記載のロボットの学習制御方法であって、
前記複数の学習制御器のうちの一つを選択する段階は、前記先端部の移動位置の情報と前記負荷の情報とに基づいて、前記複数の使用範囲のうちの一つを特定し、前記複数の学習制御器のうち、該特定した使用範囲に対応する学習制御器を選択するようにしている、学習制御方法。
【請求項６】
前記コンピュータが、前記振動の情報に基づいて前記選択した学習制御器が最適であるか否かを判定し、該判定の結果、前記選択した学習制御器が最適でない場合には前記複数の学習制御器のうちの他の学習制御器に切替えることを含む、請求項４または５に記載の学習制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習制御機能を備えたロボットシステム及び学習制御方法に関する。
【背景技術】
【０００２】
ロボットを使用する生産現場においては、生産効率を向上するために、ロボットの動作を高速化してタクトタイムを短縮することが求められる場合がある。しかし、ロボットの動作をある程度以上高速化すると、減速機の歪みや、ロボットのアーム部自体の剛性不足などに起因して、動作中のロボットの先端の手先部に振動が発生してしまうことがある。
【０００３】
そのような問題の対処法として、従前より、加速度センサをロボットの手先部に取付け、ロボットの動作中の振動を加速度センサにより計測しながら学習制御を繰返し実施することにより該振動を低減させることが行われている（例えば特許文献１参照）。上記の学習制御では、所定の動作プログラムに基づいたロボットの動作中に加速度センサから得られた振動のデータに基づいて該振動を補正するための振動補正量を算出し、該振動補正量を次回の同じ動作プログラムによるサーボ制御に適用するようになされる。
【０００４】
ところで、ロボットは、ロボットの使用範囲、すなわち手先部に取付けられたエンドエフェクタの移動範囲によってロボットの姿勢が変わる。ロボットの姿勢が大きく異なる使用範囲どうしでは、ロボットに発生する振動の特性は大きく異なる。
このため、ロボットに対して学習制御を適用する場合には、ロボットの使用範囲が変わっても学習制御により振動を低減できること、いわゆるロバスト性が重要となる。
この点に関し、ロボットの異なる姿勢ごとに周波数応答を測定して、それら全ての姿勢においてロバスト性を確保する学習制御器を設計することが提案されている（例えば特許文献１参照）。
【０００５】
また、ロボットの使用範囲は把持ハンドや溶接ガンなどのエンドエフェクタの種類によっても変わる可能性がある。この点に関し、学習制御の際に、ロボットに掛かっている負荷に応じてニーラルネットワークのパラメータを切替えることにより正確に振動を推定し、該振動のデータを基に、負荷の変化に対してのロバスト性を確保する方法が提案されている（例えば特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１６７８１７号公報
【特許文献２】特開平１１−１１１７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
学習制御の対象とするロボットは、学習制御が終了しないと実際の作業を開始することができない。このため、前述のロバスト性だけでなく、できるだけ少ない学習制御の回数で最適な振動補正量を取得することも重要である。しかし、ロボットの姿勢やエンドエフェクタが大きく変わる可能性のあるロボットの広い使用範囲に対して、前述のロバスト性を確保する一つの学習制御器を設計しようとすると、最適な振動補正量を取得するのに必要な学習制御の回数が増加するという問題があった。
そこで、想定されるロボットの使用範囲に対して、学習制御による振動低減効果を保つと共に、学習制御の回数の増加を抑制できることが望まれている。
【課題を解決するための手段】
【０００８】
本開示の一態様は、ロボットと、該ロボットの動作を制御する動作制御部を有するロボット制御装置と、前記ロボットの制御対象部位に生じる振動を検出するセンサと、を備えたロボットシステムである。前記ロボット制御装置は、前記動作制御部が動作指令により前記ロボットを動作させたときの前記振動を補正するための振動補正量を算出して該振動補正量を次回の前記動作指令に対して適用する学習制御を行う学習制御部を含む。
さらに、一態様のロボットシステムにおいて、前記学習制御部は、
前記ロボットの想定される複数の使用範囲に対してそれぞれ割当てられた、前記振動補正量を算出するための複数の学習制御器と、
前記学習制御の対象とする動作プログラムにより前記ロボットを動作させるときの該ロボットの動作情報に基づいて、前記複数の学習制御器のうちの一つを選択する選択部と、を備えうる。
前記動作情報は、前記ロボットの先端部を移動させる位置の情報と、前記先端部に対してエンドエフェクタが掛ける負荷の情報とを含み、各々の前記使用範囲は、前記ロボットの先端部を移動させる位置の範囲と前記エンドエフェクタに応じた前記負荷の範囲の両方で定義される範囲でありうる。
本開示の他の態様は、動作指令に基づいてロボットを動作させて該ロボットの制御対象部位に生じる振動を補正するための振動補正量を算出し、該振動補正量を次回の前記動作指令に対して適用する学習制御を行う、ロボットの学習制御方法である。
さらに、該学習制御方法は、
前記ロボットの想定される複数の使用範囲に対してそれぞれ割当てられた、前記振動補正量を算出するための複数の学習制御器を備えたコンピュータが、前記学習制御の対象とする動作プログラムから前記ロボットの動作情報を取得することと、
前記コンピュータが、前記動作情報に基づいて、前記複数の学習制御器のうちの一つを選択することと、
前記コンピュータが、前記選択された学習制御器により前記学習制御を行うこと、を含みうる。
上記の他の態様の学習制御方法においても、前記動作情報は、前記ロボットの先端部を移動させる位置の情報と、前記先端部に対してエンドエフェクタが掛ける負荷の情報とを含み、各々の前記使用範囲は、前記ロボットの先端部を移動させる位置の範囲と前記エンドエフェクタに応じた前記負荷の範囲の両方で定義される範囲でありうる。
【発明の効果】
【０００９】
本開示の態様によれば、想定されるロボットの使用範囲に対して、学習制御による振動低減効果を保つと共に、学習制御の回数の増加を抑制することができる。
【００１０】
添付図面に示される本開示の典型的な実施形態の詳細な説明から、本開示の一態様に係る目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【００１１】
【図１】一実施形態のロボットシステムを説明するためのブロック図である。
【図２】学習制御部の構成例を模式的に示した図である。
【図３】ロボットの想定使用範囲の一例を示す図である。
【図４】図３に示された想定使用範囲に対する追加の例を示す図である。
【図５】学習制御部の他の構成例を模式的に示した図である。
【図６】学習制御部によって行われる処理フローの一例を示すフローチャートである。
【図７】一実施形態のロボットシステムに適用可能なロボットの一例を示す図である。
【図８】図７に示されたロボットの構成要素と座標系とを説明するための図である。
【発明を実施するための形態】
【００１２】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【００１３】
図１は、一実施形態のロボットシステム１を説明するためのブロック図である。図２は、図１に示された学習制御部１４の構成例を模式的に示した図である。
図１に示されるように、ロボットシステム１は、ロボット１１と、ロボット１１と、ロボット１１の動作を制御する動作制御部１３を有するロボット制御装置１０と、ロボット１１の制御対象部位に生じる振動を検出するセンサ１２と、を備える。
ロボット１１は、垂直多関節ロボット、水平多関節ロボット、パラレルリンクロボットなどでありうる。また、上記のロボット１１の制御対象部位は、エンドエフェクタを取付可能な、ロボットアーム部の先端の手先部（以降、先端部と呼ぶ場合がある。）でありうる。該エンドエフェクタは、把持ハンド、加工ツール、溶接ガン、レーザ照射装置などである。
【００１４】
ロボット制御装置１０は、動作制御部１３が動作指令によりロボット１１を動作させたときの該ロボット１１の制御対象部位に生じる振動を補正するための振動補正量を算出して該振動補正量を次回の同じ動作指令に対して適用する学習制御を行う学習制御部１４をさらに有する。
さらに、ロボット制御装置１０は、学習制御の対象とする動作プログラムに基づいて上記の動作指令を生成して動作制御部１３に出力するとともに、該動作プログラムに予め記述されているロボット１１の動作情報を学習制御部１４に出力する動作指令部１５を備える。
【００１５】
ロボット制御装置１０はコンピュータシステムである。上記の動作プログラムは、事前のロボットティーチングにより、ロボット制御装置１０内のメモリ（不図示）に記憶されている。
動作指令部１５には、該メモリに記憶された動作プログラムを読込んで動作指令値を生成するようになされたコンピュータのＣＰＵ（control processing unit）が適用できる。このような動作指令部１５は、ロボット制御装置１０ではなく、ロボット制御装置１０に接続された上位コンピュータ（不図示）に設けられていてもよい。また、動作制御部１３及び学習制御部１４の夫々にもコンピュータが適用されうる。
【００１６】
図２に示されるように、学習制御部１４は、前述の振動補正量を算出するための複数の学習制御器１６ａ〜１６ｄのうちの一つを選択する選択部１７を備える。
複数の学習制御器１６ａ〜１６ｄは、ロボット１１の想定使用範囲ＵＲを分割した複数の使用範囲に対してそれぞれ割当てられている。
選択部１７は、前述した学習制御の対象とする動作プログラムによりロボット１１を動作させるときの該ロボット１１の動作情報に基づいて上記の複数の使用範囲のうちの一つを特定し、複数の学習制御器１６ａ〜１６ｄのうち、該特定した使用範囲に対応する学習制御器を選択するようになされている。
上記のロボット１１の動作情報は、ロボット１１の先端部を移動させる位置の情報と、該先端部に対してエンドエフェクタが掛ける負荷の情報とを含む。これらの情報は、上記の動作プログラムを基に取得されうる。なお、ロボット１１の姿勢はロボット１１の先端部（手先部）の位置に応じて変わるので、前述の、ロボット１１の先端部を移動させる位置の情報は、動作中のロボット１１が取りうる姿勢の情報であるとも言える。
上記複数の使用範囲の各々は、ロボット１１の先端部を移動させる位置の範囲と、上記のエンドエフェクタに応じた負荷の範囲の両方で定義される範囲でありうる。
【００１７】
図３は、前述したロボット１１の想定使用範囲ＵＲの一例を示す図である。
例えば、図３に示されるグラフのように、ロボット１１の想定使用範囲ＵＲは、ロボット１１が取りうる姿勢の想定範囲と、エンドエフェクタに応じてロボット１１の手先部に掛かる負荷の想定範囲との両方で定義されている。該グラフでは、横軸をロボット姿勢の想定範囲とし、縦軸をそのエンドエフェクタに応じた負荷の想定範囲としている。
想定使用範囲ＵＲは、四つの小範囲Ｒ１〜Ｒ４に分割されている。前述した学習制御器１６ａ〜１６ｄは、四つの小範囲Ｒ１〜Ｒ４に対してそれぞれ割当てられている。この場合、学習制御部１４は、前述したロボット１１の動作情報として、ロボット１１が取りうる姿勢の情報と、ロボットの１１の先端部に対してエンドエフェクタが掛ける負荷の情報との両方を取得するようになっている。
学習制御部１４の選択部１７は、取得したロボット姿勢の情報とエンドエフェクタによる負荷の情報との両方に基づいて、四つの小範囲Ｒ１〜Ｒ４のうちの一つを特定し、該特定した小範囲に対応する学習制御器を選択するようになっている。
【００１８】
より具体的には、ロボット１１の動作プログラムには、ロボット１１の手先部が始動位置から移動すべき目標位置が記述されている。例えば、ロボット１１のアーム部を伸ばしてロボット１１の手先部をロボットベース部から遠い範囲だけで移動させる場合のロボット１１の姿勢は、ロボット１１のアーム部を縮めてロボット１１の手先部をロボットベース部に近い範囲だけで移動させる場合のロボット１１の姿勢と相異する。このため、動作指令部１５は、動作プログラムから、ロボット１１の手先部の目標位置の最小値と最大値を抽出し、これらの値を基に、ロボット１１の手先部の移動範囲を推定することができる。図３のグラフでは、このようなロボット１１の手先部の移動範囲を、ロボット１１が取りうる姿勢の範囲としている。
また、ロボット１１の動作プログラムには、どのようなエンドエフェクタを使ってロボット１１をどのように動作させるかがプログラムされている。例えば、エンドエフェクタとして把持ハンドを使用してワークのピックアンドプレースをロボット１１に実行させるような動作プログラムが作成される。あるいは、エンドエフェクタとしてスポット溶接ガンを使用してスポット溶接をロボット１１に実行させるような動作プログラムが作成される。ロボット制御装置１０は、ロボット１１の先端部に装着されうるエンドエフェクタの種類（例えば把持ハンド、スポット溶接ガンなど）ごとの負荷質量のデータをメモリに予め記憶している。動作指令部１５は、前述の動作プログラムからエンドエフェクタの種類を特定し、特定したエンドエフェクタに対応する負荷質量のデータを上記メモリからロボット１１の動作情報として読みだして学習制御部１４に出力することができる。
したがって、前述のように、学習制御部１４は、ロボット１１の姿勢とエンドエフェクタによる負荷との両方の情報を動作指令部１５から取得することができる。
【００１９】
なお、前述の例は一例に過ぎない。また、ロボット１１の想定使用範囲ＵＲを四つの小範囲Ｒ１〜Ｒ４に分割しているが、分割数はこの限りでない。図３のグラフで言うと、横軸で示されるロボット姿勢の範囲を三つの範囲以上に分割してもよい。あるいは、縦軸で示された負荷の範囲を三つの範囲以上に分割してもよい。
【００２０】
さらに、図４は、図３に示された想定使用範囲ＵＲに対する追加の例を示す図である。動作プログラムによっては、ロボット１１が取りうる姿勢の範囲、すなわちロボット１１の先端部の移動範囲が小範囲Ｒ１〜Ｒ４の各々に収まらないことが有りうる。そこで、図４に示されるように、小範囲Ｒ１と小範囲Ｒ２の両方に跨る中範囲Ｒ５と、小範囲Ｒ３と小範囲Ｒ４の両方に跨る中範囲Ｒ６とを想定し、それら中範囲Ｒ５と中範囲Ｒ６に対して、前述の振動補正量を算出するための二つの追加の学習制御器をそれぞれ割当ててもよい。このことにより、ロボット制御装置１０は、学習制御の対象とする動作プログラムから、小範囲Ｒ１〜Ｒ４の各々を超えるようなロボット姿勢（即ち、手先部の位置）を取得したとしても、有効な学習制御を実施することができる。
【００２１】
図５は、学習制御部１４の他の構成例を模式的に示した図である。前述した学習制御部１４は、図５に示されるように、学習制御の実施中にセンサ１２の検出値、すなわち、ロボット１１の制御対象部位に生じる振動の情報に基づき、選択部１７が選択した学習制御器が最適であるか否かを判定するようになされた判定部１８を備えていてもよい。
ここでいう「学習制御器が最適である」とは、選択された学習制御器により、上記の制御対象部位における振動が低減したことを意味する。
さらに、図５に示された他の構成例の場合は、選択部１７が選択した学習制御器が最適でないと判定部１８により判定されると、選択部１７は、複数の学習制御器１６ａ〜１６ｄのうちの他の学習制御器に切替えるようになっている。選択部１７は、選択した学習制御器が最適であると判定部１８により判定されるまで、学習制御器の切替えを行うことができる。
【００２２】
図６は、前述したロボット制御装置１０によって行われる処理フローの一例を示すフローチャートである。図６に示される処理フローは本開示のロボット制御方法の一例である。図６に示される処理フローを実行するロボット制御装置１０はデジタルコンピュータであるものとする。
【００２３】
先ず、図６のステップＳ１１において、ロボット制御装置１０は、学習制御の対象とする動作プログラムからロボット１１の動作情報を取得する。
次のステップＳ１２において、ロボット制御装置１０は、取得した動作情報に基づいて、ロボット１１の想定使用範囲ＵＲを分割した複数の小範囲Ｒ１〜Ｒ４のうちの一つを特定し、複数の学習制御器１６ａ〜１６ｄのうち、該特定した小範囲に対応する学習制御器を選択する。
次のステップＳ１３において、ロボット制御装置１０は、選択された学習制御器により学習制御を実施する。
【００２４】
次のステップＳ１４において、ロボット制御装置１０は、センサ１２の検出値、すなわちロボット１１に生じる振動の情報に基づき、選択された学習制御器が最適であるか否かを判定する。
上記ステップＳ１４での判定結果において、選択された学習制御器が最適でない場合には、ロボット制御装置１０は、複数の学習制御器１６ａ〜１６ｄのうちの他の学習制御器に切替える（ステップＳ１５）。さらに、ロボット制御装置１０は、選択された学習制御器が最適であると判定するまで、上記のステップＳ１３〜ステップＳ１５を繰返す。
一方、上記ステップＳ１４での判定結果において、選択された学習制御器が最適である場合には、ロボット制御装置１０は、選択された学習制御器によって学習制御を所定の回数だけ繰返し実施して（ステップＳ１６）、学習制御を終了する。
【００２５】
さらに、一実施形態のロボットシステム１について、具体的に説明する。
図７は、前述したロボットシステム１に適用可能なロボット１１の一例を示す図である。図８は、図７に示されたロボット１１の構成要素と座標系とを説明するための図である。
本実施形態のロボット１１は、図７に示されるような六軸の垂直多関節ロボットである。ロボット１１は、図８に示されているように、六つの関節軸１１ｂ１〜１１ｂ６と、関節軸１１ｂ１〜１１ｂ６の各々により連結されたアーム部１１ａと、関節軸１１ｂ１〜１１ｂ６の各々を駆動するサーボモータ（不図示）とを具備する。勿論、ロボット１１の形態は、図１に示された形態に限られず、水平多関節ロボットやパラレルリンクロボットなどであってもよい。
上述したセンサ１２は、ロボット１１の先端部１９に設けられたエンドエフェクタ２０に取付けられている。このことにより、本実施形態のセンサ１２は、ロボット１１の制御対象部位である先端部１９に生じる振動を検出する。センサ１２はロボット１１に対して着脱自在である。エンドエフェクタ２０としてはツール部、ハンド部、ボルト締め具、溶接ガンなどを使用することができる。
【００２６】
ロボット１１は、図８に示されるように、空間上に固定されたワールド座標系２１と、ロボット１１の手首部の先端のフランジに設定されたメカニカルインタフェイス座標系２２とを有する。ワールド座標系２１とメカニカルインタフェイス座標系２２とはそれぞれ３次元直交座標系である。
なお、ワールド座標系２１及びメカニカルインタフェイス座標系２２の各々について、便宜上、図８の中に拡大図によって示した。ワールド座標系２１においては、図８の右方向に＋Ｘ軸、図８の上方向に＋Ｚ軸、図８の紙面に対して奥行方向に＋Ｙ軸をそれぞれ定義している。メカニカルインタフェイス座標系２２においては、図８の右方向に＋Ｘ軸、図８の下方向に＋Ｚ軸、図８の紙面に対して手前方向に＋Ｙ軸をそれぞれ定義している。本実施形態においては、事前にキャリブレーションによってワールド座標系２１とメカニカルインタフェイス座標系２２との位置の相関がとられている。このことにより、ロボット制御装置１０動作制御部１３は、ワールド座標系２１で定義される位置を用いて、エンドエフェクタ２０が取付けられたロボット１１の先端部１９の位置を制御することができる。
【００２７】
本実施形態のロボット制御装置１０は、図７に示されるようにロボット１１とケーブル２３を介して互いに接続されている。センサ１２は、ケーブルまたは無線通信によってロボット制御装置１０と通信可能に接続されている。
本実施形態のセンサ１２としては加速度センサが使用されているが、使用可能なセンサ１２は加速度センサに限定されない。また、本実施形態のセンサ１２はロボット１１の先端部１９に設置されているが、センサ１２の設置場所も限定されない。つまり、ロボット１１の制御対象部位に生じる振動を検出できるのであれば、センサ１２の種類や設置場所は問わない。ロボット１１から離された場所にセンサ１２が設置されていてもよい。このため、使用可能なセンサ１２としては、例えば、ジャイロセンサ、慣性センサ、力センサ、レーザトラッカ、カメラ、またはモーションキャプチャ装置などがありうる。これらの装置はいずれも、或る位置の経時変化を計測できるため、計測された位置における振動量を検出することができる。
例えば、加速度センサの場合は、ロボット１１の制御対象部位における加速度を２回積分すれば位置を算出できるため、算出した位置の変化から振動量を検出することができる。力センサの場合は、制御対象部位に発生したトルクまたはモーメントから、その対象部位の最初の位置からの回転角を求め、該回転角を基にその対象部位の変位量、すなわち振動量を算出することができる。
【００２８】
ここで、再び図１を参照すると、ロボット１１はサーボモータ２４により駆動される。サーボモータ２４は、位置フィードバック値（以下、位置ＦＢと呼ぶ。）及び速度フィードバック値（以下、速度ＦＢと呼ぶ。）を検出するパルスコーダ（不図示）を内蔵している。
【００２９】
図１に示された動作指令部１５は、予め作成された動作プログラムに基づいて、ロボットを動作させる動作指令を生成して動作制御部１３に対して出力する。動作プログラムは、ロボット制御装置１０内のＲＯＭ等のメモリに記憶されている。また、動作指令部１５は、上記の動作プログラムに予め記述されているロボット１１の動作情報を学習制御部１４に出力する。
【００３０】
さらに、ロボット制御装置１０の動作制御部１３は、位置制御部３１、速度制御部３２、電流制御部３３、及びアンプ３４を備える。
位置制御部３１は、動作指令部１５から動作指令として与えられた位置指令値と、サーボモータ２４が出力した位置ＦＢとの差である第一位置偏差量を処理し、速度制御部３２に対して速度指令値を出力する。
速度制御部３２は、位置制御部３１から与えられた速度指令値と、サーボモータ２４が出力した速度ＦＢとの差である速度偏差量を処理し、電流制御部３３に対して電流指令値を出力する。
電流制御部３３は、速度制御部３２から与えられた電流指令値と、アンプ３４からの電流ＦＢ（即ち、電流フィードバック値）との差である電流偏差量を処理し、アンプ３４に対して電流指令値（トルク指令値）を出力する。
アンプ３４は、電流制御部３３からそれぞれ電流指令値を受信するとともに、受信した電流指令値に基づいて、サーボモータ２４を駆動する駆動電流を生成し、サーボモータ２４を回転駆動する。
動作指令部１５からの動作指令に従って、ロボット１１の関節軸１１ｂ１〜１１ｂ６の各々に連結されたサーボモータ２４を回転駆動させると、エンドエフェクタ２０が取付けられたロボット１１の先端部１９は、指令された位置に移動する。
【００３１】
センサ１２は、動作制御部１３が動作指令に基づいてロボット１１の動作制御を行った間にロボット１１の先端部１９に生じる振動を検出する。センサ１２の検出値は学習制御器１４に入力されるようになっている（図２参照）。
学習制御部１４は、いわゆる学習制御を行うための機能部分である。具体的には、動作指令部１５は、所定の制御周期で同じ動作指令値を動作制御部１３に繰返し出力する。動作制御部１３は、該動作指令値によりロボット１１の動作を制御しつつ、制御周期毎に同じ動作指令値を学習制御部１４にも出力する。学習制御部１４は、同じ動作指令値の入力の度に、上記の先端部１９に生じる振動を補正するための振動補正量を算出して該振動補正量を次回の同じ動作指令によるロボット１１の動作制御に適用する学習制御を行う。学習制御部１４は、このような学習制御を繰返すことにより、ロボット１１の先端部１９に生じる振動を低減させる。
【００３２】
例えば生産現場において、ロボットオペレータは、ロボット１１を動作プログラムにより実稼働させる前に、実稼働時と同じ動作プログラムを使ってロボット制御装置１０に繰返しの学習制御を実行させる。繰返しの学習制御により、ロボット１１の先端部１９の振動が十分に低減できたら、最後に算出された振動補正量がロボット制御装置１０内のメモリに保存される。保存された振動補正量は、生産現場でロボット１１を上記の動作プログラムにより実稼働させる際に使用されることになる。
振動補正量を算出するためにセンサ１２が使用されるが、学習制御の終了後には、センサ１２はロボット１１の先端部１９のエンドエフェクタ２０から取外される。
【００３３】
また、振動補正量を算出するのに必要となる振動量データは、動作指令部１５から学習制御部１４に入力される動作指令値と、学習制御部１４に入力されるセンサ１２の検出値との差である第二位置偏差量を所定の制御周期毎に演算処理することで得られる。さらに、振動補正量は、得られた振動データの近似式を推定し、推定した近似式を逆変換することにより算出されうる。言い換えれば、振動補正量は、時系列の振動量データをゼロ付近に補正するための関数である。
【００３４】
既に説明したように、上記の振動補正量を求めるための複数の学習制御器１６ａ〜１６ｄが学習制御部１４に設けられている（図２、図５参照）。本実施形態の学習制御部１４は、上述したように学習制御を実行するときに、ロボット１１の動作情報に基づいて複数の学習制御器１６ａ〜１６ｄのうちの一つを選択する選択部１７を備えている。複数の学習制御器１６ａ〜１６ｄは、ロボット１１の想定使用範囲ＵＲを分割した複数の小範囲Ｒ１〜Ｒ４（図３参照）に対してそれぞれ割当てられている。
ロボット１１が六軸の垂直多関節ロボット（図７、図８参照）である場合には、ロボット１１の動作情報は、ワールド座標系２１で定義されるロボット１１の先端部１９の目標位置から得られるロボット姿勢の情報と、ロボット１１の先端部１９に対してエンドエフェクタ２０が掛ける負荷の情報の両方である。該ロボット姿勢の情報は先端部１９の移動範囲の情報に相当し、この先端部１９の位置は、ワールド座標系２１の原点を基準としたメカニカルインタフェイス座標系２２の原点の位置とすることができる。このようなロボット１１の姿勢と負荷の両方の情報に基づいて、選択部１７は、複数の小範囲Ｒ１〜Ｒ４のうちの一つを特定し、該特定した小範囲に対応する学習制御器を選択するようになっている。
【００３５】
以上に説明したようなロボットシステム１によれば、学習制御の対象プログラムによりロボット１１を動作させるときのロボット１１の動作情報に基づいて、ロボット１１の想定使用範囲ＵＲを分割した複数の小範囲Ｒ１〜Ｒ４のうちの一つに合った学習制御器が選択されるようにしている。このことにより、ロボット１１の想定使用範囲ＵＲに対して、学習制御による振動低減効果を保ちつつ、学習制御の回数の増加を抑制することができる。
【００３６】
さらに言えば、ロボット１１の姿勢やエンドエフェクタ２０が大きく変わる可能性のあるロボット１１の広い使用範囲に対して単一の学習制御器を設計する場合と比べて、本実施形態の場合には、個々の学習制御器に要求されるロバスト性は低くなる。したがって、本実施形態のように、ロボット１１の広い使用範囲を分割した複数の小範囲の夫々に対して学習制御器を割当てておく方が、比較的少ない学習制御の回数で最適な振動補正量を取得することができる。
【００３７】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の実施形態のロボットシステム及びロボット制御装置の各々の構成要素や機能などに変更および種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【符号の説明】
【００３８】
１    ロボットシステム
１０    ロボット制御装置
１１    ロボット
１２    センサ
１３    動作制御部
１４    学習制御部
１５    動作指令部
１６ａ〜１６ｄ    学習制御器
１７    選択部
１８    判定部
１９    ロボットの先端部
２０    エンドエフェクタ
２１    ワールド座標系
２２    メカニカルインタフェイス座標系
２３    ケーブル
２４    サーボモータ
３１    位置制御部
３２    速度制御部
３３    電流制御部
３４    アンプ
【図１】
2018130800.tif 000003
【図２】
2018130800.tif 000004
【図３】
2018130800.tif 000005
【図４】
2018130800.tif 000006
【図５】
2018130800.tif 000007
【図６】
2018130800.tif 000008
【図７】
2018130800.tif 000009
【図８】
2018130800.tif 000010