説明

位置制御装置、位置制御方法及び位置制御プログラム

【目的】物体の位置を、物体を保持する移動機構によって目標位置に速やかに追従させる技術を提供する。
【構成】本発明は、物体の位置を検出する位置検出器と、物体を保持しており物体に加える力の指令値が入力され入力された指令値を実現するように動力によって動作する移動機構と、物体に加える力の指令値を移動機構へ出力する指令装置を備える。指令装置内に構築された制御ロジックは、スライディングモード制御ロジックに対してs/(L+K・s+B・s)の局所的なフィードバックループを付加したものである。この局所的なフィードバックループにより、物体の位置を目標位置に追従させる際にオーバーシュートを生じさせることなく、さらに指令装置が出力する指令値がチャタリングすることを防止できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、物体の位置を目標位置に追従させる位置制御装置、位置制御方法および位置制御プログラムに関する。
【背景技術】
【0002】
物体を保持し、物体に加える力の指令値が入力され、入力された指令値を発生する移動機構を有し、物体の位置を目標位置に追従させるように力の指令値を出力することによって移動機構を制御し、物体の位置を目標位置に追従させる位置制御装置が知られている。本明細書では、物体の位置という場合にはその物体の位置及び/又はその物体の姿勢を意味するものとし、速度という場合には並進速度及び/又は角速度を意味するものとし、力という場合には並進力及び/又はトルクを意味するものとする。
位置制御装置の典型例である産業用ロボットは、一般に、関節摩擦などのモデル化しにくい機械要素を多く含む。このため、力制御やインピーダンス制御を行う際にも、高ゲインのPD(比例・微分)またはPID(比例・積分・微分)制御方式の位置制御器を最下層のフィードバックループとして用いることが多い。高ゲインのPD制御またはPID制御方式の位置制御器を用いることによって、ロボットの動特性や非線形要素の影響を低減し、ロボットの手先の現在位置を目標位置に精度よく追従させることができることがよく知られている。
また、力制御やインピーダンス制御の他に、スライディングモード制御という制御法が知られている(非特許文献1)。スライディングモード制御は、状態空間に設計した切換面上に状態を拘束することによって希望の動特性を達成する制御法である。これはいわゆるバンバン制御の1つの一般化であり、不連続な制御出力を発生する。外乱に対してロバストであるということがスライディングモード制御の利点である。
【0003】
【非特許文献1】野波 健蔵、田 宏奇、スライディングモード制御−非線形ロバスト制御の設計理論、コロナ社、1994年
【発明の開示】
【発明が解決しようとする課題】
【0004】
高ゲインのPDまたはPID位置制御は、次のような課題がある。たとえば、環境との接触や、ロボットが有するアクチュエータの一時的なパワー低下などの異常によって、位置制御器の目標位置とロボットの手先位置との偏差が大きくなった場合、大きな復元力によって環境が損傷を受けたり、復帰動作の際に過大な速度が発生したりすることがある。即ち、何らかの要因による異常時にロボットが予想外の動作をする可能性がある。
位置制御されているロボットで、正常時の追従性と異常時の予想外の動作の防止とを両立する問題は単純ではない。まず、アクチュエータの出力トルクに上限を設けることは必要条件である。そして、異常状態から復帰する際にオーバーシュートを起こさずに目標軌道へゆるやかに収束する必要がある。これは、正常時の即応性・追従性と相反する要求であるといえる。PD制御またはPID制御において収束性を確保するためには、D(微分)ゲインを大きくする必要があるが、これは正常運転時の即応性を低下させ、また、特に低速運動時に高周波振動の原因となる。また、I(積分)ゲインを大きくするとオーバーシュートが生じやすくなる。このように、正常動作時の追従性と異常時の予想外の動作の防止との両立は、PD制御またはPID制御のゲイン設計とトルク制限では対処できない問題を含んでいる。
本発明は、上記の課題を解決する。本発明は、物体を保持した移動機構に対して、正常動作時の追従性と異常時の予想外の動作の防止とを両立する単純な位置制御装置および位置制御方法を提供する。本発明は、物体の位置を目標位置に追従させるための汎用性の高い技術を提供する。
【課題を解決するための手段】
【0005】
本発明は、一般によく知られているスライディングモード制御という制御法を着想の原点としている。本発明は、スライディングモード制御が本来持っている欠点を取り除き、その利点を応用した新たな制御方法である。
【0006】
まず、スライディングモード制御について概説する。スライディングモード制御は、状態空間に設計した切換面上に状態を拘束することによって希望の動特性を達成する制御法である。これはいわゆるバンバン制御の1つの一般化であり、不連続な制御出力を発生する。外乱に対してロバストであるということがこれの本来の利点であるが、アクチュエータ出力(これは、ロボットが保持した物体に加える力と等価である)に明示的に上限を設できるという点と、状態を希望の動特性に拘束できるという点は、異常時の予想外の動作の防止と追従性の両立という目的にもかなっている。すなわち、トルク制限、正常動作時の追従性、および復帰動作時の収束性をすべて実現できる可能性がある。しかし、スライディングモード制御の理論は、無限に高速に応答する連続時間系を前提としているので、通常の離散時間系に実装された場合には、切換の繰り返しによって高周波振動(チャタリング)が発生する。
ここでは簡単のため、1自由度の位置制御系を考える。制御対象(ロボットが保持する物体)は質量Mの質点とし、その現在位置および現在速度をそれぞれpおよびvとする。制御器はpおよびvを測定し、アクチュエータから力gを発生する。ここで、「アクチュエータが発生する力g」は、ロボットが保持している制御対象に加わる力gと等価であるとする。制御器が設定する目標位置と目標速度をそれぞれpdおよびvdとする。質点はアクチュエータからの力gと外力−fを受けて運動する。すなわち質点の運動方程式は下記のようになる。

M・dv/dt=g−f ・・・(1)

最も単純なスライディングモード制御器は、たとえば図1のような構造を持つ。ここでアクチュエータからの出力gは、

g=F・sgn[pd−p+H・(vd−v)] ・・・(2)

と決定される。ただし、ここでsgn[・]は符号関数であり、

sgn[a]=1;(a>0の場合)、−1;(a<0の場合) ・・・(3)

である。また、FおよびHは正の実数である。関数φ(p、v)=pd−p+H・(vd−v)を定義すると、状態空間(p−v平面)内において、φ(p、v)=0は超平面(直線)を構成する。この超平面は切替平面と呼ばれ、これを境界として、式(2)に示すように、制御器の出力が不連続に切り替えられる。この切換が無限に高速であれば、この系は切替平面φ(p、v)=0に有限時間内に到達する。そして、切替平面に到達した後は、外力fと質点の慣性力の合力の大きさがFを超えない限り、系は切替平面内に拘束される。切替平面内に拘束されている間、制御対象はφ(p、v)=0、すなわち
dp/dt=v=(pd−p)/H+vd ・・・(4)

という微分方程式に従って推移する。この状態を滑り状態(sliding mode)と呼ぶ。
この方式で、アクチュエータの出力gの上限は定数Fとして明示的に与えることができる。また、復帰運動時の挙動は定数Hにより決定できる。そして、切替が無限に高速であれば、完全な追従性が得られる。しかし、離散時間系では切替に時間遅れが生じるため、切換面交差の繰り返しによって高周波振動(チャタリング)が発生する。したがって、図1の形の制御系は、現実の制御対象には用いることが難しい。
【0007】
そこで本発明では、図2の系を考える。ここでは、スライディングモード制御器は、制御対象に直接力を加えるわけではなく、計算器内に仮想的に想定された「プロキシ(代理点)」に力を加えるものとする。スライディングモード制御器に設定された目標位置および目標速度をそれぞれpdおよびvdとし、プロキシの位置および速度をそれぞれpsおよびvsとする。前節と同じ制御則を用いると、スライディングモード制御器の発生力gは、

g=F・sgn[pd−ps+H・(vd−vs)] ・・・(5)

となる。プロキシと実際の制御対象は、仮想的な保持要素(virtual coupling)で結合されており、この仮想保持要素の発生する力は

f=L・∫(ps−p)dt+K・(ps−p)+B・(vs−v) ・・・(6)

