説明

多用途ロボット制御システム

【課題】商業標準のコンピュータシステムを利用し、異なるロボットに対応できるロボット制御システムを提供すること。
【解決手段】改良型の多用途ロボット制御システム10は、汎用オペレーティングシステムを有する汎用コンピュータ14を備える。この汎用コンピュータ14は、ロボット命令24のプログラム処理を選択的に開始および停止し、複数のロボット動作コマンド26を生成するプログラム実行モジュール18を含む。リアルタイムコンピュータサブシステムは、動作コマンドデータバッファ34と、動作を順次処理しロボットの機械ジョイントに必要な位置を計算するデータバッファ34にリンクされたロボット動作モジュール32と、動作モジュール32とソフトウェア的に通信する、ロボットのジョイント位置フィードバック信号44/46から必要なアクチュエータ活動化信号50/52を繰り返し計算する動的な制御アルゴリズム38とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はロボットの制御装置および方法に関し、より詳細には、様々な電気機械構成のロボットの制御に適した多用途な制御システムに関する。
【0002】
著作権の通知
本特許出願のいくつかの部分は、著作権保護の対象であるものを含む。著作権所有者は、それが特許庁にあるものである限り、本特許文書の誰による複製、または本特許開示に対しても異論はない。
【背景技術】
【0003】
産業用ロボットおよび類似の柔軟性の高い工作機械は、1970年代後半に商業的に受け入れられるようになった。それ以来、産業用ロボットの使用は特に自動車の製造において増加し続けている。
【0004】
産業用ロボットの導入は、製造上の柔軟性が目的である。ロボットの使用により、組み立てラインおよび作業区画において手動による装置変更をまったく行わずに、または最低限しか行わずに異なる品目を作製することが可能となる。製造におけるロボットの応用例のリストは長く、常に増加している。たとえば、コンピュータによる視覚検査、点溶接およびアーク溶接、吹付け塗装、掘削、部品配置、接着剤塗布などがある。
【0005】
ロボットと工作機械の境界は厳密には定義されていない。従来の工作機械と比較して、ロボットは一般により多くの動作ジョイント(または軸)を有し、それによってエンドエフェクタの位置決めをより高い自由度で行うことができる。ロボット工学の分野では、「エンドエフェクタ」という用語は、ロボットが有する駆動装置の種類を包含するために使用されている。こうした装置は、たとえば点溶接などの製造の適用分野に応じて変わる。
【0006】
ロボットは通常、機械ジョイントを有する位置決めアーム、ジョイント付近を動かすモータなどのアクチュエータ、ロボットの位置(または姿勢)の決定を助けるセンサを含む。大多数はこれらの中核部分を含むが、新旧の産業用ロボットはその他の点では電気機械の構成が非常に異なる。
【0007】
たとえば、回転(すなわちロータリ)ジョイントのみによるロボットもあれば、線形軸と回転軸の組合せを備えるロボットもある。一連の伸縮アームおよび回転ジョイントを有するロボットは、関節式ロボット(articulating robot)と呼ばれている。
【0008】
所与のクラスのロボットのうちでも、機械的に様々な変形がある。関節式ロボットの回転ジョイントはたとえば、支持アームから離れて位置する肩ジョイントでも、支持アームの中心に位置する肘ジョイントでも、支持アームの軸方向に沿って位置する手首ジョイントでもよい。同様に、線形ジョイントは同一線上にあってもよく、直交してもよい。アクチュエータおよびフィードバックセンサも、構成が様々となるもう1つの原因である。たとえば、ステッパモータを備えるロボットもあれば、サーボモータを備えるものもある。
【0009】
電子制御システムは、ロボットの動作を制御およびプログラムするために利用される。エンドエフェクタとロボットの位置決めの間の必要な整合された動作のために、ロボット制御システムはあるレベルのソフトウェアプログラミング、およびフィールドI/Oとエンドエフェクタサブシステムの間のインタフェースを提供することが好ましい。従来のロボット制御システムは、ロボットの構成およびロボット製造者によって異なる特注の電子機器を集めたものである。
【0010】
製造過程においてロボットは、ロボットの作業空間内にある一連の地点でエンドエフェクタを動かすよう、制御命令のリストによって指示を受ける。ロボットの命令シーケンス(またはプログラム)は、不揮発性記憶システム(たとえば磁気ディスク上のコンピュータファイルなど)内に保持することが好ましい。
【0011】
製造会社およびロボットユーザは、技術者および専門技術者を介して、制御システムの製造に2つの重要な機能を要求するようになった。第1に、ロボットのユーザーは特注の専用システムではなく、商業標準のコンピュータシステムおよびオペレーティングシステムを使用して実装された制御システムを求める。商業標準のコンピュータのハードウェアおよびソフトウェアを使用するこうした傾向は、「オープンシステムムーブメント(open systems movement)」と呼ばれている。
【0012】
標準コンピュータに基づく制御システムが好まれる理由は、標準ネットワークおよびI/O装置(たとえば標準的なフロッピー(登録商標)ドライブ)を介した製造データへのアクセスの簡略化と、他のソフトウェアを実行できる可能性と、交換部品および拡張部品の競争市場とをロボットユーザに提供するからである。オープンシステムムーブメントの根底にあるのは、ロボットユーザの、システムの変更および維持のために長期にわたって工作機械およびロボット製造者に依存しなければならない状況を緩和するという目標である。
【0013】
ロボットユーザが求める第2の機能は、(全社でなくとも)施設全体にわたってすべてのロボットに対するオペレータおよびプログラマのインタフェースを共通にすることである。すべてのロボットに対する共通のユーザインタフェースにより、特注の専用システムの使い方に関して専門オペレータを訓練する必要が減る。
【0014】
オープンシステムの機能に関連して、標準的な汎用コンピュータシステムに基づくロボット制御システムを供給しようとする努力は、汎用オペレーティングシステムに制限があるため十分には成功しなかった。ロボットの安全性および正確さに対する要件から、ロボット制御システムの信頼性が高く、すなわち故障しにくく、リアルタイム接続されていることが必須とされる。マイクロソフト社のWindows(登録商標) NTなどの汎用オペレーティングシステム向けの多様な機能をもつ設計の目的は、非常に複雑で、幾分信頼性の低いソフトウェアプラットフォームを提供してきた。さらに、こうしたシステムはリアルタイムでの制御ループの実行を保証できない。
【0015】
共通オペレータインタフェースの機能に関連して、オペレータインタフェースにせめて制限された標準でも提供しようとの試みは、特定のロボット製造者にとどまっていた。異なるロボット製造者を協働させることの難しさにもかかわらず、電気機械構成が多岐にわたるため、共通オペレータインタフェースを有するロボット制御システムの開発がこれまで実質的に妨げられてきた。
【発明の概要】
【発明が解決しようとする課題】
【0016】
したがって、商業標準のコンピュータシステムを利用し、かつ異なる構成のロボットに対応できる改良型のロボット制御システムを提供することが望ましい。特に、オープンシステムおよび共通オペレータインタフェースの利点をロボット制御に提供することが望ましい。
【課題を解決するための手段】
【0017】
本発明によるロボット制御システムは、商業標準の、汎用コンピュータハードウェアおよびソフトウェアによるロボット制御を提供する。本発明による制御システムおよび方法は、多様な電気機械構成のロボットに使用可能であり、それによって異なるロボット製造者のロボットに共通のオペレータインタフェースを与える。
【0018】
本発明は、機械ジョイントと、ジョイントを動かす機械アクチュエータと、位置フィードバックセンサとを備えたロボット用のロボット命令プログラムを実行または処理する制御システムを提供する。ロボットの機械アクチュエータは活動化信号を受け取り、フィードバックセンサは位置信号を提供する。
【0019】
本発明による制御システムは、汎用のオペレーティングシステムと、汎用コンピュータと電子的に通信し、機械アクチュエータおよび位置フィードバックセンサに操作可能にリンクされた、リアルタイムコンピュータサブシステムとを有する汎用コンピュータを含む。この汎用コンピュータは、ロボットの命令プログラムの処理を選択的に開始および停止し、かつ複数のロボット動作コマンドを生成する、プログラム実行モジュールを含む。
【0020】
リアルタイムコンピュータシステム内部には、複数の動作コマンドを記憶する動作コマンドデータバッファがある。リアルタイムコンピュータサブシステムはまた、ロボット動作モジュールおよび制御アルゴリズムを含む。動作モジュールはデータバッファにリンクされ、機械ジョイントに対する複数の動作コマンドを順次処理し、かつ必要な位置を計算する。制御アルゴリズムは、ロボット動作モジュールとソフトウェア的に通信し、フィードバック信号から必要な活動化信号、および必要とされる機械ジョイントの位置を繰り返し計算するためのものである。
【0021】
本発明の別の態様は、様々な電気機械構成のロボットの制御に適したロボット制御システムを提供する。この制御システムは、ロボット特有のコントローラユニットと電子通信およびソフトウェア通信する、ロボットに依存しないコンピュータユニットを含む。
【0022】
ロボットに依存しないコンピュータユニットは、I/Oインタフェースによってロボットに操作可能にリンクされ、ビデオディスプレイと、一連のロボット動作コマンドを作成するオペレータインタフェースモジュールを実行する第1のデジタルプロセッサとを含む。ロボット特有のコントローラユニットは、リアルタイム接続のオペレーティングシステムを実行する第2のデジタルプロセッサ、およびロボット動作コマンドを実行するロボット動作モジュールを含む。
【0023】
オペレータインタフェースモジュールは、ロボットの電気機械構成を決定するデータを記憶するための構成変数と、第1の電気機械構成に応じて第1のオペレータディスプレイを生成する第1のコードセグメントと、第2の電気機械構成に応じて第2のオペレータディスプレイを生成する第2のコードセグメントと、電気機械構成に応じて第1または第2のコードセグメントを選択する第3のコードセグメントとを含むことが好ましい。
【0024】
本明細書の一部をなす添付の図面において、同じ番号は全体を通して同じ部分を表す。
【図面の簡単な説明】
【0025】
【図1】本発明によるロボット制御システムのソフトウェアプログラム、コンピュータハードウェア、およびロボット接続を示す概略構成図である。
【図2】汎用コンピュータとリアルタイムコンピュータサブシステムの間のウォッチドッグ相互通信を提供する、ソフトウェアおよび方法の諸段階の好ましい実施形態を示す簡略化したフローチャートである。
【図3】本発明の実施形態によって制御可能な別の種類のロボット構成を示す、関節式産業用ロボットの側面図である。
【図4】本発明の実施形態によって制御可能な多くの種類のロボット構成の1つを示す、線形ジョイントを備えた産業用ロボットの側面図である。
【図5】異なる電気機械構成のロボットに対応でき、かつ本発明による制御システムにおける構成変数の役割を実証する、好ましいソフトウェアおよび方法の諸段階を示す簡略化したフローチャートである。
【図6】同様に、回転ジョイント構成を指定する構成変数に記憶されたデータに応答して生成される、例示的なオペレータインタフェースのディスプレイ画面を示す図である。
【図7】線形ジョイントを指定する構成変数に記憶されたデータに応答して生成される、例示的なオペレータインタフェースのディスプレイ画面を示す図である。
【発明を実施するための形態】
【0026】
本明細書で開示する発明は、もちろん多くの異なる形式での実施形態が可能である。本発明の好ましい実施形態は、図面で示し、本明細書で以下に詳しく説明する。しかし、本開示は本発明の原理を例示するものであり、本発明を説明する実施形態に限定するものではないことを理解すべきである。
【0027】
図面において、1つのブロックまたはセルは、識別された単一の機能を一緒に実行するいくつかの別個のソフトウェアおよび/またはハードウェア構成要素を示すことができる。同様に、1本の線はいくつかの別個の信号、あるいはソフトウェアデータの共用または相互接続のいくつかの例を表すことができる。
【0028】
ロボットは、他の製造機械と同様に、機械ジョイントを有する位置決めアームと、ジョイントの回りを動かすモータなどの位置決めアクチュエータと、ロボットのある部分の位置の指示を与える位置フィードバックセンサとを含む。本明細書で使用する「機械アクチュエータ」という用語は、ロボットの動作に使用される様々な形態の装置を指す。例示的なロボットアクチュエータには、油圧ピストン、空気圧ピストン、サーボモータ、ステッパモータ、リニアモータがある。
【0029】
図1を参照すると、Cincinnati Milacron 776ロボットという産業用ロボット4を有する制御システム10の諸要素を示してある。ロボット4は、一連の回転ジョイント5、6、7、8、対応するサーボモータ、エンドエフェクタ9を含む。制御システム10は、汎用コンピュータ14およびリアルタイムコンピュータサブシステム16を含む。
【0030】
本明細書で使用する「汎用コンピュータ」という語句は、装置制御など特定の適用分野向けの特注のCPUベースの電子機器ではなく、様々な適用分野向けに設計される商業標準コンピュータを指す。例として、通常、IBMとの互換性のあるパーソナルコンピュータ、より簡単にはPCと呼ばれるよく知られているコンピュータ群が含まれる。PCは、インテルコーポレーション(インテル)、Advanced Micro Devices,Inc.(AMD)、VIA Technologies,Inc.の複合命令セット(CISC)CPUに基づく。関連する発展しつつあるインテルのCPU製品ラインには、「80486(登録商標)」、「Pentium(登録商標)」、「Pentium(登録商標)II」、「Pentium(登録商標)III」の名称で販売されているCPUチップセットが含まれる。AMDによる汎用コンピュータ向けのCPU製品ラインの一例は、「AMD−K6(登録商標)」の名称で販売されている。VIA Technologies,Inc.の汎用コンピュータ向けのCPUは、「Cyrix(登録商標)」の名称で販売されている。
【0031】
縮小命令セット(RISC)CPUに基づく汎用コンピュータも同様によく知られている。例として、コンパックコンピュータコーポレーションから販売されているAlpha(登録商標)チップセットに基づくコンピュータがある。
【0032】
図1に示すように、汎用コンピュータ14は汎用オペレーティングシステムで動作する。「汎用オペレーティングシステム」という語句は、MS−DOS(登録商標)、Windows(登録商標) 95、Windows(登録商標) 98、Windows(登録商標)NT、Windows(登録商標) 2000の名称でマイクロソフトから販売されているような、商業標準オペレーティングシステムを指す。汎用オペレーティングシステムの他の例には、Macintosh(登録商標)(米国アップルコンピュータ社)、UNIX(登録商標)(販売代理店多数)、Open VMS(登録商標)(コンパックコンピュータコーポレーション)がある。
【0033】
汎用コンピュータで実行するために、プログラム実行モジュール18、オペレータインタフェースモジュール20、ウォッチドッグ通信コードセグメント22がインストールされる。本明細書で使用する「モジュール」という用語は、プログラム、サブプログラム、ソフトウェアプロセス、サブルーチン、または一群のコードセグメントなどのソフトウェアの要素を指す。制御システム10のソフトウェアモジュールは、別々のプロセスとして実行される、別々の実行可能なプログラムであることが好ましい。別段の指定がない限り、ソフトウェアモジュールおよびコードセグメントは、サブルーチンの呼出し、共通共有記憶空間などを介して必要とされる、様々なソフトウェア変数および定数へのアクセスを共有するように構成される。
【0034】
プログラム実行モジュール18は、図1に示すようにデータファイルとして記憶できるロボットの命令プログラム24を処理する。プログラム実行モジュール18は、ロボット命令プログラム24からロボット動作コマンド26を生成してリアルタイムコンピュータサブシステム16に送る。ロボットオペレータが生成した、人間にとって比較的読取り可能なロボット命令24は、実行モジュール18によって解釈され、リアルタイムコンピュータサブシステム16用の動作コマンド26に翻訳される。
【0035】
その上、プログラム実行モジュール18により、オペレータは、オペレータインタフェースモジュール20を介したオペレータからのプロンプトに応答してリアルタイムコンピュータサブシステム16への動作コマンド26の転送を選択的に開始および停止することによってロボットプログラム24の実行を制御することができる。
【0036】
オペレータインタフェースモジュール20は、オペレータディスプレイ画面28と、キーボードおよび/またはマウス30と、要望に応じて他の標準周辺装置に操作可能にリンクされる。好ましい実施形態では、ディスプレイ画面28は、ロボットオペレータがディスプレイおよびキーボード/マウス30の両方を介してプロンプトおよびデータを入力できるタッチスクリーンである。
【0037】
ロボットオペレータのプロンプトおよび選択により、オペレータインタフェースモジュール20は、ロボット4を制御可能に動かすために、ロボット命令ファイル24をディスクからロードできるように、また、プログラム実行モジュール18によって処理(または実行)できるようにする。オペレータインタフェースモジュール20はオペレータ画面を生成し、オペレータの数値データおよびプロンプトを受け入れる。数値データの項目は、必要に応じて他のプログラムモジュールに通信される。ロボットプログラムの実行の開始および停止を求める、ロボットオペレータによるプロンプトは、オペレータインタフェースモジュール20に受け取られ、実行モジュール18に転送される。
【0038】
プログラム24をロード、開始、停止するオペレータ入力を受け入れることに加えて、オペレータインタフェース20は、オペレータがロボット命令25の新規プログラムを生成するためのエディタを含むことが好ましい。本発明は、Windows(登録商標) NT PCなどの汎用コンピュータを利用する制御システムを提供するので、業務用PCなど別のPC上でロボットプログラムを生成し、その後ディスクドライブやコンピュータネットワーク接続などの標準周辺装置を介してそのファイルを汎用コンピュータ14に転送することも可能である。
【0039】
汎用コンピュータ14は、リアルタイムコンピュータサブシステム16とデータ交換(すなわち通信)できるように電子的にリンクされる。リアルタイムコンピュータサブシステム16は、処理制御アプリケーション用に設計された、ハードウェア、ファームウェア、ソフトウェアの組合せを含むことが好ましい。汎用オペレーティングシステムを備えた汎用コンピュータとは違って、リアルタイムコンピュータは、複数の制御ループに必要な計算を、実質的に中断不可能なように比較的速いサイクル時間(たとえば0.5〜2ミリ秒)で実行する。
【0040】
拡張信号処理の要件のために、リアルタイムコンピュータサブシステム16のCPUコンピュータはDSPに基づくコンピュータであることが好ましい。この範疇のDSPに基づく制御コンピュータのうちで、Delta Tau Data Systems,Inc.(カリフォルニア州Chatsworth)から「PMAC」、「PMAC2」、「Turbo PMAC」、「UMAC」の名称で市販されているシステムが今のところ好ましい。
【0041】
リアルタイムコンピュータサブシステム16は、ロボット動作モジュール32と、動作コマンドデータバッファ34と、運動モデル36と、サーボ制御アルゴリズム38と、ウォッチドッグ相互通信コードセグメント40とを含む。リアルタイムサブシステム16はまた、位置決めに関連するロボット4の電子機器への操作可能なリンクを提供する、I/Oハードウェアおよびソフトウェアドライバを含む。ブロック42は、ロボットフィードバック信号44の受信と、コンピュータデータフィードバック信号46への翻訳に必要なハードウェアおよびソフトウェア構成要素を表す。同様に、ブロック48は、コンピュータデータの設定値50をアクチュエータに適した活動化信号52に変換するのに必要な構成要素を表す。
【0042】
活動化信号52およびフィードバック信号44はロボット4の構成に応じてアナログ信号でも、デジタル信号でも、両方の組合せでもよい。たとえば、一般的な増幅器付きモータであるアクチュエータは、アナログ活動化信号を呼び出す。しかし、より新しい、いわゆる「スマート」デバイスはデジタル信号によって直接活動化することができる。したがって、I/Oシステム42および48が実行する信号変換の種類は、ロボットの構成によって変わる。
【0043】
ロボット動作モジュール32はリアルタイムコンピュータサブシステム16の内部にあり、動作コマンド26およびフィードバック信号44/46を受け入れて必要な活動化信号50/52を生成する。ロボット動作モジュール32は運動モデル36およびサーボ制御アルゴリズム38を利用し、動作コマンド26を必要なジョイント位置に、次いで適切な活動化信号の設定値50に翻訳する。本発明の好ましい実施形態では、動作コマンド26はジョイント位置の変化またはエンドエフェクタの位置の変化として表される。
【0044】
ジョイント位置に基づく動作コマンドは、1次元ジョイント軸モデルのあらかじめ定義された範囲、たとえば回転軸は+90度〜−90度、線形ジョイントは0〜1200ミリメートル(mm)に依拠する。ジョイント位置に基づく動作コマンドの一例は、「ジョイント1を60度に設定」である。本発明の好ましい実施形態では、ロボット動作モジュール32は、ロボットのすべての機械ジョイント5、6、7、8の位置を指定する関数呼出しとしてジョイント動作コマンドを受け入れ、それによってただ1つまたはすべてのジョイントを動かすことができるようにプログラムされる。
【0045】
エンドエフェクタの位置として表される動作コマンドは、エンドエフェクタを配置するための、あらかじめ定義された、ただし通常の3次元座標システムを利用する。エンドエフェクタの位置に基づく動作コマンドは、エンドエフェクタの作業空間内のある位置にエンドエフェクタを動かすための呼出しである。
【0046】
ジョイント位置動作コマンドのために、ロボット動作モジュール32は、フィードバック信号46からのデータをジョイント位置に翻訳するソフトウェアモデルを含む。必要な計算は、利用可能なジョイントのタイプおよびフィードバック信号のタイプに応じて変わる。たとえば、ジョイント位置の表示を直接測定するフィードバックセンサは限られた翻訳しか必要とせず、位置決めモータの回転数を測定するフィードバックセンサはより複雑な翻訳を必要とする。
【0047】
エンドエフェクタの位置に基づいた動作コマンドを処理するためには、ロボット動作モジュール32はさらに、エンドエフェクタ9に所望の位置が与えられた場合のジョイント5、6、7、8の必要な位置を計算する運動モデルを含む。
【0048】
より具体的には、リアルタイムコンピュータサブシステム16は、ロボットの順方向運動および逆方向運動計算用の、運動モデルのアルゴリズムを使用する。順方向運動計算は、ロボットの既知のジョイント位置またはアクチュエータ位置が与えられている場合に、エンドエフェクタの位置および方向を決定することを指す。逆方向運動計算は、エンドエフェクタ位置が与えられているとすると、ジョイント角度またはアクチュエータ位置を決定することである。
【0049】
個々のジョイント軸モデルと全般的な運動モデルの必要な組合せは、図1にブロック36で表してある。運動アルゴリズムは他の特許および技術文献に記載されている。たとえば、John J.Craig著「Introduction to Robotics:Mechanics and Control」(第2版、Addison−Wesley、1989)の3章および4章を参照されたい。使用される具体的なモデルは、制御されるロボットの電気機械構成に応じて変わる。
【0050】
位置決めアクチュエータとフィードバックセンサの組合せが動的なシステムを作り上げるので、リアルタイムコンピュータサブシステム16はまた、必要とされる動的な計算をもたらす制御アルゴリズム38を含む。利用可能なクローズドループサーボモータ制御体系のうちでは、フィードフォワードアルゴリズムを有する比例積分微分(PID)が好ましい。
【0051】
データバッファ34は、汎用コンピュータ14およびリアルタイムコンピュータサブシステム16の両方のプログラムが、プログラム実行モジュール18から受け取った複数の動作コマンド26を格納するのに利用可能なソフトウェア変数である。データバッファ34にとって望ましい記憶容量は変わりうるが、本発明の好ましい実施形態では、データバッファ34および接続されるモジュールは、動作コマンドが2〜10個、より好ましくは3〜4個格納されるように構成することが好ましい。
【0052】
制御システム10は、動作コマンドデータバッファ34を用いて、汎用コンピュータ14におけるプログラム実行の遅延に応答するときでも、実質的に連続し、割り込みを受けない、ロボット4の制御をもたらす。
【0053】
上で述べたように、汎用オペレーティングシステムを実行する汎用コンピュータは、比較的信頼性が低く、予測不可能な制御プログラムの中断をもたらす。リアルタイムコンピュータサブシステム16によるロボット4の特有の動作制御は、汎用コンピュータ14の操作における予測不可能な遅延の影響を受けない。というのは、ロボット動作モジュール32はデータバッファ34から動作コマンド26を取り出し続けることができるからである。
【0054】
様々なデータ転送機構が、汎用コンピュータ14とリアルタイムコンピュータサブシステム16の間の電子的通信およびソフトウェアレベルの通信を提供するために利用可能であるが、商業標準のデータバスバックプレーンが好ましい。データバス接続は、図1に参照番号54で表してある。ISAバス、PCIバス、およびVMEバスが例示的な標準データバスであり、現時点ではISAバスが好ましい。
【0055】
データバス54への、好都合で省スペースな接続のためには、汎用コンピュータ14およびリアルタイムコンピュータサブシステム16のコンピュータマザーボード部分を、データバスカードとする。本明細書で使用する「バスカード」という用語は、電子部品を有するプリント回路板と、データバスシャーシのカードスロット内で受けられる、複数の接点を有するタブとを指す。上述のDelta Tau Data Systems,Inc.から販売されているDSPリアルタイムコンピュータは、ISAデータバスカードとして利用可能である。
【0056】
好ましい実施形態では、制御システム10は、汎用コンピュータ14とリアルタイムコンピュータサブシステム16の間のセキュリティ(または「ウォッチドッグ」)通信(ブロック22および40)を含む。図2のフローチャートは、ウォッチドッグ管理を維持するための好ましいコードセグメントを示す。図に示すように、好ましいウォッチドッグ方式は、汎用コンピュータ14およびリアルタイムコンピュータサブシステム16の両方において動作するコードセグメントを含む。汎用コンピュータ14の内部には状況コードセグメント56があり、リアルタイムコンピュータサブシステムの内部にはタイマコードセグメント58、タイマリセットコードセグメント60、およびフェイルセーフコードセグメント62がある。
【0057】
コードセグメントは2つのソフトウェア変数と相互作用する。つまり、汎用コンピュータ14内のプログラムがアクティブかつ/または誤りがないかどうかを示すアクティブソフトウェアスイッチ(activity software switch、ASW)64と、経過時間の指示を格納するタイマ変数(TV)66とである。タイマ変数66はリアルタイムコンピュータサブシステム16内にあり、アクティブソフトウェアスイッチ64はデータバス54または他の手段を介して共用される。アクティブソフトウェアスイッチ64は、0で表されるセットされていない位置、および1で表されるセットされたすなわちアクティブな位置を有する、整数のソフトウェア変数として実装される。
【0058】
状況コードセグメント56は任意選択で、しかし好ましくは、プログラム実行モジュール18とともに順次実行され(ボックス68)、アクティブソフトウェアスイッチ64をアクティブな位置に繰り返しセットする(ボックス74)。プログラム実行モジュール18の実行サイクルが完了した後で、状態コードセグメント56は汎用コンピュータ14内において、特殊な誤りを示す他のソフトウェア変数(ボックス70)、または他のプログラムの処理における遅延(ボックス72)を調べる。したがって、プログラム実行モジュール18が解釈される場合、あるいは誤りまたは他の遅延が検出される場合は、アクティブスイッチ64はセットされない。
【0059】
タイマコードセグメント58は、経過時間に応じてタイマ変数66を下方カウントする。タイマコードセグメント58は、リアルタイムコンピュータサブシステム16のシステムサービス関数であることが好ましく、実行サイクルで表される。
【0060】
アクティブソフトウェアスイッチがアクティブな位置にある場合(ボックス76)、タイマリセットコードセグメント60は、タイマ変数を所定の長さの時間に繰り返しリセットし(ボックス78、好ましくは2秒)、アクティブソフトウェアスイッチを元のセットされていない位置に繰り返しセットする(ボックス80)。フェイルセーフコードセグメント62は、タイマ変数66のオーバーランに応答して(ボックス82)、活動化信号50/52および他のロボットI/Oを用いてロボット4を停止する。
【0061】
コードセグメント56、58、60、62は一緒に活動して、ウォッチドッグサービスを提供する。ウォッチドッグサービスは、汎用コンピュータ14の操作が停止または2秒よりも遅延したらロボット4を強制終了する。
【0062】
図1に戻って参照すると、本発明の別の特徴は、汎用コンピュータ14向けに提供されるソフトウェアが様々な電気機械構成のロボットを制御するのに適していることである。本発明のこの態様によれば、汎用コンピュータ14はロボットに依存しないコンピュータユニットとして働き、リアルタイムコンピュータサブシステム16は幾分ロボット特有の制御装置ユニット、あるいはロボットへの特注のインタフェースまたはアダプタとして働く。
【0063】
本発明の、多重構成という態様にとっては、オペレータインタフェースモジュール20の用途をさらに広げることが重要である。図3および4は、一緒に見ると、異なる電気機械構成の複数のロボットを扱おうとする挑戦課題を示す。図3は、細部をより明らかにするためにわずかに拡大した、図1の関節式ロボット4の側面図である。ロボット4のアームは、一連の回転(すなわちロータリ)ジョイント5、6、7、8によってリンクされる。それに対して図4は、回転式の胴体ジョイント87と、2つの線形ジョイント88、89とを備えるロボット86の側面図である。
【0064】
下部から上に向かってジョイントに番号を振ると、ロボット4の第2および第3のジョイントは、ロボット86の第2および第3のジョイントとは異なるタイプである。構成におけるこの違いを克服するために、本発明のオペレータインタフェースはロボットの電気機械構成を指定するデータを格納する構成変数と、それぞれのタイプの構成に対するコードセグメントを生成するディスプレイとを含む。
【0065】
好ましい実施形態では、構成変数は、ロボットのジョイントのタイプを線形または回転式に定義するデータおよび、指定された回転ジョイントが回旋可能(windable)か、つまり360度を超えて回ることが可能かどうかを定義するデータを格納するように定義かつ/または寸法設定される。
【0066】
図5〜7は、オペレータインタフェースモジュール20がどのように構成変数を使用して異なるタイプのロボットに対応するかという一例を提供する。図5に示すように、コードセグメント90を選択するディスプレイは、オペレータの要求に応答してジョイント/軸3に対する限度を設定する(ボックス92)。コードセグメント90は、構成変数94を調べてジョイント3が線形か回転式かを指定するデータの有無を見る(ボックス96)。
【0067】
制御されるロボットの第3のジョイントが、ロボット4のように回転式であるか、それともロボット86のように線形であるかに応じて、コードセグメント90は、ジョイントの制限を設けるのに利用可能な2つのディスプレイのうち1つを選択する。回転式ジョイントタイプの場合はボックス98が選択され、図6の回転ジョイント/軸のディスプレイが画面28に生成される。線形ジョイントの種類の場合はボックス100が選択され、図7の線形ジョイント/軸のディスプレイが生成される。
【0068】
以上の明細書および図面は例示的なものであり、本発明を限定するものではないことを理解されたい。本発明の精神および範囲を利用する、さらに他の構成および実施形態が可能であり、当業者には自明であろう。

