(57)【要約】【課題】  被対象物の移動制御において、所定の通過に要する移動時間（タクトタイム）を短くすることが可能となるモーションコントローラ装置を提供する。【解決手段】  アーチモーション演算部３を含むＰＣ部２を備え、任意の数の指定された通過点を通過させるとともに、直線又は所定の曲線上を動作させ、又は、滑らかなアーチモーション動作をさせる動作データを作成して駆動装置７、８を制御するモーションコントローラ装置１において、アーチモーション動作の軌跡を設定する際の始点と次に通過する第１の通過点とを結ぶ第１の直線又は所定の曲線の延長線上に曲始点を設定するとともに、該延長線上の曲始点の先に仮想点を設定し、仮想点と次の次に通過する第２の通過点とを結ぶ第２の直線又は所定の曲線を設定し、始点から曲始点まで第１の直線又は所定の曲線及びその延長線上を動作させるとともに曲始点から第２の直線又は所定の曲線にアーチモーション動作をさせる動作データを作成する。【選択図】        図１
2005234862.tif 000002
【特許請求の範囲】
【請求項１】
アーチモーション演算部を含むＰＣ部を備え、任意の数の指定された通過点を通過させるとともに、直線又は所定の曲線上を動作させ、又は、滑らかなアーチモーション動作をさせる動作データを作成して駆動装置を制御するモーションコントローラ装置において、
アーチモーション動作の軌跡を設定する際の始点と次に通過する第１の通過点とを結ぶ第１の直線又は所定の曲線の延長線上に曲始点を設定するとともに、該延長線上の曲始点の先に仮想点を設定し、該仮想点と次の次に通過する第２の通過点とを結ぶ第２の直線又は所定の曲線を設定し、前記始点から前記曲始点まで第１の直線又は所定の曲線及びその延長線上を動作させるとともに前記曲始点から前記第２の直線又は所定の曲線にアーチモーション動作をさせる動作データを作成する機能を有することを特徴とするモーションコントローラ装置。
【請求項２】
請求項１記載のモーションコントローラ装置において、
上記仮想点が設定される位置が所定の動作範囲を超えているとき、前記仮想点又は上記曲始点を、上記第１の通過点に近い上記延長線上に設定しなおす機能を有することを特徴とするモーションコントローラ装置。
【請求項３】
請求項１記載のモーションコントローラ装置において、
上記仮想点と上記第２の通過点との距離が所定の距離以上離れている場合、上記第２の直線又は所定の曲線に高速用仮想点を設定し、該高速用仮想点まで高速速度で移動させる動作データを作成する機能を有することを特徴とするモーションコントローラ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションコントローラ装置であり、産業用機械（例えば、ロボット、工作機械、加工機械、搬送機械装置、自動組み立て機械）などの制御装置において、ユーザの指定位置を通り、アーチモーション動作を用い、滑らかな曲線を描いて通過するような自動経路計算機能を備えたモーションコントローラ装置に関するものである。
【背景技術】
【０００２】
ＸＹ平面上の所定の点として、連続動作を行う場合、従来の直線軌跡の組み合わせでは、各位置決め目標点において一旦動作が停止してしまい、必ずしも指定位置を指定の速度で通過しない場合があった。そこで、位置決め目標位置の近傍を滑らかに通る動作させるものとしてアーチモーション動作と呼ばれているものが知られている。製品としては、ロボットやＮＣ（Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）工作機械装置等に使用されている。この技術を開示するものとして、特許文献１がある。この場合、必ずしも最短のルートで滑らかな軌跡を描くとは限らないものがあった。
【特許文献１】特開平９−６９００５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記従来のアーチモーション動作については、例えば所定の点（任意の数点）を通過させる様に制御する場合、ＸＹ平面の移動範囲内の通過コースは無限に選択が可能であるが、必ずしも短い時間で全部の点を通過させるものとは限らないものであった。
【０００４】
本発明は、従来の問題を解決するものであり、被対象物の移動制御において、所定の通過に要する移動時間（タクトタイム）を短くすることが可能となるモーションコントローラ装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明において、始点から第１指定位置を結ぶ直線の延長上であり、初期値＝１として第１指定位置からマージン距離だけ離れた点を曲がり始める位置（曲始点）として仮決めする。次に始点から直線上であって、前記曲がり始める位置までの距離の所定比率（初期値＝１００／９９）だけ延長した位置に仮想点を仮決めする。次に、前記仮想点と次の指定位置を結んでその指定位置に向かって移動する際の、前記仮想点での加減速度を計算する。計算された加減速度が所定の加減速度以下であるならば、前記仮想点を決定する。もし、所定の加減速度を超えているならば、前記マージン距離や前記所定比率を変えて、前記曲がり始める位置や仮想点の位置を変える。この変わった位置より求まる加減速度が、前記所定加減速度以下になるまで上記処理を繰り返す。前記処理によって、仮想点を決めていく。なお、決められた仮想点と次の指定位置との距離が指定以上離れている場合には、移動速度も通常よりも大きな速度にすることで、移動時間を短くすることが可能となる。
【０００６】
すなわち、本発明は、アーチモーション演算部を含むＰＣ部を備え、任意の数の指定された通過点を通過させるとともに、直線又は所定の曲線上を動作させ、又は、滑らかなアーチモーション動作をさせる動作データを作成して駆動装置を制御するモーションコントローラ装置において、アーチモーション動作の軌跡を設定する際の始点と次に通過する第１の通過点とを結ぶ第１の直線又は所定の曲線の延長線上に曲始点を設定するとともに、該延長線上の曲始点の先に仮想点を設定し、該仮想点と次の次に通過する第２の通過点とを結ぶ第２の直線又は所定の曲線を設定し、前記始点から前記曲始点まで第１の直線又は所定の曲線及びその延長線上を動作させるとともに前記曲始点から前記第２の直線又は所定の曲線にアーチモーション動作をさせる動作データを作成する機能を有するモーションコントローラ装置である。
【０００７】
また、本発明は、上記仮想点が設定される位置が所定の動作範囲を超えているとき、前記仮想点又は上記曲始点を、上記第１の通過点に近い上記延長線上に設定しなおす機能を有するモーションコントローラ装置である。
【０００８】
そして、本発明は、上記仮想点と上記第２の通過点との距離が所定の距離以上離れている場合、上記第２の直線又は所定の曲線に高速用仮想点を設定し、該高速用仮想点まで高速速度で移動させる動作データを作成する機能を有するモーションコントローラ装置である。
【発明の効果】
【０００９】
本発明によれば、例えばＸＹ平面上の駆動装置の移動制御において、所定の点を通過する好適なルートを決めることができる。これにより、移動に要する時間（タクトタイム）を従来よりも短くすることが可能となる。
【発明を実施するための最良の形態】
【００１０】
本発明を実施するための最良の形態を説明する。
以下、図面を用いて本発明のモーションコントローラ装置の実施例について、図面を用いて詳細に説明する。
【００１１】
実施例１を説明する。図１に、本発明の一実施例であるモーションコントローラ装置１を含んだ全体のシステム構成例を示しており、モーションコントローラ装置１は、指定位置上を指定の速度で通過し、指定位置の間で停止することなく滑らかな軌跡で、かつ、最適なアーチモーション動作をするための仮想点等を算出することができる。以下、指定位置間を結ぶ直線上を動作させる代りに、所定の曲線、例えば円弧上を動作させることも可能である。
【００１２】
モーションコントローラ装置１は、指定位置を指定速度で通過するアーチモーション動作のデータを演算するアーチモーション演算部３を含むＰＣ（パソコン）部２と、ＰＣ部２より算出された仮想点データを通信により、制御盤４のＰＬＣ（プログラマブルロジックコントローラ）モジュール５に送信し、サーボアンプ６へ指令値を出力し、サーボモータ７を駆動しＸＹテーブル８上の指定位置を通るシステム構成である。
【００１３】
また、図１は本発明の実施例であるが、アーチモーション動作のデータを演算するＰＣ部２以外は、一般的なサーボ等の駆動部分のシステム構成を使用することができる。
【００１４】
アーチモーション演算部３からＰＬＣモジュール５へのデータ流れの概略の一例を図２に示す。図２のｓｔａｒｔ２００から始まり、処理２０１では、例えばユーザが指定した通過位置をＰＣ部２内で記憶する。処理２０２では、アーチモーション演算部３で指定位置を通り最適なアーチモーション動作の経路を計算する処理である。具体的な詳細は図３を用いて後に説明する。処理２０３では、処理２０２で計算されたアーチモーション動作用の仮想点のデータを制御盤４内のＰＬＣモジュール５に送信する処理を行い、ｅｎｄ２０４で終了するものである。
【００１５】
次に、本実施例のモーションコントローラ装置１の自動経路演算により、指定位置を通る最適パスの計算の一例について、図３のフローチャートを用いて説明し、詳細図を図４に示す。図３のｓｔａｒｔ３００から始まり、処理３０１では、このフローチャートを繰り返し、前回計算された第（Ｉ−１）仮想点（始点）と次に通過する通過点である第Ｉ指定位置までの距離（ｚＩ）を、第Ｉ指定位置座標点（ｘＩ，ｙＩ）、第（Ｉ−１）仮想点座標（ＬｘＩ−１，ＬｙＩ−１）として計算する。計算式（１）を以下に示す。
【数１】
2005234862.tif 000003
【００１６】
処理３０２では、前回計算された第Ｉ番目仮想点を第（Ｉ−１）仮想点にインクリメントされた第（Ｉ−１）仮想点から、第Ｉ指定位置の直線上にアーチモーション動作により曲がり出す点（曲始点）である、第Ｉ指定位置からマージン距離（Ｍ：初期値＝１）加えた点までの距離（Ｌ’Ｉ）と前記アーチモーション動作により曲がり出す点の座標（ｄ’ｘＩ、ｄ’ｙＩ）を求める。計算式（２）（３）を以下に示す。
【数２】
2005234862.tif 000004
【００１７】
具体的なマージン距離の一例としては、ここでは指定位置間の最小距離（ｍｍ）÷１０を初期値とする。ここでの最小距離は、１０（ｍｍ）として計算している。第（Ｉ−１）仮想点から曲がり出す点までの距離（Ｌ’Ｉ）と第Ｉ仮想点までの比率（以下、「アーチモーション比率」という）により、第Ｉ仮想点の位置を計算し仮決めをする。アーチモーション比率（αＩ）の初期値を９９％とする。
【００１８】
処理３０３では仮決めした第Ｉ仮想点の座標計算（ＬｘＩ、ＬｙＩ）を行い、第（Ｉ−１）仮想点から第Ｉ仮想点までの距離（ＬＩ）を計算する。計算式（４）（５）を以下に示す。
【数３】
2005234862.tif 000005
【００１９】
このとき、条件文３０４ではＸＹテーブルの動作範囲外に第Ｉ仮想点の座標が存在しているか否かを判定している。ここでもしＸＹテーブルの動作範囲外に第Ｉ仮想点の座標が存在してしまうと不適切なので、処理３０５内のＸＹデーブル動作範囲内に戻ってくる処理を行う。ここの例では範囲内に入っているとするので、具体的な処理に関しては、後で説明する。
【００２０】
条件文３０４の中で第Ｉ仮想点の座標がＸＹテーブルの動作範囲内に存在しているのであれば、処理３０６の第Ｉ仮想点の座標位置から、次の次に通過する通過点である第（Ｉ＋１）指定位置（ｘＩ＋１，ｙＩ＋１）までの直線距離（ｚＩ＋１）を計算する。計算式（６）を以下に示す。
【数４】
2005234862.tif 000006
【００２１】
このとき、条件文３０７では第Ｉ仮想点から第（Ｉ＋１）指定位置までの距離が指定値（ユーザ入力可能）以上離れているか否かを判定している。ここでもし指定値以上の距離が離れている場合には、処理３０８の高速移動の処理を行う。ここの例では指定値以上離れていないとし、具体的な処理に関しては、後で説明する。
【００２２】
条件文３０７の中で指定値以上の距離が離れていない場合には、処理３０９によって前記第Ｉ仮想点においてのアーチモーション動作の加減速度（ＫＩ）を計算する。計算式（７）を以下に示す。
【数５】
2005234862.tif 000007
Ｖは通常速度、Ｔはアーチモーション動作により滑らかな軌跡を描いている時間となっている。
【００２３】
加減速度を計算後、条件文３１０では前記アーチモーション動作の加減速度の計算値が機械システムで規定されている動作可能な加減速度（Ｋ）以内か否かの判定をしている。
【００２４】
ここで、加減速度を超えてしまう場合は、前記アーチモーション比率（初期値＝９９％）から１％小さくし（αＩ−１→αＩ）、またはマージン距離Ｍを１ずつ大きくすることで（Ｍ＋１→Ｍ）、第Ｉ仮想点の位置を変え、結合子Ｂより処理３０２に戻り、第Ｉ仮想点座標の再計算を行う。
【００２５】
条件文３１０の中でアーチモーション比率が加減速度以内のときには、処理３１２で第Ｉ仮想点の座標を決定とする。このとき、条件文３１３では残りの指定位置がまだ有るか否かの判定をし、指定位置が他にも存在しているなら、処理３１５により第Ｉ番目を第（Ｉ−１）番目、第（Ｉ＋１）番目を第Ｉ番目にインクリメントし、結合子Ａにより処理３０１に戻り、次の指定位置に対応する仮想点の計算を繰り返す。条件文３１３で残りの指定位置が存在していなければ、仮想点を作る処理はｅｎｄ３１４で終了とする。
【００２６】
次に本実施例のモーションコントローラ装置におけるＸＹテーブル動作範囲内に戻ってくる処理の一例について、図５のフローチャートを用いて説明し、詳細図を図６に示す。図５のｓｔａｒｔ５００から始まり、条件文５０１では、ＸＹテーブルの動作範囲から、第Ｉ仮想点のＸ座標が正方向にはみ出しているか否かを判定している。ここで、Ｘ座標がはみだしている場合は、処理５０２で第Ｉ仮想点のＸ座標に代入するＸＹテーブルのリミット値を採用する。また条件文５０３では第Ｉ仮想点のＸ座標が負の方向にはみ出しているか否かを判定している。ここで、Ｘ座標がはみだしている場合は、処理５０４で第Ｉ仮想点のＸ座標に代入する０を採用する。ここで、処理５０２もしくは、処理５０４でＸ座標が採用された場合は、処理５０５でＬｘＩの値をＸに代入する。
【００２７】
またＹ座標も同様に条件文５０６では第Ｉ仮想点のＹ座標が正方向にはみ出しているか否かを判定している。ここで、Ｙ座標がはみだしている場合は、処理５０６で第Ｉ仮想点のＹ座標に代入するＸＹテーブルのリミット値を採用する。また条件文５０８では第Ｉ仮想点のＹ座標が負の方向にはみ出しているか否かを判定している。ここで、Ｙ座標がはみだしている場合は、処理５０９で第Ｉ仮想点のＹ座標に代入する０を採用する。ここで、処理５０７もしくは、処理５０９でＹ座標が採用された場合は、処理５１０でＬｙＩの値をＹに代入する。
【００２８】
次に処理５１１では、処理５０５で代入されたＸ座標もしくは、処理５１０で代入されたＹ座標を用いて、第（Ｉ−１）仮想点と第Ｉ指定位置を結ぶ直線の式から未算出のＸ座標、もしくはＹ座標を計算し、リミット点での第Ｉ仮想点の座標を算出する。第（Ｉ−１）仮想点と第Ｉ指定位置を結ぶ直線の式（８）を以下に示す。
【数６】
2005234862.tif 000008
【００２９】
上記の式より出てきたＸをＬｘＩ、ＹをＬｙＩにそれぞれ代入し、リミット点での第Ｉ仮想点の座標（ＬｘＩ、ＬｙＩ）を算出する。
【００３０】
処理５１２では、第（Ｉ−１）仮想点から第Ｉ仮想点の直線上をＮｍｍ（初期値Ｎ＝１）戻した座標を第Ｉ’仮想点として仮決めする。具体的な計算式（９）を以下に示す。
【数７】
2005234862.tif 000009
【００３１】
上記の式より第Ｉ’仮想点座標（ＬｘＩ’、ＬｙＩ’）を算出する。
【００３２】
処理５１３では、第Ｉ’仮想点から第（Ｉ＋１）指定位置までの距離を計算する。計算式（１０）を以下に示す。
【数８】
2005234862.tif 000010
【００３３】
処理５１４では、仮決めした第Ｉ’仮想点での加減速度を計算する。計算式（１１）を以下に示す。
【数９】
2005234862.tif 000011
【００３４】
次に条件文５１５では、処理５１４で算出された前記第Ｉ’仮想点での加減速度は動作可能な加減速度以内になっているか否かを判定している。ここで動作可能な加減速度以上であるときは、処理５１６によってＮ＋１→Ｎとされ、結合子Ｃにより戻り、動作可能な加減速度以内になるまで繰り返される。条件文５１５で動作可能な加減速度以内であれば、処理５１７により第Ｉ’仮想点が決定される。
【００３５】
次に本実施例のモーションコントローラ装置における高速移動処理の一例について図７のフローチャートを用いて説明し、詳細を図８に示す。図７のｓｔａｒｔ７００から始まり、処理７０１では第Ｉ仮想点を高速開始仮想点と仮定する。次の第（Ｉ＋１）指定位置の手前で高速速度から通常速度に戻るために、マージン距離Ｍｋ（初期値＝５）を設定する。処理７０３では処理７０２で設定されたＭｋを使用し、第Ｉｋ高速終了仮想点（ＬｘＩｋ、ＬｙＩｋ）を仮決めする。計算式（１２）を以下に示す。
【数１０】
2005234862.tif 000012
【００３６】
処理７０４の第Ｉｋ高速終了仮想点での加減速度を計算する。計算式（１３）を以下に示す。
【数１１】
2005234862.tif 000013
ここでＶｋは高速速度として、ユーザ入力が可能となっている。
【００３７】
次の条件文７０５では、第Ｉｋ高速終了仮想点での加減速度計算値は動作可能な加減速以内になっているか否かを判定し、条件を満たしている場合は処理７０９において第Ｉｋ高速終了仮想点を決定し、ｅｎｄ７１０で終了する。
【００３８】
このとき、条件文７０５の条件を満たしていない場合、処理７０６の高速の速度を落とし、条件文７０７により高速速度は通常速度以上であるか否かの判定をしている。ここで、条件文７０７を満たしている場合には、処理７０４に戻り再計算を行う。ここで、条件文７０７を満たしていない場合には、第Ｉｋ高速終了仮想点を削除し、ｅｎｄ７１０で終了する。
【図面の簡単な説明】
【００３９】
【図１】実施例１のモーションコントローラ装置を備えたシステム構成図。
【図２】実施例１におけるアーチモーション演算部における全体処理の流れ図。
【図３】実施例１におけるアーチモーション動作により、仮想点を算出処理の流れ図。
【図４】図３の流れ図おける仮想点設定図の一例。
【図５】図３の流れ図におけるリミット範囲内で戻る処理の詳細流れ図。
【図６】図５の流れ図における仮想点設定図の一例。
【図７】図３の流れ図における高速移動処理の詳細流れ図。
【図８】図７の流れ図における仮想点設定図の一例。
【符号の説明】
【００４０】
１  モーションコントローラ装置
２  ＰＣ部
３  アーチモーション演算部
４  制御盤
５  ＰＬＣモジュール
６  サーボアンプ
７  サーボモータ
８  ＸＹテーブル
【図１】
2005234862.tif 000014
【図２】
2005234862.tif 000015
【図３】
2005234862.tif 000016
【図４】
2005234862.tif 000017
【図５】
2005234862.tif 000018
【図６】
2005234862.tif 000019
【図７】
2005234862.tif 000020
【図８】
2005234862.tif 000021