(57)【特許請求の範囲】
【請求項１】
力制御関節を有する有脚ロボットのキャリブレーションを行うためのキャリブレーション方法であって、
前記有脚ロボットについての運動学的拘束を選択する選択工程と；
前記運動学的拘束を強制しながら前記有脚ロボットを動かすことによって、複数の姿勢をとらせる姿勢工程と；
前記動かすことの最中に、前記有脚ロボットの１組の関節についての１組の角度測定値を収集する収集工程と；
運動学的キャリブレーションモジュールを実行するプロセッサを用いることによって、前記１組の関節のうちの前記関節の各々についての角度オフセットを決定する決定工程とを有し、
前記有脚ロボットは、２つの脚と２つの足とを有する２足ロボットであり、
前記運動学的拘束は、前記２つの足の足裏を、水平の平面的な支持面に平らに接触させて維持することからなる、キャリブレーション方法。
【請求項２】
前記キャリブレーション方法はさらに、前記動かすことの最中に、前記有脚ロボットのリンクに取付けられた慣性測定ユニットから、前記姿勢の各々における相対方向データを収集する工程を有し、
前記決定工程は、前記収集された相対方向データに基づき、
前記相対方向データは、前記２つの足の足裏の方向を決定するために使用されるデータである、
請求項１記載のキャリブレーション方法。
【請求項３】
前記角度測定値は、前記１組の関節のうちの前記関節の各々の近くに取付けられた関節角度センサによって提供され、
前記リンクは、前記有脚ロボットの骨盤リンクである、
請求項２記載のキャリブレーション方法。
【請求項４】
前記決定工程は、リンク方向と前記運動学的拘束とに基づき定義されるコスト関数を最小化する工程を有し、
前記コスト関数は、前記２つの足の足裏の頂点の高さ変化である、
請求項１記載のキャリブレーション方法。
【請求項５】
前記運動学的拘束はさらに、前記２つの足を整列した配置に保つことを有する、
請求項１記載のキャリブレーション方法。
【請求項６】
前記整列した配置は、前記２つの足が平行になる位置と、前後する位置とを有する、
請求項５記載のキャリブレーション方法。
【請求項７】
前記キャリブレーション方法はさらに、前記有脚ロボットについての１組の慣性パラメータを算出する算出工程を有する、
請求項２記載のキャリブレーション方法。
【請求項８】
前記慣性パラメータは、前記リンクの質量、局所質量中心、および慣性モーメントのうち少なくとも１つである、
請求項７記載のキャリブレーション方法。
【請求項９】
前記算出工程は、最小２乗最小化方法を実行するときに、事前定義された閾値を下回るリグレッサの特異値を省く工程を有する、
請求項７記載のキャリブレーション方法。
【請求項１０】
前記算出工程は、勾配ベース法を使用して最適化する工程を有する、
請求項７記載のキャリブレーション方法。
【請求項１１】
運動学的キャリブレーションを用いるロボットであって、
複数のリンクおよび力制御関節からなるボディであって、前記リンクは、骨盤リンクを含み、前記関節は、各々が足を位置づける１対の足首関節を含む、ボディと；
前記関節の各々に関連する角度センサと；
前記骨盤リンク上に備えられた慣性測定ユニットと；
運動学的キャリブレーションモジュールを実行するプロセッサと
を備え、
前記運動学的キャリブレーションモジュールは、前記角度センサによって提供された角度測定値と、前記慣性測定ユニットによって生成されたデータであるＩＭＵデータとを処理し、
前記角度測定値および前記ＩＭＵデータは、多くの姿勢を通る前記ボディの動きの最中に収集され、
前記足は、データ収集中に運動学的拘束を強制するために、前記姿勢の各々の最中に平面的な支持面に平らに接触し、
前記運動学的キャリブレーションは、前記ＩＭＵデータおよび前記運動学的拘束に基づき、前記関節の各々についての角度オフセット値を決定し、
前記ロボットは、２つの脚と２つの足とを有する２足ロボットであり、
前記運動学的拘束は、前記２つの足の足裏を、水平の平面的な支持面に平らに接触させて維持することからなる、ロボット。
【請求項１２】
前記運動学的拘束はさらに、前記姿勢の各々の最中に前記足が互いに平行になるか、またはつま先をかかとに揃えて配置されるように、前記足を整列させることを有する、
請求項１１記載のロボット。
【請求項１３】
前記ロボットはさらに、人型の前記ロボットについての慣性パラメータを算出する動力学的キャリブレーションモジュールと、算出された前記慣性パラメータに基づき、前記関
節についての関節トルクを生成するロボットコントローラと、を備える、
請求項１１記載のロボット。
【請求項１４】
前記慣性パラメータは、前記リンクの質量、局所質量中心、および慣性モーメントのうち少なくとも１つであり、
さらに、前記慣性パラメータを算出することは、最小２乗最小化方法を実行する場合、事前定義された閾値を下回るリグレッサの特異値を省くことを有する、
請求項１３記載のロボット。
【請求項１５】
前記慣性パラメータを算出することは、勾配ベース手法を使用して最適化を行うことを有する、
請求項１３記載のロボット。
【請求項１６】
人型ロボットのキャリブレーションを行うためのシステムであって、前記システムは、
前記人型ロボットの１組の関節からの角度測定値を記憶するメモリであって、前記角度測定値は、運動学的拘束を強制しながら多くの姿勢を通る前記人型ロボットの動作の最中に作動する、前記人型ロボットに取付けられた角度測定センサによって提供される、メモリと；
前記人型ロボットに取付けられた慣性測定ユニットから出力されたデータであるＩＭＵデータを記憶するメモリであって、前記慣性測定ユニットから出力された前記ＩＭＵデータは、前記人型ロボットの前記動作の最中に収集される、メモリと；
前記関節の各々についての角度オフセット値を同定するために、前記角度測定値および前記ＩＭＵデータを処理することによって、運動学的キャリブレーションを実行するプロセッサと
を備え、
前記人型ロボットは、２つの脚と２つの足とを有する２足ロボットであり、
前記運動学的拘束は、前記２つの足の足裏を、水平の平面的な支持面に平らに接触させて維持することからなる、人型ロボットのキャリブレーションを行うためのシステム。
【請求項１７】
前記人型ロボットは、２つの足を有し、
前記運動学的拘束は、前記足の足裏を水平の平面的な面に接触させて維持することを有する、
請求項１６記載のシステム。
【請求項１８】
前記運動学的拘束はさらに、前記足を平行になるように、または前記足の長手軸を互いに一致させるように整列させることを有する、
請求項１７記載のシステム。
【請求項１９】
前記慣性測定ユニットは、前記人型ロボットの骨盤リンク上に取付けられ、
前記運動学的キャリブレーションは、前記ＩＭＵデータを使用することによって相対方向を決定することを有し、
前記相対方向は、前記２つの足の足裏の方向を決定するために使用される方向である、
請求項１８記載のシステム。
【請求項２０】
前記プロセッサはさらに、前記人型ロボットの動力学的キャリブレーションを実行し、
前記動力学的キャリブレーションは、最小２乗最小化および勾配ベース最小化の一方を用いることによって、前記人型ロボットについての１組の慣性パラメータを計算することを有する、
請求項１６記載のシステム。
【請求項２１】
前記システムはさらに、前記角度オフセット値および前記角度測定センサから獲得された追加の角度測定値に基づき、キャリブレーションを施された関節角度を決定するロボットコントローラを備え、
前記ロボットコントローラはさらに、前記キャリブレーションを施された関節角度を使用して、前記関節を操作するために、関節トルクを生成するように動作する、
請求項１６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本説明は、一般に、有脚ロボット（ｌｅｇｇｅｄ  ｒｏｂｏｔ）（例えば、２足人型ロボット、または４足ロボットなど他の有脚ロボット）と、そのようなロボットの力制御関節（ｆｏｒｃｅ−ｃｏｎｔｒｏｌｌｅｄ  ｊｏｉｎｔ）の制御とに関し、より詳細には、ロボットの力制御関節の操作を改善するために、有脚ロボットのキャリブレーションを行うための方法（ならびにそのようなキャリブレーションを用いる人型および他の有脚ロボット）に関する。
【背景技術】
【０００２】
２足人型ロボットは、人体の外観に基づいた外観を有するロボットである。人型ロボットは、人間と安全かつ効果的に相互作用を行うようにしばしば適合された、人間用に作られた道具および機械など、様々な環境との相互作用を提供するために設計された。一般に、人型ロボットは、頭と、２つの腕と、２つの脚とを備える胴を有し、各脚は、ロボットが平面的な面の上を歩くこと、または段を上ることなどができるように、何らかの形態の足を有する（例えば、これらの人型ロボットは、人間のような「２足ロボット」である）。人型ロボットは、関節によって相互接続される多くの剛性リンクを用いて形成することができ、関節は、ロボットを動かし、位置づけるために、各関節に力またはトルクを加えることによって操作され、または位置づけられる。同様に、３つ、４つ、またはより多くの脚を有する有脚ロボットなど、他の有脚ロボットも、脚の力制御運動を利用して歩くことができる。
【０００３】
人間環境と相互作用を行うために、人型ロボットは、力制御関節の安全で規則に準拠した制御を必要とする。これに関して、各ロボットは、コントローラを備え、コントローラは、所望の運動および出力する力（接触力）を決定し、それに応答して、関節トルクを出力して、人型ロボットの動作および位置づけを効果的に制御するようにプログラムしなければならない。しかしロボットは、複雑な環境で仕事を実行している間に、平坦でない地面または平坦な段差、止まった障害物および動く障害物、ならびに人間にさえも遭遇することがあるので、力制御ロボットを用いて所望の結果を達成するのは困難であることがしばしば判明した。ロボットは、そのような環境内で、１つの場所に立ちながら、また歩を進めて動きながら、バランスをとり続けなければならない。
【０００４】
接触力制御を達成するために、仮想モデル制御（ＶＭＣ：ｖｉｒｔｕａｌ  ｍｏｄｅｌ
ｃｏｎｔｒｏｌ）の使用または動力学的平衡力制御（ＤＢＦＣ：ｄｙｎａｍｉｃ  ｂａｌａｎｃｅ  ｆｏｒｃｅ  ｃｏｎｔｒｏｌ）の使用などを含む、人型ロボットを制御するための多くの役立つ技法が開発されてきた。ロボットコントローラによって実施される特定の制御技法に係わりなく、センサによって提供され得る、または算出され得る特定のデータは、適正な制御が達成されるためには正確でなければならない。例えば、従来のマニピュレータと比較した場合、フローティングベース（ｆｌｏａｔｉｎｇ−ｂａｓｅ）の人型ロボットの運動学的パラメータおよび動力学的パラメータを同定または決定することは、今なお難しい問題であることが判明した。難しさが存在するのは、部分的には、バランスを維持しながら、多種多様な姿勢および運動を獲得することに問題があるためである。加えて、パラメータ同定または決定アルゴリズムは、外部的な測定をしばしば必要とし、このことは、環境内に（すなわち、ロボット自体の外側または外部に）追加的なセンサを含むことを、ロボット制御システムに強いる。
【０００５】
運動学的パラメータに関する１つの特定の例として、ロボットは、関節角度を同定また
は決定するためのコントローラに入力を提供するために使用されるセンサを各関節に含むことができるが、これらの関節角度は、関節の動きを通してロボットをさらに制御し、および／または位置づけるために使用される、運動学的パラメータである。実際には、関節センサは、関節の動きおよび加えられる力のために、最初の位置から移動または回転することがある。結果として、センサのいくつかは、ロボットの実際の関節角度とは異なる測定関節角度を示すデータを提供しており、補正を行わないと、ロボットは、不適切に制御され、または位置づけられ、その結果、仕事をうまく達成できないばかりか、バランスを失うことすらある。
【０００６】
ロボット制御で使用される運動学的パラメータおよび動力学的パラメータの同定を伴うこれらの問題に対処するために、キャリブレーションを使用することができるが、多くの既存のキャリブレーション方法は、実施するのが困難であり、および／またはこれらの制御問題を完全には解決しない。不正確な関節センサに対する補正を行うために使用されるものなど、ほとんどの運動学的キャリブレーション（ｋｉｎｅｍａｔｉｃ  ｃａｌｉｂｒａｔｉｏｎ）方法は、ロボット上のいくつかの特徴点の外部的な位置測定を使用する。これは、ロボット上にマーカを提供することと、外部的な運動センサを使用して、マーカ位置を獲得し、大域的な測定値および関節センサからの局所的な測定値を決定することとを含むことができる。コントローラが正しい関節角度をより正確に決定できるように、各センサについてのオフセットが算出される。分かるように、これが追加の外部的なデバイス（運動センサ）および測定の使用を必要とし、センサのさらなる動きを考慮するために運動学的キャリブレーションを定期的に繰り返さなければならない場合は特に、運動学的キャリブレーションは、多くの時間を要し、手間がかかる。
【０００７】
同様にコントローラが各リンクの質量および慣性モーメントなどの慣性パラメータを正確に同定するために、動力学的キャリブレーション（ｄｙｎａｍｉｃ  ｃａｌｉｂｒａｔｉｏｎ）が望ましいことがある。既存の動力学的キャリブレーション方法は、適切なバランスを保ちながら、ロボットを動かし、多くの異なる方向および位置をとらせることが困難であるので、しばしば効果がない。結果として入力データは、しばしば限定的であり、限定的なデータ収集方法は、慣性パラメータの算出を難しくする。例示的な動力学的キャリブレーション方法は、係数行列の疑似逆行列（ｐｓｅｕｄｏ−ｉｎｖｅｒｓｅ）の使用を含む。しかし良い状態の係数行列を得ることは困難であることが判明しており、そのためこのキャリブレーション方法は、キャリブレーションデータが十分な多様性をもたない場合、負の質量など、物理的に矛盾したパラメータをもたらす。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−２６０１７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって人型ロボットのキャリブレーションを行うための改善された方法が依然として必要とされている。好ましくは方法は、外部的な測定を必要としない運動学的キャリブレーションを提供し、物理的に矛盾しない慣性パラメータをもたらす動力学的キャリブレーションを提供する。
【課題を解決するための手段】
【００１０】
本発明は、力制御ロボットのためのキャリブレーション方法（および改善された制御のためにそのような方法を利用するロボット）を提供することによって、上記の問題に対処する。方法は、２足人型ロボットでの使用に適しているが、ほぼどのような有脚ロボット（例えば４足ロボットなど）でも有用である。キャリブレーション方法は、慣性測定ユニ
ット（ＩＭＵ：ｉｎｅｒｔｉａｌ  ｍｅａｓｕｒｅｍｅｎｔ  ｕｎｉｔ）および多くの関節角度センサを含む、ほとんどの人型ロボットで通常は利用可能なセンサを使用して、関節角度センサオフセットを推定または算出することが可能な、運動学的キャリブレーション技法を含む。運動学的キャリブレーション技法または方法は、一般に外部的なデバイスを用いて獲得され、オフセットを推定するために使用される、大域的な位置測定値および方向測定値を使用する代わりに、環境などによって強制される運動学的拘束（ｋｉｎｅｍａｔｉｃ  ｃｏｎｓｔｒａｉｎｔ）を利用する。一例では、運動学的キャリブレーションは、床または他の水平の平面的な支持台と平らに接触した状態に両足を保ちながら、人型ロボットを手で人力により動かす操作者を含んでいた。実験が示すところでは、この運動学的拘束の使用は、ロボットの関節のすべてまたは一部における関節角度センサオフセットの効率的で正確な計算を可能にするのに十分であった。
【００１１】
キャリブレーション方法は、ロボットのリンクの質量などの慣性パラメータを決定することに役立つ、動力学的キャリブレーション方法を含んでもよい。本明細書では、人型ロボットの慣性パラメータを算出または同定するための、最小２乗法（ｌｅａｓｔ−ｓｑｕａｒｅ  ｍｅｔｈｏｄ）および勾配ベース法（ｇｒａｄｉｅｎｔ−ｂａｓｅｄ  ｍｅｔｈｏｄ）と呼ばれる、２つの方法が教示され、これらの方法は、容易な実施および貧弱な励振（ｅｘｃｉｔａｔｉｏｎ）データに対する堅牢性をサポートする。実施の容易性は、ベースパラメータ（ｂａｓｅ  ｐａｒａｍｅｔｅｒ）の代わりに標準慣性パラメータ（ｓｔａｎｄａｒｄ  ｉｎｅｒｔｉａｌ  ｐａｒａｍｅｔｅｒ）を算出することによって実現され、標準慣性パラメータの一部は、ロボットの動力学に影響し、したがって（従来の動力学的キャリブレーション方法において行われたように）同定可能である。データ不足に対する堅牢性は、最小２乗法においてリグレッサ（ｒｅｇｒｅｓｓｏｒ）の小さな特異値を省くことによって、または勾配ベース法を使用して最適化問題を解くことによって扱われる。実験が示すところでは、最小２乗法は、条件数（ｃｏｎｄｉｔｉｏｎ  ｎｕｍｂｅｒ）閾値が適切である場合は、矛盾のない慣性パラメータをもたらすことができる。やはり実験が示すところでは、勾配ベース法は、悪い状態のリグレッサを用いた場合であっても妥当な結果を与え、優れた相互検証結果を提供する。さらに、勾配ベース法は、矛盾する慣性パラメータを防ぐために、不等式制約（ｉｎｅｑｕａｌｉｔｙ  ｃｏｎｓｔｒａｉｎｔ）を考慮することができる。
【００１２】
より詳細には、力制御関節を有する有脚ロボットのキャリブレーションを行うための方法が提供される。方法は、有脚ロボットについての運動学的拘束を選択することと、その後、運動学的拘束を強制しながらロボットを動かすことによって、複数の姿勢をとらせることとを含む。方法はまた、動かすまたは姿勢をとらせる工程中に、ロボットの１組の関節についての角度測定値を収集することと、その後、運動学的キャリブレーションモジュールを実行するプロセッサを用いることによって、１組の関節のうちの関節の各々についての角度オフセットを決定することとを含む。
【００１３】
或る実施形態では、方法はさらに、動かす工程中に、ロボットのリンク（例えば骨盤リンク）に取付けられた慣性運動ユニット（ＩＭＵ）から、姿勢の各々における大域的方向データを収集することを含む。そのような場合、角度オフセットの決定は、収集された大域的方向データに基づく。一般に角度測定値は、すべてのデータがロボットに備えられたデバイスから収集され、外部的なデータ収集が必要とならない（例えば、運動センサなどが必要とならない）ように、１組の関節のうちの関節の各々の近くに取付けられた関節角度センサ（例えばポテンショメータ）によって提供される。
【００１４】
方法のいくつかの実施では、角度オフセット決定工程は、リンク方向と運動学的拘束とに基づき定義されたコスト関数（例えば、各々に関連する誤差）を最小化することを含む。方法を実施するために、ロボットを、２つの脚と２つの足とを有する人型ロボットまた
は２足ロボットとすること（または３つ以上の脚とそれに対応する足とを有すること）ができ、運動学的拘束は、２つの足の足裏を、水平の平面的な支持面に平らに接触させて維持することを含むことができる。その場合、運動学的拘束はさらに、２つの足を整列した配置に保つことを含むことができる。例えば整列した配置は、２つの足が平行になる位置と、前後する（例えば、つま先をかかとにつける（ｔｏｅ−ｔｏ−ｈｅｅｌ））位置とを含むことができる。
【００１５】
キャリブレーションはまた、ロボットについての１組の慣性パラメータ（例えばリンクの質量）を算出することを含むことができる。ベースパラメータを使用する代わりに、計算は、標準慣性パラメータを同定／決定することを含むことができる。また慣性パラメータの算出は、最小２乗最小化方法を実行するときに、事前定義された閾値を下回るリグレッサの特異値を省くことを含むことができ、または計算は、代替的に、勾配ベース法を使用して最適化することを含むことができる。
【図面の簡単な説明】
【００１６】
【図１】ロボットのキャリブレーションを行う（例えば、関節トルクまたは他の制御信号を生成する際に使用されるキャリブレーションを施された入力をロボットコントローラ（例えばモデルベースコントローラ）に提供する）ために定期的に実行できるソフトウェアまたはコンピュータコードを含む、２足人型ロボットの機能ブロック図。
【図２】運動学的キャリブレーションおよび改善された制御を提供するために、力制御人型ロボットで使用される、例示的なキャリブレーション方法を示すフロー図。
【図３】様々な間隔でサンプルを使用したコスト関数値および計算時間を示す２つのグラフを提供する図。
【図４】運動学的キャリブレーションの完了前および完了後にロボットに３つの異なる姿勢をとらせたロボットの制御が示された、本明細書で説明される運動学的キャリブレーション方法のテストランにおいて利用された人型ロボットを概略的に示す図。
【図５】足を平行に並べて整列させる足整列拘束を満たすように配置された人型ロボットの図。
【図６】図５の方式とは異なり足を並べる代わりに前後に整列させる方式の足整列を満たすように配置された人型ロボットの図。
【図７】足整列運動学的拘束のためのコスト関数を算出する際に役立つパラメータが示された、人型ロボットについての１対の足／足裏の上面ブロック図。
【発明を実施するための形態】
【００１７】
簡潔に、力制御２足人型ロボットで使用される実用的な運動学的キャリブレーション方法および動力学的キャリブレーション方法を説明する。キャリブレーション方法は、１組の拘束を満たしながらロボット関節（脚関節など）の自由な動きを可能にするように適合された、ほぼどの力制御ロボットでも利用することができる。或る実施形態では拘束は、２つの足（または足裏）を平面的な基台または床に対して平らに保持することを含む。運動学的キャリブレーションのために、外部的な測定は、必要とされない。代替的に、運動学的キャリブレーションは、慣性測定ユニット（ＩＭＵ）からのデータを利用するリンク方向の測定／決定とともに、各関節角度センサからの測定値を利用して実行される。キャリブレーションの出力または結果は、正しいまたは実際の関節角度を決定するために、ロボットコントローラ（例えばモデルベースコントローラ）によって使用できる、各関節についての１組の角度オフセットであり、正しいまたは実際の関節角度は、その後、関節トルクなど、制御信号を生成するために使用される。ロボットを様々な方法で動かすことができない（バランスが障害となり多くの姿勢をとれない）ために、入力が限定的になることがあっても、慣性パラメータ（例えば、ロボットの各リンクの質量および慣性モーメント）を決定するための動力学的キャリブレーション技法は、教示される。これらの慣性パラメータは、ロボットの動きを制御するための関節トルクを設定または選択するために、
ロボットコントローラに供給される。この簡潔な概要を心に留めたうえで、以下の説明では、キャリブレーションを施される例示的な人型ロボットの説明から開始し、その後、運動学的キャリブレーションおよび動力学的キャリブレーションの詳細な説明に進む。
【００１８】
図１は、本明細書で教示されるような運動学的キャリブレーションおよび／または動力学的キャリブレーションの使用を介してキャリブレーションを行うことができる、２足人型ロボット１１０の機能ブロック図を示している。一般にキャリブレーション方法は、例えば、足を床または他の平面的な支持台に平らにつけるなど、事前定義された拘束を満たしながら、脚または他の関節を動かすことなどによって自由に動くことができる力制御ロボットである、ほぼどの２足人型ロボット１１０でも使用することができる。５０から１００またはより多くの姿勢においてデータ（例えば２０秒間のデータ）を収集することなどによって、キャリブレーションを容易にする十分な入力を角度センサから獲得するために、十分に多種多様な姿勢を通してロボット１１０を動かすことが望ましい。
【００１９】
示されるように、ロボット１１０は、関節１１４を用いて可動な、連結または相互接続された多くの剛性リンク１１２を含む。リンク１１２は、ロボットコントローラ１３０から受け取った制御信号（関節トルク）に応答して、ドライバ１１６（例えば、モータまたはアクチュエータなどの力入力デバイス）を操作して、関節トルクを関節１１４に加えることによって、動かすこと、および位置づけることができる。関節１１４における角度を表すデータまたは測定値を出力するために、各関節１１４は、角度センサ１１８を備え、関節角度測定値またはセンサデータ１６２は、ロボット１１０のメモリ１６０内に記憶される。以下でさらに説明されるように、骨盤リンク１１２などのロボット１１０のリンク１１２には、慣性測定ユニット（ＩＭＵ）１１９が備えられ、ＩＭＵ  １１９は、（モジュール１５４などの）キャリブレーションプログラムによってリンク方向を決定するために使用できる、やはりメモリ１６０内に記憶されるデータ１６２を提供する。リンク１１２は、足裏を有する１対の足を含み、運動学的キャリブレーション中、これらのリンク１１２は、（図１には示されていない）床または他の平面的な支持台に平らに接するように拘束される。
【００２０】
ロボット１１０は、メモリ１６０を管理し（例えば、デジタル形式でデータを記憶し、読み出し）、１つまたは複数のプログラム（非一時的なコンピュータ可読媒体）を実行するように動作する、プロセッサまたはＣＰＵ  １２０を含む。例えば、プロセッサ１２０は、キャリブレーションを施された関節角度値１３４（例えば、算出された角度オフセット１６６によって調整された測定関節角度）および動力学的パラメータ１３６（例えば、各リンク１１２の質量および慣性モーメントならびに／または他の算出された慣性パラメータ１６８）を含む入力または入力データに基づき、モデルベース制御アルゴリズムなどを用いて、制御信号または関節トルク１３８を出力することを含む、ロボット１１０の操作を制御するために、ロボットコントローラ１３０が実行される。コントローラ１３０が関節トルク１３８を生成するために、ロボットキャリブレータ１５０の出力の少なくとも部分を利用する限り、ロボットコントローラ１３０の形態は、本発明を限定しない。或る実施形態では、キャリブレータ１５０を用いて角度オフセット１６６および算出された慣性パラメータ１６８を生成するために、ロボット１１０の外部のコンピュータが利用され、このデータは、コントローラ１３０に（例えばワイヤレスで）伝達される。
【００２１】
示されるように、プロセッサ１２０は、ロボットキャリブレータ１５０を提供するために、非一時的なコンピュータ可読媒体内で提供され得る、ソフトウェアプログラムまたはコンピュータコードも実行する。ロボットキャリブレータ１５０は、運動学的キャリブレーションと動力学的キャリブレーションの両方を提供するために、運動学的キャリブレーションモジュール１５４および動力学的キャリブレーションモジュール１５８を介して、２つの異なるアルゴリズムまたは方法を実行する。以下で詳細に説明されるように、運動
学的キャリブレーションモジュール１５４は、ＩＭＵ  １１９からのＩＭＵデータ１６４とともに、角度センサ１１８から入力として関節センサデータ１６２を取得し、このデータをキャリブレーションアルゴリズム／方法を用いて処理し、ロボット１１０の制御に使用されるキャリブレーションを施された関節角度値１３４を同定するためにキャリブレータ１５０またはコントローラ１３０によって使用できる、各関節についての角度オフセット１６６を出力する。動力学的キャリブレーションモジュール１５８は、リグレッサの決定を支援し、その後、慣性パラメータ１６８を獲得するために、最小２乗または勾配ベース最小化技法を利用することができ、慣性パラメータ１６８は、その後、制御信号１３８を生成する際に使用するために、１３６に示されるように、コントローラ１３０に出力される。
【００２２】
概略的なキャリブレーション方法と、そのようなキャリブレーションを使用するロボット１１０とを理解したところで、力制御２足人型ロボットの運動学的パラメータおよび動力学的パラメータの同定に関する方法および実験結果についてのさらなる詳細を提供することは有益であろう。以下では最初に、関節角度センサオフセットを推定するのに役立つ運動学的キャリブレーション方法が説明される。
【００２３】
運動学的キャリブレーション方法は、一般にほとんどの人型ロボットに備えられる、関節角度センサおよびリンク方向センサ（ならびにそれらの出力／測定データ）しか使用しないという意味で実際的である。簡潔に述べると、この方法に関する基本的アイデアは、運動学的拘束を表す最適化問題を解くことであり、この拘束は、ロボットの両足を床または他の平面的な支持台に平らに置くことなど、容易に強制し得る拘束となるように選択される。方法は、（リンク上に配置されたマーカの運動捕捉など）外部的な測定を必要とせずに、関節角度センサオフセットを同定または決定する。
【００２４】
動力学的キャリブレーション方法に関して、物理的に矛盾しない質量パラメータおよび局所質量中心パラメータ（すなわち、ロボットコントローラによって使用される慣性パラメータ）を同定するための２つの方法が説明され、これは、人型ロボットの場合はほぼ常にそうであるような、かなりの励振を獲得することが困難な場合であっても達成することができる。さらにリグレッサが大きな条件数を有する場合であっても、動力学的キャリブレーションを提供するためのこれら２つの方法が、慣性パラメータについての良好な（例えば許容可能かつ有益な）同定結果をもたらすことを示す、実験結果が説明される。さらに以下の説明は、多くの場合、勾配ベース最適化のほうが最小２乗法よりも良好に機能することができ（動力学的キャリブレーションにおける最小化で使用される、説明される２つの方法のうちで、勾配ベース最適化のほうがしばしばより有益なことがあり）、両方とも貧弱な励振データに対して堅牢であることを示す。
【００２５】
運動学的キャリブレーション方法に話を向ける前に、従来のマニピュレータと比べると、多くの理由で、フローティングベースの人型ロボットの運動学的パラメータおよび動力学的パラメータを同定または決定することは困難であり得ることを思い起こされたい。特に同定すべき多くのパラメータが存在するためだけでなく、ロボットがデータ収集工程を通してバランスを維持しなければならないためもあって、良い条件のリグレッサを得ることは、しばしば困難である。さらに大域的な位置測定値および方向測定値は、不正確なことがあり、または利用不可能なことすらある。
【００２６】
発明者は、テストケースとして、カーネギーメロン大学（Ｃａｒｎｅｇｉｅ  Ｍｅｌｌｏｎ  Ｕｎｉｖｅｒｓｉｔｙ）の人型ロボット（すなわち、ユタ州ソルトレークシティーに本拠をおく技術会社であるサルコス（Ｓａｒｃｏｓ）によって作成され、本明細書で説明されるようにキャリブレーションを施された、人間サイズの２足ロボット）を利用したが、結果は、他の力制御２足人型ロボットにも容易に適用可能である。テストロボットは
、腕、脚、および体幹に、３１個の関節を有していた。各関節は、アクチュエータ力を測定するために提供および使用される力センサを有する油圧アクチュエータによって作動され、アクチュエータ力は、その後、（例えば、モーメントアームによる乗算によって）関節トルクに変換された。関節角度は、ポテンショメータの形態をとる角度センサによって測定された。さらに説明されるキャリブレーション方法のテスト中、接地力を測定するために、各足首に６軸力センサが提供され、慣性測定ユニット（ＩＭＵ）が、テストロボットの骨盤リンクに取付けられた。
【００２７】
ここでロボットのための運動学的キャリブレーション方法が説明されるが、この方法は、図１のロボット１１０のキャリブレーションを行うために使用することができ、運動学的キャリブレーションモジュール１５４によって実施することができる。最初に、運動学的キャリブレーション方法を開発する背景となった動機を説明することは、有益であろう。運動学的キャリブレーション方法の目的は、関節角度センサにおけるオフセットを推定することである。人型ロボットでは、ポテンショメータなどのセンサは、センサが固定され／取付けられたリンクに対して滑動し得ることが知られている。
【００２８】
センサの動きまたは移動は、大きなトルクが加えられるときに生じ、十分なスペースがなく、リンクへのセンサの十分な固定が得られるセンサの取りつけが可能にならない、４つ（または他の数）の足首関節（例えば、屈曲／伸展、内転／外転）を含む特定の関節では特に問題となることがある。かつては、関節角度センサオフセットを同定または決定するのに、運動捕捉システムなどの外部的な測定デバイスを必要とした。しかし、そのような外部的なオフセット測定システムをセットアップすることは、ロボットのための再キャリブレーションを頻繁に行う必要がある場合は特に、多くの時間を要し、手間がかかる。
【００２９】
本明細書で説明される運動学的キャリブレーション方法は、所望の取りつけ位置から回転／移動していることもあり、または移動していないこともあるセンサを用いて、関節角度に加えて、１つまたは複数のリンクの方向を測定するだけで、関節角度オフセットを同定できる、アルゴリズムを実施することと考えることができる。キャリブレーション方法を実施するために、多くの方法でリンク方向を測定することができるが、ほとんどの人型ロボットは、（オフセット推定のためではなく）バランス制御で使用するために、すでにＩＭＵを備えているので、或る実施形態では、リンク方向を測定するために、ＩＭＵを利用する。したがって、運動学的キャリブレーション方法は、ロボットのキャリブレーションを実行するために、外部的な測定を必要としない。
【００３０】
運動学的キャリブレーション方法の１つの主要な態様は、ロボットを１つまたは複数の運動学的拘束下に保ちながら、ロボットの関節を多くの位置に動かす（例えば、自由に動かせる力制御関節をランダムに動かす）ことである。１つの実施では、運動学的拘束は、２足人型ロボットの足を床（または別の平面的な支持台）に平らに置くことを含む。その後、関節が妥当な大きさの外力を用いて逆駆動可能（ｂａｃｋ−ｄｒｉｖａｂｌｅ）である場合、ロボットの関節を手（手動操作）で動かすことによって、関節角度センサデータおよびリンク方向データを収集することができる。
【００３１】
十分に変化に富む姿勢（例えば５０から１００の姿勢など）を収集した後、最適化問題を解くことを含む、関節角度オフセットの算出が、運動学的キャリブレーションモジュール（またはコンピュータ／プロセッサによって実行されるソフトウェア）によって行われる。ほぼいずれの最適化技法も、運動学的拘束がより良く満たされるほど減少するコスト関数を用いて実行される最適化とともに使用することができる。例えば、足が地面／床に平らに接触する場合、コスト関数は、２つの足の足裏頂点の高さ変化である。
【００３２】
興味深いことに、足裏頂点の高さは、リンク方向測定デバイス（ＩＭＵ）が絶対高さ情
報を与えないので、一般には使用することができない。運動学的キャリブレーション方法は、ルート関節のデカルト座標位置（Ｃａｒｔｅｓｉａｎ  ｐｏｓｉｔｉｏｎ）は知られておらず、したがって、フレーム全体にわたって同一平面上の接触点を仮定することはできないので、他の技法とは異なる。代替的に、運動学的パラメータは、各フレームにおける複数の接触点が単一の平面を形成するように決定される。キャリブレーション方法のデータ収集中、足は、常に床と平らに接触しているように拘束される。
【００３３】
その場合、最適化問題は、以下のように要約することができ、すなわち、（１）入力または入力されるデータ（例えば測定値）は、様々なサンプル姿勢における１つまたは複数のリンクの方向と、関節角度とを提供し、（２）解くまたは同定すべき変数または他の収集データは、各サンプル姿勢におけるルート関節の方向と、次に各関節の関節角度センサオフセットとを含み、（３）最適化問題において使用されるコスト関数は、方向誤差と、足裏頂点高さの変化とを含む。
【００３４】
ここで、運動学的キャリブレーションを提供するのに役立つ１つの定式化または方法を説明することは、有益であろう。人型ロボットのための多くのリンク（Ｍを１以上とするＭ個のリンク）についての方向データが獲得される場合について考える。ロボットには、角度がロボットの脚の方向に影響し、および／または（骨盤関節など）ＩＭＵを有するリンクに影響する、多くの回転関節（Ｎ個の関節）が存在する。以下の説明では、説明を簡潔にするために、ロボットのすべての関節の（Ｎ個の関節すべての）角度オフセットを同定または決定することが望ましいと仮定するが、いくつかの関節の測定値を使用しているオフセット決定からそれらの関節を除外することは当然のことなので、或る実施形態では、より僅かな部分のオフセットを決定することができる。
【００３５】
例えばデータ収集中には、各姿勢が事前定義された運動学的拘束（例えば平らな足）を満たす、Ｋ個のサンプル姿勢が利用されると仮定することができる。第ｋのサンプルのために利用可能な測定値は、ＩＭＵからの方向データ
【００３６】
【数１】
0005509226.tif 000002
【００３７】
と、関節角度
【００３８】
【数２】
0005509226.tif 000003
【００３９】
である。同定または決定されるパラメータは、関節オフセットΔθと、各サンプルにおけるルート方向ｑｋである。
最適化問題を解くことによって、コスト関数Ｚを最小化する、ルート方向（ｑ１，ｑ２，．．．，ｑＫ）と、関節オフセットΔθとが獲得される。コスト関数Ｚは、
【００４０】
【数３】
0005509226.tif 000004
【００４１】
として選択することができ、ここで、ＬｋおよびＣｋは、それぞれ、第ｋのサンプルにおけるリンク方向誤差および拘束誤差を表す。以下では、このコスト関数の各項がより詳細に説明される。
【００４２】
第１の項Ｌｋは、
【００４３】
【数４】
0005509226.tif 000005
【００４４】
によって算出され、ここで、Ｒｍ（＊，＊）は、ルート方向および関節角度からＩＭＵを用いて第ｍのリンクの方向を算出するために使用される順運動学関数（ｆｏｒｗａｒｄ  ｋｉｎｅｍａｔｉｃｓ  ｆｕｎｃｔｉｏｎ）である。方向誤差は、方向測定を行って、それらの相対位置をｓｉ（ｉ＝１，２，３）に基づき表した、各リンクに固定された事前定義された３点の平方位置誤差によって評価することができる。例えば、ｓｉは、（ｄ，０，０）Ｔ、（０，ｄ，０）Ｔ、および（０，０，ｄ）Ｔとして選択することができ、ここでｄは、ユーザ定義の定数である。より大きな定数ｄの使用は、同じ方向誤差に対して位置誤差がより大きくなるので、第１の項Ｌｋのほうにより大きな重みを使用することに対応する。
【００４５】
第２の項Ｃｋは、データ収集中に強制される運動学的拘束を表す。例えば、ロボットの足が水平の床または他の支持台に平らに接触しなければならない場合、運動学的拘束に関連する第２の項Ｃｋは、
【００４６】
【数５】
0005509226.tif 000006
【００４７】
として定義することができ、ここで、
【００４８】
【数６】
0005509226.tif 000007
【００４９】
は、与えられたルート方向および関節角度から獲得される足裏頂点の高さの変化を算出するために使用される関数である。足裏頂点は、例えば、各足裏の４つの隅であるように選択することができる。一般的な実施では、キャリブレーション解を獲得するために、共役勾配法（ｃｏｎｊｕｇａｔｅ  ｇｒａｄｉｅｎｔ  ｍｅｔｈｏｄ）が適用される。関節オフセットΔθの初期値は、ゼロに設定され、初期ルート方向ｑｋは、すべてのＩＭＵ測定値を使用して個々に算出されるルート方向の平均をとることによって決定される。
【００５０】
図２は、ロボットの関節のすべてまたは一部においてキャリブレーションを施された関節角度を提供するために、力制御人型ロボットにおいて実行できる、ロボットキャリブレ
ーション方法２００を示している。方法２００は、キャリブレーションのためにロボットを選択することと、運動学的キャリブレーションモジュールを実行するキャリブレーションコンピュータを提供すること、またはそのようなモジュール／コードを含むようにロボットをプログラムすることなどによって、２０５において開始する。方法２００は、続いて２１０において、キャリブレーションにおいて使用する運動学的拘束と、コスト関数とを定義する。上で言及したように、いくつかの場合では、運動学的拘束のために、２つの足（足裏）が平らな面（例えば水平な床または台）と接触を保つ方法でロボットに姿勢をとらせることが役立つ。コスト関数は、オフセットを算出する際に使用するためにも定義され、コスト関数は、（例えば、ロボットの足または足の足裏を平らに保つように拘束が選択された場合）方向誤差と、足裏頂点の高さの変化とを提供することができる。
【００５１】
方法２００は、続いて２２０において、ロボットの１つまたは複数のリンクにおいてＩＭＵを提供する（またはＩＭＵがすでに存在する場合、１組の入力データを提供する際に使用するために、そのＩＭＵが単に選択される）。例えばＩＭＵは、相対的な方向測定値を提供するために、骨盤リンクにおいて提供（または選択）することができる。方法２００は、続いて２３０において、２１０において選択された運動学的拘束を強制しながら、１組の関節についてのデータ収集を開始する。例えば、ロボットは、最初に、２つの足の足裏を床に平らにつけた（複数のリンク位置と関節角度とによって定義される）第１の位置または姿勢をとることができる。２４０において、相対的な大域的方向の決定を容易にするために、この第１の姿勢にある間に、ＩＭＵからの測定値が収集される。２５０において、事前定義された１組の関節（例えば、ロボットのすべての関節、または脚の関節など、ある一部の関節など）のうちの各関節における角度センサ（例えばポテンショメータ）から、角度測定値が収集される。
【００５２】
２６０において、さらなる姿勢がキャリブレーションにおいて利用されるか否か判定されるが、方法２００の多くの実施では、キャリブレーションの精度を高めるために、３０から５０またはより多くの姿勢など、多くの姿勢を利用する。さらなる姿勢が利用される場合、方法２００は、続いて２６５において、運動学的拘束を保持しながら（例えば、足を床に平らにまたは接触させて保ちながら）、脚関節またはリンクを動かすなどして、手動でロボットを動かして、次の姿勢をとらせる。その後、次の姿勢においてＩＭＵ入力および角度センサ入力を収集するために、工程２４０および工程２５０が繰り返される。その後、キャリブレーションにおいて使用されるさらなる姿勢が存在するか否か決定するために、工程２６０が再び実行される。
【００５３】
さらなる姿勢はないと判定された場合、方法２００は、続いて２７０において、事前定義された１組の関節のうちの各関節についての角度オフセットを決定するために、コスト関数を最小化することなどによって、最適化問題を解く。その後、方法２００は、続いて２８０において、工程２７０において決定されたオフセットを使用して、事前定義された１組の関節における各関節角度のキャリブレーションを施された値を決定する。これは、各関節のための角度センサによって提供された測定角度にオフセット値を加算することを含んでもよい。このキャリブレーションを施された値は、その後、多くの関節の動きまたは操作によってリンクを位置づけるために、関節トルクを設定することなどによってロボットを制御する際に使用することができる。方法２００は、続いて２３０において、別のキャリブレーション作業を行うことができ（例えば、運動学的キャリブレーションは、１つのロボットについて定期的に繰り返されることがあり）、または２９０において、終了することができ、コントローラは、力制御人型ロボットのさらなる動作または操作の最中に、キャリブレーションを施された関節角度を決定するために、１組のオフセットを用いて動作を行うなどする。
【００５４】
（ロボット１１０および方法２００を用いることなどをする）運動学的キャリブレーシ
ョン方法をテストするため、または運動学的キャリブレーション方法のプロトタイプを作成するため、ロボット（すなわちＣＭＵサルコス人型ロボット）の骨盤リンクに取付けられた単一のＩＭＵは、方向を測定するために使用された（Ｍ＝１）。この方向はどの関節によっても影響されないので、このテスト実施においては、脚関節（Ｎ＝１４）のオフセットだけが同定または決定された。ロボットの足の各足裏の４つの隅（例えば総計で８点）が、高さ分散を算出するために使用された。サンプル姿勢データは、いくつかの異なる高さに、いくつかの異なる脚配置を取らせることによって、ガントリ（ｇａｎｔｒｙ）からロボットを吊るしながら、５００Ｈｚの周波数で収集された。
【００５５】
さらに（例えば、関節アクチュエータを作動させないように油圧ポンプをオフにして）ロボットを動かし、または操作することによって、データ収集工程（または期間）中に、ロボットに多くの姿勢を取らせた。データ収集工程は、全体の長さが約４分の８つの運動系列をもたらした。データ収集中、姿勢変化は比較的ゆっくりと達成されたので、かなりの量のデータがダウンサンプリングされた。計算時間を最小化するには、（キャリブレーションには十分である限り、またはキャリブレーションが可能である限り）サンプルはより少ないほうが望ましいので、一般に、利用される姿勢の数とのバランスが存在する。
【００５６】
図３は、グラフ３１０およびグラフ３２０を用いて、それぞれ、コスト関数値および計算時間が、このテスト実施において、キャリブレーションのために使用されるデータの間隔にどのように関係するかを示している。図示されるように、コスト関数値は、キャリブレーションのために使用されるサンプル間隔に係わりなく、０．２秒間隔でとられるフレームにわたって平均される。したがって、この結果は、最適化のために使用されないサンプルにおける相互検証を含む。図３に示されるように、キャリブレーション後のコスト関数値は、約１．８秒間隔までは妥当な小ささの値を維持し、この間隔では、典型的なコンピュータ／プロセッサを用いた場合、計算に約１分しかかからない。
【００５７】
図４は、運動学的キャリブレーション方法のテストランにおいて利用される人型ロボットを概略的に示している。４１０、４２０、４３０において、図４は、キャリブレーション前（上）およびキャリブレーション後（下）に、コントローラを介して３つの異なる姿勢をとらされたロボットを示している。例えば、４１０では、ロボットは、最初に４１２において、特定の姿勢をとるように制御されるが、関節角度センサの不正確性（例えば回転／移動）のために、足の制御は、（４１３に示されるように）足を地面／床に平らに置かない。対照的に、４１４において、運動学的キャリブレーションが達成されると、同じ姿勢４１０について、（４１５に示されるように）平らになったロボットの足がもたらされる。ルート位置（例えば骨盤リンクの高さ）は、この情報が利用可能ではないので、一定であることに留意されたい。しかし各姿勢４１０、４２０、４３０において、キャリブレーションの後では、左右の足が同じ高さで平らになっていることを観察することができるが、キャリブレーションの前では、明らかに、このようなことは起こっていない。この事実は、各サンプルにおける平均の高さを減算して、サンプル姿勢における足の頂点の高さ（例えば８つの足裏隅）を検査することによっても検証された。
【００５８】
接触拘束における平らな足に加えて、またはこれに対する変更として、本明細書で説明される運動学的キャリブレーション中に、他の運動学的拘束を利用することができる。そのような場合、この新しい拘束の使用を反映して、コスト関数を取り換える（例えば、上記の式（５）を新たに導出されたコスト関数に取り換える）ことが有益なこともある。例えば、発明者は、足を床に平らに接触させる拘束に加えて、ロボットの２つの足を整列させることを要求する拘束を含む、運動学的キャリブレーション方法を実施することが役立つことを見出した。テストは、そのような追加の拘束が運動学的キャリブレーションモジュールとそれが提供するオフセットとによって達成できるキャリブレーション結果を、著しく改善し得ることを示した。
【００５９】
この追加の拘束は、図５のロボット５００について示されるように、足が並んで整列するように、２つの足を配置することを要求することができる。図示されるように、ロボット５００の下半身または脚部分５１０は、骨盤リンク５１１、脚リンク５１２、右脚関節５１３、右足首関節５１４、右足５１６についての位置と、左足首関節５１８Ａ、左足５１９Ａについての位置も含む、第１の位置に配置される。脚部分５１０のこの第１の位置では、足５１６、５１９Ａは、互いに平行な足または足裏５１６、５１９Ａを通って延びる、中心軸または長手軸ＡｘｉｓＲｉｇｈｔおよびＡｘｉｓＬｅｆｔ１を用いて並んで整列させられる。足５１６、５１９Ａは、足が平らに接触する拘束（すなわち最初の運動学的拘束）を同時に満たすように配置されるので、軸も同一平面にある。
【００６０】
図５は、左足５１９Ｂと足首関節５１８Ｂが、左足５１９Ｂの軸ＡｘｉｓＬｅｆｔ２を右足５１６の軸ＡｘｉｓＲｉｇｈｔと平行にしたまま、新しい位置（ロボット５００の新しい姿勢）への移動５２０を行った第２の位置にある、ロボット５００の脚または下半身５３０も示している。ロボット５００を用いて示される配置は、足のつま先およびかかとを１直線にそろえて、足を平行に保っている。これは、移動５２０の前に、足５１６、５１９Ａのつま先側とかかと側に２つの長いまたは細長い部材（例えば板）を配置するなど、単純なジグを使用することによって達成することができる。
【００６１】
図６は、足が平らに接触する拘束と組み合わせて利用できる、類似しているがやや異なる追加の拘束を示している。骨盤リンク６１１、脚リンク６１２、左右の足首関節６１４、６１８、および左右の足（または平面的な足底）６１６、６１９を含む、人型ロボットの下半身または脚部分６１０が示されている。足６１６、６１９は、中心軸または長手軸ＡｘｉｓＲｉｇｈｔとＡｘｉｓＬｅｆｔとを一致させることによって、前／頭−後／尾方向に整列するように示されている。やはり、この追加または第２の運動学的拘束は、足６１６、６１９を同一（単一）の平面的な水平の支持面（例えば床または地面）に平らに接触させて配置することを要求し、足裏を同一平面上にあり続けさせる、最初または第１の運動学的拘束と同時に強制される。
【００６２】
新しい運動学的拘束を追加した場合、足整列拘束を取り扱い／含み、式（５）のコスト関数に取って代わる、コスト関数を導出することができる。図７は、水平な床（または平面的な支持台）に投影された、ロボットの足７１０、７２０の上面図７００を示している。長方形７１０、７２０は、それぞれ、左足および右足を表す。各足７１０、７２０から、２つの対応する頂点を選択することができ、２つの頂点は、ｐ＊０およびｐ＊１によってその位置を表し、左足の場合は、＊＝Ｌであり、右足の場合は、＊＝Ｒである。コスト関数の導出は、図７において定義され／示される、角度θ１およびθ２も利用する。
【００６３】
足が足整列拘束を満たす場合、θ１＝π／２、θ２＝π／２が成り立ち、したがって、ｃｏｓθ１＝０、ｃｏｓθ２＝０である。このことを心に留めたうえで、足整列拘束のためのコスト関数として、
式（６）：  Ｃｋ＝ｃｏｓ２θ１＋ｃｏｓ２θ２
のようにコスト関数を選択することができる。足の頂点の位置を使用して、ｃｏｓθ１は、
【００６４】
【数７】
0005509226.tif 000008
【００６５】
によって算出することができる（ｃｏｓθ２を算出するための式も同様である）。
図１のロボット１１０に関して説明されたように、（動力学的キャリブレーションモジュール１５８を用いて、ロボット１１０の各リンク１１２の質量または他の動力学的パラメータ１３６、１６８など）正確またはより正しい慣性パラメータを提供することによって、ロボットまたはその制御のキャリブレーションを行うために、（運動学的キャリブレーションを行いながら、または行わずに）動力学的キャリブレーションも使用することができる。正確な慣性パラメータは、ロボットのモデルベース制御のために重要であり、ロボットのマニピュレータについての慣性パラメータの同定または決定は、ロボット工学産業または研究分野の多くの人たちによって活発に研究されている。従来の方法は、一般に、関節トルクは慣性パラメータの線型方程式として表すことができるという事実を利用していた。特に動力学に影響し、したがってこれらの従来の方法を用いて決定可能な１組のパラメータは、「ベースパラメータ」と呼ばれる。関節トルクおよび運動データを与えた場合、リグレッサの疑似逆行列によって、最小誤差を与えるベースパラメータを獲得することができる。
【００６６】
信頼性をもってすべてのベースパラメータを同定するには、データは十分な励振をもたなければならず、励振を最適化するための方法が過去に開発されている。励振が貧弱な場合、リグレッサは悪い状態になり、ベースパラメータの同定または決定が、リンクについての負の質量を含む、物理的に矛盾する慣性パラメータをもたらすことがある。リグレッサの特異値または統計的モデルを使用することによって、同定不可能なパラメータをグループ化し、排除することを含む、また慣性パラメータを矛盾のないパラメータ空間内に制限することも含む、この問題に対する可能な解決策が、研究者によって試みられてきた。
【００６７】
残念ながら、これら従来の動力学的キャリブレーション技法をフローティングベースの人型ロボットに適用することは簡単ではない。１つの解決困難な問題は、ロボットのバランスを維持しながら、慣性パラメータの信頼できる計算を実行するのに十分な大きさの加速を最も良く実現するにはどうするかである。別の実際的な問題は、慣性パラメータの計算を実行するのに、またそのような計算の出力／結果をロボット制御の入力として使用するのに必要とされる、人型ロボットの動力学および追加のコードの複雑さである。リグレッサを算出するには、通常、剛体の動力学方程式（ｒｉｇｉｄ−ｂｏｄｙ  ｄｙｎａｍｉｃｓ  ｅｑｕａｔｉｏｎ）の再編成を必要とし、複雑な機構の場合、これは困難である。さらに、算出されたベースパラメータは、標準的な逆動力学の定式化において使用されるパラメータに変換しなければならない。
【００６８】
従来の技法にはこれらの問題があることを理解し、心に留めたうえで、以下の説明では、最初に、モデルベース制御で通常は利用可能な逆動力学関数だけを使用してリグレッサを算出するための実用的な方法を提示する。その後、説明は、励振が貧弱であっても、物理的に矛盾のない慣性パラメータを直接的に算出する２つの方法を提示する。第１の方法は、最小２乗解を獲得するために、リグレッサの主要な特異ベクトルだけを考慮することを含み、第２の方法は、質量パラメータに下限を有する最適化問題を解くために、勾配ベース法を適用することを含む。
【００６９】
実験結果は、適切な条件数閾値が使用される場合、第１の方法が妥当な最小２乗解をもたらし得ることを示唆した。しかし第２の方法は、元のリグレッサを用いた場合であっても、良好に機能することが判明し、より良い相互検証結果を与えるように思われる。第２の方法と従来の技法の相違の１つは、従来の技法が、矛盾のないパラメータを獲得するために、リンクをその表面に配置された１組の点質量によって表すことである。対照的に、発明者によって教示され説明される第２の方法は、関節を作動させるために使用されるロボットの油圧ホースが、ロボットのＣＡＤモデルでは、一般にリンク形状の外側を走っているので、少なくともそのような表し方を使用しない。（ロボットではなく）人体の慣性パラメータを同定しようとする取り組みが、これまでいくつか試みられた。しかし人間の
ほうが人型ロボットよりもはるかに活動的な運動を行うことができるので、従来の技法または応用のいくつかにおいては、良好な励振を獲得するほうが容易である。発明者は、リンクの慣性モーメントを算出するのに十分に適した励振を獲得することを期待していないので、質量パラメータおよび局所質量中心（ＣｏＭ）パラメータを算出または決定することに努力を集中し、その後、ＣＡＤモデルを使用することによって、リンクの慣性モーメントを算出する。
【００７０】
入力データの不足というこの問題に対処するために、フローティングベースの人型ロボットの動力学的キャリブレーションを容易にするための以下の問題定式化が、発明者によって発案された。フローティングベースを有する人型ロボットの動力学は、
【００７１】
【数８】
0005509226.tif 000009
【００７２】
として記述され、ここで、θは、一般化座標であり、φは、算出／同定されるＮ個の慣性パラメータであり、Ｍは、関節空間の慣性行列（ｊｏｉｎｔ−ｓｐａｃｅ  ｉｎｅｒｔｉａ  ｍａｔｒｉｘ）であり、ｃは、遠心力、コリオリの力（Ｃｏｒｉｏｌｉｓ  ｆｏｒｃｅ）、および重力であり、τは、アクティブな関節トルクであり、Ｊは、接触点のヤコビ行列（ｃｏｎｔａｃｔ  Ｊａｃｏｂｉａｎ  ｍａｔｒｉｘ）であり、ｆは、接触力であり、ＳＴは、関節トルクを一般力にマッピングする行列である。
【００７３】
特にロボットがＭの自由度（ＤｏＦ）を有し、一般化座標の最初の６つの要素がフローティングベースの６つのＤｏＦに対応する場合、ＳＴは、
【００７４】
【数９】
0005509226.tif 000010
【００７５】
という形式を有し、ここで、０＊および１＊は、適切なサイズの零行列および単位行列を表す。この説明の残りの部分では、式（８）の左辺を、
【００７６】
【数１０】
0005509226.tif 000011
【００７７】
によって表す。
フレームｋ（ｋ＝１，２，．．．，Ｋ）における関節角度θｋ、関節トルクτｋ、および接触力ｆｋを含む、Ｋフレーム長の実験データ系列が収集され、または利用可能であると仮定する。逆動力学アルゴリズムを使用すると、Ｆ（＊）は、フレームｋにおけるθｋならびにその速度および加速度から、
【００７８】
【数１１】
0005509226.tif 000012
【００７９】
を使用して算出することができる。Ｆｋ（φ）はφの線形関数になることが知られている。第ｉのリンクｓｉの局所ＣｏＭ位置の代わりに、φは、式を線形にするために、１次慣性モーメントｍｓｉ＝（ｍｓｉｘ  ｍｓｉｙ  ｍｓｉｚ）Ｔ＝ｍｉｓｉ（ｍｉは質量）を含まなければならないことに留意されたい。
【００８０】
ここでＡｋを使用して表すと、フレームｋにおける係数行列（リグレッサ）は、
式（１１）：  Ｆｋ（φ）＝Ａｋφ
となる。すべてのフレームについて上記式を連結すると、以下の方程式が得られる。
【００８１】
【数１２】
0005509226.tif 000013
【００８２】
他方、式（８）の右辺は、フレームｋにおける力測定値から、
【００８３】
【数１３】
0005509226.tif 000014
【００８４】
として算出することができる。その後、すべてのフレームについて式（１３）を連結すると、以下の方程式が得られる。
【００８５】
【数１４】
0005509226.tif 000015
【００８６】
パラメータ計算方法の目標は、以下の方程式
【００８７】
【数１５】
0005509226.tif 000016
【００８８】
を満たすパラメータφを算出することである。しかし、センサの限界のために、
【００８９】
【数１６】
0005509226.tif 000017
【００９０】
を算出するのは困難なことがある。例えば、電気モータによって駆動されるほとんどの人型ロボットの場合がそうであるように、関節トルク測定値が利用可能でないことがある。
また、いくつかの接触力は、オンボードの力トルクセンサの限界のために、利用可能でない、またはあまり正確でないことがある。一般に、
【００９１】
【数１７】
0005509226.tif 000018
【００９２】
および
【００９３】
【数１８】
0005509226.tif 000019
【００９４】
は、利用可能な成分と利用不可能な成分とに分割することができ、利用可能な成分だけを使用して、最適化問題を定式化することができる。具体的には、
【００９５】
【数１９】
0005509226.tif 000020
および
【００９６】
【数２０】
0005509226.tif 000021
【００９７】
は、それぞれ、その測定値が利用可能な成分と、利用不可能な成分とに分割される。
【００９８】
【数２１】
0005509226.tif 000022
【００９９】
，  
【０１００】
【数２２】
0005509226.tif 000023
【０１０１】
，  
その後、式（１４）は、
【０１０２】
【数２３】
0005509226.tif 000024
【０１０３】
のように書き直すことができる。
【０１０４】
【数２４】
0005509226.tif 000025
【０１０５】
は、
【０１０６】
【数２５】
0005509226.tif 000026
【０１０７】
の零空間基底を表すために使用される。その後、式（１６）の両辺に左側から
【０１０８】
【数２６】
0005509226.tif 000027
【０１０９】
を乗じることによって、
【０１１０】
【数２７】
0005509226.tif 000028
【０１１１】
であるので、以下の方程式が得られる。
【０１１２】
【数２８】
0005509226.tif 000029
【０１１３】
次に式（１５）の両辺に
【０１１４】
【数２９】
0005509226.tif 000030
【０１１５】
を乗じることによって、
【０１１６】
【数３０】
0005509226.tif 000031
【０１１７】
が得られ、ここで、
【０１１８】
【数３１】
0005509226.tif 000032
【０１１９】
である。式（１７）のため、式（１８）は、測定可能な力だけを含む。
ベースパラメータは、一般に、標準慣性パラメータφの部分集合の線形結合である。したがって、リグレッサを算出するには、ロボット動力学の記号表現と、与えられた運動データを用いて記号方程式を評価するための専用コード／ソフトウェアルーチンとを必要とする。これらの方法は、複雑な機構の場合、困難なことがある。
【０１２０】
したがって、発明者は、ベースパラメータの代わりに、標準慣性パラメータを用いる定式化を使用することを選択した。難点は、原理的に必ずしもすべてのパラメータが同定可能／決定可能ではないので、より最適な励振を用いたとしても、物理的に矛盾しないパラメータを獲得することが困難な場合があることである。しかし、発明者のアプローチは、以下の２つの利点、すなわち、（１）逆動力学関数を使用してリグレッサを容易に算出できる、（２）直接的に慣性パラメータを獲得することができる、という利点を探ることを可能にする。
【０１２１】
式（１８）を解く代わりに、（例えば）ロボットのＣＡＤモデルから獲得できる、既知の公称パラメータφ０にできるだけ近い、１組の慣性パラメータが算出される。したがって、慣性パラメータφは、φ＝φ０＋Δφのように分割することができる。また、式（１８）は、測定ノイズのために、ほとんどの場合、正確な解をもたない。上記の２点を考慮して、問題は、以下の方程式を最小化するΔφの値を見出そうと試みることと言い表すことができる。
【０１２２】
【数３２】
0005509226.tif 000033
【０１２３】
ここで、
【０１２４】
【数３３】
0005509226.tif 000034
【０１２５】
である。
本明細書で教示される（図１のロボット１１０のモジュール１５８によって実施される）動力学的キャリブレーション方法の１つのユニークな特徴は、ロボットを制御する際に後で使用できる慣性パラメータを提供するために式（１９）の最小化が達成される方法である。Δφを獲得するための簡単な方法は、
【０１２６】
【数３４】
0005509226.tif 000035
【０１２７】
として与えられる
【０１２８】
【数３５】
0005509226.tif 000036
【０１２９】
の疑似逆行列を使用することであり、この疑似逆行列は、式（１９）を最小化する最小ノルムを
【０１３０】
【数３６】
0005509226.tif 000037
【０１３１】
として与える。しかし、
【０１３２】
【数３７】
0005509226.tif 000038
【０１３３】
の条件数が大きい場合、結果の慣性パラメータφ０＋Δφは、矛盾する値を含むことがある。
この問題の回避策は、事前定義された閾値よりも小さくなるように定め得るような、
【０１３４】
【数３８】
0005509226.tif 000039
【０１３５】
の小さな特異値を省くことである。
【０１３６】
【数３９】
0005509226.tif 000040
【０１３７】
の特異値分解（ｓｉｎｇｕｌａｒ−ｖａｌｕｅ  ｄｅｃｏｍｐｏｓｉｔｉｏｎ）は、
【０１３８】
【数４０】
0005509226.tif 000041
【０１３９】
と設定することができ、ここで、ＵおよびＶは、直交行列であり、Σは、対角成分が
【０１４０】
【数４１】
0005509226.tif 000042
【０１４１】
の特異値である対角行列である。その場合、
【０１４２】
【数４２】
0005509226.tif 000043
【０１４３】
の疑似逆行列は、
【０１４４】
【数４３】
0005509226.tif 000044
【０１４５】
と書き直すことができる。ここで、正規の
【０１４６】
【数４４】
0005509226.tif 000045
【０１４７】
の代わりに、その要素が
【０１４８】
【数４５】
0005509226.tif 000046
【０１４９】
によって与えられる
【０１５０】
【数４６】
0005509226.tif 000047
【０１５１】
を使用し、ここで、ｃｍａｘは、ユーザ定義の最大条件数である。式（１９）を最小化する上記の方法は、最小２乗法と呼ばれることがある。
式（１９）を最小化するための別の方法は、初期推定としてΔφ＝０を使用する、勾配ベース数値最適化を適用することである。この方法の利点は、各パラメータについての下限および／または上限を明示的に設定できることである。１つの実施では、負の質量パラメータを防止するように下限が設定された、共役勾配法が使用される。また、
【０１５２】
【数４７】
0005509226.tif 000048
【０１５３】
は、
【０１５４】
【数４８】
0005509226.tif 000049
【０１５５】
によって置き換えることができ、ここで、
【０１５６】
【数４９】
0005509226.tif 000050
【０１５７】
は、要素が以下によって与えられる対角行列である。
【０１５８】
【数５０】
0005509226.tif 000051
【０１５９】
この最小化方法は、勾配ベース法と呼ばれることがある。
ベースパラメータの代わりに標準慣性パラメータが利用されるので、定式化においてリグレッサＡｋを算出することは比較的自明である。以下では、Ａｋの第ｉ列ａｋｉを算出するための方法を説明する。最初に、一般力
【０１６０】
【数５１】
0005509226.tif 000052
【０１６１】
が、公称慣性パラメータを用い、
【０１６２】
【数５２】
0005509226.tif 000053
【０１６３】
によって提供される逆動力学関数を使用して算出される。
次に、
【０１６４】
【数５３】
0005509226.tif 000054
【０１６５】
を獲得するために、φ０の第ｉの要素に単位変化を起こすことができ、その後、新しい慣性パラメータに対応する新しい一般力は、
【０１６６】
【数５４】
0005509226.tif 000055
【０１６７】
を用いて算出することができる。さらに、ａｋｉは、方程式
【０１６８】
【数５５】
0005509226.tif 000056
【０１６９】
によって算出することができる。
ここで、φの第ｉの要素に対する単位変化に従って、質量パラメータおよび局所ＣｏＭパラメータをどのように変更すべきかについての説明を提供することができる。φの第ｉの要素がリンクｊの質量に対応する場合、リンクｊの慣性パラメータは、
式（２８）：  ｍｊ←ｍｊ＋１
【０１７０】
【数５６】
0005509226.tif 000057
【０１７１】
のように変更することができる。ここでは、ｍｊを単位質量だけ増加させたが、ｍｓｊは
同じままである。φの第ｉの要素がｍｓｊ＊（＊＝ｘ，ｙ，ｚ）に対応する場合、ＣｏＭは、ｍｓｊ＊が１だけ増加するように、
【０１７２】
【数５７】
0005509226.tif 000058
【０１７３】
のように変更することができる。
発明者は、この新しいキャリブレーション方法の有用性を立証する実験結果を収集するために、上述の動力学的キャリブレーション方法についての多くの実験またはテストを実行した。ロボットのコントローラを使用して、３つのデータ系列が収集されたが、ロボットは、バランスを維持しながら、人間運動捕捉系列を追跡するように制御された。１つの系列は、慣性パラメータの算出または同定のために使用され、他の２つの系列は、相互検証のために使用された。各系列は、約３０秒の長さまたは持続時間であった。運動中、接触状態の変化は生じず、両足は、地面／床に平らに接触したままであった。
【０１７４】
運動には、かなりの量の上半身の動作が含まれたが、下半身は、（ほとんどは実験のために使用された動力学的モデルの誤差に起因する）わずかな量の運動しか行わず、相対的に静止状態にあった。腕関節は、比例微分位置コントローラによって制御された。他の関節の関節トルクコマンドを算出するために、バランスを維持し、参照運動を追跡するためのモデルベースコントローラが使用された。
【０１７５】
実験中、関節角度、関節トルク、および地面接触力が測定された。骨盤リンクに取付けられたＩＭＵによって、ルート方向が測定された。ルート位置は、参照運動および脚関節角度を使用して推定された。各関節は関節トルクセンサを有していたが、実験で使用された制御ソフトウェアの仕様のために、位置制御される関節のついての関節トルクデータは獲得可能でなかった。また、ロボットの足首にある６軸力トルクセンサの水平力成分は、実験中、良好にキャリブレーションされなかった。
【０１７６】
最初のデータは、２ミリ秒間隔で記録され、慣性パラメータの算出または同定のために、１００ミリ秒間隔にダウンサンプリングされた。関節速度および加速度を算出するために、各フレームの前後の１２５個のデータ点を考慮してその係数が決定される区分的３次多項式によって、関節角度測定値が補間された。したがって、この補間は、遅延のない低域通過フィルタとして機能する。
【０１７７】
以下のパラメータセットが、同定または算出のために比較された。個々のリンクのための第１のパラメータセット（Ｌ）では、個々のリンクの質量パラメータおよび局所ＣｏＭパラメータが算出または同定された。対称性制約を有する個々のリンクのための第２のパラメータセット（ＬＳ）では、ロボットの左半身のリンクの質量パラメータおよび局所ＣｏＭパラメータが算出され、右半身のリンクは、ミラーリングによって同じパラメータを有するものと仮定された。（ＣＡＤデータから獲得された）最初の慣性パラメータを使用して獲得されたコスト関数値（式（１９））は、実験した３つの運動について、２．１１×１０７から２．２９×１０７の範囲内にあった。
【０１７８】
動力学的キャリブレーション方法を用いた実験の結果から、以下の観察を行うことができる。第１に、疑似逆行列を使用して妥当な結果を獲得するために、小さな特異値は省くべきであるが、勾配ベース法は、ｃｍａｘの値に係わらず、矛盾のない結果を与える。第
２に、対称性を強制することは、より良い相互検証結果を一般に与え、直接検証結果は、それよりもわずかに悪い。第３に、疑似逆行列と勾配ベース法の両方が妥当な結果を与えるほとんどの場合では、勾配ベース法のほうが、はるかに良好な相互検証結果を与えることができるが、直接検証結果は同様である。
【０１７９】
本発明がある程度の詳しさで説明され、示されたが、本開示はもっぱら例を用いて行われており、以下で特許請求される本発明の主旨および範囲から逸脱することなく、部分の組み合わせおよび構成に対して当業者によって多くの変更を施し得ることが理解されよう。
【図１】
0005509226.tif 000059
【図２】
0005509226.tif 000060
【図３】
0005509226.tif 000061
【図４】
0005509226.tif 000062
【図５】
0005509226.tif 000063
【図６】
0005509226.tif 000064
【図７】
0005509226.tif 000065