となる。ただし、位置および速度をそれぞれpおよびvとしている。力fはアクチュエータから出力されて実制御対象に加えられるが、その反力はプロキシにも加えられるものとする。そうすると、プロキシの質量をMとすると、プロキシの運動方程式は下記のようになる。

M・d^2ps/dt^2=g−f ・・・(7)

ここで、式(5)(6)(7)にプロキシの質量M=0を代入すると、

f=F・sgn[pd−p−(da/dt)
+H・(vd−(d^2a/dt^2))] ・・・(8)

f=L・a+K(da/dt)+B・(d^2a/dt^2) ・・・(9)
g=f ・・・(10)

が得られる。ただし、a=∫(ps−p)dtである。この系のブロック線図は図3のようになる。以後、簡単のため、

s=(pd−p)+H・(vd−v) ・・・(11a)
f=F・sgn[s−(da/dt)−H・(d^2a/dt^2)]
・・・(11b)
f=L・a+K・(da/dt)+B・(d^2a/dt^2) ・・・(11c)
と表す。これは、pd、vd、pおよびvを入力とし、fを出力とし、aを内部状態変数とする制御器と解釈できる。
式(11)の離散時間表現は、下記のようになる。

s(k)=(pd(k)−p(k))+H・(vd(k)−v(k))
・・・(12a)

f(k)=F・sgn[s(k)−(a(k)−a(k−1))/T−H・(a(k)−2・a(k−1)+a(k−2))/T/T] ・・・(12b)

f(k)=L・a(k)+K・(a(k)−a(k−1))/T+B・(a(k)−2・a(k−1)+a(k−2))/T/T ・・・(12c)
ここで、括弧内の記号は整数であり、時刻をあらわす。また、時間微分(da/dt)はオイラー差分(a(k)−a(k−1))/Tに置き換えている。
式(12)に出現する変数のうち、未知数はf(k)とa(k)である。これらを求めるためには、式(12b)と式(12c)を代数的に解く必要がある。まず、式(12c)を変形すると

a(k)=((2・B+K・T)・a(k−1)−B・a(k−2)
+T・T・f(k))/(B+K・T+L・T・T)
=a(k−1)・(B+K・T)/(B+K・T+L・T・T)
+(a(k−1)−a(k−2))・B/(B+K・T+L・T・T)
+f(k)・T・T/(B+K・T+L・T・T) ・・・(13)

が得られる。これを式(12b)に代入すると、a(k)を消去した式が出現する。

f(k)=F・sgn[(u(k)−f(k))・(H+T)/(B+K・T+L・T・T)] ・・・(14)

ただし、

u(k)=s(k)・(B+K・T+L・T・T)/(H+T)+a(k−1)・L
+(a(k−1)−a(k−2))・(H・(K+L・T)−B)/(H+T)/T ・・・(15)

である。式(14)はすなわち、

f(k)=F・sgn[u(k)−f(k)] ・・・(16)

である。
簡単な考察により、代数方程式(16)は、

f(k)=u(k);(|u(k)|≦Fの場合)
または
f(k)=F・sgn[u(k)];(|u(k)|>Fの場合) ・・・(17)

と書き直すことができるということが分かる。ただしここでの符号関数sgn[x]はx=0のときに閉区間[−1、1]の任意の値を取りうると定義している。
式(17)によりf(k)が求められれば、式(13)によりa(k)が求められる。結局、式(12)に基づいて値を更新するためには、下記の手順で演算を行えばよい。

s(k)=(pd(k)−p(k))+H(vd(k)−v(k))・・・(18a)

u(k)=s(k)・(B+K・T+L・T・T)/(H+T)+a(k−1)・L
+(a(k−1)−a(k−2))・(H・(K+L・T)−B)/(H+T)/T
・・・(18b)

f(k)=u(k);(|u(k)|≦Fの場合)
または
f(k)=F・sgn[u(k)];(|u(k)|>Fの場合) ・・・(18c)

a(k)=((2・B+K・T)・a(k−1)−B・a(k−2)
+T・T・f(k))/(B+K・T+L・T・T) ・・・(18d)

なお、式(18a)を式(18b)に代入すると次式が得られる。
u(k)=(pd(k)−p(k))・(B+K・T+L・T・T)/(H+T)
+(vd(k)−v(k))・H・(B+K・T+L・T・T)/(H+T)
+a(k−1)・L
+(a(k−1)−a(k−2))・(H・(K+L・T)−B)/(H+T)/T ・・・(18e)

この系において制御器は、

φ(ps(k)、vs(k))=(pd(k)−ps(k))
+H・(v(k)−vs(k)) ・・(19)

を有限時間で零に到達させる役割を持つ。式(19)で
ps(k)=p(k)+(a(k)−a(k−1))/T
vs(k)=v(k)+(a(k)−2・a(k−1)+a(k−2))/T/T
を考慮に入れると、

φ(ps(k)、vs(k))=(u(k)−f(k))・(H+T)/(B+K・T+L・T・T) ・・・(20)

が成立する。式(18c)より、f(k)とu(k)の符号は常に一致し、f(k)の絶対値はu(k)の絶対値を超えることがない。したがって、f(k)は常にφ(ps(k)、vs(k))を零に引き付ける方向に働き、φ(ps(k)、vs(k))の符号を逆転させることがない。これは、f(k)の存在によってps(k)が振動的にならないことを意味する。これにより、プロキシの状態が有限時間で滑り状態(φ(ps、vs)=0)に到達する。厳密にいうと、実制御対象の状態量(p、v)は滑り平面に到達しない。しかし、実制御対象はプロキシに常に拘束されているので、プロキシが滑り状態にあるとき、系全体として滑り状態にあると言ってよい。式(18)において|u(k)|≦Fであるとき、この系は滑り状態にある。
【0008】
即ち、本発明では、動力によって動作する移動機構(上記説明の「アクチュエータ」に相当する)に対して保持した物体(上記説明の「実制御対象」に相当する)に加える力の指令値を出力する指令装置(上記説明の「制御器」に相当する)が力の指令値を計算する際に、質量ゼロの仮想質点(上記説明の「プロキシ」に相当する)と、一端が物体の検出された位置に連結されており、他端が仮想質点に連結されている仮想的な連結要素を仮想空間内に設定する。そしてスライディングモード制御則に基づいて、仮想質点の位置を目標位置に追従させる制御を仮想空間内で実行した際に、仮想的な保持要素から物体に加えられる力を算出する。算出された力を移動機構の動力源への指令値とする。
【0009】
指令装置は、時刻kにおける力の指令値f(k)を算出する過程で、指令値f(k)を算出するための暫定制御力u(k)を算出する。暫定制御力u(k)は、例えば、式(18e)で求めることができる。時刻k+1において式(18e)によって暫定制御力u(k+1)を求める場合には、式(18e)の中に未知数a(k)が表れる。このa(k)は、式(13)によって求めることができる。
【0010】
上記の説明ではPID制御方式の仮想保持部材を用いた手法を導いたが、L=0とすることによってPD制御方式の仮想保持部材を用いた手法を導くことも可能である。これは下記のようになる。
s(k)=(pd(k)−p(k))+H(vd(k)−v(k))・・・(22a)
u(k)=(s(k)・(B+K・T)+e(k−1)・(H・K−B))/(H+T) ・・・(22b)
f(k)=u(k);(|u(k)|≦Fの場合)
または
f(k)=F・sgn[u(k)];(|u(k)|>Fの場合)・・ ・(22c)

e(k)=(B・e(k−1)+T・f(k))/(B+K・T) ・・・(22d)

ただしここで、e(k)=(a(k)−a(k−1))/Tに相当する。さらに、a(k)はa(k)=∫(ps(k)−p(k))dtであるのでe(k)は、

e(k)=ps(k)−p(k) ・・・(22e)

とも表すことができる。
また、式(22a)を式(22b)に代入すると、

u(k)=(pd(k)−p(k))・(B+K・T)/(H+T)
+(vd(k)−v(k))・H・(B+K・T)/(H+T)
+e(k−1)・(H・K−B)/(H+T) ・・・(22f)

