(57)【特許請求の範囲】
【請求項１】
自動化作業セル（２）を制御する方法であって、当該制御する方法が：
幾つかの運動制御軸（Ａ１〜Ａ６；Ｘ，Ｙ，Ｚ，Ｒｘ，Ｒｙ，Ｒｚ）にしたがって制御される、少なくとも３自由度を有する少なくとも１つのロボットアーム（４）と、
プログラムに基づいて前記運動制御軸に応じて前記ロボットアームを制御するための命令（Ｃ１ｉ）を生成して送信するために適合されたコントロールセンタ（８）と、
前記コントロールセンタ（８）によって送信された前記命令に基づいて、それぞれのモータ制御器（６１〜６６）が、前記ロボットアーム（４）の少なくとも一部を操縦できるモータ（Ｍ１〜Ｍ６）の機能を制御し、当該幾つかのモータ制御器（６１〜６６）を有する、前記ロボットアーム（４）を制御する制御装置（６）と、
前記コントロールセンタ（８）と前記ロボットアーム（４）の前記制御装置との間で通信するためのバス（１４）とを有する当該制御する方法において、
ａ）命令を受信し、当該命令にしたがって少なくとも１つのモータを制御すると仮定される仮想軸制御装置を、前記ロボットアーム（４）の各運動制御軸（Ａ１〜Ａ６；Ｘ，Ｙ，Ｚ，Ｒｘ，Ｒｙ，Ｒｚ）に関連付けることから成るステップと、
ｂ）前記コントロールセンタ（８）で、前記ロボットアーム（４）の各運動制御軸（Ａ１〜Ａ６；Ｘ，Ｙ，Ｚ，Ｒｘ，Ｒｙ，Ｒｚ）に対して、これらの軸の各々に対応する前記仮想軸制御装置のために意図された前記命令（Ｃ１ｉ）を決定することから成るステップと、
ｃ）ステップｂ）で決定された前記命令（Ｃ１ｉ）を、前記ロボットアーム（４）を制御する前記制御装置（６）に属する単一の演算器（１０）に送信することから成るステップとを有することを特徴とする制御する方法。
【請求項２】
前記ロボットアーム（４）の各運動制御軸は、前記ロボットアームの自由度（Ａ１〜Ａ６）に対応することを特徴とする請求項１に記載の制御する方法。
【請求項３】
前記ロボットアーム（４）の各運動制御軸は、前記ロボットアームの端部を動かす直交座標軸（Ｘ，Ｙ，Ｚ）又は対応する回転（Ｒｘ，Ｒｙ，Ｒｚ）に対応することを特徴とする請求項１に記載の制御する方法。
【請求項４】
前記制御する方法は：
ｄ）前記演算器（１０）内で、前記コントロールセンタ（８）から受信された前記命令（Ｃ１ｉ）から、各モータ制御器（６１〜６６）によって制御される前記モータ（Ｍ１〜Ｍ６）に対する指令（Ｏ１ｉ，Ｏ２ｉ，Ｏ′ｉ）を決定することから成る補助ステップと、  ｅ）各モータ制御器によって制御されるモータ（Ｍ１〜Ｍ６）に対する、ステップｄ）で決定された指令（Ｏ１ｉ，Ｏ２ｉ，Ｏ′ｉ）を、当該各モータ制御器（６１〜６６）に送信することから成る補助ステップとを有することを特徴とする請求項１〜３のいずれか１項に記載の制御する方法。
【請求項５】
前記制御する方法は：
ｆ）各モータ制御器（６１〜６６）が制御する前記モータ（Ｍ１〜Ｍ６）の位置を、当該各モータ制御器（６１〜６６）から前記演算器（１０）に送信することから成る補助ステップと、
ｇ）前記演算器（１０）内で、当該複数のモータの全ての位置に基づいて、前記ロボットアーム（４）の前記運動制御軸の各々の位置（Ｐｉ）を計算することから成る補助ステップと、
ｈ）ステップｇ）で計算された前記運動制御軸の各々の位置（Ｐｉ）を、前記コントロールセンタ（８）に送信することから成る補助ステップとを有することを特徴とする請求項１〜４のいずれか１項に記載の制御する方法。
【請求項６】
前記制御する方法は：
ｉ）前記演算器（１０）内で、当該複数のモータの全ての位置に基づいて、特徴点（Ｂ）の直交座標系速度（Ｖ（Ｂ））を計算することから成る補助ステップと、
ｊ）当該計算された直交座標系速度（Ｖ（Ｂ））を閾値と比較することから成る補助ステップと、
ｋ）前記直交座標系速度（Ｖ（Ｂ））が、前記閾値より大きいときに、警報信号を前記演算器（１０）から前記コントロールセンタ（８）に送信することから成る補助ステップとを有することを特徴とする請求項５に記載の制御する方法。
【請求項７】
前記ロボットアーム（４）の推定される運動に応じて前記運動制御軸の位置（Ｐｉ）を補正するため、前記演算器（１０）は、ステップｇ）の計算中に前記複数のモータ（Ｍ１〜Ｍ６）の位置を測定する時間と、前記ロボットアーム（４）の前記運動制御軸の各々の位置（Ｐｉ）を前記コントロールセンタ（８）に送信する時間とを考慮することを特徴とする請求項５に記載の制御する方法。
【請求項８】
ステップｄ）では、前記コントロールセンタ（８）によって送信された前記命令（Ｃ１ｉ）に応じるために、各モータ（Ｍ１〜Ｍ６）に対して到達されるべき位置を有する運動指令（Ｏ１ｉ）が計算されることを特徴とする請求項４に記載の制御する方法。
【請求項９】
ステップｄ）では、各モータ（Ｍ１〜Ｍ６）に対する前記運動指令（Ｏ１ｉ）の計算は、前記コントロールセンタ（８）によって送信された前記命令（Ｃ１ｉ）に基づいた、各モータに対して供給されるべきトルクの予測（Ｆｉ）を伴うことを特徴とする請求項８に記載の制御する方法。
【請求項１０】
前記コントロールセンタ（８）によって送信された前記命令（Ｃ１ｉ）は、少なくとも１つの運動制御軸（Ａ１〜Ａ６）に対して移送された負荷に関する情報を有することを特徴とする請求項９に記載の制御する方法。
【請求項１１】
前記コントロールセンタ（８）によって送信された前記命令（Ｃ１ｉ）に応じるために各モータ（Ｍ１〜Ｍ６）に対して到達されるべき位置が、当該トルク予測（Ｆｉ）のうちの少なくとも幾つかのトルク予測（Ｆｉ）から計算された前記ロボットアーム（４）の変形に対する補償（Δｉ）を含むことを特徴とする請求項９又は１０に記載の制御する方法。
【請求項１２】
前記制御する方法は：
ｌ）前記ロボットアーム（４）のパワーアップ状態を表す信号（Ｔ０，Ｔ３）を前記コントロールセンタ（８）に送信することから成るステップを有し、当該ステップでは、全ての前記モータ（Ｍ１〜Ｍ６）が、パワーアップされるか又はパワーダウンされて制動されるときだけ、前記ロボットアーム（４）が、機能する準備ができていること又はパワーダウンされることをそれぞれ宣言されることを特徴とする請求項１〜１１のいずれか１項に記載の制御する方法。
【請求項１３】
前記制御する方法は：
ｍ）前記ロボットアーム（４）の全ての部分の機能の状態を表す信号（Ｔ２）を、前記演算器（１０）から前記コントロールセンタ（８）に送信することから成るステップを有し、当該ステップでは、これらの部分のうちの少なくとも１つの部品が機能していないとして検出されたときに、前記ロボットアーム（４）の全ての部分が不良であると宣言されることを特徴とする請求項１〜１２のいずれか１項に記載の制御する方法。
【請求項１４】
前記バス（１４）は、同期通信モードをサポートすることを特徴とする請求項１〜１３のいずれか１項に記載の制御する方法。
【請求項１５】
前記バス（１４）は、ＳＥＲＣＯＳタイプのインタフェースモデル上で機能することを特徴とする請求項１〜１４のいずれか１項に記載の制御する方法。
【請求項１６】
前記コントロールセンタ（８）は、「プロファイルドライブ」ハードウェアプロファイルのコマンドを使用して、前記ロボットアーム（４）の運動制御軸に関連付けられた仮想軸制御装置と通信することを特徴とする請求項１３に記載の制御する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットと、コントロールセンタと、ロボットを制御するためのデバイスと、コントロールセンタとロボットを制御するデバイスとの間で通信するためのバスを備える作業セルを制御する方法に関する。
【背景技術】
【０００２】
ロボットアームの制御の分野において、ロボットの種々の部分を動かすために、コントロールセンタが、モータを制御することができる軸制御装置とバスによって通信することが知られている。こうしたコントロールセンタは、ユーザ又はユーザによって生成されるプログラムによって与えられる運動命令を解釈して、ロボットの運動軸のそれぞれの運動用の命令を規定する。
【０００３】
種々の軸に対するロボットの部分の運動は、使用されるロボットアームのタイプに依存する逆幾何学的モデルを適用することによって、コントロールセンタで計算される。ロボットの種々の部分を効果的に動かすために、ロボットはそれぞれ、軸運動命令に対応する運動を行うように指令される。これらの運動は、低減比及び任意の結合方程式を考慮する、ロボットアームに特有のトランスミッションの運動力学的モデルを適用することによって計算される。軸の運動が、２つ以上のモータのコマンドの結果であることは実際に普通である。
【０００４】
各ロボットが特有の運動力学的特徴を含むため、逆運動力学的モデル及びトランスミッション運動力学的モデルなどの、使用されるロボットのタイプに固有の特徴をコントロールセンタに組込むことが必要である。これは、コントロールセンタに組込まれるプログラムを比較的複雑にさせかつ非常に多用途ではなくさせるという効果を持つ。その理由は、使用されるロボットのタイプが変わる場合、プログラムが修正されなければならないからである。
【０００５】
さらに、コントロールセンタによって使用されるプログラムは、ロボットアームの特異性に関連する運転中の制約を処理しなければならない。そのことは、あるモータに関する各コマンド又はイベントが、ロボットアームの他のモータを巻き込む処理を必要とする場合があることを意味する。たとえば、ロボットアームのモータのうちの１つのモータが故障する場合、他のモータが停止されなければならず、また、ロボットアームの全てのモータが、非稼働中であると宣言されなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
自動化作業セルを制御し、コントロールセンタのプログラミングを簡略化し、種々の軸制御装置との通信速度を改善し、ロボットの制御の精度を改善する新規な方法を提案することによって本発明が是正しようとするのは、これらの欠点である。
【課題を解決するための手段】
【０００７】
そのために、本発明は、自動化作業セルを制御する方法に関し、自動化作業セルは、いくつかの制御軸にしたがって制御される少なくとも３自由度を有する少なくとも１つのロボットアームと、コントロールセンタと、ロボットアームを制御するデバイスであって、ロボットアームの少なくとも一部を操縦することができるモータの機能をそれぞれが制御するいくつかのモータ制御器を含む、デバイスと、コントロールセンタとロボットアームの制御装置との間で通信するためのバスとを含む。本方法は：
自動化作業セル（２）を制御する方法であって、当該制御する方法が：
幾つかの運動制御軸（Ａ１〜Ａ６；Ｘ，Ｙ，Ｚ，Ｒｘ，Ｒｙ，Ｒｚ）にしたがって制御される、少なくとも３自由度を有する少なくとも１つのロボットアーム（４）と、
プログラムに基づいて前記運動制御軸に応じて前記ロボットアームを制御するための命令（Ｃ１ｉ）を生成して送信するために適合されたコントロールセンタ（８）と、
前記コントロールセンタ（８）によって送信された前記命令に基づいて、それぞれのモータ制御器（６１〜６６）が、前記ロボットアーム（４）の少なくとも一部を操縦できるモータ（Ｍ１〜Ｍ６）の機能を制御し、当該幾つかのモータ制御器（６１〜６６）を有する、前記ロボットアーム（４）を制御する制御装置（６）と、
前記コントロールセンタ（８）と前記ロボットアーム（４）の前記制御装置との間で通信するためのバス（１４）とを有する当該制御する方法において、
ａ）命令を受信し、当該命令にしたがって少なくとも１つのモータを制御すると仮定される仮想軸制御装置を、前記ロボットアーム（４）の各運動制御軸（Ａ１〜Ａ６；Ｘ，Ｙ，Ｚ，Ｒｘ，Ｒｙ，Ｒｚ）に関連付けることから成るステップと、
ｂ）前記コントロールセンタ（８）で、前記ロボットアーム（４）の各運動制御軸（Ａ１〜Ａ６；Ｘ，Ｙ，Ｚ，Ｒｘ，Ｒｙ，Ｒｚ）に対して、これらの軸の各々に対応する前記仮想軸制御装置のために意図された前記命令（Ｃ１ｉ）を決定することから成るステップと、
ｃ）ステップｂ）で決定された前記命令（Ｃ１ｉ）を、前記ロボットアーム（４）を制御する前記制御装置（６）に属する単一の演算器（１０）に送信することから成るステップとを有することを特徴とする。
【０００８】
ロボットアームの制御は、運動制御軸、すなわち、ロボットアームの端部の運動を表すことを可能にする長さ又は角度などの幾何学的量の特定に基づく。
【０００９】
本発明によれば、コントロールセンタのプログラマは、ロボットアームの運動を制御する軸のそれぞれを、ロボットアームの一部を形成しない別のモータの軸制御装置の場合と同様な方法でコントロールセンタが通信する独立した軸として考えうる。ロボットの制御装置内に演算器が存在することは、コントロールセンタのプログラミングを簡略化する。その理由は、コントロールセンタが、各ロボットに特有のデータを組込む必要がなく、また、モータ制御器のそれぞれとの通信を管理する必要がないからである。
【００１０】
第１の可能性によれば、ロボットアームの各運動制御軸は、ロボットアームの自由度に対応する。そして、演算器のプログラマは、トランスミッションの運動力学的モデルの知識を持つ必要がない。
【００１１】
第２の可能性によれば、ロボットアームの各運動制御軸は、ロボットアームの端部を動かす直交座標軸又は対応する回転に対応する。そして、コントロールセンタのプログラマは、ロボットアームの逆幾何学的モデルの知識を必要としない。このモデルは、ロボットアーム制御装置に属する演算器において適用される。プログラマは、コントロールセンタによって使用される逆運動力学的モデルを更新する必要なく、ロボットアームタイプを変更することを予想しうる。
【００１２】
本発明の必須ではないが有利な特徴によれば、こうした制御方法は、技術的に許容可能な任意の組合せで考えられる以下の特徴の１つ又は複数を組込むことができる。すなわち、
−方法は、ｄ）演算器において、かつ、コントロールセンタから受信される命令から、各モータ制御器によって制御されるモータに対しての命令を決定する補助ステップと、ｃ）このモータ制御器によって制御されるモータに対して、ステップｄ）にて決定された指令を各モータ制御器に送信する補助ステップとを含む。
【００１３】
ロボットのモータのそれぞれに対しての運動指令の計算を含む命令の決定が、コントロールセンタによって送出される全ての命令を考慮して、ロボットの制御装置に属する演算器において行われるため、ロボット及びロボット作業セルの機能を最適化することが可能である。さらに、演算器は、ロボットアームの特異性によって課される処理オペレーションを使用する。したがって、演算器は、ロボットエンジニアのノウハウの一部を形成する精巧な停止又は開始プロシージャを組込む必要性を、コントロールセンタのプログラマに省かせる。
−方法は、ｆ）各モータ制御器から演算器へ、各モータ制御器が制御するモータの位置を送信する補助ステップと、ｇ）演算器において、かつ、モータの全ての位置に基づいて、ロボットアームの運動制御軸のそれぞれの位置を計算する補助ステップと、ｈ）ステップｇ）にて計算された制御軸のそれぞれの位置をコントロールセンタに送信する補助ステップとを含む。
−方法は、ｉ）演算器において、かつ、モータの全ての位置に基づいて、特徴点の直交座標系速度を計算する補助ステップと、ｊ）計算された直交座標系速度を閾値と比較する補助ステップと、ｋ）直交座標系速度が閾値より大きい場合、警報信号を演算器からコントロールセンタへ送信する補助ステップとを含む。
−有利には、演算器は、ロボットアームの予想される運動に応じてロボットアームの運動制御軸の位置を補正するために、モータの位置の測定時間及びロボットアームの制御軸のそれぞれの位置のコントロールセンタへの送信時間を、ステップｇ）の計算において考慮する。
−ステップｄ）にて、コントロールセンタによって送出される命令に応じるために、各モータに対しての達成される位置を含む運動指令が計算される。
−ステップｄ）にて、各モータに対しての運動指令の計算は、コントロールセンタによって送出される命令に基づいて、各モータに対して供給されるトルクの予測を伴う。
−コントロールセンタによって送出される命令は、少なくとも１つの運動制御軸に対して移送される負荷に関する情報を含む。
−コントロールセンタによって送出される命令に応じるために、各モータに対しての達成される位置は、トルク予測の少なくとも一部から計算されるロボットアームの変形に対しての補償を含む。
−方法は、ｌ）ロボットのパワーアップ状態を表す信号をコントロールセンタに送信するステップを含み、パワーアップ状態において、ロボットは、全てのモータがパワーアップされるか、又は、パワーダウンされかつ制動される場合にだけ、いつでも機能できる、又は、パワーダウンされる、とそれぞれ宣言される。
−方法は、ｍ）ロボットの全ての部分が機能する状態を表す信号を、演算器からコントロールセンタへ送信するステップを含み、機能する状態において、ロボットの全ての部分は、これらの部分の少なくとも１つが機能していないとして検出される場合、不良であると宣言される。
−バスは、同期通信モードをサポートする。
−バスは、ＳＥＲＣＯＳタイプのインタフェースモデル上で機能する。
−コントロールセンタは、「プロファイルドライブ」ハードウェアプロファイルのコマンドを使用して、ロボットアームの運動制御軸に関連付けられた仮想軸制御装置と通信する。「プロファイルドライブ」ハードウェアプロファイルに関連付けられるこれらの標準的なコマンドは、孤立した軸制御装置をプログラムするために広く使用される。プログラマは、自動化作業セルのロボットアームを使用するための特定のコマンドを開発又は使用する必要がない。
【００１４】
実施例によって与えられるだけであり、かつ、添付図面を参照して行われる、本発明の原理にしたがって自動化作業セルを制御する方法の以下の説明を考慮して、本発明がよりよく理解され、また、本発明の他の利点がより明確に現れるであろう。
【図面の簡単な説明】
【００１５】
【図１】本発明による制御方法を使用する自動化作業セルの構造図である。
【図２】本発明による制御方法に関連する主機能及び通信フローを示す機能概要図である。
【発明を実施するための形態】
【００１６】
図１に示すように、自動化作業セル２は、ロボットアーム４と、ロボットアーム４を制御するデバイス６と、コントロールセンタ８と、部分的に示される２つの電気アクチュエータとを備える。ロボットアーム４は、本明細書では、Ａ１〜Ａ６と呼ばれる６軸を有するロボットアームからなる。用語「軸（ａｘｉｓ）」は、本明細書では、ロボットの意味で使用される、すなわち、自由度に関する。本事例では、自由度又は軸Ａ１〜Ａ６は回転である。
【００１７】
ロボットを制御するデバイス６は、ロボットアーム４の近くに設置され、６個のモータ制御器６１〜６６を備える。これらのモータ制御器６１〜６６はそれぞれ、ロボットアーム４の一部を操縦することができるモータＭ１〜Ｍ６の機能を制御することができる。
【００１８】
モータＭ１の作動は、他のいずれの軸もそれ自体に関して転回することなく、軸Ａ１とロボットアーム４の可動端との間に位置するロボットアーム４の部分の全体的な回転を可能にする。同様に、モータＭ２、Ｍ３、Ｍ４、及びＭ６の作動は、軸Ａ２、Ａ３、Ａ４、及びＡ６の孤立した回転をそれぞれ可能にする。一方、モータＭ５の作動は、軸Ａ５及びＡ６の回転をもたらす。軸Ａ５とＡ６との間の結合が存在し、軸Ａ５の孤立した回転は、モータＭ５及びＭ６の作動を必要とする。モータＭ１〜Ｍ６はそれぞれ、モータシャフトの角度位置を測定し、この位置に関する情報を含む電気信号Ｓ１２ｉ（ｉは１と６との間の整数）を送出するための、モータシャフト上に設置されたコーダ１２を装備する。２つの電気アクチュエータはそれぞれ、モータＭ２１及びＭ２２によって操縦され、これらのモータはそれぞれ、軸制御装置１２１及び１２２によってそれぞれ制御され、かつ、位置信号Ｓ１２２１又はＳ１２２２を送出するコーダ１２に関連付けられる。
【００１９】
図２に概略的に示すように、コントロールセンタ８は、たとえばロボットアーム４の運動を必要とする物体の組立てなどの精密なアクション、及び、モータＭ２１及びＭ２２によって操縦される電気アクチュエータを備えるグリッパ又はコンベアのオプションのアクションを実施するために、ユーザによって生成されるプログラム３０によって自動化作業セル２の機能を制御する。たとえば、こうしたプログラムは、ロボットアーム４の端部によって到達される一連の直交座標を含むことができる。
【００２０】
変形形態では、アクションは、ユーザ又は自動化作業セル２のプログラマにとってアクセス可能な固定の又は可搬型の制御パネル３２からユーザによってリアルタイムに決定されうる。
【００２１】
コントロールセンタ８は、好ましくはＳＥＲＣＯＳＩＩＩシリーズ・リアルタイム・インタフェース上で機能するフィールドバス１４によって制御装置６と通信する。コントロールセンタ８は「マスタ（ｍａｓｔｅｒ）」であり、一方、制御装置６は「スレーブ（ｓｌａｖｅ）」である。
【００２２】
制御装置６は、フィールドバス１４によってコントロールセンタ８と通信するのに専用である通信カード６０を備える。
【００２３】
制御装置６はまた、演算器１０を備え、演算器１０の機能は、運動又はパワーアップ指令などの命令を生成し、モータ制御器６１〜６６に送信することである。演算器１０は、特にこの目的のために、マイクロプロセッサ及びメモリを備える。演算器１０は、モータ制御器６１〜６６のそれぞれと通信することができる。こうして、モータ制御器６１〜６６とコントロールセンタ８との間の各データ伝送は、モータ制御器からコントロールセンタへとコントロールセンタからモータ制御器への両方で、演算器１０によって管理される。
【００２４】
ロボットアーム４の制御軸は、ロボットアーム４の自由度に対応する軸Ａ１〜Ａ６であるように選択される。
【００２５】
ＳＥＲＣＯＳＩＩＩインタフェーシングモデルに特有の初期化フェーズ中に、ロボットアーム４の各軸Ａ１〜Ａ６が仮想軸制御装置に関連付けされるように、通信が規定される。これらの仮想軸制御装置は、汎用軸制御装置と同様な方法でコントロールセンタ８から命令を受信し、これらの命令に基づいて少なくとも１つのモータを制御するとみなされる。これらの仮想軸制御装置は、構成、制御、状態及び位置の問い掛け、診断及び監督（ｓｕｐｅｒｖｉｓｉｏｎ）用のコマンドのセットを規定する「プロファイルドライブ（ｐｒｏｆｉｌｅ  ｄｒｉｖｅ）」ハードウェアプロファイルに従うと宣言される。「プロファイルドライブ」ハードウェアプロファイルに関連するコマンドに基づいてコントロールセンタ８によって生成され、仮想軸制御装置によって使用可能な命令は、演算器１０によって受信される。各仮想軸制御装置は、ロボットアーム４の外部のアクチュエータを制御し、かつ、自動化作業セル２内に存在する２つの軸制御装置１２１及び１２２と同じ方法でアドレスを割当てられる。
【００２６】
本発明による制御方法は、自動化作業セル２のロボットアームが動作する前に、ロボットアーム４の全てのモータのパワーアップフェーズに適用される。このパワーアップは、コントロールセンタ８によって始動され、コントロールセンタ８は、軸Ａ１〜Ａ６のそれぞれをパワーアップするための、命令Ｃ０ｉ（ｉは１と６との間である）を含む１つ又は複数のマスタデータテレグラムを、バス１４を通じて送出する。制御装置６の通信カード６０は、これらのテレグラムを取込む。通信カード６０は、その後、演算器１０に割り込み要求を送出し、割り込み要求は、これらのテレグラムを回復させ、ロボットアーム４の軸Ａ１〜Ａ６のそれぞれに対してテレグラムから命令Ｃ０ｉを抽出し、命令の処理を続行する。ＳＥＲＣＯＳＩＩＩインタフェーシングプロトコルは、バス１４に接続されるデバイスのそれぞれが、マスタデータテレグラム内でそれぞれに関するデータのロケーションで命令されることを可能にする。演算器１０は、パワーアップ命令を記録し、応答テレグラムをコントロールセンタ８に送出し、応答テレグラムにおいて、命令が関連する軸がパワーアップされる、と宣言される。コントロールセンタ８によって送出される最後のパワーアップ命令が受信されるまで、モータは、実際にはパワーアップされず、制動が解除される。各モータＭ１〜Ｍ６に対してのパワーアップ命令Ｏ２ｉ（ｉは１と６との間である）は、演算器１０によって各モータ制御器６１〜６６に送出される。全てのモータがパワーアップされ、モータＭ１〜Ｍ６のそれぞれがパワーアップされているという情報を、演算器１０がモータ制御器６１〜６６から受信したとき、最後の軸がいつでも機能できることをコントロールセンタ８に示すテレグラムＴ０は、カード６０を通して演算器１０によって送出される。
【００２７】
コントロールセンタ８のプログラマの場合、ロボットアーム４の軸Ａ１〜Ａ６のモータＭ１〜Ｍ６に対してのパワーアップ指令は、自動化作業セル２で使用される他のモータＭ２１及びＭ２２に対してのパワーアップ指令と同様である。その理由は、ロボットアーム４の軸及び他の２つの軸は、「プロファイルドライブ」ハードウェアプロファイルに従うものとしてコントロールセンタ８が知っているからである。種々のモータのパワーアップを管理するために、演算器１０が、ロボットアーム４の軸Ａ１〜Ａ６のそれぞれに対して意図される全ての命令を考慮するため、コントロールセンタ８のプログラミングが簡略化される。
【００２８】
自動化作業セル２が、自動化するプロセスを実装すると、コントロールセンタ８は、ロボットが実行しなければならない運動指令を含むオペレーティングプログラム３０を実行する。各通信サイクルにおいて、ロボットアーム４の仮想軸制御装置に関連付けされる各軸Ａ１〜Ａ６に対しての運動命令Ｃ１ｉ（ｉは１と６と間である）は、経路発生器３４によって計算され、経路発生器３４は、ロボットアーム４の運動指令が、ロボットアーム４の端部の運動の直交座標を表すとき、逆幾何学的モデル３６を使用する。ＳＥＲＣＯＳＩＩＩインタフェーシングプロトコルによれば、規定される各通信サイクルに対して、全ての軸運動命令Ｃ１ｉは、マスタデータテレグラムＴ１（Ｃ１ｉ）の形態でバスを通じて送出される。通信カード６０は、このテレグラムを受信する。通信カード６０は、その後、演算器１０に割り込み要求を送出し、割り込み要求は、テレグラムを回復させ、テレグラムから軸運動命令Ｃ１ｉを抽出し、命令の処理を続行する。
【００２９】
この処理中に、演算器１０は、モータ制御器６１〜６６によって制御されるモータＭ１〜Ｍ６のそれぞれに対して運動指令Ｏ１ｉ（ｉは１と６と間である）を計算する。モータのそれぞれに対しての運動指令Ｏ１ｉは、トランスミッションの運動力学的モデル３８を適用することによって、コントロールセンタ８からやって来る受信される全ての命令Ｃ１ｉから計算される。これらの指令は、モータによって達成される位置を含む。計算は、その後、軸Ａ５と軸Ａ６との間に存在する結合を考慮し、軸Ａ５の運動は、モータＭ５及びＭ６の使用を必要とする。各モータに対しての運動指令Ｏ１ｉの計算は、モータとロボット回転軸との間の低減比（ｒｅｄｕｃｔｉｏｎ  ｒａｔｉｏ）を考慮する。
【００３０】
各モータＭ１〜Ｍ６に対しての運動指令Ｏ１ｉは、モータフェーズに対する供給電流を決定し調節することに関与する、モータのそれぞれのモータ制御器６１〜６６に送信される。
【００３１】
各モータのシャフトの角度位置は、各モータのシャフト上に設置されたコーダ１２によって検出される。信号Ｓ１２１〜Ｓ１２６の形態で各モータ制御器に送信されるこの情報は、モータフェーズの供給電流をスレービングする４８ことを可能にする。
【００３２】
演算器１０はまた、モータ制御器６１〜６６との接続を通して、ロボットアーム４の各モータのシャフトの角度位置を有し、トランスミッションの逆運動力学的モデル４０を適用することによって、ロボットアーム４の軸Ａ１〜Ａ６の周りに回転可能な部分の角度位置Ｐｉ（ｉは１と６と間である）を計算する。軸Ａ５とＡ６との結合のために、モータＭ５及びＭ６のシャフトの角度位置は、軸Ａ６の角度位置Ｐ６を決定するときに作用する。演算器１０はまた、測定から、ロボットの軸の周りで可動の部分の回転速度、これらの運動によって供給されるトルク、又は任意の他の有用なデータを計算する。
【００３３】
その結果、また、ＳＥＲＣＯＳＩＩＩ通信プロトコルにしたがって、各同期通信サイクルにおいて、ロボットの演算器１０は、ロボットアーム４の軸の角度位置Ｐｉを含むデータテレグラムＴ’１を生成し、データテレグラムＴ’１を、通信カード６０を通してコントロールセンタ８に送信する。この情報は、その後、自動化作業セル２の機能を左右するプログラム３０によって使用されうる。コントロールセンタ８は、直接幾何学的モデル４２を適用して、たとえばロボットアーム４の端部の直交座標系位置Ｐｃを得、直交座標系位置Ｐｃが、その後、制御パネル３２上に表示されうる。
【００３４】
演算器１０は、ロボットアーム４の軸Ａ１〜Ａ６の周りに回転可能な部分の角度位置Ｐｉ（ｉは１と６と間である）から、たとえばロボットアーム４の端部のツールクランプ４００上にある少なくとも１つの特徴点Ｂの直交座標系位置を計算し、その直交座標系位置から、この特徴点の直交座標系速度Ｖ（Ｂ）を導出しうる。予め規定された閾値との比較が演算器１０にて行われる。この特徴点Ｂの直交座標系速度Ｖ（Ｂ）がこの閾値より大きい場合、演算器１０は、停止コマンドを全てのモータ制御器６１〜６６に送出し、エラーを示すテレグラムをコントロールセンタ８に送出する。
【００３５】
変形形態では、演算器１０は、ロボットアーム４の仮想軸制御装置に関連付けされる各軸Ａ１〜Ａ６に対して、運動命令Ｃ１ｉ（ｉは１と６と間である）から、特徴点の直交座標系速度Ｖ（Ｂ）を計算する。
【００３６】
ロボットアーム４の挙動は、重力又は慣性力によって関節に加えられるトルクＦｉ（ｉは１と６と間である）の予測を、各モータのスレービング（ｓｌａｖｉｎｇ）が考慮する場合、実質的に改善される。動的モデル４４を使用するこのトルク予測Ｆｉは、演算器１０においてロボットアーム４の各モータに対して確立される。動的モデルは、各軸の運動命令Ｃ１ｉの知識に基づいており、ロボットアーム４の各部分において必要とされる加速度を評価することを可能にする。ロボットアーム４の構造のせいで、ロボットアーム４の各モータのシャフトにかかるトルクＦｉの予測は、全ての軸Ａ１〜Ａ６の運動命令Ｃ１ｉを考慮しなければならない。トルク予測Ｆｉは、確立されると、モータのデータ又は「定数（ｃｏｎｓｔａｎｔ）」４６を適用することによって電流命令に変換され、モータフェーズ供給電流のための制御ループ５０への入力として組込まれるために、モータ制御器６１〜６６に送信される。
【００３７】
変形形態によれば、各関節において供給されるトルクＦｉの予測の計算もまた、ロボットアーム４の軸の角度位置Ｐｉを使用しうる。
【００３８】
関節に加えられるトルクＦｉ（ｉは１と６と間である）の予測は、ロボットアーム４によって移送される負荷を考慮するため、なお一層精密になる。各負荷は、質量、その重心の位置、及びその慣性行列を特徴とするが、同様に負荷がアタッチ（ａｔｔａｃｈ）される自由度も特徴とする。コントロールセンタ８のプログラマは、ロボットアーム４の各運動制御軸に関して移送される負荷を宣言しうる。たとえば、ツールクランプ４００にて移送される負荷の場合、プログラマは、制御軸Ａ６に専用のコマンドを通して負荷を宣言することになる。フロントアーム４０２にて移送される負荷の場合、プログラマは、制御軸Ａ４に専用のコマンドを通して負荷を宣言することになる。移送される負荷のこれらの宣言は、非同期的に、すなわち、コントロールセンタ８と演算器１０との間のサイクリック通信の外で行われうる。これらの宣言はまた、同期的に行われることができ、そのことが、コントロールセンタ８によって送出される各コマンドで移送される負荷を変更し、負荷を解除し別の運動に取りかかる前に、ロボットアームがその間に負荷を把持し移送することになる運動のシーケンスにロボットアーム４の制御を適合させることを可能にする。
【００３９】
本発明による方法は、コントロールセンタ８の形成を簡略化するために、移送される負荷が、演算器１０において考慮されることを可能にする。
【００４０】
本発明による方法はまた、負荷の影響下でのロボットアームの変形を考慮して、ロボットアーム４の端部に設置される、図示しないツールの経路の精度の改善をもたらす。これらの変形は、アームなどの構造要素あるいはベルト又はギアなどのトランスミッション要素の可撓性から生じる可能性がある。各軸の運動命令から、動的モデル４４は、重力及び慣性力によって関節に加えられる各トルクＦｉ（ｉは１と６と間である）を予測する。これらのトルクＦｉは、ロボットアーム４に特有の可撓性行列を適用することによって、変形による関節偏差Δｉ（ｉは１と６と間である）を得ることを可能にする。関節偏差Δｉは、ロボットアーム４の変形の補償を提供することを可能にし、その後、各軸の運動命令に付加され、したがって、モータ制御器６１〜６６によって制御されるモータＭ１〜Ｍ６のそれぞれに対しての運動命令Ｏ１ｉ（ｉは１と６と間である）の計算において考慮される。
【００４１】
これらの関節偏差Δｉはまた、ロボットアーム４の軸Ａ１〜Ａ６の周りで可動の部分の角度位置Ｐｉ（ｉは１と６と間である）から減算される。関節偏差Δｉは、ロボットアーム４の各モータのシャフトの角度位置に逆運動力学的トランスミッションモデル４０を適用することから生じる。
【００４２】
変形形態では、関節偏差Δｉの計算は、重力、すなわち静的力に対応するトルクＦｉの一部だけを考慮しながら、確立されうる。
【００４３】
本発明による方法はまた、ロボットの部分のそれぞれの機能の欠陥を考慮する。ロボットアーム４の制御装置６の演算器１０は、全てのモータ制御器６１〜６６の機能を監督する。演算器１０は、モータ制御器６１〜６６、モータＭ１〜Ｍ６、又はコーダ１２における機能の欠陥を検出するソフトウェアを使用する。モータの故障が起こる場合、演算器１０は、ロボットアーム４の全ての他のモータを停止し、問題のモータによってその回転が通常許可される軸が故障していると宣言されるだけでなく、ロボットアーム４の全ての軸が故障していると宣言されるデータテレグラムＴ２の送出を、コントロールセンタ８に要求する。換言すれば、ロボットアーム４の軸のうちの１つの軸上の運転中の欠陥は、ロボットアーム全体が機能することが不可能であるという宣言をもたらす。この情報は、コントロールセンタ８に送出される。
【００４４】
コントロールセンタ８は、ロボットの全ての軸のデコミッショニング（ｄｅｃｏｍｍｉｓｓｉｏｎｉｎｇ）を管理する必要がないため、そのプログラミングが簡略化される。これは、各モータコントロール６１〜６６とコントロールセンタ８との間の通信を回避し、欠陥の処理を加速させ、ロボットアーム４のセキュリティを改善する。
【００４５】
たった今述べたように、演算器１０は、軸Ａ１〜Ａ６のうちの１つの軸に関して故障が起こる場合、ロボットアーム４の挙動のコヒーレンスを提供する。同じことは、ロボットアーム４の軸のうちの１つの軸がパワーダウンするとき当てはまる。モータＭ１〜Ｍ６のそれぞれが、その時、必ずパワーダウンされなければならない。さらに、安全性のために、モータのパワーダウンは、モータの回転を停止させる制動の適用が先行しなければならない。コントロールセンタ８からやって来るロボットアーム４をパワーダウンさせる命令は、演算器１０によってモータ制御器のそれぞれに適用される。ロボットアーム４の軸Ａｉ（ｉは１と６と間である）のうちの１つの軸をパワーダウンさせる命令が、演算器１０によって検出されるとすぐに、この命令は、ロボットアーム４の全てのモータＭ１〜Ｍ６に一般化される。演算器１０は、その後、モータＭ１〜Ｍ６をパワーダウンさせる命令Ｏ’ｉ（ｉは１と６と間である）を各モータ制御器６１〜６６に送出する。電流が実際に遮断されると、演算器１０は、ロボットアーム４のモータのそれぞれのシャフトが、事故を防止するために実際に制動されていることをチェックする。全てのチェックが行われると、演算器１０は、ロボットアーム４の全ての軸Ａｉ（ｉは１と６と間である）がパワーダウンされたことを指定するテレグラムＴ３をコントロールセンタ８に送出する。
【００４６】
本発明の方法は、コントロールセンタ８によって管理される運動の同期を改善する。本発明の方法は、コントロールセンタ８がサーバであるクライアント−サーバ通信モデルによる。バス１４は、同期通信モードをもたらす。コントロールセンタ８とロボットアーム４の制御装置６との間のバス１４による通信は、制御されるモータ制御器などのデバイスの数に適応する、通信周波数と呼ばれる周波数で起こる。
【００４７】
演算器１０は、通信周波数より高い制御周波数と呼ばれる周波数で機能する。
【００４８】
モータ制御器６１〜６６で実施されるスレービングは、制御周波数より高いスレービング周波数と呼ばれる周波数で行われる。したがって、補間の計算が、演算器１０のモータに対しての運動指令Ｏ１ｉのモータ制御器への各送信の間に必要である。これらの計算は、各モータ制御器６１〜６６において行われる。
【００４９】
コントロールセンタ８によって使用される自動化作業セル２のオペレーティングプログラムは、命令Ｃ１ｉを生成し、ロボットアーム４の軸の角度位置Ｐｉの知識を必要とする。命令Ｃ１ｉの各送信において、コントロールセンタ８は、ロボットアーム４の軸のそれぞれの角度位置を要求する。演算器１０は、コーダ１２によって各モータのシャフトの位置が利用可能である。シャフトの位置は、モータ制御器６１〜６６から演算器１０にやって来て、演算器１０が、トランスミッションの逆運動力学的モデル４０を適用することによってロボットアーム４の軸の角度位置Ｐｉを計算することを可能にする。これらのオペレーション及びデータ伝送は、演算器１０とコントロールセンタ８を脱同期化させ易い遅延を生成する。こうした脱同期化を回避するために、演算器１０は、モータ制御器６１〜６６からやって来る角度位置情報のタイミングをとる。したがって、コーダ１２によって検出されるモータシャフトの角度位置の各測定は、測定時間に関連付けられる。バス１４による通信が同期タイプであるため、演算器１０は、コントロールセンタ８の要求に応じてロボットアーム４の軸の角度位置の値Ｐｉをいつ送出しなければならないかをわかっている。それらの値は、その後、測定時間に応じて、測定の瞬間におけるロボットアーム４の予想される運動、及び測定時間とコントロールセンタ８への送信時間とを分離する時間間隔にしたがって補正される。演算器１０は同期化を実施する。
【００５０】
変形形態では、本発明による制御方法は、非同期通信モードを保持するバスを使用しうる。
【００５１】
別の変形形態では、本発明による方法は、ＣＡＮｏｐｅｎアプリケーション層を統合するＣＡＮ（コントローラ・エリア・ネットワーク（ｃｏｎｔｒｏｌｌｅｒ  ａｒｅａ  ｎｅｔｗｏｒｋ））バスを実装されうる。ＣＡＮバスはまた、Ｐｏｗｅｒｌｉｎｋ及びＥｔｈｅｒＣＡＴ通信プロトコルに適合する。
【００５２】
別の変形形態によれば、ロボットアーム４の運動制御軸は、ロボットアーム４の軸Ａ１〜Ａ６の代わりに、直交座標系軸Ｘ、Ｙ、Ｚ及び対応する回転Ｒｘ、Ｒｙ、Ｒｚであるとして選択される。コントロールセンタ８のプログラマは、その後、ロボットアーム４の端部の必要とされる運動を、３つの方向Ｘ、Ｙ、及びＺ、ならびに、軸Ｘ、Ｙ、及びＺの周りの回転Ｒｘ、Ｒｙ、及びＲｚによるロボットアーム４の端部の配向で表す。この場合、コントロールセンタ８は、到達される直交座標系位置をロボットアーム４の制御装置６に送信する。これは、制御されるロボットに特有の特徴をコントロールセンタ８に含む必要がないため、コントロールセンタ８のプログラミングを簡略化する。演算器１０は、ロボットアーム４の逆幾何学的モデルを組込み、そのモデルを使用して、モータ制御器６１〜６６のために意図される運動命令を決定する。同様に、演算器１０は、直接幾何学的モデルを組込み使用する。直接幾何学的モデルは、コントロールセンタ８に送信する前に、ロボットアーム４の各モータのシャフトの角度位置から、運動制御軸Ｘ、Ｙ、Ｚの位置及び対応する回転Ｒｘ、Ｒｙ、Ｒｚを計算することを可能にする。
【００５３】
本発明は、６自由度を有するロボットの使用に限定されず、たとえば７自由度を有するロボットに適用できる。この場合、プログラマは、有利には、運動制御軸として、ロボットアームの端部の運動の直交座標軸Ｘ、Ｙ、Ｚ及び対応する回転Ｒｘ、Ｒｙ、Ｒｚを選択しうる。ロボットアームの制御装置の演算器は、冗長性を解決するために精巧な逆幾何学的モデルを使用することになる。
【００５４】
本発明は、通信カード６０、演算器１０、及びモータ制御器６１〜６６を備えるロボット用の制御装置６に関して述べた。演算器１０は、コントロールセンタ８からやって来る情報を処理することができ、モータ制御器６１〜６６のために意図される運動命令を生成する。これらのモータ制御器６１〜６６は、軸制御装置１２１及び１２２などの通常の軸制御装置と機能的に同じである。モータ制御器６１〜６６は、位置命令を受信し、電気アクチュエータのフェーズに供給する電流のスレービング制御（ｓｌａｖｅｄ  ｃｏｎｔｒｏｌ）を提供する。しかし、本発明はまた、図示しない電力カードのために意図される電流命令を直接生成することが可能な演算器を使用する構造に適用できる。これらの電力カードは、１つ又は複数の電気アクチュエータのフェーズに流れる電流を制御することができる。本発明は、ロボットアーム４の制御装置６の構造によって制限されない。
【００５５】
本発明の変形形態によれば、モータ制御器によって制御されるモータＭ１〜Ｍ６のそれぞれに対しての指令は、コントロールセンタ８から受信される、全てではなくいくつかの命令Ｃ１ｉ（ｉは１と６との間である）から決定される。
【符号の説明】
【００５６】
２  自動化作業セル
４  ロボットアーム
６  制御装置
８  コントロールセンタ
１０  演算器
１２  コーダ
１４  フィールドバス
３０  オペレーティングプログラム
３２  制御パネル
３４  経路発生器
３６  逆幾何学的モデル
３８  トランスミッションの運動力学的モデル
４０  トランスミッションの逆運動力学的モデル
４２  直接幾何学的モデル
４４  動的モデル
４６  定数
４８  供給電流のスレービング
５０  制御ループ
６０  通信カード
６１〜６６  モータ制御器
１２１、１２２  軸制御装置
４００  ツールクランプ
４０２  フロントアーム
Ａ１〜Ａ６；Ｘ，Ｙ，Ｚ，Ｒｘ，Ｒｙ，Ｒｚ  制御軸
Ｍ１〜Ｍ６、Ｍ２１、Ｍ２２  モータ
【図１】
0005847164.tif 000002
【図２】
0005847164.tif 000003