(57)【要約】改良型の多用途ロボット制御システム１０は、リアルタイムコンピュータサブシステム１６と電子的に通信する汎用オペレーティングシステムを有する汎用コンピュータ１４を備える。この汎用コンピュータは、ロボット命令２４のプログラム処理を選択的に開始および停止し、複数のロボット動作コマンド２６を生成するプログラム実行モジュール１８を含む。リアルタイムコンピュータサブシステムは、複数の動作コマンド２６を格納する動作コマンドデータバッファ３４と、動作を順次処理し、ロボットの機械ジョイントに必要な位置を計算する、データバッファ３４にリンクされたロボット動作モジュール３２と、動作モジュール３２とソフトウェア的に通信する、ロボットのジョイント位置フィードバック信号４４／４６から必要なアクチュエータ活動化信号５０／５２を繰り返し計算する動的な制御アルゴリズム３８とを含む。
2004524171.tif 000002
【特許請求の範囲】
【請求項１】
機械ジョイントと、前記ジョイントを動かす機械アクチュエータと、位置フィードバックセンサとを有するロボット用のロボット命令のプログラムを処理する制御システムであって、前記機械アクチュエータが活動化信号を受信するように構成され、前記フィードバックセンサが位置信号を提供し、
汎用オペレーティングシステムを有する汎用コンピュータであって、ロボット命令の前記プログラムの処理を選択的に開始かつ停止し、複数のロボット動作コマンドを生成するプログラム実行モジュールを含む汎用コンピュータと、
前記汎用コンピュータと電子的に通信し、前記機械アクチュエータおよび前記位置フィードバックセンサに操作可能にリンクされたリアルタイムコンピュータサブシステムと、前記複数の動作コマンドを格納する動作コマンドデータバッファと、前記データバッファにリンクされ、前記複数の動作コマンドを順次処理するとともに、機械ジョイントの必要とされる位置を計算するロボット動作モジュールと、前記ロボット動作モジュールとソフトウェア的に通信し、フィードバック信号から必要な活動化信号および機械ジョイントの前記必要とされる位置を繰り返し計算する制御アルゴリズムとを備える制御システム。
【請求項２】
前記汎用コンピュータの操作における誤りを検出するための、前記リアルタイムコンピュータサブシステムと前記汎用コンピュータの間のウォッチドッグ相互通信をさらに備える請求項１に記載の制御システム。
【請求項３】
前記ウォッチドッグ相互通信が、
経過時間の指示を格納するタイマ変数と、
経過時間に応じて前記タイマ変数を調節するタイマコードセグメントと、
アクティブな位置およびセットされていない位置を有するアクティブソフトウェアスイッチと、
前記汎用コンピュータ内にインストールされ、前記アクティブソフトウェアスイッチを前記アクティブな位置に繰り返しセットする状況コードセグメントと、
前記リアルタイムコンピュータサブシステム内にインストールされ、前記アクティブソフトウェアスイッチが前記アクティブな位置にあるときには前記タイマ変数を所定の長さの時間に繰り返しリセットし、かつ前記アクティブソフトウェアスイッチを前記セットされていない位置に繰り返しセットするタイマリセットコードセグメントと、
前記リアルタイムコンピュータサブシステム内にインストールされ、前記タイマ変数を繰り返し検査し、前記タイマ変数が所定の値に到達した場合には前記活動信号をセットして前記ロボットを停止するフェイルセーフコードセグメントとを含む請求項２に記載の制御システム。
【請求項４】
前記アクティブソフトウェアスイッチが、前記セットされていない位置は０で表され、前記アクティブな位置は１で表される整数のソフトウェア変数として実装される請求項３に記載の制御システム。
【請求項５】
バスカードを受け取るデータバスをさらに備え、前記リアルタイムコンピュータサブシステムが中央処理装置を有するバスカードを含み、前記バスカードが前記データバス内にインストールされている請求項１に記載の制御システム。
【請求項６】
前記汎用コンピュータと前記リアルタイムコンピュータサブシステムが、標準データバスを介して電子的にリンクされている請求項１に記載の制御システム。
【請求項７】
前記汎用コンピュータと前記リアルタイムコンピュータサブシステムが、ＩＳＡデータバスを介して電子的にリンクされている請求項１に記載の制御システム。
【請求項８】
バスカードを受け取るデータバスをさらに含み、前記リアルタイムコンピュータサブシステムが中央処理装置を有する第１のバスカードを含み、前記汎用コンピュータが中央処理装置を有する第２のバスカードを含み、前記第１および前記第２のバスカードの両方が前記データバス内にインストールされている請求項１に記載の制御システム。
【請求項９】
前記リアルタイムコンピュータサブシステムが、デジタル信号プロセッサ（ＤＳＰ）に基づくコンピュータを含む請求項１に記載の制御システム。
【請求項１０】
前記汎用コンピュータが、Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）プロセッサに基づくコンピュータである請求項１に記載の制御システム。
【請求項１１】
前記汎用コンピュータが、ＤＥＣ／Ｃｏｍｐａｑ  Ａｌｐｈａ（登録商標）プロセッサに基づくコンピュータである請求項１に記載の制御システム。
【請求項１２】
前記汎用オペレーティングシステムがリアルタイム接続されていない請求項１に記載の制御システム。
【請求項１３】
前記汎用オペレーティングシステムが、Ｗｉｎｄｏｗｓ（登録商標）−ＮＴ、Ｗｉｎｄｏｗｓ（登録商標）  ２０００、Ｗｉｎｄｏｗｓ（登録商標）  ９５、Ｗｉｎｄｏｗｓ（登録商標）  ９８、Ｏｐｅｎ  ＶＭＳ（登録商標）、ＰＣ／ＭＳ  ＤＯＳ、Ｕｎｉｘ（登録商標）からなる群の１つである請求項１に記載の制御システム。
【請求項１４】
前記汎用コンピュータがＩｎｔｅｌ  Ｐｅｎｔｉｕｍ（登録商標）プロセッサに基づくコンピュータであり、前記汎用オペレーティングシステムがＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）  ＮＴである請求項１に記載の制御システム。
【請求項１５】
前記機械アクチュエータがサーボモータであり、前記制御アルゴリズムがサーボ制御アルゴリズムである請求項１に記載の制御システム。
【請求項１６】
前記ロボット動作モジュールが、動作コマンドに応答して必要なジョイントの位置を計算する運動モデルを含む請求項１に記載の制御システム。
【請求項１７】
異なる電気機械構成のロボットの制御に適した多用途ロボット制御システムであって、
ビデオディスプレイと、一連のロボット動作コマンドを作成するためにオペレータインタフェースモジュールを実行する第１のデジタルプロセッサとを含む、ロボットに依存しないコンピュータユニットと、
前記ロボットに操作可能にリンクされたロボット特有のコントローラユニットであって、リアルタイムで結合されたオペレーティングシステムを実行する第２のデジタルプロセッサ、および前記ロボット動作コマンドを実行するロボット動作モジュールを含む、ロボットに依存しない前記コンピュータユニットと電子的に通信するロボット特有のコントローラユニットとを備える制御システム。
【請求項１８】
汎用コンピュータおよびリアルタイムコンピュータサブシステムが、標準データバスを介して電子的に結合されている請求項１７に記載の制御システム。
【請求項１９】
前記第１のデジタルプロセッサが、
ロボットの電気機械構成を指定するデータを格納する構成変数と、
第１の電気機械構成に応じて第１のオペレータディスプレイを生成する第１のコードセグメントと、
第２の電気機械構成に応じて第２のオペレータディスプレイを生成する第２のコードセグメントと、
前記電気機械構成に応じて前記第１または第２のコードセグメントを選択する第３のコードセグメントとを含む、オペレータインタフェースモジュールを実行する請求項１７に記載の制御システム。
【請求項２０】
前記第１のコードセグメントが、回転ジョイントの動作限度を要求するオペレータディスプレイを生成する請求項１９に記載の制御システム。
【請求項２１】
前記第２のコードセグメントが、線形ジョイントの動作限度を要求するオペレータディスプレイを生成する請求項１９に記載の制御システム。
【請求項２２】
前記構成変数が、ロボットのジョイントタイプを指定するデータを格納するために定義される請求項１９に記載の制御システム。
【請求項２３】
前記構成変数が、線形ジョイントタイプを指定するデータを格納するために定義される請求項１９に記載の制御システム。
【請求項２４】
前記構成変数が、回転ジョイントタイプを指定するデータを格納するために定義される請求項１９に記載の制御システム。
【請求項２５】
前記構成変数が、ロボットのジョイントが回旋可能かを指定するデータを格納するために定義される請求項１９に記載の制御システム。
【請求項２６】
異なる電気機械構成のロボットを制御するオペレータインタフェースモジュールであって、
第１の電気機械構成に応じて第１のオペレータディスプレイを生成する第１のコードセグメントと、
第２の電気機械構成に応じて第２のオペレータディスプレイを生成する第２のコードセグメントと、
前記電気機械構成に応じて前記第１または第２のコードセグメントを選択する第３のコードセグメントとを備えるオペレータインタフェースモジュール。
【請求項２７】
前記第１のコードセグメントが、回転ジョイントの動作限度を要求するオペレータディスプレイを生成する請求項２６に記載のオペレータインタフェース。
【請求項２８】
前記第２のコードセグメントが、線形ジョイントの動作限度を要求するオペレータディスプレイを生成する請求項２６に記載のオペレータインタフェース。
【請求項２９】
前記構成変数が、ロボットのジョイントタイプを指定するデータを格納するために定義される請求項２６に記載のオペレータインタフェースモジュール。
【請求項３０】
前記構成変数が、線形ジョイントタイプを指定するデータを格納するために定義される請求項２６に記載のオペレータインタフェースモジュール。
【請求項３１】
前記構成変数が、回転ジョイントタイプを指定するデータを格納するために定義される請求項２６に記載のオペレータインタフェースモジュール。
【請求項３２】
前記構成変数が、ロボットのジョイントが回旋可能であるかを指定するデータを格納するために定義される請求項２６に記載のオペレータインタフェースモジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はロボットの制御装置および方法に関し、より詳細には、様々な電気機械構成のロボットの制御に適した多用途な制御システムに関する。
【０００２】
著作権の通知
本特許出願のいくつかの部分は、著作権保護の対象であるものを含む。著作権所有者は、それが特許庁にあるものである限り、本特許文書の誰による複製、または本特許開示に対しても異論はない。
【背景技術】
【０００３】
産業用ロボットおよび類似の柔軟性の高い工作機械は、１９７０年代後半に商業的に受け入れられるようになった。それ以来、産業用ロボットの使用は特に自動車の製造において増加し続けている。
【０００４】
産業用ロボットの導入は、製造上の柔軟性が目的である。ロボットの使用により、組み立てラインおよび作業区画において手動による装置変更をまったく行わずに、または最低限しか行わずに異なる品目を作製することが可能となる。製造におけるロボットの応用例のリストは長く、常に増加している。たとえば、コンピュータによる視覚検査、点溶接およびアーク溶接、吹付け塗装、掘削、部品配置、接着剤塗布などがある。
【０００５】
ロボットと工作機械の境界は厳密には定義されていない。従来の工作機械と比較して、ロボットは一般により多くの動作ジョイント（または軸）を有し、それによってエンドエフェクタの位置決めをより高い自由度で行うことができる。ロボット工学の分野では、「エンドエフェクタ」という用語は、ロボットが有する駆動装置の種類を包含するために使用されている。こうした装置は、たとえば点溶接などの製造の適用分野に応じて変わる。
【０００６】
ロボットは通常、機械ジョイントを有する位置決めアーム、ジョイント付近を動かすモータなどのアクチュエータ、ロボットの位置（または姿勢）の決定を助けるセンサを含む。大多数はこれらの中核部分を含むが、新旧の産業用ロボットはその他の点では電気機械の構成が非常に異なる。
【０００７】
たとえば、回転（すなわちロータリ）ジョイントのみによるロボットもあれば、線形軸と回転軸の組合せを備えるロボットもある。一連の伸縮アームおよび回転ジョイントを有するロボットは、関節式ロボット（ａｒｔｉｃｕｌａｔｉｎｇ  ｒｏｂｏｔ）と呼ばれている。
【０００８】
所与のクラスのロボットのうちでも、機械的に様々な変形がある。関節式ロボットの回転ジョイントはたとえば、支持アームから離れて位置する肩ジョイントでも、支持アームの中心に位置する肘ジョイントでも、支持アームの軸方向に沿って位置する手首ジョイントでもよい。同様に、線形ジョイントは同一線上にあってもよく、直交してもよい。アクチュエータおよびフィードバックセンサも、構成が様々となるもう１つの原因である。たとえば、ステッパモータを備えるロボットもあれば、サーボモータを備えるものもある。
【０００９】
電子制御システムは、ロボットの動作を制御およびプログラムするために利用される。エンドエフェクタとロボットの位置決めの間の必要な整合された動作のために、ロボット制御システムはあるレベルのソフトウェアプログラミング、およびフィールドＩ／Ｏとエンドエフェクタサブシステムの間のインタフェースを提供することが好ましい。従来のロボット制御システムは、ロボットの構成およびロボット製造者によって異なる特注の電子機器を集めたものである。
【００１０】
製造過程においてロボットは、ロボットの作業空間内にある一連の地点でエンドエフェクタを動かすよう、制御命令のリストによって指示を受ける。ロボットの命令シーケンス（またはプログラム）は、不揮発性記憶システム（たとえば磁気ディスク上のコンピュータファイルなど）内に保持することが好ましい。
【００１１】
製造会社およびロボットユーザは、技術者および専門技術者を介して、制御システムの製造に２つの重要な機能を要求するようになった。第１に、ロボットのユーザーは特注の専用システムではなく、商業標準のコンピュータシステムおよびオペレーティングシステムを使用して実装された制御システムを求める。商業標準のコンピュータのハードウェアおよびソフトウェアを使用するこうした傾向は、「オープンシステムムーブメント（ｏｐｅｎ  ｓｙｓｔｅｍｓ  ｍｏｖｅｍｅｎｔ）」と呼ばれている。
【００１２】
標準コンピュータに基づく制御システムが好まれる理由は、標準ネットワークおよびＩ／Ｏ装置（たとえば標準的なフロッピー（登録商標）ドライブ）を介した製造データへのアクセスの簡略化と、他のソフトウェアを実行できる可能性と、交換部品および拡張部品の競争市場とをロボットユーザに提供するからである。オープンシステムムーブメントの根底にあるのは、ロボットユーザの、システムの変更および維持のために長期にわたって工作機械およびロボット製造者に依存しなければならない状況を緩和するという目標である。
【００１３】
ロボットユーザが求める第２の機能は、（全社でなくとも）施設全体にわたってすべてのロボットに対するオペレータおよびプログラマのインタフェースを共通にすることである。すべてのロボットに対する共通のユーザインタフェースにより、特注の専用システムの使い方に関して専門オペレータを訓練する必要が減る。
【００１４】
オープンシステムの機能に関連して、標準的な汎用コンピュータシステムに基づくロボット制御システムを供給しようとする努力は、汎用オペレーティングシステムに制限があるため十分には成功しなかった。ロボットの安全性および正確さに対する要件から、ロボット制御システムの信頼性が高く、すなわち故障しにくく、リアルタイム接続されていることが必須とされる。マイクロソフト社のＷｉｎｄｏｗｓ（登録商標）  ＮＴなどの汎用オペレーティングシステム向けの多様な機能をもつ設計の目的は、非常に複雑で、幾分信頼性の低いソフトウェアプラットフォームを提供してきた。さらに、こうしたシステムはリアルタイムでの制御ループの実行を保証できない。
【００１５】
共通オペレータインタフェースの機能に関連して、オペレータインタフェースにせめて制限された標準でも提供しようとの試みは、特定のロボット製造者にとどまっていた。異なるロボット製造者を協働させることの難しさにもかかわらず、電気機械構成が多岐にわたるため、共通オペレータインタフェースを有するロボット制御システムの開発がこれまで実質的に妨げられてきた。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
したがって、商業標準のコンピュータシステムを利用し、かつ異なる構成のロボットに対応できる改良型のロボット制御システムを提供することが望ましい。特に、オープンシステムおよび共通オペレータインタフェースの利点をロボット制御に提供することが望ましい。
【課題を解決するための手段】
【００１７】
本発明によるロボット制御システムは、商業標準の、汎用コンピュータハードウェアおよびソフトウェアによるロボット制御を提供する。本発明による制御システムおよび方法は、多様な電気機械構成のロボットに使用可能であり、それによって異なるロボット製造者のロボットに共通のオペレータインタフェースを与える。
【００１８】
本発明は、機械ジョイントと、ジョイントを動かす機械アクチュエータと、位置フィードバックセンサとを備えたロボット用のロボット命令プログラムを実行または処理する制御システムを提供する。ロボットの機械アクチュエータは活動化信号を受け取り、フィードバックセンサは位置信号を提供する。
【００１９】
本発明による制御システムは、汎用のオペレーティングシステムと、汎用コンピュータと電子的に通信し、機械アクチュエータおよび位置フィードバックセンサに操作可能にリンクされた、リアルタイムコンピュータサブシステムとを有する汎用コンピュータを含む。この汎用コンピュータは、ロボットの命令プログラムの処理を選択的に開始および停止し、かつ複数のロボット動作コマンドを生成する、プログラム実行モジュールを含む。
【００２０】
リアルタイムコンピュータシステム内部には、複数の動作コマンドを記憶する動作コマンドデータバッファがある。リアルタイムコンピュータサブシステムはまた、ロボット動作モジュールおよび制御アルゴリズムを含む。動作モジュールはデータバッファにリンクされ、機械ジョイントに対する複数の動作コマンドを順次処理し、かつ必要な位置を計算する。制御アルゴリズムは、ロボット動作モジュールとソフトウェア的に通信し、フィードバック信号から必要な活動化信号、および必要とされる機械ジョイントの位置を繰り返し計算するためのものである。
【００２１】
本発明の別の態様は、様々な電気機械構成のロボットの制御に適したロボット制御システムを提供する。この制御システムは、ロボット特有のコントローラユニットと電子通信およびソフトウェア通信する、ロボットに依存しないコンピュータユニットを含む。
【００２２】
ロボットに依存しないコンピュータユニットは、Ｉ／Ｏインタフェースによってロボットに操作可能にリンクされ、ビデオディスプレイと、一連のロボット動作コマンドを作成するオペレータインタフェースモジュールを実行する第１のデジタルプロセッサとを含む。ロボット特有のコントローラユニットは、リアルタイム接続のオペレーティングシステムを実行する第２のデジタルプロセッサ、およびロボット動作コマンドを実行するロボット動作モジュールを含む。
【００２３】
オペレータインタフェースモジュールは、ロボットの電気機械構成を決定するデータを記憶するための構成変数と、第１の電気機械構成に応じて第１のオペレータディスプレイを生成する第１のコードセグメントと、第２の電気機械構成に応じて第２のオペレータディスプレイを生成する第２のコードセグメントと、電気機械構成に応じて第１または第２のコードセグメントを選択する第３のコードセグメントとを含むことが好ましい。
【００２４】
本明細書の一部をなす添付の図面において、同じ番号は全体を通して同じ部分を表す。
【発明を実施するための最良の形態】
【００２５】
本明細書で開示する発明は、もちろん多くの異なる形式での実施形態が可能である。本発明の好ましい実施形態は、図面で示し、本明細書で以下に詳しく説明する。しかし、本開示は本発明の原理を例示するものであり、本発明を説明する実施形態に限定するものではないことを理解すべきである。
【００２６】
図面において、１つのブロックまたはセルは、識別された単一の機能を一緒に実行するいくつかの別個のソフトウェアおよび／またはハードウェア構成要素を示すことができる。同様に、１本の線はいくつかの別個の信号、あるいはソフトウェアデータの共用または相互接続のいくつかの例を表すことができる。
【００２７】
ロボットは、他の製造機械と同様に、機械ジョイントを有する位置決めアームと、ジョイントの回りを動かすモータなどの位置決めアクチュエータと、ロボットのある部分の位置の指示を与える位置フィードバックセンサとを含む。本明細書で使用する「機械アクチュエータ」という用語は、ロボットの動作に使用される様々な形態の装置を指す。例示的なロボットアクチュエータには、油圧ピストン、空気圧ピストン、サーボモータ、ステッパモータ、リニアモータがある。
【００２８】
図１を参照すると、Ｃｉｎｃｉｎｎａｔｉ  Ｍｉｌａｃｒｏｎ  ７７６ロボットという産業用ロボット４を有する制御システム１０の諸要素を示してある。ロボット４は、一連の回転ジョイント５、６、７、８、対応するサーボモータ、エンドエフェクタ９を含む。制御システム１０は、汎用コンピュータ１４およびリアルタイムコンピュータサブシステム１６を含む。
【００２９】
本明細書で使用する「汎用コンピュータ」という語句は、装置制御など特定の適用分野向けの特注のＣＰＵベースの電子機器ではなく、様々な適用分野向けに設計される商業標準コンピュータを指す。例として、通常、ＩＢＭとの互換性のあるパーソナルコンピュータ、より簡単にはＰＣと呼ばれるよく知られているコンピュータ群が含まれる。ＰＣは、インテルコーポレーション（インテル）、Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．（ＡＭＤ）、ＶＩＡ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ．の複合命令セット（ＣＩＳＣ）ＣＰＵに基づく。関連する発展しつつあるインテルのＣＰＵ製品ラインには、「８０４８６（登録商標）」、「Ｐｅｎｔｉｕｍ（登録商標）」、「Ｐｅｎｔｉｕｍ（登録商標）ＩＩ」、「Ｐｅｎｔｉｕｍ（登録商標）ＩＩＩ」の名称で販売されているＣＰＵチップセットが含まれる。ＡＭＤによる汎用コンピュータ向けのＣＰＵ製品ラインの一例は、「ＡＭＤ−Ｋ６（登録商標）」の名称で販売されている。ＶＩＡ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ．の汎用コンピュータ向けのＣＰＵは、「Ｃｙｒｉｘ（登録商標）」の名称で販売されている。
【００３０】
縮小命令セット（ＲＩＳＣ）ＣＰＵに基づく汎用コンピュータも同様によく知られている。例として、コンパックコンピュータコーポレーションから販売されているＡｌｐｈａ（登録商標）チップセットに基づくコンピュータがある。
【００３１】
図１に示すように、汎用コンピュータ１４は汎用オペレーティングシステムで動作する。「汎用オペレーティングシステム」という語句は、ＭＳ−ＤＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）  ９５、Ｗｉｎｄｏｗｓ（登録商標）  ９８、Ｗｉｎｄｏｗｓ（登録商標）ＮＴ、Ｗｉｎｄｏｗｓ（登録商標）  ２０００の名称でマイクロソフトから販売されているような、商業標準オペレーティングシステムを指す。汎用オペレーティングシステムの他の例には、Ｍａｃｉｎｔｏｓｈ（登録商標）（米国アップルコンピュータ社）、ＵＮＩＸ（登録商標）（販売代理店多数）、Ｏｐｅｎ  ＶＭＳ（登録商標）（コンパックコンピュータコーポレーション）がある。
【００３２】
汎用コンピュータで実行するために、プログラム実行モジュール１８、オペレータインタフェースモジュール２０、ウォッチドッグ通信コードセグメント２２がインストールされる。本明細書で使用する「モジュール」という用語は、プログラム、サブプログラム、ソフトウェアプロセス、サブルーチン、または一群のコードセグメントなどのソフトウェアの要素を指す。制御システム１０のソフトウェアモジュールは、別々のプロセスとして実行される、別々の実行可能なプログラムであることが好ましい。別段の指定がない限り、ソフトウェアモジュールおよびコードセグメントは、サブルーチンの呼出し、共通共有記憶空間などを介して必要とされる、様々なソフトウェア変数および定数へのアクセスを共有するように構成される。
【００３３】
プログラム実行モジュール１８は、図１に示すようにデータファイルとして記憶できるロボットの命令プログラム２４を処理する。プログラム実行モジュール１８は、ロボット命令プログラム２４からロボット動作コマンド２６を生成してリアルタイムコンピュータサブシステム１６に送る。ロボットオペレータが生成した、人間にとって比較的読取り可能なロボット命令２４は、実行モジュール１８によって解釈され、リアルタイムコンピュータサブシステム１６用の動作コマンド２６に翻訳される。
【００３４】
その上、プログラム実行モジュール１８により、オペレータは、オペレータインタフェースモジュール２０を介したオペレータからのプロンプトに応答してリアルタイムコンピュータサブシステム１６への動作コマンド２６の転送を選択的に開始および停止することによってロボットプログラム２４の実行を制御することができる。
【００３５】
オペレータインタフェースモジュール２０は、オペレータディスプレイ画面２８と、キーボードおよび／またはマウス３０と、要望に応じて他の標準周辺装置に操作可能にリンクされる。好ましい実施形態では、ディスプレイ画面２８は、ロボットオペレータがディスプレイおよびキーボード／マウス３０の両方を介してプロンプトおよびデータを入力できるタッチスクリーンである。
【００３６】
ロボットオペレータのプロンプトおよび選択により、オペレータインタフェースモジュール２０は、ロボット４を制御可能に動かすために、ロボット命令ファイル２４をディスクからロードできるように、また、プログラム実行モジュール１８によって処理（または実行）できるようにする。オペレータインタフェースモジュール２０はオペレータ画面を生成し、オペレータの数値データおよびプロンプトを受け入れる。数値データの項目は、必要に応じて他のプログラムモジュールに通信される。ロボットプログラムの実行の開始および停止を求める、ロボットオペレータによるプロンプトは、オペレータインタフェースモジュール２０に受け取られ、実行モジュール１８に転送される。
【００３７】
プログラム２４をロード、開始、停止するオペレータ入力を受け入れることに加えて、オペレータインタフェース２０は、オペレータがロボット命令２５の新規プログラムを生成するためのエディタを含むことが好ましい。本発明は、Ｗｉｎｄｏｗｓ（登録商標）  ＮＴ  ＰＣなどの汎用コンピュータを利用する制御システムを提供するので、業務用ＰＣなど別のＰＣ上でロボットプログラムを生成し、その後ディスクドライブやコンピュータネットワーク接続などの標準周辺装置を介してそのファイルを汎用コンピュータ１４に転送することも可能である。
【００３８】
汎用コンピュータ１４は、リアルタイムコンピュータサブシステム１６とデータ交換（すなわち通信）できるように電子的にリンクされる。リアルタイムコンピュータサブシステム１６は、処理制御アプリケーション用に設計された、ハードウェア、ファームウェア、ソフトウェアの組合せを含むことが好ましい。汎用オペレーティングシステムを備えた汎用コンピュータとは違って、リアルタイムコンピュータは、複数の制御ループに必要な計算を、実質的に中断不可能なように比較的速いサイクル時間（たとえば０．５〜２ミリ秒）で実行する。
【００３９】
拡張信号処理の要件のために、リアルタイムコンピュータサブシステム１６のＣＰＵコンピュータはＤＳＰに基づくコンピュータであることが好ましい。この範疇のＤＳＰに基づく制御コンピュータのうちで、Ｄｅｌｔａ  Ｔａｕ  Ｄａｔａ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．（カリフォルニア州Ｃｈａｔｓｗｏｒｔｈ）から「ＰＭＡＣ」、「ＰＭＡＣ２」、「Ｔｕｒｂｏ  ＰＭＡＣ」、「ＵＭＡＣ」の名称で市販されているシステムが今のところ好ましい。
【００４０】
リアルタイムコンピュータサブシステム１６は、ロボット動作モジュール３２と、動作コマンドデータバッファ３４と、運動モデル３６と、サーボ制御アルゴリズム３８と、ウォッチドッグ相互通信コードセグメント４０とを含む。リアルタイムサブシステム１６はまた、位置決めに関連するロボット４の電子機器への操作可能なリンクを提供する、Ｉ／Ｏハードウェアおよびソフトウェアドライバを含む。ブロック４２は、ロボットフィードバック信号４４の受信と、コンピュータデータフィードバック信号４６への翻訳に必要なハードウェアおよびソフトウェア構成要素を表す。同様に、ブロック４８は、コンピュータデータの設定値５０をアクチュエータに適した活動化信号５２に変換するのに必要な構成要素を表す。
【００４１】
活動化信号５２およびフィードバック信号４４はロボット４の構成に応じてアナログ信号でも、デジタル信号でも、両方の組合せでもよい。たとえば、一般的な増幅器付きモータであるアクチュエータは、アナログ活動化信号を呼び出す。しかし、より新しい、いわゆる「スマート」デバイスはデジタル信号によって直接活動化することができる。したがって、Ｉ／Ｏシステム４２および４８が実行する信号変換の種類は、ロボットの構成によって変わる。
【００４２】
ロボット動作モジュール３２はリアルタイムコンピュータサブシステム１６の内部にあり、動作コマンド２６およびフィードバック信号４４／４６を受け入れて必要な活動化信号５０／５２を生成する。ロボット動作モジュール３２は運動モデル３６およびサーボ制御アルゴリズム３８を利用し、動作コマンド２６を必要なジョイント位置に、次いで適切な活動化信号の設定値５０に翻訳する。本発明の好ましい実施形態では、動作コマンド２６はジョイント位置の変化またはエンドエフェクタの位置の変化として表される。
【００４３】
ジョイント位置に基づく動作コマンドは、１次元ジョイント軸モデルのあらかじめ定義された範囲、たとえば回転軸は＋９０度〜−９０度、線形ジョイントは０〜１２００ミリメートル（ｍｍ）に依拠する。ジョイント位置に基づく動作コマンドの一例は、「ジョイント１を６０度に設定」である。本発明の好ましい実施形態では、ロボット動作モジュール３２は、ロボットのすべての機械ジョイント５、６、７、８の位置を指定する関数呼出しとしてジョイント動作コマンドを受け入れ、それによってただ１つまたはすべてのジョイントを動かすことができるようにプログラムされる。
【００４４】
エンドエフェクタの位置として表される動作コマンドは、エンドエフェクタを配置するための、あらかじめ定義された、ただし通常の３次元座標システムを利用する。エンドエフェクタの位置に基づく動作コマンドは、エンドエフェクタの作業空間内のある位置にエンドエフェクタを動かすための呼出しである。
【００４５】
ジョイント位置動作コマンドのために、ロボット動作モジュール３２は、フィードバック信号４６からのデータをジョイント位置に翻訳するソフトウェアモデルを含む。必要な計算は、利用可能なジョイントのタイプおよびフィードバック信号のタイプに応じて変わる。たとえば、ジョイント位置の表示を直接測定するフィードバックセンサは限られた翻訳しか必要とせず、位置決めモータの回転数を測定するフィードバックセンサはより複雑な翻訳を必要とする。
【００４６】
エンドエフェクタの位置に基づいた動作コマンドを処理するためには、ロボット動作モジュール３２はさらに、エンドエフェクタ９に所望の位置が与えられた場合のジョイント５、６、７、８の必要な位置を計算する運動モデルを含む。
【００４７】
より具体的には、リアルタイムコンピュータサブシステム１６は、ロボットの順方向運動および逆方向運動計算用の、運動モデルのアルゴリズムを使用する。順方向運動計算は、ロボットの既知のジョイント位置またはアクチュエータ位置が与えられている場合に、エンドエフェクタの位置および方向を決定することを指す。逆方向運動計算は、エンドエフェクタ位置が与えられているとすると、ジョイント角度またはアクチュエータ位置を決定することである。
【００４８】
個々のジョイント軸モデルと全般的な運動モデルの必要な組合せは、図１にブロック３６で表してある。運動アルゴリズムは他の特許および技術文献に記載されている。たとえば、Ｊｏｈｎ  Ｊ．Ｃｒａｉｇ著「Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｒｏｂｏｔｉｃｓ：Ｍｅｃｈａｎｉｃｓ  ａｎｄ  Ｃｏｎｔｒｏｌ」（第２版、Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙ、１９８９）の３章および４章を参照されたい。使用される具体的なモデルは、制御されるロボットの電気機械構成に応じて変わる。
【００４９】
位置決めアクチュエータとフィードバックセンサの組合せが動的なシステムを作り上げるので、リアルタイムコンピュータサブシステム１６はまた、必要とされる動的な計算をもたらす制御アルゴリズム３８を含む。利用可能なクローズドループサーボモータ制御体系のうちでは、フィードフォワードアルゴリズムを有する比例積分微分（ＰＩＤ）が好ましい。
【００５０】
データバッファ３４は、汎用コンピュータ１４およびリアルタイムコンピュータサブシステム１６の両方のプログラムが、プログラム実行モジュール１８から受け取った複数の動作コマンド２６を格納するのに利用可能なソフトウェア変数である。データバッファ３４にとって望ましい記憶容量は変わりうるが、本発明の好ましい実施形態では、データバッファ３４および接続されるモジュールは、動作コマンドが２〜１０個、より好ましくは３〜４個格納されるように構成することが好ましい。
【００５１】
制御システム１０は、動作コマンドデータバッファ３４を用いて、汎用コンピュータ１４におけるプログラム実行の遅延に応答するときでも、実質的に連続し、割り込みを受けない、ロボット４の制御をもたらす。
【００５２】
上で述べたように、汎用オペレーティングシステムを実行する汎用コンピュータは、比較的信頼性が低く、予測不可能な制御プログラムの中断をもたらす。リアルタイムコンピュータサブシステム１６によるロボット４の特有の動作制御は、汎用コンピュータ１４の操作における予測不可能な遅延の影響を受けない。というのは、ロボット動作モジュール３２はデータバッファ３４から動作コマンド２６を取り出し続けることができるからである。
【００５３】
様々なデータ転送機構が、汎用コンピュータ１４とリアルタイムコンピュータサブシステム１６の間の電子的通信およびソフトウェアレベルの通信を提供するために利用可能であるが、商業標準のデータバスバックプレーンが好ましい。データバス接続は、図１に参照番号５４で表してある。ＩＳＡバス、ＰＣＩバス、およびＶＭＥバスが例示的な標準データバスであり、現時点ではＩＳＡバスが好ましい。
【００５４】
データバス５４への、好都合で省スペースな接続のためには、汎用コンピュータ１４およびリアルタイムコンピュータサブシステム１６のコンピュータマザーボード部分を、データバスカードとする。本明細書で使用する「バスカード」という用語は、電子部品を有するプリント回路板と、データバスシャーシのカードスロット内で受けられる、複数の接点を有するタブとを指す。上述のＤｅｌｔａ  Ｔａｕ  Ｄａｔａ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．から販売されているＤＳＰリアルタイムコンピュータは、ＩＳＡデータバスカードとして利用可能である。
【００５５】
好ましい実施形態では、制御システム１０は、汎用コンピュータ１４とリアルタイムコンピュータサブシステム１６の間のセキュリティ（または「ウォッチドッグ」）通信（ブロック２２および４０）を含む。図２のフローチャートは、ウォッチドッグ管理を維持するための好ましいコードセグメントを示す。図に示すように、好ましいウォッチドッグ方式は、汎用コンピュータ１４およびリアルタイムコンピュータサブシステム１６の両方において動作するコードセグメントを含む。汎用コンピュータ１４の内部には状況コードセグメント５６があり、リアルタイムコンピュータサブシステムの内部にはタイマコードセグメント５８、タイマリセットコードセグメント６０、およびフェイルセーフコードセグメント６２がある。
【００５６】
コードセグメントは２つのソフトウェア変数と相互作用する。つまり、汎用コンピュータ１４内のプログラムがアクティブかつ／または誤りがないかどうかを示すアクティブソフトウェアスイッチ（ａｃｔｉｖｉｔｙ  ｓｏｆｔｗａｒｅ  ｓｗｉｔｃｈ、ＡＳＷ）６４と、経過時間の指示を格納するタイマ変数（ＴＶ）６６とである。タイマ変数６６はリアルタイムコンピュータサブシステム１６内にあり、アクティブソフトウェアスイッチ６４はデータバス５４または他の手段を介して共用される。アクティブソフトウェアスイッチ６４は、０で表されるセットされていない位置、および１で表されるセットされたすなわちアクティブな位置を有する、整数のソフトウェア変数として実装される。
【００５７】
状況コードセグメント５６は任意選択で、しかし好ましくは、プログラム実行モジュール１８とともに順次実行され（ボックス６８）、アクティブソフトウェアスイッチ６４をアクティブな位置に繰り返しセットする（ボックス７４）。プログラム実行モジュール１８の実行サイクルが完了した後で、状態コードセグメント５６は汎用コンピュータ１４内において、特殊な誤りを示す他のソフトウェア変数（ボックス７０）、または他のプログラムの処理における遅延（ボックス７２）を調べる。したがって、プログラム実行モジュール１８が解釈される場合、あるいは誤りまたは他の遅延が検出される場合は、アクティブスイッチ６４はセットされない。
【００５８】
タイマコードセグメント５８は、経過時間に応じてタイマ変数６６を下方カウントする。タイマコードセグメント５８は、リアルタイムコンピュータサブシステム１６のシステムサービス関数であることが好ましく、実行サイクルで表される。
【００５９】
アクティブソフトウェアスイッチがアクティブな位置にある場合（ボックス７６）、タイマリセットコードセグメント６０は、タイマ変数を所定の長さの時間に繰り返しリセットし（ボックス７８、好ましくは２秒）、アクティブソフトウェアスイッチを元のセットされていない位置に繰り返しセットする（ボックス８０）。フェイルセーフコードセグメント６２は、タイマ変数６６のオーバーランに応答して（ボックス８２）、活動化信号５０／５２および他のロボットＩ／Ｏを用いてロボット４を停止する。
【００６０】
コードセグメント５６、５８、６０、６２は一緒に活動して、ウォッチドッグサービスを提供する。ウォッチドッグサービスは、汎用コンピュータ１４の操作が停止または２秒よりも遅延したらロボット４を強制終了する。
【００６１】
図１に戻って参照すると、本発明の別の特徴は、汎用コンピュータ１４向けに提供されるソフトウェアが様々な電気機械構成のロボットを制御するのに適していることである。本発明のこの態様によれば、汎用コンピュータ１４はロボットに依存しないコンピュータユニットとして働き、リアルタイムコンピュータサブシステム１６は幾分ロボット特有の制御装置ユニット、あるいはロボットへの特注のインタフェースまたはアダプタとして働く。
【００６２】
本発明の、多重構成という態様にとっては、オペレータインタフェースモジュール２０の用途をさらに広げることが重要である。図３および４は、一緒に見ると、異なる電気機械構成の複数のロボットを扱おうとする挑戦課題を示す。図３は、細部をより明らかにするためにわずかに拡大した、図１の関節式ロボット４の側面図である。ロボット４のアームは、一連の回転（すなわちロータリ）ジョイント５、６、７、８によってリンクされる。それに対して図４は、回転式の胴体ジョイント８７と、２つの線形ジョイント８８、８９とを備えるロボット８６の側面図である。
【００６３】
下部から上に向かってジョイントに番号を振ると、ロボット４の第２および第３のジョイントは、ロボット８６の第２および第３のジョイントとは異なるタイプである。構成におけるこの違いを克服するために、本発明のオペレータインタフェースはロボットの電気機械構成を指定するデータを格納する構成変数と、それぞれのタイプの構成に対するコードセグメントを生成するディスプレイとを含む。
【００６４】
好ましい実施形態では、構成変数は、ロボットのジョイントのタイプを線形または回転式に定義するデータおよび、指定された回転ジョイントが回旋可能（ｗｉｎｄａｂｌｅ）か、つまり３６０度を超えて回ることが可能かどうかを定義するデータを格納するように定義かつ／または寸法設定される。
【００６５】
図５〜７は、オペレータインタフェースモジュール２０がどのように構成変数を使用して異なるタイプのロボットに対応するかという一例を提供する。図５に示すように、コードセグメント９０を選択するディスプレイは、オペレータの要求に応答してジョイント／軸３に対する限度を設定する（ボックス９２）。コードセグメント９０は、構成変数９４を調べてジョイント３が線形か回転式かを指定するデータの有無を見る（ボックス９６）。
【００６６】
制御されるロボットの第３のジョイントが、ロボット４のように回転式であるか、それともロボット８６のように線形であるかに応じて、コードセグメント９０は、ジョイントの制限を設けるのに利用可能な２つのディスプレイのうち１つを選択する。回転式ジョイントタイプの場合はボックス９８が選択され、図６の回転ジョイント／軸のディスプレイが画面２８に生成される。線形ジョイントの種類の場合はボックス１００が選択され、図７の線形ジョイント／軸のディスプレイが生成される。
【００６７】
以上の明細書および図面は例示的なものであり、本発明を限定するものではないことを理解されたい。本発明の精神および範囲を利用する、さらに他の構成および実施形態が可能であり、当業者には自明であろう。
【図面の簡単な説明】
【００６８】
【図１】本発明によるロボット制御システムのソフトウェアプログラム、コンピュータハードウェア、およびロボット接続を示す概略構成図である。
【図２】汎用コンピュータとリアルタイムコンピュータサブシステムの間のウォッチドッグ相互通信を提供する、ソフトウェアおよび方法の諸段階の好ましい実施形態を示す簡略化したフローチャートである。
【図３】本発明の実施形態によって制御可能な別の種類のロボット構成を示す、関節式産業用ロボットの側面図である。
【図４】本発明の実施形態によって制御可能な多くの種類のロボット構成の１つを示す、線形ジョイントを備えた産業用ロボットの側面図である。
【図５】異なる電気機械構成のロボットに対応でき、かつ本発明による制御システムにおける構成変数の役割を実証する、好ましいソフトウェアおよび方法の諸段階を示す簡略化したフローチャートである。
【図６】同様に、回転ジョイント構成を指定する構成変数に記憶されたデータに応答して生成される、例示的なオペレータインタフェースのディスプレイ画面を示す図である。
【図７】線形ジョイントを指定する構成変数に記憶されたデータに応答して生成される、例示的なオペレータインタフェースのディスプレイ画面を示す図である。
【図１】
2004524171.tif 000003
【図２】
2004524171.tif 000004
【図３】
2004524171.tif 000005
【図４】
2004524171.tif 000006
【図５】
2004524171.tif 000007
【図６】
2004524171.tif 000008
【図７】
2004524171.tif 000009
【国際公開パンフレット】
2004524171.tif 000010
2004524171.tif 000011
2004524171.tif 000012
2004524171.tif 000013
2004524171.tif 000014
2004524171.tif 000015
2004524171.tif 000016
2004524171.tif 000017
2004524171.tif 000018
2004524171.tif 000019
2004524171.tif 000020
2004524171.tif 000021
2004524171.tif 000022
2004524171.tif 000023
2004524171.tif 000024
2004524171.tif 000025
2004524171.tif 000026
2004524171.tif 000027
2004524171.tif 000028
2004524171.tif 000029
2004524171.tif 000030
2004524171.tif 000031
2004524171.tif 000032
2004524171.tif 000033
2004524171.tif 000034
2004524171.tif 000035
2004524171.tif 000036
2004524171.tif 000037
【国際調査報告】
2004524171.tif 000038
2004524171.tif 000039