となる。即ち、暫定制御力u(k)を、式(18e)の代わりに式(22f)によって求めてもよい。このとき時刻k+1において式(22f)によって暫定制御力u(k+1)を求める場合には、式(22f)の中に未知数e(k)が表れる。このe(k)は、式(22d)によって求めることができる。
【0011】
指令装置は、上記のように算出された暫定制御力u(k)を用いて移動機構へ出力する力の指令値f(k)を算出する。指令装置は、移動機構の動力が出力することを許容されている力の集合をXとしたときに、暫定制御力u(k)∈Xが満たされるときには指令値f(k)=u(k)とする。暫定制御力u(k)∈Xが満たされないときには指令値f(k)を、暫定制御力u(k)に正のスカラ値を乗じた値であり、かつf(k)∈Xが満たされるf(k)を指令値f(k)とする。
ここで、集合Xは、例えば設定されたスカラ値Fよりも絶対値が小さい全ての値の集合である。「移動機構の動力が出力することを許容されている力」を集合Xとして表現したのは次の理由による。即ち、「移動機構の動力が出力することを許容されている力」が移動機構先端の座標系で表される並進力やトルクのベクトル量で表されることもあれば、移動機構が複数の回転関節を有する機構である場合に、各関節に備えられたモータなどのトルクのベクトル量で表されることもあるので、それらを包含する意味で集合Xという表現を用いた。
前記指令装置は、移動機構の動力が出力することを許容されている力の大きさをFとしたときに、|u(k)|<Fが満たされる場合は指令値f(k)=u(k)とし、|u(k)|<Fが満たされない場合は式(17)、換言すれば、指令値f(k)=(F/|u(k)|)・u(k)とする。即ち、ここでは(F/|u(k)|)が、設定されたスカラ値Fよりも絶対値が小さい値の例となっている。
【0012】
指令装置によって算出された力の指令値f(k)は、移動機構へと出力される。移動機構は指令された力の指令値に基づいて物体に力を加える。その結果、物体は目標位置に近づくように移動する。
【0013】
以上の動作によって、上記説明したように、プロキシの位置ps(k)を振動させることがなく、プロキシの状態(ps、vs)が有限時間で滑り状態(φ(ps、vs)=0)に到達する。厳密にいうと、物体(即ち実制御対象)の状態量(p、v)は滑り平面に到達しない。しかし、物体の状態量(p、v)はプロキシの状態量(ps、vs)に常に拘束されているので、プロキシが滑り状態にあるとき、系全体として滑り状態にあると言ってよい。従って物体の状態量(p、v)は振動的にならずに目標位置と目標速度(pd、vd)に追従する。
【0014】
本発明の位置制御装置は、上記説明したように、物体の位置を検出する位置検出器と、物体を保持しており、物体に加える力の指令値が入力され、入力された指令値を実現するように動力によって動作する移動機構と、物体に加える力の指令値を移動機構へ出力する指令装置を備える。
力の指令値を算出する際に物体の速度を知る必要がある場合には、物体の速度を取得する速度取得手段を備えてもよい。物体の速度vを取得する速度取得手段は、位置制御装置が別途備える速度検出器によって検出してもよいし、位置検出器によって検出される物体の位置pの経時的な変化から計算によって求めてもよい。離散時間系の場合は位置検出器によって検出した物体の位置p(k)と、その単位時間T前に検出した物体の位置p(k−1)の差分を単位時間Tで除した値、即ち、v(k)=(p(k)−p(k−1))/Tの式により求めてもよい。
【0015】
指令装置が移動機構へ出力する力の指令値を算出する場合、例えば上記説明したように、暫定制御力u(k)を式(18e)や式(22f)によって求め、暫定制御力u(k)と動力が出力することを許容されている力の集合Xとの関係から求めることができる。
なお、物体の位置pは、位置検出器によって検出される。
【0016】
式(18)は各変数がベクトルであっても成立するので、容易に多次元に拡張できる。ただしここで、絶対値演算子|・|はベクトルのノルム‖x‖=√(x^2)として、符号関数sgn[・]はベクトルの正則化関数sgn[x]=x/‖x‖として、それぞれ読み替える必要がある。ノルムとしては、L2ノルムやL無限大ノルムを用いることができる。
【0017】
さらに発明者らは、本発明を応用することにより、作業者が、物体を広域的に目標位置へ追従するように移動機構を動かすと、局所的には物体の位置を目標位置に追従させる位置制御装置を実現できること発案した。
この位置制御装置は、前述した位置制御装置に対して、さらに、移動機構が動力によって物体に加える力の大きさの上限値Fが、移動機構の機械的な静止摩擦力と略同等以下の大きさに設定されており、移動機構は、作業者が移動機構に操作力を加えるための操作子を備える。
上記構成によれば、移動機構が物体に加える力の大きさの上限値Fが、移動機構の機械的な静止摩擦力と略同等以下の大きさに設定される。これによって、移動機構が出力できる最大の大きさの力Fを物体に加えるように動作しても、力Fが静止摩擦力に打ち勝つことができなければ物体は移動しない。また力Fが静止摩擦力に打ち勝つとしても物体には僅かしか移動しないことになる。
指令装置から入力された力指令値によって、移動機構は物体の位置を目標位置へ動かす方向に物体に力を発生させている。ここで、作業者が物体を広域的に目標位置へ追従するように移動機構を動かすと、物体には、移動機構が発生する力と操作力がほぼ同じ方向に作用する。移動機構が発生する力と操作力の合力によって、移動機構は保持した物体を目標位置へ移動させることができるようになる。これによって、作業者が、物体を広域的に目標位置へ追従するように移動機構を動かすと、局所的には物体の位置を目標位置に追従させる位置制御装置を実現できる。
一方、移動機構が物体に加える力の大きさの上限値Fが、静止摩擦力と略同等以下の大きさに設定されることによって、物体の位置と目標位置が大きく離れている場合に作業者が操作子を操作して物体を移動させることを妨げるほどには移動機構が発生する力が過大となることを防止することができる。
上記の構成によれば、移動機構に保持された物体を作業者が広域的に移動させる作業を妨げることなく、物体の位置が目標位置に近づいた際には物体の位置を目標位置に一致させることのできる位置制御装置を実現することができる。
【発明の効果】
【0018】
本発明によれば、物体を保持した移動機構に対して、正常動作時の追従性と異常時の予想外の動作の防止とを両立する単純な位置制御装置および位置制御方法を提供することができる。この位置制御装置及び方法は、物体を保持する移動機構の正常動作時の小さな位置決め誤差からのすばやい復帰と、異常動作時の大きな位置誤差からのゆるやかな復帰を保つことができる。その際に移動機構に入力される物体に加える力の指令値が発振することを防止できる。
さらに、移動機構が発生できる力の上限値を、移動機構が保持した物体と移動機構の機械的な静止摩擦力と略同等以下の大きさに設定することによって、作業者が物体の位置を目標位置へ広域的に移動させる操作力を移動機構へ加えるだけで、移動機構は物体の位置を目標位置へ迅速に追従するように位置制御することができる。
【実施例】
【0019】
<実施例1>
図4に示す2自由度平行リンクマニピュレータを用いて実験を行った。各関節のアクチュエータはハーモニックドライブ(登録商標)ギアによって減速されたACサーボモータである。各アクチュエータには光学エンコーダが取り付けられており、手先効果器の位置を計測することができる。各モータには、出力軸側換算で10N・m程度の摩擦が存在する。
以下に示す3種類の制御器A、B、およびCを用いて実験を行った。各制御器は式(18)の構造を持つ。

|パラメータ | 制御器A |制御器B |制御器C |
|F(N) | 60| 60| 60|
|L(N/m/秒)| 0| 0| 0|
|K(N/m) | 60000|60000|60000|
|B(N秒/m) | 200|12000| 200|
|H(秒) |0.0033| 0.2| 0.2|

ただし、p(k)、f(k)などの各変数は2次元ベクトルである。制御器への入力p(k)は、手先効果器の現在位置であり、エンコーダの計測値である。制御器からの出力f(k)は、手先効果器で発生するべき力ベクトルであり、静力学的にそれと等価なトルクがアクチュエータから出力される。各制御器のパラメータ値は表1に示すとおりである。ただし、制御器AおよびBは、H=B/Kを満たすので、上限付のPD制御(式(21))に等価である。制御器Cは本発明の最良の形態の一つであり、H≪B/Kをみたす。なお、サンプリング周期はT=0.001秒である。
制御器に入力される目標軌道としては、8の字運動のリサジュー曲線

