(57)【特許請求の範囲】
【請求項１】
関節を介して連結された複数のリンクをアクチュエータにより駆動する作動機構の制御装置であって、
前記リンクの目標とする移動加速度である目標加速度を取得する目標加速度取得部と、
前記リンクを前記目標加速度で移動させるためのトルクである駆動トルク値の仮の値である仮駆動トルク値を、前記目標加速度に基づき算出する仮駆動トルク値算出部と、
前記作動機構が出力可能な上限のトルク値である上限トルク値に基づき、前記駆動トルク値の上限のトルク値である上限駆動トルク値を取得する上限駆動トルク値取得部と、
前記仮駆動トルク値と前記上限駆動トルク値との比率であるトルク比率を算出するトルク比率算出部と、
前記仮駆動トルク値が前記上限駆動トルク値以下である場合に、前記仮駆動トルク値を前記駆動トルク値に決定し、前記仮駆動トルク値が前記上限駆動トルク値より大きい場合に、前記トルク比率に基づき、前記仮駆動トルク値を前記上限駆動トルク値以下の値に変換した変換駆動トルク値を、前記駆動トルク値に決定する駆動トルク値決定部と、
前記アクチュエータを駆動するトルク値として、決定した前記駆動トルク値を用いて、前記アクチュエータを制御するアクチュエータ制御部と、
を有する、作動機構の制御装置。
【請求項２】
前記作動機構は、複数のリンクのそれぞれに対応する複数のアクチュエータを備えており、前記駆動トルク値は、複数のアクチュエータのそれぞれに対して算出されるものであり、
前記駆動トルク値決定部は、複数のアクチュエータに対するそれぞれの仮駆動トルク値のうち、前記上限駆動トルク値に対する前記仮駆動トルク値の超過率が最も高い仮駆動トルク値についてのトルク比率を用いて、それぞれの仮駆動トルク値を前記変換駆動トルク値に変換し、それぞれの前記変換駆動トルク値を、それぞれのアクチュエータに対する前記駆動トルク値に決定する、請求項１に記載の作動機構の制御装置。
【請求項３】
前記駆動トルク値決定部は、前記上限駆動トルク値に対する前記仮駆動トルク値の比率を前記トルク比率とし、前記仮駆動トルク値を前記トルク比率で除することにより、前記変換駆動トルク値を算出する、請求項１又は請求項２に記載の作動機構の制御装置。
【請求項４】
前記上限駆動トルク値取得部は、
前記作動機構の自重、及び前記作動機構にかかる負荷を保持するためのトルクである保持トルク値を取得する保持トルク値取得部と、
前記上限トルク値から前記保持トルク値を差し引いた値に基づき、前記上限駆動トルク値を算出する上限駆動トルク値算出部と、を有する、請求項１から請求項３のいずれか１項に記載の作動機構の制御装置。
【請求項５】
前記目標加速度から算出される行列式を、予め定められたリンクの加速度の上限値の行列式で正規化して補正項を算出する補正項算出部を更に有し、
前記駆動トルク値決定部は、前記変換駆動トルク値を前記補正項で補正したトルク値を、前記駆動トルク値として決定し、
前記補正項は、前記駆動トルク値によって前記アクチュエータを駆動した場合に、前記リンクの実際の加速度が前記目標加速度より大きくならないように、前記変換駆動トルク値を補正するための係数である、請求項１から請求項４のいずれか１項に記載の作動機構の制御装置。
【請求項６】
関節を介して連結された複数のリンクをアクチュエータにより駆動する作動機構の制御装置であって、
前記関節を介して隣接するリンク同士の現在の角度である現在関節角度を取得する関節角度取得部と、
前記現在関節角度が、前記現在関節角度に基づいて算出される逆ヤコビ行列が発散する特異点角度である場合に、前記現在関節角度から所定の変位角度だけ異なった前記リンク同士の仮想の角度である仮想関節角度を算出する仮想関節角度取得部と、
前記リンクの目標とする移動加速度である目標加速度を取得する目標加速度取得部と、
前記目標加速度と前記仮想関節角度とに基づき、前記アクチュエータを駆動するための駆動トルク値を算出する駆動トルク値算出部と、
前記アクチュエータを駆動するトルク値として前記駆動トルク値を用いて、前記アクチュエータを制御するアクチュエータ制御部と、を有する、
作動機構の制御装置。
【請求項７】
前記仮想関節角度取得部は、前記仮想関節角度である場合の前記リンク同士の距離が、前記現在関節角度である場合の前記リンク同士の距離よりも短くなるように、前記仮想関節角度を算出する、請求項６に記載の作動機構の制御装置。
【請求項８】
前記現在関節角度に基づき、前記リンクの現在の座標である現在座標を算出する座標算出部を更に有し、
前記仮想関節角度取得部は、
前記現在座標のうち、少なくとも１つの軸に対応する座標を所定の変位距離だけ変化させた座標である仮想座標を算出する仮想座標算出部と、
前記リンクが前記仮想座標に位置すると仮定した場合の前記リンク同士の角度を、前記仮想関節角度として算出する仮想関節角度算出部と、を有する、請求項６又は請求項７に記載の作動機構の制御装置。
【請求項９】
前記仮想関節角度取得部は、
前記現在関節角度と前記仮想関節角度との関係を記憶する関係記憶部と、
前記現在関節角度と前記関係に基づき、前記仮想関節角度を算出する仮想関節角度算出部と、を有し、
前記関係は、前記現在関節角度の値に応じて、前記変位角度が異なるものである、請求項６又は請求項７に記載の作動機構の制御装置。
【請求項１０】
前記仮想関節角度取得部は、前記現在関節角度の所定の範囲内において、前記変位角度を０として、前記仮想関節角度として前記現在関節角度を用いる、請求項６から請求項９のいずれか１項に記載の作動機構の制御装置。
【請求項１１】
前記変位角度は、
前記現在関節角度が、前記特異点角度から、前記特異点角度と所定の角度だけ離れた特異点近傍角度までの間である場合に、０より大きい値となり、
前記現在関節角度が、前記特異点角度から前記特異点近傍角度の範囲外である場合に、０となる、請求項１０に記載の作動機構の制御装置。
【請求項１２】
前記変位角度だけ関節角度を変化させた場合の前記リンクの角加速度の変化量を示す係数である補正係数を記憶する補正係数記憶部を更に有し、
前記駆動トルク値算出部は、前記目標加速度と前記仮想関節角度と前記補正係数とに基づき、前記駆動トルク値を算出し、
前記補正係数は、所定の関節角度である第１基準関節角度に基づき算出された前記リンクの角加速度である第１基準角加速度と、前記第１基準関節角度から前記変位角度だけ異なる第２基準関節角度に基づき算出された前記リンクの角加速度である第２基準角加速度とに基づき算出される、請求項６から請求項１１のいずれか１項に記載の作動機構の制御装置。
【請求項１３】
前記作動機構は、前記関節として、腰関節と膝関節と足首関節とを有し、前記リンクとして、前記腰関節と前記膝関節との間に設けられる大腿リンクと、前記膝関節と前記足首関節との間に設けられる下腿リンクと、前記足首関節の前記下腿リンクと反対側に設けられる足リンクと、を有し、前記アクチュエータにより前記関節を介して隣接するリンクの間でアシスト力を発生させて、装着者の筋力を補助するパワーアシストスーツであって、
前記仮想関節角度取得部は、前記膝関節の現在関節角度が特異点角度である場合に、前記腰関節、前記膝関節及び前記足首関節の仮想関節角度を算出する、請求項６から請求項１２のいずれか１項に記載の作動機構の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作動機構の制御装置に関する。
【背景技術】
【０００２】
パワーアシストスーツと呼ばれる装着型の作業補助装置や、ロボットなど、関節を介して連結された複数のリンクをアクチュエータにより駆動する作動機構がある。このような作動機構を作動する場合、そのリンクの現在の位置や姿勢や速度などから、現在の関節角度を求める必要がある。関節角度を求める場合、一般的には、ヤコビ行列が用いられる。
【０００３】
しかし、ヤコビ行列には、特異点と呼ばれる姿勢が存在する。特異点とは、逆ヤコビ行列が発散する姿勢である。逆ヤコビ行列が発散した場合、関節角度を一義的に算出することができなくなるため、出力が異常となり、適切な作動を行うことができなくなる可能性がある。また、特異点でなくても、特異点近傍である場合でも、逆ヤコビ行列が大きな値となってしまうため、出力が過大となるおそれがある。この特異点における関節角度を特異点角度とすると、特異点角度は、例えば、関節が伸びきった状態が該当する。例えば歩行ロボットなどは、この特異点角度を避けるため、膝関節を意図的に曲げて特異点角度を回避している。また、特許文献１には、仮想リンク構造を用いて膝特異点における出力異常を回避する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０１４９２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１の技術は、仮想リンク構造を用いているため、その制御導入に対し多大な事前準備が必要となり、容易に特異点角度における出力異常を回避できるものとは言えない。また、特許文献１の技術は、定位性を有する位置拘束に基づく制御であるため、例えば非定位性が求められるような自由な動作に対応することは困難である。
【０００６】
従って、本発明は、特異点角度における出力異常を容易に回避し、かつ、自由な動作に対応する作動機構の制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本開示に係る作動機構の制御装置は、関節を介して連結された複数のリンクをアクチュエータにより駆動する作動機構の制御装置であって、前記リンクの目標とする移動加速度である目標加速度を取得する目標加速度取得部と、前記リンクを前記目標加速度で移動させるためのトルクである駆動トルク値の仮の値である仮駆動トルク値を、前記目標加速度に基づき算出する仮駆動トルク値算出部と、前記作動機構が出力可能な上限のトルク値である上限トルク値に基づき、前記駆動トルク値の上限のトルク値である上限駆動トルク値を取得する上限駆動トルク値取得部と、前記仮駆動トルク値と前記上限駆動トルク値との比率であるトルク比率を算出するトルク比率算出部と、前記仮駆動トルク値が前記上限駆動トルク値以下である場合に、前記仮駆動トルク値を前記駆動トルク値に決定し、前記仮駆動トルク値が前記上限駆動トルク値より大きい場合に、前記トルク比率に基づき、前記仮駆動トルク値を前記上限駆動トルク値以下の値に変換した変換駆動トルク値を、前記駆動トルク値に決定する駆動トルク値決定部と、前記アクチュエータを駆動するトルク値として、決定した前記駆動トルク値を用いて、前記アクチュエータを制御するアクチュエータ制御部と、を有することが好ましい。
【０００８】
この制御装置は、特異点角度において、仮駆動トルク値の出力過大に起因する異常（以下、出力異常と記載）が発生する場合にも、駆動トルク値を上限駆動トルク値以下に低下させることで、駆動トルク値の出力異常を容易に抑制することができる。また、この制御装置は、目標加速度に基づき駆動トルク値を算出しているため、非定位性の制御となり、自由な動作に対応することが可能となる。
【０００９】
前記作動機構は、複数のリンクのそれぞれに対応する複数のアクチュエータを備えており、前記駆動トルク値は、複数のアクチュエータのそれぞれに対して算出されるものであり、前記駆動トルク値決定部は、複数のアクチュエータに対するそれぞれの仮駆動トルク値のうち、前記上限駆動トルク値に対する前記仮駆動トルク値の超過率が最も高い仮駆動トルク値についてのトルク比率を用いて、それぞれの仮駆動トルク値を前記変換駆動トルク値に変換し、それぞれの前記変換駆動トルク値を、それぞれのアクチュエータに対する前記駆動トルク値に決定することが好ましい。この制御装置は、アクチュエータ間の駆動トルク値の比率を変換前と同様に保つため、駆動トルク値の出力異常をより適切に抑制することができる。
【００１０】
前記制御装置において、前記駆動トルク値決定部は、前記上限駆動トルク値に対する前記仮駆動トルク値の比率を前記トルク比率とし、前記仮駆動トルク値を前記トルク比率で除することにより、前記変換駆動トルク値を算出することが好ましい。この制御装置は、トルク比率及び変換駆動トルク値を算出しているため、駆動トルク値を上限駆動トルク値以下の適切な値とすることができる。
【００１１】
前記制御装置において、前記上限駆動トルク値取得部は、例えば前記作動機構の自重、及び前記作動機構にかかる負荷を保持するためのトルクである保持トルク値を取得する保持トルク値取得部と、前記上限トルク値から前記保持トルク値を差し引いた値に基づき、前記上限駆動トルク値を算出する上限駆動トルク値算出部と、を有することが好ましい。この制御装置は、上限駆動トルク値を適切に算出し、駆動トルク値の出力異常をより適切に抑制することができる。
【００１２】
前記制御装置は、前記目標加速度から算出される行列式を、予め定められたリンクの加速度の上限値の行列式で正規化して補正項を算出する補正項算出部を更に有し、前記駆動トルク値決定部は、前記変換駆動トルク値を前記補正項で補正したトルク値を、前記駆動トルク値として決定し、前記補正項は、前記駆動トルク値によって前記アクチュエータを駆動した場合に、前記リンクの実際の加速度が前記目標加速度より大きくならないように、前記変換駆動トルク値を補正するための係数であることが好ましい。この制御装置は、加速度軌道変化に対応した駆動トルク値を算出することができる。
【００１３】
上述した課題を解決し、目的を達成するために、本開示に係る作動機構の制御装置は、関節を介して連結された複数のリンクをアクチュエータにより駆動する作動機構の制御装置であって、前記関節を介して隣接するリンク同士の現在の角度である現在関節角度を取得する関節角度取得部と、前記現在関節角度が、前記現在関節角度に基づいて算出される逆ヤコビ行列が発散する特異点角度である場合に、前記現在関節角度から所定の変位角度だけ異なった前記リンク同士の仮想の角度である仮想関節角度を算出する仮想関節角度取得部と、前記リンクの目標とする移動加速度である目標加速度を取得する目標加速度取得部と、前記目標加速度と前記仮想関節角度とに基づき、前記アクチュエータを駆動するための駆動トルク値を算出する駆動トルク値算出部と、前記アクチュエータを駆動するトルク値として前記駆動トルク値を用いて、前記アクチュエータを制御するアクチュエータ制御部と、を有する。
【００１４】
この制御装置は、現在関節角度が特異点角度であっても、特異点角度から変位した、逆ヤコビ行列が発散しない仮想関節角度に基づき、駆動トルク値を適切に算出することができる。従って、この制御装置は、仮想関節角度を算出するだけで、駆動トルク値の出力異常を容易に抑制することができる。また、この制御装置は、目標加速度に基づき駆動トルク値を算出しているため、非定位性の制御となり、自由な動作に対応することが可能となる。
【００１５】
前記制御装置において、前記仮想関節角度取得部は、前記仮想関節角度である場合の前記リンク同士の距離が、前記現在関節角度である場合の前記リンク同士の距離よりも短くなるように、前記仮想関節角度を算出することが好ましい。この制御装置は、関節が伸びきった場合の特異点においても、駆動トルク値の出力異常を適切に抑制することができる。
【００１６】
前記制御装置は、前記現在関節角度に基づき、前記リンクの現在の座標である現在座標を算出する座標算出部を更に有し、前記仮想関節角度取得部は、前記現在座標のうち、少なくとも１つの軸に対応する座標を所定の変位距離だけ変化させた座標である仮想座標を算出する仮想座標算出部と、前記リンクが前記仮想座標に位置すると仮定した場合の前記リンク同士の角度を、前記仮想関節角度として算出する仮想関節角度算出部と、を有することが好ましい。この制御装置は、変位距離だけ関節角度が変位した仮想関節角度に基づき駆動トルク値を算出するため、特異点であっても、駆動トルク値の出力異常を適切に抑制することができる。
【００１７】
前記制御装置において、前記仮想関節角度取得部は、前記現在関節角度と前記仮想関節角度との関係を記憶する関係記憶部と、前記現在関節角度と前記関係に基づき、前記仮想関節角度を算出する仮想関節角度算出部と、を有し、前記関係は、前記現在関節角度の値に応じて、前記変位角度が異なるものであることが好ましい。この制御装置は、関節角度関係に基づき仮想関節角度を算出するため、駆動トルク値の出力異常を適切に抑制することができる。
【００１８】
前記制御装置において、前記仮想関節角度取得部は、前記現在関節角度が前記特異点角度以外の角度である場合、前記変位角度を０として、前記仮想関節角度として前記現在関節角度を用いることが好ましい。この制御装置は、特異点角度である場合に仮想関節角度を用いて出力異常を抑制しつつ、特異点でない場合には、実際の関節角度を用いることで、より正確に出力を行うことができる。
【００１９】
前記制御装置において、前記変位角度は、前記現在関節角度が、前記特異点角度から、前記特異点角度と所定の角度だけ離れた特異点近傍角度までの間である場合に、０より大きい値となり、前記現在関節角度が、前記特異点角度から前記特異点近傍角度の範囲外である場合に、０となることが好ましい。この制御装置は、逆ヤコビ行列の値が過大になる特異点近傍角度においても、駆動トルク値の出力異常を抑制することができる。
【００２０】
前記制御装置は、前記変位角度だけ関節角度を変化させた場合の前記リンクの角加速度の変化量を示す係数である補正係数を記憶する補正係数記憶部を更に有し、前記駆動トルク値算出部は、前記目標加速度と前記仮想関節角度と前記補正係数とに基づき、前記駆動トルク値を算出し、前記補正係数は、所定の関節角度である第１基準関節角度に基づき算出された前記リンクの角加速度である第１基準角加速度と、前記第１基準関節角度から前記変位角度だけ異なる第２基準関節角度に基づき算出された前記リンクの角加速度である第２基準角加速度とに基づき算出されることが好ましい。この制御装置は、補正係数で補正して駆動トルク値を算出するため、制御装置は、駆動トルク値の出力異常をより適切に抑制することができる。
【００２１】
前記作動機構は、前記関節として、腰関節と膝関節と足首関節とを有し、前記リンクとして、前記腰関節と前記膝関節との間に設けられる大腿リンクと、前記膝関節と前記足首関節との間に設けられる下腿リンクと、前記足首関節の前記下腿リンクと反対側に設けられる足リンクと、を有し、前記アクチュエータにより前記関節を介して隣接するリンクの間でアシスト力を発生させて、装着者の筋力を補助するパワーアシストスーツであって、前記仮想関節角度取得部は、前記膝関節の現在関節角度が特異点角度である場合に、前記腰関節、前記膝関節及び前記足首関節の仮想関節角度を算出することが好ましい。この制御装置は、膝関節が特異点である場合に、適切に出力異常を抑制することができる。
【発明の効果】
【００２２】
本発明によれば、特異点角度における出力異常を容易に回避し、かつ、自由な動作に対応することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、第１実施形態に係るパワーアシストスーツを表す概略図である。
【図２】図２は、第１実施形態に係るパワーアシストスーツの装着状態を表す正面図である。
【図３】図３は、第１実施形態に係るパワーアシストスーツの装着状態を表す側面図である。
【図４】図４は、第１実施形態に係る制御装置のブロック図である。
【図５】図５は、現在関節角度及び現在座標を説明するための模式図である。
【図６】図６は、仮想座標及び仮想関節角度を説明するための模式図である。
【図７】図７は、第１実施形態に係る駆動トルク値の算出フローを説明するフローチャートである。
【図８】図８は、第２実施形態における現在関節角度と変位距離との関係を示すグラフである。
【図９】図９は、第３実施形態に係る制御装置のブロック図である。
【図１０】図１０は、第３実施形態における現在関節角度と仮想関節角度との関係を示すグラフである。
【図１１】図１１は、第４実施形態に係る制御装置のブロック図である。
【図１２】図１２は、第５実施形態に係る制御装置のブロック図である。
【図１３】図１３は、第５実施形態に係る駆動トルク値の算出フローを説明するフローチャートである。
【発明を実施するための形態】
【００２４】
以下に添付図面を参照して、本発明の好適な実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施例を組み合わせて構成するものも含むものである。
【００２５】
（第１実施形態）
図１は、第１実施形態に係るパワーアシストスーツを表す概略図である。図２は、第１実施形態に係るパワーアシストスーツの装着状態を表す正面図である。図３は、第１実施形態に係るパワーアシストスーツの装着状態を表す側面図である。
【００２６】
（パワーアシストスーツの概要）
パワーアシストスーツ１０は、関節を介して連結された複数のリンクをアクチュエータにより駆動する作動機構である。より具体的には、パワーアシストスーツ１０は、複数のリンクが関節を介して連結され、関節を介して連結された隣接するリンクの間でアシスト力を発生するアクチュエータを駆動して、装着した装着者の筋力を補助する作動機構である。図１から図３に示すように、パワーアシストスーツ１０は、装着者の腰に装着される腰パーツ１１と、肩に装着される肩パーツ１２と、脚に装着される脚パーツ１３Ａ、１３Ｂとを有している。
【００２７】
腰パーツ１１は、腰装着部２１と、給電装置２２と、大腿駆動機構２３Ａ、２３Ｂとを有する。腰装着部２１は、パワーアシストスーツ１０の装着者、すなわちパワーアシストスーツを装着する者（装着者）の腰の周囲に位置するように形成された、Ｃ形リング形状の部材である。給電装置２２は、腰装着部２１に取り付けられており、装着者の背中側に配置される。
【００２８】
給電装置２２は、パワーアシストスーツ１０が備える制御装置１及びアクチュエータ等の機器類に電力を供給する装置である。本実施形態において、給電装置２２は、パワーアシストスーツ１０の外部の電源２２Ｂから、電線２２Ｃを介して電力の供給を受ける。給電装置２２は、外部の電源２２Ｂからの電力を、パワーアシストスーツ１０が備える機器類に適した電圧等に変換してこれらに供給する。外部の電源２２Ｂは、例えば、ＡＣ（Alternating  Current）電源である。給電装置２２は外部の電源２２Ｂから電力の供給を受ける装置に限定されるものではなく、例えば、パワーアシストスーツ１０に搭載される蓄電器から電力の供給を受ける装置であってもよい。
【００２９】
大腿駆動機構２３Ａ、２３Ｂは、腰装着部２１の下方に連結されており、それぞれ装着者の左右の側部に配置されている。大腿駆動機構２３Ａ、２３Ｂは、パワーアシストスーツ１０の腰関節に相当する。大腿駆動機構２３Ａは、脚パーツ１３Ａの大腿装着部４１Ａを腰装着部２１に対して所定の軸線Ｙｗｌの周りを回動させることで、左脚の大腿の動作に応じて筋力を補助するものである。大腿駆動機構２３Ｂは、脚パーツ１３Ｂの大腿装着部４１Ｂを腰装着部２１に対して所定の軸線Ｙｗｒの周りを回動させることで、右脚の大腿の動作に応じて筋力を補助するものである。
【００３０】
肩パーツ１２は、背装着部３１と、装着者の左右の肩に掛止するように配置される左肩装着部３２Ａ及び右肩装着部３２Ｂとを有する。左肩装着部３２Ａ及び右肩装着部３２Ｂは、装着者の背中側に配置される背装着部３１によって腰パーツ１１の腰装着部２１に連結されている。
【００３１】
脚パーツ１３Ａ、１３Ｂは、左脚及び右脚に対応して配置されている。左脚に対応する脚パーツ１３Ａは、大腿装着部４１Ａと、下腿装着部４２Ａと、足装着部４３Ａと、下腿駆動機構４５Ａと、脚駆動制御装置４６Ａとを有する。
【００３２】
大腿装着部４１Ａは、装着者の左脚の大腿に沿って配置され、下腿装着部４２Ａは、装着者の左脚の下腿に沿って配置される。大腿装着部４１Ａは、パワーアシストスーツ１０の大腿リンクに相当し、下腿装着部４２Ａは、パワーアシストスーツ１０の下腿リンクに相当する。大腿装着部４１Ａの一端部は、腰パーツ１１の腰装着部２１に回動可能に連結されている。下腿装着部４２Ａの一端部は、大腿装着部４１Ａの他端部に回動可能に連結されており、下腿装着部４２Ａの他端部は、回動軸４７Ａにより足装着部４３Ａに回動可能に連結されている。足装着部４３Ａは、装着者の左足部（左足首から下の部分）に装着される靴部である。回動軸４７Ａはパワーアシストスーツ１０の足首関節に相当し、足装着部４３Ａはパワーアシストスーツ１０の足リンクに相当する。
【００３３】
下腿駆動機構４５Ａは、大腿装着部４１Ａの他端部に取り付けられている。下腿駆動機構４５Ａは、下腿駆動機構４５Ａを大腿装着部４１Ａに対して所定の軸線Ｙｎｌの周りを回動させることで、筋力を補助する。下腿駆動機構４５Ａは、パワーアシストスーツ１０の膝関節に相当する。脚駆動制御装置４６Ａは、大腿装着部４１Ａに取り付けられており、大腿駆動機構２３Ａ及び下腿駆動機構４５Ａの動作を制御する。脚駆動制御装置４６Ａ、大腿駆動機構２３Ａ及び下腿駆動機構４５Ａは、給電装置２２から電力が供給される。
【００３４】
右脚に対応する脚パーツ１３Ｂは、脚パーツ１３Ａと同様に、大腿装着部４１Ｂと、下腿装着部４２Ｂと、足装着部４３Ｂと、下腿駆動機構４５Ｂと、脚駆動制御装置４６Ｂとを有する。
【００３５】
大腿装着部４１Ｂは、装着者の右脚の大腿に沿って配置され、下腿装着部４２Ｂは、装着者の右脚の下腿に沿って配置される。大腿装着部４１Ｂは、パワーアシストスーツ１０の大腿リンクに相当し、下腿装着部４２Ｂは、パワーアシストスーツ１０の下腿リンクに相当する。大腿装着部４１Ｂの一端部は、腰パーツ１１の腰装着部２１に回動可能に連結されている。下腿装着部４２Ｂの一端部は、大腿装着部４１Ｂの他端部に回動可能に連結されており、下腿装着部４２Ｂの他端部は、回動軸４７Ｂにより足装着部４３Ｂに回動可能に連結されている。足装着部４３Ｂは、装着者の右足部（右足首から下の部分）に装着される靴部として形成されている。回動軸４７Ｂはパワーアシストスーツ１０の足首関節に相当し、足装着部４３Ｂはパワーアシストスーツ１０の足リンクに相当する。
【００３６】
下腿駆動機構４５Ｂは、大腿装着部４１Ｂの他端部に取り付けられている。下腿駆動機構４５Ｂは、下腿駆動機構４５Ｂを大腿装着部４１Ｂに対して所定の軸線Ｙｎｒの周りを回動させることで、筋力を補助するものである。下腿駆動機構４５Ｂは、パワーアシストスーツ１０の膝関節に相当する。脚駆動制御装置４６Ｂは、大腿装着部４１Ｂに取り付けられており、大腿駆動機構２３Ｂ及び下腿駆動機構４５Ｂの動作を制御する。脚駆動制御装置４６Ｂ、大腿駆動機構２３Ｂ及び下腿駆動機構４５Ｂは、給電装置２２から電力が供給される。
【００３７】
大腿駆動機構２３Ａ、２３Ｂ及び下腿駆動機構４５Ａ、４５Ｂは、それぞれアクチュエータを備えている。本実施形態において、これらが備えるアクチュエータは電動機であるが、これに限定されない。本実施形態において、それぞれの脚パーツ１３Ａ、１３Ｂは、大腿駆動機構２３Ａ、２３Ｂ及び下腿駆動機構４５Ａ、４５Ｂを備えているので、制御軸は２軸である。本実施形態において、パワーアシストスーツ１０が備える制御軸は、１つの脚パーツ１３Ａ又は脚パーツ１３Ｂあたりにおいて２軸に限定されるものではない。
【００３８】
図２に示すように、足装着部４３Ａの底部、すなわち靴底には、荷重検出装置４４Ａが設けられている。また、足装着部４３Ｂの底部、すなわち靴底には、荷重検出装置４４Ｂが設けられている。荷重検出装置４４Ａ、４４Ｂは、足装着部４３Ａ、４３Ｂに作用する荷重、すなわち装着者の足底荷重を検出する。本実施形態において、荷重検出装置４４Ａ、４４Ｂは、例えば、６軸のロードセルであるが、これに限定されるものではない。以下において、荷重検出装置４４Ａ、４４Ｂを区別しない場合、適宜荷重検出装置４４という。
【００３９】
本実施形態において、背装着部３１の背面には、制御装置１が設けられている。制御装置１は、例えば、マイクロコンピュータである。制御装置１は、荷重検出装置４４Ａ、４４Ｂの検出値に基づいて、各リンク、すなわち、大腿駆動機構２３Ａ、２３Ｂ、下腿駆動機構４５Ａ、４５Ｂ、及び足装着部４３Ａ、４３Ｂの動作を制御する。脚駆動制御装置４５Ａ、４５Ｂは、制御装置１からの指令に基づいて、大腿駆動機構２３Ａ、２３Ｂのアクチュエータ、下腿駆動機構４５Ａ、４５Ｂのアクチュエータ、及び足装着部４３Ａ、４３Ｂのアクチュエータを駆動する。本実施形態において、脚駆動制御装置４６Ａ、４６Ｂは、電動機を制御するモータードライバである。次に、制御装置１について説明する。
【００４０】
（制御装置について）
図４は、第１実施形態に係る制御装置のブロック図である。図４に示すように、制御装置１は、第１制御部１Ａと、第２制御部１Ｂと、アクチュエータ制御部１Ｃとを有する。第１制御部１Ａは、パワーアシストスーツ１０の自重を受け持つ制御、及びパワーアシストスーツ１０の装着者の脚に作用する負荷を補助する制御のためのトルクを算出する。後者の制御は、例えば、パワーアシストスーツ１０の装着者が物体を持つ際に、物体の質量による負荷をパワーアシストスーツ１０のリンク機構で受ける制御である。一方、第２制御部１Ｂは、リンクを目標加速度で移動させるためのトルクである駆動トルク値τ１を算出する。第１制御部１Ａが算出するトルク値を保持トルク値τ２とすると、アクチュエータ制御部１Ｃは、駆動トルク値τ１及び保持トルク値τ２を取得して、それらのトルク値を合計して、アクチュエータを駆動する。
【００４１】
以下、アクチュエータを駆動するためのトルク値についてより詳細に説明する。アクチュエータを実際に駆動するトルク値、すなわちアクチュエータが出力するトルク値を総トルク値τ０とすると、総トルク値τ０は、一般的に次の式（１）で表される。
【００４２】
τ０＝Ｍ・θ”＋ｈ（θ，θ’）＋ｇ(θ)  ・・・（１）
【００４３】
ここで、Ｍはリンクの慣性モーメントであり、関節角度θから算出される値である。θ’は関節角速度であり、θ”は関節角加速度である。Ｍ・θ”は、第２制御部１Ｂによって算出される駆動トルク値τ１である。ｇ(θ)は、重力に関連する項であり、第１制御部１Ａによって算出される保持トルク値τ２である。ｈ（θ，θ’）は、コリオリ力に対応する項であり、総トルク値τ０に対する寄与率が低いため、本実施形態では無視される。すなわち、本実施形態において、アクチュエータ制御部１Ｃは、駆動トルク値τ１及び保持トルク値τ２の合計値を、総トルク値τ０として算出し、その総トルク値τ０で、アクチュエータを駆動する。ただし、アクチュエータ制御部１Ｃは、ｈ（θ，θ’）についても算出し、駆動トルク値τ１と保持トルク値τ２とｈ（θ，θ’）との合計値を総トルク値τ０として算出してもよい。
【００４４】
さらに言えば、駆動トルク値τ１は、関節角加速度θ”に関連するトルクであり、リンクの目標とする移動加速度である目標加速度を実現するためのトルクである。言い換えれば、駆動トルク値τ１は、装着者の移動を補助するために先んじてリンクを動かすためのトルク値である。また、保持トルク値τ２は、関節角度θに関連するトルクであり、パワーアシストスーツ１０の自重や負荷を支えるためのトルクである。従って、アクチュエータ制御部１Ｃは、装着者の移動を補助するためのトルク（駆動トルク値τ１）と、重さを支えるためのトルク（保持トルク値τ２）との両方を実現できる総トルク値τ０で、アクチュエータを駆動する。
【００４５】
次に、駆動トルク値τ１の算出式について説明する。ここで、リンクの速度ｘ’と関節角速度θ’とは、ヤコビ行列Ｊを用いて、次の式（２）のような関係で表される。式（２）の両辺を微分すると式（３）のようになり、それを関節角加速度θ”でまとめると式（４）のようになる。
【００４６】
ｘ’＝Ｊ・θ’  ・・・（２）
ｘ”＝Ｊ’・θ’＋Ｊ・θ”  ・・・（３）
θ”-＝Ｊ＃（ｘ”−Ｊ’・θ’）  ・・・（４）
【００４７】
なお、式（３）におけるｘ”は直交三次元空間座標における加速度ベクトルであり、Ｊ’はヤコビ行列Ｊの一次微分値である。また、式（４）におけるＪ＃は、ヤコビ行列Ｊが正方行列でない場合におけるヤコビ行列Ｊの逆行列である。駆動トルク値τ１は、式（４）の右辺をＭ・θ”に代入すると、一般的に、次の式（５）のように求められる。
【００４８】
τ１＝Ｍ・Ｊ＃（ｘ”−Ｊ’・θ’）  ・・・（５）
【００４９】
ヤコビ行列Ｊの逆行列であるＪ＃は、特異点において、ｄｅｔＪ＝０となってしまうためゼロ割が発生し、値が発散する。この特異点における関節角度θを特異点角度とすると、特異点角度は、例えば関節が伸びきった関節角度である。また、特異点角度でなくても、特異点角度の近傍の場合、ｄｅｔＪが小さい値となるため、ｄｅｔＪを分母に持つＪ＃の値も大きくなる。従って、Ｊ＃に基づき算出される駆動トルク値τ１は、特異点角度や特異点角度の近傍で、値が算出できなかったり、パワーアシストスーツ１０の出力可能なトルク値を超えてしまったりするなどのおそれがある。すなわち、この場合、トルク値の出力過大に起因する出力異常が生じるおそれがある。本実施形態に係る第２制御部１Ｂは、特異点角度やその近傍において、算出する駆動トルク値τ１を、後述する仮想関節角度を用いて算出することで、特異点角度における駆動トルク値τ１の出力異常を回避する。なお、保持トルク値τ２は、負荷及び自重と、関節角度θとに基づき算出することができるため、ヤコビ行列Ｊの逆行列を用いて算出する必要がない。従って、保持トルク値τ２は、特異点であっても算出することができる。
【００５０】
以下、第２制御部１Ｂについて詳細に説明する。図４に示すように、第２制御部１Ｂは、関節角度取得部１０２と、座標算出部１０４と、仮想関節角度取得部１０６と、目標加速度取得部１０８と、駆動トルク値算出部１１０とを有する。
【００５１】
図５は、現在関節角度及び現在座標を説明するための模式図である。関節角度取得部１０２は、現在関節角度θ０を取得する。現在関節角度θ０とは、関節を介して隣接するリンク同士の現在の角度である。例えばパワースーツ１０が図５に示すような姿勢を取っている場合、腰関節の現在関節角度θ０は、大腿駆動機構２３（腰関節）を介して隣接する腰パーツ１１(腰リンク)と大腿装着部４１（大腿リンク）との間の現在関節角度θ０ａである。また、膝関節の現在関節角度θ０は、下腿駆動機構４５（膝関節）を介して隣接する大腿装着部４１（大腿リンク）と下腿装着部４２（下腿リンク）との間の現在関節角度θ０ｂである。また、足首関節の現在関節角度θ０は、回動軸４７（足首関節）を介して隣接する下腿装着部４２（下腿リンク）と足装着部４３（足リンク）との間の現在関節角度θ０ｃである。関節角度取得部１０２は、アクチュエータの制御値などから、各関節の現在関節角度θ０、ここでは現在関節角度θ０ａ、θ０ｂ、θ０ｃを取得する。
【００５２】
図４に示す座標算出部１０４は、現在関節角度θ０ａ、θ０ｂ、θ０ｃに基づき、リンクの現在の座標である現在座標Ｃ０を算出する。本実施形態において、現在座標Ｃ０は、原点座標Ｃを原点とした場合の、足装着部４３（足リンク）の足先（爪先）の座標である。本実施形態においては、原点座標Ｃは、回動軸４７（足首関節）の座標である。原点座標Ｃは、ｘ方向、ｚ方向、及びφ方向の３方向で規定した座標である。図５に示すように、ｚ方向は、原点座標Ｃから大腿駆動機構２３（腰関節）に向かう方向である。ｘ方向は、ｚ方向と直交する方向であり、パワーアシストスーツ１０の前後方向である。φ方向は、原点座標Ｃと足装着部４３（足リンク）の足先との角度である。ここでは、ｘ方向座標、ｚ方向座標、φ方向座標の順に、原点座標Ｃを（０，０，０）とし、現在座標Ｃ０を（ｘ０、ｚ０、φ０）とする。なお、現在座標Ｃ０は、足装着部４３（足リンク）の座標であることが好ましいが、足リンク以外のリンクの任意の位置であってよい。現在関節角度θ０ａ、θ０ｂ、θ０ｃ及び各リンクの長さが分かっているので、座標算出部１０４は、足リンク以外のリンクのいずれの位置の座標も算出可能である。
【００５３】
図４に示す仮想関節角度取得部１０６は、現在関節角度θ０が特異点角度である場合に、現在関節角度θ０から所定の変位角度Δθだけ異なったリンク同士の仮想の角度である仮想関節角度θ１を算出する。特異点角度とは、上述のように特異点である場合の関節角度である。従って、現在関節角度θ０に基づいて算出される逆ヤコビ行列が発散する場合に、その現在関節角度θ０は、特異点角度であるということができる。パワーアシストスーツ１０の場合、膝関節が特異点角度である場合に、装着者の移動を補助するための駆動トルクτ１が無限大となり出力異常となる。仮想関節角度取得部１０６は、膝関節の角度、すなわち、現在関節角度θ０ｂが特異点角度である場合に、現在関節角度θ０ｂから所定の変位角度Δθｂだけ異なったリンク同士の仮想の角度である仮想関節角度θ1ｂを算出する。現在関節角度θ０ｂは、０°、すなわち膝が伸びきった場合が特異点角度である。
【００５４】
仮想関節角度取得部１０６は、現在関節角度θ０ｂが特異点角度である場合に、仮想関節角度θ１ｂを算出する。従って、膝関節の角度である現在関節角度θ０ｂは、全ての関節のうち、特異点問題による出力異常を回避する対象の関節である、特異点回避現在関節角度θ０ｂであると言い換えることができる。ただし、仮想関節角度取得部１０６は、現在関節角度θ０ｂだけでなく、他の現在関節角度θ０、例えば現在関節角度θ０ａ、θ０ｃが特異点角度である場合にも、仮想関節角度θ１を算出してもよい。以下、仮想関節角度θ1ｂの算出について詳細に説明する。
【００５５】
仮想関節角度取得部１０６は、仮想座標算出部１２０及び仮想関節角度算出部１２２を有する。仮想座標算出部１２０は、現在座標Ｃ０の１つの方向（軸）に対応する座標のみを所定の変位距離εだけ変化させた仮想座標Ｃ１を算出する。図６は、仮想座標及び仮想関節角度を説明するための模式図である。図６に示すように、仮想座標算出部１２０は、現在座標Ｃ０のうち、ｚ方向に対応する座標のみを変位距離εだけ変化させた仮想座標Ｃ１を算出する。εは、予め定められた所定の距離である。εの値は、例えば下腿装着部４２の長さの５％以上１０％以下である。ただし、εの値は、特異点角度にある場合にこのεの値だけ座標を変化させた場合に、その座標により算出されたトルク値が出力可能なトルク値を上回らないように設定されるものであれば、任意の値とすることができる。出力可能なトルク値は、リンク長やモータ定格出力など、パワーアシストスーツ１０の性能やその制御性に応じて異なるものである。従って、εの値は、パワーアシストスーツ１０の性能や動かしたい制御性に基づき任意に設定することができる。
【００５６】
仮想座標算出部１２０は、座標ｚ０から変位距離εを差し引いて、座標が（ｘ０、ｚ０−ε、φ０）である仮想座標Ｃ１を算出する。すなわち、仮想座標算出部１２０は、現在座標Ｃ０のｚ方向の座標ｚ０を、下腿駆動機構４５（膝関節）の方向、すなわち仮想関節角度θ1ｂを算出する関節に向かって、変位距離εだけ移動させて、仮想座標Ｃ１を算出する。言い換えれば、仮想座標算出部１２０は、現在座標Ｃ０を、ｚ方向に沿って変位距離εだけ脚を縮める方向に移動させた仮想座標Ｃ１を算出する。なお、仮想座標算出部１２０は、少なくとも１つの方向（軸）に対応する座標を変位距離εだけ変化させればよく、２方向以上の座標を変化させて、仮想座標Ｃ１を算出してもよい。この場合、変位距離εは、方向毎に定められる。
【００５７】
仮想関節角度算出部１２２は、リンクが仮想座標Ｃ１に位置すると仮定した場合のリンク同士の角度を、仮想関節角度θ１として算出する。本実施形態では、仮想関節角度算出部１２２は、実際には現在座標Ｃ０に位置している足装着部４３の足先が、仮想座標Ｃ１に位置していると仮定した場合の、各関節の関節角度を、仮想関節角度θ１として算出する。さらに言えば、仮想関節角度算出部１２２は、仮想座標Ｃ１の座標（ｘ０、ｚ０−ε、φ０）に基づき、腰関節の仮想関節角度θ1aと膝関節の仮想関節角度θ1ｂと足首関節の仮想関節角度θ1ｃとを算出する。腰関節の関節角度は実際には現在関節角度θ０ａであるため、仮想関節角度θ1aは、腰関節の仮想の関節角度であるということができる。仮想関節角度θ1ｂ及び仮想関節角度θ1ｃも、同様に、それぞれ膝関節及び足首関節の仮想の関節角度である。なお、仮想座標Ｃ１及び各リンクの長さが分かっているので、仮想関節角度算出部１２２は、仮想座標Ｃ１に基づき、仮想関節角度θ１ａ、θ１ｂ、θ１ｃを算出することができる。
【００５８】
仮想関節角度θ1ｂは、現在座標Ｃ０を変位距離εだけ移動させた仮想座標Ｃ１に基づき算出されたものである。そのため、仮想関節角度θ1ｂは、実際の関節角度である現在関節角度θ０ｂから、変位角度Δθｂだけ異なった角度であるということができる。さらに、仮想座標Ｃ１は、現在座標Ｃ０を下腿駆動機構４５（膝関節）に向かって移動させたものである。従って、仮想関節角度θ1ｂである場合の、下腿駆動機構４５に連結するリンク同士の距離、すなわち大腿装着部４１（大腿リンク）と下腿装着部４２（下腿リンク）との間の距離は、現在座標Ｃ０である場合の大腿装着部４１（大腿リンク）と下腿装着部４２（下腿リンク）との間の距離よりも、短い。言い換えれば、仮想座標算出部１２０及び仮想関節角度算出部１２２は、仮想関節角度θ1ｂである場合の下腿駆動機構４５に連結するリンク同士の距離が、仮想関節角度θ1ｂである場合の下腿駆動機構４５に連結するリンク同士の距離よりも短くなるように、仮想関節角度θ1ｂを算出している。また、仮想関節角度θ1ｂは、現在関節角度θ０ｂから、変位角度Δθｂだけ角度が大きく、すなわち変位角度Δθｂだけ膝をより曲げた角度になっているということもできる。
【００５９】
以上のように、仮想座標算出部１２０及び仮想関節角度算出部１２２は、現在関節角度θ０ｂが、特異点角度である場合に、仮想座標Ｃ１及び仮想関節角度θ１ａ、θ１ｂ、θ１ｃを算出するものであるが、特異点角度でない場合でも、同様に仮想座標Ｃ１及び仮想関節角度θ１ａ、θ１ｂ、θ１ｃを算出する。
【００６０】
図４に示す目標加速度取得部１０８は、リンクの目標とする移動加速度である目標加速度ａを取得する。本実施形態においては、目標加速度取得部１０８は、足装着部４３（足リンク）の目標とする移動加速度を、目標加速度ａとして取得する。本実施形態においては、目標加速度取得部１０８は、装着者の足底荷重値の変化量に基づき、目標加速度ａを算出する。具体的には、目標加速度取得部１０８は、荷重検出装置４４が逐次検出した装着者の足底荷重値を取得し、取得した足底荷重値に基づき、足底荷重値の変化量を算出する。荷重検出装置４４が検出した装着者の足底荷重値を足底荷重値Ｆとすると、目標加速度取得部１０８は、足底荷重値Ｆの時間ｔでの一階微分値に対応する荷重値変化量ｆ（Ｆ）を算出する。荷重値変化量ｆ（Ｆ）は、足底荷重値Ｆの変化量である。ただし、目標加速度取得部１０８による足底荷重値の変化量の算出方法は、足底荷重値Ｆの変化量を一階微分で算出することに限られず、例えば、今回取得された足底荷重値Ｆと前回取得された足底荷重値Ｆとの差分を、足底荷重値の変化量としてもよい。
【００６１】
目標加速度取得部１０８は、次の式（６）に示すように、補正係数Ｋと荷重値変化量ｆ（Ｆ）とを乗じて、その乗じた値にマイナスを乗じることにより、目標加速度ａを算出する。
【００６２】
ａ＝−Ｋ・ｆ（Ｆ）  ・・・（６）
【００６３】
ここで、Ｋは予め定められた所定の係数である。目標加速度ａは、荷重値変化量ｆ（Ｆ）に対してマイナスが乗じられている。従って、目標加速度取得部１０８は、足底荷重値Ｆが増加した場合に、足を下げる又は踏ん張る方向へ加速度を発生させるように、目標加速度ａを算出する。また、目標加速度取得部１０８は、足底荷重値Ｆが減少した場合に、足を上げる方向へ加速度を発生させるように、目標加速度ａを算出する。
【００６４】
目標加速度取得部１０８は、足底荷重値Ｆの変化量に基づき目標加速度ａを算出するものであるが、目標加速度ａを取得するものであれば、目標加速度ａの取得方法は、これに限られず任意である。なお、パワーアシストスーツ１０の制御において、厳密な定位性は不要である。装着者の体格等に応じて到達させたい位置目標は異なるためである。一方、バネとして制御を定義すると位置拘束となり、パワーアシストスーツ１０を装着した装着者の意図と異なる動作に対して剛性を持った動きになる可能性がある。そこで、第２制御部１Ｂは、目標加速度ａに基づき駆動トルクτ１を算出するため、力の入力に対してパワーアシストスーツ１０の足先の絶対的な位置が決まらないように、非定位性の制御を実現している。すなわち、第２制御部１Ｂは、位置制御ループを有していない。
【００６５】
図４に示す駆動トルク値算出部１１０は、目標加速度ａと仮想関節角度θ１ａ、θ１ｂ、θ１ｃとに基づき、駆動トルク値τ１を算出する。駆動トルク値算出部１１０は、式（５）の加速度ｘ”を目標加速度ａに置き換え、次の式（７）により駆動トルク値τ１を算出する。
【００６６】
τ１＝Ｍ・Ｊ＃（ａ−Ｊ’・θ’）  ・・・（７）
【００６７】
具体的には、駆動トルク値算出部１１０は、仮想関節角度θ１ａ、θ１ｂ、θ１ｃを用いて、Ｊ＃を算出する。仮想関節角度θ１ｂは、現在関節角度θ０ｂから変位角度Δθｂだけ変位させた角度であるため、逆ヤコビ行列であるＪ＃が発散しない。従って、駆動トルク値算出部１１０は、現在関節角度θ０ｂが特異点角度であっても、逆ヤコビ行列が発散しない仮想関節角度θ１ｂに基づき、駆動トルク値τ１を適切に算出することができる。なお、駆動トルク値算出部１１０は、Ｊ’・θ’については、実際の関節角度、すなわち現在関節角度θ０ａ、θ０ｂ、θ０ｃを用いて算出する。
【００６８】
式（４）に示すように、Ｊ＃（ａ−Ｊ’・θ’）は、加速度ｘ”を目標加速度ａとした場合の角加速度であるため、Ｊ＃（ａ−Ｊ’・θ’）は、リンクを移動させる目標とする角加速度である、目標角加速度ということができる。
【００６９】
駆動トルク値決定部１４２は、決定した駆動トルク値τ１の情報をアクチュエータ制御部１Ｃに伝達する。アクチュエータ制御部１Ｃは、駆動トルク値決定部１４２から取得した駆動トルク値τ１と、第１制御部１Ａｃから取得した保持トルク値τ２の合計値を、総トルク値τ０として算出し、その総トルク値τ０で、アクチュエータを駆動する。
【００７０】
次に、フローチャートを用いて、駆動トルク値τ１の算出フローを説明する。図７は、第１実施形態に係る駆動トルク値の算出フローを説明するフローチャートである。図７に示すように、第２制御部１Ｂは、関節角度取得部１０２により、現在関節角度θ０ａ、θ０ｂ、θ０ｃを取得し（ステップＳ１０）、座標算出部１０４により、現在関節角度θ０ａ、θ０ｂ、θ０ｃに基づき現在座標Ｃ０を算出する（ステップＳ１２）。
【００７１】
現在座標Ｃ０を算出した後、第２制御部１Ｂは、仮想座標算出部１２０により、現在座標Ｃ０から変位距離εだけ座標を変化させた仮想座標Ｃ１を算出する（ステップＳ１４）。仮想座標算出部１２０は、現在座標Ｃ０のｚ方向の座標ｚ０を、大腿駆動機構２３の方向に向かって、変位距離εだけ移動させて、仮想座標Ｃ１を算出する。仮想座標Ｃ１を算出した後、第２制御部１Ｂは、仮想関節角度算出部１２２により、仮想座標Ｃ１から仮想関節角度θ１ａ、θ１ｂ、θ１ｃを算出する（ステップＳ１６）。第２制御部１Ｂは、足装着部４３の足先が仮想座標Ｃ１に位置していると仮定した場合の各関節の関節角度を、仮想関節角度θ１ａ、θ１ｂ、θ１ｃとして算出する。
【００７２】
また、第２制御部１Ｂは、目標加速度取得部１０８により、目標加速度ａを取得する（ステップＳ１８）。目標加速度取得部１０８は、例えば上述の式（６）に基づき、目標加速度ａを算出する。なお、ステップＳ１８は、後述するステップＳ２０の前に行われれば、その処理順は任意である。
【００７３】
仮想関節角度θ１ａ、θ１ｂ、θ１ｃと目標加速度ａを算出した後、第２制御部１Ｂは、駆動トルク値算出部１１０により、目標加速度ａと仮想関節角度θ１ａ、θ１ｂ、θ１ｃとから、駆動トルク値τ１を算出する（ステップＳ２０）。駆動トルク値算出部１１０は、上述の式（７）に基づき、駆動トルク値τ１を算出する。駆動トルク値算出部１１０は、その駆動トルク値τ１をアクチュエータ制御部１Ｃに伝達する。アクチュエータ制御部１Ｃは、駆動トルク値算出部１１０が算出した第１制御部１Ａから取得した保持トルク値τ２の合計値を、総トルク値τ０として算出し、その総トルク値τ０で、アクチュエータを駆動する。
【００７４】
ステップＳ２０の後は、ステップＳ２２に移動し、処理が終了していない場合（ステップＳ２２；Ｎｏ）、ステップＳ１０に戻り、次のタイミングでの現在関節角度を取得し、その後同様の処理を繰り返す。処理が終了した場合（ステップＳ２２；Ｙｅｓ）、本処理を終了する。
【００７５】
以上説明したように、本実施形態に係る制御装置１は、関節を介して連結された複数のリンクをアクチュエータにより駆動する作動機構（本実施形態ではパワーアシストスーツ１０）の制御装置である。制御装置１は、関節角度取得部１０２と、仮想関節角度取得部１０６と、目標加速度取得部１０８と、駆動トルク値算出部１１０と、アクチュエータ制御部１Ｃとを有する。関節角度取得部１０２は、関節を介して隣接するリンク同士の現在の角度である現在関節角度θ０ａ、θ０ｂ、θ０ｃを取得する。仮想関節角度取得部１０６は、現在関節角度θ０ｂが特異点角度である場合に、現在関節角度θ０ａ、θ０ｂ、θ０ｃから所定の変位角度Δθｂだけ異なった仮想関節角度θ1a、θ1ｂ、θ1ｃを算出する。目標加速度取得部１０８は、リンクの目標とする移動加速度である目標加速度ａを取得する。駆動トルク値算出部１１０は、目標加速度ａと仮想関節角度θ1a、θ1ｂ、θ1ｃとに基づき、駆動トルク値τ１を算出する。そして、アクチュエータ制御部１Ｃは、アクチュエータを駆動するトルク値として駆動トルク値τ１を用いて、アクチュエータを制御する。
【００７６】
この制御装置１は、仮想関節角度θ１ａ、θ１ｂ、θ１ｃを用いて、駆動トルク値τ１を算出する。仮想関節角度θ１ｂは、現在関節角度θ０ｂから変位角度Δθｂだけ変位させた角度であるため、駆動トルク値τ１の算出に用いる逆ヤコビ行列が発散しない。従って、制御装置１は、現在関節角度θ０ｂが特異点角度であっても、逆ヤコビ行列が発散しない仮想関節角度θ１ｂに基づき、駆動トルク値τ１を適切に算出することができる。従って、制御装置１は、仮想関節角度θ１ｂを算出するだけで、駆動トルク値τ１の出力異常を容易に抑制することができる。また、この制御装置１は、目標加速度ａに基づき駆動トルク値τ１を算出しているため、非定位性の制御となり、自由な動作に対応することが可能となる。
【００７７】
仮想関節角度取得部１０６は、仮想関節角度θ１ａ、θ１ｂ、θ１ｃである場合のリンク同士の距離が、現在関節角度θ０ａ、θ０ｂ、θ０ｃである場合のリンク同士の距離よりも短くなるように、仮想関節角度θ１ａ、θ１ｂ、θ１ｃを算出する。すなわち、制御装置１は、関節が伸びきった場合の特異点に陥った場合、関節を曲げる方向に変位した仮想関節角度を用いて、駆動トルク値τ１を算出する。従って、制御装置１は、関節が伸びきった場合の特異点においても、駆動トルク値τ１の出力異常を適切に抑制することができる。また、関節を曲げる方向、すなわち特異点から遠ざかる方向に変位した仮想関節角度を用いるため、制御装置１は出力異常をより適切に抑制することができる。さらに、例えば歩行動作や屈伸動作で、膝関節が特異点となった場合に、現在関節角度θ０ｂよりも膝を曲げる方向に変位させた仮想関節角度θ１ｂを用いて、駆動トルク値τ１を算出する。従って、制御装置１は、足の軌跡に従った駆動トルク値τ１を算出することができる。
【００７８】
また、制御装置１は、現在関節角度θ０ａ、θ０ｂ、θ０ｃに基づき、リンクの現在の座標である現在座標Ｃ０を算出する座標算出部１０４を更に有する。そして、仮想関節角度取得部１０６は、仮想座標算出部１２０と仮想関節角度算出部１２２とを有する。仮想座標算出部１２０は、現在座標Ｃ０のうち、少なくとも１つの軸に対応する座標を所定の変位距離εだけ変化させた座標である仮想座標Ｃ１を算出する。仮想関節角度算出部１２２は、リンクが仮想座標Ｃ１に位置すると仮定した場合のリンク同士の角度を、仮想関節角度θ１ａ、θ１ｂ、θ１ｃとして算出する。この制御装置１は、変位距離εだけ関節角度が変位した仮想関節角度θ１ａ、θ１ｂ、θ１ｃに基づき駆動トルク値τ１を算出するため、特異点であっても、駆動トルク値τ１の出力異常を適切に抑制することができる。
【００７９】
（第２実施形態）
次に、第２実施形態について説明する。第２実施形態に係る制御装置１は、変位距離εを、現在関節角度θ０に応じて変化させる点で、第１実施形態とは異なる。第２実施形態において、第１実施形態と構成が共通する箇所は、説明を省略する。
【００８０】
図８は、第２実施形態における現在関節角度と変位距離との関係を示すグラフである。第１実施形態においては、変位距離εは予め定められた一定の値であったが、第２実施形態に係る仮想座標算出部１２０は、現在関節角度θ０ｂの値に基づき、変位距離εを変化させる。図８の横軸は現在関節角度θ０ｂであり、縦軸は変位距離εである。図８に示すように、仮想座標算出部１２０は、現在関節角度θ０ｂが０°である場合、すなわち特異点角度である場合に、変位距離εの値を、所定の値である変位距離ε１とする。このε１は、第１実施形態で示した変位距離εと同様の値のものである。仮想座標算出部１２０は、現在関節角度θ０ｂが０°から閾値角度Ｔ１まで大きくなるに従って、変位距離εの値を、連続的に低下させる。仮想座標算出部１２０は、現在関節角度θ０ｂが閾値角度Ｔ１である場合に、変位距離εの値を０とする。そして、仮想座標算出部１２０は、現在関節角度θ０ｂが、閾値角度Ｔ１から、閾値角度Ｔ１より大きい閾値角度Ｔ２までの間は、変位距離εの値を０とする。仮想座標算出部１２０は、現在関節角度θ０ｂが閾値角度Ｔ２から１８０°まで大きくなるに従い、変位距離εの値を０から連続的に増加させる。仮想座標算出部１２０は、現在関節角度θ０ｂが１８０°である場合、すなわち特異点角度である場合に、変位距離εの値を変位距離ε１とする。
【００８１】
閾値角度Ｔ１及び閾値角度Ｔ２は、予め定められた値である。閾値角度Ｔ１は、例えば、１°以上５°以下であり、閾値角度Ｔ２は、１７５°以上１７９°以下である。ただし、閾値角度Ｔ１及び閾値角度Ｔ２は、現在関節角度θ０ｂが閾値角度Ｔ１と閾値角度Ｔ２との間である場合に、算出されたトルク値が出力可能なトルク値を上回らないように設定されるものであれば、任意の値とすることができる。出力可能なトルク値は、リンク長やモータ定格出力など、パワーアシストスーツ１０の性能やその制御性に応じて異なるものである。従って、閾値角度Ｔ１及び閾値角度Ｔ２の値は、パワーアシストスーツ１０の性能や動かしたい制御性に基づき任意に設定することができる。また、図８に示すように、変位距離εの値は、現在関節角度θ０ｂに対する非線形関数であるということができる。ただし、変位距離εの値は、（ｘ０２＋ｚ０２）０．５に対する非線形関数であってもよい。
【００８２】
変位距離εは、閾値角度Ｔ１から閾値角度Ｔ２までの間、すなわち現在関節角度θ０ｂが特異点角度でない所定の範囲内の角度である場合に、０となる。変位距離εが０ということは、仮想座標Ｃ１は現在座標Ｃ０と同じ位置であるため、変位角度Δθが０である。仮想関節角度取得部１０６は、現在関節角度θ０ｂが所定の範囲内の角度である場合に、変位距離εを０とすることで変位角度Δθを０とし、仮想関節角度θ１ａ、θ１ｂ、θ１ｃとして現在関節角度θ０ａ、θ０ｂ、θ０ｃを用いる。そして、駆動トルク値算出部１１０は、現在関節角度θ０ａ、θ０ｂ、θ０ｃの値を用いて駆動トルク値τ１を算出する。
【００８３】
このように、第２実施形態に係る制御装置１は、特異点角度である場合に、変位距離ε１を用いて特異点における出力異常を抑制しつつ、実際の関節角度である現在関節角度θ０ａ、θ０ｂ、θ０ｃの値を用いて駆動トルク値τ１を算出する所定の角度範囲を有する。言い換えれば、第２実施形態に係る制御装置１は、現在関節角度θ０ｂが特異点角度であるかを検出して、特異点角度である場合には仮想関節角度を用いて駆動トルク値τ１を算出し、特異点角度でない所定の範囲内の角度である場合には現在関節角度を用いて駆動トルク値τ１を算出するということもできる。従って、第２実施形態に係る制御装置１は、特異点角度である場合に変位距離ε１を用いて出力異常を抑制しつつ、特異点でない場合には、実際の関節角度を用いることで、より正確に出力を行うことができる。
【００８４】
また、逆ヤコビ行列は、特異点角度でなくても、特異点角度の近傍であって特異点角度から所定の角度だけ離れた特異点近傍角度である場合には、値が過大となる。従って、駆動トルク値τ１の値は、特異点近傍角度でも異常となるおそれがある。第２実施形態に係る制御装置１は、閾値角度Ｔ１と閾値角度Ｔ２との間を、特異点角度から特異点近傍角度の範囲外としている。第２実施形態に係る制御装置１は、現在関節角度θ０ｂが特異点角度から特異点近傍角度である場合、すなわち、現在関節角度θ０ｂが０°以上であって閾値角度Ｔ１より小さい範囲、及び現在関節角度θ０ｂが閾値角度Ｔ２より大きく１８０°以下の範囲である場合に、変位距離εを０より大きくしている。そして、第２実施形態に係る制御装置１は、現在関節角度θ０ｂが特異点角度から特異点近傍角度の範囲外である場合、すなわち、現在関節角度θ０ｂが閾値角度Ｔ１以上閾値角度Ｔ２以下である場合に、変位距離εを０としている。
【００８５】
変位距離εが０より大きいと、変位角度Δθは０より大きくなる。従って、第２実施形態において、変位角度Δθは、現在関節角度θ０ｂが、特異点角度から特異点近傍角度までの間である場合に、０より大きい値となる。そして、変位角度Δθは、現在関節角度θ０ｂが、特異点角度から特異点近傍角度の範囲外である場合に、０となる。そのため、第２実施形態に係る制御装置１は、逆ヤコビ行列の値が過大になる特異点近傍角度においても、駆動トルク値τ１の出力異常を抑制することができる。
【００８６】
（第３実施形態）
次に、第３実施形態について説明する。第３実施形態に係る制御装置１ａは、予め記憶している現在関節角度と仮想関節角度との関係に基づき仮想関節角度を算出する点で、第１実施形態とは異なる。第３実施形態において、第１実施形態と構成が共通する箇所は、説明を省略する。
【００８７】
図９は、第３実施形態に係る制御装置のブロック図である。図９に示すように、制御装置１ａが有する第２制御部１Ｂａは、仮想関節角度取得部１０６ａを有する。仮想関節角度取得部１０６ａは、関係記憶部１２１ａと仮想関節角度算出部１２２ａとを有する。
【００８８】
図１０は、第３実施形態における現在関節角度と仮想関節角度との関係を示すグラフである。関係記憶部１２１ａは、現在関節角度θ０ｂと仮想関節角度θ1ｂとの関係である関節角度関係を記憶している。図１０は、関係記憶部１２１ａが記憶する関節角度関係を示すグラフであり、横軸が現在関節角度θ０ｂであり、縦軸が仮想関節角度θ1ｂである。図１０に示すように、関節角度関係では、現在関節角度θ０ｂが０°である場合、すなわち特異点角度である場合に、仮想関節角度θ1ｂの値がθ1ｂａとなる。θ1ｂａは、例えば、１°以上５°以下である。ただし、θ1ｂａは、仮想関節角度θ1ｂの値がθ1ｂａである場合に、算出されたトルク値が出力可能なトルク値を上回らないように設定されるものであれば、任意の値とすることができる。出力可能なトルク値は、リンク長やモータ定格出力など、パワーアシストスーツ１０の性能やその制御性に応じて異なるものである。従って、θ1ｂａの値は、パワーアシストスーツ１０の性能や動かしたい制御性に基づき任意に設定することができる。関節角度関係では、現在関節角度θ０ｂが０°から閾値角度Ｔ３まで大きくなるに従って、仮想関節角度θ1ｂの値が、θ1ｂａからθ1ｂｂまで連続的に増加する。θ1ｂｂは、閾値角度Ｔ３と同じ値である。すなわち、現在関節角度θ０ｂが０°以上であって閾値角度Ｔ３より小さい場合、仮想関節角度θ1ｂは、対応する現在関節角度θ０ｂの値より大きくなる。そして、現在関節角度θ０ｂが閾値角度Ｔ３である場合、仮想関節角度θ1ｂの値が現在関節角度θ０ｂと同じになる。
【００８９】
関節角度関係は、現在関節角度θ０ｂが閾値角度Ｔ３から閾値角度Ｔ４まで大きくなるに従って、仮想関節角度θ1ｂの値が、θ1ｂｂからθ1ｂｃまで直線的に増加する。θ1ｂｃは、閾値角度Ｔ４と同じ値である。すなわち、関節角度関係は、現在関節角度θ０ｂが閾値角度Ｔ３から閾値角度Ｔ４の間は、仮想関節角度θ1ｂが現在関節角度θ０ｂと同じ値になる。
【００９０】
関節角度関係は、現在関節角度θ０ｂが閾値角度Ｔ４から１８０°まで大きくなるに従って、仮想関節角度θ1ｂの値が、θ1ｂｃからθ1ｂｄまで連続的に増加する。θ1ｂｄは、１８０°より小さい値であり、例えば１７５°以上１７９°以下である。ただし、θ1ｂｄは、仮想関節角度θ1ｂの値がθ1ｂｄである場合に、算出されたトルク値が出力可能なトルク値を上回らないように設定されるものであれば、任意の値とすることができる。出力可能なトルク値は、リンク長やモータ定格出力など、パワーアシストスーツ１０の性能やその制御性に応じて異なるものである。従って、θ1ｂｄの値は、パワーアシストスーツ１０の性能や動かしたい制御性に基づき任意に設定することができる。すなわち、現在関節角度θ０ｂが閾値角度Ｔ４より大きく１８０°以下である場合、仮想関節角度θ1ｂは、対応する現在関節角度θ０ｂの値より小さくなる。
【００９１】
変位角度Δθは、現在関節角度θ０ｂと仮想関節角度θ1ｂとの差である。従って、変位角度Δθは、現在関節角度θ０ｂが閾値角度Ｔ３から閾値角度Ｔ４までの間は０であり、それ以外では、０より大きい値となる。すなわち、関節角度関係は、現在関節角度θ０ｂの値に応じて、変位角度Δθが異なるものであるということができる。なお、閾値角度Ｔ３及び閾値角度Ｔ４は、予め定められた値である。閾値角度Ｔ３は、例えば１°以上５°以下であり、閾値角度Ｔ４は、例えば１７５°以上１７９°以下である。ただし、閾値角度Ｔ３及び閾値角度Ｔ４は、現在関節角度θ０ｂが閾値角度Ｔ３と閾値角度Ｔ４との間である場合に、算出されたトルク値が出力可能なトルク値を上回らないように設定されるものであれば、任意の値とすることができる。出力可能なトルク値は、リンク長やモータ定格出力など、パワーアシストスーツ１０の性能やその制御性に応じて異なるものである。従って、閾値角度Ｔ３及び閾値角度Ｔ４の値は、パワーアシストスーツ１０の性能や動かしたい制御性に基づき任意に設定することができる。
【００９２】
仮想関節角度算出部１２２ａは、この関節角度関係に基づき、取得した現在関節角度θ０ｂの値における仮想関節角度θ1ｂの値を算出する。仮想関節角度算出部１２２ａは、この仮想関節角度θ1ｂの値に基づき、他の全ての仮想関節角度θ１、ここでは仮想関節角度θ1a、θ1ｃを算出する。仮想関節角度θ1ｂとリンクの長さと現在座標Ｃ０が分かっているため、仮想関節角度算出部１２２ａは、仮想関節角度θ1ｂの値に基づき、仮想関節角度θ1a、θ1ｃを算出することができる。すなわち、第３実施形態における第２制御部１Ｂａは、仮想座標Ｃ１を算出せずに、関節関係角度に基づき、仮想関節角度θ1a、θ1ｂ、θ1ｃの値を算出する。
【００９３】
変位角度Δθは、現在関節角度θ０ｂが閾値角度Ｔ３から閾値角度Ｔ４までの間、すなわち現在関節角度θ０ｂが特異点角度でない所定の角度範囲の場合に、０となる。仮想関節角度取得部１０６ａは、現在関節角度θ０ｂが所定の角度範囲内である場合に、関節角度関係に基づき変位角度Δθを０とし、仮想関節角度θ１ａ、θ１ｂ、θ１ｃとして現在関節角度θ０ａ、θ０ｂ、θ０ｃを用いる。そして、駆動トルク値算出部１１０は、現在関節角度θ０ｂが所定の角度範囲内である場合、現在関節角度θ０ａ、θ０ｂ、θ０ｃの値を用いて駆動トルク値τ１を算出する。
【００９４】
このように、第３実施形態に係る制御装置１ａは、特異点角度である場合に、変位角度Δθを０より大きくすることで特異点における出力異常を抑制しつつ、実際の関節角度である現在関節角度θ０ａ、θ０ｂ、θ０ｃの値を用いて駆動トルク値τ１を算出する所定の角度範囲を有する。言い換えれば、第３実施形態に係る制御装置１ａは、現在関節角度θ０ｂが特異点角度であるかを検出して、特異点角度である場合には仮想関節角度を用いて駆動トルク値τ１を算出し、所定の角度範囲である場合には現在関節角度を用いて駆動トルク値τ１を算出するということもできる。従って、第３実施形態に係る制御装置１ａは、特異点角度である場合に仮想関節角度を用いて出力異常を抑制しつつ、特異点でない場合には、実際の関節角度を用いることで、より正確に出力を行うことができる。
【００９５】
第３実施形態に係る制御装置１ａは、閾値角度Ｔ３と閾値角度Ｔ４との間を、特異点角度から特異点近傍角度の範囲外としている。制御装置１ａは、現在関節角度θ０ｂが特異点角度から特異点近傍角度である場合、すなわち、現在関節角度θ０ｂが０°以上であって閾値角度Ｔ３より小さい範囲、及び現在関節角度θ０ｂが閾値角度Ｔ４より大きく１８０°以下の範囲である場合に、変位角度Δθを０より大きくしている。そして、第３実施形態に係る制御装置１ａは、現在関節角度θ０ｂが特異点角度から特異点近傍角度の範囲外である場合、すなわち、現在関節角度θ０ｂが閾値角度Ｔ３以上閾値角度Ｔ４以下である場合に、変位角度Δθを０としている。そのため、第３実施形態に係る制御装置１ａは、逆ヤコビ行列の値が過大になる特異点近傍角度においても、駆動トルク値τ１の出力異常を抑制することができる。
【００９６】
以上説明したように、第３実施形態に係る制御装置１ａは、現在関節角度θ０ｂと仮想関節角度θ１ｂとの関節角度関係を記憶する関係記憶部１２１ａと、現在関節角度θ０ｂと関節角度関係に基づき、仮想関節角度θ１ａ、θ１ｂ、θ１ｃを算出する仮想関節角度算出部１２２ａと、を有する。関節角度関係は、現在関節角度θ０ｂの値に応じて、変位角度Δθが異なるものである。この制御装置１ａは、関節角度関係に基づき仮想関節角度θ１ａ、θ１ｂ、θ１ｃを算出するため、駆動トルク値τ１の出力異常を適切に抑制することができる。
【００９７】
（第４実施形態）
次に、第４実施形態について説明する。第４実施形態に係る制御装置１ｂは、補正係数Ｌに基づき、駆動トルク値を算出する点で、第１実施形態とは異なる。第４実施形態において、第１実施形態と構成が共通する箇所は、説明を省略する。
【００９８】
図１１は、第４実施形態に係る制御装置のブロック図である。図１１に示すように、制御装置１ｂが有する第２制御部１Ｂｂは、補正係数記憶部１０９ｂと、駆動トルク値算出部１１０ｂとを有する。
【００９９】
補正係数記憶部１０９ｂは、変位角度Δθだけ関節角度を変化させた場合のリンクの角加速度の変化量の割合を示す補正係数Ｌを記憶している。補正係数Ｌは、第１基準角加速度θ２”と第２基準角加速度θ３”とに基づき算出される。第１基準角加速度θ２”は、第１基準関節角度θ２と、リンクの基準加速度ａｂとに基づき算出されたリンクの角加速度である。第１基準関節角度θ２は、第１基準角加速度θ２”の算出のために任意に設定された、腰関節、膝関節、及び足首関節の計算上の関節角度である。ただし、第１基準関節角度θ２は、特異点角度ではない角度である。さらに、第１基準関節角度θ２は、特異点近傍角度の範囲内であることが好ましい。基準加速度ａｂは、第１基準角加速度θ２”の算出のために任意に設定された足装着部４３（足リンク）の加速度である。
【０１００】
第２基準角加速度θ３”は、第２基準関節角度θ３と、リンクの基準加速度ａｂとに基づき算出されたリンクの角加速度である。第２基準関節角度θ３は、第１基準関節角度θ２からそれぞれ変位角度Δθだけ異なる、腰関節、膝関節、及び足首関節の計算上の関節角度である。第２基準関節角度θ３は、例えば第１基準関節角度θ２を現在関節角度θ０として、第１実施形態に示した仮想関節角度θ１の算出方法と同じ方法で算出される。第１基準角加速度θ２”及び 第２基準角加速度θ３”は、上述の式（４）のｘ”を基準加速度ａｂに置き換えて算出される。なお、第２基準関節角度θ３は、第１基準関節角度θ２から変位角度Δθだけ異なるものであったが、これに限られず、第１基準関節角度θ２から任意の角度だけ異なるものであってもよい。この場合、第２基準関節角度θ３と第１基準関節角度θ２との差分は、変位角度Δθ以下の値であることが好ましい。
【０１０１】
具体的には、補正係数Ｌは、次の式（８Ａ）に基づき算出されるものである。
【０１０２】
Ｌ＝（θ２”−θ３”）／{Ｊ＃（θ２）−Ｊ＃（θ３）}  ・・・（８Ａ）
【０１０３】
Ｊ＃（θ２）は、第１基準関節角度θ２である場合の逆ヤコビ行列であり、Ｊ＃（θ２）は、第２基準関節角度θ３である場合の逆ヤコビ行列である。補正係数Ｌは、スカラー値である。
【０１０４】
第２基準角加速度θ３”は、第１基準関節角度θ２と変位角度Δθだけ異なった第２基準関節角度θ３から算出されるものである。従って、補正係数Ｌは、仮想関節角度θ１における仮想関節角速度に対する、現在関節角度θ０における現在関節角速度の比率に相当する。さらに言えば、補正係数Ｌは、関節角度が異なった場合の角加速度の変化量の感度であるということができる。さらに言えば、補正係数Ｌは、逆ヤコビ行列の違いが角速度に及ぼす変化量の度合いであるということもできる。なお、補正係数記憶部１０９ｂは、第１基準関節角度θ２ａ、θ２ｂ、θ２ｃの値を異ならせて算出した補正係数を平均したものを、補正係数Ｌとして記憶してもよい。
【０１０５】
駆動トルク値算出部１１０ｂは、目標加速度ａと仮想関節角度θ１ａ、θ１ｂ、θ１ｃと補正係数Ｌとに基づき、駆動トルク値τ１を算出する。具体的には、駆動トルク値算出部１１０ｂは、次の式（８Ｂ）に示すように、補正係数Ｌを目的角加速度に乗じることにより、駆動トルク値τ１を算出する。
【０１０６】
τ１＝Ｍ・Ｌ・Ｊ＃（ａ−Ｊ’・θ’）  ・・・（８Ｂ）
【０１０７】
以上説明したように、第４実施形態に係る制御装置１ｂは、変位角度Δθだけ関節角度を変化させた場合のリンクの角加速度の変化量を示す補正係数Ｌを記憶する補正係数記憶部１０９ｂを更に有する。駆動トルク値算出部１１０ｂは、目標加速度ａと仮想関節角度θ１と補正係数Ｌとに基づき、駆動トルク値τ１を算出する。補正係数Ｌは、所定の関節角度である第１基準関節角度θ２に基づき算出された第１基準角加速度θ２”と、第１基準関節角度θ２から変位角度Δθだけ異なる第２基準関節角度θ３に基づき算出された第２基準角加速度とに基づき算出される。
【０１０８】
仮想関節角度θ１に基づき算出された駆動トルク値τ１は、実際の関節角度に基づいて算出されたものではないため、目標とする目標加速度ａを達成するために必要なトルク値と異なる値となる場合がある。例えば、足を上げる動作を行う場合であって、膝を縮める方向に仮想関節角度θ１を設定した場合は、仮想関節角度θ１に基づき算出された駆動トルク値τ１は、目標加速度ａを達成するために必要なトルク値よりも小さくなる。しかし、第４実施形態に係る制御装置１ｂは、変位角度Δθだけ関節角度を変化させた場合のリンクの角加速度の変化量を、予め補正係数Ｌとして算出している。制御装置１ｂは、この補正係数Ｌで補正して駆動トルク値τ１を算出するため、実際の目標加速度ａにより近くなるように駆動トルク値τ１を補正することができる。そのため、制御装置１ｂは、駆動トルク値τ１の出力異常をより適切に抑制することができる。
【０１０９】
（第５実施形態）
次に、第５実施形態について説明する。第５実施形態に係る制御装置１ｃは、第１実施形態と同様に、算出した駆動トルク値を用いてパワーアシストスーツ１０のアクチュエータを制御するものであるが、駆動トルク値の算出方法が、第１実施形態とは異なる。第５実施形態において、第１実施形態と内容が共通する箇所は、説明を省略する。
【０１１０】
図１２は、第５実施形態に係る制御装置のブロック図である。図１２に示すように、制御装置１ｃは、第１制御部１Ａｃと、第２制御部１Ｂｃと、アクチュエータ制御部１Ｃｃとを有する。第１制御部１Ａｃは、パワーアシストスーツ１０の自重を受け持つ制御、及びパワーアシストスーツ１０の装着者の脚に作用する負荷を補助する制御のためのトルクを算出する。後者の制御は、例えば、パワーアシストスーツ１０の装着者が物体を持つ際に、物体の質量による負荷をパワーアシストスーツ１０のリンク機構で受ける制御である。一方、第２制御部１Ｂｃは、リンクを目標加速度で移動させるためのトルクである駆動トルク値τ１を算出する。第１制御部１Ａｃが算出するトルク値を保持トルク値τ２とすると、アクチュエータ制御部１Ｃｃは、駆動トルク値τ１及び保持トルク値τ２を取得して、それらのトルク値を合計して、アクチュエータを駆動する。
【０１１１】
以下、アクチュエータを駆動するためのトルク値についてより詳細に説明する。アクチュエータを駆動するトルク値を総トルク値τ０とすると、総トルク値τ０は、一般的に次の式（９）で表される。
【０１１２】
τ０＝Ｍ・θ”＋ｈ（θ，θ’）＋ｇ(θ)  ・・・（９）
【０１１３】
ここで、Ｍはリンクの慣性モーメントであり、関節角度θから算出される値である。θ’は関節角速度であり、θ”は関節角加速度である。Ｍ・θ”は、第２制御部１Ｂｃによって算出される駆動トルク値τ１である。ｇ(θ)は、重力に関連する項であり、第１制御部１Ａｃによって算出される保持トルク値τ２である。ｈ（θ，θ’）は、コリオリ力に対応する項であり、総トルク値τ０に対する寄与率が低いため、本実施形態では無視される。すなわち、本実施形態において、アクチュエータ制御部１Ｃｃは、駆動トルク値τ１及び保持トルク値τ２の合計値を、総トルク値τ０として算出し、その総トルク値τ０で、アクチュエータを駆動する。ただし、アクチュエータ制御部１Ｃｃは、ｈ（θ，θ’）についても算出し、駆動トルク値τ１と保持トルク値τ２とｈ（θ，θ’）との合計値を総トルク値τ０として算出してもよい。
【０１１４】
さらに言えば、駆動トルク値τ１は、関節角加速度θ”に関連するトルクであり、リンクの目標とする移動加速度である目標加速度を実現するためのトルクである。言い換えれば、駆動トルク値τ１は、装着者の移動を補助するために先んじてリンクを動かすためのトルク値である。また、保持トルク値τ２は、関節角度θに関連するトルクであり、パワーアシストスーツ１０の自重や負荷を支えるためのトルクである。従って、アクチュエータ制御部１Ｃｃは、装着者の移動を補助するためのトルク（駆動トルク値τ１）と、重さを支えるためのトルク（保持トルク値τ２）との両方を実現できる総トルク値τ０で、アクチュエータを駆動する。
【０１１５】
次に、駆動トルク値τ１の算出式について説明する。ここで、リンクの速度ｘ’と関節角速度θ’とは、ヤコビ行列Ｊを用いて、次の式（１０）のような関係で表される。式（１０）の両辺を微分すると式（１１）のようになり、それを関節角加速度θ”でまとめると式（１２）のようになる。
【０１１６】
ｘ’＝Ｊ・θ’  ・・・（１０）
ｘ”＝Ｊ’・θ’＋Ｊ・θ”  ・・・（１１）
θ”-＝Ｊ＃（ｘ”−Ｊ’・θ’）  ・・・（１２）
【０１１７】
なお、式（１１）におけるｘ”は直交三次元空間座標における加速度ベクトルであり、Ｊ’はヤコビ行列Ｊの一次微分値である。また、式（１２）におけるＪ＃は、ヤコビ行列Ｊが正方行列でない場合におけるヤコビ行列Ｊの逆行列である。駆動トルク値τ１は、式（１２）の右辺をＭ・θ”に代入すると、一般的に、次の式（１３）のように求められる。
【０１１８】
τ１＝Ｍ・Ｊ＃（ｘ”−Ｊ’・θ’）  ・・・（１３）
【０１１９】
ヤコビ行列Ｊの逆行列であるＪ＃は、特異点において、ｄｅｔＪ＝０となってしまうため、ゼロ割が発生し値が発散する。この特異点における関節角度θを特異点角度とすると、特異点角度は、例えば関節が伸びきった関節角度θ＝０である。また、特異点角度でなくても、特異点角度の近傍の場合、ｄｅｔＪが小さい値となるため、ｄｅｔＪを分母に持つＪ＃の値も大きくなる。従って、Ｊ＃に基づき算出される駆動トルク値τ１は、特異点角度や特異点角度の近傍で、値が算出できなかったり、パワーアシストスーツ１０の出力可能なトルク値を超えてしまったりするおそれがある。本実施形態に係る第２制御部１Ｂｃは、特異点角度やその近傍において、算出する駆動トルク値τ１を、出力可能なトルク値以下の値とすることで、特異点角度における駆動トルク値τ１の出力異常を回避する。なお、保持トルク値τ２は、負荷及び自重と、関節角度θとに基づき算出することができるため、ヤコビ行列Ｊの逆行列を用いて算出する必要がない。従って、保持トルク値τ２は、特異点であっても算出することができる。
【０１２０】
以下、第２制御部１Ｂｃについて詳細に説明する。図１２に示すように、第２制御部１Ｂｃは、目標加速度取得部１３２と、仮駆動トルク値算出部１３４と、上限駆動トルク値取得部１３６と、トルク比率算出部１３８と、補正項算出部１４０と、駆動トルク値決定部１４２とを有する。
【０１２１】
目標加速度取得部１３２は、リンクの目標とする移動加速度である目標加速度ａを取得する。本実施形態においては、目標加速度取得部１３２は、足装着部４３（足リンク）の目標とする移動加速度を、目標加速度ａとして取得する。本実施形態においては、目標加速度取得部１３２は、装着者の足底荷重値の変化量に基づき、目標加速度ａを算出する。具体的には、目標加速度取得部１３２は、荷重検出装置４４が逐次検出した装着者の足底荷重値を取得し、取得した足底荷重値に基づき、足底荷重値の変化量を算出する。荷重検出装置４４が検出した装着者の足底荷重値を足底荷重値Ｆとすると、目標加速度取得部１３２は、足底荷重値Ｆの時間ｔでの一階微分値に対応する荷重値変化量ｆ（Ｆ）を算出する。荷重値変化量ｆ（Ｆ）は、足底荷重値Ｆの変化量である。ただし、目標加速度取得部１３２による足底荷重値の変化量の算出方法は、足底荷重値Ｆの変化量を一階微分で算出することに限られず、例えば、今回取得された足底荷重値Ｆと前回取得された足底荷重値Ｆとの差分を、足底荷重値の変化量としてもよい。
【０１２２】
目標加速度取得部１３２は、次の式（１４）に示すように、補正係数Ｋと荷重値変化量ｆ（Ｆ）とを乗じて、その乗じた値にマイナスを乗じることにより、目標加速度ａを算出する。
【０１２３】
ａ＝−Ｋ・ｆ（Ｆ）  ・・・（１４）
【０１２４】
ここで、Ｋは予め定められた所定の係数である。目標加速度ａは、荷重値変化量ｆ（Ｆ）に対してマイナスが乗じられている。従って、目標加速度取得部１３２は、足底荷重値Ｆが増加した場合に、足を下げる又は踏ん張る方向へ加速度を発生させるように、目標加速度ａを算出する。また、目標加速度取得部１３２は、足底荷重値Ｆが減少した場合に、足を上げる方向へ加速度を発生させるように、目標加速度ａを算出する。
【０１２５】
目標加速度取得部１３２は、足底荷重値の変化量に基づき目標加速度ａを算出するものであるが、目標加速度ａを取得するものであれば、目標加速度ａの取得方法は、これに限られず任意である。なお、パワーアシストスーツ１０の制御において、厳密な定位性は不要である。装着者の体格等に応じて到達させたい位置目標は異なるためである。一方、バネとして制御を定義すると位置拘束となり、パワーアシストスーツ１０を装着した装着者の意図と異なる動作に対して剛性を持った動きになる可能性がある。そこで、第２制御部１Ｂｃは、目標加速度ａに基づき駆動トルクτ１を算出するため、力の入力に対してパワーアシストスーツ１０の足先の絶対的な位置が決まらないように、非定位性の制御を実現している。すなわち、第２制御部１Ｂｃは、位置制御ループを有していない。
【０１２６】
図１２に示す仮駆動トルク値算出部１３４は、駆動トルク値τ１の仮の値である仮駆動トルク値τ１Ａを、目標加速度ａに基づき算出する。具体的には、仮駆動トルク値算出部１３４は、式（１３）のｘ”を目標加速度に置き換え、次の式（１５）に基づき仮駆動トルク値τ１Ａを算出する。
【０１２７】
τ１Ａ＝Ｍ・Ｊ＃（ａ−Ｊ’・θ’）  ・・・（１５）
【０１２８】
仮駆動トルク値算出部１３４は、特異点角度、すなわちＪ＃が発散する場合は、前回の関節角度θに基づき算出したヤコビ行列Ｊを用いて、τ１Ａを算出する。ただし、仮駆動トルク値算出部１３４は、特異点角度でない場合は、特異点角度の近傍であっても、現在の関節角度θに基づいたＪ＃を用いて、τ１Ａを算出する。
【０１２９】
なお、パワーアシストスーツ１０は、複数の関節（大腿駆動機構２３、下腿駆動機構４５、回動軸４７）のそれぞれにアクチュエータを備えている。仮駆動トルク値算出部１３４は、各関節の関節角度θに基づき、それぞれのアクチュエータに対する仮駆動トルク値τ１Ａを算出する。
【０１３０】
図１２に示す上限駆動トルク値取得部１３６は、保持トルク値取得部１５０及び上限駆動トルク値算出部１５２を有する。上限駆動トルク値取得部１３６は、上限トルク値τ０ｍａｘに基づき、駆動トルク値τ１の上限のトルク値である上限駆動トルク値τ１ｍａｘを取得する。上限トルク値τ０ｍａｘは、パワーアシストスーツ１０の仕様などによって予め定められた、各アクチュエータが出力可能な総トルク値τ０の上限の値である。
【０１３１】
保持トルク値取得部１５０は、第１制御部１Ａｃが算出した、現在の関節角度θにおける保持トルク値τ２を取得する。上限駆動トルク値算出部１５２は、上限トルク値τ０ｍａｘと、保持トルク値τ２とを取得する。上限駆動トルク値算出部１５２は、上限トルク値τ０ｍａｘから保持トルク値τ２を差し引いた値に基づき、上限駆動トルク値τ１ｍａｘを算出する。より具体的には、上限駆動トルク値算出部１５２は、仮駆動トルク値τ１Ａが保持トルク値τ２と同符号、すなわち互いに同じ回転方向へのトルクである場合、上限トルク値τ０ｍａｘから保持トルク値τ２を差し引いた値を、上限駆動トルク値τ１ｍａｘとする。一方、上限駆動トルク値算出部１５２は、仮駆動トルク値τ１Ａが保持トルク値τ２と異符号、すなわち互いに逆回転方向のトルクである場合、上限トルク値τ０ｍａｘに保持トルク値τ２を加えた値を、上限駆動トルク値τ１ｍａｘとする。
【０１３２】
このように、仮駆動トルク値τ１Ａが保持トルク値τ２と同じ回転方向へのトルクである場合は、上限トルク値τ０ｍａｘのうちで駆動トルク値τ１に割けるトルク値が、保持トルク値τ２の分だけ減少している。ただし、仮駆動トルク値τ１Ａが保持トルク値τ２と逆回転方向へのトルクである場合は、上限トルク値τ０ｍａｘのうちで駆動トルク値τ１に割けるトルク値を、逆方向に回そうとする保持トルク値τ２の分だけ増加させることができる。
【０１３３】
上限トルク値τ０ｍａｘは、アクチュエータ毎に値が定められている。また、第１制御部１Ａｃは、各アクチュエータのそれぞれに対し、保持トルク値τ２を算出する。保持トルク値取得部１５０は、これらアクチュエータ毎の上限トルク値τ０ｍａｘ及び保持トルク値τ２に基づき、それぞれのアクチュエータに対する上限駆動トルク値τ１ｍａｘを算出する。なお、保持トルク値τ２が大きく、上限駆動トルク値τ１ｍａｘが０以下の値となった場合、駆動トルク値τ１に割ける余裕がないため、第２制御部１Ｂｃは、駆動トルク値τ１を０とする。
【０１３４】
図１２に示すトルク比率算出部１３８は、仮駆動トルク値τ１Ａと上限駆動トルク値τ１ｍａｘとの比率であるトルク比率αを算出する。具体的には、トルク比率算出部１３８は、次の式（１６）に示すように、上限駆動トルク値τ１ｍａｘに対する仮駆動トルク値τ１Ａの比率をトルク比率αとする。
【０１３５】
α＝τ１Ａ／τ１ｍａｘ  ・・・（１６）
【０１３６】
トルク比率算出部１３８は、それぞれのアクチュエータに対するトルク比率αを算出する。なお、トルク比率αは、仮駆動トルク値τ１Ａと上限駆動トルク値τ１ｍａｘとの比率であれば、上述の式（１６）によるものに限られない。例えば、トルク比率αは、仮駆動トルク値τ１Ａに対する上限駆動トルク値τ１ｍａｘの比率、すなわちα＝τ１ｍａｘ／τ１Ａであってもよい。
【０１３７】
図１２に示す補正項算出部１４０は、目標加速度ａから算出される行列式を、予め定められたリンクの加速度の上限値の行列式で正規化して、補正項Ｓを算出する。ここで、予め定められたリンクの加速度の上限値の行列式を、加速度上限項Ｔｍとする。加速度上限項Ｔｍは、リンクの加速度の上限値が予め定められた場合、それに基づき算出される対角行列である。また、式（１５）の加速度に関連する行列式である（ａ−Ｊ’・θ’）を、加速度項βとする。補正項算出部１４０は、次の式（１７）に示すように、加速度項βを加速度上限項Ｔｍで正規化して、正規化加速度項β’を算出し、正規化加速度項β’を、大きさ（スカラー）である補正項Ｓと、単位ベクトルＵに分離して、補正項Ｓを算出する。
【０１３８】
β’＝Ｔｍ−１・β＝Ｓ・Ｕ  ・・・（１７）
【０１３９】
補正項Ｓは目標加速度ａに応じて値が変化するため、補正項算出部１４０は、目標加速度ａが算出される毎に、補正項Ｓを算出する。補正項Ｓは、加速度項βを加速度上限項Ｔｍで正規化して算出された補正項であるため、予め定められたリンクの加速度の上限値に対する、目標加速度の比率であるということができる。なお、補正項Ｓは、全てのアクチュエータに共通する値である。
【０１４０】
図１２に示す駆動トルク値決定部１４２は、仮駆動トルク値τ１Ａが上限駆動トルク値τ１ｍａｘ以下である場合、すなわちトルク比率αが１以下である場合に、仮駆動トルク値τ１Ａを、駆動トルク値τ１に決定する。また、駆動トルク値決定部１４２は、仮駆動トルク値τ１Ａが上限駆動トルク値τ１ｍａｘより大きい場合、すなわちトルク比率αが１より大きい場合に、トルク比率αに基づき、仮駆動トルク値τ１Ａを、上限駆動トルク値τ１ｍａｘ以下の値である変換駆動トルク値τ１Ｂに変換する。駆動トルク値決定部１４２は、この変換駆動トルク値τ１Ｂを、駆動トルク値τ１に決定する。すなわち、駆動トルク値決定部１４２は、仮駆動トルク値τ１Ａが上限駆動トルク値τ１ｍａｘを超過する場合、変換駆動トルク値τ１Ｂを用いて駆動トルク値τ１を上限駆動トルク値τ１ｍａｘ以下に低下させる。
【０１４１】
さらに詳しくは、駆動トルク値決定部１４２は、全てのアクチュエータのトルク比率αのうち、最大のトルク比率αである最大トルク比率αｍａｘを選択する。駆動トルク値決定部１４２は、最大トルク比率αｍａｘが１以下である場合、全てのアクチュエータの仮駆動トルク値τ１Ａを、それぞれのアクチュエータの駆動トルク値τ１に決定する。
【０１４２】
駆動トルク値決定部１４２は、最大トルク比率αｍａｘが１より大きい場合、最大トルク比率αｍａｘを用いて、全てのアクチュエータに対する仮駆動トルク値τ１Ａを、それぞれの仮駆動トルク値τ１Ａに対応する変換駆動トルク値τ１Ｂに変換する。変換駆動トルク値τ１Ｂについてより詳細に説明する。駆動トルク値決定部１４２は、最大トルク比率αｍａｘが１より大きい場合に、次の式（１８）に示すように、仮駆動トルク値τ１Ａを最大トルク比率αｍａｘで除して、変換駆動トルク値τ１Ｂを算出する。
【０１４３】
τ１Ｂ＝τ１Ａ／αｍａｘ  ・・・（１８）
【０１４４】
駆動トルク値決定部１４２は、各アクチュエータに対するそれぞれの仮駆動トルク値τ１Ａを、共通する最大トルク比率αｍａｘで除する。駆動トルク値決定部１４２は、このように変換駆動トルク値τ１Ｂを算出するため、全てのアクチュエータに対する変換駆動トルク値τ１Ｂは、上限駆動トルク値τ１ｍａｘ以下の値となる。また、全てのアクチュエータにおいて、それぞれの仮駆動トルク値τ１Ａに対し、同じ最大トルク比率αｍａｘを用いて変換駆動トルク値τ１Ｂを算出しているため、駆動トルク値τ１を低下させても、各アクチュエータ間の駆動トルク値τ１の比率が保たれる。
【０１４５】
さらに、駆動トルク値決定部１４２は、最大トルク比率αｍａｘが１より大きい場合、変換駆動トルク値τ１Ｂを補正項Ｓで補正した値を、駆動トルク値τ１として決定する。具体的には、駆動トルク値決定部１４２は、次の式（１９）に示すように、変換駆動トルク値τ１Ｂを補正項Ｓで乗じた値を、駆動トルク値τ１として決定する。
【０１４６】
τ１＝τ１Ｂ・Ｓ  ・・・（１９）
【０１４７】
ただし、補正項Ｓが１より大きい場合、駆動トルク値決定部１４２は、変換駆動トルク値τ１Ｂに補正項Ｓを乗じることなく、変換駆動トルク値τ１Ｂを、そのまま駆動トルク値τ１として決定する。変換駆動トルク値τ１Ｂは、最大トルク比率αｍａｘとなったアクチュエータに関する駆動トルク値τ１を、上限駆動トルク値τ１ｍａｘまで最大限に出力するものである。駆動トルク値決定部１４２は、変換駆動トルク値τ１Ｂを、補正項Ｓで補正することで、前回からの加速度軌道の連続性を保ち、加速度軌道変化に対応した駆動トルク値τ１を算出することができる。言い換えれば、補正項Ｓは、変換駆動トルク値τ１Ｂに基づいて算出された駆動トルクτ１によってアクチュエータを駆動した場合に、リンクの加速度が目標加速度ａより大きくならないように、変換駆動トルク値τ１Ｂを補正するための係数であるということができる。
【０１４８】
駆動トルク値決定部１４２は、決定した駆動トルク値τ１の情報をアクチュエータ制御部１Ｃｃに伝達する。アクチュエータ制御部１Ｃｃは、駆動トルク値決定部１４２から取得した駆動トルク値τ１と、第１制御部１Ａｃから取得した保持トルク値τ２の合計値を、総トルク値τ０として算出し、その総トルク値τ０で、アクチュエータを駆動する。
【０１４９】
なお、アクチュエータが１つの場合、駆動トルク値決定部１４２は、最大トルク比率αｍａｘを用いず、式（１８）の最大トルク比率αｍａｘをそのアクチュエータに対するトルク比率αとして、同様に駆動トルク値τ１を決定する。また、トルク比率αが、α＝τ１ｍａｘ／τ１Ａである場合、駆動トルク値決定部１４２は、仮駆動トルク値τ１Ａをトルク比率αで乗じて、変換駆動トルク値τ１Ｂを算出する。
【０１５０】
次に、フローチャートを用いて、駆動トルク値τ１の算出フローを説明する。図１３は、第５実施形態に係る駆動トルク値の算出フローを説明するフローチャートである。図１３に示すように、第２制御部１Ｂｃは、仮駆動トルク値算出部１３４により、目標加速度ａに基づき仮駆動トルク値τ１Ａを算出し（ステップＳ３０）、上限駆動トルク値取得部１３６により、上限駆動トルク値τ１ｍａｘを算出する（ステップＳ３２）。仮駆動トルク値算出部１３４は、上述の式（１５）に基づき、各アクチュエータに対する仮駆動トルク値τ１Ａを算出する。また、上限駆動トルク値取得部１３６は、上限トルク値τ０ｍａｘから保持トルク値τ２を差し引いた値に基づき、上限駆動トルク値τ１ｍａｘを算出する。また、上限駆動トルク値τ１ｍａｘが０以下の値となった場合、第２制御部１Ｂｃは、駆動トルク値τ１を０として、後述するステップＳ４６に移動する。なお、ステップＳ３０とステップＳ３２とは、後述するステップＳ３４より前に行われるものであればよく、互いの処理順は任意である。
【０１５１】
仮駆動トルク値τ１Ａ及び上限駆動トルク値τ１ｍａｘを算出した後、第２制御部１Ｂｃは、トルク比率算出部１３８により、仮駆動トルク値τ１Ａ及び上限駆動トルク値τ１ｍａｘから、トルク比率αを算出する（ステップＳ３４）。トルク比率算出部１３８は、上述の式（１６）に基づきトルク比率αを算出する。
【０１５２】
トルク比率αを算出した後、第２制御部１Ｂｃは、駆動トルク値決定部１４２により、最大トルク比率αｍａｘが１より大きいかを判定する(ステップＳ３６)。最大トルク比率αｍａｘとは、全てのアクチュエータのトルク比率αのうち、最大のトルク比率αである。最大トルク比率αｍａｘが１より大きくない、すなわち最大トルク比率αｍａｘが１以下である場合（ステップＳ３６；Ｎｏ）、駆動トルク値決定部１４２は、全てのアクチュエータの仮駆動トルク値τ１Ａを、それぞれのアクチュエータの駆動トルク値τ１に決定し(ステップＳ３８)、後述するステップＳ４６に移動する。
【０１５３】
最大トルク比率αｍａｘが１より大きい場合（ステップＳ３６；Ｙｅｓ）、駆動トルク値決定部１４２は、それぞれのアクチュエータの仮駆動トルク値τ１Ａと、共通する最大トルク比率αｍａｘとから、それぞれのアクチュエータに対する変換駆動トルク値τ１Ｂを算出する（ステップＳ４０）。駆動トルク値決定部１４２は、上述の式（１８）に基づき、それぞれのアクチュエータに対する変換駆動トルク値τ１Ｂを算出する。
【０１５４】
第２制御部１Ｂｃは、補正項算出部１４０により、目標加速度ａから算出される行列式を、加速度の上限値の行列式で正規化して、補正項Ｓを算出する（ステップＳ４２）。補正項算出部１４０は、上述の式（１７）に基づき、補正項Ｓを算出する。ステップＳ４２は、後述するステップＳ４４の前に実行されれば、その実行順は任意である。
【０１５５】
変換駆動トルク値τ１Ｂ、及び補正項Ｓを算出した後、第２制御部１Ｂｃは、駆動トルク値決定部１４２により、変換駆動トルク値τ１Ｂを補正項Ｓで補正した値を、駆動トルク値τ１として決定する（ステップＳ４４）。駆動トルク値決定部１４２は、上述の式（１８）を用いて、駆動トルク値τ１を算出する。ステップＳ３８又はステップＳ４４で駆動トルク値τ１を決定したら、駆動トルク値決定部１４２は、その駆動トルク値τ１をアクチュエータ制御部１Ｃｃに伝達する。アクチュエータ制御部１Ｃｃは、駆動トルク値決定部１４２から取得した駆動トルク値τ１と、第１制御部１Ａｃから取得した保持トルク値τ２の合計値を、総トルク値τ０として算出し、その総トルク値τ０で、アクチュエータを駆動する。
【０１５６】
ステップＳ４４の後は、ステップＳ４６に移動し、処理が終了していない場合（ステップＳ４６；Ｎｏ）、ステップＳ３０に戻り、次のタイミングで取得された目標加速度ａに基づき仮駆動トルク値τ１Ａを算出し、その後同様の処理を繰り返す。処理が終了した場合（ステップＳ４６；Ｙｅｓ）、本処理を終了する。
【０１５７】
以上説明したように、本実施形態に係る制御装置１ｃは、関節を介して連結された複数のリンクをアクチュエータにより駆動する作動機構（本実施形態ではパワーアシストスーツ１０）の制御装置である。制御装置１ｃは、目標加速度取得部１３２と、仮駆動トルク値算出部１３４と、上限駆動トルク値取得部１３６と、トルク比率算出部１３８と、駆動トルク値決定部１４２と、アクチュエータ制御部１Ｃｃと、を有する。目標加速度取得部１３２は、リンクの目標とする移動加速度である目標加速度ａを取得する。仮駆動トルク値算出部１３４は、リンクを目標加速度ａで移動させるためのトルクである駆動トルク値τ１の仮の値である仮駆動トルク値τ１Ａを、目標加速度ａに基づき算出する。上限駆動トルク値取得部１３６は、上限トルク値τ０ｍａｘに基づき、駆動トルク値τ１の上限のトルク値である上限駆動トルク値τ１ｍａｘを取得する。トルク比率算出部１３８は、仮駆動トルク値τ１Ａと上限駆動トルク値τ１ｍａｘとの比率であるトルク比率αを算出する。駆動トルク値決定部１４２は、仮駆動トルク値τ１Ａが上限駆動トルク値τ１ｍａｘ以下である場合に、仮駆動トルク値τ１Ａを駆動トルク値τ１に決定する。また、駆動トルク値決定部１４２は、仮駆動トルク値τ１Ａが上限駆動トルク値τ１ｍａｘより大きい場合に、トルク比率αに基づき、仮駆動トルク値τ１Ａを上限駆動トルク値τ１ｍａｘ以下の値に変換した変換駆動トルク値τ１Ｂを、駆動トルク値τ１に決定する。アクチュエータ制御部１Ｃｃは、アクチュエータを駆動するトルク値（総トルク値τ０）として、決定した駆動トルク値τ１を用いて、アクチュエータを制御する。
【０１５８】
この制御装置１ｃは、仮駆動トルク値τ１Ａが上限駆動トルク値τ１ｍａｘより大きい場合に、仮駆動トルク値τ１Ａを上限駆動トルク値τ１ｍａｘ以下の値に変換した変換駆動トルク値τ１Ｂを、駆動トルク値τ１に決定する。すなわち、制御装置１ｃは、目標とする駆動トルク値τ１である仮駆動トルク値τ１Ａが、許される上限駆動トルク値τ１ｍａｘを超過する場合、変換駆動トルク値τ１Ｂを用いて駆動トルク値τ１を上限駆動トルク値τ１ｍａｘ以下に低下させる。従って、この制御装置１ｃは、特異点角度や特異点角度の近傍において、仮駆動トルク値τ１Ａが過大になった場合にも、駆動トルク値τ１を上限駆動トルク値τ１ｍａｘ以下に低下させることで、駆動トルク値τ１の出力異常を容易に抑制することができる。また、この制御装置１ｃは、目標加速度ａに基づき駆動トルク値τ１を算出しているため、非定位性の制御となり、自由な動作に対応することが可能となる。
【０１５９】
作動機構（パワーアシストスーツ１０）は、複数のリンクのそれぞれに対応する複数のアクチュエータを備えており、駆動トルク値τ１は、複数のアクチュエータのそれぞれに対して算出されるものである。そして、駆動トルク値決定部１４２は、複数のアクチュエータに対するそれぞれの仮駆動トルク値τ１Ａのうち、上限駆動トルク値τ１ｍａｘに対する仮駆動トルク値τ１Ａの超過率が最も高い仮駆動トルク値τ１Ａについてのトルク比率である最大トルク比率αｍａｘを用いて、それぞれの仮駆動トルク値τ１Ａを変換駆動トルク値τ１Ｂに変換し、それぞれの変換駆動トルク値τ１Ｂを、それぞれのアクチュエータに対する駆動トルク値τ１に決定する。この制御装置１ｃは、最大トルク比率αｍａｘを用いて全ての仮駆動トルク値τ１Ａを変換駆動トルク値τ１Ｂに変換している。従って、全てのアクチュエータに対する駆動トルク値τ１を上限駆動トルク値τ１ｍａｘ以下の値としつつ、各アクチュエータ間の駆動トルク値τ１の比率が、変換前と同様に保たれる。従って、この制御装置１ｃは、駆動トルク値τ１の出力異常をより適切に抑制することができる。
【０１６０】
この駆動トルク値決定部１４２は、上限駆動トルク値τ１ｍａｘに対する仮駆動トルク値τ１Ａの比率をトルク比率αとし、仮駆動トルク値τ１Ａをトルク比率αで除することにより、変換駆動トルク値τ１Ｂを算出する。この駆動トルク値決定部１４２は、このようにトルク比率α及び変換駆動トルク値τ１Ｂを算出しているため、駆動トルク値τ１を上限駆動トルク値τ１ｍａｘ以下の適切な値とすることができる。
【０１６１】
上限駆動トルク値取得部１３６は、作動機構（パワーアシストスーツ１０）の自重、及び作動機構（パワーアシストスーツ１０）にかかる負荷を保持するためのトルクである保持トルク値τ２を取得する保持トルク値取得部１５０と、上限トルク値τ０ｍａｘから保持トルク値τ２を差し引いた値に基づき、上限駆動トルク値τ１ｍａｘを算出する上限駆動トルク値算出部１５２と、を有する。この上限駆動トルク値取得部１３６は、上限トルク値τ０ｍａｘから保持トルク値τ２を差し引いた値に基づき、上限駆動トルク値τ１ｍａｘを算出するため、上限駆動トルク値τ１ｍａｘを適切に算出し、駆動トルク値τ１の出力異常をより適切に抑制することができる。
【０１６２】
この制御装置１ｃは、目標加速度ａから算出される行列式を、予め定められたリンクの加速度の上限値の行列式で正規化して補正項Ｓを算出する補正項算出部１４０を更に有する。駆動トルク値決定部１４２は、変換駆動トルク値τ１Ｂを補正項Ｓで補正したトルク値を、駆動トルク値τ１として決定する。補正項Ｓは、駆動トルク値τ１によってアクチュエータを駆動した場合に、リンクの実際の加速度が目標加速度ａより大きくならないように、変換駆動トルク値τ１Ｂを補正するための係数である。この制御装置１ｃは、変換駆動トルク値τ１Ｂを補正項Ｓで補正するため、加速度軌道変化に対応した駆動トルク値τ１を算出することができる。なお、制御装置１ｃは、補正項算出部１４０を有さず、変換駆動トルク値τ１Ｂをそのまま駆動トルク値τ１としてもよい。
【０１６３】
以上、本発明の実施形態を説明したが、この実施形態の内容により実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。例えば、各実施形態においては、作動機構としてパワーアシストスーツ１０を例示して説明したが、関節を介して連結された複数のリンクをアクチュエータにより駆動するものであれば、パワーアシストスーツに限られない。作動機構としては、例えば、歩行ロボットやロボットアームなどであってもよく、移動可能なものであってもよい。
【符号の説明】
【０１６４】
１  制御装置
１０  パワーアシストスーツ
１１  腰パーツ
１２  肩パーツ
１３Ａ、１３Ｂ  脚パーツ
２１  腰装着部
２２  給電装置
２２Ｂ  電源
２２Ｃ  電線
２３、２３Ａ、２３Ｂ  大腿駆動機構
３１  背装着部
３２Ａ  左肩装着部
３２Ｂ  右肩装着部
４１、４１Ａ、４１Ｂ  大腿装着部
４２、４２Ａ、４２Ｂ  下腿装着部
４３、４３Ａ、４３Ｂ  足装着部
４４、４４Ａ、４４Ｂ  荷重検出装置
４５、４５Ａ、４５Ｂ  下腿駆動機構
４６Ａ、４６Ｂ  脚駆動制御装置
４７、４７Ａ、４７Ｂ  回動軸
１０２  関節角度取得部
１０４  座標算出部
１０６、１０６ａ  仮想関節角度取得部
１０８  目標加速度取得部
１０９ｂ  補正係数記憶部
１１０  駆動トルク値算出部
１２０  仮想座標算出部
１２１ａ  関係記憶部
１２２ａ  仮想関節角度算出部
１３２  目標加速度取得部
１３４  仮駆動トルク値算出部
１３６  上限駆動トルク値取得部
１３８  トルク比率算出部
１４０  補正項算出部
１４２  駆動トルク値決定部
１５０  保持トルク値取得部
１５２  上限駆動トルク値算出部
ａ  目標加速度
ａｂ  基準加速度
Ｃ  原点座標
Ｃ０  現在座標
Ｃ１  仮想座標
ｆ  荷重値変化量
Ｆ  足底荷重値
Ｋ、Ｌ  補正係数
Ｓ  補正項
Ｔ１、Ｔ２、Ｔ３、Ｔ４  閾値角度
Ｔｍ  加速度上限項
α  トルク比率
αｍａｘ  最大トルク比率
β   加速度項
Δθ  変位角度
ε  変位距離
θ  関節角度
θ０、θ０ａ、θ０ｂ、θ０ｃ  現在関節角度
θ１、θ１ａ、θ１ｂ、θ１ｃ  仮想関節角度
τ０  総トルク値
τ０ｍａｘ  上限トルク値
τ１  駆動トルク値
τ１Ａ  仮駆動トルク値
τ１Ｂ  変換駆動トルク値
τ１ｍａｘ  上限駆動トルク値
τ２  保持トルク値
【図１】
0006655410.tif 000002
【図２】
0006655410.tif 000003
【図３】
0006655410.tif 000004
【図４】
0006655410.tif 000005
【図５】
0006655410.tif 000006
【図６】
0006655410.tif 000007
【図７】
0006655410.tif 000008
【図８】
0006655410.tif 000009
【図９】
0006655410.tif 000010
【図１０】
0006655410.tif 000011
【図１１】
0006655410.tif 000012
【図１２】
0006655410.tif 000013
【図１３】
0006655410.tif 000014