(57)【特許請求の範囲】
【請求項１】
マルチタスク機能を有するオペレーティングシステムを用い、制御対象ロボットを指定しその作業手順を指示する複数のユーザプログラムを実行するロボットコントローラであって、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記複数のユーザプログラムを並行して実行し、指定された各ロボットの定義ファイルおよび作業手順に基づき各ロボットの制御パラメータを求めるプログラム実行手段と、
前記各制御パラメータに基づき各制御対象ロボットの軌道を逐次生成する軌道生成手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節のアクチュエータ制御用の座標を示す座標データに変換する座標変換ルーチンが記憶された第２の記憶手段と、
前記ロボットの軌道を、指定されたロボットの座標変換ルーチンに基づき、前記座標データに変換する座標変換手段と、
前記ロボット毎に、各関節と各アクチュエータとの対応付けを表す対応テーブルが記憶された第３の記憶手段と、
前記座標データと、前記対応テーブルとに基づき、制御データを各アクチュエータに対応付けて出力する手段と、
を含み、
前記プログラム実行手段による制御パラメータを求める処理と、前記軌道生成手段による軌道の生成処理とを分離独立して実行することを特徴とするロボットコントローラ。
【請求項２】
マルチタスク機能を有するオペレーティングシステムを用い、制御対象ロボットを指定しその作業手順を指示する複数のユーザプログラムを実行し、制御対象ロボット毎に、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する主コントローラと、
前記各ロボット毎に、前記主コントローラにインターフェイスを介し増設可能に接続されたサブコントローラと、
を含み、
前記主コントローラは、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記複数のユーザプログラムを並行して実行し、指定された各ロボットの定義ファイルおよび作業手順に基づき各ロボットの制御パラメータを求めるプログラム実行手段と、
前記各制御パラメータに基づき各制御対象ロボットの軌道を逐次生成する軌道生成手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節のアクチュエータ制御用の座標を示す座標データに変換する座標変換ルーチンが記憶された第２の記憶手段と、
前記ロボットの軌道を、指定されたロボットの座標変換ルーチンに基づき、前記座標データに変換する座標変換手段と、
前記ロボット毎に、各関節と各アクチュエータとの対応付けを表す対応テーブルが記憶された第３の記憶手段と、
前記座標データと、前記対応テーブルとに基づき、制御データを各アクチュエータに対応付けて前記サブコントローラへ向け出力する手段と、
を含み、
前記サブコントローラは、対応ロボットのマニピュレータの各関節のアクチュエータ毎に設けられ、各アクチュエータに対応付けられた座標データに基づき対応する各アクチュエータをサーボ制御するサーボ制御手段を含み、
前記プログラム実行手段による制御パラメータを求める処理と、前記軌道生成手段による軌道の生成処理とを分離独立して実行することを特徴とするロボットコントローラ。
【請求項３】
請求項１、２のいずれかにおいて、
前記ユーザプログラムは、前記作業手順が、制御対象ロボットの作業ポイントの複数の目標位置を表すポイントデータファイルに基づき設定され、
前記プログラム実行手段は、
制御対象ロボットの現在の作業ポイントから次の目標位置までの移動距離と、指定された各ロボットの定義ファイルに基づき、作業ポイントの移動条件を表す制御パラメータを求め、
前記軌道生成手段は、
所定のサンプルタイム毎に、前記制御パラメータに基づき作業ポイントの軌跡を逐次生成することを特徴とするロボットコントローラ。
【請求項４】
マルチタスク機能を有するオペレーティングシステムを用い、制御対象ロボットを指定しその作業手順を指示する複数のユーザプログラムを実行するロボットコントローラであって、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節の角度移動量に変換する座標変換ルーチンが記憶された第２の記憶手段と、
前記複数のユーザプログラムを並行して実行し、指定されたロボットの定義ファイル、作業手順および指定されたロボットの座標変換ルーチンに基づきロボットマニピュレータの各関節の制御パラメータを求めるプログラム実行手段と、
前記制御パラメータに基づき制御対象ロボットのロボットマニピュレータの各関節の目標角度を逐次生成する軌道生成手段と、
前記ロボット毎に、各関節と各アクチュエータとの対応付けを表す対応テーブルが記憶された第３の記憶手段と、
前記各関節の目標角度と、前記対応テーブルとに基づき、ロボットマニピュレータの各関節のアクチュエータの制御データを各アクチュエータに対応付けて出力する手段と、
を含み、
前記プログラム実行手段による制御パラメータを求める処理と、前記軌道生成手段による軌道の生成処理とを分離独立して実行することを特徴とするロボットコントローラ。
【請求項５】
マルチタスク機能を有するオペレーティングシステムを用い、制御対象ロボットを指定しその作業手順を指示する複数のユーザプログラムを実行し、制御対象ロボット毎に、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する主コントローラと、
前記各ロボット毎に、前記主コントローラにインターフェイスを介し増設可能に接続されたサブコントローラと、
を含み、
前記主コントローラは、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節の角度移動量に変換する座標変換ルーチンが記憶された第２の記憶手段と、
前記ユーザプログラムを実行し、指定されたロボットの定義ファイル、作業手順および指定されたロボットの座標変換ルーチンに基づきロボットマニピュレータの各関節の制御 パラメータを求めるプログラム実行手段と、
前記制御パラメータに基づき制御対象ロボットのロボットマニピュレータの各関節の目標角度を逐次生成する軌道生成手段と、
前記各関節の目標角度に基づき、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する制御データ生成手段と、
前記ロボット毎に、各関節と各アクチュエータとの対応付けを表す対応テーブルが記憶された第３の記憶手段と、
前記各関節の目標角度と、前記対応テーブルとに基づき、ロボットマニピュレータの各関節のアクチュエータの制御データを各アクチュエータに対応付けて前記サブコントローラへ向け出力する手段と、
を含み、
前記サブコントローラは、対応ロボットのマニピュレータの各関節のアクチュエータ毎に設けられ、前記制御データに基づき対応する各アクチュエータをサーボ制御するサーボ制御手段を含み、
前記プログラム実行手段による制御パラメータを求める処理と、前記軌道生成手段による軌道の生成処理とを分離独立して実行することを特徴とするロボットコントローラ。
【請求項６】
請求項４、５のいずれかにおいて、
前記ユーザプログラムは、前記作業手順が、制御対象ロボットの作業ポイントの複数の目標位置を表すポイントデータファイルに基づき設定され、
前記第２の記憶手段は、
前記各ロボット毎に、次の目標位置までの移動距離をロボットマニピュレータの各関節の角度移動量に変換する座標変換ルーチンが記憶され、
前記プログラム実行手段は、
制御対象ロボットの現在の作業ポイントから次の目標位置までの移動距離と、指定された各ロボットの定義ファイルおよび座標変換ルーチンに基づき、ロボットマニピュレータの各関節の角度移動条件を表す制御パラメータを求め、
前記軌道生成手段は、
所定のサンプルタイム毎に、前記制御パラメータに基づき制御対象ロボットのロボットマニピュレータの各関節の目標角度を逐次生成することを特徴とするロボットコントローラ。
【請求項７】
制御対象ロボットとその作業手順を指示する複数のユーザプログラムと、複数のロボット毎に各ロボットの特徴を定義する定義ファイル群のうちの前記制御対象ロボットの定義ファイルとに基づき、制御パラメータを演算するプログラム実行工程と、
前記制御パラメータに基づき、サンプリングタイム毎に前記制御対象ロボットのロボットマニピュレータの軌道を演算する軌道演算工程と、
当該軌道演算工程で演算された軌道と、前記ロボット毎に、各関節と各アクチュエータとの対応付けを表す対応テーブルとに基づき、前記ロボットマニピュレータの各関節のアクチュエータの制御データを各アクチュエータに対応付けて出力する工程と、
を含み、
前記プログラム実行工程では、所定の制御対象ロボットの制御パラメータの演算中に、他の制御対象ロボットの制御パラメータを並行して演算するとともに、前記軌道演算工程における輝度の演算とは分離独立して制御パラメータを演算することを特徴とするロボット制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はロボットコントローラおよびロボットの制御方法、特に制御対象ロボットの拡張、変更を容易に行うことができるロボットコントローラおよびロボット制御方法に関する。
【０００２】
【背景技術および発明が解決しようとする課題】
従来より、ロボットを制御するためのコントローラおよびその制御方法は、例えば部品の組立、加工およびその他の用途に幅広く用いられている。
【０００３】
しかし、従来のコントローラは、制御するモータやマニュピュレータとの関係が固定されていた。このため、コントローラ購入後にユーザー側でマニュピュレータ等を追加、変更することは困難であり、仮に追加、変更が可能な場合でもコントローラ内のＲＯＭ等に固定的にインストールされているソフトウエアを変更する必要があるため、その作業が極めて困難であるという問題があった。
【０００４】
図１には、従来のロボットコントローラの制御手法が示されている。
【０００５】
従来の制御手法は、通常ステップＳ１、Ｓ２、Ｓ３、Ｓ４の４つの演算工程を含んでいる。
【０００６】
ステップＳ１において、ロボットマニュピュレータの適切な動作経路、動作速度、動作加速度等のパラメータを決定する。
【０００７】
ステップＳ２において、前記パラメータに従って所定のサンプリングタイム毎（数ｍｓｅｃ間隔）の軌道を演算する。
【０００８】
ステップＳ３において、ロボットマニュピュレータの軌道をモータの回転角度や移動距離に座標変換する。
【０００９】
最後にステップＳ４において、各サンプルタイミング毎の軌道に従って、マニュピュレータの各関節に設けられたモータに対するモータ駆動用サーボ演算を行う。
【００１０】
ところで、産業用ロボットには、その形態から水平多関節型、垂直多関節型、直角座標型等の各種タイプのものがある。そして、前記ステップＳ１、Ｓ３の処理は、ロボットのタイプ毎に異なったものとなる。
【００１１】
しかし、従来のロボットコントローラは、各ロボット毎の専用機として形成され、ロボットタイプ毎に異なる処理プログラムを実装して製造／出荷される。従って、コントローラを購入したユーザー側は、製造ラインの拡張変更に伴い、使用する産業用ロボットを拡張又は変更しようとする場合に、その都度全く新しいロボットコントローラを購入しなければならないという問題があった。
【００１２】
また、これ以外の従来技術として、特開平６−３５５２０号公報に係る制御装置が知られている。この従来技術は、各作動装置毎に専用の接続装置を設けることにより、制御装置、作動装置を従来の構成のままで使用できることを特徴とするものである。
【００１３】
しかし、この従来技術も、あくまでも従来の一対一通信タイプのソフトウエア、ハードウエアをそのまま用いて、一対多の通信を行い複数の作動装置を制御するものであるため、制御対象ロボットの拡張、変更をし、例えば制御対象ロボットを異なるタイプのものに切り換えたり、また複数の異なるタイプの制御対象ロボットを同時に制御することはできないという問題があった。
【００１４】
本発明は、このような従来の課題に鑑みなされたものであり、その目的は、制御対象ロボットの拡張、変更を容易に行うことが可能なロボットコントローラおよびロボット制御方法を提供することにある。
【００１５】
【課題を解決するための手段】
前記目的を達成するため、請求項１の発明は、
制御対象ロボットを指定しその作業手順を指示するユーザプログラムを実行するロボットコントローラであって、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記ユーザプログラムを実行し、指定されたロボットの定義ファイルおよび作業手順に基づきロボットの制御パラメータを求めるプログラム実行手段と、
前記制御パラメータに基づき制御対象ロボットの軌道を逐次生成する軌道生成手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節のアクチュエータ座標に変換する座標変換ルーチンが記憶された第２の記憶手段と、前記ロボットの軌道および指定されたロボットの座標変換ルーチンに基づき、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する制御データ演算手段と、
を含むことを特徴とする。
【００１６】
また、請求項１３の発明は、
複数のロボット毎に、各ロボットの特徴を定義する定義ファイルを記憶する行程と、
前記各ロボット毎に、ロボットの作業ポイントの軌道座標を、ロボットマニピュレータの各関節を駆動する各アクチュエータ毎のアクチュエータ座標に変換する座標変換ルーチンを記憶する行程と、
制御対象ロボットを指定しその作業手順を指示する少なくとも１つのユーザプログラムを記憶手段にインストールする行程と、
指定された各ロボットの定義ファイルに基づき各ロボットの制御パラメータを求め、前記各制御パラメータおよび前記各プログラムの作業手順に基づき各制御対象ロボットの作業ポイントの軌道を演算するプログラム実行工程と、
前記作業ポイントの軌道および指定されたロボットの座標変換ルーチンに基づき、各ロボット毎にマニピュレータの各関節のアクチュエータの制御データを演算する制御データの演算工程とを含むことを特徴とする。
【００１７】
請求項１、１３の発明によれば、プログラム実行手段がユーザープログラムを実行すると、各プログラムにより指定される制御対象ロボットの作業手順と、第１の記憶手段に記憶された指定ロボットの定義ファイルとに基づき、ロボットの制御パラメータが求められる。
【００１８】
ここにおいて、前記第１の記憶手段には、複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶されている。このため、ユーザープログラムにより指定される制御対象ロボットが異なれば、異なる制御パラメータが求めれることになる。
【００１９】
そして、軌道生成手段は、求められた制御パラメータに基づき制御対象ロボットの軌道を逐次生成していく。
【００２０】
また、第２の記憶手段には、各ロボット毎にロボットの軌道をロボットマニュピュレータの各関節のアクチュエータ座標に変換する複数の座標変換ルーチンが記憶されている。
【００２１】
そして、制御データ演算手段は、前記ロボットの軌道および指定されたロボットの座標変換ルーチンに基づき、ロボットマニュピュレータの各関節のアクチュエータの制御データを演算する。
【００２２】
このように、本発明によれば、第１の記憶手段および第２の記憶手段に、複数のロボットの定義ファイルおよび座標変換ルーチンを記憶し、ユーザープログラムにより指定される対象ロボットの定義ファイルおよび座標変換ルーチンを用いる構成を採用する。これにより、制御対象となるロボットの拡張や変更に対し、柔軟に対応することが可能となる。
【００２３】
また、本発明によれば、ユーザプログラムを実行し、制御パラメータを求めるための処理と、この制御パラメータから軌道を生成し制御データを演算するための処理とを分離独立させ、プログラム実行手段から軌道生成手段に、制御パラメータを引き渡すという単純な構成を採用している。このような構成を採用することにより、本発明は以下のような特有な作用効果を奏することができる。
【００２４】
即ち、本発明によれば、プログラムの実行のための処理と、軌道生成のための処理とを分離独立させ、それぞれの演算処理を独立したルーチンの形でまとめることができる。従って、マルチタスクにより、あるロボットのパラメータを計算中に、他のロボットのパラメータを並行して求める場合、制御パラメータを求めるための処理をサブルーチンの形で呼び出して行い、複数のユーザープログラムから同時に複数のロボットの制御パラメータを求めることができる。
【００２５】
なお、このようにプログラム実行処理と軌道生成処理とを分離させない場合には、軌道生成処理ルーチンがロボットの定義を参照しながら、軌道を逐次生成しなければならないため、処理のパフォーマンスを上げることができない。これに対し、本発明は、前述したように、プログラム実行のための処理と、軌道生成のための処理とを分離独立し、特有の計算部分である軌道生成、制御データの演算のための処理は、一旦制御パラメータを受け取った後は、プログラム実行のための処理と全く別個独立に行われる。従って、ロボット制御のための高速処理が要求される軌道生成、制御データの演算処理を、プログラムの実行とは全く別個独立に高速で行うことができ、良好なロボット制御を行うことが可能となる。
【００２６】
さらに、このようにプログラム実行のための処理や、軌道生成のための処理および制御データ演算のための処理を独立させ、それぞれをルーチン化することにより、プログラム全体の見通しが良くなり、プログラムの開発およびメンテナンスを良好に行うことが可能となる。
【００２７】
また、請求項２の発明は、
マルチタスク機能を有するオペレーティングシステムを用い、制御対象ロボットを指定しその作業手順を指示する複数のユーザプログラムを実行するロボットコントローラであって、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記複数のユーザプログラムを実行し、指定された各ロボットの定義ファイルおよび作業手順に基づき各ロボットの制御パラメータを求めるプログラム実行手段と、
前記各制御パラメータに基づき各制御対象ロボットの軌道を逐次生成する軌道生成手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節のアクチュエータ座標に変換する座標変換ルーチンが記憶された第２の記憶手段と、前記各ロボットの軌道および指定されたロボットの座標変換ルーチンに基づき、ロボット毎に、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する制御データ演算手段と、
を含むことを特徴とする。
【００２８】
このように、本発明によれば、マルチタスク機能を有するオペレーティングシステムを用い、複数のユーザプログラムを同時に実行し、複数の制御対象ロボットを制御することができる。このようにすることにより、予め拡張又は変更の予定のあるロボットの定義ファイルおよび座標変換ルーチンを第１、第２の記憶手段へ記憶しておくことにより、これら複数のロボットを同時に又は選択的に使用できるようシステムの拡張変更を行うことが可能となる。
【００２９】
また、拡張変更の必要が生じた場合に、その都度、前記定義ファイルおよび変換ルーチンを作成し、記憶手段へ記憶するように構成してもよい。
【００３０】
また、請求項３の発明は、
マルチタスク機能を有するオペレーティングシステムを用い、制御対象ロボットを指定しその作業手順を指示する複数のユーザプログラムを実行し、制御対象ロボット毎に、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する主コントローラと、
前記各ロボット毎に、前記主コントローラにインターフェイスを介し増設可能に接続されたサブコントローラと、
を含み、
前記主コントローラは、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記複数のユーザプログラムを実行し、指定された各ロボットの定義ファイルおよび作業手順に基づき各ロボットの制御パラメータを求めるプログラム実行手段と、
前記各制御パラメータに基づき各制御対象ロボットの軌道を逐次生成する軌道生成手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節のアクチュエータ座標に変換する座標変換ルーチンが記憶された第２の記憶手段と、前記各ロボットの軌道および指定されたロボットの座標変換ルーチンに基づき、ロボット毎に、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する制御データ演算手段と、
を含み、
前記サブコントローラは、
対応ロボットのマニピュレータの各関節のアクチュエータ毎に設けられ、前記制御データに基づき対応する各アクチュエータをサーボ制御するサーボ制御手段を含むことを特徴とする。
【００３１】
即ち、従来のロボットコントローラでは、マニュピュレータを増設する場合、新たに専用のコントロール部やこれと対をなす駆動手段を増設する必要があった。
【００３２】
これに対し、本発明のロボットコントローラは、各制御対象ロボットの制御データを演算する主コントローラと、各ロボット毎に主コントローラにインターフェースを介し増設可能に接続されたサブコントローラとに分離構成されている。そして、前記サブコントローラは、制御データに基づき対応ロボットの各アクチュエータをサーボ制御するサーボ制御手段を含むように構成する。
【００３３】
これにより、アクチュエータや制御対象ロボットを増設する場合には、主コントローラの増設は必要なく、単に対応するサブコントローラのみを増設すればよいため、システムの拡張変更に対し、簡単かつ安価に対応することが可能となる。
【００３４】
また、請求項４の発明は、
請求項１〜３のいずれかにおいて、
前記ユーザプログラムは、前記作業手順が、制御対象ロボットの作業ポイントの複数の目標位置を表すポイントデータファイルに基づき設定され、
前記プログラム実行手段は、
制御対象ロボットの現在の作業ポイントから次の目標位置までの移動距離と、指定された各ロボットの定義ファイルに基づき、作業ポイントの移動条件を表す制御パラメータを求め、
前記軌道生成手段は、
所定のサンプルタイム毎に、前記制御パラメータに基づき作業ポイントの軌跡を逐次生成することを特徴とする。
【００３５】
本発明によれば、ロボットの作業手順が、ロボットの作業ポイントの複数の目標位置を表すポイントデータファイルに基づいて設定されている。
【００３６】
そして、プログラム実行手段は、制御対象ロボットの現在の作業ポイントの位置から次の目標位置までの移動距離と、指定された各ロボットの定義ファイルとに基づき、作業ポイントの移動条件を表す制御パラメータを求める。
【００３７】
そして、軌道生成手段は、所定のサンプルタイム毎に、前記制御パラメータに基づき作業ポイントの軌道を逐次生成する。
【００３８】
このように構成することにより、制御対象ロボットの作業のポイントを所定の目標ポイントから次の目標ポイントまで移動させるＣＰ動作（ｃｏｎｔｉｎｕａｓ  ｐａｔｈ  ｍｏｔｉｏｎ）を簡単な構成で正確に行うことが可能となる。
【００３９】
ＣＰ動作は、目標ポイントでの位置だけでなく、動作途中の経路も正確に指示することが可能な動作で、特に、このようなＣＰ動作によるロボット制御は、ロボットの動作経路、速度を正確に指示制御できるという利点があり、例えば塗装等の塗布作業等に極めて好適なものとなる。
【００４０】
請求項５の発明は、
制御対象ロボットを指定しその作業手順を指示するユーザプログラムを実行するロボットコントローラであって、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節の角度移動量に変換する座標変換ルーチンが記憶された第２の記憶手段と、
前記ユーザプログラムを実行し、指定されたロボットの定義ファイル、作業手順および指定されたロボットの座標変換ルーチンに基づきロボットマニピュレータの各関節の制御パラメータを求めるプログラム実行手段と、
前記制御パラメータに基づき制御対象ロボットのロボットマニピュレータの各関節の目標角度を逐次生成する軌道生成手段と、
前記各関節の目標角度に基づき、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する制御データ演算手段と、
を含むことを特徴とする。
【００４１】
また、請求項１４の発明は、
複数のロボット毎に、各ロボットの特徴を定義する定義ファイルを記憶する行程と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節の角度移動量に変換する座標変換ルーチンを記憶する行程と、
制御対象ロボットを指定しその作業手順を指示する少なくとも１つのユーザプログラムを記憶手段にインストールする行程と、
前記ユーザプログラムを実行し、指定されたロボットの定義ファイル、作業手順および指定されたロボットの座標変換ルーチンに基づきロボットマニピュレータの各関節の制御パラメータを求める工程と、
前記制御パラメータに基づき制御対象ロボットのロボットマニピュレータの各関節の目標角度を逐次生成する工程と、
前記各関節の目標角度に基づき、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する工程と、
を含むことを特徴とする。
【００４２】
請求項５、請求項１４の発明は、前述した請求項１、請求項１３の発明と同様な作用効果を奏することができる。両者の相違は、請求項１、請求項１３の発明はロボットをＣＰ動作により制御を行うものであり、請求項５、請求項１４の発明は、ロボットをＰＴＰ（ｐｏｉｎｔ  ｔｏ  ｐｏｉｎｔ  ｍｏｔｉｏｎ）により制御を行うものである点である。即ち、請求項１、請求項１３の発明は、プログラム実行手段が制御パラメータを軌道生成手段に渡した後に、座標変換処理を行っているが、請求項５、請求項１４の発明は、プログラム実行手段が制御パラメータを演算する際にすでに座標変換処理を終了している。このように、前者と後者はその処理手順において座標変換を行うタイミングが異なるのみであり、基本的な作用効果は同一である。
【００４３】
特に、このようなＰＴＰ動作を行わせる制御は、ロボットの軌道生成のための計算が簡単でかつ高速演算が可能となり、ロボットを高速制御する場合に、極めて好適なものとなる。例えば、ロボットを用いて所定のワークをつかんで所定位置まで移動するようなピックアンドプレース作業に極めて好適なものとなる。
【００４４】
請求項６の発明は、
マルチタスク機能を有するオペレーティングシステムを用い、制御対象ロボットを指定しその作業手順を指示する複数のユーザプログラムを実行するロボットコントローラであって、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節の角度移動量に変換する座標変換ルーチンが記憶された第２の記憶手段と、
前記ユーザプログラムを実行し、指定されたロボットの定義ファイル、作業手順および指定されたロボットの座標変換ルーチンに基づきロボットマニピュレータの各関節の制御パラメータを求めるプログラム実行手段と、
前記制御パラメータに基づき制御対象ロボットのロボットマニピュレータの各関節の目標角度を逐次生成する軌道生成手段と、
前記各関節の目標角度に基づき、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する制御データ演算手段と、
を含むことを特徴とする。
【００４５】
請求項６の発明はＰＴＰ動作によるロボット制御を行うもので、ある点を除き前記請求項２の発明と同様な作用効果を奏することができる。
【００４６】
請求項７の発明は、
マルチタスク機能を有するオペレーティングシステムを用い、制御対象ロボットを指定しその作業手順を指示する複数のユーザプログラムを実行し、制御対象ロボット毎に、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する主コントローラと、
前記各ロボット毎に、前記主コントローラにインターフェイスを介し増設可能に接続されたサブコントローラと、
を含み、
前記主コントローラは、
複数のロボット毎に、各ロボットの特性を定義する定義ファイルが記憶された第１の記憶手段と、
前記各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節の角度移動量に変換する座標変換ルーチンが記憶された第２の記憶手段と、
前記ユーザプログラムを実行し、指定されたロボットの定義ファイル、作業手順および指定されたロボットの座標変換ルーチンに基づきロボットマニピュレータの各関節の制御パラメータを求めるプログラム実行手段と、
前記制御パラメータに基づき制御対象ロボットのロボットマニピュレータの各関節の目標角度を逐次生成する軌道生成手段と、
前記各関節の目標角度に基づき、ロボットマニピュレータの各関節のアクチュエータの制御データを演算する制御データ演算手段と、
を含み、
前記サブコントローラは、
対応ロボットのマニピュレータの各関節のアクチュエータ毎に設けられ、前記制御データに基づき対応する各アクチュエータをサーボ制御するサーボ制御手段を含むことを特徴とする。
【００４７】
請求項７の発明は、ＰＴＰ動作によりロボット制御を行っている点を除けば、前記請求項３の発明と基本的に同様な作用効果を奏することができる。
【００４８】
請求項８の発明は、
請求項５〜７のいずれかにおいて、
前記ユーザプログラムは、前記作業手順が、制御対象ロボットの作業ポイントの複数の目標位置を表すポイントデータファイルに基づき設定され、
前記第２の記憶手段は、
前記各ロボット毎に、次の目標位置までの移動距離をロボットマニピュレータの各関節の角度移動量に変換する座標変換ルーチンが記憶され、
前記プログラム実行手段は、
制御対象ロボットの現在の作業ポイントから次の目標位置までの移動距離と、指定された各ロボットの定義ファイルおよび座標変換ルーチンに基づき、ロボットマニピュレータの各関節の角度移動条件を表す制御パラメータを求め、
前記軌道生成手段は、
所定のサンプルタイム毎に、前記制御パラメータに基づき制御対象ロボットのロボットマニピュレータの各関節の目標角度を逐次生成することを特徴とする。
【００４９】
請求項８の発明は、ＰＴＰ動作によりロボット制御するための好適な形態である。
【００５０】
本発明によれば、ユーザープログラムは、ロボットの作業手順が、作業ポイントの複数の目標位置を表すポイントデータファイルとして設定されている。
【００５１】
第２の記憶手段には、各ロボット毎に、次の目標位置までの移動距離をロボットマニュピュレータの各関節の角度移動量に変換する座標変換ルーチンが記憶されている。
【００５２】
そして、プログラム実行手段は、制御対象ロボットの現在の作業ポイントから、次の目標位置までの移動距離と、指定された各ロボットの定義ファイルとに基づき、ロボットマニュピュレータの各関節の角度移動条件を表す制御パラメータを求め、軌道生成手段に渡す。
【００５３】
この制御パラメータには、既に座標変換の情報が含まれているため、この制御パラメータを受け取った軌道生成ファイルは、制御パラメータに基づき、制御対象ロボットのロボットマニュピュレータの各関節の目標角度を、所定のサンプルタイム毎に逐次生成できる。
【００５４】
そして、制御データ演算手段は、座標変換をすること無しに、各関節の目標角度に基づき、ロボットマニュピュレータの各関節のアクチュエータ制御データを演算することができる。
【００５５】
また、請求項９の発明は、
請求項１〜８のいずれかにおいて、
前記各ロボット毎に、前記各制御データと各アクチュエータとの対応付けを表す対応テーブルが記憶された第３の記憶手段を含み、
前記制御データ演算手段は、
指定されたロボットの対応テーブルに基づき、演算された前記制御データを各アクチュエータに対応付けて出力する手段を含むことを特徴とする。
【００５６】
また、請求項１５の発明は、
請求項１３，１４のいずれかにおいて、
前記各ロボット毎に、前記各制御データと各アクチュエータとの対応付けを表す対応テーブルを記憶する工程を含み、
前記制御データの演算工程は、
指定されたロボットの対応テーブルに基づき、演算された前記制御データを各アクチュエータに対応付けて出力する工程を含むことを特徴とする。
【００５７】
このように、各ロボット毎に、各制御データと、各アクチュエータとの対応付けを表す対応テーブルを予め記憶しておくことにより、制御データ演算手段は、指定されたロボットの対応テーブルに基づき、演算された制御データを各アクチュエータに対応付けて出力することができる。
【００５８】
従って、本発明によれば、制御パラメータの演算と、この制御パラメータに基づくアクチュエータの制御データの演算および演算された制御データの各アクチュエータに対応付けた出力と、を独立した処理として行うことができるため、各種演算処理のためのプログラムの見通しが良くなり、プログラム開発が容易なものとなると共に、演算処理を高速化することができる。
【００５９】
また、請求項１０の発明は、
請求項１〜９のいずれかにおいて、
前記各関節のアクチュエータはモータとして形成されたことを特徴とする。
【００６０】
また、請求項１１の発明は、
請求項１〜１０のいずれかにおいて、
前記第１の記憶手段、プログラム実行手段、軌道生成手段、第２の記憶手段および制御データ演算手段は、パーソナルコンピュータを用いて形成されたことを特徴とする。
【００６１】
このように、本発明によれば、ユーザプログラムから制御データを演算する部分をパーソナルコンピュータを用いて形成することにより、市販のコンピュータを用いて、各種ロボットの制御を容易に行うことができる。
【００６２】
特に、本発明は、請求項３、７、又はこらに従属する請求項の発明のようにコントローラを主コントローラとサブコントローラとに分離構成するものに適用することが好ましい。この場合、主コントローラをパーソナルコンピュータを用いて構成することにより、コントローラの拡張性、汎用性をさらに高めることが可能となる。
【００６３】
また、請求項１２の発明は、
請求項１１において、
前記軌道生成手段、第２の記憶手段および制御データ演算手段は、デバイスドライバとして形成されたことを特徴とする。
【００６４】
即ち、本発明のロボットコントローラは、ユーザープログラムを実行し、制御パラメータを求めるプログラム実行手段と、制御パラメータから制御対象ロボットの軌道やロボットのマニュピュレータの各関節の目標角度を逐次生成する軌道生成手段とを分離独立し、プログラム実行手段からは単に制御パラメータを軌道生成手段に渡し、それ以外の演算処理は、それぞれ独立に行うという構成を採用した。そこで請求項１２の発明は、パーソナルコンピュータなどにおいて、高速処理が難しいプログラムの実行手段と、ロボットに依存し、できるだけ速い処理が必要とされる軌道生成および制御データの演算処理のための手段とを分離し、後者を高速処理が可能なデバイスドライバとして形成する。このような構成を採用することにより、パーソナルコンピュータを使用しロボット制御を行う場合でも、ロボット制御のための高速性を充分に満足した演算処理が可能となる。
【００６５】
【発明の実施の形態】
次に本発明の好適な実施の形態を、図面に基づき詳細に説明する。
第１の実施の形態
図２には、本発明が適用されたロボットコントローラの好適な第１の実施の形態が示されている。
【００６６】
このロボットコントローラは、主コントローラ１０と、サブコントローラ２０とに分離形成され、対応するロボットマニピュレータ３０を制御する。
【００６７】
制御対象となるロボットマニピュレータ３０−１は、４つの関節を有する多関節型ロボットであり、このロボットには、各関節を駆動するアクチュエータとして４個のモータ３２−１，３２−２，３２−３，３２−４が設けられている。さらに各モータ３２−１，３２−２，…３２−４には、その回転位置を検出するためのロータリエンコーダ３４−１，３４−２…３４−４が設けられている。
【００６８】
また、拡張マニピュレータ３０−２は、ロボットマニピュレータ３０−１とは異なるタイプのロボットとして形成されている。周知のように、ロボットには、その形態から例えば水平多関節型、垂直多関節型、直角座標型などの各種タイプがあり、これら各タイプ毎に異なった制御が必要となる。
【００６９】
これら各ロボットマニピュレータ３０−１，３０−２…を制御するために、本実施例においては、前記主コントローラ１０として、汎用のパーソナルコンピュータが用いられる。このコンピュータは、マルチタスク機能を有するオペレーティングシステムを用いている。そして制御対象ロボットを指定しその作業手順を指示する複数のユーザプログラムを実行する。前記オペレーティングシステムとしては、汎用のオペレーティングシステムを用いることが好ましく、このようなものとしては例えばマイクロソフト社製のウィンドウズ９５（登録商標）などがある。
【００７０】
そして、コンピュータ１０が各ロボットマニピュレータ３０−１，３０−２をそれぞれ制御するための複数のユーザプログラムを実行すると、このコンピュータ１０は、制御対象ロボットマニピュレータ３０−１，３０−２毎に、ロボットマニピュレータの各関節のアクチュエータであるモータ制御データを演算し、これをインタフェースボード１４−１，１４−２…を介して対応するサブコントローラ２０−１，２０−２…へ出力する。
【００７１】
前記サブコントローラ２０−１，２０−２…は、制御対象となるロボットマニピュレータ３０専用のドライブボックスとして構成されている。そして各サブコントローラ２０−１，２０−２…は、インタフェースボード１４−１，１４−２…を介して主コントローラ１０に対し接続増設可能に形成されている。
【００７２】
例えば、このロボットコントローラの制御対象が、最初はロボットマニピュレータ３０−１のみであった場合には、主コントローラ１０にはサブコントローラ２０−１のみが接続されている。その後、制御対象ロボットの拡張変更の必要性が生じ、例えばロボットマニピュレータ３０−２の制御も必要になった場合には、このマニピュレータ３０−２に対応した専用のサブコントローラ２０−２が主コントローラ１０に対し増設される。
【００７３】
このように、実施例では主コントローラ１０に対し、サブコントローラ２０が増設可能に構成されているため、ロボットマニピュレータ３０の増設にはサブコントローラ２０のみを増設してハードウエア的に対応することができ、従来の一体型ロボットコントローラに比べ、システムの拡張変更に対し柔軟に対処することが可能となる。
【００７４】
前記サブコントローラ２０は、共有メモリ２２と、サブＣＰＵ２４と、各モータ３２−１，３２−２…３２−４に対応した駆動手段である複数のモータドライバ２６−１，２６−２…２６−４とを含んで構成される。
【００７５】
前記共有メモリ２２は、主コントローラ１０から入力される各モータ３２−１，３２−２…３２−４の制御データを一時記憶すると共に、サブＣＰＵ２４のワーキングエリアとしても機能するように構成されている。
【００７６】
そして、サブＣＰＵ２４は、入力された制御データに基づき、各モータドライバ２６−１，２６−２…２６−４にモータ制御指令を出力する。各モータドライバ２６は、この制御指令に基づき対応するモータ３２を駆動するように構成されている。このとき、各モータドライバ２６には、駆動対象モータ３２の回転位置検出信号がロータリエンコーダ３４からフィードバック入力されている。このため、サブＣＰＵ２４および各モータドライバ２６は、制御対象となるモータ３２をサーボ制御するサーボ制御手段として機能することになる。
【００７７】
図３には、前記主コントローラ１０およびサブコントローラ２０の機能ブロック図が示されている。
【００７８】
前述したように、主コントローラ１０は、汎用のオペレーティングシステムが動作するパーソナルコンピュータを用いて構成されており、通常のアプリケーション部１００と、オペレーティングシステムのファイルデータを記憶するファイル部１２０と、デバイスドライバ部１３０とを含んで構成される。
【００７９】
前記アプリケーション部１００は、ユーザインタ−フェース１０２、ユーザプログラムの解釈実行部１０４および動作実行部１０６として機能するように構成されている。
【００８０】
前記ファイル部１２０は、ロボット定義ファイル１２２と、ロボット対応テーブル１２４とを含んで構成される。
【００８１】
前記デバイスドライバ部１３０は、軌道生成部１３２、座標変換部１３４、マニピュレータモータ対応部１３６として機能するように構成されると共に、座標変換ルーチン１３８を含んで構成されている。
【００８２】
また、前記サブコントローラ２０は、前述したようにサーボ制御部２００として機能するように構成されている。
【００８３】
前記ロボット定義ファイル１２２は、制御対象となる各ロボット毎に設けられている。例えば、図４に示すように、ロボットマニピュレータ３０−１には、ロボット定義ファイル１２２−１、ロボットマニピュレータ３０−２に対してはロボット定義ファイル１２２−２がそれぞれ設けられている。これら各定義ファイルは、対応するロボットの特性を定義するデータを含んで構成されており、このような定義データとしては、例えばロボットのタイプ、構成（アームの長さ等）、動作速度、動作加速度等がある。
【００８４】
前記ユーザインタ−フェース部１０２は、制御対象となるロボットの動作をモニタリングすると共に、ロボット定義ファイルの参照、変更などを行うように構成されている。
【００８５】
前記ユーザプログラム解釈実行部１０４は、動作実行部１０６と共にプログラム実行手段として機能するものである。
【００８６】
本実施例において、解釈実行部１０４で実行されるユーザプログラムは、予めコントローラ１０内のメモリに読み込まれており、制御対象ロボットを指定しその作業手順を指示するように構成されている。これにおいてユーザプログラムによって指示される作業手順は、制御対象ロボットの作業ポイント（手先）の複数の目標位置を表すポイントデータファイルとして与えられている。
【００８７】
そして、解釈実行部１０４がユーザプログラムの解釈実行を行うと、動作実行部１０６は、ユーザプログラムによって指示されたロボットの定義ファイル１２０および作業手順に基づきロボットの制御パラメータを求め、軌道生成部１３２へ渡すように構成されている。ここでは、制御対象ロボットの現在の作業ポイントから次の目標位置までの移動距離と、指定されたロボットの定義ファイル１２２とに基づき、作業ポイントの移動条件を表す制御パラメータを求め、軌道生成部１３２へ引き渡している。
【００８８】
前記軌道生成部１３２は、引き渡された制御パラメータに基づき、所定のサンプルタイム毎（数ｍｓｅｃ間隔毎）に作業ポイント（手先）の軌道を逐次生成する演算処理を行い、求めた軌道データを座標変換部１３４へ向け出力する。
【００８９】
前記座標変換ルーチン１３８は、各ロボット毎に、ロボットの軌道をロボットマニピュレータの各関節のモータ座標に変換する座標変換ルーチンとして構成されている。ここでは、水平多関節型座標変換ルーチン１３８−１、垂直多関節型座標変換ルーチン１３８−２、直角座標型座標変換ルーチン１３８−３の３つの座標変換ルーチンを含んで構成されている。
【００９０】
また、前記座標変換部１３４およびマニピュレータモータ対応部１３６は、制御データ演算手段として機能するものである。そして、前記座標変換部１３４は、指定されたロボットの座標変換ルーチン１３８に基づき、軌道生成部１３２の求めたロボットの軌道をロボットマニピュレータの各関節のモータ制御用の座標データに変換し、これを制御データとしてマニピュレータモータ対応部１３６へ向け出力する。
【００９１】
前記ロボット対応テーブル１２４は、制御対象ロボット毎に設けられており、演算された各制御データと各アクチュエータとの対応付を表すテーブルとして形成されている。実施例では、図４に示すよう、第１のロボットマニピュレータ３０−１用の対応テーブル１２４−１と、第２のロボットマニピュレータ３０−２用の対応テーブル１２４−２とを含んで構成されてる。
【００９２】
そして、前記マニピュレータモータ対応部１３６は、制御対象ロボットの対応テーブル１２４に基づき、演算された前記各制御データを各モータ３２へ対応付けて出力する。例えば、制御対象ロボットが第１のロボットマニピュレータ３０−１である場合には、対応テーブル１２４−１に基づき、演算された各制御データ（座標データ）を各モータ３２−１，３２−２…３２−４に対応付けてサブコントローラ２０−１へ向け出力する。
【００９３】
図４には、実施例のロボットコントローラの動作フローチャートが示されている。
【００９４】
まず、解釈実行部１０４が、ユーザプログラムを実行すると、動作実行部１０６は、制御対象ロボットの定義ファイル１２２を参照しながらロボット制御用のパラメータを演算し、軌道生成部へ引き渡す処理を行う（ステップＳ１０）。
【００９５】
軌道生成部１３２は、引き渡された制御パラメータから、ロボットの軌道をサンプルタイム毎に求める処理を行い、求めた軌道データを座標変換部１３４へ引き渡す（ステップＳ１２）。
【００９６】
座標変換部１３４では、座標変換ルーチン１３８を用い、引き渡された転送データをロボットマニピュレータの各関節の座標データに変換し、マニピュレータモータ対応部１３６へ引き渡す（ステップＳ１４）。
【００９７】
マニピュレータモータ対応部１３６は、制御対象ロボットのロボット対応テーブル１２４を参照しながら、引き渡された各座標データを各モータに対応付けて、対象となるサブコントローラ２０へ向けて制御データとして出力する。
【００９８】
そして、この制御データが入力されたサブコントローラ２０は、制御データに基づき各ロボットマニピュレータ３０の各モータ３２をサ−ボ制御する（ステップＳ１８）。
【００９９】
以上説明したように、本実施例のロボットコントローラによれば、ロボット定義ファイル１２２、ロボット対応テーブル１２４および座標変換ルーチン１３８を、各ロボット毎に対応付けて複数用意する構成を採用したことにより、制御対象となるロボットを、第１のロボットマニピュレータ３０−１から、第２のロボットマニピュレータ３０−２まで拡張する場合でも、または制御対象ロボットを第１のロボットマニピュレータ３０−１から第２のロボットマニピュレータ３０−２へ変更するような場合でも、これに柔軟にかつ安価に対応することが可能となる。
【０１００】
さらに、実施例のロボットコントローラは、アプリケーション部１００の処理と、デバイスドライバ部１３０の処理とを分離独立させる構成を採用している。そして、緻密、高速なリアルタイム性が要求されない処理は、ＯＳ用の通常アプリケーションとしてアプリケーション部１００で実行し、リアルタイム性が要求される処理はオペレーションシステムのデバイスドライバ部１３０で実行するように構成されている。
【０１０１】
従って、図５に示すように、アプリケーション部１００では、複数のユーザプログラム１０２−１，１０２−２を同時に解釈実行し（１０４−１，１０４−２）、各ロボットの制御パラメータを求める処理を行い（１０６−１，１０６−２）、各制御パラメータをデバイスドライバ部１３０へ引き渡すことができる。
【０１０２】
そして、デバイスドライバ部１３０を構成する軌道生成部１３２、座標変換部１３４およびマニピュレータモータ対応部１３６では、データの演算処理を極めて高速に行うことができ、この結果、動作実行部１０６から引き渡された複数のロボットの制御パラメータに基づき、各ロボットの制御データを高速演算し、対応するサブコントローラ２０−１，２０−２…へ出力することができる。
【０１０３】
さらに、ロボットコントローラは、各ロボットマニピュレータ３０固有のハードウエア部分を、サブコントローラ２０として、主コントローラ１０に対して増設可能に形成している。従って、ロボットの増設、変更に際しては、サブコントローラ２０のみを制御対象ロボットに合わせて設置すれば済むという利点がある。
第２の実施の形態
図６、図７には、本発明のロボットコントローラの第２の実施形態が示されている。なお、前記第１の実施形態と対応する部材には同一の符号を付しその説明は省略する。
【０１０４】
前記第１の実施形態と、この第２の実施形態との基本的な相違は、後述するようにロボットの動作経路が違うことと（ＣＰ動作とＰＴＰ動作）、軌道生成部１０２へ渡す制御パラメータの単位が異なることと、処理手順で座標変換を行うタイミングが異なることにある。以下その詳細を説明する。
【０１０５】
本実施例において、座標変換ルーチン１３８は、各制御対象ロボット固有の座標変換ルーチン１３８−１，１３８−２，１３８−３…として構成されている。そして、各座標変換ルーチン１３８は、制御対象ロボットの次の目標位置までの移動距離を、ロボットマニピュレータの各関節の角度移動量に変換する座標変換ルーチンとして構成されている。
【０１０６】
そして、ユーザプログラムの解釈実行部１０４が、所定のロボットコントローラのユーザプログラムの解釈実行を行うと、動作実行部１０６は、対象ロボットの現在の作業ポイントから次の目標位置までの移動距離と、指定されたロボットの座標変換ルーチン１３８および定義ファイル１２２に基づき、ロボットマニピュレータの各関節の角度移動条件を表す制御パラメータを求め、これを軌道生成部１３２へ引き渡す（ステップＳ１０）。このとき引き渡される制御パラメータは、すでに座標変換処理が成されているため、軌道生成部１３２は、前記制御パラメータに基づき制御対象ロボットマニピュレータ３０の各関節の目標位置をそのまま逐次生成することができる（ステップＳ１２）。
【０１０７】
そして、マニピュレータモータ対応部１３６は、制御対象ロボットの対応テーブル１２４を参照しながら、前記各関節の目標位置に基づき、ロボットマニピュレータの各関節のアクチュエータの目標角度を、各関節のモータ３２に対応付けて制御データとして出力する（ステップＳ１６）。
【０１０８】
これにより、サブコントローラ２０は、各制御データに基づきロボットマニュピュレータ３０の各モータ３２をサーボ制御する（ステップＳ１８）。
第１および第２の実施形態の具体的な処理動作
次に、前記第１および第２の実施形態のロボットコントローラの、具体的な制御動作について詳細に説明する。
【０１０９】
図８には、対象となるロボットマニピュレータ３０−１の各関節の座標位置が概略的に示されている。ここにおいて、Ｐはロボットマニピュレータ３０の作業ポイント（手先）の現在位置、Ｐ1は次の目標位置を表している。
【０１１０】
ここにおいて、現在位置Ｐ、目標位置Ｐ1のロボット座標ｘ，ｙ，ｚ，ｕは、
現在位置Ｐ    ＝（４８０ｍｍ，２７０ｍｍ，−５０ｍｍ，４０ｄｅｇ）
目標位置Ｐ１  ＝（−１５０ｍｍ，３６０ｍｍ，−３０ｍｍ，９０ｄｅｇ）
とする。なお、説明を簡単にするために、ここではｘｙ座標、第１、第２関節のみを考える。
【０１１１】
そして、現在位置Ｐでの第１，第２関節角度を
θ１１（ｄｅｇ），θ２１（ｄｅｇ）
目標位置Ｐ１での第１，第２関節角度を
θ２１（ｄｅｇ），θ２２（ｄｅｇ）
とする。
【０１１２】
この時、ロボットマニピュレータ３０の動作として
ＰＴＰ動作（point to pointmotion）
ＣＰ動作（continuas path motion）
の２通りの動作方式がある。
【０１１３】
ＰＴＰ動作は
・軌道生成の計算が簡単、高速
・ロボットの高速性を引き出しやすい
ので、ピックアンドプレイス作業によく使われる。
【０１１４】
ＣＰ動作は、
・ハンド手先の動作経路、速度を正確に指示できるので、塗布作業によく使われる。
【０１１５】
前記第１の実施形態のロボットコントローラは、ロボットアクチュエータ３０をＣＰ動作させる制御を行う場合に極めて好適なものであり、前記第２の実施形態のロボットアクチュエータは、ロボットマニピュレータ３０をＰＴＰ動作させる制御を行う場合に極めて好適なものである。なお、必要に応じ１台のロボットコントローラに、前記第１及び第２の実施形態の機能をあわせ持たせ、ＣＰ及びＰＴＰの両動作の制御を行わせるように構成してもよい。
【０１１６】
図９には、ロボットアクチュエータ３０のＰＴＰ動作の一例が示されている。同図（Ａ）は、この第１，第２関節角度の座標動作経路を表し、同図（Ｂ）は、このときのロボットの作業ポイントの動作経路を表している。同図に示すよう、ＰＴＰ動作では、作業ポイントの経路は直線にはならない。
【０１１７】
図１０には、ロボットアクチュエータのＣＰ動作の一例が示されている。
【０１１８】
同図（Ａ）は、ロボット座標（第１関節の回転中心を原点とした直角座標系）の動作経路を表し、この場合にロボットアクチュエータ３０の作業ポイント（手先）の経路は同図（Ｂ）に示すように直線経路となる。
【０１１９】
図１１〜図１３には、前記第２の実施形態のロボットコントローラを用いて行うＰＴＰ動作制御の一例と、前記第１の実施形態のロボットコントローラを用いて行うＣＰ動作制御の一例が示されている。
【０１２０】
まず、図１１（Ａ）には、ＰＴＰ動作制御用のユーザプログラムの一例が示され、同図（Ｂ）にはＣＰ動作制御用のユーザプログラムの一例が示されている。
【０１２１】
また、図１１（Ｃ），（Ｄ）には、同図（Ａ），（Ｂ）で示される各ユーザプログラムのロボット作業手順を示すポイントデータファイルの一例が示されている。このポイントデータファイルは、ロボットの作業ポイントが移動する複数の目標位置Ｐ1、Ｐ2の組合せとして構成されるが、ここでは最初の目標位置Ｐ１のみが示されている。
【０１２２】
また、図１１（Ｅ），（Ｆ）には、ロボットの特性を定義する定義ファイルの一例が示され、同図（Ｅ）はＰＴＰ動作用の定義ファイル、同図（Ｆ）はＣＰ動作用の定義ファイルである。
【０１２３】
ここでは、ロボット定義ファイルとして、ロボットの関節最大加速度、関節最大速度を例示しているが、通常はこれ以外にも各種定義データを含んで構成される。
【０１２４】
図１２（Ａ）には、図１１（Ａ）に示すＰＴＰ動作用のユーザプログラムを実行した際の処理手順の流れが示され、図１２（Ｂ）には図１１（Ｂ）に示すＣＰ動作用ユーザプログラムを実行した場合にも処理手順の流れが示されている。
【０１２５】
まず、ＰＴＰ動作用のユーザプログラムを実行する場合を説明する。
【０１２６】
ユーザプログラム動作命令を実行し、ポイントデータファイルから次の目標位置Ｐ１の座標データの読み込みを行うと、次に座標変換ルーチンを呼び出し、目標位置Ｐ１から関節角度の座標を求める。
【０１２７】
次に、現在位置Ｐおよび目標位置Ｐ１の関節座標から、ロボットアクチュエータの各関節の角度移動量を求める。
【０１２８】
次に、軌道生成部１３２に渡す制御パラメータの計算を行う。
【０１２９】
この計算は、まずプログラム中で指定されているロボットアクチュエータの速度、加速度の読み込みを行い、角速度、角加速度、角減速度をそれぞれ求める。
【０１３０】
そして、ロボット定義ファイル１２２から、関節毎に、その最大角速度、最大角加速度の読み込みを行う。
【０１３１】
そして、このようにして求めた各データに基づき、各関節毎に、動作角速度、角加速度、角減速度を決定すると共に、加速時間、等速時間、減速時間を求める。
【０１３２】
そして、制御パラメータの計算が終了すると、動作実行部１０６は、軌道生成部１３２へ向け、関節角速度、関節角加速度、関節角減速度、加速時間、減速時間、等速時間、関節各移動量を制御パラメータとして出力する。
【０１３３】
図１２（Ａ）、図１３（Ａ）には、このような制御パラメータの具体例が示されている。
【０１３４】
そして、図１３（Ａ）に示すよう、軌道生成部１３２は、所定のサンプルタイム毎に、制御パラメータからモータ角指令値を制御信号として出力する処理を繰り返して行う。
【０１３５】
すなわち、制御パラメータより各関節毎の角度移動量を求め、関節角指令値を求める。そして、各関節角指令値を、モータ角度指令値に変換する。
【０１３６】
その後、ロボット対応テーブル１２４を参照しながら、マニピュレータの各関節に対応したモータ番号を調べ、サーボ制御部２００へ向け対応するモータ角度指令値を引き渡す。
【０１３７】
次に、図１２（Ｂ），図１３（Ｂ）に基づき、ＣＰ動作用のユーザプログラム処理の説明を行う。
【０１３８】
まず、図１１（Ｂ）に示すユーザプログラムの動作命令を実行し、ポイントデータファイルから次の目標位置Ｐ１の読み込みを行う。そして、現在位置Ｐおよび目標位置Ｐ１から、ロボットマニピュレータの作業ポイントの移動距離を求める。
【０１３９】
そして、次に制御パラメータの計算を行う。ここでの、制御パラメータの計算は、まずプログラム中で指定されている速度、加速度の読み込みを行なう。
【０１４０】
次に、ロボット定義ファイル等を参照しながら、加速時間、等速時間、減速時間を決定する。
【０１４１】
そして、このようにして求めた各データを、ロボットマニピュレータ３０の作業ポイント（手先）の移動条件を表す制御パラメータとして、軌道生成部３２へ向け出力する。
【０１４２】
ここでは、速度、加速度、減速度、加速時間、減速時間、等速時間、移動量などが制御パラメータとして演算出力される。
【０１４３】
そして、軌道生成部１３２、座標変換部１３４およびマニピュレータ対応部１３６は、図１３（Ｂ）に示すよう、所定のサンプルタイム毎に制御パラメータから各モータの角度指令値を演算出力する処理を繰り返して行う。
【０１４４】
すなわち、まず制御パラメータによりロボット作業ポイントの移動量を求め、ロボット座標位置指令値を求める。
【０１４５】
そして、位置指令値を、座標変換ルーチン１３８を用いて座標変換し、各関節毎の関節角指令値を求める。
【０１４６】
そして、求めた各関節角指令値をモータ角度に変換する。その後、ロボット対応テーブル１２４を参照し、マニピュレータの関節に対応したモータ番号を調べ、サーボ制御部２００にモータ角指令値を引き渡す処理を行う。
【０１４７】
このように、前述したＰＴＰ動作では、制御パラメータとして各関節毎の制御パラメータを演算するため、軌道生成部では座標変換の必要がないが、ＣＰ動作では、制御パラメータとしてロボットマニピュレータの作業ポイントの移動条件を表す制御パラメータが演算されるため、その後の処理で移動ポイントの移動量を、各関節毎の座標に変換する座標変換処理が必要となるという点で、両者は異なる。
【０１４８】
なお、本発明は前記各実施例に限定されるものではなく、本発明の要旨の範囲内で各種の変形実施が可能である。
【０１４９】
【図面の簡単な説明】
【図１】従来のロボットコントローラの制御動作のフローチャート図である。
【図２】本発明の第１の実施形態であるロボットコントローラの回路図である。
【図３】前記第１の実施形態のロボットコントローラの機能ブロック図である。
【図４】前記実施形態のロボットコントローラの動作フローチャート図である。
【図５】第１の実施形態のロボットコントローラのユーザプログラム処理動作の説明図である。
【図６】本発明の第２の実施形態であるロボットコントローラの機能ブロック図である。
【図７】第２の実施形態のロボットコントローラの動作フローチャート図である。
【図８】実施例のロボット制御動作の説明図である。
【図９】ロボットのＰＴＰ動作の説明図である。
【図１０】ロボットＣＰ動作の説明図である。
【図１１】実施例のロボットコントローラで行うユーザプログラム、ポイントデータファイルおよびロボット定義ファイルの説明図である。
【図１２】実施例のロボット制御動作の処理流れの説明図である。
【図１３】実施例のロボット制御動作の説明図である。
【符号の説明】
１０  主コントローラ
２０  サブコントローラ
３０  ロボットマニピュレータ
１００  アプリケーション部
１０４  解釈実行部
１０６  動作実行部
１２０  ＯＳのファイル
１２２  ロボット定義ファイル
１２４  ロボット対応テーブル
１３０  デバイスドライバ部
１３２  軌道生成部
１３４  座標変換部
１３６  マニピュレータモータ対応部
１３８  座標変換ルーチン
２００  サーボ制御部
【図１】
0003668821.tif 000002
【図２】
0003668821.tif 000003
【図３】
0003668821.tif 000004
【図４】
0003668821.tif 000005
【図５】
0003668821.tif 000006
【図６】
0003668821.tif 000007
【図７】
0003668821.tif 000008
【図８】
0003668821.tif 000009
【図９】
0003668821.tif 000010
【図１０】
0003668821.tif 000011
【図１１】
0003668821.tif 000012
【図１２】
0003668821.tif 000013
【図１３】
0003668821.tif 000014