(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-24
(45)【発行日】2024-07-02
(54)【発明の名称】軌道生成装置および自動位置制御装置
(51)【国際特許分類】
G05B 19/4103 20060101AFI20240625BHJP
B25J 9/10 20060101ALI20240625BHJP
【FI】
G05B19/4103 R
G05B19/4103 A
B25J9/10 A
(21)【出願番号】P 2022535368
(86)(22)【出願日】2021-07-07
(86)【国際出願番号】 JP2021025613
(87)【国際公開番号】W WO2022009921
(87)【国際公開日】2022-01-13
【審査請求日】2023-02-07
(31)【優先権主張番号】P 2020119020
(32)【優先日】2020-07-10
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100118913
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100201466
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】平川 学
【審査官】杉山 悟史
(56)【参考文献】
【文献】国際公開第2019/064919(WO,A1)
【文献】特公平06-058603(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18 ~ 19/416
19/42 ~ 19/46
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
制御対象が通過する軌道を生成する軌道生成装置であって、
前記制御対象が通過する複数の点を記憶する記憶部と、
プロセッサと、を備え、
前記プロセッサが、
前記複数の点のうち2つの点の間の部分区間におけるユーザ指定の軌跡の情報である指定軌跡情報を受付ける受付処理と、
前記指定軌跡情報を受付けると、前記複数の点のうち前記2つの点の前に前記制御対象が通過する少なくとも1つの前側通過点と前記2つの点とを通過する第1の軌跡と、前記複数の点のうち前記2つの点の後に前記制御対象が通過する少なくとも1つの後側通過点と前記2つの点とを通過する第2の軌跡と、前記指定軌跡情報とを用いて、前記部分区間における前記軌道
の第1の式と、前記部分区間と前記後側通過点との間の後の部分区間における前記軌道の第2の式と、を生成する軌道生成処理と、
を実行
し、
前記プロセッサは、前記部分区間の前記軌跡を前記指定軌跡情報が示す軌跡の種類に応じた軌跡としながら、前記部分区間と前記後の部分区間との間の点において前記第1の式と前記第2の式の少なくとも1階の導関数の値が相互に一致するように、前記軌道生成処理を行う、軌道生成装置。
【請求項2】
前記指定軌跡情報は、前記部分区間における
前記軌跡の種類が、直線軌跡、円弧軌跡、楕円弧軌跡、螺旋曲線軌跡、2次関数曲線軌跡、3次関数曲線軌跡の何れか1つであることを示すものである、請求項1に記載の軌道生成装置。
【請求項3】
前記前側通過点、前記2つの点、および前記後側通過点は、この順に前記制御対象が通過する連続する4つの点である、請求項1又は2に記載の軌道生成装置。
【請求項4】
前記プロセッサが、前記第1の軌跡と前記指定軌跡情報とを用いて前記前側通過点および前記2つの点を通過する第1区間軌跡を導出すると共に、前記第2の軌跡と前記指定軌跡情報とを用いて前記2つの点および前記後側通過点を通過する第2区間軌跡を導出する導出処理を実行する、請求項1~3の何れかに記載の軌道生成装置。
【請求項5】
制御対象の位置を制御する自動位置制御装置であって、
請求項1から請求項
4のいずれかに記載の軌道生成装置と、
前記軌道生成装置によって生成された前記軌道に沿って前記制御対象を移動させる制御部と、を備える自動位置制御装置。
【請求項6】
前記制御部が、ロボットアームの動作を制御するものであり、
前記制御対象が、前記ロボットアームの先端、または、前記ロボットアームの先端に取付けられたエンドエフェクタである、請求項
5に記載の自動位置制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、軌道生成装置および自動位置制御装置に関するものである。
【背景技術】
【0002】
従来、数値制御(NC)工作機械または産業用ロボット等の分野において、ツールの通過点として与えられた離散的な点の間を補間することによって、ツールの軌道を生成する方法が知られている(例えば、特許文献1参照。)。
一般に、隣接する複数点を接続する補間曲線が算出され、補間曲線同士を接続することによって軌道が生成される。ツールが減速することなく通過点を通過するためには、補間曲線同士が通過点で滑らかに接続される必要がある。
【0003】
特許文献1では、点Pm,Pm+1間の区間の補間曲線Sm(t)の算出において、隣接する区間の補間曲線同士の接続のために、隣接する区間の点Pm-1,Pm+2も使用している。具体的には、特許文献1では、3つの点Pm-1,Pm,Pm+1を通過する2次曲線Sm(t)と、3つの点Pm,Pm+1,Pm+2を通過する2次曲線Sm+1(t)とを導出し、点Pm,Pm+1での2次曲線の1次微分係数および2次微分係数に基づいて補間曲線Sm(t)を算出している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1では、点PmとPm+1との間の部分区間において、Sm(t)とSm+1(t)とを可能な限り滑らかに接続するために、tの進捗に応じて当該区間における制御対象の制御をSm(t)からSm+1(t)に徐々に遷移させる。この時の軌道はSm(t)およびSm+1(t)に依存しており、両者が異なる種類の関数である場合等に当該部分区間の軌道はユーザにとって予測し難いものとなる。このため、Sm(t)とSm+1(t)とを滑らかに接続しながら、当該区間の軌道をユーザにとって予測し易くすることが望ましい。
【課題を解決するための手段】
【0006】
制御対象が通過する軌道を生成する軌道生成装置であって、前記制御対象が通過する複数の点を記憶する記憶部と、プロセッサと、を備え、前記プロセッサが、前記複数の点のうち2つの点の間の部分区間におけるユーザ指定の軌跡の情報である指定軌跡情報を受付ける受付処理と、前記指定軌跡情報を受付けると、前記複数の点のうち前記2つの点の前に前記制御対象が通過する少なくとも1つの前側通過点と前記2つの点とを通過する第1の軌跡と、前記複数の点のうち前記2つの点の後に前記制御対象が通過する少なくとも1つの後側通過点と前記2つの点とを通過する第2の軌跡と、前記指定軌跡情報とを用いて、前記部分区間における前記軌道の第1の式と、前記部分区間と前記後側通過点との間の後の部分区間における前記軌道の第2の式と、を生成する軌道生成処理と、を実行し、前記プロセッサは、前記部分区間の前記軌跡を前記指定軌跡情報が示す軌跡の種類に応じた軌跡としながら、前記部分区間と前記後の部分区間との間の点において前記第1の式と前記第2の式の少なくとも1階の導関数の値が相互に一致するように、前記軌道生成処理を行う。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係る自動位置制御装置および軌道生成装置のブロック図である。
【
図2】本実施形態によって制御される制御対象の概略図である。
【
図3】本実施形態の軌道生成方法を説明する図である。
【
図4】本実施形態の軌道生成方法を説明する図である。
【
図5】本実施形態の軌道生成方法を説明する図である。
【
図6】本実施形態の軌道生成方法を説明する図である。
【発明を実施するための形態】
【0008】
以下に、一実施形態に係る軌道生成装置、自動位置制御装置および軌道生成方法について図面を参照して説明する。
自動位置制御装置2は、制御対象の位置を制御するものである。
図2に示されるように、制御対象4aの一例は、産業用等のロボット4の多関節ロボットアーム5の先端5aの位置、または、ロボットアーム5の先端5aに取付けられたハンドまたはツール等のエンドエフェクタ6の所定位置6aである。制御対象4aの他の例は、数値制御(NC)工作機械のツールである。したがって、自動位置制御装置2は、ロボットを制御するロボット制御装置またはNC工作機械を制御する数値制御装置であり得る。
【0009】
自動位置制御装置2は、
図1に示されるように、点列として与えられる離散的なn個の点P
1,P
2,…,P
i-1,P
i,P
i+1,P
i+2,…を通過する軌道を生成する軌道生成装置1と、軌道生成装置1によって生成された軌道に沿って制御対象4aを移動させる制御部3と、入力装置10と、を備える。入力装置10は、キーボード、マウス、タッチスクリーン機能付きの表示装置、動作プログラム設定用のポータブル入力装置等である。制御対象4aがロボットアーム5の先端5aまたはエンドエフェクタ6の所定位置6aである場合、制御部3はロボットアーム5の動作を制御するロボット制御部であり、自動位置制御装置2はロボット制御装置である。この場合、制御部3は、プロセッサ、動作プログラムが格納された記憶装置等を有する。なお、自動位置制御装置2はオフラインでロボットの動作プログラムを生成するコンピュータであってもよい。
【0010】
軌道生成装置1は、中央演算処理装置のようなプロセッサ1aと、RAM、ROM、不揮発性ストレージ、ハードディスク等を有する記憶部1bとを有する。前記の離散的なn個の点は、入力装置10を用いて入力され、又は軌道生成装置1が他のコンピュータから受信し、記憶部1bに格納される。
点Piは、例えば作業者によって設定された教示点である。2次元平面内で移動する制御対象4aの場合、点Piの位置は2次元座標(xi,yi)で表され、3次元空間内で移動する制御対象4aの場合、点Piの位置は3次元座標(xi,yi,zi)で表される。
また、記憶部1bには、軌道生成プログラム1cおよび軌跡導出プログラム1dが格納されている。軌道生成装置1による後述の計算は、プロセッサ1aが軌道生成プログラム1cに従って処理を実行することによって実現される。
【0011】
次に、軌道生成装置1により行われる基本的な軌道生成方法の例について説明する。
図3に示されるように、軌道生成装置1は、点列において隣接する2点P
i,P
i+1を通過し2点P
i,P
i+1間を補間する曲線S
iを算出し、曲線S
iによって表される2点P
i,P
i+1間の部分軌道を算出する。点P
iは点列におけるi番目の点である。ここで、軌道生成装置1は、i-1番目からi+2番目の4つの点P
i-1,P
i,P
i+1,P
i+2に基づいて曲線Siを算出することによって、4つの点P
i-1,P
i,P
i+1,P
i+2又はこれらを含む複数の点によって定義される点P
i,P
i+1間の部分軌道を算出する。軌道生成装置1は、隣接する2点P
i,P
i+1の区間毎に部分軌道を算出することによって、n-1個の部分軌道を得る。
次に、軌道生成装置1は、n-1個の部分軌道を相互に接続することによって、n個の点P
1,P
2,…,P
nを全て通過する軌道を生成する。
【0012】
ここで、軌道生成装置1は、下記2つの条件を満たす曲線Si(ただし、1≦i≦n-2)を算出する。すなわち、点Pi+1において、部分軌道(第1の曲線)Si(ui)および部分軌道(第2の曲線)Si+1(ui+1)の1階の導関数の値が相互に一致する。また、点Pi+1において、部分軌道Si(ui)および部分軌道Si+1(ui+1)の2階の導関数の値が相互に一致する。
【0013】
部分軌道Si(ui)の1階および2階の導関数の値は、部分軌道Si(ui)に沿って移動する制御対象4aの速度および加速度をそれぞれ表す。したがって、軌道生成装置1によって生成された軌道に沿って移動する制御対象4aの位置、速度、および加速度は、部分軌道の接続点である点P2,P3,…,Pn-1の全てにおいて連続する。
【0014】
次に、部分軌道S
i(u
i)の具体的な算出方法について説明する。
図3に示されるように、i=2,3,…,n-1について、連続する3点P
i-1,P
i,P
i+1を通過する曲線の関数F
i(u
i)を算出し、例えばi=1について、2点P
1,P
2を通る関数F
1(u
1)を算出する。u
iは、点P
iと点P
i+1との間の補間の進捗を0から1の値で表す変数である。ただし、u
i+1=u
i-1であり、u
i+2=u
i-2であり、その余も同様である。すなわち、
図3において、点P
iにおいてu
i=0であり、点P
i-1においてu
i=-1であり、点P
i+1においてu
i=1であり、点P
i+1において式F
i+1(u
i+1)の変数u
i+1は0である。関数F
i(u
i)は、u
i=-1において点P
i-1を通過し、u
i=0において点P
iを通過し、u
i=1において点P
i+1を通過する。同様に、関数F
i+1(u
i+1)は、u
i=0において点P
iを通過し、u
i=1において点P
i+1を通過し、u
i=2において点P
i+2を通過する。
【0015】
図3は、一例としてX軸方向の制御対象4aの制御を説明している。
図3には、変数u
iを表わすu軸とx
iを表わすx軸とを用いて表現されるu-x平面上の点列P
i-1,P
i,P
i+1,P
i+2,…が示されている。前記平面において、関数F
i(u
i)は、一例として、円弧、惰円弧、放物線等の2次曲線の関数である。関数F
i(u
i)は、他の2次曲線の関数、1次直線、または3次以上の曲線の関数であってもよい。
このように、点列P
1,P
2,…,P
nをx次元、y次元およびz次元に分解して考える場合、u-x平面上の点列P
1,P
2,…,P
nと同様に、u-y平面上の点列P
1,P
2,…,P
nについて関数F
i(u
i)が算出され、u-z平面上の点列P
1,P
2,…,P
nについて関数F
i(u
i)が算出される。
【0016】
次に、点列P1,P2,…,Pnにおける任意に設定した4点Pi-1,Pi,Pi+1,Pi+2について、下式(1)から、部分区間の部分軌道Si(ui)を算出する。なお、本実施形態では当該4点は連続した4点である。次又は前の部分区間についての部分軌道Si(ui)の算出は、その対応した点Pi-1,Pi,Pi+1,Pi+2を用いて行われる。
Si(ui)=(1-K(ui))×Fi(ui)+K(ui)×Fi+1(ui+1)…(1)
K(ui)は、下記条件1を満たす関数である。
(条件1)uiが0から1に変化するとき、K(ui)の値が0から1へ単調増加する。
【0017】
K(ui)はuiが0から1に変化するとき値が0から1へ単調増加する関数であればよいが、一例として、K(ui)は、下式(2)によって定義される関数である。この場合、点Piでの部分軌道Si(ui),Si-1(ui-1)の値は等しくなり、これらの1次導関数の値、2次導関数の値、および3次導関数の値は、互いに等しくなる。
K(ui)=u3(10-15u+6u2) …(2)
【0018】
次に、
図4および
図5を用いて、本開示の軌道生成方法の例を説明する。
図4は、軸方向の制御対象4aの制御の他の例を説明している。
図4では、点P
i-1から点P
i+1までの区間の軌跡を定義する関数(第1の軌跡)F0
i(u
i)は直線を描く1次関数であり、点P
iから点P
i+2までの区間の軌跡を定義する関数(第2の軌跡)F0
i+1(u
i+1)は円弧、楕円弧、放物線等の2次曲線、3次曲線等を描く関数である。なお、関数F
i(u
i)がほぼ直線を描く2次関数、3次関数であってもよい。一例では、プロセッサ1aが公知のプログラムに基づき、各々の対象点群を通過する前記第1の軌跡および前記第2の軌跡を自動で算出する。
【0019】
図4の場合に、前記式(1)を用いると、点P
i+1における軌跡の接続が滑らかになるが、
図4に示す部分軌道S
i(u
i)のように、点P
iと点P
i+1との間において軌道が直線ではなくなる。このような状況をユーザが望まない場合があり、例えばユーザが点P
iと点P
i+1との間の軌道を直線にしたい場合がある。
【0020】
本実施形態では、
図5に示すように、プロセッサ1aが軌跡導出プログラム1dに基づき第1区間軌跡F
i(u
i)を下記式(3)のように導出し、第2区間軌跡F
i+1(u
i+1)を下記式(4)のように導出する。
【数1】
【数2】
【0021】
式(3)におけるX(u
i)と式(4)におけるX(u
i+1)とは、点P
iと点P
i+1との間の区間で互いに一致する関数であり、
図5の場合は直線を描く関数である。式(3)の第1区間軌跡F
i(u
i)および式(4)の第2区間軌跡F
i+1(u
i+1)を前記式(1)に適用して生成される部分軌道S
i(u
i)はX(u
i)に沿った直線状の軌道となる。
点P
iと点P
i+1との間の区間においてX(u
i)とX(u
i+1)とが一致しているので、式(1)以外を用いて第1区間軌跡F
i(u
i)と第2区間軌跡F
i+1(u
i+1)とを繋げることもできる。
【0022】
ここで、式(3)におけるfi(ui)は、点Piにおいて、つまりui=0の時に、X(ui)に滑らかに繋がる関数である。当該関数fi(ui)はプロセッサ1aが軌跡導出プログラム1dに基づき、例えば前記第1の軌跡F0i(ui)およびX(ui)を用いて導出する。例えば、uiが-1から0の区間において下記式(5)からfi(ui)を算出する。ただし、ui-1=ui+1であり、ui-2=ui+2であり、その余も同様である。uiが1から2の区間においても、同様にX(ui+1)に滑らかに繋がる関数fi+1(ui+1)が算出される。
fi(ui)=(1-K(ui-1))×F0i(ui)+K(ui-1)×X(ui)…(5)
【0023】
X(u
i)およびX(u
i+1)は、自動位置制御装置2の入力装置10へのユーザの入力に基づき設定される。例えば、ユーザは、入力装置10を用いて、指定軌跡情報を入力する。指定軌跡情報は、少なくとも軌道を指定する区間と当該区間の軌跡の種類とを含む。軌跡の種類の例は、直線軌跡、円弧軌跡、楕円弧軌跡等である。軌跡の種類を螺旋曲線軌跡、2次関数曲線軌跡、3次関数曲線軌跡等とする場合もある。
図5の場合は、入力装置10の画面に
図5に示される点群が表示され、ユーザが点群の中の点P
i+1、点P
iと点P
i+1との間等を入力装置10によって指示することによって、点P
iと点P
i+1との間を指定する区間指定情報が入力される。
【0024】
また、前記画面に直線軌跡、円弧軌跡、楕円弧軌跡等の軌跡の種類が複数表示され、ユーザがその何れかを入力装置10によって選択することによって、軌跡の種類の情報が入力される。なお、第1の軌跡又は第2の軌跡を点Piと点Pi+1との間の軌道として選択することをユーザが入力装置10に入力してもよい。第1の軌跡を選択する場合もX(ui)およびX(ui+1)が直線となる。
【0025】
なお、X(ui)とX(ui+1)とが、点Piと点Pi+1との間の区間で互いに完全に一致する関数でなくてもよい。この場合でも、X(ui+1)はfi+1(ui+1)とは異なる関数である。好ましくは、X(ui+1)はX(ui)と同種の軌跡を描く関数であり、X(ui)が直線を描く関数である時にX(ui+1)も直線を描く関数であり、X(ui)が円弧を描く関数である時にX(ui+1)も円弧を描く関数である。
【0026】
X(ui)とX(ui+1)とが、点Piと点Pi+1との間の区間で互いに完全に一致する関数でない場合、式(1)を用いてFi(ui)のX(ui)とFi+1(ui+1)のX(ui+1)とを部分区間で滑らかに繋げることができる。X(ui)とX(ui+1)とが点Piと点Pi+1との間の区間で互いに完全に一致する場合でも、式(1)を用いてFi(ui)とFi+1(ui+1)とを部分区間で繋げることができる。
【0027】
また、
図6に示すように、第1の軌跡を定義する関数F0
i(u
i)および第2の軌跡を定義する関数F0
i+1(u
i+1)が共に円弧を描く関数であってもよい。この場合も、入力装置10によって軌道を指定する区間を指示すると共に例えば第1の軌跡を当該区間の軌道として選択することによって、前記指定軌跡情報が軌道生成装置1に入力される。なお、第1の軌跡を点P
iと点P
i+1との間の軌道として選択する代わりに、入力装置10によって、円弧軌跡であることと、当該円弧の半径、中心等を入力することも可能である。
【0028】
なお、上記実施形態では、部分軌道S
i(u
i)が連続した4点を用いて算出されているが、連続していない4点を用いて行われてもよい。例えば、
図5において、第2区間軌跡のf
i+1(u
i+1)が点P
i+1と点P
i+3との間の軌跡を示す関数として設定されてもよい。この場合、例えば、第1区間軌跡のX(u
i)および第2区間軌跡のX(u
i+1)が点P
iと点P
i+1との間の軌跡を示す関数として設定される。また、第1区間軌跡のf
i(u
i)が点P
i-1と点P
iとの間の軌跡を示す関数として設定される。また、第2の軌跡を定義する関数F0
i+1(u
i+1)は点P
i+1から点P
i+3までの区間に対応する。この場合でも前述と同様の作用効果を奏する。
【0029】
また、上記実施形態では、
図5における点P
iと点P
i+1との間が入力装置10によって指示されている。代わりに、
図5における例えば点P
i+1と点P
i+3との間の区間を軌道指定区間として指示することも可能である。この場合、点P
i+3の先の点P
i+4も必要になる。
【0030】
上記実施形態では、例えば
図5において、2つの点P
i,P
i+1とその前に制御対象4aが通過する前側通過点P
i-1とを通過する第1の軌跡F0
i(u
i)と、2つの点P
i,P
i+1とその後に制御対象4aが通過する後側通過点P
i+2とを通過する第2の軌跡F0
i+1(u
i+1)と、ユーザによって入力装置10に入力される指定軌跡情報とを用いて、点P
iと点P
i+1との間の部分区間における軌道が生成される。
【0031】
例えば、
図5において、点P
iと点P
i+1との間の部分区間が指定軌跡情報無しに生成されると、
図4のようにユーザの意図とは異なり部分区間の軌道が直線軌道から外れる。制御対象4aが溶接ツール等のツールである場合、その加工軌道をユーザの意図したものに合わせることは、製品の強度、耐久性等を確保する上で極めて重要である。
【0032】
ロボットにおいて制御対象4aの通過点(教示点)の位置は作業対象の形状に応じて設定され、通過点がほぼ直線に並ぶ場合や、ほぼ円弧上に並ぶ場合がある。これらの場合に、軌道生成装置1は、軌道が計算上全ての点を通過するように直線又は円弧ではない2次曲線、3次曲線等である軌道を生成することになり、このため通過点間の軌道がユーザの予測と乖離する場合が少なくない。これに対し、上記実施形態では、入力装置10に指定軌跡情報として部分区間における軌跡の種類を入力可能である。例えば、
図5、
図6に示す例のように、直線軌跡、円弧軌跡等の軌跡の種類が入力される。当該構成は、点P
iおよびP
i+1を確実に通過させながら、ユーザの意図に沿った制御対象4aの軌道生成を実現する。
【0033】
なお、全ての部分区間についてユーザが入力装置10に指定軌跡情報を入力する構成に限定される訳ではない。一例では、ユーザは重要な部分区間については指定軌跡情報を入力し、その他の部分区間について、プロセッサ1aは、第1の軌跡F0i(ui)と第2の軌跡F0i+1(ui+1)とを例えば式(1)に適用して部分軌道を生成する。
【0034】
なお、軌道生成装置1は、記憶部1bに予め記憶されているn個の点P1,P2,…,Pnの全てを必ずしも通過する必要は無く、記憶されている点Pjの近傍に新たな点Pj’を必要に応じて作成し、点Pjに代えて点Pj’を通過するように前記軌道の生成を行ってもよい。
【0035】
例えば、n個の点P1,P2,…,Pnが教示点である場合、一部の教示点については制御対象4aが厳密に通過する必要が無いことがある。このような場合、例えば制御対象4aを滑らかな移動により最適な軌道を生成するために、教示点Pjを近傍の点Pj’に変更し、点Pj’が変更後の教示点として記憶部1bに格納されてもよい。
【符号の説明】
【0036】
1 軌道生成装置
2 自動位置制御装置
3 制御部
4a 制御対象
Si(ui) 部分軌道
F0i(ui) 第1の軌跡を定義する関数
F0i+1(ui+1) 第2の軌跡を定義する関数