リンクと、前記リンクの関節と、を有する指を備えたロボットハンドの制御装置において、前記関節の角度検出値である関節角度検出値に基づいて、前記指が被接触体に接触した時における関節角度、関節速度、関節加速度である前記関節の状態を推定する接触時関節状態推定器と、前記指が前記被接触体に接触していない時における前記関節の状態を推定する非接触時関節状態推定器と、前記関節角度検出値と、前記接触時関節状態推定器が出力する接触時関節状態推定値と、前記非接触時関節状態推定器が出力する非接触時関節状態推定値と、に基づいて、前記指が前記被接触体に接触したか否かを判定する接触判定器と、前記接触判定器が出力する判定結果が接触状態の場合、前記接触時関節状態推定値に基づいて、前記関節に印加されるトルク外乱を推定するトルク外乱推定器と、前記接触判定結果が接触状態の場合、前記接触時関節状態推定値と、前記トルク外乱推定器が出力するトルク外乱推定値と、に基づいて、前記被接触体の剛性を推定する剛性推定器と、前記接触判定結果が接触状態の場合、前記関節角度検出値と、前記剛性推定値と、に基づいて、前記関節の制御剛性を、前記指が前記被接触体の押し込み状態を維持できる最小値に演算し、前記接触判定結果が非接触状態の場合、前記関節の制御剛性を、予め推定された前記指が前記被接触体に接触した状態である場合における前記関節の制御剛性より大きな値に演算する制御剛性演算器と、前記制御剛性演算器が出力する制御剛性演算値に基づいて、前記関節を駆動する関節モータを制御する制御器と、を備えるロボットハンドの制御装置。前記ロボットハンドの指は、第1関節、第2関節、第3関節を備え、前記被接触体は、家電のキー又は楽器の鍵盤若しくはボタンと弾性体とを備え、前記制御装置は、前記接触判定結果が接触状態の場合、前記接触時関節状態推定値に基づいて、前記被接触体が押し込み底に到達したか否かを判定する到達判定器をさらに備え、前記制御剛性演算器は、前記接触判定結果が非接触状態の場合、前記剛性推定値を前記第1関節及び前記第2関節回りの回転剛性に等価変換した値よりも大きく、前記指の第1関節及び第2関節の制御剛性を演算し、前記接触判定結果が接触状態の場合、前記剛性推定値を前記第1関節及び前記第2関節回りの回転剛性に等価変換した値と略等しい値に、前記第1関節及び第2関節の制御剛性を演算し、かつ前記到達判定器が出力する到達判定結果が前記押し込み底に非到達状態の場合、前記剛性推定値を前記第3関節回りの回転剛性に等価変換した値よりも大きな値に、前記第3関節の制御剛性を演算し、前記到達判定結果が前記押し込み底に到達状態の場合、前記剛性推定値を前記第3関節回りの回転剛性に等価変換した値と等しい値に、前記第3関節の制御剛性を演算する請求項1に記載のロボットハンドの制御装置。前記接触判定器は、前記関節角度から前記接触時関節状態推定値の成分である接触時関節角度推定値を減算した接触時関節角度推定誤差の絶対値の時間平均値が、前記関節角度から前記非接触時関節状態推定値の成分である非接触時関節角度推定値を減算した非接触時関節角度推定誤差の絶対値の時間平均値より小さい場合、接触状態であると判定し、それ以外の場合は非接触状態であると判定する請求項1又は2に記載のロボットハンドの制御装置。前記トルク外乱推定器は、前記トルク外乱推定値を[数49]により算出する請求項1乃至3のいずれか1項に記載のロボットの制御装置。ただし、記号の意味は以下の通りであり、d^、q^、fc^、Tはベクトル、Jは行列である。d^:トルク外乱推定値J:慣性行列fc^:接触時の非線形力の推定値接触時非線形力推定値q^:接触時の関節の状態の推定値一般化座標推定値T:関節モータのトルク前記剛性推定器は、前記剛性推定値を[数50]により算出する請求項2乃至4のいずれか1項に記載のロボットハンドの制御装置。ただし、記号の意味は以下の通りである。k^:被接触体の剛性推定値N/mm1:第1関節の質量kgJ10:第1関節の慣性モーメントkgm2θ1:第1関節の角度radθ2:第2関節の角度radθ3:第3関節の角度radm:キー等の質量kgg:重力加速度m/s2、l1:第1リンクの長さml2:第2リンクの長さml3:第3リンクの長さml10:第1リンクの重心と第1関節との距離ml20:第2リンクの重心と第2関節との距離ml30:第3リンクの重心と第3関節との距離mT1:第1関節の関節モータが発生する反時計回りを正としたトルク第1関節モータトルクNmTd1^:第1関節に加わる反時計回りを正としたトルク外乱の推定値第1関節トルク外乱推定値Nmy0:被接触体を支持する弾性体の自然長前記到達判定器は、前記関節角度から前記接触時関節状態推定値の成分である接触時関節角度推定値を減算した接触時関節角度推定誤差の時間平均値と、前記関節角度から前記非接触時関節状態推定値の成分である非接触時関節角度推定値を減算した非接触時関節角度推定誤差の時間平均値との両方が発散した場合、前記指が前記被接触体の押し込み底に到達したと判定し、それ以外の時は到達していないと判定する請求項2乃至5のいずれか1項に記載のロボットハンドの制御装置。前記制御剛性演算器は、前記第1関節、第2関節及び第3関節の制御剛性演算値を[数51]により演算する請求項2乃至6のいずれか1項に記載のロボットハンドの制御装置。ただし、記号の意味は以下の通りである。k1:第1関節の制御剛性第1関節制御剛性Nm/radk2:第2関節の制御剛性第2関節制御剛性Nm/radk3:第3関節の制御剛性第3関節制御剛性Nm/radk1n:非接触時の第1関節制御剛性Nm/radk2n:非接触時の第2関節制御剛性Nm/radk3n:押し込み底未到達時の第3関節制御剛性Nm/radk10:第1関節回りにおいて被接触体の剛性を等価変換した値第1関節等価制御剛性Nm/radk20:第2関節回りにおいて被接触体の剛性を等価変換した値第2関節等価制御剛性Nm/radk30:第3関節回りにおいて被接触体の剛性を等価変換した値第3関節等価制御剛性Nm/radk^:キー剛性推定値N/mk:キー剛性c1:第1制御剛性のパラメータc2:第2制御剛性のパラメータc3:第3制御剛性のパラメータθ1:第1関節の角度検出値[rad]θ2:第2関節の角度検出値[rad]θ3:第3関節の角度検出値[rad]前記第1関節を駆動する関節モータは、[数52]で表される第1関節モータトルクT1を発生し、前記第2関節を駆動する関節モータは、[数53]で表される第2関節モータトルクT2を発生し、前記第3関節を駆動する関節モータは、[数54]で表される第3関節モータトルクT3を発生する請求項2乃至7のいずれか1項に記載のロボットハンドの制御装置。ただし、記号の意味は以下の通りである。k1:第1関節の制御剛性Nm/radk2:第2関節の制御剛性Nm/radk3:第3関節の制御剛性Nm/radd1:第1関節における制御減衰Nms/radd2:第2関節における制御減衰Nms/radd3:第3関節における制御減衰Nms/radl10:第1リンクの重心と第1関節の距離ml20:第2リンクの重心と第2関節の距離ml30:第3リンクの重心と第3関節の距離ml1:第1リンクの長さml2:第2リンクの長さml3:第3リンクの長さmm1:第1関節の質量kgθ1:第1関節の角度radθ1^:第1関節の角度推定値radm2:第2関節の質量kgθ2:第2関節の角度radθ2^:第2関節の角度推定値radm3:第3関節の質量kgθ3:第3関節の角度radθ3^:第3関節の角度推定値radm:キー等の質量kgg:重力加速度m/s2Td1^:第1関節に加わる反時計回りを正としたトルク外乱の推定値NmTd2^:第2関節に加わる反時計回りを正としたトルク外乱の推定値NmTd3^:第3関節に加わる反時計回りを正としたトルク外乱の推定値Nmθ1r:第1関節の角度指令radθ2r:第2関節の角度指令radθ3r:第3関節の角度指令rad特許文献1のロボットハンドは、関節の剛性が予め定められているので、硬さの異なる被接触体に柔軟に対応することができない。特許文献2のロボットハンドは、当該ロボットハンドの先端に探触子を設ける必要があり、構成が煩雑になる。本発明の目的は、このような問題を解決するためになされたものであり、簡易な構成で硬さの異なる被接触体に対応することができるロボットハンドの制御装置を提供することである。本発明の一形態に係るロボットハンドの制御装置は、リンクと、前記リンクの関節と、を有する指を備えたロボットハンドの制御装置において、前記関節の角度検出値である関節角度検出値に基づいて、前記指が被接触体に接触した時における関節角度、関節速度、関節加速度である前記関節の状態を推定する接触時関節状態推定器と、前記指が前記被接触体に接触していない時における前記関節の状態を推定する非接触時関節状態推定器と、前記関節角度検出値と、前記接触時関節状態推定器が出力する接触時関節状態推定値と、前記非接触時関節状態推定器が出力する非接触時関節状態推定値と、に基づいて、前記指が前記被接触体に接触したか否かを判定する接触判定器と、前記接触判定器が出力する判定結果が接触状態の場合、前記接触時関節状態推定値に基づいて、前記関節に印加されるトルク外乱を推定するトルク外乱推定器と、前記接触判定結果が接触状態の場合、前記接触時関節状態推定値と、前記トルク外乱推定器が出力するトルク外乱推定値と、に基づいて、前記被接触体の剛性を推定する剛性推定器と、前記接触判定結果が接触状態の場合、前記関節角度検出値と、前記剛性推定値と、に基づいて、前記関節の制御剛性を、前記指が前記被接触体の押し込み状態を維持できる最小値に演算し、前記接触判定結果が非接触状態の場合、前記関節の制御剛性を、予め推定された前記指が前記被接触体に接触した状態である場合における前記関節の制御剛性より大きな値に演算する制御剛性演算器と、前記制御剛性演算器が出力する制御剛性演算値に基づいて、前記関節を駆動する関節モータを制御する制御器と、を備える。前記ロボットハンドの指は、第1関節、第2関節、第3関節を備え、前記被接触体は、家電のキー又は楽器の鍵盤若しくはボタンと弾性体とを備え、前記制御装置は、前記接触判定結果が接触状態の場合、前記接触時関節状態推定値に基づいて、前記被接触体が押し込み底に到達したか否かを判定する到達判定器をさらに備え、前記制御剛性演算器は、前記接触判定結果が非接触状態の場合、前記剛性推定値を前記第1関節及び前記第2関節回りの回転剛性に等価変換した値よりも大きく、前記指の第1関節及び第2関節の制御剛性を演算し、前記接触判定結果が接触状態の場合、前記剛性推定値を前記第1関節及び前記第2関節回りの回転剛性に等価変換した値と略等しい値に、前記第1関節及び第2関節の制御剛性を演算し、かつ前記到達判定器が出力する到達判定結果が前記押し込み底に非到達状態の場合、前記剛性推定値を前記第3関節回りの回転剛性に等価変換した値よりも大きな値に、前記第3関節の制御剛性を演算し、前記到達判定結果が前記押し込み底に到達状態の場合、前記剛性推定値を前記第3関節回りの回転剛性に等価変換した値と等しい値に、前記第3関節の制御剛性を演算すること、が好ましい。前記接触判定器は、前記関節角度から前記接触時関節状態推定値の成分である接触時関節角度推定値を減算した接触時関節角度推定誤差の絶対値の時間平均値が、前記関節角度から前記非接触時関節状態推定値の成分である非接触時関節角度推定値を減算した非接触時関節角度推定誤差の絶対値の時間平均値より小さい場合、接触状態であると判定し、それ以外の場合は非接触状態であると判定すること、が好ましい。前記トルク外乱推定器は、前記トルク外乱推定値を[数1]により算出すること、が好ましい。ただし、記号の意味は以下の通りであり、d^、q^、fc^、Tはベクトル、Jは行列である。d^:トルク外乱推定値J:慣性行列fc^:接触時の非線形力の推定値接触時非線形力推定値q^:接触時の関節の状態の推定値一般化座標推定値T:関節モータのトルク前記剛性推定器は、前記剛性推定値を[数2]により算出すること、が好ましい。ただし、記号の意味は以下の通りである。k^:被接触体の剛性推定値N/mm1:第1関節の質量kgJ10:第1関節の慣性モーメントkgm2θ1:第1関節の角度radθ2:第2関節の角度radθ3:第3関節の角度radm:キー等の質量kgg:重力加速度m/s2、l1:第1リンクの長さml2:第2リンクの長さml3:第3リンクの長さml10:第1リンクの重心と第1関節との距離ml20:第2リンクの重心と第2関節との距離ml30:第3リンクの重心と第3関節との距離mT1:第1関節の関節モータが発生する反時計回りを正としたトルク第1関節モータトルクNmTd1^:第1関節に加わる反時計回りを正としたトルク外乱の推定値第1関節トルク外乱推定値Nmy0:被接触体を支持する弾性体の自然長前記到達判定器は、前記関節角度から前記接触時関節状態推定値の成分である接触時関節角度推定値を減算した接触時関節角度推定誤差の時間平均値と、前記関節角度から前記非接触時関節状態推定値の成分である非接触時関節角度推定値を減算した非接触時関節角度推定誤差の時間平均値との両方が発散した場合、前記指が前記被接触体の押し込み底に到達したと判定し、それ以外の時は到達していないと判定すること、が好ましい。前記制御剛性演算器は、前記第1関節、第2関節及び第3関節の制御剛性演算値を[数3]により演算すること、が好ましい。ただし、記号の意味は以下の通りである。k1:第1関節の制御剛性第1関節制御剛性Nm/radk2:第2関節の制御剛性第2関節制御剛性Nm/radk3:第3関節の制御剛性第3関節制御剛性Nm/radk1n:非接触時の第1関節制御剛性Nm/radk2n:非接触時の第2関節制御剛性Nm/radk3n:押し込み底未到達時の第3関節制御剛性Nm/radk10:第1関節回りにおいて被接触体の剛性を等価変換した値第1関節等価制御剛性Nm/radk20:第2関節回りにおいて被接触体の剛性を等価変換した値第2関節等価制御剛性Nm/radk30:第3関節回りにおいて被接触体の剛性を等価変換した値第3関節等価制御剛性Nm/radk^:キー剛性推定値N/mk:キー剛性c1:第1制御剛性のパラメータc2:第2制御剛性のパラメータc3:第3制御剛性のパラメータθ1:第1関節の角度検出値[rad]θ2:第2関節の角度検出値[rad]θ3:第3関節の角度検出値[rad]前記第1関節を駆動する関節モータは、[数4]で表される第1関節モータトルクT1を発生し、前記第2関節を駆動する関節モータは、[数5]で表される第2関節モータトルクT2を発生し、前記第3関節を駆動する関節モータは、[数6]で表される第3関節モータトルクT3を発生すること、が好ましい。ただし、記号の意味は以下の通りである。k1:第1関節の制御剛性Nm/radk2:第2関節の制御剛性Nm/radk3:第3関節の制御剛性Nm/radd1:第1関節における制御減衰Nms/radd2:第2関節における制御減衰Nms/radd3:第3関節における制御減衰Nms/radl10:第1リンクの重心と第1関節の距離ml20:第2リンクの重心と第2関節の距離ml30:第3リンクの重心と第3関節の距離ml1:第1リンクの長さml2:第2リンクの長さml3:第3リンクの長さmm1:第1関節の質量kgθ1:第1関節の角度radθ1^:第1関節の角度推定値radm2:第2関節の質量kgθ2:第2関節の角度radθ2^:第2関節の角度推定値radm3:第3関節の質量kgθ3:第3関節の角度radθ3^:第3関節の角度推定値radm:キー等の質量kgg:重力加速度m/s2Td1^:第1関節に加わる反時計回りを正としたトルク外乱の推定値NmTd2^:第2関節に加わる反時計回りを正としたトルク外乱の推定値NmTd3^:第3関節に加わる反時計回りを正としたトルク外乱の推定値Nmθ1r:第1関節の角度指令radθ2r:第2関節の角度指令radθ3r:第3関節の角度指令rad以上、説明したように、本発明によると、簡易な構成で硬さの異なる被接触体に対応することができるロボットハンドの制御装置を提供することができる。以下、本発明を実施するための最良の形態について、添付図面を参照しながら説明する。但し、本発明が以下の実施形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。本発明の実施形態に係るロボットハンドの制御装置以下、単に制御装置と云う場合がある。は、例えば家電のキー等を操作する場合又はピアノの鍵盤やトランペットのボタン等を操作するロボットハンドを制御するために良好に適用される。但し、当該制御装置は、家電のキー操作やピアノの鍵盤操作やトランペットのボタン操作等のように、押圧動作を伴う被接触体への接触に限らず、被接触体を把持する場合等にも良好に適用できる。ちなみに、本実施形態の被接触体は、家電のキー等又は楽器の鍵盤若しくはボタン等と、これらを接触前の位置に復帰させる弾性体と、を備えたものである。先ず、当該制御装置によって制御されるロボットハンドの構成を説明する。図2は、ロボットハンドの指機構を示すフリーボディー図である。指機構は、第1リンク201と、第2リンク203と、第3リンク205と、を備える。第1リンク201と第2リンク203とは、第1関節202を介して動作可能に連結されている。第2リンク203と第3リンク205とは、第2関節204を介して動作可能に連結されている。第3リンク205は、第3関節206を介して動作可能に例えばベースに連結されている。第1関節202、第2関節204、第3関節206それぞれは関節モータ不図示を備え、当該関節モータの回転駆動により第1関節角度θ1、第2関節角度θ2、第3関節角度θ3を変化させてキー207を操作する。ここで、本実施形態の指機構は、図2に示すように、パソコンのキーボードのキー、電化製品の操作部に設置されたボタン、鍵盤楽器の鍵盤等であるキー207を操作する。キー207は、バネ208によって支持されている。次に、当該指機構を制御する制御装置及びその周辺装置の構成を説明する。図1は、制御装置及びその周辺装置を示す機能ブロック図である。図1に示すように、制御装置130の周辺装置として、関節角度指令発生器110と、制御対象120と、を備える。関節角度指令発生器110は、制御装置130から入力されるキー接触判定値とキー底到達判定値とに基づいて、指機構122がキー207を押す際の第1関節角度θ1、第2関節角度θ2、第3関節角度θ3の目標値である関節角度指令を、第1リンク201がキー207と接触する前、接触して押している間、及び押したキー207がキー底に到達した後に対して生成し出力する。ここで、キー接触判定値とは、キー207が第1リンク201と接触しているか否かを判定した結果である。キー底到達判定値とは、押されたキー207がキー底に到達したか否かを判定した結果である。制御対象120は、一般的なロボットハンドである。制御対象120は、指のメカ機構である指機構122と、制御装置130から入力されるモータ電流に基づいて、第1関節202、第2関節204、第3関節206それぞれを駆動する関節モータ121と、第1関節角度θ1、第2関節角度θ2、第3関節角度θ3を検出し関節角度検出値として出力する関節角度検出器123と、を備える。制御装置130は、キー接触時関節状態推定器131と、キー非接触時関節状態推定器132と、キー接触判定器133と、トルク外乱推定器134と、剛性推定器135と、キー底到達判定器136と、制御剛性演算器137と、制御器138と、を備える。キー接触時関節状態推定器131は、制御対象120の関節角度検出器123から入力される関節角度検出値第1関節角度θ1、第2関節角度θ2、第3関節角度θ3等を用いて導出した、第1リンク201がキー207に接触している間における運動方程式に基づいて、関節角度、関節速度、関節加速度即ち、関節の状態を推定しキー接触時関節状態推定値として出力する。キー非接触時関節状態推定器132は、制御対象120の関節角度検出器123から入力される関節角度検出値等を用いて導出した、第1リンク201がキー207に接触していない間における運動方程式に基づいて、関節角度、関節速度、関節加速度を推定しキー非接触時関節状態推定値として出力する。キー接触判定器133は、制御対象120の関節角度検出器123から入力される関節角度検出値と、キー接触時関節状態推定器131から入力されるキー接触時関節状態推定値と、キー非接触時関節状態推定器132から入力されるキー非接触時関節状態推定値と、に基づいて、キー接触時における第1関節角度推定誤差θ1c~キー接触時における一般化座標推定誤差q1~=q1-q1^の第1成分と、キー非接触時における第1関節角度推定誤差θ1nc~キー非接触時における一般化座標推定誤差q1~=q1-q1^の第1成分と、を算出する。キー接触判定器133は、キー接触時における第1関節角度推定誤差θ1c~の絶対値がキー非接触時における第1関節角度推定誤差θ1nc~の絶対値より小さい場合absθ1c~<absθ1nc~、第1リンク201はキー207に接触していると判定し、それ以外の場合は接触していないと判定し、その判定結果をキー接触判定結果として出力する。トルク外乱推定器134は、キー接触判定器133から入力されるキー接触判定結果が、第1リンク201がキー207に接触しているとの判定結果のとき、キー接触時関節状態推定器131から入力されるキー接触時関節状態推定値に基づいて、第1関節202、第2関節204、第3関節206それぞれに掛かるトルク外乱を推定し、第1関節トルク外乱推定値Td1^、第2関節トルク外乱推定値Td2^、第3関節トルク外乱推定値Td3^として出力する。一方、トルク外乱推定器134は、キー接触判定器133から入力されるキー接触判定結果が、第1リンク201がキー207に接触していないとの判定結果のとき、何も出力しない。剛性推定器135は、第1リンク201がキー207に接触している場合のみに、トルク外乱推定器134から入力されるトルク外乱推定値第1関節トルク外乱推定値Td1^、第2関節トルク外乱推定値Td2^、第3関節トルク外乱推定値Td3^と、キー接触時関節状態推定器131から入力されるキー接触時関節状態推定値と、に基づいて、被接触体の剛性本実施形態では、ばね208のばね定数を推定し、剛性推定値k^として出力する。キー底到達判定器136は、接触判定器133から入力されるキー接触判定結果が、第1リンク201がキー207に接触しているとの判定結果のとき、キー接触時関節状態推定器131から入力されるキー接触時関節状態推定値の絶対値が発散したら、キー207がキー底に到達したと判定し、それ以外の場合はキー底に到達していないと判定し、その判定結果をキー底到達判定結果として出力する。制御剛性演算器137は、関節角度検出器123から入力される関節角度検出値と、キー接触判定器133から入力されるキー接触判定結果と、剛性推定器135から入力される剛性推定値k^と、キー底到達判定器136から入力されるキー底到達判定結果と、に基づいて、第1リンク201がキー207に接触しているか否か、キー207に接触している場合はキー底に到達しているか否かを判定し、この判定結果に応じた、第1関節202、第2関節204、第3関節206それぞれの制御剛性を、剛性推定値k^と関節角度検出値とに基づいて演算し、制御剛性演算値として出力する。ここで、制御剛性とは、関節のメカ機構による剛性と、関節が備える関節モータや減速機等の剛性と、を加えた剛性のことである。制御器138は、関節角度姿勢発生器110から入力される関節角度指令である、第1関節角度θ1、第2関節角度θ2、第3関節角度θ3の目標値と、制御剛性演算器137から入力される制御剛性演算値と、を実現するべく、第1関節角度θ1、第2関節角度θ2、第3関節角度θ3それぞれを制御する制御ゲインを設定し、その制御ゲインに基づいて算出されたモータ電流を出力する。なお、制御装置130は、電気電子プログラマブル電子制御系として実現する。例えば、制御装置130は、演算処理等を行うCPUCentralProcessingUnit、CPUによって実行される演算プログラム等が記憶されたROMReadOnlyMemory、処理データ等を一時的に記憶するRAMRandomAccessMemory等からなるマイクロコンピュータを中心にして、ハードウェア構成されている。また、ASICApplicationSpecificIntegratedCircuit等のハードウェアにより、制御装置130の各器を実現しても良い。次に、制御装置130を構成する各機能ブロックの詳細な動作原理を導出して説明する。先ず、図2を用いて被接触体及び指機構122の運動方程式を導出する。図2より被接触体の運動方程式は[数7]と導出できる。ただし、記号の意味は以下の通りである。y0:図2の上方向を正としたばね208の自然長my1:第3関節206を基準とし、図2の上方向を正とした第1リンク201の先端指先の垂直位置指先垂直位置mf:図2の上方向を正とした打鍵力Nm:キー質量kgg:重力加速度m/s2k:ばね208の剛性N/m次に、指機構122の運動方程式を解析力学の手法に基づいて導出する。指機構122の運動エネルギーK及びポテンシャルエネルギーUは、[数8]及び[数9]と導出できる。ただし、記号の意味は以下の通りである。m1:第1関節202の質量第1関節質量kgm2:第2関節204の質量第2関節質量kgm3:第3関節206の質量第3関節質量kgθ1:第1関節202の角度第1関節角度radθ2:第2関節204の角度第2関節角度radθ3:第3関節206の角度第3関節角度radx10:第3関節206を基準とし、図2の左方向を正とした第1リンク201の重心の水平位置第1リンク重心水平位置my10:第3関節206を基準とし、図2の上方向を正とした第1リンク201の重心の垂直位置第1リンク重心垂直位置mx20:第3関節206を基準とし、図2の左方向を正とした第2リンク203の重心の水平位置第2リンク重心水平位置my20:第3関節206を基準とし、図2の上方向を正とした第2リンク203の重心の垂直位置第2リンク重心垂直位置mx30:第3関節206を基準とし、図2の左方向を正とした第3リンク205の重心の水平位置第3リンク重心水平位置my30:第3関節206を基準とし、図2の上方向を正とした第3リンク205の重心の垂直位置第3リンク重心垂直位置mJ10:第1関節202の慣性モーメントkgm2J20:第2関節204の慣性モーメントkgm2J30:第3関節206の慣性モーメントkgm2第1リンク重心水平位置x10、第1リンク重心垂直位置y10、第2リンク重心水平位置x20、第2リンク重心垂直位置y20、第3リンク重心水平位置x30、第3リンク重心垂直位置y30を、第1関節角度θ1、第2関節角度θ2、第3関節角度θ3を用いて書き換えると[数10]から[数15]と表される。ただし、記号の意味は以下の通りである。l10:第1リンク201の重心と第1関節202との距離ml20:第2リンク203の重心と第2関節204との距離ml30:第3リンク205の重心と第3関節206との距離ml2:第2リンク203の長さml3:第3リンク205の長さm同様に、第1リンク201の指先垂直位置y1を、第1関節角度θ1、第2関節角度θ2、第3関節角度θ3を用いて書き換えると[数16]と表される。ただし、l1は第1リンク201の長さmである。指機構122の運動方程式は、[数17]から[数19]のオイラーラグランジ方程式で表される。ここで、Q1、Q2、Q3は一般化力であり、指先がキー207に接触している場合、[数20]から[数22]で表される。ここで、記号の意味は以下のようになる。T1:第1関節202の関節モータ121が発生する反時計回りを正としたトルク第1関節モータトルクNmT2:第2関節204の関節モータ121が発生する反時計回りを正としたトルク第2関節モータトルクNmT3:第3関節206の関節モータ121が発生する反時計回りを正としたトルク第3関節モータトルクNmTd1:第1関節202に加わる反時計回りを正としたトルク外乱第1関節トルク外乱NmTd2:第2関節204に加わる反時計回りを正としたトルク外乱第2関節トルク外乱NmTd3:第3関節206に加わる反時計回りを正としたトルク外乱第3関節トルク外乱Nm[数8]から[数16]及び[数20]から[数22]を、[数17]から[数19]に代入すると、指機構122の運動方程式は[数23]から[数25]と導出できる。一方、指先がキー207に接触していない場合、一般化力Q1は[数20]に代えて、[数26]と表される。指先がキー207に接触していない場合、[数26]により、[数23]は[数27]に置き換えられる。キー接触時における指機構122の運動方程式は、[数23]から[数25]より[数28]と書き換えられる。ただし、記号の意味は以下のようになる。J:慣性行列fc:[数23]から[数25]の非線形項から構成されるベクトルキー接触時非線形力q:一般化座標T:関節モータトルクd:トルク外乱同様にキー非接触時の指機構122の運動方程式は、[数24]、[数25]、及び[数27]より[数29]と書き換えられる。ただし、fncは[数24]、[数25]、及び[数27]の非線形項から構成されるベクトルキー非接触時非線形力である。キー接触時関節状態推定器131は、[数30]によりキー接触時における一般化座標qとその1階及び2階時間微分値キー接触時関節状態とを、ノイズを含まないように推定する。ただし、記号の意味は以下のようになる。L:推定器ゲインq^:一般化座標推定値fc^:キー接触時非線形力推定値同様に、キー非接触時関節状態推定器132は、[数31]によりキー非接触時における一般化座標qとその1階及び2階時間微分値キー非接触時関節状態とを、ノイズを含まないように推定する。ただし、fnc^はキー非接触時非線形力推定値である。キー接触時におけるキー接触時関節状態推定器131の推定誤差方程式は、[数28]から[数30]を減算することにより[数32]と導出される。ただし、qは一般化座標推定誤差である。ここで、推定器ゲインLの各要素が十分に大きな負の実数となるように設定すると、[数33]が成立し、キー接触時関節状態が推定される。一方、キー接触時におけるキー非接触時関節状態推定器132の推定誤差方程式は、[数28]から[数31]を減算することにより[数34]と導出される。キー接触時において、[数32]の非線形項fc-fc^の時間平均値は、[数34]の非線形項fc-fnc^の時間平均値よりも常に小さい値をとるため、キー接触時関節状態推定器131の推定誤差方程式[数32]より算出した一般化座標推定誤差q~の時間平均値の方が、キー非接触時関節状態推定器132の推定誤差方程式[数34]より算出した値より小さい。同様に、キー非接触時におけるキー非接触時関節状態推定器132の推定誤差方程式は、[数29]から[数31]を減算することにより[数35]と導出される。ここで、推定器ゲインLの各要素が十分に大きな負の実数となるように設定すると、[数33]が成立し、キー非接触時関節状態が推定される。キー接触時の場合と同様の理由から、キー非接触時においては、キー非接触時関節状態推定器132の推定誤差方程式より算出した一般化座標推定誤差q~の時間平均値の方が、キー接触時関節状態推定器131の推定誤差方程式より算出した値より小さい。上述の原理に基づいてキー接触判定器133は、キー接触時関節状態推定器131及びキー非接触時関節状態推定器132のうち、前者が出力する一般化座標推定誤差q~の時間平均が後者よりも小さい場合はキー接触時であると判定し、それ以外の場合はキー非接触時であると判定する。キー接触判定器133がキー接触時であると判定した場合、一般化座標推定値q^は一般化座標qに収束するので、[数28]よりトルク外乱推定器134は[数36]を用いてトルク外乱推定値を算出できることが分かる。ただし、d^はトルク外乱推定値である。[数23]とトルク外乱推定値d^を用いて剛性推定器135は、剛性推定値k^を[数37]により算出する。ただし、記号の意味は以下のようになる。Td1^:第1関節202に加わる反時計回りを正としたトルク外乱の推定値第1関節トルク外乱推定値Nmθ1^:第1関節角度推定値radθ2^:第2関節角度推定値radθ3^:第3関節角度推定値radキー底到達判定器136は、キー接触判定器133がキー接触時であると判定している間に、キー接触時関節状態推定器131が出力するキー接触時関節状態推定誤差の時間平均、及びキー非接触時関節状態推定器132が出力するキー非接触時関節状態推定誤差の時間平均の両方が発散することをもって、キー底に到達したと判定する。図2において、キー207からの反力と第1関節202、第2関節204、第3関節206の発生するモータトルクが静的に釣り合っている場合、各関節における制御剛性それぞれを第1関節等価制御剛性k10、第2関節等価制御剛性k20、第3関節等価制御剛性k30とすると、[数38]から[数40]が成立する。ただし、記号の意味は次の通りである。δy:キー207の垂直方向微小変位量mδθ1:第1関節角度θ1の微小変位量radδθ2:第2関節角度θ2の微小変位量radδθ3:第3関節角度θ3の微小変位量rad[数38]から[数40]において、δyとδθ1、δθ2、δθ3は微小量であり相殺するので、[数41]から[数43]が得られる。制御剛性演算器137は、第1関節202の制御剛性である第1関節制御剛性k1と、第2関節204の制御剛性である第2関節制御剛性k2と、第3関節206の制御剛性である第3関節制御剛性k3と、をそれぞれ[数44]に基づいて決定する。ただし、記号の意味は以下の通りである。c1:第1関節制御剛性k1のパラメータc2:第2関節制御剛性k2のパラメータc3:第3関節制御剛性k3のパラメータk1n:非接触時の第1関節制御剛性k2n:非接触時の第2関節制御剛性k3n:キー底未到達時の第3関節制御剛性制御剛性演算器137は、[数44]で決定した制御剛性となるように、制御器138の制御ゲインを設定する。これにより、指機構122がキー207を押すまでは、第1関節202、第2関節204、第3関節206それぞれに対する制御剛性が被接触体の剛性ばね208のばね定数kを第1関節202、第2関節204、第3関節206回りの回転剛性に等価変換した値より大きいため、第1リンク201の先端指先と、第1関節角度θ1、第2関節角度θ2、第3関節角度θ3を素早く正確にキー207を押すのに適した位置に移動させることができる。また、キー接触後は、第1関節202、第2関節204それぞれに対する制御剛性が被接触体の剛性kを第1関節202、第2関節204回りの回転剛性に等価変換した値と等しく、第3関節206に対する制御剛性が被接触体の剛性kを第3関節206回りの回転剛性に等価変換した値より大きいため、主に第3関節206のみの動作によりキー207を傷つけないように必要最小限の力でキー207を押すことができる。さらにキー底に到達したら、第1関節202、第2関節204、第3関節206それぞれに対する制御剛性が被接触体の剛性kを第1関節202、第2関節204、第3関節206回りの回転剛性に等価変換した値と等しく、キー207をキー底に保持するために必要最小限の力のみを残して第1関節202、第2関節204、第3関節206をリラックスさせることができる。キー接触時において、各関節における制御剛性を[数44]とする第1関節モータトルクT1、第2関節モータトルクT2、第3関節モータトルクT3は、[数23]から[数25]より、[数45]から[数47]と導出できる。ただし、記号の意味は以下の通りである。d1:第1関節202における制御減衰第1関節制御減衰d2:第2関節204における制御減衰第2関節制御減衰d3:第3関節206における制御減衰第3関節制御減衰Td2^:第2関節に加わる反時計回りを正としたトルク外乱の推定値第2関節トルク外乱推定値NmTd3^:第3関節に加わる反時計回りを正としたトルク外乱の推定値第3関節トルク外乱推定値Nmここで、制御減衰とは、関節のメカ機構による減衰と、関節が備える関節モータや減速機等の減衰と、を加えた減衰のことである。一方、キー非接触時において、第2関節モータトルクT2、第3関節モータトルクT3は[数46]、[数47]と同じであり、第1関節モータトルクT1は[数27]より[数48]と表される。上述のように、被接触体の剛性を推定するので、簡易な機構で硬さの異なる被接触体に柔軟に対応することができる。特に、本実施形態の制御装置を、キー操作等を行うロボットハンドに適用すると、サービスロボットがパソコンのキーボード操作する場合や、家電のキー操作をする場合に、キーを傷つけることなく早く正確にキーを押すことが可能となり、サービスロボットが楽器を演奏する場合は、鍵盤やボタンを傷つけることなく正確に早く洗練された演奏をすることが可能となる。このように、本実施形態によるとサービスロボットが家電のキー、楽器の鍵盤やボタンを傷つけることなく、早く正確に洗練されたキー操作や演奏をすることができる。<シミュレーション結果>本シミュレーションは、サービスロボットのロボットハンドがパソコンのキー操作をする場合を模擬している。シミュレーションに用いた数値は以下のとおりである。l1=20×10-3ml2=20×10-3ml3=20×10-3ml10=10×10-3ml20=10×10-3ml30=10×10-3mm1=30×10-3kgm2=30×10-3kgm3=30×10-3kgJ10=1.42×10-6kgm2J20=1.42×10-6kgm2J30=1.42×10-6kgm2m=1.9×10-3kgk=140N/my0=3×10-3mg=9.8m/s2Td1=0NmTd2=0NmTd3=0Nmc1=3c2=3c3=3d1=2×10-1Nms/radd2=6×10-1Nms/radd3=9×10-1Nms/radk1n=1×105Nm/radk2n=1×105Nm/radk3n=1×105Nm/radただし、キー質量m及びばね弾性体の剛性kは標準的なパソコンのキーボードの値とし、第1関節制御減衰d1、第2関節制御減衰d2、第3関節制御減衰d3の値は、各関節より先端の部分の慣性モーメントの大きさに合わせて設定した。図3は本シミュレーションにおける第1関節角度の時間変化、図4は本シミュレーションにおける第2関節角度の時間変化、図5は本シミュレーションにおける第3関節角度の時間変化、図6は本シミュレーションにおける制御剛性の時間変化である。図3から図5において、破線は関節角度指令、実線は実際の関節角度を示す。また、図6において、実線は第1関節制御剛性k1、破線は第2関節制御剛性k2、一点鎖線は第3関節制御剛性k3を示す。図3と図4の2.5sにおいて第1関節202の先端指先がキー207に接触し、キー接触判定器133がキー接触したという判定結果を関節角度指令発生器110に出力し、関節角度指令発生器110は第1関節角度指令θ1r及び第2関節角度指令θ2rとを減速させている。第1関節角度指令θ1rや第2関節角度指令θ2rを、キー接触時の第1関節角度θ1や第2関節角度θ2より大きい角度に収束させるのは、1度キー接触した指先をキー207の表面に密着した状態に維持するためである。図6において、制御剛性演算器137が[数38]を用いて算出する第1関節制御剛性k1及び第2関節制御剛性k2は、キー接触前は関節角度指令に追従するのに必要な制御帯域を確保するのに十分高い値に設定され、2.5sでキー接触が判定されると、最小限の制御剛性に抑えられていることが分かる。図5の2.5sにおいてキー接触が判定されると、第3関節角度指令は1度減速し、キー207を押し込む動作に移行する。5.5sにおいてキー底に到達すると、キー207をそれ以上押し込むことが出来なくなるので、第3関節角度θ3は0.31[rad]で飽和している。この時、キー底到達判定器136は、上述のようにキー接触時関節状態推定値の絶対値が発散するので、キー底に到達したという判定結果を出力する。関節角度指令発生器110は、キー底に到達したという判定結果が入力されると、第3関節角度指令θ3rを減速させる。第3関節角度指令θ3rがキー底到達時の第3関節角度θ3より大きな値に収束しているのは、キー207をキー底にしっかり保持するためである。制御剛性演算器137は、キー底到達前において、第3関節角度θ3を第3関節角度指令θ3rに追従させるのに必要な制御帯域を確保するために、第3関節制御剛性k3を十分に大きな値に設定し、5.5sにおいてキー底に到達した以降において、キー207をキー底に保持するのに必要最小限の値に第3関節制御剛性k3を設定していることが分かる。特許文献1のロボットハンドによると、剛性の低い指を使うと早い打鍵動作ができず、剛性の高い指を使うと早い打鍵動作はできるが、キー底到達後にキー207を押し込む力をキー剛性に合わせて適切に変化させることができず、キー207を傷つけてしまう問題がある。一方、本実施形態によると、上述のようにキー接触前、キー押し込み時、キー底到達後の3つの場合において、キー剛性に応じて適切に各関節の制御剛性を時間変化させるので、キー207を傷つけることなく早く正確なタイピングができる。また、ピアノなど鍵盤楽器の演奏に対して本発明を適用すると、上述のようにキー剛性に応じて適切に各関節の制御剛性を時間変化させることにより、鍵盤を傷つけることなく、正確に早い演奏が可能となり、繊細なトナリティーの表現が可能となる。このように、本実施形態によるとサービスロボットが家電のキー、楽器の鍵盤やボタンを傷つけることなく、早く正確に洗練されたキー操作や演奏をすることができる。以上、本発明に係るロボットハンドの制御装置の実施形態を説明したが、上記の構成に限らず、本発明の技術的思想を逸脱しない範囲で、変更することが可能である。本実施形態の制御装置は、家電や楽器等のキーを操作するロボットハンドを制御するために適用したが、把持対象物を把持するロボットハンドを制御するために適用しても良い。この場合、キー底到達判定器136を省略しても良い。本実施形態の指機構は、第1リンク201、第2リンク203、第3リンク205を備えた構成とされているが、リンクや関節の個数は限定されない。本実施形態の被接触体の弾性体としてバネを用いたが、ゴム等の復元部材を用いても良い。