JP2004351598A - 工具運動制御方式 - Google Patents
工具運動制御方式 Download PDFInfo
- Publication number
- JP2004351598A JP2004351598A JP2003154971A JP2003154971A JP2004351598A JP 2004351598 A JP2004351598 A JP 2004351598A JP 2003154971 A JP2003154971 A JP 2003154971A JP 2003154971 A JP2003154971 A JP 2003154971A JP 2004351598 A JP2004351598 A JP 2004351598A
- Authority
- JP
- Japan
- Prior art keywords
- motion
- tool
- axis
- robot
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
【課題】ロボット等における工具の位置及び/又は姿勢を時間の関数として与えることができる制御方式を提供する。
【解決手段】本発明の工具制御方式は、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値を記述したモーション・テーブル1を作成するプログラム作成装置と、このモーション・テーブル1を読み込んでロボット等の工具を動作させるためのモーション・オペレータ4とを備える。
【選択図】 図1
【解決手段】本発明の工具制御方式は、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値を記述したモーション・テーブル1を作成するプログラム作成装置と、このモーション・テーブル1を読み込んでロボット等の工具を動作させるためのモーション・オペレータ4とを備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、ロボット・工作機械・組立機械・検査機械などの作業機械(以下、「ロボット等」とう)における工具(ハンド等の把持部や各種のツールを含む)の位置及び/又は姿勢を時間の関数として与える(これを運動、モーションという)ための制御方式に関する。
【0002】
【従来の技術】
フィードバック制御系では、制御対象の制御量に着目し、これを時々刻々検出し、目標値との間に差を生じれば、その差を零にするような操作を制御対象に加える。制御量がロボット等における工具の位置及び/又は姿勢である制御系は、サーボ機構と呼ばれる。
【0003】
【発明が解決しようとする課題】
しかし一般的なサーボ機構は、工具の位置及び/又は姿勢を制御することはできるが、位置及び/又は姿勢を時間の関数として与えることまではできない。例えば一般的なサーボ機構では、工具を100mm動かすことだけが与えられていて、100mmの中をどのような加減速で動くかはサーボ機構の中で作成されていた。そうすると工具が100mm動くのに3秒かかるのか0.3秒かかるのかがわからず、工具の位置を時間の関数として与えることができない。
【0004】
そこで本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えることができる新たな制御方式を提供することを目的とする。
【0005】
【課題を解決するための手段】
以下、本発明について説明する。
【0006】
上記課題を解決するために、本発明の制御方式は、モーション・テーブルを作成し、このモーション・テーブルによってロボット各軸の制御を行うことを特徴にしている。
【0007】
具体的には本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための工具運動制御方式であって、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値を記述したモーション・テーブルを作成するプログラム作成装置と、このモーション・テーブルを読み込んでロボット等の工具を動作させるためのモーション・オペレータとを備えることを特徴とする。
【0008】
また本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための工具運動制御方式であって、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルを作成するプログラム作成装置を備えることを特徴とする工具運動制御方式としても構成することができる。
【0009】
さらに本発明は、コンピュータに、ロボット等の工具の代表点(工具点)が、時間的に移動する平面的あるいは空間的に描かれた連続な軌跡曲線(直線を含む)を設計する手順と、前記軌跡曲線上を移動する工具点の速度・加速度を指定する手順と、時間tを所定の時間間隔で与えたとき、カルテシアン座標系(実在空間)における時間tに対する工具点の位置及び/又は姿勢を計算する手順と、工具点の位置及び/又は姿勢を与えるために必要な各動作軸の変位を求める手順と、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータをメモリに格納する手順と、を実行させるためのプログラムとしても構成することができる。
【0010】
さらに本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるためのデータ構造であって、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータ構造としても構成することができる。
【0011】
さらに本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための工具運動制御方式であって、行方向に時間軸、列方向にロボット等の各動作軸をとって各軸の変位の値が記述されるモーション・テーブルを読み込んでロボット等の工具を動作させるためのモーション・オペレータを備えることを特徴とする工具運動制御方式としても構成することができる。
【0012】
【発明の実施の形態】
図1は、本発明の一実施形態における工具運動制御方式の全体構成図を示す。この工具運動制御方式は、モーション・テーブル1を作成し、これによってロボット等の各軸の制御を行なうことを特徴としている。ソフトウェアとしては、モーション・テーブル1を作成するためのモーション・デザイナ2と、複数のモーション・テーブル1を編集するためのモーション・エディタ3(シーケンサ)、及び、これらの指令入力を受けて各軸のサーボモータを動作させるためのモーション・オペレータ4によって構成される。
【0013】
また、制御ハードウェアとしては、モーション・テーブル1作成までのソフトウェアを含むプログラム作成装置(図中点線より左側)と、このテーブル1を読み込んでロボット等の工具を動作させるためのモーション・オペレータ4を含むロボット等(図中点線より右側)とに分割される。プログラム作成装置とロボット等との間には、モーション・テーブル1及びモーション・エディタ3からの信号指令が伝わり、これにより工具が動く。
【0014】
まずモーション・テーブル1について説明する。工具の位置及び/又は姿勢を時間の関数として与えることは、モーションと呼ばれる。モーション・テーブル1は、図2に示されるように、行方向に時間軸、列方向に各動作軸(サーボモータあるいはアクチュエータ)を各軸の変位のアブソリュート値またはインクリメンタル値を記述したものである。アブソリュート値は基準値に対しての絶対値であり、インクレメンタル値は時間間隔毎に増分する値である。図2にはアブソリュートのような値が記述されているが、必ずしも零から始まるとは限らない。
【0015】
本実施形態の制御方式の一つの特徴は、時間軸の時間間隔が非常に短いことにある。時間軸の時間間隔は、1s、2sあるいは20msとかの長い時間ではなく、2ms(ミリ秒)以下の精細さで与えられるものとし、一般に2ms、1ms、0.5ms、0.25ms、0.125msなどが採用される。機械の運動を高精度に制御する場合、1ms〜0.5ms程度の時間間隔が適正範囲だと考えられる。
【0016】
例えばIEEE1394というインターフェースの通信規格では、0.125ms毎にデータを送ることができる。これらの通信規格では、画像データを送るのが一般的であるが、機械の位置データを送り、そのとおり精細な間隔で機械を動かすことはなかった。本実施形態では、ロボット等の各軸の動き方を示すデータをモーション・テーブル1として作成し、高速通信を使用してこのモーション・テーブル1をプログラム作成装置からロボット等に送り、精細な間隔でロボット等の各軸を動かすことを特徴にしている。
【0017】
モーション・テーブル1は、例えばCSV(comma separated value)方式のデータでロボット等に送られる。モーション・テーブル1は縦の列及び横の行を有する表形式のデータであるので、シリアル通信で送れるようにCSV方式を利用して一列のデータにする。具体的には例えば表データを、左上から0,0,0,0,行がえ,1,2,0,50,行がえ,3,6,0,100,行がえ,というふうに一列のデータにする。
【0018】
次にモーション・テーブル1を作成するためのモーション・デザイナ2のフローチャートを図3を参照して説明する。
【0019】
〈工具運動軌跡の設計(S1)〉ロボット等の工具が動くとき、その工具の代表点(工具点、tool center point)は平面的あるいは空間的に描かれた連続な軌跡曲線(直線を含む)の上を時間的に移動すると考えることができる。工具点の位置は、座標(x、y、z)で表され、工具点の姿勢は、例えばx、y、z軸に対する回転角度で表される。どのような複雑な動きでも、工具点の軌跡は途切れ途切れになることなく、連続的に繋がっている。運動制御の第1段階は、この軌跡の形状を、例えば平面的な円、直線、あるいは自由曲線の形状等に設計することにある。
【0020】
本実施形態においては、2次元軌跡においては一例としてクロソイド曲線を採用する。クロソイド曲線においては曲線の接線方向が曲線長の関数として連続的に与えられるので、運動の連続性が保たれる。ただし、一つのクロソイド・セグメントと次のクロソイド・セグメントとの間では接線方向角が不連続になる場合があり、このような場合にはこの位置でいったん工具の速度を零にしなければならない。クロソイド・セグメントを用いた軌跡の設計方法については、本発明者が提案した特開平1−50181号公報、特開昭64−1008号公報、特開平6−168022号公報、特開平6−259567号公報、特開2000−82152号公報等に記載されている。3次元軌跡の場合にも、曲線長に対して曲線の接線方向が与えられる3次元クロソイドを原則として用いるものとする。また工具の位置Pとともに、必要な場合には、工具の姿勢Eも曲線長sの関数として与える。
【0021】
〈運動曲線の当てはめ(S2)〉運動制御の第2段階は、設計された軌跡上を動く工具点の速度・加速度を決定することである。軌跡上を工具点がどのような時間の関数として動くかは、工具点の速度・加速度を決定することで定められる。本実施形態においては、カム機構に採用されている特性の良い曲線を採用し、これを、パラメータ可変のユニバーサルカム曲線として提供する。カルテシアン空間(実在空間)で定義された位置・姿勢は連続した曲線群を構成しているが、その一つ一つの曲線に運動曲線を当てはめ、加減速を指定する。カルテシアン空間とは、原点で互いに直交するx、y、zの3軸を用いてつくられる3次元座標系であり、工具点の位置のみならず姿勢も表すことができる。
【0022】
〈時分割(S3)〉軌跡と運動が確定したので、工具点の位置・姿勢が時間tの関数として与えられたことになる。これにより、時間tを微小時間間隔で与えたとき、それぞれの時刻に対する工具点の変位を求めることができる。時間間隔としては2ms(ミリ秒)以下の適当な値を選ぶものとする。
【0023】
〈カルテシアン座標系による工具の位置・姿勢の計算(S4)〉以上の手続きによって、カルテシアン座標系(実在空間)における時間tに対する工具点の位置と姿勢が計算される。変数としては、一般に2次元では(x、y、θ)、2.5次元では(x、y、z、θ)、3次元では(x、y、z、λ、μ、ν、θ)となる。ただし、(λ、μ、ν、θ)は姿勢Eを等価回転で表したもので(λ、μ、ν)は等価回転の軸を、θは回転角を示す。
【0024】
〈逆機構解(S5)〉次に、上記の工具点の位置・姿勢を与えるために必要な各軸の回転角を求める。この過程は一般に逆機構解(inverse kinematics)と呼ばれている。例えば6軸のロボットがあるとすると、関節が6つあるので、肩の関節、腕の関節、ひじの関節、手首の関節等が何度回転したかで工具点の位置・姿勢が決まる。これが順機構解と呼ばれる。逆機構解は、これとは反対に実在の空間の位置・姿勢から軸空間の回転角θ1〜θ6を求めるものである。各軸のアクチュエータは回転モータであるとは限らず、リニアモータ等の直動アクチュエータである場合もあるが、その場合でも最低限度実変位をリニアモータの入力パルス数に変換する電子ギアの計算が必要となる。逆機構解は、ロボット等の機構の型ごとに固有なので、種々のロボット等について個別に解を用意しておく。
【0025】
〈軸座標系による各軸モータ変位の計算(S6)〉時分割された各工具点につき逆機構解を求め、これを各軸モータ(直動アクチュエータを含む)の変位パルスとして整数化する。パルス制御でない場合には、各軸変位の最少分解単位(分解能)を用いて、パルス数相当の整数化されたデータとして求める。
【0026】
〈モーション・テーブルの作成(S7)〉こうして求めた各軸変位をアブソリュート値、又はインクリメンタル値として前述のモーション・テーブル1の表データとしてコンピュータメモリに格納する。
【0027】
次にモーション・エディタ3について説明する。モーション・エディタ3は、複数のモーション・テーブル1を編集するもので、例えば作成されたモーション・テーブル1の利用の仕方を順序設定する。具体的には例えば、モーション・テーブル1がA,B,Cとあるとすると、Aが終わったらB、Bが終わったらCというふうに順序設定したり、Aが終わったらB及びCを一緒に走らせたりする。動作のシーケンスを与えるという意味ではシーケンサに近いが、一般化するためにここではモーション・エディタ3と呼ぶ。モーション・エディタ3は、モーション・デザイナ2と共に一般的にはプログラム作成装置に内蔵されるが、外置される場合もある。
【0028】
次にモーション・オペレータ4について述べる。モーション・オペレータ4は一般的にはサーボ機構(すなわち機械的運動のための自動フィードバック制御システム)と呼ばれるが、ここでは一般化するためにモーション・オペレータ4と呼ぶ。モーション・オペレータ4は、モーション・デザイナ2で作成したモーション・テーブル1を通信等を介して読み取り、入力データを各軸に分配し、そこから各軸間の同期なり、シーケンスなりを決め、各軸のサーボモータを動かす。以下それぞれの手順について図4を参照して述べる。
【0029】
〈通信(S1)〉プログラム作成装置からロボット等へモーション・テーブル1のデータを送るにはいくつかの方法がある。第1の方法は伝送媒体として高速の通信回線を用いる方法である。高速の通信回線としては、イーサネット(R)、USB、IEEE1394等を用いることができる。また、条件によっては無線や、低速の通信回線を用いることもできる。第2の方法は直接バスなどを接続してデータを読み込む方法である。プログラム作成装置とロボット等が離れていなければ採用することができる。第3の方法は可搬のメモリ媒体を用いる方法である。CD、DVD、メモリカード等を用いて搬送する。
【0030】
〈モーション・テーブルの読込(S2)〉各通信方式にはそれぞれのプロトコルがあるので、そのプロトコルに従ってモーション・テーブル1を読み込む。
【0031】
〈入力データの各軸への分配(S3)〉モーション・テーブル1は通常複数の軸に対して作成されるので、これを各軸ごとに分配する必要がある。ハブなどを用いて強制的に分配する方法(受渡し側で一列のデータを順番に各軸のドライバに配る方法)もあるが、通常は受け取り側でそれぞれの軸に関係するデータのみを受け取るようにする。受け取り側にメモリがあるとすると、例えばx軸は図2に示される縦の一列のデータを受け取り、y軸はその次の列のデータを受け取り、z軸はさらにその次の列のデータを受け取ることができる。
【0032】
〈同期、シーケンス制御(S4)〉いくつかの軸を一斉に動かすためには、何らかの同期信号を送る必要がある。例えば工具点で円を描こうとすると、x軸のモータ及びy軸のモータを一緒に動かさなければならない。同期信号をサーボドライバに送ることで、各軸モータが一緒に動くようになる。なお同期信号は時分割された時間間隔で必ず一度送られるのが望ましい。
【0033】
また、ロボット等の各種の入出力信号とのシーケンスを取るためには、モーション・エディタ3あるいはシーケンサによってモーション・テーブル1を編集する必要が生じる。例えばリミットスイッチが働いたら工具点を停止させる場合や、センサで温度を測り、温度が高くなってきたら工具点の速度を落としたい場合がある。このような場合、センサからの入力信号があったら、モーション・エディタ3あるいはシーケンサによってモーション・テーブル1を編集する。
【0034】
〈各軸サーボドライバ及び各軸モータ(S5,S6)〉モーション指令に追随してサーボモータが動くかどうかは、サーボドライバ及びサーボモータの役割である。本実施形態では、フィードバック信号をプログラム作成用のコンピュータ(すなわちプログラム作成装置)に戻してはいない。モーション・テーブル1のとおり各軸モータが動くかどうかは、モーション・オペレータ4の問題になる。モーション・テーブル作成用のコンピュータがサーボのループに入ることはない。故にコンピュータでモーション・テーブル1を作成することができる。ただし、フィードバック信号をモニター信号としてモーション・テーブル作成用のコンピュータに戻すことはありうる。また、フィードバック信号をモーション・テーブル作成用のコンピュータに戻し、モーション・テーブル作成用のコンピュータをサーボのループに入れてもよい。
【0035】
以下本実施形態の制御方式の特徴を述べる。
【0036】
簡単な構成でありながら高速・高精度の制御が可能である。プログラム作成装置でモーション・テーブル1を作成し、サーボモータをモーション・テーブルのとおりに動かすことにより、この効果が得られる。
【0037】
モーション・デザイナ2とモーション・オペレータ4の機能を分離することによって、それぞれの開発が容易になる。従来のコントローラは、両方の機能が一緒のものや分離されていても切れ目がはっきりしていないものが多い。本実施形態では、モーション・テーブル1を作成するまでのモーション・デザイナ2の機能と、ロボット等の各軸を動かすモーション・オペレータ4の機能とを明確に分離し、その間を通信等で繋いでいる。このように機能を分離することによって、例えばソフトウェア開発メーカがモーション・デザイナ2としてソフトウェアを提供し、またこれとは別に、モータメーカが自分のモータに合うサーボドライバをモーション・オペレータ4として提供することができる。このように、モーション・デザイナ2とモーション・オペレータ4とを別々に開発することができる。
【0038】
特にモーション・デザイナ2には機械の運動を制御するのに必要な機能がすべて含まれており、コントローラのソフト化を容易にしている。工具点の軌跡の形状を設計したり、軌跡上を動く工具の速度・加速度を決定したりすることが、全てモーション・デザイナ2でできる。このように機械の運動まで制御、すなわち時間の関数として機械の位置・姿勢を制御することで、曖昧さを排除することができる。
【0039】
モーション・デザイナ2とモーション・オペレータ4の機能を分離し、この間を高速の通信回線や市販の可搬メモリ媒体を利用して接続することで、モーション・デザイナ2とモーション・オペレータ4とを距離的、空間的に離すこともできる。
【0040】
短い時間間隔で制御するため、精細な制御が可能となり、サーボドライバも簡素化される。
【0041】
遅れや無駄時間のない制御が可能となり、予測したとおりの制御結果が得られる。
【0042】
ハードウェアを簡素化したので、従来の制御方式よりも安価なシステムを構成できる。従来のコントローラが不要になり、コンピュータとサーボドライバがあればモータが回るようになる。
【0043】
時間軸による制御を行うため、従来の制御方式のような曖昧さや不確かさを取り除くことが可能である。何時何分にどこにいるかは最初のプログラミングで決定されている。このため曖昧さが残らない。
【0044】
多軸の同期制御に適している。例えば円を描くような場合は、多軸の同期制御をする必要がある。
【0045】
高速シリアル通信を使う場合には、配線も簡素化される。
【0046】
予期しない制御トラブルや、危険な制御を生じる可能性が少ない。
【0047】
プログラム作成装置として市販のパソコンを用いることができ、パソコンの資産を用い、高速、高容量の計算を行うことができる。
【0048】
設計者や作業者にとって分かりやすい、アットホームな装置を提供できる。
【0049】
特別な言語やライブラリを必要としないオープン環境を提供することができる。
【0050】
将来に対する拡張性が高い。
【図面の簡単な説明】
【図1】本発明の一実施形態における工具運動制御方式の全体構成図。
【図2】モーション・テーブルの一例を示す図。
【図3】モーション・デザイナのソフトウェアの構成を示す図。
【図4】モーション・オペレータのソフトウェアの構成を示す図。
【符号の説明】
1・・・モーション・テーブル
2・・・モーション・デザイナ
3・・・モーション・エディタ
4・・・モーション・オペレータ
【発明の属する技術分野】
本発明は、ロボット・工作機械・組立機械・検査機械などの作業機械(以下、「ロボット等」とう)における工具(ハンド等の把持部や各種のツールを含む)の位置及び/又は姿勢を時間の関数として与える(これを運動、モーションという)ための制御方式に関する。
【0002】
【従来の技術】
フィードバック制御系では、制御対象の制御量に着目し、これを時々刻々検出し、目標値との間に差を生じれば、その差を零にするような操作を制御対象に加える。制御量がロボット等における工具の位置及び/又は姿勢である制御系は、サーボ機構と呼ばれる。
【0003】
【発明が解決しようとする課題】
しかし一般的なサーボ機構は、工具の位置及び/又は姿勢を制御することはできるが、位置及び/又は姿勢を時間の関数として与えることまではできない。例えば一般的なサーボ機構では、工具を100mm動かすことだけが与えられていて、100mmの中をどのような加減速で動くかはサーボ機構の中で作成されていた。そうすると工具が100mm動くのに3秒かかるのか0.3秒かかるのかがわからず、工具の位置を時間の関数として与えることができない。
【0004】
そこで本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えることができる新たな制御方式を提供することを目的とする。
【0005】
【課題を解決するための手段】
以下、本発明について説明する。
【0006】
上記課題を解決するために、本発明の制御方式は、モーション・テーブルを作成し、このモーション・テーブルによってロボット各軸の制御を行うことを特徴にしている。
【0007】
具体的には本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための工具運動制御方式であって、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値を記述したモーション・テーブルを作成するプログラム作成装置と、このモーション・テーブルを読み込んでロボット等の工具を動作させるためのモーション・オペレータとを備えることを特徴とする。
【0008】
また本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための工具運動制御方式であって、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルを作成するプログラム作成装置を備えることを特徴とする工具運動制御方式としても構成することができる。
【0009】
さらに本発明は、コンピュータに、ロボット等の工具の代表点(工具点)が、時間的に移動する平面的あるいは空間的に描かれた連続な軌跡曲線(直線を含む)を設計する手順と、前記軌跡曲線上を移動する工具点の速度・加速度を指定する手順と、時間tを所定の時間間隔で与えたとき、カルテシアン座標系(実在空間)における時間tに対する工具点の位置及び/又は姿勢を計算する手順と、工具点の位置及び/又は姿勢を与えるために必要な各動作軸の変位を求める手順と、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータをメモリに格納する手順と、を実行させるためのプログラムとしても構成することができる。
【0010】
さらに本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるためのデータ構造であって、行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータ構造としても構成することができる。
【0011】
さらに本発明は、ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための工具運動制御方式であって、行方向に時間軸、列方向にロボット等の各動作軸をとって各軸の変位の値が記述されるモーション・テーブルを読み込んでロボット等の工具を動作させるためのモーション・オペレータを備えることを特徴とする工具運動制御方式としても構成することができる。
【0012】
【発明の実施の形態】
図1は、本発明の一実施形態における工具運動制御方式の全体構成図を示す。この工具運動制御方式は、モーション・テーブル1を作成し、これによってロボット等の各軸の制御を行なうことを特徴としている。ソフトウェアとしては、モーション・テーブル1を作成するためのモーション・デザイナ2と、複数のモーション・テーブル1を編集するためのモーション・エディタ3(シーケンサ)、及び、これらの指令入力を受けて各軸のサーボモータを動作させるためのモーション・オペレータ4によって構成される。
【0013】
また、制御ハードウェアとしては、モーション・テーブル1作成までのソフトウェアを含むプログラム作成装置(図中点線より左側)と、このテーブル1を読み込んでロボット等の工具を動作させるためのモーション・オペレータ4を含むロボット等(図中点線より右側)とに分割される。プログラム作成装置とロボット等との間には、モーション・テーブル1及びモーション・エディタ3からの信号指令が伝わり、これにより工具が動く。
【0014】
まずモーション・テーブル1について説明する。工具の位置及び/又は姿勢を時間の関数として与えることは、モーションと呼ばれる。モーション・テーブル1は、図2に示されるように、行方向に時間軸、列方向に各動作軸(サーボモータあるいはアクチュエータ)を各軸の変位のアブソリュート値またはインクリメンタル値を記述したものである。アブソリュート値は基準値に対しての絶対値であり、インクレメンタル値は時間間隔毎に増分する値である。図2にはアブソリュートのような値が記述されているが、必ずしも零から始まるとは限らない。
【0015】
本実施形態の制御方式の一つの特徴は、時間軸の時間間隔が非常に短いことにある。時間軸の時間間隔は、1s、2sあるいは20msとかの長い時間ではなく、2ms(ミリ秒)以下の精細さで与えられるものとし、一般に2ms、1ms、0.5ms、0.25ms、0.125msなどが採用される。機械の運動を高精度に制御する場合、1ms〜0.5ms程度の時間間隔が適正範囲だと考えられる。
【0016】
例えばIEEE1394というインターフェースの通信規格では、0.125ms毎にデータを送ることができる。これらの通信規格では、画像データを送るのが一般的であるが、機械の位置データを送り、そのとおり精細な間隔で機械を動かすことはなかった。本実施形態では、ロボット等の各軸の動き方を示すデータをモーション・テーブル1として作成し、高速通信を使用してこのモーション・テーブル1をプログラム作成装置からロボット等に送り、精細な間隔でロボット等の各軸を動かすことを特徴にしている。
【0017】
モーション・テーブル1は、例えばCSV(comma separated value)方式のデータでロボット等に送られる。モーション・テーブル1は縦の列及び横の行を有する表形式のデータであるので、シリアル通信で送れるようにCSV方式を利用して一列のデータにする。具体的には例えば表データを、左上から0,0,0,0,行がえ,1,2,0,50,行がえ,3,6,0,100,行がえ,というふうに一列のデータにする。
【0018】
次にモーション・テーブル1を作成するためのモーション・デザイナ2のフローチャートを図3を参照して説明する。
【0019】
〈工具運動軌跡の設計(S1)〉ロボット等の工具が動くとき、その工具の代表点(工具点、tool center point)は平面的あるいは空間的に描かれた連続な軌跡曲線(直線を含む)の上を時間的に移動すると考えることができる。工具点の位置は、座標(x、y、z)で表され、工具点の姿勢は、例えばx、y、z軸に対する回転角度で表される。どのような複雑な動きでも、工具点の軌跡は途切れ途切れになることなく、連続的に繋がっている。運動制御の第1段階は、この軌跡の形状を、例えば平面的な円、直線、あるいは自由曲線の形状等に設計することにある。
【0020】
本実施形態においては、2次元軌跡においては一例としてクロソイド曲線を採用する。クロソイド曲線においては曲線の接線方向が曲線長の関数として連続的に与えられるので、運動の連続性が保たれる。ただし、一つのクロソイド・セグメントと次のクロソイド・セグメントとの間では接線方向角が不連続になる場合があり、このような場合にはこの位置でいったん工具の速度を零にしなければならない。クロソイド・セグメントを用いた軌跡の設計方法については、本発明者が提案した特開平1−50181号公報、特開昭64−1008号公報、特開平6−168022号公報、特開平6−259567号公報、特開2000−82152号公報等に記載されている。3次元軌跡の場合にも、曲線長に対して曲線の接線方向が与えられる3次元クロソイドを原則として用いるものとする。また工具の位置Pとともに、必要な場合には、工具の姿勢Eも曲線長sの関数として与える。
【0021】
〈運動曲線の当てはめ(S2)〉運動制御の第2段階は、設計された軌跡上を動く工具点の速度・加速度を決定することである。軌跡上を工具点がどのような時間の関数として動くかは、工具点の速度・加速度を決定することで定められる。本実施形態においては、カム機構に採用されている特性の良い曲線を採用し、これを、パラメータ可変のユニバーサルカム曲線として提供する。カルテシアン空間(実在空間)で定義された位置・姿勢は連続した曲線群を構成しているが、その一つ一つの曲線に運動曲線を当てはめ、加減速を指定する。カルテシアン空間とは、原点で互いに直交するx、y、zの3軸を用いてつくられる3次元座標系であり、工具点の位置のみならず姿勢も表すことができる。
【0022】
〈時分割(S3)〉軌跡と運動が確定したので、工具点の位置・姿勢が時間tの関数として与えられたことになる。これにより、時間tを微小時間間隔で与えたとき、それぞれの時刻に対する工具点の変位を求めることができる。時間間隔としては2ms(ミリ秒)以下の適当な値を選ぶものとする。
【0023】
〈カルテシアン座標系による工具の位置・姿勢の計算(S4)〉以上の手続きによって、カルテシアン座標系(実在空間)における時間tに対する工具点の位置と姿勢が計算される。変数としては、一般に2次元では(x、y、θ)、2.5次元では(x、y、z、θ)、3次元では(x、y、z、λ、μ、ν、θ)となる。ただし、(λ、μ、ν、θ)は姿勢Eを等価回転で表したもので(λ、μ、ν)は等価回転の軸を、θは回転角を示す。
【0024】
〈逆機構解(S5)〉次に、上記の工具点の位置・姿勢を与えるために必要な各軸の回転角を求める。この過程は一般に逆機構解(inverse kinematics)と呼ばれている。例えば6軸のロボットがあるとすると、関節が6つあるので、肩の関節、腕の関節、ひじの関節、手首の関節等が何度回転したかで工具点の位置・姿勢が決まる。これが順機構解と呼ばれる。逆機構解は、これとは反対に実在の空間の位置・姿勢から軸空間の回転角θ1〜θ6を求めるものである。各軸のアクチュエータは回転モータであるとは限らず、リニアモータ等の直動アクチュエータである場合もあるが、その場合でも最低限度実変位をリニアモータの入力パルス数に変換する電子ギアの計算が必要となる。逆機構解は、ロボット等の機構の型ごとに固有なので、種々のロボット等について個別に解を用意しておく。
【0025】
〈軸座標系による各軸モータ変位の計算(S6)〉時分割された各工具点につき逆機構解を求め、これを各軸モータ(直動アクチュエータを含む)の変位パルスとして整数化する。パルス制御でない場合には、各軸変位の最少分解単位(分解能)を用いて、パルス数相当の整数化されたデータとして求める。
【0026】
〈モーション・テーブルの作成(S7)〉こうして求めた各軸変位をアブソリュート値、又はインクリメンタル値として前述のモーション・テーブル1の表データとしてコンピュータメモリに格納する。
【0027】
次にモーション・エディタ3について説明する。モーション・エディタ3は、複数のモーション・テーブル1を編集するもので、例えば作成されたモーション・テーブル1の利用の仕方を順序設定する。具体的には例えば、モーション・テーブル1がA,B,Cとあるとすると、Aが終わったらB、Bが終わったらCというふうに順序設定したり、Aが終わったらB及びCを一緒に走らせたりする。動作のシーケンスを与えるという意味ではシーケンサに近いが、一般化するためにここではモーション・エディタ3と呼ぶ。モーション・エディタ3は、モーション・デザイナ2と共に一般的にはプログラム作成装置に内蔵されるが、外置される場合もある。
【0028】
次にモーション・オペレータ4について述べる。モーション・オペレータ4は一般的にはサーボ機構(すなわち機械的運動のための自動フィードバック制御システム)と呼ばれるが、ここでは一般化するためにモーション・オペレータ4と呼ぶ。モーション・オペレータ4は、モーション・デザイナ2で作成したモーション・テーブル1を通信等を介して読み取り、入力データを各軸に分配し、そこから各軸間の同期なり、シーケンスなりを決め、各軸のサーボモータを動かす。以下それぞれの手順について図4を参照して述べる。
【0029】
〈通信(S1)〉プログラム作成装置からロボット等へモーション・テーブル1のデータを送るにはいくつかの方法がある。第1の方法は伝送媒体として高速の通信回線を用いる方法である。高速の通信回線としては、イーサネット(R)、USB、IEEE1394等を用いることができる。また、条件によっては無線や、低速の通信回線を用いることもできる。第2の方法は直接バスなどを接続してデータを読み込む方法である。プログラム作成装置とロボット等が離れていなければ採用することができる。第3の方法は可搬のメモリ媒体を用いる方法である。CD、DVD、メモリカード等を用いて搬送する。
【0030】
〈モーション・テーブルの読込(S2)〉各通信方式にはそれぞれのプロトコルがあるので、そのプロトコルに従ってモーション・テーブル1を読み込む。
【0031】
〈入力データの各軸への分配(S3)〉モーション・テーブル1は通常複数の軸に対して作成されるので、これを各軸ごとに分配する必要がある。ハブなどを用いて強制的に分配する方法(受渡し側で一列のデータを順番に各軸のドライバに配る方法)もあるが、通常は受け取り側でそれぞれの軸に関係するデータのみを受け取るようにする。受け取り側にメモリがあるとすると、例えばx軸は図2に示される縦の一列のデータを受け取り、y軸はその次の列のデータを受け取り、z軸はさらにその次の列のデータを受け取ることができる。
【0032】
〈同期、シーケンス制御(S4)〉いくつかの軸を一斉に動かすためには、何らかの同期信号を送る必要がある。例えば工具点で円を描こうとすると、x軸のモータ及びy軸のモータを一緒に動かさなければならない。同期信号をサーボドライバに送ることで、各軸モータが一緒に動くようになる。なお同期信号は時分割された時間間隔で必ず一度送られるのが望ましい。
【0033】
また、ロボット等の各種の入出力信号とのシーケンスを取るためには、モーション・エディタ3あるいはシーケンサによってモーション・テーブル1を編集する必要が生じる。例えばリミットスイッチが働いたら工具点を停止させる場合や、センサで温度を測り、温度が高くなってきたら工具点の速度を落としたい場合がある。このような場合、センサからの入力信号があったら、モーション・エディタ3あるいはシーケンサによってモーション・テーブル1を編集する。
【0034】
〈各軸サーボドライバ及び各軸モータ(S5,S6)〉モーション指令に追随してサーボモータが動くかどうかは、サーボドライバ及びサーボモータの役割である。本実施形態では、フィードバック信号をプログラム作成用のコンピュータ(すなわちプログラム作成装置)に戻してはいない。モーション・テーブル1のとおり各軸モータが動くかどうかは、モーション・オペレータ4の問題になる。モーション・テーブル作成用のコンピュータがサーボのループに入ることはない。故にコンピュータでモーション・テーブル1を作成することができる。ただし、フィードバック信号をモニター信号としてモーション・テーブル作成用のコンピュータに戻すことはありうる。また、フィードバック信号をモーション・テーブル作成用のコンピュータに戻し、モーション・テーブル作成用のコンピュータをサーボのループに入れてもよい。
【0035】
以下本実施形態の制御方式の特徴を述べる。
【0036】
簡単な構成でありながら高速・高精度の制御が可能である。プログラム作成装置でモーション・テーブル1を作成し、サーボモータをモーション・テーブルのとおりに動かすことにより、この効果が得られる。
【0037】
モーション・デザイナ2とモーション・オペレータ4の機能を分離することによって、それぞれの開発が容易になる。従来のコントローラは、両方の機能が一緒のものや分離されていても切れ目がはっきりしていないものが多い。本実施形態では、モーション・テーブル1を作成するまでのモーション・デザイナ2の機能と、ロボット等の各軸を動かすモーション・オペレータ4の機能とを明確に分離し、その間を通信等で繋いでいる。このように機能を分離することによって、例えばソフトウェア開発メーカがモーション・デザイナ2としてソフトウェアを提供し、またこれとは別に、モータメーカが自分のモータに合うサーボドライバをモーション・オペレータ4として提供することができる。このように、モーション・デザイナ2とモーション・オペレータ4とを別々に開発することができる。
【0038】
特にモーション・デザイナ2には機械の運動を制御するのに必要な機能がすべて含まれており、コントローラのソフト化を容易にしている。工具点の軌跡の形状を設計したり、軌跡上を動く工具の速度・加速度を決定したりすることが、全てモーション・デザイナ2でできる。このように機械の運動まで制御、すなわち時間の関数として機械の位置・姿勢を制御することで、曖昧さを排除することができる。
【0039】
モーション・デザイナ2とモーション・オペレータ4の機能を分離し、この間を高速の通信回線や市販の可搬メモリ媒体を利用して接続することで、モーション・デザイナ2とモーション・オペレータ4とを距離的、空間的に離すこともできる。
【0040】
短い時間間隔で制御するため、精細な制御が可能となり、サーボドライバも簡素化される。
【0041】
遅れや無駄時間のない制御が可能となり、予測したとおりの制御結果が得られる。
【0042】
ハードウェアを簡素化したので、従来の制御方式よりも安価なシステムを構成できる。従来のコントローラが不要になり、コンピュータとサーボドライバがあればモータが回るようになる。
【0043】
時間軸による制御を行うため、従来の制御方式のような曖昧さや不確かさを取り除くことが可能である。何時何分にどこにいるかは最初のプログラミングで決定されている。このため曖昧さが残らない。
【0044】
多軸の同期制御に適している。例えば円を描くような場合は、多軸の同期制御をする必要がある。
【0045】
高速シリアル通信を使う場合には、配線も簡素化される。
【0046】
予期しない制御トラブルや、危険な制御を生じる可能性が少ない。
【0047】
プログラム作成装置として市販のパソコンを用いることができ、パソコンの資産を用い、高速、高容量の計算を行うことができる。
【0048】
設計者や作業者にとって分かりやすい、アットホームな装置を提供できる。
【0049】
特別な言語やライブラリを必要としないオープン環境を提供することができる。
【0050】
将来に対する拡張性が高い。
【図面の簡単な説明】
【図1】本発明の一実施形態における工具運動制御方式の全体構成図。
【図2】モーション・テーブルの一例を示す図。
【図3】モーション・デザイナのソフトウェアの構成を示す図。
【図4】モーション・オペレータのソフトウェアの構成を示す図。
【符号の説明】
1・・・モーション・テーブル
2・・・モーション・デザイナ
3・・・モーション・エディタ
4・・・モーション・オペレータ
Claims (15)
- ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための工具運動制御方式であって、
行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値を記述したモーション・テーブルを作成するプログラム作成装置と、
このモーション・テーブルを読み込んでロボット等の工具を動作させるためのモーション・オペレータとを備えることを特徴とする工具運動制御方式。 - 前記モーション・テーブルの時間軸の時間間隔が2ms以下の精細さで与えられることを特徴とする請求項1に記載の工具運動制御方式。
- 前記プログラム作成装置は、前記モーション・テーブルを作成するためのモーション・デザイナと、複数のモーション・テーブルを編集するためのモーション・エディタとを備えることを特徴とする請求項1に記載の工具運動制御方式。
- 前記モーション・デザイナは、
ロボット等の工具の代表点(工具点)が、時間的に移動する平面的あるいは空間的に描かれた連続な軌跡曲線(直線を含む)を設計する手段と、
前記軌跡曲線上を移動する工具点の速度・加速度を指定する手段と、
時間tを所定の時間間隔で与えたとき、カルテシアン座標系(実在空間)における時間tに対する工具点の位置及び/又は姿勢を計算する手段と、
工具点の位置及び/又は姿勢を与えるために必要な各動作軸の変位を求める手段と、
行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータをメモリに格納する手段と、を備えることを特徴とする請求項1ないし3いずれかに記載の工具運動制御方式。 - 前記モーション・オペレータは、
前記モーション・テーブルのデータを読み込む手段と、
前記データを各動作軸に分配する手段と、
各動作軸のサーボモータを動かすためのモーション指令を各動作軸のサーボドライバに送る手段と、を備えることを特徴とする請求項1ないし4いずれかに記載の工具運動制御方式。 - 前記モーション・オペレータはさらに、
いくつかの動作軸を一斉に動かすために同期信号を各動作軸のサーボドライバに送る手段を備えることを特徴とする請求項5に記載の工具運動制御方式。 - ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための工具運動制御方式であって、
行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるるモーション・テーブルを作成するプログラム作成装置を備えることを特徴とする工具運動制御方式。 - コンピュータに、
ロボット等の工具の代表点(工具点)が、時間的に移動する平面的あるいは空間的に描かれた連続な軌跡曲線(直線を含む)を設計する手順と、
前記軌跡曲線上を移動する工具点の速度・加速度を指定する手順と、
時間tを所定の時間間隔で与えたとき、カルテシアン座標系(実在空間)における時間tに対する工具点の位置及び/又は姿勢を計算する手順と、
工具点の位置及び/又は姿勢を与えるために必要な各動作軸の変位を求める手順と、
行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータをメモリに格納する手順と、を実行させるためのプログラム。 - コンピュータに、
ロボット等の工具の代表点(工具点)が、時間的に移動する平面的あるいは空間的に描かれた連続な軌跡曲線(直線を含む)を設計する手順と、
前記軌跡曲線上を移動する工具点の速度・加速度を指定する手順と、
時間tを所定の時間間隔で与えたとき、カルテシアン座標系(実在空間)における時間tに対する工具点の位置及び/又は姿勢を計算する手順と、
工具点の位置及び/又は姿勢を与えるために必要な各動作軸の変位を求める手順と、
行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータをメモリに格納する手順と、を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。 - ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるためのデータ構造であって、
行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータ構造。 - ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるためのコンピュータ読み取り可能な記録媒体であって、
行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータが記録されたコンピュータ読み取り可能な記録媒体。 - ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための情報伝送媒体であって、
行方向に時間軸、列方向にロボット等の各動作軸をとって各動作軸の変位の値が記述されるモーション・テーブルのデータを伝送することを特徴とする情報伝送媒体。 - ロボット等における工具の位置及び/又は姿勢を時間の関数として与えるための工具運動制御方式であって、
行方向に時間軸、列方向にロボット等の各動作軸をとって各軸の変位の値が記述されるモーション・テーブルを読み込んでロボット等の工具を動作させるためのモーション・オペレータを備えることを特徴とする工具運動制御方式。 - 前記モーション・オペレータは、
前記モーション・テーブルのデータを読み込む手段と、
前記データを各動作軸に分配する手段と、
各動作軸のサーボモータを動かすためのモーション指令を各動作軸のサーボドライバに送る手段と、を備えることを特徴とする請求項13に記載の工具運動制御方式。 - 前記モーション・オペレータはさらに、
いくつかの動作軸を一斉に動かすために同期信号を各動作軸のサーボドライバに送る手段を備えることを特徴とする請求項14に記載の工具運動制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003154971A JP2004351598A (ja) | 2003-05-30 | 2003-05-30 | 工具運動制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003154971A JP2004351598A (ja) | 2003-05-30 | 2003-05-30 | 工具運動制御方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004351598A true JP2004351598A (ja) | 2004-12-16 |
Family
ID=34049478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003154971A Withdrawn JP2004351598A (ja) | 2003-05-30 | 2003-05-30 | 工具運動制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004351598A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5113747B2 (ja) * | 2006-06-28 | 2013-01-09 | Thk株式会社 | 加工装置及び加工装置の制御方法 |
-
2003
- 2003-05-30 JP JP2003154971A patent/JP2004351598A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5113747B2 (ja) * | 2006-06-28 | 2013-01-09 | Thk株式会社 | 加工装置及び加工装置の制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220009100A1 (en) | Software Interface for Authoring Robotic Manufacturing Process | |
US11409260B2 (en) | Runtime controller for robotic manufacturing system | |
EP3145682B1 (en) | Systems and methods for time-based parallel robotic operation | |
CN108326877B (zh) | 机器人控制设备、系统和控制方法及制品装配制造方法 | |
JPH1097316A (ja) | 多数の移動物体を伴うシステムの移動計画及び制御方法 | |
Nagata et al. | Development of CAM system based on industrial robotic servo controller without using robot language | |
JP2011048621A (ja) | ロボットのオフライン教示方法 | |
JPH0319964B2 (ja) | ||
JP3207409B2 (ja) | ロボットのツール姿勢制御方法 | |
JPH1110575A (ja) | パラレルリンク機構 | |
Yang et al. | A tool path generation and contour error estimation method for four-axis serial machines | |
Shirase et al. | Machine tool automation | |
CN111496798B (zh) | 机器人传送带跟踪方法、设备及存储装置 | |
US4912383A (en) | Method of controlling a robot | |
JP2004351598A (ja) | 工具運動制御方式 | |
Xu et al. | Research on motion trajector planning of industrial robot based on ROS | |
JP2003044144A (ja) | 多軸同期制御装置、多軸同期制御方法および多軸同期制御プログラム | |
JPH06337711A (ja) | ロボットの教示装置 | |
JP3668821B2 (ja) | ロボットコントローラおよびロボット制御方法 | |
JP2686293B2 (ja) | 3次元レーザ加工方法 | |
Scheifele et al. | Real-time extension of ROS based on a network of modular blocks for highly precise motion generation | |
Rolland | Path planning kinematics simulation of CNC machine tools based on parallel manipulators | |
JP2922617B2 (ja) | 力制御ロボットにおける押付力方向の指定方法 | |
WO2024142289A1 (ja) | プログラミング装置、プログラミング方法及びプログラム | |
Yang et al. | Synchronous Control Method and Simulation Research of Multi-degree of Freedom Humanoid Space Manipulator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060801 |