pd(t)=[Ax・sin[Ωx・t]、Ay・sin[Ωy・t]]

を与えた。ただし、Ax=0.25m、Ay=0.15m、Ωx=2π/3rad/秒、Ωy=4π/3rad/秒である。
異常からの復帰動作を観察するために、時刻t=2.0秒から2.5秒の間、アクチュエータへの指令トルクを強制的に零とした。
図5から図8に結果を示す。図5から図8において、灰色の太線は目標位置pdのy成分、黒の細い曲線は手先位置の実測値pのy成分を表す。また、各グラフの下部の折れ線は、系が滑り状態にあるか否かを表す。図8は制御器BおよびCを用いたときの、目標位置pdと実位置pの間の偏差である。制御器Aは追従性を重視したゲインを持つトルク制限つきPD制御であるので、図5において、復帰運動時に大きなオーバーシュートを生じ、その後の振動の減衰にも時間がかかっている。制御器Bは収束性を重視したゲインを持つトルク制限つきPD制御であるので、図8によく表れているとおり、正常運動時に偏差が大きくなっている。またこのとき、指令トルクfが振動的になり(図示せず)、高周波の騒音がアクチュエータから発生することが確認できた。制御器Cは本発明の最良の形態の一つであり、正常動作時の追従性と、復帰動作時の収束性との両立ができているのが図7および図8から分かる。
【0020】
本実施例の2自由度平行リンクマニピュレータが請求項の「移動機構」の一態様に相当する。各アクチュエータに取り付けられた光学エンコーダが請求項の「位置検出器」の一態様に相当する。図3に破線で囲んだ制御器が請求項「指令装置」の一態様に相当する。
【0021】
ところで、式(18)の手順は、H=B/KおよびL=0を代入すると、

u(k)=K・(pd(k)−p(k))
+B・(vd(k)−v(k)) ・・・(21a)

f(k)=u(k);(|u(k)|≦Fの場合)
または
f(k)=F・sgn[u(k)];(|u(k)|>Fの場合) ・・・(21b)

となる。これは、出力トルクの上限をFとしたPD制御と等価である。スライディングモード制御のチャタリングを防ぐために、切替面周囲の不連続性を滑らかにする方法も考えられているが、これは本質的にトルク制限付PD制御(式(21))と等価である。
正常動作時の局所的な追従性を保ちつつ、異常動作時の広域的な収束性を保つためには、H≫B/Kと設定するのが望ましい。比例ゲインKは、正常運転時の追従性を保つために、できるだけ大きく設定するのが望ましい。微分ゲインBは、発振を防ぎつつ、追従性と即応性を損なわない程度の大きさにとどめるべきである。そして、定数Hが大きいほど異常から復帰する動作が緩やかであり、これが小さすぎると目標軌道近傍でオーバーシュートが発生する。発生トルクの上限値Fは、関節摩擦とリンク慣性に打ち勝って必要な速度を出すために必要な程度で、かつ、人間や環境に危害を与えない程度の力の大きさの値を設定すればよい。
【0022】
本実施例において、H≫B/Kと設定されれば、正常動作時の小さな位置決め誤差からのすばやい復帰と、異常動作時の大きな位置誤差からのゆるやかな復帰を保つことができる。比例ゲインKは、正常運転時の追従性を保つために、できるだけ大きく設定するのが望ましい。微分ゲインBは、発振を防ぎつつ、追従性と即応性を損なわない程度の大きさにとどめるべきである。そして、定数Hが大きいほど異常から復帰する動作が緩やかであり、これが小さすぎると目標軌道近傍でオーバーシュートが発生する。発生トルクの上限値Fは、関節摩擦とリンク慣性に打ち勝って必要な速度を出すために必要な程度で、かつ、人間や環境に危害を与えない程度の力の大きさの値を設定すればよい。
なお、従来のPD制御器はH=B/Kとした場合と等価である。すなわち、正常動作時の追従性を決定するKおよびBと、異常動作時の収束性を決定するHを、独立して設定できるのが、本実施例の効果であるといえる。
また、アクチュエータの発生力の大きさFを明示的に設定できるという点も、本発明の効果である。
【0023】
<実施例2>
次に実施例2について説明する。この実施例における位置制御装置は、作業者が器具を用いてワークに対して行う作業について、作業者の負担を軽減するものである。作業の例としては、目標軌道(目標位置)に沿って、切断器具によりワークを目標軌道に沿って切断する作業や、接着剤塗布器具によりワーク上の目標軌道に沿って接着剤を塗布する作業などがある。切断器具や接着剤塗布器具(以下、器具と称する)は、移動機構が保持する。
【0024】
まず、そのような作業の課題を説明する。そのような作業は、作業者が直接に器具を保持し、自らの力だけで器具を目標位置に追従させることは作業者の負担が大きい。作業者にとって、器具の位置を大まかに(広域的に)目標位置へ合わせる作業は容易であるが、器具の位置を目標位置に正確に(局所的に)に追従させる作業は負担となる。
【0025】
そこで、作業者が行う器具の局所的な移動を補助する位置制御装置を考える。器具は位置制御装置の移動機構に保持させる。移動機構は操作子を備える。器具を広域的に移動させる場合には、作業者が操作子を操作して移動機構に保持された器具を移動させる。一方、位置制御装置は、移動機構が保持した器具の位置を目標位置に正確に追従するように移動機構を制御する。換言すれば、この位置制御装置は、器具の位置を目標位置に追従させる作業者の操作を誘導する装置ということができる。
この場合、器具を移動させるための広域的な動作が支配的な作業フェーズにおいては、作業者の随意的な操作を阻害せずに良好な作業感覚を与えるために、位置制御装置が制御する移動機構には、十分滑らかに動くことが要求される。「滑らか」とは、移動機構の動作に高周波成分が少ないことを意味する。
器具の位置が目標位置に近づいて、器具を目標位置に正確に追従させる際の局所的な(小振幅な)動作が支配的な作業フェーズにおいては、位置制御装置は、十分に高剛性で速応性の高い(例えば、器具の位置が目標位置に一致したときに「カチッ」とラッチするような)動作を移動機構に行わせる必要がある。そうすることによって、高周波かつ小振幅
である作業については作業者の負担を低減することができる。このことを模式的に表したのが図9である。図9の縦軸は器具の移動の振幅(器具を移動させる動作の大きさ)である。横軸は器具を移動させる際の動作の周波数である。振幅が大きくかつ低周波である領域Aに相当する作業フェーズでは、人間が随意的に器具を移動させる動作を可能にし、振幅が小さくかつ高周波である領域Bに相当する作業フェーズでは、目標位置に追従させるための器具の移動を位置制御装置がカバーする。そのためには、位置制御装置が移動機構の保持する器具の位置を制御する際には、広域的な「滑らかさ」と局所的な「高い剛性と速応性」を両立する必要がある。
【0026】
移動機構を制御する際、従来のPDあるいはPID制御方式では「滑らかさ」と「速応性」は相反するため、上記の両立は困難であった。
また、「高い剛性」と「滑らかさ」を両立するためには、大きい速度フィードバックゲイン(器具に作用する粘性係数に相当する)を設定する必要がある。これは、「速応性」を損なうだけでなく、速度信号のノイズを増幅してしまうという課題も発生する。
【0027】
そこで本実施例では、実施例1で説明した位置制御装置を活用する。位置制御装置が備えており、移動機構が物体に加える力の指令値を出力する指令装置内には図3のブロック図に示す制御ロジックが構築されている。その制御ロジックの原理を再度説明するために制御ロジックを構築する出発点となる式を以下に再記する。

f=K・(ps−p)+B・(vs−v) ・・・(6b)
f=F・sgn[pd−p−(da/dt)
+H・(vd−(d^2a/dt^2))] ・・・(8)

式(8)はa=∫(ps−p)dtであることを考慮すると、

