以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.本実施形態の手法
まず本実施形態の手法について説明する。従来、多くの機械装置において力覚センサーを用いた制御等が行われている。機械装置としては例えばロボットが考えられ、当該ロボットに設けられた力覚センサーからの力覚値に基づいて、ロボット制御が行われる。具体的には、ロボットの機械機構(狭義にはハンド等の手先構造物)にはたらく外力を力覚値として検出することで、インピーダンス制御等の力制御を行うことが可能になる。
また、ロボット以外の機械装置としては、パワーアシストの入力装置を考えることもできるし、医療分野におけるリハビリ機器、或いはそれに付随するデータ記録装置も考えられる。リハビリ用途においては、患者がどのような部位においてどのような大きさの力を加えているのかという情報は、治療・診断上有用であるし、またパワーアシスト等のサポート機器から使用者に加える力も適切に制御する必要性が高く、力覚センサーを用いる利点が大きい。さらには、機械装置は遠隔操作機器(医療機器を含む)であってもよく、その場合、力覚センサーからの力覚値は、力覚フィードバック等に用いることが想定される。その他にも、熟練の技術を要する職人技を科学的に解析する場合等に用いられる力覚レコーダー等も本実施形態の機械装置となり得るし、玩具やPC等の入力装置が本実施形態の機械装置であってもよい。つまり、本実施形態の機械装置としては様々な装置を想定できる。
その際、所望の制御を行うためには、力覚センサーの力覚値に対して種々の補正処理が必要となる場合がある。上述の力制御を行うロボットの例であれば、制御システムが必要とするのは、実際に作業対象と接触する部分にはたらく外力である。例えば、ハンドにより所与のツールを把持し、当該ツールを作業対象の表面を滑らせる(過度の力を加えたり、浮き上がったりしないように移動させる)制御を行う場合には、ツールが作業対象を押す力に対応して当該ツールにはたらく反力を外力として検出する必要がある。
しかし、力覚センサーが作業対象と接触する位置に設けられずに、図1及び図2に示したようにロボット10の手首に相当する位置に設けられることも大いに考えられる。その場合、力覚センサー20は当該センサーの先に設けられるエンドエフェクター12(広義には機械機構であり、具体的にはハンド、或いは当該ハンドが把持するツールであってもよい)による力も検出してしまう。具体的には、エンドエフェクター12にはたらく重力等が力覚センサー20に伝わることになるため、力覚値は上述した外力以外の力も含めた値となり、ロボット10の適切な制御が困難となる。
これに対しては、従来リセット処理により補正が行われていた。一例として図3(A)に示したように力覚センサー20の先に指構造を持つハンドが取り付けられた例を考える。ここでは、図3(B)に示したようにハンドがツール(ドライバー)を把持するものであり、エンドエフェクター12は当該ハンド及びツールに相当する。リセット処理では、図3(C)に示したようにロボット10に対して作業時と同じ姿勢をとらせる。その際、作業を実際には行わず、外力がはたらかない状態にすれば、その際の力覚センサー20からの力覚値はエンドエフェクター12に起因した値となる。このときの値をオフセット値とすれば、その後、ロボット10の姿勢を変えない限り、エンドエフェクター12に起因する力覚値はオフセット値に一致する。よって、オフセット値の記憶後、作業終了までの間、力覚値からオフセット値を除去する処理を行うことで、エンドエフェクター12による力覚値への影響を抑止することが可能になる。
しかしリセット処理では、オフセット値の記憶後は作業終了まで、オフセット値に影響を与えるようなロボット10の姿勢変更ができないことが、制御において大きな制限となっていた。そこで、特許文献1〜3では力覚センサーの先に設けられるエンドエフェクター12を物理モデル化することで、当該エンドエフェクター12による力覚センサー20への影響を補正する手法等を用いている。物理モデルは例えば重量分布等を表すモデルであってもよく、さらに具体的には質量中心位置(x,y,z)及び質量mをパラメーターとするモデルであってもよい。エンドエフェクター12を物理モデル化した情報を保持しておけば、当該エンドエフェクター12にはたらく重力や遠心力は物理的な解析により求めることができ、さらにそれらの力が力覚センサー20にどのように伝わるかも解析できる。この場合、リセット処理とは異なり、姿勢が変化しても変化後の姿勢に基づく物理的な解析を行えば姿勢変化に対応可能なため、制御上の制約を小さくできる。特許文献1〜3ではこのような手法により、力覚センサー20からの力覚値を補正し、所望の制御を実現している。
しかし、従来手法ではエンドエフェクター12の物理モデルが既知であることを前提としている。そのため、従来手法では対応が困難となる状況が考えられる。以下、3つのケースについて具体的に説明する。
なお、以下の説明においても機械装置はロボット10であり、機械機構はロボット10のエンドエフェクター12であるものとするが、機械装置及び機械機構がそれらに限定されないことは上述したとおりである。
第1にエンドエフェクター12の物理モデルが未知の場合である。特定用途のためのロボット10であれば、力覚センサー20の先に設けられるエンドエフェクター12の種類は限定されるため、従来手法のように候補となるエンドエフェクター12の物理モデルを全て保持しておき、適切なモデルを用いて解析を行うことは可能である。しかし、汎用性の高いロボット10では取り付け可能なエンドエフェクター12の種類が豊富なことも考えられ、物理モデルを事前に入手しておくことが困難な可能性がある。また多くの物理モデルを事前に記憶しておくことができたとしても、図4(A)、図4(B)に示したようにエンドエフェクター12がハンド及び当該ハンドにより把持されるツールである場合には問題が残る。図4(A)、図4(B)の例では、ハンドによるツールの把持位置にある程度の自由度があるため、ハンドの物理モデル及びツールの物理モデルが既知であったとしても、その両方を含むエンドエフェクター12の物理モデルはハンドによるツールの把持位置が決定されない限り不明となるためである。つまり、図4(A)、図4(B)の例では実際にツールが把持されるまでエンドエフェクター12の物理モデルは決定不可であり、所与の既知物理モデルを用いて解析する従来手法の適用は困難となる。
第2にエンドエフェクター12の物理モデル化がそもそも困難な場合が考えられる。具体的には、図5(A)に示したようにエンドエフェクター12が電源ケーブルを有するツールを含む場合が考えられる。この場合、ケーブルが伸びきっているのか、たるみがあるのかという点でも物理モデルは変化する。或いは、ケーブルが床等に接触している場合にはケーブルと床との摩擦等も考慮する必要があるし、ケーブルの他端が電源に接続されていることでツールの移動に要する力が変化すれのであれば、そのことでも物理モデルは変化しうる。また、図5(B)に示したコネクター付きケーブル等も同様であり、ツールの図5(B)のA1で示した把持部分と、A2で示したケーブル部分との相対的な位置関係が変化しうるため、A1及びA2を含んだエンドエフェクター12全体を単一の物理モデルで表現することは困難である。この場合、そもそも物理モデル化ができないのであるから、力学的な解析は不可能であるが、従来手法においてこの問題に対応する手法は示されていない。
第3にエンドエフェクター12が可変部を有する場合が考えられる。具体的には、図6(A)〜図6(C)に示したように指構造を有するハンドにおいては、指の開き具合等が変化すれば物理モデルが変化する。例えば、図6(A)のように各指構造がD1及びD2に示した箇所に関節を有する場合、それぞれの関節角を設定することで指の姿勢を変更することができる。その場合、図6(A)に示したように各指構造の先端部が内側へ向くような関節角を設定した場合と、図6(B)に示したように各指構造の先端部が外側へ向くような関節角を設定した場合とでは、指構造12−3と手首部分12−4とを含めたエンドエフェクター12全体の物理モデルは異なるものになる。また、手首部分12−4が図6(C)のD3に示したように回転可能(ここでは力覚センサー20に対する相対的な回転)である場合には、D3の回転量(所与の基準位置に対する回転角度)によってもエンドエフェクター12の物理モデルは変化しうる。しかし、特許文献1、2等ではこの変化を考慮した処理は行っていない。また、特許文献3には指構造を持つハンドの図面が添付されてはいるが、処理としては重量に基づく単純なものしか行っておらず、可変部の状態に応じた変化等は考慮されていない。
そこで本出願人は、既知の物理モデルをそのまま解析に用いることができない場合にも、適切な力覚値補正を行う手法を提案する。具体的には、物理モデルが未知のケースにおいては、力覚センサー20から取得した力覚値に基づいて、エンドエフェクター12の物理モデルを推定する。この処理については第1の実施形態において詳述する。
また、エンドエフェクター12の物理モデル化が困難なケースでは、処理自体は従来と同様にリセット処理を行う。ただし、ここでは第1の実施形態で説明する推定処理を試行し、試行結果に基づいてエンドエフェクター12の物理モデル化の可否を判定する。物理モデル化が可能であれば第1の実施形態と同様に推定結果を用いればよいし、不可の場合にはリセット処理に移行すればよい。この処理については第2の実施形態において詳述する。
また、可変部を含むことで物理モデルが変化するケースでは、エンドエフェクター12を固定部と可変部とに分離し、それぞれについて姿勢情報に基づく処理を行うことで、エンドエフェクター12全体を表す物理モデルを求める処理を行う。この処理については第3の実施形態において詳述する。なお、第3の実施形態においては、図24〜図26等を用いて後述するように、説明の簡略化のため、エンドエフェクターの関節部分は図6(A)のD2に示した箇所を考え、D1に示した関節や、図6(C)のD3で示した回転等は考慮していない。しかし、エンドエフェクター12がD1やD3、或いは他の部分に関節等の構造を有することを妨げるものではない。
なお、第1〜第3の実施形態で説明する手法は独立で用いられるものに限定されず、複数を組み合わせてもよい。例えば、図4(A)、図4(B)の例では可動部を含むハンドによりツールを把持し、且つ把持位置が変化しうるため、第1,第3の実施形態を組み合わせるとよい。また、把持対象となるツールに図5(A)、図5(B)のような物理モデル化が不可となるものが想定されるのであれば、第2の実施形態と組み合わせる必要も出てくる。これら組み合わせについては第4の実施形態で詳述する。
2.第1の実施形態
第1の実施形態では、力覚センサーから取得した力覚値に基づいてエンドエフェクターの物理モデルを推定し、推定した物理モデルを用いた補正処理を行う手法について説明する。以下、システム構成例、物理モデルの推定処理、及び処理の詳細について説明する。
なお、図4(A)、図4(B)の例では、エンドエフェクターは可変の指構造を含むため、第3の実施形態で後述する手法を併用する必要が生じる。よってここでは、図7(A)、図7(B)に示した吸着ハンド12−1等により、エンドエフェクター12が可変部を含まずに構成される例について考えるものとする。なお、図7(A)、図7(B)の吸着ハンド12−1は、その先端部分においてツール12−2を固定(把持)するものである。この場合、図7(A)に示したようにツール12−2の中央付近を吸着した場合と、図7(B)に示したようにツール12−2の端部に近い位置を吸着した場合とでは、吸着ハンド12−1とツール12−2を含むエンドエフェクター12全体の物理モデルは異なるものになり、吸着位置が事前にわからない限り、物理モデルは未知となる。
2.1 システム構成例
図8に本実施形態のロボット10、エンドエフェクター12、力覚センサー20、及びロボットの制御システム100を含むシステム(ここではロボットシステム)の構成例を示す。
エンドエフェクター12は、ロボット10に設けられる機構であり、ここでは特にロボット10において力覚センサー20よりも先に設けられるものを表す。エンドエフェクター12はハンドや、当該ハンドにより把持されるツール(例えばドライバー等)を含む。
力覚センサー20は、センシング部にはたらく力を検出するセンサーである。力覚センサー20には種々の構成が考えられるが、基本的には外力によるセンシング部の微小な変形を、何らかの手法により測定することで外力を検知する。変形の測定手法には、歪みゲージを用いる手法、静電センサーを用いる手法、光学センサーを用いる手法、水晶素子等の圧電素子を用いる手法等が考えられる。本実施形態においては、力覚センサー20として、図9に示したように3軸の並進力及び各軸まわりのモーメントを検出する6軸力覚センサーを用いる。
ロボットの制御システム100は、制御部110と、力覚値補正部120と、姿勢情報取得部130とを含む。ただし、制御システム100は図8の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
制御部110は、ロボット10及びエンドエフェクター12の制御を行う。本実施形態では、力覚値補正部120による補正処理後の力覚値に基づいて、ロボット10及びエンドエフェクター12の制御を行う。ここで、ロボット10等の制御とは、例えば関節部分の角度変化量、及び変化速度等の制御であってもよい。
力覚値補正部120は、力覚センサー20からのセンサー情報(力覚値)を取得し、取得した力覚値に対する補正処理を行う。力覚値補正部120は、第1の補正処理部121と、第2の補正処理部123と、固定部パラメーター記憶部124と、実行時パラメーター算出部126と、実行時パラメーター記憶部127とを含む。
本実施形態では、図7(A)に示したように物理モデルが既知の部分(以下固定部と記載。具体的には図7(A)吸着ハンド12−1)により、所与の部材(図7(A)のツール12−2)の任意の位置を把持することにより、エンドエフェクター12全体の物理モデルが未知のケースを想定している。第1の補正処理部121は、固定部について、力学的な解析を行って当該固定部による力覚値への影響を抑止する補正処理を行う。具体的には、固定部の物理モデルを固定部パラメーターとして記憶している固定部パラメーター記憶部124から当該固定部パラメーターを読み出し、読み出した固定部パラメーターと、姿勢情報取得部130から出力されたロボット10の姿勢情報とに基づいて補正処理を行う。第1の補正処理部121からの出力では、固定部に起因する力覚値が除去(広義には低減)されている。固定部に対応する補正処理の詳細は後述する。
実行時パラメーター算出部126は、第1の補正処理部121から出力された力覚値に基づいて、固定部に取り付けられた(把持された)部材の物理モデルを推定する。詳細については後述する。実行時パラメーター記憶部127は、実行時パラメーター算出部126で推定された物理モデルを、実行時パラメーターとして記憶する。
第2の補正処理部123は、実行時パラメーター記憶部127に記憶された実行時パラメーターと、姿勢情報取得部130から出力されたロボット10の姿勢情報とに基づいて補正処理を行う。第2の補正処理部123からの出力では、物理モデルが未知となる部材に起因する力覚値が除去(広義には低減)されている。つまり、第2の補正処理部123から制御部110に対して出力される力覚値は、エンドエフェクター12に起因する値が除去されたものとなる。
姿勢情報取得部130は、ロボット10及びエンドエフェクター12の姿勢情報を取得する。ここで姿勢情報とは、ロボット10やエンドエフェクター12の姿勢を表すものであり、例えば関節角をパラメーターとして表現することができる。全ての関節角について値が決定されれば、フォワードキネマティクスによりロボット10の姿勢を一意に決定可能である。具体的には、姿勢情報取得部130はロボット10等の各関節に対応するエンコーダー等から値を取得すればよい。
2.2 第1の補正処理部における補正処理の詳細
第1の補正処理部において行われる固定部についての力覚値補正処理について説明する。図10に示したように、ある座標系1において、並進力がF、モーメントがMで与えられている場合を考える(F,Mは例えば3次元ベクトル)。この際、座標系2として、座標系2から座標系1への原点の並進ベクトルがt、座標系2から座標系1への回転行列がRとなる座標系を考えると、上記の力を座標系2において観察したばあい、その並進力F’及びモーメントM’は下式(1)を満たす。なお2式目の右辺第2項はベクトルの外積を表す。
F’=RF
M’=RM+t×F ・・・・・(1)
ここで、図11に示したように、センサー座標系を基準とした場合に、位置(x,y,z)に質量mを有するものとモデル化できるエンドエフェクター12により、力覚センサー20にはたらく力を計算する。ここでは、図12に示したように、図10の座標系2としてセンサー座標系を考え、図10の座標系1として質量中心位置(x,y,z)を原点、Z軸方向が鉛直上向きとなる座標系を考える。
この場合、座標系1における上記のF,Mは質量mの物体にはたらく重力を考えればよいため、F=(0,0,−m)、M=(0,0,0)となる。また、図12のように座標系1,2で回転がない場合には、Rを考慮しなくてよく、上記のtはt=(x,y,z)となる。これにより、上式(1)に基づきF’=(0,0,−m)、M’=(−my,mx,0)となる。
つまり、図12の例では、センサー座標系において(x,y,z)の位置に質量mを有するエンドエフェクター12による力は、センサー座標系ではF’=(0,0,−m)、M’=(−my,mx,0)として観測される。これは、力覚センサー20にF’=(0,0,−m)という並進力、及びM’=(−my,mx,0)というモーメントがはたらくことに他ならない。よって、求められたF’及びM’の値を力覚値から除去することで、エンドエフェクター12による力覚値への影響を抑止することが可能になる。
また、座標系1,2で回転がある場合にはRまで考慮すればよい。図13でも座標系1のZ軸が鉛直上向きである点に変わりはなく、F=(0,0,−m)、M=(0,0,0)となる。ただし図13では、力覚センサー20が鉛直方向に対して傾いている他、X軸Y軸も座標系1とは異なっており、回転行列Rは座標系1に対するセンサー座標系のロール角、ピッチ角、及びヨー角の値に基づきその要素が決定されることになる。この場合も上式(1)により求めたF’及びM’に基づいて補正処理を行えばよい。
2.3 物理モデルの推定処理
次に本実施形態における物理モデルの推定処理について説明する。以下の説明では、物理モデルとは質量中心位置(力の作用点に相当)を表す(x,y,z)と、質量mにより表されるモデルとする。
2.3.1 基本的な手法
本実施形態の力覚センサー20は一般的に用いられる6軸力覚センサーであり、X軸Y軸Z軸のそれぞれの並進力であるFx,Fy,Fzと、各軸まわりのモーメントであるMx,My,Mzを力覚値として取得する。エンドエフェクター12により力を加えるような作業をしていなければ、力覚値はエンドエフェクター12に起因する力(狭義にはエンドエフェクター12にはたらく重力に対応する力)となり、本実施形態ではこの状態においてエンドエフェクター12の物理モデルを推定するものとする。
具体的には、力覚センサー20からの力覚値に基づいて、力の作用点を推定することになり、ここでは各平面への射影を用いて考えるものとする。まず、図14に示したようにXY平面における力を考える。力覚センサー20からは、X軸方向の並進力Fxと、Y軸方向の並進力Fyと、XY平面を垂直に貫くZ軸まわりのモーメントMzの値が取得されている。この場合、図14から明らかなように下式(2)が成り立つ。ここでFはエンドエフェクター12にはたらく力をXY平面へ射影した力の大きさに対応し、rは原点から力の作用線までの距離に対応する。θは図14に示した角度であり、力の作用線とY軸とのなす角度に対応する。
Fx=−Fsinθ
Fy=−Fcosθ
Mz=−r×F ・・・・・(2)
上式(2)を変形することで下式(3)が得られる。
上述したようにFx,Fy,Mzは力覚値として力覚センサー20から取得されるため、F,r,θは上式(3)に基づき求めることができる。しかし、力の大きさ(F)とその方向(rとθにより決定される)は定まる、つまり力の作用線を決定することはできるが、力の作用点までは決定できない。
これは3次元空間に拡張して考えれば、Fx,Fy,Mzに基づいて、図15に示すように力の作用点(質量中心位置)を含む1つの平面を決定することができるが、当該平面のどこに作用点があるかまでは決定できないということになる。
しかし、Fy,Fz,Mxからも図16(A)に示したように1つの平面が決定され、同様にFz,Fx,Myからも図16(B)に示したように1つの平面が決定される。各平面は質量中心位置を含むという条件で求められているものであるから、3つの平面の共通部分、つまり3平面の交点を質量中心位置として求めることが可能である。図16(B)の例であれば、B1に示した点が力の作用点、つまり質量中心位置となる。また、その際の力の大きさ(質量に相当)は、各平面での力ベクトルを合成したベクトルの大きさとすればよい。ここで力ベクトルとは、図15等に示した平面を決定する際に用いられた力の大きさ(上式(3)のF)、及び力の方向(上式(3)のr及びθ)により決定されるベクトルのことである。
つまり、Fx,Fy,Mzから決定されたXY平面での力ベクトル(図16(B)のB2)と、Fy,Fz,Mxから決定されたYZ平面での力ベクトル(図16(B)のB3)と、Fz,Fx,Myから決定されたZX平面での力ベクトル(図16(B)のB4)を合成したベクトルの大きさが求める質量mに相当する。
以上の処理により、未知であった物理モデル(x,y,z,m)を推定することができる。物理モデルが推定された後は、上述した固定部についての補正手法と同様に当該物理モデルとロボット10の姿勢情報を用いて上式(1)からF’とM’を求め、力覚値の補正処理を行えばよい。
なお、平面を表す一般的な式は、X軸,Y軸,Z軸の各切片をA,B,Cとすれば下式(4)、及びそれを変形した下式(5)となる。よって、第1の平面の切片をA1,B1,C1とし、第2の平面の切片をA2,B2,C2とし、第3の平面の切片をA3,B3,C3とすれば、質量中心位置(x,y,z)は下式(6)の連立方程式の解となり、下式(6)を行列を用いた式で表現した下式(7)が成り立つことになる。
つまり、質量中心位置は上式(7)を変形した下式(8)から求めることができる。
2.3.2 変形例
上記処理(例えば上式(8)を解く処理)により、質量中心位置を求めることができる。しかし、外力の方向が座標系(具体的には力覚センサーに設定されたセンサー座標系)の原点方向を向いているときには、質量中心位置を求めることができない。
具体的には、図17(A)に示した状況であり、モーメントMzの値が0となる。つまり力覚センサーから得られる情報量が少なくなり、適切な処理ができなくなる。これは図17(B)に示したように3軸のうちのいずれかが力の方向と一致するように、座標系を変換すると理解しやすい。図17(B)に示したように、座標系を構成するX’軸、Y’軸、Z’軸のうち、Y’軸と力の方向が一致する場合、X’Z’平面では、並進力Fx’、Fz’は両方0になり、Y’軸まわりのモーメントMy’も0となる。つまり、この平面において力覚値はなんら情報を有することはない。よって、実質的に情報を含む面は2面しかなく、図16(B)に示したように3つの平面の交点として求められる質量中心位置の推定はできない。
これは、上式(7)を考えれば明らかであり、力の方向が座標系の原点方向である場合には、行列Mのランクが下がることになり、逆行列M−1を求めることができない(Mが正則でない)。つまり、上式(8)から質量中心位置を求めることができないということになる。
以上のことから、本実施形態では一回の推定処理により質量中心位置を決定するのではなく、ロボット10の姿勢を変えて(エンドエフェクター12によりはたらく力の、センサー座標系における方向が変化するように姿勢を変えて)複数回の推定処理を行うとよい。姿勢変更は例えば、図18(A)の状態から図18(B)の状態への変更により行われる。
具体的には、質量中心位置の推定処理ができるか否かの判定を行い、推定できないと判定された場合には、姿勢を変更する。判定は上述したように、上式(7)で示した行列Mが正則であるか否かに基づいて行えばよい。そして、変更後の姿勢により再度質量中心位置の推定を行う。このようにすれば、質量中心位置の推定ができない場合にも適切に対応できる。推定精度を問題にしないのであれば、これにより質量中心位置を求めることができないという事態は回避できる。
ただし、力の方向が座標系の原点方向と完全に一致しない場合であっても、原点に近い位置を通る場合にはモーメントの値が極端に小さくなる。そのため、ノイズ等の影響が大きくなり、上式(8)を解いて一応の解を求めることはできるが、その精度に問題が残る。また、センサー等のノイズが非常に大きい場合等では、姿勢にかかわらず推定精度が低くなる可能性はある。
よって推定精度の向上を考慮するのであれば、推定不可と判定された場合に姿勢を変えてやり直すだけでなく、推定可能と判定され実際に質量中心位置を推定できた場合にも、姿勢変更及び再度の推定処理を行うとよい。例えば、少なくともk(kは2以上の整数)個の推定値を取得して、それらの平均等を最終的な質量中心位置とすればよい。このようにすれば、推定精度の向上が期待できる。
2.4 処理の詳細
図19のフローチャートを用いて本実施形態の補正処理の流れを説明する。この処理が開始されると、まず力覚センサー20からの出力値(補正処理前の力覚値)を取得する(ステップS101)。そして取得した力覚値に対して固定部に対応する補正処理を行う(ステップS102)。
ステップS102での固定部の補正処理の流れを図20のフローチャートに示す。固定部の補正処理では、まずロボット10の姿勢情報を取得する(ステップS201)。ここでロボット10の姿勢情報とは、当該ロボット10の設置状態を表す設置情報(例えば設置対象が床であるのか、壁や天井であるのかを表す情報であり、具体的には重力方向に対する角度情報等)と、ロボット10の関節部分の関節角の値等である。そして、姿勢情報と固定部パラメーター(上述したように固定部の物理モデルx,y,z,mに対応)とに基づいて、力覚値に対する補正量である固定部補正量を算出する(ステップS202)。固定部補正量とは具体的には上式(1)で示したF’やM’の要素に相当する。そして、ステップS101で取得した力覚値と、ステップS202で算出した固定部補正量に基づいて、固定部補正処理後の力覚値を出力する(ステップS203)。ステップS203の出力は図8の第1の補正処理部121の出力に対応する。
固定部に関する補正処理後の力覚値(ステップS102の処理の出力値)が得られたら、その値に基づいて上式(7)を求める(ステップS103)。具体的には上述したように、3軸の並進力及び各軸まわりのモーメントから、3つの平面を求め、それぞれの切片の値から行列M及びベクトルqを決めればよい。
行列Mが求められたら、Mが正則であるか否かの判定を行う(ステップS104)。上述したように、Mが正則でない場合とは、エンドエフェクター12のよる力の方向がセンサー座標系の原点方向に一致する場合であり、質量中心位置の推定ができない場合に対応する。よって、Mが正則でない場合(ステップS104でNoの場合)には、制御部110に対して姿勢変更を指示してステップS101に戻る。つまり、姿勢を変更した上で力覚値の取得からやり直すことになる。
一方、Mが正則の場合(ステップS104でYesの場合)には、Mの逆行列を求められるということであるから、上式(8)に従って質量中心位置を求めるとともに、図16(B)に示したように各平面上の力ベクトル(B2〜B4)の合成ベクトルの大きさとして質量mを求め、(x,y,z,m)を実行時パラメーターとする(ステップS106)。
次に、再度処理を行うかの判定を行う(ステップS107)。これは上述した精度向上等に関する判定である。例えば、少なくともk個(kは2以上の整数)の実行時パラメーターを求め、それらに基づいて最終的な実行時パラメーターを決定するという手法を用いるのであれば、ステップS107の判定はその時点で取得された実行時パラメーターの数がk以上であればNo、kより小さい場合にはYesとなる。ステップS107でYesの場合には、ステップS104でNoで合った場合と同様にステップS105に移行し、姿勢を変更した上でステップS101に戻り、力覚値の取得して上述した処理を行う。
ステップS107でNoの場合には、複数回の処理を行ったかの判定を行う(ステップS108)。ステップS108は実際には、複数の実行時パラメーターを求めたか否かの判定であり、ステップS104においてNoと判定されて姿勢変更が行われた場合であっても、取得された実行時パラメーターが1つのみであればNoと判定される。ステップS108でNoの場合には、求めておいた単一の実行時パラメーターを、そのままその後の補正処理に用いられる実行時パラメーターとして記憶する(ステップS109)。
ステップS108でYesの場合には、複数求められた実行時パラメーターが所定誤差以内にあるかの判定を行う(ステップS110)。本実施形態で用いている実行時パラメーターのうち位置を表す(x,y,z)はセンサー座標系における値であることを想定している。センサー座標系における質量中心位置(x,y,z)は、エンドエフェクター12自体の構成が変更されない限り、ロボット10の姿勢が変わったとしても一定のはずである。仮に、実行時パラメーターがセンサー座標系以外の座標系を用いて表現されていたとしても、その値をセンサー座標系に変換すれば、その値がロボット10の姿勢に依存しない特性に変わりはない。また、質量mについては、ロボット10がどのような姿勢であっても、またどのような座標系を用いたとしても、エンドエフェクター12自体の構成が変更されなければ一定値となるのは当然である。つまり、誤差が全く生じない理想的な状況であれば、複数回求められた実行時パラメーターは全て同じ値をとるはずである。現実には、力覚値や姿勢情報等に誤差が生じるため、全ての実行時パラメーターが一致するとは考えにくいが、それでもある程度近い値をとることが期待される。逆に言えば、所定誤差以上に値がばらついているのであれば、何らかの要因により推定した質量中心位置等は信頼性が低いと言うことになる。
以上のことから、実行時パラメーターが所定誤差以内の場合(ステップS110でYesの場合)には、求めた実行時パラメーターは信頼できるものとして、ステップS109に移行してそのときの実行時パラメーターを記憶する。ステップS109で記憶されるのは、複数の実行時パラメーターのうちの代表値であってもよいし、平均値等から求められたものであってもよい。
一方、ステップS110でNoの場合には、求めた実行時パラメーターは信頼できないということであるため、その際の実行時パラメーターは記憶せずに、エラーを出力して(ステップS111)処理を終了する。
以上の本実施形態では、制御システム100とは、ロボット(機械装置)10の制御システムであり、図8に示したようにロボット10のエンドエフェクター(機械機構)12に対応して設けられる力覚センサー20から力覚値を取得して、力覚値の補正処理を行う力覚値補正部120と、補正処理後の力覚値に基づいて、ロボット10の制御を行う制御部110を含む。そして力覚値補正部120は、ロボット10の複数の姿勢において得られた複数の力覚値に基づいて、補正処理を行う。
これにより、ロボット10の姿勢を変化させ、それぞれの姿勢で得られた力覚値に基づいて、力覚値の補正処理を行うことが可能になる。上述したように、力覚センサー20からの力覚値には、ロボット10の制御においては不要となる力に起因する要素も含まれ、具体的には力覚センサー20よりも先に設けられたエンドエフェクター12によるものが考えられる。ここで、エンドエフェクター12による力覚センサー20への影響はロボット10の姿勢により変動することが想定されるため、複数の姿勢を用いて補正処理を行うことで、異なる状況を複合的に用いた補正処理が可能になる。つまり、ロボット10の適正な制御のためには力覚値の補正処理が必要なところ、複数の姿勢を用いればより精度の高い補正処理を行うことが可能になる。この点から考えれば、本実施形態での複数の姿勢とは、エンドエフェクター12による力覚センサー20への影響が異なる複数の姿勢であることが望ましく、例えば図18(A)と図18(B)のように、ロボットの手首部分を回す等の変化をつけるとよい。
また、力覚値補正部120は、ロボット10の第1〜第N(Nは2以上の整数)の姿勢において得られた第1〜第Nの力覚値に基づいて、エンドエフェクター12の質量中心位置を推定し、推定した質量中心位置に基づいて、補正処理を行ってもよい。具体的には、力覚値補正部120は、エンドエフェクター12の質量、質量中心位置、及びロボット10の姿勢に基づいて、エンドエフェクター12により力覚センサー20に作用する力覚値を推定することで、補正処理を行ってもよい。
これにより、エンドエフェクター12の物理モデルとして質量中心位置(x,y,z)を用いることが可能になる。エンドエフェクター12を質量中心位置にある質量mの物体であるとモデル化できれば、当該エンドエフェクター12による力覚センサー20への影響は、図10及び上式(1)において説明したように、力学的に解析可能となる。上式(1)では、質量中心位置が並進ベクトルtに対応し、ロボット10の姿勢から回転Rが求められることになる。
また、力覚値補正部120は、ロボット10の第1の姿勢において得られた第1の力覚値に基づいて、エンドエフェクター12の質量中心位置を推定する処理を行い、制御部110は、力覚値補正部120により質量中心位置の推定が不可と判定された場合には、ロボット10の姿勢を第1の姿勢とは異なる第2の姿勢に変更する制御を行ってもよい。そして、力覚値補正部120は、制御部110によりロボット10が第2の姿勢となる制御が行われた後に取得された第2の力覚値に基づいて、エンドエフェクター12の質量中心位置を推定し、推定した質量中心位置に基づいて、補正処理を行う。
これにより、適切な質量中心位置の推定が可能になる。第1の姿勢とは図17(A)に示すように、エンドエフェクター12によりはたらく力の方向がセンサー座標系の原点を向いている場合であり、この場合上述したようにMが正則でないため、上式(8)を解くことができない。これは、エンドエフェクター12によりはたらく力の方向がセンサー座標系の原点を向いているという状況さえ回避すればよいため、ロボット10の姿勢を変更することで解決可能である。なお、上述したように、本実施形態における姿勢変更は推定ができない状況に限定して行われるものではなく、精度の向上を目的として必ず行われるものであってもよい。
また、力覚センサー20が、図9に示したようにX軸、Y軸及びZ軸の並進力Fx,Fy,Fzと、各軸まわりのモーメントMx,My,Mzを取得する6軸力覚センサーである場合に、力覚値補正部120は、Fx,Fy及びMzにより決定される第1の平面と、Fy,Fz及びMxにより決定される第2の平面と、Fz,Fx及びMyにより決定される第3の平面を求め、第1〜第3の平面の交点を質量中心位置として推定してもよい。具体的には、第1の平面のx切片をA1,y切片をB1、z切片をC1とし、第2の平面のx切片をA2,y切片をB2、z切片をC2とし、第3の平面のx切片をA3,y切片をB3、z切片をC3として、行列M及びベクトルqを上式(7)に示したものとした場合に、力覚値補正部120は、質量中心位置を表す3次元ベクトルpをMp=qに従って求めることで、質量中心位置を推定してもよい。
これにより、図15〜図16(B)、及び上式(6)〜(8)に示した手法により、質量中心位置を推定することが可能になる。
また、力覚値補正部120は、行列Mが正則でない場合に、質量中心位置の推定が不可であると判定してもよい。
これにより、図17(A)に示したように質量中心位置の推定ができない状況であるかを、Mが正則か否かに基づいて判定することが可能になる。推定不可とされた場合には、上述したように姿勢変更を行えばよく、こうすることで推定値(実行時パラメーター)がまったく得られないという状況を回避することができる。
また、力覚値補正部120は、図8に示したように質量中心位置及び、エンドエフェクター12の質量を含む情報を実行時パラメーターとして算出する実行時パラメーター算出部126と、算出された実行時パラメーターを記憶する実行時パラメーター記憶部127を含んでもよい。具体的には、力覚値補正部120は、実行時パラメーター記憶部127に記憶された実行時パラメーターを読み出し、実行時パラメーターとロボット10の姿勢とに基づいて、エンドエフェクター12が力覚センサー20に及ぼす力をオフセット値として算出し、算出したオフセット値により力覚値の補正処理を行う。
これにより、質量中心位置等の物理モデルを実行時パラメーターとして算出(推定)して、記憶することが可能になる。記憶した実行時パラメーターを用いて、図27(C)に示したように固定部と同様の補正処理を行うことで、物理モデルが未知のエンドエフェクター12についても適切に補正処理を行うことができる。
また、本実施形態において上述してきたように、機械装置は、ロボット10であってもよく、機械機構は、ロボット10のエンドエフェクター12であってもよい。その場合、力覚値補正部120は、ロボット10のエンドエフェクター12に対応して設けられる力覚センサー20から、ロボット10の複数の姿勢において得られた複数の力覚値を取得し、取得した複数の力覚値に基づいて力覚値の補正処理を行い、制御部110は、補正処理後の力覚値に基づいて、ロボット10の制御を行う。
ここで、ロボット10のエンドエフェクター12とは、ロボット10のエンドポイントに取り付けられる機器のことであり、ハンドやツール等を含む概念である。なお、機械装置が本実施形態で説明したロボット10以外の装置であってもよいことを考えれば、機械機構とはエンドエフェクター12に限定されず、他の機構も含む概念となる。
これにより、機械装置としてロボット10を用いることが可能になる。この場合、エンドエフェクター12自身による力覚センサー20への力を補正することができ、例えばロボット10のエンドエフェクター12にはたらく外力を用いた力制御(例えばインピーダンス制御)等が可能になる。
なお、本実施形態の制御システム100等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態の制御システム100等が実現される。具体的には、情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そして、CPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
3.第2の実施形態
第2の実施形態では、図5(A)、図5(B)に示したように、物理モデル化が困難なエンドエフェクター12を用いるケースについて説明する。なお、本実施形態の手法は、複雑な解析処理により物理モデル化を試みるものではなく、物理モデル化が可能か否かをシステムにより自動的に検出し、不可と判定された場合に従来のリセット処理に切り替えるというものである。
システム構成例については第1の実施形態と同様に図8で示されるため詳細な説明は省略する。本実施形態の補正処理を図21のフローチャートを用いて説明する。
図21から明らかなように、ステップS301〜ステップS310については図19のステップS101〜ステップS110と同様であるため詳細な説明は省略する。つまり、本実施形態においても、エンドエフェクター12の物理モデル化が可能であるか否かはまだわからないため、推定処理を試行することになる。推定処理の詳細については第1の実施形態と同様であるため詳細な説明は省略する。この際、推定処理が一回だけ、つまり取得される実行時パラメーターが1つだけでは、その実行時パラメーターにより表される物理モデルが適切か否かの判定をすることは困難である。よって実際には、複数回の推定処理を行い、そこから得られる複数の実行時パラメーターが所定誤差以内か否かを判定する(ステップS310)ことが想定される。このことから、本実施形態の処理では図21のステップS308を省略し、ステップS307の処理後は必ずステップS310に移行するものとしてもよい。
ステップS310において、実行時パラメーターが所定誤差以内の場合には、推定した物理モデルによりエンドエフェクター12が適切に表現されているということであるため、第1の実施形態と同様にその際の実行時パラメーターを記憶して(ステップS309)、物理モデルに基づく補正処理を行えばよい。
一方、ステップS310において実行時パラメーターが所定誤差よりも大きい場合には、図5(A)、図5(B)のようにエンドエフェクター12は物理モデル化が困難なものであるという判定をする。なぜなら、上述したように図5(A)ではケーブルの伸び具合やケーブルと床等の摩擦、図5(B)ではA1とA2の相対的位置関係の変化等により、エンドエフェクター12を表す物理モデルが頻繁に変化しうる。つまり、エンドエフェクター12が物理モデル化が可能なものであれば、第1の実施形態で上述したように求められた実行時パラメーターはある程度の誤差内に収まることが想定されるのに対して、物理モデル化が困難なエンドエフェクター12の場合には、仮にセンサー等に全く誤差がなかったとしても、状況次第で求められる実行時パラメーターが変化してしまう。このことから、求めた実行時パラメーターのばらつきが大きいのであれば、それはエンドエフェクター12自体が物理モデル化に適していないものであると判定することになる。
つまり、ステップS310でNoの場合には、エンドエフェクター12の物理モデル化は断念し、従来のリセット処理を行えばよい(ステップS311)。リセット処理の詳細を図22のフローチャートに示す。リセット処理が開始されると、まず作業時と同様の姿勢となるように制御部110に指示する(ステップS401)。作業時と同じ姿勢をとり、且つ実際の作業時とは異なり力を加えないようにすれば、その際に力覚値として検出される値(オフセット値)は、エンドエフェクター12に起因して力覚センサーにはたらく力を表すことになり、その値は作業時においても変化しないはずである。つまり、ロボット10全体の姿勢が作業時と同一になっている必要はなく、オフセット値が作業時と十分に近い値となる姿勢となっていればよい。
そして、指示に従って制御部110により姿勢変更が行われたら、姿勢変更後の力覚値をオフセット値として記憶する(ステップS402)。そして、ステップS402の後、作業の終了時まで、力覚センサー20から取得される力覚値に対して、オフセット値を除去するオフセット除去処理を行う(ステップS403)。
以上の本実施形態では、力覚値補正部120は、推定した質量中心位置が所定誤差以内ではないと判定された場合には、エラー処理を実行する。具体的には、力覚値補正部120により推定された質量中心位置が所定誤差以内ではないと判定された場合には、制御部110は、ロボット10の姿勢を所与の姿勢とする制御を行い、力覚値補正部120は、制御部110によりロボット10が所与の姿勢となる制御が行われた後の力覚値を取得し、取得した力覚値に対応するオフセット値を設定し、設定したオフセット値によるオフセット除去処理を、エラー処理として実行する。
これにより、図5(A)、図5(B)に示したように、エンドエフェクター12がそもそも物理モデル化できないような場合に、制御システム100が自動的にそのことを検出することが可能になり、さらに物理モデル化が不可であるとされた場合の例外処理を行うことが可能になる。なお、第1の実施形態で上述したように、制御システム100は質量中心位置が所定誤差以内か否かの判定を行うのみで、所定誤差以上であると判定された場合にはエラーを出力するだけであってもよい。その場合には、エラーに対する対応はユーザー側に委ねられることになる。ただし、本実施形態で説明したように、所定誤差以上の場合には自動的にリセット処理に移行するようにすれば、ユーザーが手動でシステム操作を行う頻度低減等が可能になり、利便性向上等が期待できる。
4.第3の実施形態
第3の実施形態では、図6(A)〜図6(C)に示したようにエンドエフェクター12が可変部を含む場合について説明する。本実施形態では、エンドエフェクター12としてハンドにより把持されるツール(図7(A)の12−2等)を考慮しなくてもよい場合、或いはツールを把持するがその把持位置が固定の場合等を想定しており、物理モデルが未知であったり、そもそも推定が不可であることはないものとする。つまり本実施形態では、エンドエフェクター12の形状、質量等は既知であるものの、例えば図6(B)に示したような指関節角の変化等により、当該エンドエフェクター12の物理モデルが変化する点を問題とする。
4.1 システム構成例
本実施形態のシステム構成例を図23に示す。第1の実施形態に比べて、力覚値補正部120の第2の補正処理部123、実行時パラメーター算出部126及び実行時パラメーター記憶部127が除かれ、第3の補正処理部122及び可変部パラメーター記憶部125が追加された構成となっている。
固定部パラメーター記憶部124は、エンドエフェクター12のうち固定部(図24における手のひら部分12−3等)の物理モデルに対応する固定部パラメーターを記憶する。そして、第1の補正処理部121は、固定部パラメーターと、姿勢情報取得部130からのロボット10の姿勢情報とに基づいて、固定部についての力覚値補正処理を行う。
可変部パラメーター記憶部125は、エンドエフェクター12のうち可変部(図24における指部分12−4等)の物理モデルに対応する可変部パラメーターを記憶する。そして、第3の補正処理部122は、可変部パラメーターと、姿勢情報取得部130からのロボット10の姿勢情報、及びエンドエフェクター12の姿勢情報とに基づいて、可変部についての力覚値補正処理を行う。
4.2 可変部に関する補正処理の詳細
固定部の補正処理として第1の実施形態において上述したように、可変部についても質量中心位置を原点とする座標系1を設定した場合に、センサー座標系(座標系2)から座標系1への並進ベクトルt及び回転行列Rを求めることができれば、力覚値の補正処理が可能になる。
ここで、説明を簡略化するために、図25(B)に示したように、図25(A)のうち力覚センサー20と、1本の指構造のみを考える。さらに、図26に示したように指構造を、指回転座標系の原点(図25(B)のC1)において、X軸まわりに回転可能な構造とし、その回転角をθとする。つまりここでは、指構造の他の部分には関節はないものとする。
この場合、指構造自体の物理モデルは既知であるため、指回転座標系の原点から質量中心位置(図25(B)のC2)までの並進ベクトルt2と、質量mはあらかじめ可変部パラメーターとして記憶されている。また、指回転座標系の原点C1は関節部分(つまり回転角θを規定する際の回転軸)であるため、センサー座標系の原点との相対位置は不変であり、センサー座標系の原点からC1への並進ベクトルt3も既知の可変部パラメーターとして記憶されている。また、センサー座標系と指回転座標系との間の回転は、指回転座標系がθの値に応じて回転することを考慮すれば未知であるが、θが所与の基準値である場合の座標系間のロール角・ピッチ角・ヨー角(u,v,w)は既知であり、同様に可変部パラメーターとして記憶されている。
つまり、可変部の動きを表すパラメーターθさえ決まれば、θ、t2、t3,u,v,wにより、センサー座標系における質量中心位置を表す変位ベクトル(センサー座標系の原点から質量中心位置へのベクトル)を求めることができ、当該変位ベクトルは図10等で示した並進ベクトルtに他ならない。一例としては、並進ベクトルt2に対して、θ及びu,v,wにより表される回転行列に基づいて座標変換を行いセンサー座標系におけるベクトルに変換し、変換後のベクトルとt3とのベクトルの和を求めることが考えられる。また、一般的には4×4の斉次行列の要素として求めてもよく、この場合並進及び回転の両方を行列により処理できるというメリットがある。
以上に示したように、可変部パラメーター(t2、t3,u,v,w)とエンドエフェクター12の姿勢情報(θ)から、センサー座標系を基準とした並進ベクトルt(質量中心位置x,y,zに相当)が求められ、また質量mについては既知の値をそのまま使うことができる。つまり、可変部についても固定部パラメーターに相当する値を算出することができるため、その後の処理は第1の実施形態において上述したように、上式(1)に基づいてF’及びM’を求め、求められたF’及びM’の値を力覚値から除去すればよい。このようにすることで、可変部による力覚値への影響を抑止することが可能になる。
以上の処理をまとめたものが図27(A)〜図27(C)である。第1の実施形態で上述した固定部については、図27(A)に示したように、(x,y,z,m)が固定部パラメーターとして記憶されており、ロボット10の姿勢情報に基づき回転行列Rが求められれば、固定部補正量を求めることができ、それにより補正処理が可能になる。それに対して可変部については、図27(B)に示したように、可変部パラメーターとして一例としては上述したように(t2、t3,u,v,w)が記憶されており、当該可変部パラメーターと、エンドエフェクター12(狭義には可変部)の姿勢情報θとに基づいて(x,y,z,m)を求める。そして、求めた(x,y,z,m)と回転行列Rとから可変部補正量を求めて補正処理を行う。
また、第1の実施形態に示した推定処理を行う場合には、事前にパラメーターを記憶するのではなく、図27(C)に示したように力覚値に基づいて(x,y,z,m)を推定することになる。推定結果が得られた後は、固定部と同様に回転行列Rから補正量を求めて補正処理を行うことになる。
4.3 処理の詳細
本実施形態の補正処理を図28のフローチャートを用いて説明する。この処理が開始されると、力覚センサー20からの出力値(補正処理前の力覚値)を取得する(ステップS501)。そして取得した力覚値に対して固定部に対応する補正処理を行う(ステップS502)。
ステップS502での固定部の補正処理については第1の実施形態で説明した図20と同様であるため、詳細な説明は省略する。次に可変部パラメーター(上記の例ではt2、t3,u,v,w)と指関節パラメーター(上記の例ではθ)に基づいて、補正用パラメーター(上記の例ではt=(x,y,z)とm)を求める(ステップS503)。そして求めた補正用パラメーターとロボット10の姿勢に基づいて可変部補正量を算出する(ステップS504)。ステップS504の処理は上記の例では、ロボット10の姿勢情報に基づいてRを求め、上式(1)によりF’とM’を求める処理に相当する。
そして、ステップS502の出力である固定部補正処理後の力覚値に対して、ステップS504で求めた可変部補正量による補正処理を行い(ステップS505)、その結果を補正処理後の力覚値として出力する(ステップS506)。ステップS506での出力は固定部及び可変部の両方の補正処理が行われたものであるため、エンドエフェクター12全体に関する補正処理が行われた力覚値となる。
以上の本実施形態では、制御システム100は図23に示したように、エンドエフェクター12が有する可変部(例えば図24の12−4)の姿勢情報を取得する姿勢情報取得部130を含む。そして、力覚値補正部120は、可変部の姿勢情報に基づいて、可変部の質量中心位置を推定して補正処理を行う。
また、以上の本実施形態では、制御システム100はロボット10の制御システムであり、ロボット10のエンドエフェクター12に対応して設けられる力覚センサー20から力覚値を取得して、力覚値の補正処理を行う力覚値補正部120と、補正処理後の力覚値に基づいて、ロボット10の制御を行う制御部110と、エンドエフェクター12が有する可変部の姿勢情報を取得する姿勢情報取得部130を含み、力覚値補正部120は、可変部の姿勢情報に基づいて、可変部の質量中心位置を推定して補正処理を行ってもよい。
これにより、図6(A)〜図6(C)に示したように、エンドエフェクター12が可変部を含む場合であっても、可変部の状態に応じてエンドエフェクター12の物理モデルを適切に求めて補正処理を行うことが可能になる。可変部の状態は当該可変部の姿勢情報により表すことができ、姿勢情報とは例えば図26に示した角度θ等である。なお、姿勢情報は可変部の可動部分(ロボットであれば関節部分)の数に対応してそのパラメーター数が決定されることになる。
また、姿勢情報取得部130は、ロボット10の姿勢情報を取得し、力覚値補正部120は、エンドエフェクター12に含まれる固定部(例えば図24の12−3)の質量中心位置と、ロボット10の姿勢情報に基づく第1の補正処理と、可変部の姿勢情報に基づいて推定された可変部の質量中心位置と、ロボット10の姿勢情報に基づく第2の補正処理を、補正処理として実行してもよい。
ここで、第1の補正処理は図23の第1の補正処理部121で行われる処理に対応し、第2の補正処理は第3の補正処理部122で行われる処理に対応する。
これにより、図24に示したように、エンドエフェクター12を可動部を持たない固定部と、可動部を有する可変部とに分割し、それぞれについて補正処理を行うことで、エンドエフェクター12全体の補正処理を行うことが可能になる。
また、力覚値補正部120は、固定部の質量中心位置と、固定部の質量を含む情報を固定部パラメーターとして記憶する固定部パラメーター記憶部124と、可変部に対応して設定された座標系における可変部の質量中心位置と、可変部の質量を含む情報を可変部パラメーターとして記憶する可変部パラメーター記憶部125を含んでもよい。
そして、力覚値補正部120は、固定部パラメーター記憶部124に記憶された固定部パラメーターを読み出し、固定部パラメーターとロボット10の姿勢情報とに基づいて、固定部が力覚センサー20に及ぼす力をオフセット値として算出し、算出したオフセット値により第1の補正処理を行う。また、力覚値補正部120は、可変部パラメーター記憶部125に記憶された可変部パラメーターを読み出し、可変部パラメーター、可変部の姿勢情報、及びロボット10の姿勢情報とに基づいて、可変部が力覚センサー20に及ぼす力をオフセット値として算出し、算出したオフセット値により第2の補正処理を行う。
これにより、固定部及び可変部のそれぞれについて、必要な情報をパラメーターとして記憶した上で、当該パラメーターを用いた補正処理を行うことが可能になる。具体的には図27(A)、図27(B)に示すようになり、固定部パラメーターは例えば質量中心位置(x,y,z)と質量mであり、可変部パラメーターとは可変部の構造に応じてその内容が変化するパラメーターである。固定部については図27(A)に示したように、固定部パラメーターに対して、姿勢情報から得られる回転行列Rによる変換を行い、F’及びM’をオフセット値として求める。また、可変部については図27(B)に示したように、可変部パラメーターに対して、可変部の姿勢情報を用いた処理を行うことで、質量中心位置(x,y,z)と質量mを求め、その後固定部と同様に回転行列Rによる変換を行い、F’及びM’をオフセット値として求める。つまり、可変部パラメーターとは、可変部の姿勢情報と当該可変部パラメーターを合わせることで、質量中心位置と質量とを推定できるだけの情報であり、一例は上述したように、可変部座標系(狭義には指回転座標系)の原点から質量中心位置までのベクトルt2と、センサー座標系の原点から可変部座標系の原点までのベクトルt3と、センサー座標系と可変部座標系との間の回転を表すロール、ピッチ、ヨーの各角度情報が考えられる。
また、本実施形態において上述してきたように、機械装置は、ロボット10であってもよく、機械機構は、ロボット10のエンドエフェクター12であってもよく、可変部は、エンドエフェクター12を構成するパーツであってもよい。その場合、姿勢情報取得部130は、エンドエフェクター12のパーツである可変部の姿勢情報を取得し、力覚値補正部120は、ロボット10のエンドエフェクター12に対応して設けられる力覚センサー20から力覚値を取得し、可変部の姿勢情報に基づいて、可変部の質量中心位置を推定して力覚値の補正処理を行い、制御部110は、補正処理後の力覚値に基づいて、ロボット10の制御を行うことになる。
これにより、本実施形態において説明した制御システム100についても、ロボットシステムに対して適用することができ、具体的にはロボット10の力制御等を行うことが可能になる。
5.第4の実施形態
第1〜第3の実施形態で説明した手法は、それぞれ独立に用いられるものに限定されず、複数を組み合わせてもよい。ここでは図4(A)に示したように、可変の指構造を有するハンドによりツールが把持され、且つ当該ツールの把持位置に自由度がある場合、さらに把持対象ツールの候補として図5(A)等に示した物理モデル化が困難なものも含まれる場合について考える。この場合には、エンドエフェクター12が可変部を有するため、第3の実施形態で説明した手法を用い、さらに物理モデルが未知であるため第1の実施形態で説明した推定手法を用いる必要がある。さらに物理モデル化そのものが不可能な場合もあり得るため、推定の可否を判定する第2の実施形態の手法も用いるとよい。
5.1 システム構成例
本実施形態のシステム構成例を図29に示す。図29に示したように、制御システム100の力覚値補正部120は、図8及び図23に示した各部を含む。なお、図23には不図示であるが、力覚値補正部120は、実行時パラメーター算出部126での算出結果に基づいて、制御部110に対して姿勢の変更を指示する姿勢変更指示部を含んでもよい。姿勢変更指示部は、第1の実施形態において上述した図8の力覚値補正部120に含まれてもよいものである。
第1の補正処理部121は、第3の補正処理部122に接続される。第3の補正処理部122は、第2の補正処理部123と、実行時パラメーター算出部126に接続される。実行時パラメーター算出部126は、実行時パラメーター記憶部127に接続される。
力覚値補正部120が姿勢変更指示部を含む場合、当該姿勢変更指示部は、実行時パラメーター算出部126での算出処理の結果に基づいて、制御部110に対してロボット10の姿勢変更を指示する。具体的には、実行時パラメーターの算出が不可と判定された場合、或いは算出した実行時パラメーターとは異なる姿勢での実行時パラメーターを求めたい場合等に、姿勢変更指示部は制御部110に対して姿勢変更を指示することになる。
5.2 処理の詳細
本実施形態の補正処理を図30のフローチャートを用いて説明する。この処理が開始されると、力覚センサー20からの出力値(補正処理前の力覚値)を取得する(ステップS601)。そして取得した力覚値に対して固定部及び可変部に対応する補正処理を行う(ステップS602)。ステップS602での固定部の補正処理については第1の実施形態で説明した図20と同様であるため、詳細な説明は省略する。また、可変部の補正処理については、第3の実施形態で説明した図28のステップS503〜ステップS506と同様である。
その後のステップS603〜ステップS611については、第2の実施形態で説明した図21のステップS303〜ステップS311と同様である。つまり、第1〜第3の実施形態を組み合わせた本実施形態の処理手順の一例としては、まず固定部・可変部に対する補正処理を行い、その補正処理後の力覚値に基づいて推定処理を行う。そして推定処理の結果からエンドエフェクター12の物理モデル化の可否を判定し、物理モデル化が可能であれば推定結果を用いて補正処理を行う。一方、物理モデル化が不可であれば物理モデルを用いた補正処理をあきらめ、リセット処理により補正処理を行うことになる。
以上、本発明を適用した4つの実施の形態1〜4およびその変形例について説明したが、本発明は、各実施の形態1〜4やその変形例そのままに限定されるものではなく、実施段階では、発明の要旨を逸脱しない範囲内で構成要素を変形して具体化することができる。また、上記した各実施の形態1〜4や変形例に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、各実施の形態1〜4や変形例に記載した全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態や変形例で説明した構成要素を適宜組み合わせてもよい。また、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能である。