(57)【要約】  同期駆動中の複数ロボットの実軌跡上のどの位置においても把持ワークに掛かる負荷を可及的に低減する。ロボット制御装置は、マスターロボットおよびスレーブロボットを同期駆動時の夫々の軌道上に位置決めする位置補正済みの指令値であるロボット当たりにＮ個の学習用指令値に基づいて、学習用指令値間の変換行列をＮ個の学習用指令値の夫々について生成する変換行列生成手段（２００）と、マスターロボットの軌跡を定義するＭ（Ｍ＞Ｎ）個の演算周期毎の第１駆動用指令値を出力する指令値記憶手段（１００）と、前記Ｎ個の変換行列を補間して前記第１駆動用指令値毎の変換行列を生成する、変換行列関数生成手段（２０２）および指令値生成手段（２１１）と、前記Ｍ個の第１駆動用指令値の夫々に補間後の変換行列を作用させてスレーブロボットのＭ個の第２駆動用指令値を生成する指令値生成手段（２１１）と、を備える。
2014002678.tif 000002
【特許請求の範囲】
【請求項１】
第１ロボットと前記第１ロボットと異なる第２ロボットとを同期駆動するロボット制御装置であって、
前記第１ロボットと前記第２ロボットとを同期駆動時の夫々の軌跡上に位置決めする位置補正済みの指令値であるロボット当たりにＮ個の第１学習用指令値に基づいて、前記第１ロボットにかかる第１学習用指令値と前記第２ロボットにかかる第１学習用指令値との間の同期駆動時の位置関係を定義する位置関係行列を前記Ｎ個の第１学習用指令値の夫々について生成する位置関係行列生成部と、
前記第１ロボットの軌跡を定義する指令値であるＭ（Ｍ＞Ｎ）個の演算周期毎の第１駆動用指令値を出力する第１指令値出力部と、
前記Ｎ個の位置関係行列を補間して前記第１駆動用指令値毎の位置関係行列を生成する位置関係行列補間部と、
前記Ｍ個の第１駆動用指令値の夫々に前記補間後の対応する位置関係行列を作用させて前記第２ロボットの軌跡を定義する指令値であるＭ個の第２駆動用指令値を生成する第２指令値生成部と、
を備え、前記第１駆動用指令値に基づいて前記第１ロボットを駆動し、前記第２駆動用指令値に基づいて前記第２ロボットを駆動する、
ことを特徴とするロボット制御装置。
【請求項２】
前記第１ロボットおよび前記第２ロボットは、ユーザによりＮセットの教示点の夫々に移動せしめられて静止せしめられ、
前記Ｎセットの教示点の夫々に前記第１ロボットおよび前記第２ロボットが静止せしめられる毎に手先にかかる作用力に基づいて夫々の手先位置の補正を行い、補正後の手先位置または補正後の手先位置に対応する指令値を取得して前記第１学習用指令値に設定する位置補正済み指令値生成部をさらに備える、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記Ｎ個の位置関係行列を補間する位置関係行列関数を生成する位置関係行列関数生成部をさらに備え、
前記位置関係行列補間部は、前記位置関係行列関数に基づいて前記第１駆動用指令値毎の位置関係行列を生成する、
ことを特徴とする請求項２に記載のロボット制御装置。
【請求項４】
前記第１ロボットと前記第２ロボットとは、同一のワークを同時に把持して搬送するロボットであって、
前記第１ロボットまたは前記第２ロボットの手先にかかる作用力を演算する作用力演算部と、
同期駆動時に、前記第１駆動用指令値または前記第２駆動用指令値に対し、前記作用力演算部による演算値に基づいて前記第１ロボットまたは前記第２ロボットの手先にかかる作用力を低減する補正を行う指令補正部と、
同期駆動時に前記第１ロボットおよび前記第２ロボットの位置検出を行う位置検出部と、
同期駆動時に前記Ｎ個の第１学習用指令値をロボット毎に算出する位置補正済み指令値生成部と、
をさらに備えることを特徴とする請求項１に記載のロボット制御装置。
【請求項５】
前記第１ロボットの手先位置および前記第２ロボットの手先位置を演算周期毎に検出する位置検出部をさらに備え、
前記位置補正済み指令値生成部は、前記第１ロボットの手先位置の検出値のうちのＮ個の検出値、および、前記第２ロボットの手先位置の検出値のうちのＮ個の検出値、を前記第１学習用指令値に設定する、
ことを特徴とする請求項４に記載のロボット制御装置。
【請求項６】
前記指令補正部は、同期駆動時に、前記第１駆動用指令値および前記第２駆動用指令値を補正し、
前記Ｍ個の第１駆動用指令値および前記Ｍ個の第２駆動用指令値は、夫々Ｎ個の第２学習用指令値を含み、
前記位置補正済み指令値生成部は、
前記第２学習用指令値の夫々について、当該第２学習用指令値と、当該第２学習用指令値に対する前記指令補正部による最も新しい所定サイクル分の補正量の代表値と、を加算することによって前記第１学習用指令値を算出する、
ことを特徴とする請求項４に記載のロボット制御装置。
【請求項７】
前記Ｍ個の第１駆動用指令値のうちの前記作用力に関する設定条件を満たす駆動用指令値を選択し、前記選択した駆動用指令値を前記第１ロボットの第２学習用指令値に設定する、学習用指令値選択部をさらに備える、
ことを特徴とする請求項６に記載のロボット制御装置。
【請求項８】
前記代表値は、平均値、重み付け平均値、中間値、または、最頻値である、
ことを特徴とする請求項６に記載のロボット制御装置。
【請求項９】
前記Ｎ個の位置関係行列を補間する位置関係行列関数を生成する位置関係行列関数生成部をさらに備え、
前記位置関係行列補間部は、前記位置関係行列関数に基づいて前記第１駆動用指令値毎の位置関係行列を生成する、
ことを特徴とする請求項１乃至請求項８の何れか一項に記載のロボット制御装置。
【請求項１０】
同期駆動時に第１の速度設定値の入力を受け付ける速度設定値入力部と、
前記第１の速度設定値と異なる第２の速度設定値毎に前記Ｎ個の位置関係行列を補間する位置関係行列関数を予め記憶する位置関係行列関数記憶部と、
を備え、
前記位置関係行列補間部は、同期駆動時に、前記位置関係行列関数記憶部が記憶する前記第２の速度設定値毎の位置関係行列関数を読み出して、前記速度設定値入力部に入力された第１の速度設定値に基づいて前記読み出した第２の速度設定値毎の位置関係行列関数を補正し、前記補正後の位置関係行列関数に基づいて前記第１の速度指令値毎の位置関係行列を生成する、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項１１】
第１ロボットと前記第１ロボットと異なる第２ロボットとを同期駆動するロボット制御方法であって、
前記第１ロボットと前記第２ロボットとを同期駆動時の夫々の軌跡上に位置決めする位置補正済みの指令値であるロボット当たりにＮ個の第１学習用指令値に基づいて、前記第１ロボットにかかる第１学習用指令値と前記第２ロボットにかかる第１学習用指令値との間の同期駆動時の位置関係を定義する位置関係行列を前記Ｎ個の第１学習用指令値の夫々について生成する位置関係行列生成ステップと、
前記第１ロボットの軌跡を定義する指令値であるＭ（Ｍ＞Ｎ）個の演算周期毎の第１駆動用指令値を出力する第１指令値出力ステップと、
前記Ｎ個の位置関係行列を補間して前記第１駆動用指令値毎の位置関係行列を生成する位置関係行列補間ステップと、
前記Ｍ個の第１駆動用指令値の夫々に前記補間後の対応する位置関係行列を作用させて前記第２ロボットの軌跡を定義する指令値であるＭ個の第２駆動用指令値を生成する第２指令値生成ステップと、
前記第１駆動用指令値に基づいて前記第１ロボットを駆動し、前記第２駆動用指令値に基づいて前記第２ロボットを駆動する、同期駆動ステップと、
を備える、
ことを特徴とするロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のロボットをロボット間で同期させながら駆動するロボット制御装置およびロボット制御方法に関する。
【背景技術】
【０００２】
ロボットを活用した効率的な生産を実施する目的で、従来、生産システム内に産業用ロボットを複数台据え付けて同時に複数作業を実施することが行われていた。特に、同時に複数作業を実施する複数ロボット間において、同一のワークを把持、支持、組み付けするような協調作業で課題となっていたのは、作業中にワークやロボット同士に過大な負荷をかけることであった。この過大な負荷は、現在の各ロボットの把持位置のずれに起因するもので、具体的には、負荷のかからない理想的な把持位置からの位置誤差に応じて発生する。このような負荷を発生せしめる位置誤差は、各ロボットの据付位置誤差やキャリブレーション誤差による静的な位置誤差や、各ロボットの応答遅れによって生じる動的な位置誤差を含む。複数ロボットの夫々の把持位置同士の位置姿勢関係により発生するワークやロボット間に作用する力が許容値を超えている場合には、例えばモータの電流値を見ることで異常検出が可能であり、異常検出を行うことでロボットを安全に停止せしめることができるようになる。また、従来、動作中のロボットの相互の位置誤差を低減する目的で、各動作の基本周期信号の同期精度を向上させる技術が多く提案されている。【０００３】
一方で、複数ロボット同士の手先(エンドエフェクタ)の把持位置(手先位置)の位置姿勢関係のずれが発生した場合に力制御による位置姿勢を補正する技術が開発されている。この技術によれば、把持位置が、手先に発生した力に応じて補正され、手先にかかる力が許容される力の範囲におさめる位置に移動するように制御される。このような位置姿勢の補正技術には、大きく、マスタースレーブ方式とインピーダンス制御方式とに分類することが出来る。マスタースレーブ方式は、あるロボットを主ロボット(マスターロボット)とし、そのほかのロボットを従ロボット(スレーブロボット)とし、主ロボットが理想的な軌跡に対して位置制御を実施し、そのほかの従ロボットが力制御によって主ロボットに追従動作するという方式である。また、マスタースレーブ方式には力制御を構成として含まない、同期制御方式という方式もある。これは、産業用用途では力センサーを含まない安価な構成として用いられており、あらかじめ主ロボットと従ロボットの位置関係を定義しておき、マスターの指令値に対応して定義された位置関係からスレーブの位置指令値を演算するものである(例えば特許文献１参照)。また、インピーダンス制御方式は、所望のハンドリング対象物体の軌跡から逆に、各ロボットの軌跡を算出し、その軌跡を指令値とした場合に、手先にかかる力に対して適当なインピーダンス特性を持たせた位置に制御することで、所望の運動をそれぞれのロボットに対して行う方式である(例えば特許文献２参照)。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２０９１５号公報
【特許文献２】特開平７−２５６５８０号公報
【特許文献３】特開２００１−２１６０１２号公報
【特許文献４】特開２０１１−１０４７４０号公報
【非特許文献】
【０００５】
【非特許文献１】有本卓著  「ロボットの力学と制御」朝倉書店出版  １９９０年
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１、２の技術によれば、各ロボットの動作中に生じる実軌跡の位置誤差(絶対位置誤差)について、ロボットの位置姿勢や動作速度ごとに変動することを加味した協調動作用の軌跡生成がなされていないという問題があった。これにより、たとえば、協調制御によって実施する作業が複雑化した場合、各ロボット間の各位置姿勢における静的な手先位置誤差に変動が出るため、手先の姿勢変更によっては急激に力が発生してしまう場合がある。その結果、作業対象物やハンドについて許容される力の制限がある場合には、協調しながら高速な動作を実現することが困難であった。【０００７】
本発明は、上記に鑑みてなされたものであって、協調動作（同期駆動）中の複数ロボットの実軌跡上のどの位置においても把持ワークに掛かる負荷を可及的に低減することができるロボット制御装置およびロボット制御方法を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、第１ロボットと前記第１ロボットと異なる第２ロボットとを同期駆動するロボット制御装置であって、前記第１ロボットと前記第２ロボットとを同期駆動時の夫々の軌跡上に位置決めする位置補正済みの指令値であるロボット当たりにＮ個の第１学習用指令値に基づいて、前記第１ロボットにかかる第１学習用指令値と前記第２ロボットにかかる第１学習用指令値との間の同期駆動時の位置関係を定義する位置関係行列を前記Ｎ個の第１学習用指令値の夫々について生成する位置関係行列生成部と、前記第１ロボットの軌跡を定義する指令値であるＭ（Ｍ＞Ｎ）個の演算周期毎の第１駆動用指令値を出力する第１指令値出力部と、前記Ｎ個の位置関係行列を補間して前記第１駆動用指令値毎の位置関係行列を生成する位置関係行列補間部と、前記Ｍ個の第１駆動用指令値の夫々に前記補間後の対応する位置関係行列を作用させて前記第２ロボットの軌跡を定義する指令値であるＭ個の第２駆動用指令値を生成する第２指令値生成部と、を備え、前記第１駆動用指令値に基づいて前記第１ロボットを駆動し、前記第２駆動用指令値に基づいて前記第２ロボットを駆動する、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、第２ロボットの演算周期毎の指令値生成について、誤差を考慮した形で近似的に変換行列を求めて第２ロボット用の指令値を生成することがロボットの運動特性およびロボットの幾何誤差の同定のための複雑な計算を必要とせずに実現できるので、同期駆動中の複数ロボットの実軌跡上のどの位置においても把持ワークに掛かる負荷を可及的に低減することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施の形態１のロボット制御システムを用いた生産システムを説明する図である。
【図２】図２は、比較例にかかるロボット制御システムの構成を説明する図である。
【図３】図３は、エンドエフェクタ間の理想的な位置関係を説明する図である。
【図４】図４は、実施の形態１のロボット制御システムの構成を説明する図である。
【図５】図５は、実施の形態１の準備処理を説明するフローチャートである。
【図６】図６は、実施の形態１のマスター制御装置の自動運転時の動作を説明するフローチャートである。
【図７】図７は、実施の形態１のスレーブ制御装置の自動運転時の動作を説明するフローチャートである。
【図８】図８は、実施の形態２のロボット制御システムの構成を説明する図である。
【図９】図９は、実施の形態２の変換行列関数記憶手段のメモリ構成を説明する図である。
【図１０】図１０は、実施の形態２の位置関係演算装置が第２の変換行列関数を生成する動作を説明するフローチャートである。
【図１１】図１１は、実施の形態２のスレーブ制御装置の自動運転時の動作を説明するフローチャートである。
【図１２】図１２は、実施の形態３のロボット制御システムの構成を説明する図である。
【図１３】図１３は、実施の形態３の変換行列関数記憶手段のメモリ構成を説明する図である。
【図１４】図１４は、実施の形態７のロボット制御システムの構成を説明する図である。
【図１５】図１５は、実施の形態７のロボット制御システムの別の構成を説明する図である。
【図１６】図１６は、実施の形態８のロボット制御システムの構成を説明する図である。
【図１７】図１７は、比較例にかかるロボット制御系において、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。
【図１８】図１８は、比較例にかかるロボット制御系にインピーダンス制御が適用された場合の、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。
【図１９】図１９は、実施の形態８のロボット制御系において、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかるロボット制御装置およびロボット制御方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、本発明の実施の形態１のロボット制御システム（ロボット制御装置）を用いた生産システムを説明する図である。図示するように、マスターロボット（第１ロボット）１０ａと、スレーブロボット（第２ロボット）１０ｂと、マスターロボット１０ａを制御するマスター制御装置２０ａと、スレーブロボット１０ｂを制御するスレーブ制御装置２０ｂと、位置関係演算装置３０と、を備えている。マスターロボット１０ａは、先端にエンドエフェクタ１１ａを有するアームが据付け台１２ａに取り付けられて構成されている。同様に、スレーブロボット１０ｂは、先端にエンドエフェクタ１１ｂを有するアームが据付け台１２ｂに取り付けられて構成されている。なお、ロボット１０ａ、１０ｂは、ここでは、一例として、６自由度垂直多関節型ロボットであるものとして説明している。
【００１３】
マスター制御装置２０ａ、スレーブ制御装置２０ｂ、および位置関係演算装置３０は、通信線で互いに接続され、マスターロボット１０ａおよびスレーブロボット１０ｂを同期させながら駆動するロボット制御システム（ロボット制御装置）を構成する。マスター制御装置２０ａは、エンドエフェクタ１１ａを位置決めする位置指令値を生成して、当該生成した位置指令値に基づいてエンドエフェクタ１１ａを駆動する。また、マスター制御装置２０ａは、エンドエフェクタ１１ａにかかる位置指令値をスレーブ制御装置２０ｂに送信する。位置関係演算装置３０は、エンドエフェクタ１１ａとエンドエフェクタ１１ｂとが同一のワークを保持して協調して当該ワーク(把持ワーク)を搬送することができるように、協調動作時におけるエンドエフェクタ１１ａ、１１ｂ間の位置関係を規定する位置関係情報を演算する。そして位置関係演算装置３０は、得られた位置関係情報をスレーブ制御装置２０ｂに送信する。スレーブ制御装置２０ｂは、エンドエフェクタ１１ａを位置決めする位置指令値にエンドエフェクタ１１ａ、１１ｂ間の位置関係情報を作用させることで、エンドエフェクタ１１ｂを位置決めするための位置指令値を算出する。そして、スレーブ制御装置２０ｂは、算出した位置指令値に基づいてエンドエフェクタ１１ｂを駆動する。
【００１４】
ここで、本発明の実施の形態１と比較される技術(以下、比較例という)について説明する。図２は、比較例にかかるロボット制御系の構成を説明する図である。なお、ここでは、実施の形態１と区別するために、比較例を適用した位置関係演算装置に符号５０を、マスター制御装置に符号４０ａを、スレーブ制御装置に符号４０ｂを、夫々付している。また、マスター制御装置４０ａおよびスレーブ制御装置４０ｂに具備され、作用対象がマスター系(マスターロボット１０ａ、マスター制御装置４０ａ)であるかスレーブ系(スレーブロボット１０ｂ、スレーブ制御装置４０ｂ)であるかのみ異なるだけで機能が同一の構成要素については、マスター系に具備される場合には符号にアルファベット「ａ」を付し、スレーブ系に具備される場合には符号にアルファベット「ｂ」を付して互いに区別することとする。また、具備される系が異なるだけで機能が同一の構成要素の２つの構成要素については、一方のみを説明し、他方の説明を省略することがある。
【００１５】
マスター制御装置４０ａは、エンドエフェクタ１１ａの指令軌跡を演算周期毎に定義するＭ個の位置指令値を予め記憶する指令値記憶手段１００、Ｍ個の位置指令値(以下、単に指令値)のうちのTm(Tmは、１≦Tm≦Ｍを満たす整数)番目の指令値(Tm番目指令値)に対する補正量(Tm番目補正量)を算出する補正量生成手段１０２ａ、Tm番目指令値とTm番目補正量とに基づいてTm番目の指令値を補正したTm番目補正指令値を生成する補正指令値生成手段１０１ａ、Tm番目補正指令値にエンドエフェクタ１１ａが追随するようにマスターロボット１０ａを駆動する、サーボアンプおよびサーボモータで構成される駆動制御手段１０３ａ、ならびに、Tm番目補正指令値に基づく動作中のエンドエフェクタ１１ａの現在位置(Tm番目現在位置)の検出を行って、Tm番目現在位置を駆動制御手段１０３ａにフィードバックする、エンコーダなどで構成される現在位置検出手段１０４ａを備えている。
【００１６】
補正量生成手段１０２ａは、作用力演算手段１０５ａ、補正量演算手段１０６ａ、および補正量記憶手段１０７ａを備えている。作用力演算手段１０５ａは、エンドエフェクタ１１ａに発生する作用力を演算する。補正量記憶手段１０７ａは、算出した補正量(即ちT1番目補正量〜Tm-1番目補正量)を蓄積記憶する。補正量演算手段１０６ａは、T1番目補正量〜Tm-1番目補正量を用い、エンドエフェクタ１１ａに発生する作用力が小さくなるように、Tm番目補正量を算出する。算出されたTm番目補正量は、補正指令値生成手段１０１ａに送られるとともに、補正量記憶手段１０７ａに格納される。
【００１７】
位置関係演算装置５０は、位置関係情報として、エンドエフェクタ１１ａを位置決めする指令値とエンドエフェクタ１１ｂを位置決めする指令値との間の位置関係を定義する行列（変換行列）を演算する。当該変換行列をエンドエフェクタ１１ａを位置決めする指令値に作用させることで、エンドエフェクタ１１ｂを位置決めする指令値を得ることができる。
【００１８】
スレーブ制御装置４０ｂは、位置関係演算装置５０が算出した変換行列を記憶する変換行列記憶手段１０９、エンドエフェクタ１１ａを位置決めするTm番目指令値に変換行列記憶手段１０９が記憶する変換行列を作用させてエンドエフェクタ１１ｂを位置決めするTm番目指令値を生成する指令値生成手段１０８、エンドエフェクタ１１ｂにかかるTm番目指令値を補正するTm番目補正量を算出する補正量生成手段１０２ｂ、エンドエフェクタ１１ｂにかかるTm番目指令値とTm番目補正量とに基づいてTm番目補正指令値を生成する補正指令値生成手段１０１ｂ、エンドエフェクタ１１ｂにかかるTm番目補正指令値に基づいてスレーブロボット１０ｂを駆動する、サーボアンプおよびサーボモータで構成される駆動制御手段１０３ｂ、ならびに、エンドエフェクタ１１ｂのTm番目現在位置の検出を行って、当該検出したTm番目現在位置を駆動制御手段１０３ｂにフィードバックする、エンコーダなどで構成される現在位置検出手段１０４ｂを備えている。補正量生成手段１０２ｂは、補正量生成手段１０２ａと同等の構成を備えているので、説明を省略する。
【００１９】
ここで、位置関係演算装置５０が算出する変換行列について説明する。この変換行列は、回転量と位置とを表す、一般に同次変換行列と呼ばれているものである。直交座標系をΣｉと表現し、２つの直交座標系Σ１とΣ２との間の変換行列を１T２とおく場合、回転行列を１R２(３×３要素の正方行列)、直交座標系Σ１からみた直交座標系Σ２の位置を１P２(３×１要素のベクトル)、１×３のゼロベクトルをzero(1,3)と表現すると、同次変換行列は次式(１)のように表現される。
１T２＝[１R２,１P２;
zero(1,3),1]    (１)
【００２０】
なお、１つの座標系Σｉ基準として点ａの位置姿勢の表現をｉTａとする場合に、別の座標系Σｉ＋１を基準とした点ａの位置姿勢ｉ＋１Tａは、ΣｉからΣｉ＋１への変換行列ｉ＋１Tｉを用いて次式(２)のように表現される。
ｉ＋１Tａ＝ｉ＋１Tｉ*ｉTａ    (２)
【００２１】
図３は、エンドエフェクタ１１ａ、１１ｂ間の理想的な位置関係を説明する図である。ここで、Σrob1は、据付け台１２ａを基準とした座標系(マスターロボット座標系)であり、Σrob2は、据付け台１２ｂを基準とした座標系(スレーブロボット座標系)であり、Σwldは絶対座標系(ワールド座標系)であり、ΣE1はエンドエフェクタ１１ａを基準とした座標系であり、ΣE2はエンドエフェクタ１１ｂを基準とした座標系である。理想的な環境とは、指令された角度と指令された位置が一致する環境、言い換えると絶対位置誤差がない環境をいう。このような環境においては、マスタースレーブ間の変換行列として、次式(３)を用いることができる。ただし、「A−1」は行列Aに関する逆行列を表す。
E1TE2＝(wldTrob1rob1TE1)−１ wldTrob2rob2TE2    (３)
【００２２】
しかしながら、現実の環境においては、据付誤差、バックラッシ、アームのたわみ、エンドエフェクタ１１ａ、１１ｂの誤差、減速機の剛性の影響などに起因して、エンドエフェクタ１１ａ、１１ｂの手先位置に絶対位置誤差が生じるため、一般に、手先位置とワークとの間の位置関係は望ましい位置関係にならない。そこで、ユーザは、生産システムを立ち上げる場合には、例えば図示しない教示用操作盤などを操作することによって、実物のロボット１０ａ、１０ｂをワークとの位置関係を目視などで確認しながら移動せしめることで、エンドエフェクタ１１ａ、１１ｂ間が所望の相対位置関係を保ちつつ所望の動作が実行されるように、各誤差を指令値にあわせこむ。各誤差が小さく抑えられる場所にエンドエフェクタ１１ａ、１１ｂをユーザが移動させたときの制御装置２０ａ、２０ｂ内の指令値robiT'Ei(ｉ＝1、2)が、当該教示点に位置決めする指令値として設定される。但し、「'」は、教示による位置合わせこみを考慮した変換行列に付されるものとする。
【００２３】
誤差があわせこまれた指令値robiT'Ei(ｉ＝1、2)は、夫々、位置関係演算装置５０に入力される。位置関係演算装置５０は、あわせこみ後の指令値rob1T'E1、rob2T'E2を式(３)のrob1TE1、rob2TE2に夫々代入して、得られたE1TE2をE1T’E2とする。
【００２４】
このように、E1T’E2は、通常動作（ロボット１０ａ、１０ｂを同期駆動すること、以下、自動運転ともいう）が開始される前に算出される。そして、算出されたE1T’E2は、自動運転時の位置変換のための変換行列として使用される。即ち、自動運転時には、スレーブ制御装置４０ｂにおいては、マスター制御装置４０ａの補正指令値に追従する動作を行う目的で、マスター制御装置４０ａ側の指令値と、変換行列とを用いて指令値生成手段１０８においてエンドエフェクタ１１ｂに対する指令値が生成される。このとき、指令値生成手段１０８は、ワールド座標系に対するマスターロボット座標系への変換行列wldTrob1とワールド座標系に対するスレーブロボット座標系への変換行列wldTrob2と前述の変換行列E1T’E2とを用いて、次式(４)に基づいてスレーブ制御装置４０ｂの指令値rob2TE2を算出する。
rob2TE2＝(wldTrob2)−１*rob1TE1*E1T’E2    (４)
【００２５】
しかしながら、上記比較例においては、マスタースレーブ間の指令値の変換に用いられる変換行列がある特定のロボット姿勢で取得した教示点において算出されたE1T’E2に固定されるので、例え指令値が作用力に基づいて補正されるとしても、ロボット同士あるいはロボットとワークの位置関係を協調動作中の軌跡上の全ての位置において一定状態に保つということが難しい。そこで、実施の形態１では、同期駆動中の軌跡上の全ての位置においてロボット同士あるいはロボットとワークとの位置関係を一定に保つことができるように、Ｍ個の指令値の夫々について変換行列E1T’E2を算出するようにした。
【００２６】
図４は、本発明の実施の形態１の位置関係演算装置を用いたロボット制御系を説明する図である。ここでは、比較例と同一の機能を有する構成要素には、同一の符号を付して、重複する説明を省略する。
【００２７】
図示するように、マスター制御装置２０ａは、指令値記憶手段１００、補正量生成手段１０２ａ、補正指令値生成手段１０１ａ、駆動制御手段１０３ａ、および、現在位置検出手段１０４ａを備えている。補正量生成手段１０２ａは、作用力演算手段１０５ａ、補正量演算手段１０６ａ、および補正量記憶手段１０７ａを備えている。
【００２８】
位置関係演算装置３０は、動作開始位置を含めたＮ(ＮはＭより小さい２以上の自然数)個の教示点に位置決めする指令値に基づいて教示点の夫々について変換行列(学習用変換行列)を算出する変換行列生成手段２００と、Ｎ個の学習用変換行列を記憶する変換行列記憶手段２０１と、Ｎ個の学習用変換行列に基づいて変換行列関数を算出する変換行列関数生成手段２０２と、を備えている。変換行列関数の詳細については後述する。算出された変換行列関数は、実施の形態１の位置関係情報としてスレーブ制御装置２０ｂに送信される。
【００２９】
スレーブ制御装置２０ｂは、位置関係演算装置３０が算出した変換行列関数を記憶する変換行列関数記憶手段２１０、エンドエフェクタ１１ａに対するTm番目指令値（第１駆動用指令値）と変換行列関数とに基づいてエンドエフェクタ１１ｂを位置決めするTm番目指令値（第２駆動用指令値）を生成する指令値生成手段２１１、補正量生成手段１０２ｂ、補正指令値生成手段１０１ｂ、駆動制御手段１０３ｂ、および現在位置検出手段１０４ｂを備えている。補正量生成手段１０２ｂは、補正量生成手段１０２ａと同等の構成を備えている。
【００３０】
ここで、実施の形態１によれば、補正指令値生成手段１０１ａ、１０１ｂ、および補正量生成手段１０２ａ、１０２ｂは、協働して、同期駆動時のＮ個の指令値の夫々において軌跡上に位置決めするロボット毎の位置補正済みの指令値（後述する学習用指令値、第１学習用指令値）を生成する位置補正済み指令値生成部として機能する。また、指令値記憶手段１００は、エンドエフェクタ１１ａの軌跡を定義するＭ（Ｍ＞Ｎ）個の演算周期毎の指令値（第１駆動用指令値）を出力する第１指令値出力部として機能する。なお、ここでは、指令値記憶手段１００は、予め指令値を記憶し、記憶している指令値を出力するものとして説明しているが、指令値を所定の演算に基づいて逐次生成する機能部を第１指令値出力部として採用するようにしてもよい。また、変換行列関数生成手段２０２および指令値生成手段２１１は、協働して、Ｎ個の変換行列を補間してエンドエフェクタ１１ａに対する指令値毎の変換行列を生成する位置関係行列補間部として機能する。また、指令値生成手段２１１は、演算周期毎の指令値の夫々に補間後の変換行列を作用させてエンドエフェクタ１１ｂの軌跡を定義するＭ個の指令値（第２駆動用指令値）を生成する第２指令値生成部として機能する。
【００３１】
次に、図４に示したロボット制御系を用いて実行される本発明の実施の形態１のロボット制御方法を説明する。図５は、実施の形態１のロボット制御方法のうちの、オフラインで実行される準備処理を説明するフローチャートである。
【００３２】
ユーザは、まず、エンドエフェクタ１１ａ、１１ｂを、協調動作時の軌跡上の教示点まで教示用操作盤などを利用して移動させる(ステップＳ１)。このとき、ユーザは、実際にエンドエフェクタ１１ａ、１１ｂにワークを把持せしめるなどしてエンドエフェクタ１１ａ、１１ｂの手先位置を調整し、制御装置２０ａ、２０ｂにこのときの位置を取得せしめることができる。なお、位置調整は、Ｎ個の教示点において夫々実行される。
【００３３】
補正指令値生成手段１０１ａは、Tk(Tkは、１≦Tk≦Ｎを満たす整数)番目の教示点において得られるエンドエフェクタ１１ａの位置を、マスターロボット１０ａにかかるTk番目の指令値(学習用指令値)として指令値記憶手段１００に格納するとともに、当該学習用指令値を位置関係演算装置３０に出力する(ステップＳ２)。また、補正指令値生成手段１０１ｂは、ステップＳ２が実行されたときのエンドエフェクタ１１ｂの位置を、スレーブロボット１０ｂにかかるTk番目の学習用指令値として位置関係演算装置３０に出力する(ステップＳ３)。
【００３４】
なお、実際にエンドエフェクタ１１ａ、１１ｂにワークを把持せしめて位置調整が行われる場合には、補正量生成手段１０２ａは、作用力演算手段１０５ａが算出した作用力が所定の値以下となるように補正されるまで補正量の算出を継続し、補正指令値生成手段１０１ａは、逐次算出される補正量で指令値記憶手段１００から供給される所定の指令値に加算する補正量を更新し、作用力が所定の値以下となる補正指令値が得られたとき、当該補正指令値を学習用指令値とすることができる。なお、作用力の計測、計測した作用力に基づく補正量の算出、および算出した補正量による指令値の補正は、スレーブ制御装置２０ｂにおいても同様に実行され、得られた補正指令値がステップＳ３の処理により学習用指令値として出力される。なお、位置の調整中に暫定的に補正指令値生成手段１０１ａ、１０１ｂに供給される指令値は、所定の固定値であってよい。
【００３５】
また、作用力演算手段１０５ａによる作用力の計測方法はどのようなものであってもよい。例えばロボットの手首部分に力覚センサー（力センサー）を取り付けて、当該力覚センサーによる検出値を作用力の計測値とする手法、または、トルクτから手先作用力ｆ(３軸力＋３モーメント)をヤコビアンＪ(ロボットの自由度)を用いて静力学により推定する手法(τ＝ＪT*f、ただしＪTは行列Ｊの転置行列)を採用することが可能である。また、ロボット１０ａ、１０ｂの各軸のモータ電流から各軸のトルクを算出し、算出したトルクの出力から手先作用力を推定する方法、あるいはモータ電流の代わりに各軸にトルクセンサーを取り付け、トルクセンサーから得られる出力トルクから作用力を推定する方法を採用することができる。
【００３６】
なお、ここでは、実際にエンドエフェクタ１１ａ、１１ｂにワークを把持せしめて位置調整が行われ、補正指令値が学習用指令値として記録されるものとして説明するが、エンドエフェクタ１１ａ、１１ｂにワークを把持せしめないで位置調整が行われる場合には、補正指令値生成手段１０１ａは、現在位置検出手段１０４ａが検出し、フィードバック信号として用いられる位置検出値を、学習用指令値とすることができる。スレーブ制御装置２０ｂにおいても同様である。また、実際にエンドエフェクタ１１ａ、１１ｂにワークを把持せしめて位置調整が行われる場合であっても、現在位置検出手段１０４ａ、１０４ｂが検出した位置検出値を学習用指令値とするようにしてもよい。
【００３７】
また、制御装置２０ａ、２０ｂが作用力を計測する手段を有さない場合には、ユーザは、作業領域または姿勢が変わるごとにエンドエフェクタ１１ｂの位置をマニュアルで微調整するようにしてもよい。この際、スレーブ制御装置２０ｂは、マスターロボット１０ａに対する教示点に予め暫定的に定められた固定の変換行列１ＥT’E2を作用させることでエンドエフェクタ１１ｂを駆動することができる。そして、ユーザは、目視によって、または、力もしくは変形を検出できるセンサーをワークに付加することによって、姿勢または位置が変わるポイントごとにワークの状態を観察し、観察の結果に基づいて操作盤を用いて微調整を行うことが可能である。なお、作業力が計測できない場合とは、単純にエンドエフェクタ１１ａ、１１ｂに作用力を計測するセンサーがなく、モータ出力からの手先作用力計算を行う機能が無い場合か、協調動作中において、マスター側のロボットがワークに接触しているが、スレーブ側のロボットはワークに接触はしていない場合が想定される。
【００３８】
ユーザは、全て(ここではＮ個)の教示点について位置調整を行ったか否かを判定し(ステップＳ４)、全ての教示点についての位置調整を行っていない場合には(ステップＳ４、Ｎｏ)、ステップＳ１にて、次の教示点にかかる位置調整を行う。
【００３９】
このように、エンドエフェクタ１１ａを教示点に移動せしめられ、エンドエフェクタ１１ｂを教示点上のエンドエフェクタ１１ａに対応する位置に移動せしめられることで、エンドエフェクタ１１ａ、１１ｂの軌跡上のＮ個の指令値の夫々における、絶対位置誤差をあわせこんだ指令値（位置補正済みの指令値）を得ることができる。
【００４０】
全ての教示点における位置調整が完了すると(ステップＳ４、Ｙｅｓ)、位置関係演算装置３０においては、変換行列生成手段２００は、Tk番目の学習用指令値と、Tk番目の学習用指令値が決定された時点における補正指令値生成手段１０１ｂが生成した補正指令値と、を入力とし、Tk番目の変換行列(学習用変換行列)を生成する(ステップＳ５)。なお、変換行列生成手段２００は、生成した学習用変換行列を変換行列記憶手段２０１に格納する。学習用変換行列の生成は、Ｎ個の教示点の夫々について実行される。
【００４１】
続いて、変換行列関数生成手段２０２は、変換行列記憶手段２０１に格納されたＮ個の学習用変換行列に基づいて、変換行列関数を生成する(ステップＳ６)。
【００４２】
ここで、変換行列関数とは、Ｎ個の変換行列E1T’E2(k),k=1,2,...,Nについて変換行列を補間する変換行列群を規定する関数であって、Ｎ個の学習用指令値に基づいて全軌跡をＮ−１個の区間に分け、各区間における移動割合rateを変数とした関数となる。変換行列関数生成手段２０２による変換行列関数の算出方法を以下に説明する。
【００４３】
k番目の学習用指令値Pkとk+1番目の学習用指令値Pk+1との間の距離をLall(k,k+1)、現在時刻Tnowにおける残移動距離をLr(k,k+1,Tnow)とする場合における移動割合rate(k,k+1,Tnow)は、次式(５)のように定義される。
rate(k,k+1,Tnow)＝(Lall(k,k+1)−Lr(k,k+1,Tnow))/(Lall(k,k+1))    (５)
【００４４】
rate(k,k+1,Tnow)で表される現在位置における変換行列は、変換行列関数E1T’E2(rate(k,k+1,Tnow))により求めることができる。次に、変換行列関数E1T’E2(rate(k,k+1,Tnow))の回転成分と並進移動成分の求め方を説明する。
【００４５】
まず、並進位置E1P’E2(rate(k,k+1,Tnow))が次のように求められる。PkとPk+1とにおけるエンドエフェクタ１１ａ、１１ｂの手先位置の相対的な並進移動の変動分を回転行列ΔPkとすると、ΔPkは、次式(６)により表現される。
ΔPk＝E1P’E2(Pk+1)−E1P’E2(Pk)    (６)
【００４６】
したがって、エンドエフェクタ１１ａの現在位置がrate(k,k+1,Tnow)に存在する場合、並進位置E1P’E2(rate(k,k+1,Tnow))は、ΔPkを用いて、次式(７)のように表現される。
E1P’E2(rate(k,k+1,Tnow))＝E1P’E2(Pk)＋ΔPk*rate(k,k+1,Tnow)    (７)
【００４７】
次に、変換行列関数E1T’E2(rate(k,k+1,Tnow))の回転成分である回転行列E1R’E2(rate(k,k+1,Tnow))の求め方を説明する。PkとPk+1とにおけるエンドエフェクタ１１ａ、１１ｂの手先位置の相対的な回転行列の変動分を回転行列ΔRkで表すと、ΔRkは、次式(８)により表現される。
ΔRk＝(E1R’E2(Pk))(E1R’E2(Pk+1))−１      (８)
【００４８】
ここで、PkとPk+1との間における移動割合rate(k,k+1,Tnow)を表現するため方法として、例えば回転行列を１軸回転法を用いた回転軸ベクトルkと回転量αとを用いて表現する方法が知られている。このとき、αをrate(k,k+1,Tnow)に応じて変化させていく方法が採用される。具体的には、１軸回転法を利用すると、ΔRkは回転軸ベクトルkと回転量αとを用いて等価に表現される。回転行列と[k,α]は次のような関係式がある。
ΔRk＝[kx２*Vα＋Cα,kx*ky*Vα＋Cα,kx*kz*Vα＋Cα；
ky*kx*Vα＋Cα,kx２*Vα＋Cα,ky*kz*Vα＋Cα；
kz*kx*Vα＋Cα,kz*ky*Vα＋Cα,kx２*Vα＋Cα]    (９)
k＝[kx,ky,kz]    (１０)
Vα＝１−Cα    (１１)
Cα＝cosα    (１２)
【００４９】
このとき、αは、移動割合rateに応じて変化するαnowとして以下のように定義する。
αnow＝α*rate(k,k+1,Tnow)    (１３)
【００５０】
現在回転量αnowを用いることで、回転行列の現在の変動分であるΔR(rate(k,k+1,Tnow))は、以下のように定義される。
ΔR(rate(k,k+1,Tnow))
＝[kx２*Vαnow＋Cαnow,kx*ky*Vαnow＋Cαnow,kx*kz*Vαnow＋Cαnow；
ky*kx*Vαnow＋Cαnow,kx２*Vαnow＋Cαnow,ky*kz*Vαnow＋Cαnow；
kz*kx*Vαnow＋Cαnow,kz*ky*Vαnow＋Cαnow,kx２*Vαnow＋Cαnow]    (１４)
E1R’E2(rate(k,k+1,Tnow))＝(E1R’E2(Pk))*ΔR(rate(k,k+1,Tnow))    (１５)
【００５１】
ΔR(rate＿k,k+1)が移動位置に合わせて変更される場合、他にも、回転行列をクォータニオン表現を用いて演算し、クォータニオンで算出された結果を回転行列に変換する方法を採用することが可能である。
【００５２】
以上の演算によって得られた並進位置E1P’E2(rate(k,k+1,Tnow))と回転行列E1R’E2(rate(k,k+1,Tnow))とを用いて、変換行列E1T’E2(rate(k,k+1,Tnow))は、次のように表現される。
E1T’E2(rate(k,k+1,Tnow))
＝[E1R’E2(rate(k,k+1,Tnow)),E1P’E2(rate(k,k+1,Tnow))；
zero(1,3),１]    (１６)
【００５３】
変換行列関数生成手段２０２が以上の算出方法に基づいて求めた変換行列関数は、スレーブ制御装置２０ｂに送られ、変換行列関数記憶手段２１０に格納される。
【００５４】
ステップＳ１〜ステップＳ６の処理により、協調動作のための準備処理が完了する。その後、ユーザは、ロボット制御系の自動運転を開始せしめることができる。
【００５５】
図６は、実施の形態１のロボット制御方法のうちの、マスター制御装置２０ａの自動運転時の動作を説明するフローチャートであり、図７は、実施の形態１のロボット制御方法のうちの、スレーブ制御装置２０ｂの自動運転時の動作を説明するフローチャートである。
【００５６】
マスター制御装置２０ａにおいては、図６に示すように、まず、補正指令値生成手段１０１ａは、Tmを１で初期化し(ステップＳ１１)、指令値記憶手段１００に格納されているTm番目の指令値を取り出す(ステップＳ１２)。一方、補正量生成手段１０２ａは、補正量記憶手段１０７ａに蓄積されているTm-1番目までの指令値にかかる補正量と、作用力演算手段１０５ａが計測した作用力とに基づいて、Tm番目補正量を算出する(ステップＳ１３)。補正指令値生成手段１０１ａは、取り出したTm番目の指令値とTm番目補正量とを加算して、Tm番目補正指令値を生成する(ステップＳ１４)。なお、駆動制御手段１０３ａは、生成されたTm番目補正指令値に基づいてエンドエフェクタ１１ａの位置決めを行うことができる。ステップＳ１４の後、補正指令値生成手段１０１ａは、Tmを１だけインクリメントし(ステップＳ１５)、ステップＳ１１の処理を実行する。なお、ステップＳ１５において、インクリメント前のTmの値が指令値の総数であるＭに等しい場合には、Tm＝１とするようにしてよい。
【００５７】
スレーブ制御装置２０ｂにおいては、図７に示すように、まず、指令値生成手段２１１は、Tmを１で初期化し(ステップＳ２１)、指令値記憶手段１００に格納されているTm番目の指令値を取り出す(ステップＳ２２)。また、指令値生成手段２１１は、取り出したTm番目の指令値が含まれる区間(Pk,Pk+1で表現される区間)およびrate(k,k+1,Tnow)を算出する(ステップＳ２３)。そして、指令値生成手段２１１は、式１３〜式１６に基づいて変換行列E1T’E2(rate(k,k+1,Tnow))を算出し(ステップＳ２４)、取得したTm番目の指令値に前記算出した変換行列E1T’E2(rate(k,k+1,Tnow))を作用させて、エンドエフェクタ１１ｂに対するTm番目の指令値を生成する(ステップＳ２５)。一方、補正量生成手段１０２ｂは、補正量記憶手段１０７ｂに蓄積されているTm-1番目までの指令値にかかる補正量と、作用力演算手段１０５ｂが計測した作用力とに基づいて、Tm番目補正量を算出する(ステップＳ２６)。補正指令値生成手段１０１ｂは、生成されたTm番目の指令値とTm番目補正量とを加算して、Tm番目補正指令値を生成する(ステップＳ２７)。なお、駆動制御手段１０３ｂは、生成されたTm番目補正指令値に基づいてエンドエフェクタ１１ｂの位置決めを行うことができる。ステップＳ２７の後、指令値生成手段２１１は、Tmを１だけインクリメントし(ステップＳ２８)、ステップＳ２２の処理を実行する。なお、ステップＳ２７において、インクリメント前のTmの値が指令値の総数であるＭに等しい場合には、Tm＝１とするようにしてよい。
【００５８】
なお、マスター制御装置２０ａにおけるTmの値とスレーブ制御装置２０ｂにおけるTmの値とは同期しているものとする。
【００５９】
なお、指令値記憶手段１００、補正指令値生成手段１０１ａ、作用力演算手段１０５ａ、補正量演算手段１０６ａ、および補正量記憶手段１０７ａのうちの一部もしくは全部は、ハードウェア、及びソフトウェアのいずれか、又は両者の組み合わせとして実現することが可能である。ソフトウェアで実現するとは、演算装置および記憶装置を備えるコンピュータにおいて、構成要素に対応するプログラムモジュールを記憶装置に格納しておき、当該記憶装置に格納されているプログラムモジュールを演算装置が実行することによって対応する構成要素の機能を実現することである。なお、指令値記憶手段１００および補正量記憶手段１０７ａとしての機能は、夫々記憶装置内に対応する領域が確保されることにより実現される。
【００６０】
同様に、位置関係演算装置３０の構成要素のうちの一部もしくは全部は、ハードウェア、及びソフトウェアのいずれか、又は両者の組み合わせとして実現することが可能である。また、指令値生成手段２１１、変換行列関数記憶手段２１０、補正指令値生成手段１０１ｂ、作用力演算手段１０５ｂ、補正量演算手段１０６ｂ、および補正量記憶手段１０７ｂのうちの一部もしくは全部は、ハードウェア、及びソフトウェアのいずれか、又は両者の組み合わせとして実現することが可能である。
【００６１】
また、マスター制御装置２０ａ、スレーブ制御装置２０ｂ、および位置関係演算装置３０を夫々異なる装置であるものとして説明したが、これらの装置のうちの何れか２つまたは全部を１つの装置として実現することが可能である。また、これらの装置の夫々は、複数の装置に分割して実現することも可能である。
【００６２】
また、以上の説明においては、マスター制御装置２０ａおよびスレーブ制御装置２０ｂの両方において作用力に基づく補正を行うものとして説明したが、どちらか一方の制御装置においてのみ作用力に基づく補正を行うようにしてもよい。
【００６３】
また、以上の説明においては、２つのロボット（マスターロボット１０ａおよびスレーブロボット１０ｂ）を有する生産システムに適用される例について説明したが、本発明の実施の形態１は、３つ以上のロボットが協調動作する生産システムにも適用することができる。その際には、協調動作するロボットのうちの１つをマスターロボットとし、他の全てのロボットをスレーブロボットとして実施の形態１を適用することができる。
【００６４】
以上述べたように、本発明の実施の形態１によれば、ロボット制御装置は、同期駆動時のＮ個の指令値の夫々において位置決めするロボット毎の位置補正済みの指令値に基づいて、ロボット間の位置補正済みの指令値の位置関係を定義する位置関係行列としての学習用変換行列をＮ個の指令値の夫々について生成する、位置関係行列生成部としての変換行列生成手段２００と、マスターロボット１０ａの軌跡を定義するＭ（Ｍ＞Ｎ）個の演算周期毎のマスターロボット１０ａに対する指令値を出力する第１指令値出力部としての指令値記憶手段１００と、Ｎ個の学習用変換行列を補間して演算周期毎の指令値毎の変換行列を生成する位置関係行列補間部としての機能する、変換行列関数生成手段２０２および指令値生成手段２１１と、マスターロボット１０ａに対する演算周期毎の指令値の夫々に補間後の学習用変換行列を作用させてスレーブロボット１０ｂに対する演算周期毎の指令値を生成する第２指令値生成部としての機能を有する指令値生成手段２１１と、を備えるように構成したので、演算周期毎に近似的に変換行列を求めてスレーブロボット１０ｂ用の指令値を生成することができるので、協調動作中の複数ロボットの実軌跡上のどの位置においても把持ワークに掛かる負荷を可及的に低減することができ、ロボットによる高速な協調動作が実現できる。
【００６５】
また、実施の形態１のロボット制御装置は、ユーザにより教示点が与えられ、マスターロボット１０ａおよびスレーブロボット１０ｂは、ユーザによりＮ個の教示点の夫々に移動せしめられて静止せしめられ、Ｎ個の教示点の夫々にマスターロボット１０ａおよびスレーブロボット１０ｂが静止せしめられる毎にロボット毎の指令値を生成して学習用指令値とする位置補正済み指令値生成部として動作する、補正指令値生成手段１０１ａ、１０１ｂ、および補正量生成手段１０２ａ、１０２ｂを備える、ように構成したので、立ち上げ後にユーザが絶対位置誤差に相当する分の補正が全区間で可能なように力制御系の設定を調整する必要が無く、立ち上げ時間を短縮することができるようになる。
【００６６】
実施の形態２．
実施の形態２によれば、ロボット本体の温度や環境温度の変動による手先位置のずれ、２台以上のロボット動作中の同期タイミングのずれに起因する手先位置のずれ、など動的に生じる誤差分も学習して変換行列を更新することができる。図８は、本発明の実施の形態２の位置関係演算装置を用いたロボット制御系を説明する図である。なお、ここでは、実施の形態１と同じ構成要素には実施の形態１と同一の符号を付して、重複する説明を省略する。
【００６７】
図８に示すように、マスター制御装置２１ａは、指令値記憶手段１００、補正量生成手段１０２ａ、補正指令値生成手段１０１ａ、駆動制御手段１０３ａ、および、現在位置検出手段１０４ａを備えている。補正量生成手段１０２ａは、作用力演算手段１０５ａ、補正量演算手段１０６ａ、および補正量記憶手段１０７ａを備えている。ここで、マスター制御装置２１ａは、通常動作を行っている際、現在位置検出手段１０４ａが検出した現在位置を位置関係演算装置３１に出力する。
【００６８】
位置関係演算装置３１は、変換行列生成手段３００と、Ｎ個の学習用変換行列を記憶する変換行列記憶手段３０１と、変換行列関数生成手段３０２と、を備えている。変換行列生成手段３００、変換行列記憶手段３０１、および変換行列関数生成手段３０２は、準備処理において実施の形態１における対応する構成要素と同様の処理を実行して、実施の形態１における変換行列関数(第１の変換行列関数)を生成する。また、通常動作中においては、現在位置検出手段１０４ａ、１０４ｂが検出した夫々の現在位置に基づいて、動的に変換行列関数(第２の変換行列関数)を生成する。
【００６９】
スレーブ制御装置２１ｂは、変換行列関数記憶手段３１０、指令値生成手段３１１、補正量生成手段１０２ｂ、補正指令値生成手段１０１ｂ、駆動制御手段１０３ｂ、および現在位置検出手段１０４ｂを備えている。補正量生成手段１０２ｂは、補正量生成手段１０２ａと同等の構成を備えている。
【００７０】
図９は、変換行列関数記憶手段３１０のメモリ構成を説明する図である。図示するように、変換行列関数記憶手段３１０は、位置関係演算装置３１が算出した第１の変換行列関数３０３および第２の変換行列関数３０４を記憶する。なお、変換行列関数記憶手段３１０が記憶する第２の変換行列関数３０４は、位置関係演算装置３１によって動的に更新される。
【００７１】
指令値生成手段３１１は、第１の変換行列関数３０３または第２の変換行列関数３０４を用いてTm番目指令値を生成することができる。
【００７２】
次に、図８に示したロボット制御系を用いて実行される本発明の実施の形態２のロボット制御方法を説明する。なお、オフラインで実行される準備処理は、実施の形態１と同様であるので、ここでは説明を省略する。準備処理により生成された変換行列関数は、第１の変換行列関数３０３として変換行列関数記憶手段３１０に格納される。
【００７３】
また、マスター制御装置２１ａの通常動作は、現在位置検出手段１０４ａが検出した現在位置を位置関係演算装置３１に出力する点を除いて実施の形態１と同様であるので、説明を省略する。なお、スレーブ制御装置２１ｂも、マスター制御装置２１ａと同様に、現在位置検出手段１０４ｂが検出した現在位置を位置関係演算装置３１に出力する。ここでは簡単のために、Ｍ個の指令値のうち、学習用指令値に最も近傍のＮ個の指令値の夫々が指令値記憶手段１００から補正指令値生成手段１０１ａ、指令値生成手段３１１に取得される毎に、マスター制御装置２１ａ、スレーブ制御装置２１ｂは現在位置を位置関係演算装置３１に出力するものとする。即ち、現在位置検出手段１０４ａ、１０４ｂは、マスターロボット１０ａが教示点または教示点のもっとも近傍に至る毎に、夫々、位置検出値を新たな学習用指令値として出力する。
【００７４】
図１０は、位置関係演算装置３１が第２の変換行列関数３０４を生成する動作を説明する図である。まず、変換行列生成手段３００は、マスター制御装置２１ａおよびスレーブ制御装置２１ｂから１サイクルの動作完了時点毎に入力されたＮ対の現在位置を実施の形態１でいう学習用指令値として用いて、Ｎ個の学習用変換行列を生成する(ステップＳ３１)。なお、変換行列生成手段３００は、生成した学習用変換行列を変換行列記憶手段３０１に格納する。その後、変換行列関数生成手段３０２は、ステップＳ３１の処理により変換行列記憶手段３０１に格納されたＮ個の学習用変換行列に基づいて、第２の変換行列関数３０４を生成する(ステップＳ３２)。生成された第２の変換行列関数３０４はスレーブ制御装置２１ｂに送られて、変換行列関数記憶手段３１０が記憶する第２の変換行列関数３０４が当該送られてきた第２の変換行列関数３０４で上書きされる。その後、ステップＳ３１の処理が実行される。
【００７５】
図１１は、スレーブ制御装置２１ｂの通常動作を説明するフローチャートである。スレーブ制御装置２１ｂにおいては、まず、指令値生成手段３１１は、Tmを１で初期化し(ステップＳ４１)、指令値記憶手段１００に格納されているTm番目の指令値を取り出す(ステップＳ４２)。
【００７６】
続いて、指令値生成手段３１１は、使用する変換行列関数を選択する(ステップＳ４３)。ここで、指令値生成手段３１１は、どのような基準に基づいてステップＳ４３の選択処理を実行するようにしてもよい。第２の変換行列関数３０４は、通常動作の際の経過時間が長くなるほど収束してくる傾向があるが、収束が十分でない場合に指令値生成手段３１１は第１の変換行列関数３０３を選択するようにしてよい。また、通常動作が開始された直後には第２の変換行列関数３０４が生成されていないので、その際には指令値生成手段３１１は第１の変換行列関数３０３を選択するようにしてもよい。
【００７７】
次に、指令値生成手段３１１は、取り出したTm番目の指令値が含まれる区間(Pk,Pk+1で表現される区間)およびrate(k,k+1,Tnow)を算出する(ステップＳ４４)。そして、指令値生成手段３１１は、選択した変換行列関数と式１３〜式１６とに基づいて変換行列E1T’E2(rate(k,k+1,Tnow))を算出し(ステップＳ４５)、取得したTm番目の指令値に前記算出した変換行列E1T’E2(rate(k,k+1,Tnow))を作用させて、エンドエフェクタ１１ｂに対するTm番目の指令値を生成する(ステップＳ４６)。一方、補正量生成手段１０２ｂは、補正量記憶手段１０７ｂに蓄積されているTm-1番目までの指令値にかかる補正量と、作用力演算手段１０５ｂが計測した作用力とに基づいて、Tm番目補正量を算出する(ステップＳ４７)。補正指令値生成手段１０１ｂは、生成されたTm番目の指令値とTm番目補正量とを加算して、Tm番目補正指令値を生成する(ステップＳ４８)。ステップＳ４８の後、指令値生成手段３１１は、Tmを１だけインクリメントし(ステップＳ４９)、ステップＳ４２の処理を実行する。
【００７８】
このように、本発明の実施の形態２によれば、マスターロボット１０ａまたはスレーブロボット１０ｂのうちの少なくとも一方の演算周期毎の指令値に対し、手先にかかる作用力を低減する補正を行う指令補正部（補正量生成手段１０２ａ、１０２ｂ、補正指令値生成手段１０１ａ、１０１ｂ）と、ロボット１０ａ、１０ｂの位置検出を行う位置検出部としての機能、および、Ｎ個の指令値の夫々において検出された前記第１ロボットの位置と前記第２ロボットの位置とを学習用指令値として出力する位置補正済み指令値生成部としての機能を有する、現在位置検出手段１０４ａ、１０４ｂと、を備えるように構成したので、同期駆動時に、手先にかかる作用力が小さくなるように動的に補正された位置を学習用指令値として用いながら学習用変換行列を算出し、算出した学習用変換行列を用いて第２の変換行列関数を逐次更新するので、複数のロボット１０ａ、１０ｂが協調動作を実施する上で作用力が小さくなる方向に収束するまで夫々の手先位置を補正でき、最終的に作用力が最も小さくなる軌跡でロボット１０ａ、１０ｂを協調動作せしめることができるようになる。
【００７９】
また、第２の変換行列関数の更新を続けるモードと更新を停止するモードを設けると、例えば不要な外乱(たとえば、システム内のケーブルが絡んだことによるロボットへの負荷増加)を含むような試行は学習から排除する事や、実生産中には学習を実施しないことが出来るようになる。この構成を設けることで、ロボットを動作させるときの姿勢ごとのモータの応答の違いや通信遅れなどによる同期に起因する誤差を加味したスレーブ軌跡を学習する事が出来るため、より精度の高いスレーブロボットの軌跡を学習する事が出来る。
【００８０】
なお、ユーザによって３以上の指令値が与えられると、指令値のうちの動作開始位置と動作終了位置との間の軌道がこれらの中間に位置する指令値の近傍を通るように近似的に軌道を決定する補間方法がロボット制御方法として一般に知られている(例えば、特許文献３参照)。この技術によれば、ユーザによって与えられた指令値に基づいてロボット制御装置が算出する軌道は、指令値上を通るとは限らない。実施の形態２によれば、動的に変換行列を生成することができるので、このような技術が適用される場合であっても手先にかかる作用力が小さくなる軌跡でロボット１０ａ、１０ｂを協調動作せしめることができる。ただし、この場合、マスターロボットの指令値記憶手段から出力される指令値については、前記補間方法を適用した場合の、補間処理後の指令値を指令値として指令値生成手段３１１に入力する。また、その場合、変換行列生成手段３００では、実施の形態１で記載の通り、教示作業時に取得したデータを用いて演算される指令値生成手段３１１取得したスレーブロボットの指令値を用いて、スレーブロボットも同様に補間処理を実施した後の指令値を補正指令値生成手段１０１ｂに出力する。結果として、当該補間方法を実施する場合には、動作前に得られている変換行列が当該補間方法を実施しない場合とは異なる。
【００８１】
また、マスター制御装置２１ａは、演算周期毎の指令値を駆動制御手段１０３ａに出力する際に、フィルタ処理を施すようにしてもよい。演算周期毎の指令値にフィルタ処理が施される場合には、実際に通過する軌道上の位置と補間指令値にずれが生じる。この場合、マスター制御装置２１ａは、現在位置を学習用指令値とするが、スレーブ制御装置２１ｂは、補正後の指令値を、フィルタ処理を施さずに駆動制御手段１０３ｂに出力する。あるいはスレーブ制御装置２１ｂは、フィルタ処理後の指令値が現在位置となるような指令値を、近似的に算出するようにしてもよい。
【００８２】
実施の形態３．
実施の形態３によれば、同期駆動時の速度設定値(ここではオーバーライドをいうが、代表位置における速度指令値であってもよい)と第２の変換行列関数とを対応付けて記録される。速度指令値が、記録されている速度指令値から変更されると、予め記録された第２の変換行列関数に基づいて、変更後の速度指令値に対応する第２の変換行列関数が算出され、算出された新たな第２の変換行列関数が更新後の速度指令値を用いた同期駆動に供される。これにより、ユーザは、予め速度設定値を変えて複数回の自動運転を試験的に実行し、速度設定値毎の第２の変換行列関数をロボット制御装置に記録せしめることで、以降の自動運転においては、記録された第２の変換行列関数に基づいて同期駆動に用いる第２の変換行列関数を算出せしめることができるようになるので、実施の形態２のようにロボット間の位置関係が収束されるまでにかかる時間よりも短い時間で制御を安定せしめることができるようになる。
【００８３】
以下、速度設定値がゼロ値であるときの第２の変換行列関数をE1T’E2((k,k+1)ovrd=0)、速度設定値がａであるときの第２の変換行列関数をE1T’E2((k,k+1)ovrd=a)、速度設定値がｂ(ｂ＞ａ)であるときの第２の変換行列関数をE1T’E2((k,k+1)ovrd=b)のように夫々表記して、これらの３つの第２の変換行列関数からスレーブ制御装置において通常運転時に適用される第２の変換行列関数を求める手法を説明する。なお、第１の変換行列関数は、速度設定値がゼロ値である場合の第２の変換行列関数E1T’E2((k,k+1)ovrd=0)と等しい。
【００８４】
式７および式１４を用いて、Pkにおける変換行列からPk+1における変換行列に移行する際の変換行列同士の誤差分を考える。速度設定値がaのときの変換の誤差分ΔT(k,k+1,ovrd=a)は次式のように記述できる。
ΔT(k,k+1,ovrd=a)=[ΔR(１)_a,ΔPk_a;
zero(1,3),1]    (１７)
【００８５】
また、速度設定値がｂのときの変換の誤差分ΔT(k,k+1,ovrd=a)は次式のように記述できる。
ΔT(k,k+1,ovrd=a)=[ΔR(１)_b,ΔPk_b;
zero(1,3),1]    (１８)
【００８６】
速度変化によって学習用変換行列が不変であれば、速度設定値を変更しても誤差の出方が変わらないことになるため、スレーブ制御装置においてはいずれかの速度設定値で学習した変換行列関数をそのまま使用することが可能である。しかしながら、各軸の応答の影響またはフィルタの影響などがある場合を含めて、速度変化によって手先位置が変化する場合には、上記式１７と式１８の結果に違いが出てくる。この差について考える。
【００８７】
まず回転量の差については、式１７に対応する１軸回転法の回転軸をk_a,回転量をα_aとし、式１８に対応する１軸回転法の回転軸をk_b,回転量をα_bとすると、回転量の変化率Δαは次のように表せる。なお、軸方向は大きく変わらないものと仮定して、近似的にk_aにおける回転軸を採用するものとする。
Δα(x)=(αb-αa)/(b-a)*(x-a)    (１９)
ΔP((k,k+1),x)=(ΔPk_b-ΔPk_a)/(b-a)*(x-a)    (２０)
【００８８】
速度が大きくなるにつれて発生する誤差が一定の割合で大きくなるという仮定をすると、上記式１９、式２０から求められる値を使って、速度設定値がaであるときの第２の変換行列関数を基準とすることで、スレーブ制御装置は、どのような速度設定値(オーバーライド)で通常運転する際であっても速度に応じて発生する誤差を解消する第２の変換行列関数を求めることができる。
【００８９】
図１２は、本発明の実施の形態３のロボット制御系の構成を説明する図である。なお、ここでは、実施の形態１と同じ構成要素には実施の形態１と同一の符号を付して、重複する説明を省略する。
【００９０】
図１２に示すように、マスター制御装置２２ａは、指令値記憶手段１００、補正量生成手段１０２ａ、補正指令値生成手段１０１ａ、駆動制御手段１０３ａ、および、現在位置検出手段１０４ａを備えている。補正量生成手段１０２ａは、作用力演算手段１０５ａ、補正量演算手段１０６ａ、および補正量記憶手段１０７ａを備えている。ここで、マスター制御装置２２ａは、試験運転を行っている際、現在位置検出手段１０４ａが検出した現在位置を位置関係演算装置３２に出力する。
【００９１】
位置関係演算装置３２は、変換行列生成手段４００と、Ｎ個の学習用変換行列を記憶する変換行列記憶手段４０１と、変換行列関数生成手段４０２と、試験運転速度設定手段４０３と、を備えている。変換行列生成手段４００、変換行列記憶手段４０１、および変換行列関数生成手段４０２は、準備処理において実施の形態１における対応する構成要素と同様の処理を実行して、実施の形態１における変換行列関数(第１の変換行列関数３０３)を生成する。
【００９２】
また、試験運転中においては、試験運転速度設定手段４０３は、速度設定値の入力を受け付ける。そして、現在位置検出手段１０４ａ、１０４ｂが検出した夫々の現在位置に基づいて、変換行列生成手段４００、変換行列記憶手段４０１、および変換行列関数生成手段４０２は、動的に変換行列関数(第２の変換行列関数)を生成し、生成した第２の変換行列関数を試験運転速度設定手段４０３に入力された速度設定値と対応づけてスレーブ制御装置２２ｂに出力する。なお、ここでは、速度設定値毎の第２の変換行列関数に符号４０４を付して実施の形態２の第２の変換行列関数３０４と区別する。
【００９３】
スレーブ制御装置２２ｂは、変換行列関数記憶手段４１０、指令値生成手段４１１、通常運転速度設定手段４１２、補正量生成手段１０２ｂ、補正指令値生成手段１０１ｂ、駆動制御手段１０３ｂ、および現在位置検出手段１０４ｂを備えている。補正量生成手段１０２ｂは、補正量生成手段１０２ａと同等の構成を備えている。
【００９４】
図１３は、変換行列関数記憶手段４１０のメモリ構成を説明する図である。図示するように、変換行列関数記憶手段４１０は、位置関係演算装置３２が算出した第１の変換行列関数３０３および速度設定値毎の第２の変換行列関数４０４を記憶する。
【００９５】
ここで、通常運転速度設定手段４１２は、通常運転時において、速度設定値の入力を受け付ける。通常運転時に入力される速度設定値は、試験運転時に入力された速度設定値と異なるものであってもよい。指令値生成手段４１１は、通常運転速度設定手段４１２が取得した速度設定値と、変換行列関数記憶手段４１０に格納されている速度設定値毎の第２の変換行列関数４０４(および第１の変換行列関数３０３)とに基づいて、式１９および式２０を用いて速度に応じた誤差を位置補正しながら変換行列を算出する。そして、指令値記憶手段１００から取得したエンドエフェクタ１１ａに対するTm番目指令値に前記算出した変換行列を作用させて、エンドエフェクタ１１ｂに対するTm番目指令値を算出する。
【００９６】
このように、本発明の実施の形態３によれば、ロボット制御装置は、同期駆動時に速度設定値の入力を受け付ける速度設定値入力部としての通常運転速度設定手段４１２と、予め速度設定値毎の第２の変換行列関数４０４を記憶する位置関係行列関数記憶部としての変換行列関数記憶手段４１０と、を備え、指令値生成手段４１１は、変換行列関数記憶手段４１０に格納されている第２の変換行列関数を読み出して、入力された速度設定値に基づいて補正し、補正後の第２の変換行列関数を用いてスレーブロボット１０ｂにかかる演算周期毎の指令値を算出する、ように構成したので、生産システムの立ち上げ時に、全体の速度設定値を徐々に増加させていく際に、予め記録した情報を用いてロボット１０ａ、１０ｂ間の最適な位置関係を推定することができるので、第２の実施の形態よりも立ち上げ時間を短縮せしめることができるようになる。
【００９７】
実施の形態４．
実施の形態４によれば、補正量演算手段１０２ａ、１０２ｂは、インピーダンス特性を考慮したインピーダンス制御を実施する。インピーダンス制御とはハンドと環境の間にバネ・ダンパが接続しているモデルを導入し、所望のインピーダンスを定義して手先位置を制御する方法である。実施の形態４によれば、実施の形態１で説明した補正量生成手段１０２ａ、１０２ｂによる補正量の生成手法が変更されるが、実施の形態１によって得られる効果と同じ効果が得られる。
【００９８】
さらに、実施の形態４によれば、インピーダンス制御を用いることで、作業対象との力学的な関係を規定できるため、ロボット１０ａ、１０ｂ同士やワークへの過負荷状態が発生しにくいように調整した状態で、軌跡の学習を実施する事が出来る。
【００９９】
実施の形態５．
実施の形態１〜３に記載のロボット制御装置において、補正量生成手段１０２ａ、１０２ｂは、手先にかかる作用力の変わりに、距離センサーによる測定距離を用いて補正量を演算するようにしてもよい。具体的には、ロボット１０ａ、１０ｂあるいは生産システムのジグに距離センサーを取り付けてロボットやワークとの間の距離を計測してロボット１０ａ、１０ｂの手先位置間の相対距離を算出し、相対距離が所望の距離から乖離する場合には、両者を一致せしめるべく補正量を生成する。なお、ロボット１０ａ、１０ｂ間の相対距離の算出方法は任意である。例えば、ロボット１０ａとワークとの間の相対距離と、ロボット１０ｂとワークとの間の相対距離とを距離センサーにより測定し、ロボット１０ａとロボット１０ｂとの間の距離を求めるようにしてよい。また、ロボット１０ａとロボット１０ｂとの間の距離を距離センサーにより直接的に測定できるようにしてもよい。
【０１００】
非接触であるが、一定距離を保ったまま作業をする必要があるような協調動作をロボットあるいは周辺駆動装置が実施する場合に、この構成を適用することで、作業対象に対して理想的な位置関係を保つようなスレーブロボット１０ｂの軌跡を学習することができる。
【０１０１】
実施の形態６．
実施の形態２、３、５に記載のロボット制御装置によれば、補正量生成手段１０２a、１０２ｂは、同じ教示点においても試行ごとに変動する補正量を利用して学習を進めるため、収束性が保証されない場合がある。これに対して、変換行列生成手段２００にて生成される変換行列に対して、k+1回目に取得した変換行列をuk+1、k回目に取得した変換行列をu、k回目とk+1回目に取得した変換行列の変化分を変化量q、k回目とk+1回目の変化量を制御周期で割った変化率q（・）を算出し、それらを忘却因子つき学習制御法（非特許文献１参照）を使い、算出される補正量に変動がある場合にも、安定に収束するように構成することができる。
【０１０２】
実施の形態７．
実施の形態７においては、Ｎ個の位置補正前の指令値の夫々に、複数サイクル分の補正量の平均値が加算されることによって学習用指令値が生成される。ここでは、学習用指令値を第１学習用指令値と呼称する。また、複数サイクル分の補正量の平均値が加算されることによって第１学習用指令値が生成される、位置補正前の指令値を、第２学習用指令値と呼称する。なお、実施の形態７では、一例として、エンドエフェクタ１１ａの指令軌跡を演算周期毎に定義するＭ個の位置指令値のうちの、教示点または教示点の近傍の指令値が、第２学習用指令値として用いられるものとする。
【０１０３】
図１４は、本発明の実施の形態７の位置関係演算装置を用いたロボット制御系を説明する図である。ここでは、実施の形態１〜３と同じ構成要素には実施の形態１〜３と同一の符号を付して、重複する説明を省略する。
【０１０４】
図１４に示すように、マスター制御装置２３ａは、指令値記憶手段１００、補正量生成手段１１０ａ、補正指令値生成手段１０１ａ、駆動制御手段１０３ａ、および、現在位置検出手段１０４ａを備えている。補正量生成手段１１０ａは、作用力演算手段１０５ａ、補正量演算手段１０６ａ、および補正量記憶手段１１１ａを備えている。ここで、自動運転中に、補正量記憶手段１１１ａは、Ｎ個の指令値の夫々について、最も新しく演算されたＲ個の補正量を蓄積記憶する。補正量記憶手段１１１ａは、Ｍ個の第２学習用指令値の夫々についても、最も新しく演算されたＲ個の補正量を記憶する。なお、Ｒは例えば予め設定される２以上の整数である。Ｍ個の第２学習用指令値の夫々にかかるＲ個の補正量は、位置関係演算装置３３によって読み出される。また、指令値記憶手段１００に記憶されている第２学習用指令値は、位置関係演算装置３３によって読み出される。また、補正指令値生成手段１０１ａによって生成された演算周期毎の補正指令値は、スレーブ制御装置２３ｂに送信される。第２学習用指令値は、補正指令値生成手段１０１ａによって補正された後にスレーブ制御装置２３ｂに送信される。
【０１０５】
なお、指令値記憶手段１００に記憶されている第２学習用指令値を、エンドエフェクタ１１ａに対する第２学習用指令値と呼称することによって後述のエンドエフェクタ１１ｂに対する第２学習用指令値と区別する。
【０１０６】
位置関係演算装置３３は、変換行列生成手段５００、変換行列記憶手段３０１、および変換行列関数生成手段３０２、を備えている。変換行列生成手段５００は、エンドエフェクタ１１ａに対するＮ個の第２学習用指令値と、エンドエフェクタ１１ｂに対するＮ個の第２学習用指令値と、エンドエフェクタ１１ａに対するＮ個の第２学習用指令値に対して演算された最も新しいＲセットの補正量の平均値と、エンドエフェクタ１１ｂに対するＮ個の第２学習用指令値に対して演算された最も新しいＲセットの補正量の平均値と、に基づいてＮ個の変換行列を生成する。変換行列記憶手段３０１は、変換行列生成手段５００が生成したＮ個の学習用変換行列を記憶する。変換行列関数生成手段３０２は、自動運転時において、現在位置検出手段１０４ａ、１０４ｂが検出した夫々の現在位置に基づいて、動的に変換行列関数(第２の変換行列関数)を生成する。
【０１０７】
なお、変換行列関数生成手段３０２は、準備処理において、実施の形態１における対応する構成要素と同様の処理を実行して、実施の形態１における変換行列関数(第１の変換行列関数)を生成する。ここでは、説明を簡単にするために、準備処理においてＮ個の変換行列が生成されるための構成の説明およびデータの入出力関係の図示を省略する。
【０１０８】
スレーブ制御装置２３ｂは、変換行列関数記憶手段３１０、指令値生成手段５１１、補正量生成手段１１０ｂ、補正指令値生成手段１０１ｂ、駆動制御手段１０３ｂ、および現在位置検出手段１０４ｂを備えている。
【０１０９】
指令値生成手段５１１は、補正指令値生成手段１０１ａから送られてきた演算周期毎の補正指令値と変換行列関数記憶手段３１０が記憶する第２の変換行列関数３０４とに基づいてエンドエフェクタ１１ｂの軌跡を定義するＭ個の指令値を生成する。具体的には、指令値生成手段５１１は、第２の変換行列関数３０４に基づいて、変換行列をエンドエフェクタ１１ａに対する補正指令値毎に生成する。そして、指令値生成手段５１１は、生成した変換行列を補正指令値生成手段１０１ａから送られてきた演算周期毎の補正指令値に作用させて、演算周期毎の、エンドエフェクタ１１ｂに対する指令値を生成する。指令値生成手段５１１は、補正指令値生成手段１０１ａによって補正された第２学習用指令値と第２の変換行列関数３０４とに基づいてエンドエフェクタ１１ｂに対する第２学習用指令値を生成する。指令値生成手段５１１は、生成したエンドエフェクタ１１ｂに対する第２学習用指令値を位置関係演算装置３３に送信する。
【０１１０】
補正量生成手段１１０ｂは、作用力演算手段１０５ｂ、補正量演算手段１０６ｂ、および補正量記憶手段１１１ｂを備えている。補正量記憶手段１１１ｂは、指令値生成手段５１１が生成したＭ個の指令値の夫々について、最も新しく算出された所定の数（Ｒ個）の補正量を蓄積記憶する。指令値生成手段５１１が生成したＭ個の指令値のうちの、エンドエフェクタ１１ａに対する第２学習用指令値に対応するエンドエフェクタ１１ｂに対する指令値は、位置関係演算装置３３に送信される。なお、エンドエフェクタ１１ａに対する第２学習用指令値に対応するエンドエフェクタ１１ｂに対する指令値を、エンドエフェクタ１１ｂに対する第２学習用指令値ということとする。
【０１１１】
次に、変換行列生成手段５００が学習用変換行列を生成する手法を説明する。rob1T'E1とのうちの補正量の成分をΔTk1、rob2T'E2のうちの補正量の成分をΔTk2と定義する。即ち、ΔTk1は、rob1T'E1とrob1TE1との差分であり、ΔTk2は、rob2T'E2とrob2TE2との差分である。従って、ΔTk1、ΔTk2は夫々次のように表現できる。
ΔTk1＝[rob1R'E1(rob1RE1)-1,rob1P'E1−rob1PE1;
zero(1,3),1]              （２１）
ΔTk2＝[rob2R'E1(rob2RE2)-1,rob2P'E2−rob2PE2;
zero(1,3),1]              （２２）
ただし、式（１）と同様に、rob1TE1、rob2TE2、rob1T'E1、およびrob2T'E2は次のように表現される。
robiT'Ei(ｉ＝1、2)=[rob1R'Ei,rob1P'Ei;
zero(1,3),1]              （２３）
robiTEi(ｉ＝1、2)=[rob1REi,rob1PEi;
zero(1,3),1]              （２４）
【０１１２】
変換行列生成手段５００は、エンドエフェクタ１１ａに対する第２学習用指令値の夫々についてＲ個の補正量の平均を演算することによって、エンドエフェクタ１１ａに対する第２学習用指令値の夫々に対する補正量の平均値ΔTk1_mを算出する。また、変換行列生成手段５００は、エンドエフェクタ１１ｂに対する第２学習用指令値の夫々についてＲ個の補正量の平均を演算することによって、エンドエフェクタ１１ｂに対する第２学習用指令値の夫々に対する補正量の平均値ΔTk2_mを算出する。そして、変換行列生成手段５００は、算出した平均値ΔTk2_i(i=1,2)を対応する第２学習用指令値に加算することによって、第１学習用指令値を算出する。
【０１１３】
具体的には、変換行列生成手段５００は、ΔTki_m(i=1,2)と次の式（２５）とを用いることによって、回転成分ΔRki_mと並進成分ΔPki_mとを算出する。
ΔTki_m＝[ΔRki_m,ΔPki_m;
zero(1,3),1]              （２５）
【０１１４】
そして、変換行列生成手段５００は、式（２６）に回転成分ΔRki_mと並進成分ΔPki_mとを代入することによって第１学習用指令値robiT''Ei,i=1,2を算出する。
robiT''Ei,i=1,2＝[robiREi,i=1,2ΔRki_m,  robiPEi,i=1,2＋ΔPki_m;
zero(1,3),1]              （２６）
【０１１５】
そして、変換行列生成手段５００は、第１学習用指令値robiT''Ei,i=1,2と次の式（２７）とを用いて実施の形態７の学習用変換行列E1T''E2(k),k=1,2,...,Nを演算する。
E1T''E2＝(wldTrob1rob1T''E1)-1 wldTrob2rob2T''E2      (２７)
【０１１６】
なお、最も新しいＲ個の補正量の平均値が第２学習用指令値に加算されることによって第１学習用指令値が算出されるとして説明したが、第２学習用指令値に加算される補正量は、Ｒ個の補正量を代表する値であればよく、平均値だけに限定されない。例えば、Ｒ個の補正量の中間値、最頻値、重み付け平均値などが、第２学習用指令値に加算される補正量として採用可能である。
【０１１７】
補正量演算手段１０６ａ、１０６ｂは、例えば、インピーダンス制御系または力制御系の制御系を有する。インピーダンス制御系または力制御系は、特許文献４に示されるように、積分器を有する。したがって、インピーダンス制御系または力制御系は、T1番目補正量〜Tm-1番目補正量を用いて、Tm番目補正量を算出する。実施の形態７によれば、Ｒ個のTm番目補正量を用いて誤差のあわせこみが実行されるので、誤差のあわせこみの精度が向上する。その結果、同期駆動中の複数ロボットの実軌跡上のどの位置においても、把持ワークに掛かる負荷をより低減することが可能となる。
【０１１８】
また、自動運転中の作用力は、速度、温度などの諸条件に起因して変化する。実施の形態７によれば、最も新しく演算されたＲ個の補正量が平均処理されて得られた補正量を用いて第１学習用指令値が生成されるので、諸条件に起因して変化する作用力を漸近的に低減することができる。
【０１１９】
以上述べたように、本発明の実施の形態７によれば、補正指令値生成手段１０１ａ、１０１ｂ、補正量生成手段１１０ａ、１１０ｂ、および変換行列生成手段５００は、協働して、演算周期毎の指令値に含まれる第２学習用指令値の夫々について、当該第２学習用指令値と、当該第２学習用指令値に対する最も新しい所定サイクル分の補正量の代表値と、に基づいて第１学習用指令値を算出する。そして、変換行列生成手段５００は、第１学習用指令値毎に学習用変換行列を生成する。これにより、第１学習用指令値は、T1番目補正量〜Tm-1番目補正量を用いてTm番目補正量が算出される方式に比べて精度が高い方法で誤差があわせこまれて生成される。また、第１学習用指令値は、自動運転中の諸条件の変動に基づく誤差の変動を考慮して生成される。したがって、エンドエフェクタ１１ａ、１１ｂに発生する作用力を可及的に小さくすることができる。
【０１２０】
なお、以上の説明においては、自動運転時に演算された最も新しいＲサイクル分の補正値を用いて第２の変換行列関数３０４が生成される、として説明した。Ｒサイクル分の準備処理が実行され、第１の変換行列関数３０３は、Ｒサイクル分の準備処理により得られた補正値を用いて、第２の変換行列関数３０４と同様の手順で生成されるようにしてもよい。
【０１２１】
また、図１５に示すように、指令値生成手段５１１は、指令値記憶手段１００からエンドエフェクタ１１ａに対する演算周期毎の指令値を読み出して、補正量記憶手段１１１ａから演算周期毎の指令値に対するＲセット分の補正量を読み出して、読み出した指令値と読み出したＲセット分の補正量の平均値とを合算することによってエンドエフェクタ１１ｂに対する演算周期毎の指令値を生成するようにしてもよい。このようにすることによって、エンドエフェクタ１１ａの補正指令値が大きく変動したとしても、エンドエフェクタ１１ｂの演算周期毎の指令値に対するエンドエフェクタ１１ａの補正指令値の変動の影響を小さくすることができる。
【０１２２】
実施の形態８．
実施の形態８においては、演算周期毎の指令値のうちの、作用力に関する所定の条件を満たす指令値が、第２学習用指令値として選択される。
【０１２３】
図１６は、本発明の実施の形態８の位置関係演算装置を用いたロボット制御系を説明する図である。ここでは、実施の形態７と同じ構成要素には実施の形態７と同一の符号を付して、重複する説明を省略する。
【０１２４】
図示するように、実施の形態８のマスター制御装置２４ａは、図１４を用いて説明した実施の形態７のマスター制御装置２３ａに学習用指令値選択手段６００が追加された構成を有している。実施の形態８の位置関係演算装置３３およびスレーブ制御装置２３ｂは、夫々、図１４を用いて説明した対応する装置と同様の構成を有している。
【０１２５】
学習用指令値選択手段６００は、指令値記憶手段１００が記憶するＭ個の演算周期毎の指令値のうちから、作用力に関する所定の条件を満たすＮ個の第２学習用指令値を選択する。補正量は、作用力の増減に応じて増減する。ここでは、学習用指令値選択手段６００は、補正量演算手段１０６ａが算出した補正量を特徴量として用いて、Ｎ個の第２学習用指令値を選択する。
【０１２６】
なお、学習用指令値選択手段６００は、補正量をどのように用いて第２学習用指令値を選択してもよい。例えば、学習用指令値選択手段６００は、補正量または／および補正量の変化率が所定のしきい値を越える指令値を第２学習用指令値として選択してもよい。これにより、作用力または作用力の変化率が特に大きくなる指令値が第２学習用指令値に設定される。
【０１２７】
また、学習用指令値選択手段６００は、補正量以外の量を特徴量として第２学習用指令値を選択するようにしてもよい。以下に、補正量以外の量を特徴量とする場合の選択手法を列挙する。
【０１２８】
例えば、学習用指令値選択手段６００は、作用力演算手段１０５ａが演算した作用力を特徴量として用いてもよい。学習用指令値選択手段６００は、作用力または／および作用力の変化率が所定のしきい値を超える指令値を第２学習用指令値として選択する。
【０１２９】
また、学習用指令値選択手段６００は、演算周期毎の指令値を特徴量として用いてもよい。例えば、学習用指令値選択手段６００は、所定の位置条件を満たす指令値を第２学習用指令値として選択する。軌道上において作用力または作用力の変化率が大きくなる位置がロボットの機構に基づいて予め判明している場合がある。その場合には、軌道上における作用力または作用力の変化率が大きくなる位置が位置条件として学習用指令値選択手段６００に予め設定される。学習用指令値選択手段６００は、位置条件として設定された位置に位置決めするための指令値を第２学習用指令値として選択する。なお、軌道上の範囲が位置条件として設定されてもよい。
【０１３０】
また、学習用指令値選択手段６００は、演算周期毎の指令値または演算周期毎の現在位置からモータ速度を算出し、モータ速度を特徴量として用いてもよい。学習用指令値選択手段６００は、モータ速度またはモータ速度の変化率が大きい位置を検出し、その検出した位置に位置決めするための指令値を第２学習用指令値として選択する。これにより、軌道上における遠心力またはコリオリ力によって作用力が大きくなるような位置に対応する指令値が第２学習用指令値として選択される。
【０１３１】
また、学習用指令値選択手段６００は、指令値または姿勢位置の、単位時間当たりの変化量を特徴量として用いてもよい。
【０１３２】
また、学習用指令値選択手段６００は、指令値が使用される時刻を特徴量として用いてもよい。指令値記憶手段１００から演算周期毎の指令値が逐次読み出され、読み出された指令値に基づく補正指令値が駆動制御手段１０３ａに逐次供給される。作用力が時間的な条件に基づいて変動する場合には、学習用指令値選択手段６００は、作用力または作用力の変動が大きくなる時刻に基づいて第２学習用指令値を選択するようにしてもよい。例えば、学習用指令値選択手段６００は、指令値記憶手段１００から演算周期毎の指令値が読み出された時刻が、予め設定された時刻条件を満たす場合に、その指令値を第２学習用指令値として選択する。
【０１３３】
なお、実施の形態５において説明したように距離に基づいて補正量が算出される場合には、学習用指令値選択手段６００は、補正量の大きさ、補正量の変化率、または、補正前後における距離の差分と、所定のしきい値と、の比較に基づいて第２学習用指令値を選択するようにしてもよい。
【０１３４】
また、学習用指令値選択手段６００は、以上に列挙した選択手法を組み合わせて第２学習用指令値を選択するようにしてもよい。
【０１３５】
図１７は、比較例にかかるロボット制御系によって協調作業が行われた場合の、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。ここで、t[s]は時間を、x[mm]はエンドエフェクタの位置を、Fx[N]はエンドエフェクタにかかる作用力を、Fxlim[N]は作用力の許容値を、夫々示している。本図に示されるように、比較例によれば、エンドエフェクタの位置の変化に応じて誤差が変化し、誤差に応じて作用力Fxが大きくなってしまう。また、速度が速くなる場合など、動的な影響で誤差量が変わる場合、作用力Fxがさらに大きくなってしまう。
【０１３６】
図１８は、比較例にかかるロボット制御系にインピーダンス制御が適用された場合の、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。インピーダンス制御が適用されることによって、図１７に示した場合に比べて各位置における作用力Fxが低減される。しかしながら、軌道上の部位毎に制御パラメータを調整することは難しいため、姿勢が変化する場合や速度が変動するような場合などにおいては、軌道上の全ての位置において作用力FxをFxlimよりも小さくすることが困難である。
【０１３７】
図１９は、実施の形態８のロボット制御系によって協調作業が行われた場合の、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。実施の形態８によれば、作用力または作用力の変化率が大きい位置に位置決めする指令値が第２学習用指令値として選択され、夫々の第２学習用指令値に対してＲ個の補正量の平均値が加算されて第１学習用指令値が生成される。これにより、軌道上の全域にわたって作用力Fxを小さくすることができ、結果として、軌道上のどの位置においても作用力FxをFxlimよりも小さくすることが可能となる。
【０１３８】
以上述べたように、本発明の実施の形態８によれば、学習用指令値選択手段６００は、指令値記憶手段１００が記憶するエンドエフェクタ１１ａに対するＭ個の演算周期毎の指令値のうちから、作用力に関する所定の条件を満たすＮ個の第２学習用指令値を選択する。指令値生成手段５１１は、選択されたエンドエフェクタ１１ａに対する第２学習用指令値に基づいてエンドエフェクタ１１ｂに対する第２学習用指令値を生成する。これにより、エンドエフェクタ１１ａ、１１ｂに発生する作用力または作用力の変化率が特に大きくなる位置において作用力が小さくなるように学習用変換行列が生成されるので、エンドエフェクタ１１ａ、１１ｂに発生する作用力をさらに小さくすることが可能となる。
【０１３９】
なお、実施の形態１〜７の説明においては、ロボット１０ａ、１０ｂのタイプは６自由度垂直多関節型ロボットであるものとして説明しているが、ロボット１０ａ、１０ｂのタイプはこれに限定されない。ロボット１０ａ、１０ｂのタイプは例えば水平多関節型ロボットまたは直動ロボットであってもよい。
【産業上の利用可能性】
【０１４０】
以上のように、本発明にかかるロボット制御装置およびロボット制御方法は、複数のロボットをロボット間で同期させながら駆動するロボット制御装置およびロボット制御方法に適用して好適である。
【符号の説明】
【０１４１】
１０ａ  マスターロボット、１０ｂ  スレーブロボット、１１ａ，ｂ  エンドエフェクタ、１２ａ，ｂ  据付け台、２０ａ，２１ａ，２２ａ，２３ａ，２４ａ，４０ａ  マスター制御装置、２０ｂ，２１ｂ，２２ｂ，２３ｂ，４０ｂ  スレーブ制御装置、３０，３１，３２，３３，５０  位置関係演算装置、１００  指令値記憶手段、１０１ａ，ｂ  補正指令値生成手段、１０２ａ，ｂ  補正量生成手段、１０３ａ，ｂ  駆動制御手段、１０４ａ，ｂ  現在位置検出手段、１０５ａ，ｂ  作用力演算手段、１０６ａ，ｂ  補正量演算手段、１０７ａ，ｂ  補正量記憶手段、１０８，３１１，５１１  指令値生成手段、１０９  変換行列記憶手段、１１０ａ，ｂ  補正量生成手段、１１１ａ，ｂ  補正量記憶手段、２００，３００，４００，５００  変換行列生成手段、２０１，３０１，４０１  変換行列記憶手段、２０２，３０２，４０２  変換行列関数生成手段、２１０，３１０  変換行列関数記憶手段、２１１  指令値生成手段、３０３  第１の変換行列関数、３０４，４０４  第２の変換行列関数、４０３  試験運転速度設定手段、４１０  変換行列関数記憶手段、４１１  指令値生成手段、４１２  通常運転速度設定手段、６００  学習用指令値選択手段。
【図１】
2014002678.tif 000003
【図２】
2014002678.tif 000004
【図３】
2014002678.tif 000005
【図４】
2014002678.tif 000006
【図５】
2014002678.tif 000007
【図６】
2014002678.tif 000008
【図７】
2014002678.tif 000009
【図８】
2014002678.tif 000010
【図９】
2014002678.tif 000011
【図１０】
2014002678.tif 000012
【図１１】
2014002678.tif 000013
【図１２】
2014002678.tif 000014
【図１３】
2014002678.tif 000015
【図１４】
2014002678.tif 000016
【図１５】
2014002678.tif 000017
【図１６】
2014002678.tif 000018
【図１７】
2014002678.tif 000019
【図１８】
2014002678.tif 000020
【図１９】
2014002678.tif 000021
【手続補正書】
【提出日】平成26年9月30日(2014.9.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
実施の形態４．
実施の形態４によれば、補正量生成手段１０２ａ、１０２ｂは、インピーダンス特性を考慮したインピーダンス制御を実施する。インピーダンス制御とはハンドと環境の間にバネ・ダンパが接続しているモデルを導入し、所望のインピーダンスを定義して手先位置を制御する方法である。実施の形態４によれば、実施の形態１で説明した補正量生成手段１０２ａ、１０２ｂによる補正量の生成手法が変更されるが、実施の形態１によって得られる効果と同じ効果が得られる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１０１
【補正方法】変更
【補正の内容】
【０１０１】
実施の形態６．
実施の形態２、３、５に記載のロボット制御装置によれば、補正量生成手段１０２a、１０２ｂは、同じ教示点においても試行ごとに変動する補正量を利用して学習を進めるため、収束性が保証されない場合がある。これに対して、実施の形態６では変換行列生成手段２００にて生成される変換行列に対して、k+1回目に取得した変換行列uk+1、k回目に取得した変換行列u、k回目とk+1回目に取得した変換行列の変化分である変化量q、k回目とk+1回目の変化量を制御周期で割った変化率q（・）を算出し、それらを忘却因子つき学習制御法（非特許文献１参照）を使い、算出される補正量に変動がある場合にも、安定に収束するように構成することができる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１１２
【補正方法】変更
【補正の内容】
【０１１２】
変換行列生成手段５００は、エンドエフェクタ１１ａに対する第２学習用指令値の夫々についてＲ個の補正量の平均を演算することによって、エンドエフェクタ１１ａに対する第２学習用指令値の夫々に対する補正量の平均値ΔTk1_mを算出する。また、変換行列生成手段５００は、エンドエフェクタ１１ｂに対する第２学習用指令値の夫々についてＲ個の補正量の平均を演算することによって、エンドエフェクタ１１ｂに対する第２学習用指令値の夫々に対する補正量の平均値ΔTk2_mを算出する。そして、変換行列生成手段５００は、算出した平均値ΔTki_m(i=1,2)を対応する第２学習用指令値に加算することによって、第１学習用指令値を算出する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１２９
【補正方法】変更
【補正の内容】
【０１２９】
また、学習用指令値選択手段６００は、演算周期毎の指令値を特徴量として用いてもよい。例えば、学習用指令値選択手段６００は、所定の位置条件を満たす指令値を第２学習用指令値として選択する。軌道上において作用力または作用力の変化率が大きくなる位置がロボットの機構に基づいて予め判明している場合がある。その場合には、軌道上における作用力または作用力の変化率が大きくなる位置が位置条件として学習用指令値選択手段６００に予め設定される。学習用指令値選択手段６００は、位置条件として設定された位置にロボットを位置決めするための指令値を第２学習用指令値として選択する。なお、軌道上の範囲が位置条件として設定されてもよい。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１３７
【補正方法】変更
【補正の内容】
【０１３７】
図１９は、実施の形態８のロボット制御系によって協調作業が行われた場合の、エンドエフェクタにかかる作用力と当該エンドエフェクタの位置との関係を示す図である。実施の形態８によれば、作用力または作用力の変化率が大きい位置にロボットを位置決めする指令値が第２学習用指令値として選択され、夫々の第２学習用指令値に対してＲ個の補正量の平均値が加算されて第１学習用指令値が生成される。これにより、軌道上の全域にわたって作用力Fxを小さくすることができ、結果として、軌道上のどの位置においても作用力FxをFxlimよりも小さくすることが可能となる。
【手続補正６】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１ロボットと前記第１ロボットと異なる第２ロボットとを同期駆動するロボット制御装置であって、
前記第１ロボットと前記第２ロボットとを同期駆動時の夫々の軌跡上に位置決めする位置補正済みの指令値であるロボット当たりにＮ個の第１学習用指令値に基づいて、前記第１ロボットにかかる第１学習用指令値と前記第２ロボットにかかる第１学習用指令値との間の同期駆動時の位置関係を定義する位置関係行列を前記Ｎ個の第１学習用指令値の夫々について生成する位置関係行列生成部と、
前記第１ロボットの軌跡を定義する指令値であるＭ（Ｍ＞Ｎ）個の演算周期毎の第１駆動用指令値を出力する第１指令値出力部と、
前記Ｎ個の位置関係行列を補間して前記第１駆動用指令値毎の位置関係行列を生成する位置関係行列補間部と、
前記Ｍ個の第１駆動用指令値の夫々に前記補間後の対応する位置関係行列を作用させて前記第２ロボットの軌跡を定義する指令値であるＭ個の第２駆動用指令値を生成する第２指令値生成部と、
を備え、前記第１駆動用指令値に基づいて前記第１ロボットを駆動し、前記第２駆動用指令値に基づいて前記第２ロボットを駆動する、
ことを特徴とするロボット制御装置。
【請求項２】
前記第１ロボットおよび前記第２ロボットは、ユーザによりＮセットの教示点の夫々に移動せしめられて静止せしめられ、
前記Ｎセットの教示点の夫々に前記第１ロボットおよび前記第２ロボットが静止せしめられる毎に手先にかかる作用力に基づいて夫々の手先位置の補正を行い、補正後の手先位置または補正後の手先位置に対応する指令値を取得して前記第１学習用指令値に設定する位置補正済み指令値生成部をさらに備える、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記Ｎ個の位置関係行列を補間する位置関係行列関数を生成する位置関係行列関数生成部をさらに備え、
前記位置関係行列補間部は、前記位置関係行列関数に基づいて前記第１駆動用指令値毎の位置関係行列を生成する、
ことを特徴とする請求項２に記載のロボット制御装置。
【請求項４】
前記第１ロボットと前記第２ロボットとは、同一のワークを同時に把持して搬送するロボットであって、
前記第１ロボットまたは前記第２ロボットの手先にかかる作用力を演算する作用力演算部と、
同期駆動時に、前記第１駆動用指令値または前記第２駆動用指令値に対し、前記作用力演算部による演算値に基づいて前記第１ロボットまたは前記第２ロボットの手先にかかる作用力を低減する補正を行う指令補正部と、
同期駆動時に前記第１ロボットおよび前記第２ロボットの位置検出を行う位置検出部と、
同期駆動時に前記Ｎ個の第１学習用指令値をロボット毎に算出する位置補正済み指令値生成部と、
をさらに備えることを特徴とする請求項１に記載のロボット制御装置。
【請求項５】
前記第１ロボットの手先位置および前記第２ロボットの手先位置を演算周期毎に検出する位置検出部をさらに備え、
前記位置補正済み指令値生成部は、前記第１ロボットの手先位置の検出値のうちのＮ個の検出値、および、前記第２ロボットの手先位置の検出値のうちのＮ個の検出値、を前記第１学習用指令値に設定する、
ことを特徴とする請求項４に記載のロボット制御装置。
【請求項６】
前記指令補正部は、同期駆動時に、前記第１駆動用指令値および前記第２駆動用指令値を補正し、
前記Ｍ個の第１駆動用指令値および前記Ｍ個の第２駆動用指令値は、夫々Ｎ個の第２学習用指令値を含み、
前記位置補正済み指令値生成部は、
前記第２学習用指令値の夫々について、当該第２学習用指令値と、当該第２学習用指令値に対する前記指令補正部による最も新しい所定サイクル分の補正量の代表値と、を加算することによって前記第１学習用指令値を算出する、
ことを特徴とする請求項４に記載のロボット制御装置。
【請求項７】
前記Ｍ個の第１駆動用指令値のうちの前記作用力に関する設定条件を満たす駆動用指令値を選択し、前記選択した駆動用指令値を前記第１ロボットの第２学習用指令値に設定する、学習用指令値選択部をさらに備える、
ことを特徴とする請求項６に記載のロボット制御装置。
【請求項８】
前記代表値は、平均値、重み付け平均値、中間値、または、最頻値である、
ことを特徴とする請求項６に記載のロボット制御装置。
【請求項９】
前記Ｎ個の位置関係行列を補間する位置関係行列関数を生成する位置関係行列関数生成部をさらに備え、
前記位置関係行列補間部は、前記位置関係行列関数に基づいて前記第１駆動用指令値毎の位置関係行列を生成する、
ことを特徴とする請求項１乃至請求項８の何れか一項に記載のロボット制御装置。
【請求項１０】
同期駆動時に第１の速度設定値の入力を受け付ける速度設定値入力部と、
前記第１の速度設定値と異なる第２の速度設定値毎に前記Ｎ個の位置関係行列を補間する位置関係行列関数を予め記憶する位置関係行列関数記憶部と、
を備え、
前記位置関係行列補間部は、同期駆動時に、前記位置関係行列関数記憶部が記憶する前記第２の速度設定値毎の位置関係行列関数を読み出して、前記速度設定値入力部に入力された第１の速度設定値に基づいて前記読み出した第２の速度設定値毎の位置関係行列関数を補正し、前記補正後の位置関係行列関数に基づいて前記第１の速度設定値毎の位置関係行列を生成する、
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項１１】
第１ロボットと前記第１ロボットと異なる第２ロボットとを同期駆動するロボット制御方法であって、
前記第１ロボットと前記第２ロボットとを同期駆動時の夫々の軌跡上に位置決めする位置補正済みの指令値であるロボット当たりにＮ個の第１学習用指令値に基づいて、前記第１ロボットにかかる第１学習用指令値と前記第２ロボットにかかる第１学習用指令値との間の同期駆動時の位置関係を定義する位置関係行列を前記Ｎ個の第１学習用指令値の夫々について生成する位置関係行列生成ステップと、
前記第１ロボットの軌跡を定義する指令値であるＭ（Ｍ＞Ｎ）個の演算周期毎の第１駆動用指令値を出力する第１指令値出力ステップと、
前記Ｎ個の位置関係行列を補間して前記第１駆動用指令値毎の位置関係行列を生成する位置関係行列補間ステップと、
前記Ｍ個の第１駆動用指令値の夫々に前記補間後の対応する位置関係行列を作用させて前記第２ロボットの軌跡を定義する指令値であるＭ個の第２駆動用指令値を生成する第２指令値生成ステップと、
前記第１駆動用指令値に基づいて前記第１ロボットを駆動し、前記第２駆動用指令値に基づいて前記第２ロボットを駆動する、同期駆動ステップと、
を備える、
ことを特徴とするロボット制御方法。
【国際調査報告】
2014002678.tif 000022
2014002678.tif 000023