f=F・sgn[pd−ps+H・(vd−vs)] ・・・(8b)

と書き直すことができる。また、上記の式(6b)は、前述した式(6)において積分ゲインLをゼロとしたものである。
上記の式(6b)と式(8b)の夫々の記号の意味は次の通りである。pおよびvは連続時間系で表現された器具の位置および速度である。psおよびvsは連続時間系で表現された仮想質点(プロキシ)の位置および速度である。pdおよびvdは連続時間系で表現された目標位置および目標速度である。Kは第1の係数である。係数Kの物理的な意味は、器具とプロキシを仮想的に連結する連結要素の弾性係数である。Bは第2の係数である。係数Bの物理的な意味は、連結要素の粘性係数である。即ち、式(6b)は、器具の位置pとプロキシの位置psとが仮想的な連結要素で連結されているときに器具の位置pとプロキシの位置psの間に作用する仮想的な粘弾性力fを表している。Hは第3の係数を表す。
器具は移動機構に保持されている。式(6b)と式(8b)の左辺fは、仮想的な空間内で仮想連結要素が器具へ加える力を表す。この力を移動機構によって器具へ加える。また、プロキシは仮想空間内で目標位置に近づくようにスライディングモード制御されており、式(8b)はその制御則を表す。プロキシの質量はゼロに設定されており、プロキシに仮想的な連結要素から加えられる力(式(6b)のf)とスライディングモード制御器から加えられる力(式(8b)のf)は常に等しい.なお式(8b)において、変数Fは移動機構が発生する力の上限値を表す。この上限値Fは、移動機構の機械的な静止摩擦力と同等かそれ以下に設定される。
式(8b)の制御則は、プロキシの状態(ps、vs)を、

pd−ps+H・(vd−vs)=0 ・・・(23)

という超平面(滑り平面)に引き付けるように働く。式(23)は、プロキシの位置psが目標位置pdへ漸近的に時定数Hで収束するような動特性を表す。プロキシが式(23)に従って運動する限り、プロキシの位置psにはオーバーシュートは発生しない。移動機構に保持された器具は仮想的な連結要素によってプロキシと連結されているため、器具の位置pと速度vもほぼ式(23)の動特性に従うことになる。
【0028】
この制御則の利点は、局所的な応答特性と広域的な応答特性とを独立して設定できる点である。局所的な応答特性とは、比較的小さな位置誤差に対する応答特性であり、これは仮想的な連結要素の粘性係数Bと弾性係数Kとの比によって決定される。このため、正確な追従のためにKはなるべく大きく、局所的な速応性のためにBは振動を抑えられる程度でなるべく小さく設定する必要がある。
一方、広域的な応答特性とは、比較的大きな位置誤差に対する応答特性であり、これは第3の係数Hによって決定される。ここでは位置制御装置の目的は作業者の動作を誘導することにある。従って位置制御装置が備えており、器具を保持する移動機構は作業者が操作子を操作する際の随意的な動作と同程度に滑らかな動特性を実現する必要がある。人間の随意的な動作の周波数帯域はおよそ6Hz程度が限界値であり、通常はおよそ2Hz程度といわれている。折点周波数が2Hzの一次遅れ系の時定数は、1/(2π×2)=0.08秒である。したがって、望ましい第3の係数Hの値はおよそ0.1秒程度と考えることができる。通常の場合、移動機構の局所的な応答特性は、作業者の応答特性よりも高い速応性を必要とするので、H>>B/Kとなるように設定されることが望ましい。
【0029】
次に実施例2の位置制御装置について説明する。図10は実施例2の位置制御装置100の概略図である。この実施例は、塗布器具112の先端から吐出する接着剤をワーク200に設定された目標軌道Lに沿って吹き付ける作業である。
この位置制御装置100は、移動機構102と指令装置120を備える。
移動機構102は、基部104と第1リンク106aの一端が第1モータ108aによって回転自在に連結されている。第1リンク106aの他端と第2リンク106bの一端が第1モータ108bによって回転自在に連結されている。第2リンク106bの他端の下側には塗布器具112が保持されている。第2リンク106bの他端の上側には操作子114が取り付けられている。操作子114は、作業者300によって把持されて塗布器具112の位置を移動させるための操作力を移動機構102に伝えるものである。
移動機構102は全体として2リンクマニピュレータを形成しており、第2リンク106bの他端に保持された塗布器具112の位置p(k)のワーク200の平面内での移動を幾何学的に拘束しない。従って、移動機構102が発生する力が大きくなければ、移動機構が発生する力は、作業者300が操作子114を操作して塗布器具112の位置p(k)を移動させる作業を妨げない。なお、位置p(k)のkは離散時間系における時刻を表す記号である。
第1モータ108aには第1エンコーダ110aが備えられている。第2モータ108bには第2エンコーダ110bが備えられている。第1エンコーダ110aは、基部104と第1リンク106aの相対回転角を検出する。第2エンコーダ110bは、第1リンク106aと第2リンク106bの相対回転角を検出する。第1エンコーダ110aと第2エンコーダbの検出値と、移動機構102の幾何学的な構造と寸法から、塗布器具112の先端の位置p(k)が求められる。
【0030】
指令装置120は移動機構102と電気的に接続されている。指令装置120には第1エンコーダ110a及び第2エンコーダ110bの検出値が入力される。指令装置120からは移動機構102が塗布器具112に加える力の指令値f(k)が出力される。ここで「移動機構102が塗布器具112に加える力の指令値f(k)」は、実際には、移動機構102が塗布器具112に加える力を発生するために、第1モータ108aと第2モータ108bが出力するトルク指令値として出力される。移動機構102が塗布器具112に加える力f(k)と、第1モータ108a及び第2モータ108bが出力するトルクとは良く知られるヤコビ行列によって相互に変換可能である。従って、移動機構102が塗布器具112に加える力と、第1モータ108a及び第2モータ108bが出力するトルクは等価である。
【0031】
目標軌道Lは、目標位置pd(k)の経時的なデータとして表される。そのデータは、指令装置120内の記憶装置(不図示)に記憶されている。塗布器具112の目標速度vd(k)が設定されている場合には、目標速度vd(k)の経時的なデータも記憶装置に記憶されていてもよい。また、目標速度vd(k)の経時的なデータを記憶する代わりに、目標位置pd(k)の経時的なデータのうち、幾つかの経時的に連続した目標位置pd(k)のデータからそれらの位置の差分によって目標速度vd(k)を求めてもよい。
この実施例の作業では、各時刻kにおいて、塗布器具112の先端の位置p(k)を目標軌道L上の目標位置pd(k)に追従させる必要がある。そこで指令装置120内には、図3に示すブロック図の制御ロジックが構築されている。
【0032】
指令装置120内で実際に実行される制御ロジックを再記する。

u(k)=(pd(k)−p(k))・(B+K・T)/(H+T)
+(vd(k)−v(k))・H・(B+K・T)/(H+T)
+e(k−1)・(H・K−B)/(H+T) ・・・(22f)

f(k)=u(k);(|u(k)|≦Fの場合) または、
f(k)=F・sgn[u(k)];(|u(k)|>Fの場合) ・・・(22c)

e(k)=(B・e(k−1)+T・f(k))/(B+K・T) ・・・(22d)
e(k)=ps(k)−p(k) ・・・(22e)

