(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-27
(45)【発行日】2024-03-06
(54)【発明の名称】軌道生成装置、自動位置制御装置および軌道生成方法
(51)【国際特許分類】
G05B 19/4103 20060101AFI20240228BHJP
B25J 9/10 20060101ALI20240228BHJP
【FI】
G05B19/4103 A
B25J9/10 A
(21)【出願番号】P 2019212268
(22)【出願日】2019-11-25
【審査請求日】2022-09-14
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100118913
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100163050
【氏名又は名称】小栗 眞由美
(74)【代理人】
【識別番号】100201466
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】平川 学
(72)【発明者】
【氏名】一之瀬 雅一
【審査官】荻野 豪治
(56)【参考文献】
【文献】特開2016-055404(JP,A)
【文献】特開昭62-282304(JP,A)
【文献】特開平06-250725(JP,A)
【文献】特開昭64-007207(JP,A)
【文献】特開2016-036895(JP,A)
【文献】米国特許出願公開第2011/166693(US,A1)
【文献】米国特許第6922606(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18 - 19/46
B25J 1/00 - 21/02
(57)【特許請求の範囲】
【請求項1】
n個の点P
1,P
2,…,P
nを通過する軌道を生成する軌道生成装置であって、
第1の曲線
S
i
(u
i
)によって表され、i-1番目からi+2番目の4つの点P
i-1,P
i,P
i+1,P
i+2によって定義される、i番目の点P
iとi+1番目の点P
i+1との間の第1の部分軌道と、第2の曲線
S
i+1
(u
i+1
)によって表され、i番目からi+3番目の4つの点P
i,P
i+1,P
i+2,P
i+3によって定義される、i+1番目の点P
i+1とi+2番目の点P
i+2との間の第2の部分軌道とを算出し、ただし、1≦i≦n-2であり、
u
i
は、点P
i
と点P
i+1
との間の補間の進捗を0から1で表す変数であり、u
i+1
=u
i
-1であり、
点P
i+1での前記第1の曲線
S
i
(u
i
)の
u
i
に対する1階の導関数の値と、点P
i+1での前記第2の曲線
S
i+1
(u
i+1
)の
u
i+1
に対する1階の導関数の値とが、相互に一致し、
点P
i+1での前記第1の曲線
S
i
(u
i
)の
u
i
に対する2階の導関数の値と、点P
i+1での前記第2の曲線
S
i+1
(u
i+1
)の
u
i+1
に対する2階の導関数の値とが、相互に一致し、
点P
i+1での前記第1の曲線
S
i
(u
i
)の
u
i
に対する3階の導関数の値と、点P
i+1での前記第2の曲線
S
i+1
(u
i+1
)の
u
i+1
に対する3階の導関数の値とが、相互に一致
し、
連続する3点P
i-1
,P
i
,P
i+1
を通過する曲線の関数F
i
(u
i
)と、連続する3点P
i
,P
i+1
,P
i+2
を通過する曲線を関数F
i+1
(u
i+1
)とを算出し、
前記第1の曲線S
i
(u
i
)を下式(1)から算出する、軌道生成装置。
S
i
(u
i
)=(1-K(u
i
))×F
i
(u
i
)+K(u
i
)×F
i+1
(u
i+1
)…(1)
ただし、K(u
i
)は、u
i
が0から1に変化するときにK(u
i
)の値が0から1へ増加する関数であり、かつ、u
i
=0でのK(u
i
)のu
i
に対する1階および2階の導関数の値ならびにu
i
=1でのK(u
i
)のu
i
に対する1階および2階の導関数の値の全てが0である。
【請求項2】
K(u
i)は、下式(2)によって定義される関数である、請求項
1に記載の軌道生成装置。
K(u
i)=u
3(10-15u+6u
2) …(2)
【請求項3】
F
i(u
i)が、円弧、惰円弧および放物線の中から選択される2次曲線の関数である、請求項
1または請求項
2に記載の軌道生成装置。
【請求項4】
制御対象の位置を制御する自動位置制御装置であって、
請求項1から請求項
3のいずれかに記載の軌道生成装置と、
該軌道生成装置によって生成された軌道に沿って前記制御対象を移動させる制御部と、を備える自動位置制御装置。
【請求項5】
前記制御部が、産業用ロボットのロボットアームの動作を制御するロボット制御部であり、
前記制御対象が、ロボットアームの先端、または、該ロボットアームの先端に接続されたエンドエフェクタである、請求項
4に記載の自動位置制御装置。
【請求項6】
n個の点P
1,P
2,…,P
nを通過する軌道を生成する軌道生成方法であって、
第1の曲線
S
i
(u
i
)によって表され、i-1番目からi+2番目の4つの点P
i-1,P
i,P
i+1,P
i+2によって定義される、i番目の点P
iとi+1番目の点P
i+1との間の第1の部分軌道と、第2の曲線
S
i+1
(u
i+1
)によって表され、i番目からi+3番目の4つの点P
i,P
i+1,P
i+2,P
i+3によって定義される、i+1番目の点P
i+1とi+2番目の点P
i+2との間の第2の部分軌道とを算出し、ただし、1≦i≦n-2であり、
u
i
は、点P
i
と点P
i+1
との間の補間の進捗を0から1で表す変数であり、u
i+1
=u
i
-1であり、
点P
i+1での前記第1の曲線
S
i
(u
i
)の
u
i
に対する1階の導関数の値と、点P
i+1での前記第2の曲線
S
i+1
(u
i+1
)の
u
i+1
に対する1階の導関数の値とが、相互に一致し、
点P
i+1での前記第1の曲線
S
i
(u
i
)の
u
i
に対する2階の導関数の値と、点P
i+1での前記第2の曲線
S
i+1
(u
i+1
)の
u
i+1
に対する2階の導関数の値とが、相互に一致し、
点P
i+1での前記第1の曲線
S
i
(u
i
)の
u
i
に対する3階の導関数の値と、点P
i+1での前記第2の曲線
S
i+1
(u
i+1
)の
u
i+1
に対する3階の導関数の値とが、相互に一致
し、
連続する3点P
i-1
,P
i
,P
i+1
を通過する曲線の関数F
i
(u
i
)と、連続する3点P
i
,P
i+1
,P
i+2
を通過する曲線を関数F
i+1
(u
i+1
)とを算出し、
前記第1の曲線S
i
(u
i
)を下式(1)から算出する、軌道生成方法。
S
i
(u
i
)=(1-K(u
i
))×F
i
(u
i
)+K(u
i
)×F
i+1
(u
i+1
)…(1)
ただし、K(u
i
)は、u
i
が0から1に変化するときにK(u
i
)の値が0から1へ増加する関数であり、かつ、u
i
=0でのK(u
i
)のu
i
に対する1階および2階の導関数の値ならびにu
i
=1でのK(u
i
)のu
i
に対する1階および2階の導関数の値の全てが0である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、軌道生成装置、自動位置制御装置および軌道生成方法に関するものである。
【背景技術】
【0002】
従来、数値制御(NC)工作機械または産業用ロボット等の分野において、ツールの通過点として与えられた離散的な点の間を補間することによって、ツールの軌道を生成する方法が知られている(例えば、特許文献1参照。)。
一般に、隣接する2点間の区間毎に補間曲線を算出し、補間曲線を連結することによって軌道が生成される。ツールが減速することなく通過点を通過するためには、補間曲線同士が通過点で滑らかに接続される必要がある。
【0003】
特許文献1では、点Pm,Pm+1間の区間の補間曲線Sm(t)の算出において、隣接する区間の補間曲線との接続を考慮するために、隣接する区間の点Pm-1,Pm+2も使用している。具体的には、特許文献1では、3つの点Pm-1,Pm,Pm+1を通過する2次曲線と、3つの点Pm,Pm+1,Pm+2を通過する2次曲線とを導出し、点Pm,Pm+1での2次曲線の1次微係数および2次微係数に基づいて補間曲線Sm(t)を算出している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1では、前述の方法によって、補間曲線Sm(t)の1次微係数および2次微係数が、隣接する補間曲線Sm-1(t)の1次微係数および2次微係数と点Pmにおいてそれぞれ連続するように、補間曲線Sm(t)を算出している。このような軌道によって、ツールの滑らかな動きを実現することができる。しかし、ツールの非常に高精度な位置制御の要求に応えるためには、軌道のさらなる改善が求められる。
【課題を解決するための手段】
【0006】
本開示の一態様は、n個の点P1,P2,…,Pnを通過する軌道を生成する軌道生成装置であって、第1の曲線S
i
(u
i
)によって表され、i-1番目からi+2番目の4つの点Pi-1,Pi,Pi+1,Pi+2によって定義される、i番目の点Piとi+1番目の点Pi+1との間の第1の部分軌道と、第2の曲線S
i+1
(u
i+1
)によって表され、i番目からi+3番目の4つの点Pi,Pi+1,Pi+2,Pi+3によって定義される、i+1番目の点Pi+1とi+2番目の点Pi+2との間の第2の部分軌道とを算出し、ただし、1≦i≦n-2であり、u
i
は、点P
i
と点P
i+1
との間の補間の進捗を0から1で表す変数であり、u
i+1
=u
i
-1であり、点Pi+1での前記第1の曲線S
i
(u
i
)のu
i
に対する1階の導関数の値と、点Pi+1での前記第2の曲線S
i+1
(u
i+1
)のu
i+1
に対する1階の導関数の値とが、相互に一致し、点Pi+1での前記第1の曲線S
i
(u
i
)のu
i
に対する2階の導関数の値と、点Pi+1での前記第2の曲線S
i+1
(u
i+1
)のu
i+1
に対する2階の導関数の値とが、相互に一致し、点Pi+1での前記第1の曲線S
i
(u
i
)のu
i
に対する3階の導関数の値と、点Pi+1での前記第2の曲線S
i+1
(u
i+1
)のu
i+1
に対する3階の導関数の値とが、相互に一致し、連続する3点P
i-1
,P
i
,P
i+1
を通過する曲線の関数F
i
(u
i
)と、連続する3点P
i
,P
i+1
,P
i+2
を通過する曲線を関数F
i+1
(u
i+1
)とを算出し、前記第1の曲線S
i
(u
i
)を下式(1)から算出する、軌道生成装置である。
S
i
(u
i
)=(1-K(u
i
))×F
i
(u
i
)+K(u
i
)×F
i+1
(u
i+1
)…(1)
ただし、K(u
i
)は、u
i
が0から1に変化するときにK(u
i
)の値が0から1へ増加する関数であり、かつ、u
i
=0でのK(u
i
)のu
i
に対する1階および2階の導関数の値ならびにu
i
=1でのK(u
i
)のu
i
に対する1階および2階の導関数の値の全てが0である。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係る自動位置制御装置および軌道生成装置のブロック図である。
【
図3】関数K(u)の一例および比較例の関数f(u),g(u),h(u)のグラフである。
【発明を実施するための形態】
【0008】
以下に、一実施形態に係る軌道生成装置、自動位置制御装置および軌道生成方法について図面を参照して説明する。
自動位置制御装置2は、制御対象の位置を制御するものである。
図1に示されるように、制御対象4aの一例は、産業用ロボット4のロボットアームの先端、または、ロボットアームの先端に接続されたハンドまたはツール等のエンドエフェクタである。制御対象の他の例は、数値制御(NC)工作機械のツールである。したがって、自動位置制御装置2は、産業用ロボットを制御するロボット制御装置またはNC工作機械を制御する数値制御装置であり得る。
【0009】
自動位置制御装置2は、
図1に示されるように、点列として与えられる離散的なn個の点P
1,P
2,…,P
nを通過する軌道を生成する軌道生成装置1と、軌道生成装置1によって生成された軌道に沿って制御対象4aを移動させる制御部3とを備える。制御対象4aがロボットアームの先端またはエンドエフェクタである場合、制御部3は、ロボットアームの動作を制御するロボット制御部である。
【0010】
軌道生成装置1は、中央演算処理装置のようなプロセッサ1aと、RAM、ROMおよびその他の任意の記憶装置を有する記憶部1bとを有する。
記憶部1bには、n個の点Pi(i=1,2,3,…,n)の位置が記憶されている。点Piは、例えば、作業者によって設定された教示点である。2次元平面内で移動する制御対象4aの場合、点Piの位置は2次元座標(xi,yi)で表され、3次元空間内で移動する制御対象4aの場合、点Piの位置は3次元座標(xi,yi,zi)で表される。
また、記憶部1bには、軌道生成プログラムが格納されている。軌道生成装置1による後述の計算は、プロセッサ1aが軌道生成プログラムに従って処理を実行することによって実現される。
【0011】
次に、軌道生成装置1による軌道生成方法について説明する。
図2に示されるように、軌道生成装置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間の区間毎に曲線S
iおよび部分軌道を算出することによって、n-1個の曲線S
1,S
2,…,S
n-1とn-1個の部分軌道とを得る。
次に、軌道生成装置1は、n-1個の部分軌道を相互に連結することによって、n個の点P
1,P
2,…,P
nを全て通過する軌道を生成する。
【0012】
ここで、軌道生成装置1は、下記3つの条件を満たす曲線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階の導関数の値が相互に一致する。また、点Pi+1において、曲線Si(ui)および曲線Si+1(ui+1)の3階の導関数の値が相互に一致する。
【0013】
曲線Si(ui)の1階、2階および3階の導関数の値は、部分軌道に沿って移動する制御対象4aの速度、加速度および加加速度をそれぞれ表す。したがって、軌道生成装置1によって生成された軌道に沿って移動する制御対象4aの位置、速度、加速度および加加速度は、部分軌道の接続点である点P2,P3,…,Pn-1の全てにおいて連続する。
【0014】
次に、曲線S
i(u
i)の具体的な算出方法について説明する。
図2に示されるように、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である。すなわち、点P
iにおいてu
i=0であり、点P
i-1においてu
i=-1であり、点P
i+1においてu
i=1である。関数F
i(u
i)は、u
i=-1において点P
i-1を通過し、u
i=0において点P
iを通過し、u
i=1において点P
i+1を通過する。
【0015】
図2には、変数u
iを表わすu軸とx
iを表わすx軸とを用いて表現されるu-x平面上の点列P
1,P
2,…,P
nが示されている。前記平面において、関数F
i(u
i)は、円弧、惰円弧および放物線の中から選択される2次曲線の関数である。関数F
i(u
i)は、他の2次曲線の関数、または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】
次に、下式(1)から、Si(ui)を算出する。
Si(ui)=(1-K(ui))×Fi(ui)+K(ui)×Fi+1(ui+1)…(1)
K(ui)は、下記条件1および条件2を満たす関数である。
(条件1)uiが0から1に変化するとき、K(ui)の値が0から1へ単調増加する。
(条件2)ui=0でのK(ui)の1階および2階の導関数の値と、ui=1でのK(ui)の1階および2階の導関数の値と、の全てが0である。
【0017】
一例において、K(ui)は、下式(2)によって定義される関数である。
K(ui)=u3(10-15u+6u2) …(2)
したがって、K(ui)の1階の導関数K’(ui)および2階の導関数K’’(ui)は、それぞれ下記のように表される。
K’(ui)=30u2(1-2u+u2)
K’’(ui)=60u(1-3u+2u2)
【0018】
図3は、式(2)のK(u
i)のグラフと、比較例として3つの関数f(u),g(u),h(u)のグラフとを示している。関数f(u),g(u),h(u)は、u=0において0であり、u=1において1である。ただし、関数f(u),g(u),h(u)の1次または2次の導関数の値は、u=0,1において0にならない。
K(u
i)は、式(2)の5次の関数に限らず、6次以上の関数であってもよい。例えば、K(u
i)は、下式によって定義される7次の関数であってもよい。
K(u
i)=u
4(35-84u+70u
2-20u
3)
【0019】
式(2)のK(ui)およびその導関数K’(ui),K’’(ui)のui=0,1での値は、下記の通りである。
K(0)=0
K(1)=1
K’(0)=K’(1)=K’’(0)=K’’(1)=0
また、Fi(ui)およびFi-1(ui-1)は共に点Piを通過するので、Fi(0)=Fi-1(1)である。
【0020】
したがって、点Piでの曲線Si(ui),Si-1(ui-1)およびこれらの導関数の値は、下記の通りである。
Si(0)=Si-1(1)
Si’(0)=Si-1’(1)
Si’’(0)=Si-1’’(1)
Si’’’(0)=Si-1’’’(1)
【0021】
このように、本実施形態によれば、隣接する2つの部分軌道の接続点Pi+1において、曲線Si(ui),Si+1(ui+1)の1次の導関数の値が相互に一致し、曲線Si(ui),Si+1(ui+1)の2次の導関数の値が相互に一致する。さらに、接続点Piにおいて、曲線Si(ui),Si+1(ui+1)の3次の導関数の値も相互に一致する。すなわち、接続点Piにおいて、制御対象4aの位置、速度および加速度のみならず加加速度も連続する。これにより、接続点Pi付近での制御対象4aの位置制御の精度を向上することができる。
【0022】
なお、軌道生成装置1は、記憶部1bに予め記憶されているn個の点P1,P2,…,Pnの全てを必ずしも通過する必要は無く、記憶されている点Pjの近傍に新たな点Pj’を必要に応じて作成し、点Pjに代えて点Pj’を通過するように軌道を生成してもよい。
例えば、n個の点P1,P2,…,Pnが教示点である場合、一部の教示点については制御対象4aが厳密に通過する必要が無いことがある。このような場合、例えば制御対象4aを滑らかな移動により最適な軌道を生成するために、教示点Pjを近傍の点Pj’に変更して教示点Pjの近傍を通過する軌道を生成してもよい。
【符号の説明】
【0023】
1 軌道生成装置
2 自動位置制御装置
3 制御部
4a 制御対象
Si(ui) 第1の曲線