【特許請求の範囲】
【請求項1】
機械ジョイントと、前記ジョイントを動かす機械アクチュエータと、位置フィードバックセンサとを有するロボット用のロボット命令のプログラムを処理する制御システムであって、前記機械アクチュエータが活動化信号を受信するように構成され、前記フィードバックセンサが位置信号を提供し、
汎用オペレーティングシステムを有する汎用コンピュータであって、ロボット命令の前記プログラムの処理を選択的に開始かつ停止し、複数のロボット動作コマンドを生成するプログラム実行モジュールを含む汎用コンピュータと、
前記汎用コンピュータと電子的に通信し、前記機械アクチュエータおよび前記位置フィードバックセンサに操作可能にリンクされたリアルタイムコンピュータサブシステムと、前記複数の動作コマンドを格納する動作コマンドデータバッファと、前記データバッファにリンクされ、前記複数の動作コマンドを順次処理するとともに、機械ジョイントの必要とされる位置を計算するロボット動作モジュールと、前記ロボット動作モジュールとソフトウェア的に通信し、フィードバック信号から必要な活動化信号および機械ジョイントの前記必要とされる位置を繰り返し計算する制御アルゴリズムとを備える制御システム。
【請求項2】
前記汎用コンピュータの操作における誤りを検出するための、前記リアルタイムコンピュータサブシステムと前記汎用コンピュータの間のウォッチドッグ相互通信をさらに備える請求項1に記載の制御システム。
【請求項3】
前記ウォッチドッグ相互通信が、
経過時間の指示を格納するタイマ変数と、
経過時間に応じて前記タイマ変数を調節するタイマコードセグメントと、
アクティブな位置およびセットされていない位置を有するアクティブソフトウェアスイッチと、
前記汎用コンピュータ内にインストールされ、前記アクティブソフトウェアスイッチを前記アクティブな位置に繰り返しセットする状況コードセグメントと、
前記リアルタイムコンピュータサブシステム内にインストールされ、前記アクティブソフトウェアスイッチが前記アクティブな位置にあるときには前記タイマ変数を所定の長さの時間に繰り返しリセットし、かつ前記アクティブソフトウェアスイッチを前記セットされていない位置に繰り返しセットするタイマリセットコードセグメントと、
前記リアルタイムコンピュータサブシステム内にインストールされ、前記タイマ変数を繰り返し検査し、前記タイマ変数が所定の値に到達した場合には前記活動信号をセットして前記ロボットを停止するフェイルセーフコードセグメントとを含む請求項2に記載の制御システム。
【請求項4】
前記アクティブソフトウェアスイッチが、前記セットされていない位置は0で表され、前記アクティブな位置は1で表される整数のソフトウェア変数として実装される請求項3に記載の制御システム。
【請求項5】
バスカードを受け取るデータバスをさらに備え、前記リアルタイムコンピュータサブシステムが中央処理装置を有するバスカードを含み、前記バスカードが前記データバス内にインストールされている請求項1に記載の制御システム。
【請求項6】
前記汎用コンピュータと前記リアルタイムコンピュータサブシステムが、標準データバスを介して電子的にリンクされている請求項1に記載の制御システム。
【請求項7】
前記汎用コンピュータと前記リアルタイムコンピュータサブシステムが、ISAデータバスを介して電子的にリンクされている請求項1に記載の制御システム。
【請求項8】
バスカードを受け取るデータバスをさらに含み、前記リアルタイムコンピュータサブシステムが中央処理装置を有する第1のバスカードを含み、前記汎用コンピュータが中央処理装置を有する第2のバスカードを含み、前記第1および前記第2のバスカードの両方が前記データバス内にインストールされている請求項1に記載の制御システム。
【請求項9】
前記リアルタイムコンピュータサブシステムが、デジタル信号プロセッサ(DSP)に基づくコンピュータを含む請求項1に記載の制御システム。
【請求項10】
前記汎用コンピュータが、Intel Pentium(登録商標)プロセッサに基づくコンピュータである請求項1に記載の制御システム。
【請求項11】
前記汎用コンピュータが、DEC/Compaq Alpha(登録商標)プロセッサに基づくコンピュータである請求項1に記載の制御システム。
【請求項12】
前記汎用オペレーティングシステムがリアルタイム接続されていない請求項1に記載の制御システム。
【請求項13】
前記汎用オペレーティングシステムが、Windows(登録商標)−NT、Windows(登録商標) 2000、Windows(登録商標) 95、Windows(登録商標) 98、Open VMS(登録商標)、PC/MS DOS、Unix(登録商標)からなる群の1つである請求項1に記載の制御システム。
【請求項14】
前記汎用コンピュータがIntel Pentium(登録商標)プロセッサに基づくコンピュータであり、前記汎用オペレーティングシステムがMicrosoft Windows(登録商標) NTである請求項1に記載の制御システム。
【請求項15】
前記機械アクチュエータがサーボモータであり、前記制御アルゴリズムがサーボ制御アルゴリズムである請求項1に記載の制御システム。
【請求項16】
前記ロボット動作モジュールが、動作コマンドに応答して必要なジョイントの位置を計算する運動モデルを含む請求項1に記載の制御システム。
【請求項17】
異なる電気機械構成のロボットの制御に適した多用途ロボット制御システムであって、
ビデオディスプレイと、一連のロボット動作コマンドを作成するためにオペレータインタフェースモジュールを実行する第1のデジタルプロセッサとを含む、ロボットに依存しないコンピュータユニットと、
前記ロボットに操作可能にリンクされたロボット特有のコントローラユニットであって、リアルタイムで結合されたオペレーティングシステムを実行する第2のデジタルプロセッサ、および前記ロボット動作コマンドを実行するロボット動作モジュールを含む、ロボットに依存しない前記コンピュータユニットと電子的に通信するロボット特有のコントローラユニットとを備える制御システム。
【請求項18】
汎用コンピュータおよびリアルタイムコンピュータサブシステムが、標準データバスを介して電子的に結合されている請求項17に記載の制御システム。
【請求項19】
前記第1のデジタルプロセッサが、
ロボットの電気機械構成を指定するデータを格納する構成変数と、
第1の電気機械構成に応じて第1のオペレータディスプレイを生成する第1のコードセグメントと、
第2の電気機械構成に応じて第2のオペレータディスプレイを生成する第2のコードセグメントと、
前記電気機械構成に応じて前記第1または第2のコードセグメントを選択する第3のコードセグメントとを含む、オペレータインタフェースモジュールを実行する請求項17に記載の制御システム。
【請求項20】
前記第1のコードセグメントが、回転ジョイントの動作限度を要求するオペレータディスプレイを生成する請求項19に記載の制御システム。
【請求項21】
前記第2のコードセグメントが、線形ジョイントの動作限度を要求するオペレータディスプレイを生成する請求項19に記載の制御システム。
【請求項22】
前記構成変数が、ロボットのジョイントタイプを指定するデータを格納するために定義される請求項19に記載の制御システム。
【請求項23】
前記構成変数が、線形ジョイントタイプを指定するデータを格納するために定義される請求項19に記載の制御システム。
【請求項24】
前記構成変数が、回転ジョイントタイプを指定するデータを格納するために定義される請求項19に記載の制御システム。
【請求項25】
前記構成変数が、ロボットのジョイントが回旋可能かを指定するデータを格納するために定義される請求項19に記載の制御システム。
【請求項26】
異なる電気機械構成のロボットを制御するオペレータインタフェースモジュールであって、
第1の電気機械構成に応じて第1のオペレータディスプレイを生成する第1のコードセグメントと、
第2の電気機械構成に応じて第2のオペレータディスプレイを生成する第2のコードセグメントと、
前記電気機械構成に応じて前記第1または第2のコードセグメントを選択する第3のコードセグメントとを備えるオペレータインタフェースモジュール。
【請求項27】
前記第1のコードセグメントが、回転ジョイントの動作限度を要求するオペレータディスプレイを生成する請求項26に記載のオペレータインタフェース。
【請求項28】
前記第2のコードセグメントが、線形ジョイントの動作限度を要求するオペレータディスプレイを生成する請求項26に記載のオペレータインタフェース。
【請求項29】
前記構成変数が、ロボットのジョイントタイプを指定するデータを格納するために定義される請求項26に記載のオペレータインタフェースモジュール。
【請求項30】
前記構成変数が、線形ジョイントタイプを指定するデータを格納するために定義される請求項26に記載のオペレータインタフェースモジュール。
【請求項31】
前記構成変数が、回転ジョイントタイプを指定するデータを格納するために定義される請求項26に記載のオペレータインタフェースモジュール。
【請求項32】
前記構成変数が、ロボットのジョイントが回旋可能であるかを指定するデータを格納するために定義される請求項26に記載のオペレータインタフェースモジュール。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−238233(P2009−238233A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−116149(P2009−116149)
【出願日】平成21年5月13日(2009.5.13)
【分割の表示】特願2002−555354(P2002−555354)の分割
【原出願日】平成13年12月20日(2001.12.20)
【出願人】(509166364)コロウエア・インコーポレイテツド (1)
【Fターム(参考)】