式(22f)、式(22c)、式(22d)に表れる記号の意味は以下の通りである。u(k)は、時刻kにおける暫定制御力を表す。f(k)は、時刻kにおいて指令装置120が移動機構102へ指令する力指令値を表す。力指令値f(k)は、移動機構102が塗布器具112へ加えるべき力である。
pd(k)とvd(k)は時刻kにおける目標位置と目標速度を表す。p(k)とv(k)は時刻kにおける塗布器具112の位置と速度を表す。Tは制御周期を表す。KとBは式(6b)で説明した通り仮想的な連結要素の弾性係数と粘性係数を表す。Hは第3の係数を表す。
Fは移動機構102が塗布器具112に加える力の上限値を表す。この上限値Fは、指令装置120が出力する力指令値のリミッタとして設定される。符号関数sgn[x]は、x=0のときに閉区間[−1、1]の任意の値を取りうると定義している。
e(k)は制御ロジック内の内部状態変数である。その物理的な意味は、式(22e)に示されるように、時刻kにおける仮想質点(プロキシ)の位置ps(k)と塗布器具112の位置p(k)の偏差である。但し、e(k)は式(22e)で計算されることはなく、式(22d)の漸化式によって計算できる。e(k)が式(22d)の漸化式で計算されるのでe(k)を内部状態変数とみることができる。
なお、本実施例では、塗布器具112の速度v(k)は、(p(k)−p(k−1))/Tで算出される。p(k)は第1エンコーダ110a、第2エンコーダ110bの出力値と移動機構102の幾何学的構造と寸法から算出される。従って本実施例では塗布器具112の速度v(k)を検出する検出器は必要ない。なお、塗布器具112の速度v(k)を位置p(k)の経時的なデータから算出する代わりに、速度センサなど、物体の速度を検出するセンサを配置してそのセンサから物体の速度を直接検出してもよい。
【0033】
次に位置制御装置100が実行する処理を図11のフローチャート図を参照して説明する。
ステップS100では、第1エンコーダ110a、第2エンコーダ110bによって塗布器具112の位置p(k)を検出する。ステップS102では前述したように、塗布器具112の時刻kでの位置p(k)と時刻k−1での位置p(k−1)から塗布器具112の速度v(k)を算出する。ステップS104では時刻kにおける目標位置pd(k)と目標速度vd(k)を取得する。目標位置と目標速度の経時的なデータは指令装置120内の記憶装置に予め記憶されている。
次にステップS106では、式(22f)に従って暫定制御力u(k)を算出する。
次にステップS108では、暫定制御力u(k)の大きさと上限値Fを比較する。本実施例では、塗布器具112はワーク200の平面内で移動可能であるので暫定制御力u(k)は2次元ベクトルとなる。2次元ベクトルの場合の大きさはそのベクトルのノルムで定義される。
比較の結果、暫定制御力u(k)の大きさが上限値F以下の場合には(ステップS108:YES)、ステップS110によって、移動機構102へ出力する力の指令値f(k)を暫定制御力u(k)にセットする。比較の結果、暫定制御力u(k)の大きさが上限値Fを超える場合には(ステップS108:NO)、ステップS112によって移動機構102へ出力する力の指令値f(k)は、方向が暫定制御力u(k)ベクトルと同じであり、大きさがFの値にセットする。
ステップS110又はステップS112でセットされた力の指令値f(k)は指令装置120から移動機構102へ出力される。最後にステップS116では、次の制御周期の際に式(22f)の計算に必要なe(k)の値を式(22d)により計算する。以上の処理を制御周期T毎に繰り返す。
【0034】
本実施例では上限値Fの大きさは、移動機構104の機械的な静止摩擦力より小さい値に設定される。これによって、塗布器具112が静止している状態で移動機構104が出力できる最大の大きさの力Fを塗布器具112に加えるように動作しても、力Fが静止摩擦力に打ち勝つことができず塗布器具112は移動しない。塗布器具112は、作業者300が操作子114を操作して、塗布器具112の位置p(k)が目標位置pd(k)に近づく方向に操作力を加えたときに始めて移動する。
指令装置120が移動機構102に出力する力の指令値f(k)は、図10に示すように、塗布器具112の位置p(k)を目標位置pd(k)に一致させる向きに作用する。従って作業者300が操作子114に対して塗布器具112の位置p(k)を目標位置pd(k)に近づける方向に操作力Fsを加えると、操作力Fsと移動機構102が出力する力指令値f(k)の合力によって、塗布器具112の位置p(k)は滑らかに目標位置pd(k)へ移動する。力指令値f(k)の大きさの上限値Fは、塗布器具112と移動機構104の機械的な静止摩擦力より小さい値に設定されている。一般に静止摩擦力は動摩擦力よりも大きい。従って、塗布器具112がひとたび目標位置pd(k)の方向へ向って動き出すと、移動機構102が発生する力f(k)のみによって、あるいはf(k)とFsの合力によって、塗布器具112の位置p(k)は目標位置pd(k)に追従するようになる。作業者300は、移動機構102が発生する力f(k)によって、塗布器具112の位置p(k)を目標位置pd(k)に追従させるという局所的な動作の負担を軽減される。さらに前述したように、指令値120が出力する力指令値f(k)は塗布器具112の位置p(k)の目標位置pd(k)への追従に対してオーバーシュートを生じることがない。その上、指令値120が出力する力指令値f(k)がチャタリングを発生することもない。
また仮に作業者300が操作子114に加える操作力Fsの方向が目標軌道pd(k)に向かう方向と異なる場合には、移動機構102が発生する力f(k)の方向と操作力Fsの方向が異なることになる。従って作業者300は、目標位置pd(k)へ向う方向以外の方向へは操作子114を動かし難くなる。このことは換言すれば、作業者の行う動作は、位置制御装置100によって、塗布器具112の位置p(k)を目標位置pd(k)に追従させるように誘導されるということもできる。
一方、塗布器具112の位置p(k)と目標位置pd(k)が大きく離れている場合には式(22f)からわかる通りu(k)は大きな値となる。しかし指令装置120が出力する力指令値f(k)の大きさは、塗布器具112と移動機構104の機械的な静止摩擦力より小さい値である上限値Fを超えることはない。塗布器具112の位置p(k)と目標位置pd(k)が大きく離れている場合に、移動機構が出力する力f(k)は、作業者300が操作子114に操作力を加えて塗布器具112を広域的に移動させる作業を妨げない。
なお、図11のフローチャートの処理は、実施例1の位置制御装置についても同様に実行される。実施例1の位置制御装置と実施例2の位置制御装置は同じ処理を実行する。実施例1の位置制御装置と実施例2の位置制御装置で異なるのは、実施例2の位置制御装置100の移動機構102が操作子114を有することと、実施例2の位置制御装置では、力の上限値Fが移動機構104の機械的な静止摩擦力より小さい値に設定されることである。
また、本実施例では、力の上限値Fを移動機構104の機械的な静止摩擦力より小さい値に設定したが、力の上限値Fは、移動機構104の機械的な静止摩擦力と同等かそれ以下の値であればよい。
また、図11のフローチャートに示した処理は、コンピュータによって実行されるプログラムの形式で提供されるものであってもよい。その場合には、より厳密には、図11のステップS100は、第1エンコーダ110a、第2エンコーダ110bによって検出された物体の位置を取得するステップとなる。
【0035】
実施例2の位置制御装置100の効果を調べるための実験を行った。移動機構には、図4に示した水平面内で稼動する2自由度平行リンクマニピュレータを用いた。マニピュレータの稼動領域の直下には液晶モニタを水平に設置した。被験者はマニピュレータの手先効果器に取り付けられたグリップ(操作子)を握り、液晶モニタに表示された目標位置に追従するように、マニピュレータの手先を動かす。即ち、マニピュレータの手先位置が物体の位置pに相当する。
被験者は一回の試行において、幅0.5m、奥行き0.3mの「∞」形の目標軌道を1周期あたり4秒で2周期(8秒)の追従動作を行った。なお、この運動は縦横の周波数比が1:2のリサジュー運動である。マニピュレータの手先位置の直交座標に対して、指令装置は式(22f)、式(22c)で算出される力指令値f(k)をマニピュレータに対して出力する。ただしマニピュレータの手先に発生させる力の上限値は、手先の並進力ではなく、各軸の関節トルクに対して設けた。制御則のパラメータ(Fτ、H、K、B)は、図12に示すC0からC5の6種類の組み合わせ(条件)を用いた。なお、Fτは関節トルクの大きさの上限値である。条件C0においてはFτ=0であるので、マニピュレータはトルクを発生しない。条件C1からC5においてはFτ=7Nmであるが、各関節の減速器におよそ10Nmの摩擦力がはたらくので、被験者から力が加えられなければマニピュレータはほとんど動かない。一人の被験者は各条件の下で1回ずつ、合計6回の試行を行った。被験者は8人の健康な男性とした。
一回の試行の結果は、メートルを単位とした追従誤差の大きさの自然対数の時間平均(以下、L値と呼ぶ)を用いて評価した。ただし、被験者間の身体能力の差異の影響を除くために、各試行のL値から各被験者内の平均L値を減じた値を、各試行の成績(以下、N値と呼ぶ)とした。図13に、条件C0からC5の下での、N値の平均および標準偏差を示す。大きいN値は大きい追従誤差を意味する。「*」および「**」はそれぞれ、p<0.05およびP<0.01の有意差を表す。図13から、条件C0におけるN値が他の条件におけるN値より有意に大きいことが分かる。これは、弱い力の運動誘導によっても軌道追従の誤差を低減する効果があるということを示している。
条件C1、C2およびC3はK値が同じでH値が異なるが、前述したように、H値が中間(0.1秒)である条件C2が最も良い結果となっている。H値が小さい(0.01秒)と誘導動作の速応性が高くなり、被験者が誘導動作に従えなくなる。これによってオーバーシュートが発生し、追従誤差が増加する。一方で、大きすぎるH値(0.5秒)は速応性の低下を招くため、これも追従誤差の増加の原因となる。条件C2、C4およびC5はH値が同じでK値が異なるが、K値が最も大きい条件C2が最も良い結果となっている。これは、大きいK値、すなわち高い剛性は、正確な追従に必要であるということを表している。なおこの制御則は、H=B/Kを満たすとき、マニピュレータの発生力に上限があるPD制御と等価になる。HとKの値を条件C2と同じにし、H=B/Kを満たすようにB値を設定すると、B値が大きくなりすぎたため、マニピュレータは速度信号のノイズに起因する騒音を発生した。これは、条件C2と同様の動特性を実現するためには、本実施例で提案した、式(22f)、式(22c)で算出される力指令値f(k)を算出する位置制御装置が有効であるということを示している。
【0036】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。本発明は一般的な位置制御装置や位置制御方法などに適用可能である。また、実施例2のように作業者の作業を誘導する位置制御装置は、例えば、人間への技能・運動教示や、リハビリテーションなどへの適用も可能である。
【0037】
本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。
【図面の簡単な説明】
【0038】
【図1】最も簡単なスライディングモード制御を示す模式図である。
【図2】本発明の位置制御装置の物理的解釈を示す模式図である。
【図3】本発明の位置制御装置を示すブロック図である。
【図4】実験に用いたマニピュレータの模式図である。
【図5】制御器A(従来技術の一例)を用いた場合の実験結果を示す図である。
【図6】制御器B(従来技術の一例)を用いた場合の実験結果を示す図である。
【図7】制御器C(本発明の最良の形態の一つ)を用いた場合の実験結果を示す図である。
【図8】制御器BおよびCを用いた場合の位置決め誤差を示す図である。
【図9】人間が随意的に動作可能な領域と位置制御装置がカバーすべき動作の領域を示す模式図である。
【図10】実施例2の位置制御装置の模式図である。
【図11】実施例2の位置制御装置が実行する処理のフローチャート図である。
【図12】実施例2の位置制御装置の効果を検証する実験における変数の値を示す図である。
【図13】実施例2の位置制御装置の効果を検証する実験の結果を表す図である。
【符号の説明】
【0039】
100:位置制御装置
102:移動機構
104:基部
106a:第1リンク
106b:第2リンク
108a:第1モータ
108b:第2モータ
110a:第1エンコーダ
110b:第2エンコーダ
112:塗布器具
114:操作子
120:指令装置
200:ワーク
300:作業者
L:目標軌道

【特許請求の範囲】
【請求項1】
物体の位置を目標位置に追従させる位置制御装置であり、
物体の位置を検出する位置検出器と、
物体の速度を取得する速度取得手段と、
物体を保持しており、物体に加える力の指令値が入力され、入力された指令値を実現するように動力によって動作する移動機構と、
物体に加える力の指令値を移動機構へ出力する指令装置と、を備え、
指令装置は、
離散時間系における時刻をk、単位時間をT、時刻kにおける物体の目標位置をpd(k)、時刻kにおける物体の目標速度をvd(k)、時刻kにおいて位置検出器によって検出される物体の位置をp(k)、時刻kにおいて速度取得手段によって取得される物体の速度をv(k)、第1の係数をK、第2の係数をB、第3の係数をH、第4の係数をL、時刻kにおいて指令装置内で演算される内部状態変数をa(k)としたときに、時刻kにおいて指令装置が出力する力の指令値f(k)を算出するための暫定制御力u(k)を次の第1式、即ち、
u(k)=(pd(k)−p(k))・(B+K・T+L・T・T)/(H+T)
+(vd(k)−v(k))・H・(B+K・T+L・T・T)/(H+T)
+a(k−1)・L
+(a(k−1)−a(k−2))・(H・(K+L・T)−B)/(H+T)/T・・・(第1式)
によって算出し、
時刻kにおいて指令装置が算出する指令値f(k)は、移動機構の動力が出力することを許容されている力の集合をXとしたときに、暫定制御力u(k)∈Xが満たされるときには指令値f(k)=u(k)とし、暫定制御力u(k)∈Xが満たされないときには指令値f(k)を、暫定制御力u(k)に正のスカラ値を乗じた値であり、かつf(k)∈Xが満たされるf(k)を指令値f(k)とし、
時刻k+1において暫定制御力u(k+1)を算出する場合に第1式に表れるa(k)は次の第2式、即ち、
a(k)=a(k−1)・(B+K・T)/(B+K・T+L・T・T)
+(a(k−1)−a(k−2))・B/(B+K・T+L・T・T)
+f(k)・T・T/(B+K・T+L・T・T)・・・(第2式)
によって算出することを特徴とする位置制御装置。
【請求項2】
物体の位置を目標位置に追従させる位置制御装置であり、
物体の位置を検出する位置検出器と、
物体の速度を取得する速度取得手段と、
物体を保持しており、物体に加える力の指令値が入力され、入力された指令値を実現するように動力によって動作する移動機構と、
物体に加える力の指令値を移動機構へ出力する指令装置と、を備え、
指令装置は、
離散時間系における時刻をk、単位時間をT、時刻kにおける物体の目標位置をpd(k)、時刻kにおける物体の目標速度をvd(k)、時刻kにおいて位置検出器によって検出される物体の位置をp(k)、時刻kにおいて速度検出手段によって取得される物体の速度をv(k)、第1の係数をK、第2の係数をB、第3の係数をH、時刻kにおいて指令装置内で演算される内部状態変数をe(k)としたときに、時刻kにおいて指令装置が算出する指令値f(k)を算出するための暫定制御力u(k)を次の第3式、即ち、
u(k)=(pd(k)−p(k))・(B+K・T)/(H+T)
+(vd(k)−v(k))・H・(B+K・T)/(H+T)
+e(k−1)・(H・K−B)/(H+T)・・・(第3式)
によって算出し、
時刻kにおいて指令装置が算出する指令値f(k)は、移動機構の動力が出力することを許容されている力の集合をXとしたときに、暫定制御力u(k)∈Xが満たされるときには指令値f(k)=u(k)とし、暫定制御力u(k)∈Xが満たされないときには指令値f(k)を、暫定制御力u(k)に正のスカラ値を乗じた値であり、かつf(k)∈Xが満たされるf(k)を指令値f(k)とし、
時刻k+1において暫定制御力u(k+1)を算出する場合に第3式に表れるe(k)は次の第4式、即ち、
e(k)=(B・e(k−1)+T・f(k))/(B+K・T)・・・(第4式)
によって算出されることを特徴とする位置制御装置。
【請求項3】
前記集合Xは、設定されたスカラ値Fよりも絶対値が小さい全ての値の集合であり、前記指令装置は、移動機構の動力が出力することを許容されている力の大きさをFとしたときに、|u(k)|<Fが満たされる場合は指令値f(k)=u(k)とし、|u(k)|<Fが満たされない場合は指令値f(k)=(F/|u(k)|)・u(k)とすることを特徴とする請求項1又は2に記載の位置制御装置。
【請求項4】
前記集合Xは、設定されたスカラ値FよりもL2ノルムが小さい全てのベクトル値の集合であることを特徴とする請求項1又は2に記載の位置制御装置。
【請求項5】
前記集合Xは、設定されたスカラ値FよりもL無限大ノルムが小さい全てのベクトル値の集合であることを特徴とする請求項1又は2に記載の位置制御装置。
【請求項6】
物体の位置を目標位置に追従させる位置制御装置であり、
物体の位置を検出する位置検出器と、
物体を保持しており、物体に加える力の指令値が入力され、入力された指令値を実現するように動力によって動作する移動機構と、
物体に加える力の指令値を移動機構へ出力する指令装置と、を備え、
指令装置は、
質量ゼロの仮想質点と、一端が物体の検出された位置に連結されており、他端が仮想質点に連結されている仮想的な保持要素と、を仮想空間内に設定し、
スライディングモード制御則に基づいて、仮想質点の位置を目標位置に追従させる制御を仮想空間内で行った際に仮想保持要素から物体に加えられる力を算出し、算出された力を指令値として移動機構へ出力することを特徴とする位置制御装置。
【請求項7】
移動機構が動力によって物体に加える力の大きさの上限値が、移動機構の機械的な静止摩擦力と略同等以下の大きさに設定されており、
前記移動機構は、作業者が移動機構に操作力を加えるための操作子を備えることを特徴とする請求項1から6のいずれか1項に記載の位置制御装置。
【請求項8】
物体を保持しており、物体に加える力の指令値が入力され、入力された指令値を実現するように動力によって動作する移動機構を利用して、物体の位置を目標位置に追従させる位置制御方法であり、
物体の位置を検出する位置検出ステップと、
物体の速度を検出する速度検出ステップと、
物体に加える力の指令値を算出する指令値算出ステップと、
指令値算出ステップによって算出された力の指令値を移動機構へ出力するステップと、を含み、
前記指令値算出ステップは、
離散時間系における時刻をk、単位時間をT、時刻kにおける物体の目標位置をpd(k)、時刻kにおける物体の目標速度をvd(k)、時刻kにおいて位置検出ステップによって検出される物体の位置をp(k)、時刻kにおいて速度取得ステップによって取得される物体の速度をv(k)、第1の係数をK、第2の係数をB、第3の係数をH、第4の係数をL、時刻kにおける内部状態変数をa(k)としたときに、時刻kにおいて力の指令値f(k)を算出するための暫定制御力u(k)を次の第1式、即ち、
u(k)=(pd(k)−p(k))・(B+K・T+L・T・T)/(H+T)
+(vd(k)−v(k))・H・(B+K・T+L・T・T)/(H+T)
+a(k−1)・L
+(a(k−1)−a(k−2))・(H・(K+L・T)−B)/(H+T)/T・・・(第1式)
によって算出し、
時刻kにおける指令値f(k)は、移動機構の動力が出力することを許容されている力の集合をXとしたときに、暫定制御力u(k)∈Xが満たされるときには指令値f(k)=u(k)とし、暫定制御力u(k)∈Xが満たされないときには指令値f(k)を、暫定制御力u(k)に正のスカラ値を乗じた値であり、かつf(k)∈Xが満たされるf(k)を指令値f(k)とし、
時刻k+1において暫定制御力u(k+1)を算出する場合に第1式に表れるa(k)は次の第2式、即ち、
a(k)=a(k−1)・(B+K・T)/(B+K・T+L・T・T)
+(a(k−1)−a(k−2))・B/(B+K・T+L・T・T)
+f(k)・T・T/(B+K・T+L・T・T)・・・(第2式)
によって算出することを特徴とする位置制御方法。
【請求項9】
物体を保持しており、物体に加える力の指令値が入力され、入力された指令値を実現するように動力によって動作する移動機構を利用して、物体の位置を目標位置に追従させる位置制御方法であり、
物体の位置を検出する位置検出ステップと、
物体の速度を検出する速度検出ステップと、
物体に加える力の指令値を算出する指令値算出ステップと、
指令値算出ステップによって算出された力の指令値を移動機構へ出力するステップと、を含み、
前記指令値算出ステップは、
離散時間系における時刻をk、単位時間をT、時刻kにおける物体の目標位置をpd(k)、時刻kにおける物体の目標速度をvd(k)、時刻kにおいて位置検出ステップによって検出される物体の位置をp(k)、時刻kにおいて速度取得ステップによって取得される物体の速度をv(k)、第1の係数をK、第2の係数をB、第3の係数をH、時刻kにおける内部状態変数をe(k)としたときに、時刻kにおいて力の指令値f(k)を算出するための暫定制御力u(k)を次の第1式、即ち、
u(k)=(pd(k)−p(k))・(B+K・T)/(H+T)
+(vd(k)−v(k))・H・(B+K・T)/(H+T)
+e(k−1)・(H・K−B)/(H+T)・・・(第3式)
によって算出し、
時刻kにおいて算出する指令値f(k)は、移動機構の動力が出力することを許容されている力の集合をXとしたときに、暫定制御力u(k)∈Xが満たされるときには指令値f(k)=u(k)とし、暫定制御力u(k)∈Xが満たされないときには指令値f(k)を、暫定制御力u(k)に正のスカラ値を乗じた値であり、かつf(k)∈Xが満たされるf(k)を指令値f(k)とし、
時刻k+1において暫定制御力u(k+1)を算出する場合に第3式に表れるe(k)は次の第4式、即ち、
e(k)=(B・e(k−1)+T・f(k))/(B+K・T)・・・(第4式)
によって算出することを特徴とする位置制御方法。
【請求項10】
前記集合Xは、設定されたスカラ値Fよりも絶対値が小さい全ての値の集合であり、前記指令装置は、移動機構の動力が出力することを許容されている力の大きさをFとしたときに、|u(k)|<Fが満たされる場合は指令値f(k)=u(k)とし、|u(k)|<Fが満たされない場合は指令値f(k)=(F/|u(k)|)・u(k)とすることを特徴とする請求項8又は9に記載の位置制御方法。
【請求項11】
前記集合Xは、設定されたスカラ値FよりもL2ノルムが小さい全てのベクトル値の集合であることを特徴とする請求項8又は9に記載の位置制御方法。
【請求項12】
前記集合Xは、設定されたスカラ値FよりもL無限大ノルムが小さい全てのベクトル値の集合であることを特徴とする請求項8又は9に記載の位置制御方法。
【請求項13】
物体を保持しており、物体に加える力の指令値が入力され、入力された指令値を実現するように動力によって動作する移動機構を利用して、物体の位置を目標位置に追従させる位置制御方法であり、
物体の位置を検出する位置検出ステップと、
物体に加える力の指令値を算出する指令値算出ステップと、
指令値算出ステップによって算出された力の指令値を移動機構へ出力するステップと、を含み、
前記指令値算出ステップは、さらに、
質量ゼロの仮想質点と、一端が物体の検出された位置に連結されており、他端が仮想質点に連結されている仮想的な保持要素と、を仮想空間内に設定するステップと、
スライディングモード制御則に基づいて、仮想質点の位置を目標位置に追従させる制御を仮想空間内で行った際に仮想保持要素から物体に加えられる力を移動機構へ出力する力の指令値として算出するステップと、
を含むことを特徴とする位置制御方法。
【請求項14】
移動機構が動力によって物体に加える力の大きさの上限値が、移動機構の機械的な静止摩擦力と略同等以下の大きさに設定されており、
前記移動機構は、作業者が移動機構に操作力を加えるための操作子を備えることを特徴とする請求項8から13のいずれか1項に記載の位置制御方法。
【請求項15】
物体を保持しており、物体に加える力の指令値が入力され、入力された指令値を実現するように動力によって動作する移動機構と、少なくとも物体の位置を検出する検出器を利用して、物体の位置を目標位置に追従させるプログラムであり、コンピュータによって、請求項8から14のいずれか1項に記載の位置制御方法を実行させるための位置制御プログラム。

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2007−102748(P2007−102748A)
【公開日】平成19年4月19日(2007.4.19)
【国際特許分類】
【出願番号】特願2005−358824(P2005−358824)
【出願日】平成17年12月13日(2005.12.13)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 2005年9月15日 社団法人日本ロボット学会発行の「第23回日本ロボット学会学術講演会予稿集」に発表
【出願人】(304021277)国立大学法人 名古屋工業大学 (784)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】