説明

力制御関節を有する有脚ロボットのための運動学的および動力学的キャリブレーション方法

【課題】力制御2足人型ロボットのキャリブレーションを行うための方法。
【解決手段】方法は、2足を床に平らに接触させて維持するなど、人型ロボットについての運動学的拘束を選択する。方法は、運動学的拘束を強制しながら人型ロボットを動かして、複数の姿勢をとらせる。方法は、姿勢をとらせる工程中に、人型ロボットの関節について角度測定値を収集することと、その後、プロセッサを用いて運動学的キャリブレーションモジュールを実行し、ロボット関節についての角度オフセットを決定することとを含む。方法は、動かす工程中に、骨盤リンクに取付けられた慣性運動ユニットから相対方向データを収集することを含み、角度オフセットは、相対方向データを使用して決定される。全てのデータは、ロボット上のデバイスから収集され、外部データ収集は、必要とされない。

【発明の詳細な説明】
【技術分野】
【0001】
本説明は、一般に、有脚ロボット(legged robot)(例えば、2足人型ロボット、または4足ロボットなど他の有脚ロボット)と、そのようなロボットの力制御関節(force−controlled joint)の制御とに関し、より詳細には、ロボットの力制御関節の操作を改善するために、有脚ロボットのキャリブレーションを行うための方法(ならびにそのようなキャリブレーションを用いる人型および他の有脚ロボット)に関する。
【背景技術】
【0002】
2足人型ロボットは、人体の外観に基づいた外観を有するロボットである。人型ロボットは、人間と安全かつ効果的に相互作用を行うようにしばしば適合された、人間用に作られた道具および機械など、様々な環境との相互作用を提供するために設計された。一般に、人型ロボットは、頭と、2つの腕と、2つの脚とを備える胴を有し、各脚は、ロボットが平面的な面の上を歩くこと、または段を上ることなどができるように、何らかの形態の足を有する(例えば、これらの人型ロボットは、人間のような「2足ロボット」である)。人型ロボットは、関節によって相互接続される多くの剛性リンクを用いて形成することができ、関節は、ロボットを動かし、位置づけるために、各関節に力またはトルクを加えることによって操作され、または位置づけられる。同様に、3つ、4つ、またはより多くの脚を有する有脚ロボットなど、他の有脚ロボットも、脚の力制御運動を利用して歩くことができる。
【0003】
人間環境と相互作用を行うために、人型ロボットは、力制御関節の安全で規則に準拠した制御を必要とする。これに関して、各ロボットは、コントローラを備え、コントローラは、所望の運動および出力する力(接触力)を決定し、それに応答して、関節トルクを出力して、人型ロボットの動作および位置づけを効果的に制御するようにプログラムしなければならない。しかしロボットは、複雑な環境で仕事を実行している間に、平坦でない地面または平坦な段差、止まった障害物および動く障害物、ならびに人間にさえも遭遇することがあるので、力制御ロボットを用いて所望の結果を達成するのは困難であることがしばしば判明した。ロボットは、そのような環境内で、1つの場所に立ちながら、また歩を進めて動きながら、バランスをとり続けなければならない。
【0004】
接触力制御を達成するために、仮想モデル制御(VMC:virtual model
control)の使用または動力学的平衡力制御(DBFC:dynamic balance force control)の使用などを含む、人型ロボットを制御するための多くの役立つ技法が開発されてきた。ロボットコントローラによって実施される特定の制御技法に係わりなく、センサによって提供され得る、または算出され得る特定のデータは、適正な制御が達成されるためには正確でなければならない。例えば、従来のマニピュレータと比較した場合、フローティングベース(floating−base)の人型ロボットの運動学的パラメータおよび動力学的パラメータを同定または決定することは、今なお難しい問題であることが判明した。難しさが存在するのは、部分的には、バランスを維持しながら、多種多様な姿勢および運動を獲得することに問題があるためである。加えて、パラメータ同定または決定アルゴリズムは、外部的な測定をしばしば必要とし、このことは、環境内に(すなわち、ロボット自体の外側または外部に)追加的なセンサを含むことを、ロボット制御システムに強いる。
【0005】
運動学的パラメータに関する1つの特定の例として、ロボットは、関節角度を同定また
は決定するためのコントローラに入力を提供するために使用されるセンサを各関節に含むことができるが、これらの関節角度は、関節の動きを通してロボットをさらに制御し、および/または位置づけるために使用される、運動学的パラメータである。実際には、関節センサは、関節の動きおよび加えられる力のために、最初の位置から移動または回転することがある。結果として、センサのいくつかは、ロボットの実際の関節角度とは異なる測定関節角度を示すデータを提供しており、補正を行わないと、ロボットは、不適切に制御され、または位置づけられ、その結果、仕事をうまく達成できないばかりか、バランスを失うことすらある。
【0006】
ロボット制御で使用される運動学的パラメータおよび動力学的パラメータの同定を伴うこれらの問題に対処するために、キャリブレーションを使用することができるが、多くの既存のキャリブレーション方法は、実施するのが困難であり、および/またはこれらの制御問題を完全には解決しない。不正確な関節センサに対する補正を行うために使用されるものなど、ほとんどの運動学的キャリブレーション(kinematic calibration)方法は、ロボット上のいくつかの特徴点の外部的な位置測定を使用する。これは、ロボット上にマーカを提供することと、外部的な運動センサを使用して、マーカ位置を獲得し、大域的な測定値および関節センサからの局所的な測定値を決定することとを含むことができる。コントローラが正しい関節角度をより正確に決定できるように、各センサについてのオフセットが算出される。分かるように、これが追加の外部的なデバイス(運動センサ)および測定の使用を必要とし、センサのさらなる動きを考慮するために運動学的キャリブレーションを定期的に繰り返さなければならない場合は特に、運動学的キャリブレーションは、多くの時間を要し、手間がかかる。
【0007】
同様にコントローラが各リンクの質量および慣性モーメントなどの慣性パラメータを正確に同定するために、動力学的キャリブレーション(dynamic calibration)が望ましいことがある。既存の動力学的キャリブレーション方法は、適切なバランスを保ちながら、ロボットを動かし、多くの異なる方向および位置をとらせることが困難であるので、しばしば効果がない。結果として入力データは、しばしば限定的であり、限定的なデータ収集方法は、慣性パラメータの算出を難しくする。例示的な動力学的キャリブレーション方法は、係数行列の疑似逆行列(pseudo−inverse)の使用を含む。しかし良い状態の係数行列を得ることは困難であることが判明しており、そのためこのキャリブレーション方法は、キャリブレーションデータが十分な多様性をもたない場合、負の質量など、物理的に矛盾したパラメータをもたらす。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2010−260173号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
したがって人型ロボットのキャリブレーションを行うための改善された方法が依然として必要とされている。好ましくは方法は、外部的な測定を必要としない運動学的キャリブレーションを提供し、物理的に矛盾しない慣性パラメータをもたらす動力学的キャリブレーションを提供する。
【課題を解決するための手段】
【0010】
本発明は、力制御ロボットのためのキャリブレーション方法(および改善された制御のためにそのような方法を利用するロボット)を提供することによって、上記の問題に対処する。方法は、2足人型ロボットでの使用に適しているが、ほぼどのような有脚ロボット(例えば4足ロボットなど)でも有用である。キャリブレーション方法は、慣性測定ユニ
ット(IMU:inertial measurement unit)および多くの関節角度センサを含む、ほとんどの人型ロボットで通常は利用可能なセンサを使用して、関節角度センサオフセットを推定または算出することが可能な、運動学的キャリブレーション技法を含む。運動学的キャリブレーション技法または方法は、一般に外部的なデバイスを用いて獲得され、オフセットを推定するために使用される、大域的な位置測定値および方向測定値を使用する代わりに、環境などによって強制される運動学的拘束(kinematic constraint)を利用する。一例では、運動学的キャリブレーションは、床または他の水平の平面的な支持台と平らに接触した状態に両足を保ちながら、人型ロボットを手で人力により動かす操作者を含んでいた。実験が示すところでは、この運動学的拘束の使用は、ロボットの関節のすべてまたは一部における関節角度センサオフセットの効率的で正確な計算を可能にするのに十分であった。
【0011】
キャリブレーション方法は、ロボットのリンクの質量などの慣性パラメータを決定することに役立つ、動力学的キャリブレーション方法を含んでもよい。本明細書では、人型ロボットの慣性パラメータを算出または同定するための、最小2乗法(least−square method)および勾配ベース法(gradient−based method)と呼ばれる、2つの方法が教示され、これらの方法は、容易な実施および貧弱な励振(excitation)データに対する堅牢性をサポートする。実施の容易性は、ベースパラメータ(base parameter)の代わりに標準慣性パラメータ(standard inertial parameter)を算出することによって実現され、標準慣性パラメータの一部は、ロボットの動力学に影響し、したがって(従来の動力学的キャリブレーション方法において行われたように)同定可能である。データ不足に対する堅牢性は、最小2乗法においてリグレッサ(regressor)の小さな特異値を省くことによって、または勾配ベース法を使用して最適化問題を解くことによって扱われる。実験が示すところでは、最小2乗法は、条件数(condition number)閾値が適切である場合は、矛盾のない慣性パラメータをもたらすことができる。やはり実験が示すところでは、勾配ベース法は、悪い状態のリグレッサを用いた場合であっても妥当な結果を与え、優れた相互検証結果を提供する。さらに、勾配ベース法は、矛盾する慣性パラメータを防ぐために、不等式制約(inequality constraint)を考慮することができる。
【0012】
より詳細には、力制御関節を有する有脚ロボットのキャリブレーションを行うための方法が提供される。方法は、有脚ロボットについての運動学的拘束を選択することと、その後、運動学的拘束を強制しながらロボットを動かすことによって、複数の姿勢をとらせることとを含む。方法はまた、動かすまたは姿勢をとらせる工程中に、ロボットの1組の関節についての角度測定値を収集することと、その後、運動学的キャリブレーションモジュールを実行するプロセッサを用いることによって、1組の関節のうちの関節の各々についての角度オフセットを決定することとを含む。
【0013】
或る実施形態では、方法はさらに、動かす工程中に、ロボットのリンク(例えば骨盤リンク)に取付けられた慣性運動ユニット(IMU)から、姿勢の各々における大域的方向データを収集することを含む。そのような場合、角度オフセットの決定は、収集された大域的方向データに基づく。一般に角度測定値は、すべてのデータがロボットに備えられたデバイスから収集され、外部的なデータ収集が必要とならない(例えば、運動センサなどが必要とならない)ように、1組の関節のうちの関節の各々の近くに取付けられた関節角度センサ(例えばポテンショメータ)によって提供される。
【0014】
方法のいくつかの実施では、角度オフセット決定工程は、リンク方向と運動学的拘束とに基づき定義されたコスト関数(例えば、各々に関連する誤差)を最小化することを含む。方法を実施するために、ロボットを、2つの脚と2つの足とを有する人型ロボットまた
は2足ロボットとすること(または3つ以上の脚とそれに対応する足とを有すること)ができ、運動学的拘束は、2つの足の足裏を、水平の平面的な支持面に平らに接触させて維持することを含むことができる。その場合、運動学的拘束はさらに、2つの足を整列した配置に保つことを含むことができる。例えば整列した配置は、2つの足が平行になる位置と、前後する(例えば、つま先をかかとにつける(toe−to−heel))位置とを含むことができる。
【0015】
キャリブレーションはまた、ロボットについての1組の慣性パラメータ(例えばリンクの質量)を算出することを含むことができる。ベースパラメータを使用する代わりに、計算は、標準慣性パラメータを同定/決定することを含むことができる。また慣性パラメータの算出は、最小2乗最小化方法を実行するときに、事前定義された閾値を下回るリグレッサの特異値を省くことを含むことができ、または計算は、代替的に、勾配ベース法を使用して最適化することを含むことができる。
【図面の簡単な説明】
【0016】
【図1】ロボットのキャリブレーションを行う(例えば、関節トルクまたは他の制御信号を生成する際に使用されるキャリブレーションを施された入力をロボットコントローラ(例えばモデルベースコントローラ)に提供する)ために定期的に実行できるソフトウェアまたはコンピュータコードを含む、2足人型ロボットの機能ブロック図。
【図2】運動学的キャリブレーションおよび改善された制御を提供するために、力制御人型ロボットで使用される、例示的なキャリブレーション方法を示すフロー図。
【図3】様々な間隔でサンプルを使用したコスト関数値および計算時間を示す2つのグラフを提供する図。
【図4】運動学的キャリブレーションの完了前および完了後にロボットに3つの異なる姿勢をとらせたロボットの制御が示された、本明細書で説明される運動学的キャリブレーション方法のテストランにおいて利用された人型ロボットを概略的に示す図。
【図5】足を平行に並べて整列させる足整列拘束を満たすように配置された人型ロボットの図。
【図6】図5の方式とは異なり足を並べる代わりに前後に整列させる方式の足整列を満たすように配置された人型ロボットの図。
【図7】足整列運動学的拘束のためのコスト関数を算出する際に役立つパラメータが示された、人型ロボットについての1対の足/足裏の上面ブロック図。
【発明を実施するための形態】
【0017】
簡潔に、力制御2足人型ロボットで使用される実用的な運動学的キャリブレーション方法および動力学的キャリブレーション方法を説明する。キャリブレーション方法は、1組の拘束を満たしながらロボット関節(脚関節など)の自由な動きを可能にするように適合された、ほぼどの力制御ロボットでも利用することができる。或る実施形態では拘束は、2つの足(または足裏)を平面的な基台または床に対して平らに保持することを含む。運動学的キャリブレーションのために、外部的な測定は、必要とされない。代替的に、運動学的キャリブレーションは、慣性測定ユニット(IMU)からのデータを利用するリンク方向の測定/決定とともに、各関節角度センサからの測定値を利用して実行される。キャリブレーションの出力または結果は、正しいまたは実際の関節角度を決定するために、ロボットコントローラ(例えばモデルベースコントローラ)によって使用できる、各関節についての1組の角度オフセットであり、正しいまたは実際の関節角度は、その後、関節トルクなど、制御信号を生成するために使用される。ロボットを様々な方法で動かすことができない(バランスが障害となり多くの姿勢をとれない)ために、入力が限定的になることがあっても、慣性パラメータ(例えば、ロボットの各リンクの質量および慣性モーメント)を決定するための動力学的キャリブレーション技法は、教示される。これらの慣性パラメータは、ロボットの動きを制御するための関節トルクを設定または選択するために、
ロボットコントローラに供給される。この簡潔な概要を心に留めたうえで、以下の説明では、キャリブレーションを施される例示的な人型ロボットの説明から開始し、その後、運動学的キャリブレーションおよび動力学的キャリブレーションの詳細な説明に進む。
【0018】
図1は、本明細書で教示されるような運動学的キャリブレーションおよび/または動力学的キャリブレーションの使用を介してキャリブレーションを行うことができる、2足人型ロボット110の機能ブロック図を示している。一般にキャリブレーション方法は、例えば、足を床または他の平面的な支持台に平らにつけるなど、事前定義された拘束を満たしながら、脚または他の関節を動かすことなどによって自由に動くことができる力制御ロボットである、ほぼどの2足人型ロボット110でも使用することができる。50から100またはより多くの姿勢においてデータ(例えば20秒間のデータ)を収集することなどによって、キャリブレーションを容易にする十分な入力を角度センサから獲得するために、十分に多種多様な姿勢を通してロボット110を動かすことが望ましい。
【0019】
示されるように、ロボット110は、関節114を用いて可動な、連結または相互接続された多くの剛性リンク112を含む。リンク112は、ロボットコントローラ130から受け取った制御信号(関節トルク)に応答して、ドライバ116(例えば、モータまたはアクチュエータなどの力入力デバイス)を操作して、関節トルクを関節114に加えることによって、動かすこと、および位置づけることができる。関節114における角度を表すデータまたは測定値を出力するために、各関節114は、角度センサ118を備え、関節角度測定値またはセンサデータ162は、ロボット110のメモリ160内に記憶される。以下でさらに説明されるように、骨盤リンク112などのロボット110のリンク112には、慣性測定ユニット(IMU)119が備えられ、IMU 119は、(モジュール154などの)キャリブレーションプログラムによってリンク方向を決定するために使用できる、やはりメモリ160内に記憶されるデータ162を提供する。リンク112は、足裏を有する1対の足を含み、運動学的キャリブレーション中、これらのリンク112は、(図1には示されていない)床または他の平面的な支持台に平らに接するように拘束される。
【0020】
ロボット110は、メモリ160を管理し(例えば、デジタル形式でデータを記憶し、読み出し)、1つまたは複数のプログラム(非一時的なコンピュータ可読媒体)を実行するように動作する、プロセッサまたはCPU 120を含む。例えば、プロセッサ120は、キャリブレーションを施された関節角度値134(例えば、算出された角度オフセット166によって調整された測定関節角度)および動力学的パラメータ136(例えば、各リンク112の質量および慣性モーメントならびに/または他の算出された慣性パラメータ168)を含む入力または入力データに基づき、モデルベース制御アルゴリズムなどを用いて、制御信号または関節トルク138を出力することを含む、ロボット110の操作を制御するために、ロボットコントローラ130が実行される。コントローラ130が関節トルク138を生成するために、ロボットキャリブレータ150の出力の少なくとも部分を利用する限り、ロボットコントローラ130の形態は、本発明を限定しない。或る実施形態では、キャリブレータ150を用いて角度オフセット166および算出された慣性パラメータ168を生成するために、ロボット110の外部のコンピュータが利用され、このデータは、コントローラ130に(例えばワイヤレスで)伝達される。
【0021】
示されるように、プロセッサ120は、ロボットキャリブレータ150を提供するために、非一時的なコンピュータ可読媒体内で提供され得る、ソフトウェアプログラムまたはコンピュータコードも実行する。ロボットキャリブレータ150は、運動学的キャリブレーションと動力学的キャリブレーションの両方を提供するために、運動学的キャリブレーションモジュール154および動力学的キャリブレーションモジュール158を介して、2つの異なるアルゴリズムまたは方法を実行する。以下で詳細に説明されるように、運動
学的キャリブレーションモジュール154は、IMU 119からのIMUデータ164とともに、角度センサ118から入力として関節センサデータ162を取得し、このデータをキャリブレーションアルゴリズム/方法を用いて処理し、ロボット110の制御に使用されるキャリブレーションを施された関節角度値134を同定するためにキャリブレータ150またはコントローラ130によって使用できる、各関節についての角度オフセット166を出力する。動力学的キャリブレーションモジュール158は、リグレッサの決定を支援し、その後、慣性パラメータ168を獲得するために、最小2乗または勾配ベース最小化技法を利用することができ、慣性パラメータ168は、その後、制御信号138を生成する際に使用するために、136に示されるように、コントローラ130に出力される。
【0022】
概略的なキャリブレーション方法と、そのようなキャリブレーションを使用するロボット110とを理解したところで、力制御2足人型ロボットの運動学的パラメータおよび動力学的パラメータの同定に関する方法および実験結果についてのさらなる詳細を提供することは有益であろう。以下では最初に、関節角度センサオフセットを推定するのに役立つ運動学的キャリブレーション方法が説明される。
【0023】
運動学的キャリブレーション方法は、一般にほとんどの人型ロボットに備えられる、関節角度センサおよびリンク方向センサ(ならびにそれらの出力/測定データ)しか使用しないという意味で実際的である。簡潔に述べると、この方法に関する基本的アイデアは、運動学的拘束を表す最適化問題を解くことであり、この拘束は、ロボットの両足を床または他の平面的な支持台に平らに置くことなど、容易に強制し得る拘束となるように選択される。方法は、(リンク上に配置されたマーカの運動捕捉など)外部的な測定を必要とせずに、関節角度センサオフセットを同定または決定する。
【0024】
動力学的キャリブレーション方法に関して、物理的に矛盾しない質量パラメータおよび局所質量中心パラメータ(すなわち、ロボットコントローラによって使用される慣性パラメータ)を同定するための2つの方法が説明され、これは、人型ロボットの場合はほぼ常にそうであるような、かなりの励振を獲得することが困難な場合であっても達成することができる。さらにリグレッサが大きな条件数を有する場合であっても、動力学的キャリブレーションを提供するためのこれら2つの方法が、慣性パラメータについての良好な(例えば許容可能かつ有益な)同定結果をもたらすことを示す、実験結果が説明される。さらに以下の説明は、多くの場合、勾配ベース最適化のほうが最小2乗法よりも良好に機能することができ(動力学的キャリブレーションにおける最小化で使用される、説明される2つの方法のうちで、勾配ベース最適化のほうがしばしばより有益なことがあり)、両方とも貧弱な励振データに対して堅牢であることを示す。
【0025】
運動学的キャリブレーション方法に話を向ける前に、従来のマニピュレータと比べると、多くの理由で、フローティングベースの人型ロボットの運動学的パラメータおよび動力学的パラメータを同定または決定することは困難であり得ることを思い起こされたい。特に同定すべき多くのパラメータが存在するためだけでなく、ロボットがデータ収集工程を通してバランスを維持しなければならないためもあって、良い条件のリグレッサを得ることは、しばしば困難である。さらに大域的な位置測定値および方向測定値は、不正確なことがあり、または利用不可能なことすらある。
【0026】
発明者は、テストケースとして、カーネギーメロン大学(Carnegie Mellon University)の人型ロボット(すなわち、ユタ州ソルトレークシティーに本拠をおく技術会社であるサルコス(Sarcos)によって作成され、本明細書で説明されるようにキャリブレーションを施された、人間サイズの2足ロボット)を利用したが、結果は、他の力制御2足人型ロボットにも容易に適用可能である。テストロボットは
、腕、脚、および体幹に、31個の関節を有していた。各関節は、アクチュエータ力を測定するために提供および使用される力センサを有する油圧アクチュエータによって作動され、アクチュエータ力は、その後、(例えば、モーメントアームによる乗算によって)関節トルクに変換された。関節角度は、ポテンショメータの形態をとる角度センサによって測定された。さらに説明されるキャリブレーション方法のテスト中、接地力を測定するために、各足首に6軸力センサが提供され、慣性測定ユニット(IMU)が、テストロボットの骨盤リンクに取付けられた。
【0027】
ここでロボットのための運動学的キャリブレーション方法が説明されるが、この方法は、図1のロボット110のキャリブレーションを行うために使用することができ、運動学的キャリブレーションモジュール154によって実施することができる。最初に、運動学的キャリブレーション方法を開発する背景となった動機を説明することは、有益であろう。運動学的キャリブレーション方法の目的は、関節角度センサにおけるオフセットを推定することである。人型ロボットでは、ポテンショメータなどのセンサは、センサが固定され/取付けられたリンクに対して滑動し得ることが知られている。
【0028】
センサの動きまたは移動は、大きなトルクが加えられるときに生じ、十分なスペースがなく、リンクへのセンサの十分な固定が得られるセンサの取りつけが可能にならない、4つ(または他の数)の足首関節(例えば、屈曲/伸展、内転/外転)を含む特定の関節では特に問題となることがある。かつては、関節角度センサオフセットを同定または決定するのに、運動捕捉システムなどの外部的な測定デバイスを必要とした。しかし、そのような外部的なオフセット測定システムをセットアップすることは、ロボットのための再キャリブレーションを頻繁に行う必要がある場合は特に、多くの時間を要し、手間がかかる。
【0029】
本明細書で説明される運動学的キャリブレーション方法は、所望の取りつけ位置から回転/移動していることもあり、または移動していないこともあるセンサを用いて、関節角度に加えて、1つまたは複数のリンクの方向を測定するだけで、関節角度オフセットを同定できる、アルゴリズムを実施することと考えることができる。キャリブレーション方法を実施するために、多くの方法でリンク方向を測定することができるが、ほとんどの人型ロボットは、(オフセット推定のためではなく)バランス制御で使用するために、すでにIMUを備えているので、或る実施形態では、リンク方向を測定するために、IMUを利用する。したがって、運動学的キャリブレーション方法は、ロボットのキャリブレーションを実行するために、外部的な測定を必要としない。
【0030】
運動学的キャリブレーション方法の1つの主要な態様は、ロボットを1つまたは複数の運動学的拘束下に保ちながら、ロボットの関節を多くの位置に動かす(例えば、自由に動かせる力制御関節をランダムに動かす)ことである。1つの実施では、運動学的拘束は、2足人型ロボットの足を床(または別の平面的な支持台)に平らに置くことを含む。その後、関節が妥当な大きさの外力を用いて逆駆動可能(back−drivable)である場合、ロボットの関節を手(手動操作)で動かすことによって、関節角度センサデータおよびリンク方向データを収集することができる。
【0031】
十分に変化に富む姿勢(例えば50から100の姿勢など)を収集した後、最適化問題を解くことを含む、関節角度オフセットの算出が、運動学的キャリブレーションモジュール(またはコンピュータ/プロセッサによって実行されるソフトウェア)によって行われる。ほぼいずれの最適化技法も、運動学的拘束がより良く満たされるほど減少するコスト関数を用いて実行される最適化とともに使用することができる。例えば、足が地面/床に平らに接触する場合、コスト関数は、2つの足の足裏頂点の高さ変化である。
【0032】
興味深いことに、足裏頂点の高さは、リンク方向測定デバイス(IMU)が絶対高さ情
報を与えないので、一般には使用することができない。運動学的キャリブレーション方法は、ルート関節のデカルト座標位置(Cartesian position)は知られておらず、したがって、フレーム全体にわたって同一平面上の接触点を仮定することはできないので、他の技法とは異なる。代替的に、運動学的パラメータは、各フレームにおける複数の接触点が単一の平面を形成するように決定される。キャリブレーション方法のデータ収集中、足は、常に床と平らに接触しているように拘束される。
【0033】
その場合、最適化問題は、以下のように要約することができ、すなわち、(1)入力または入力されるデータ(例えば測定値)は、様々なサンプル姿勢における1つまたは複数のリンクの方向と、関節角度とを提供し、(2)解くまたは同定すべき変数または他の収集データは、各サンプル姿勢におけるルート関節の方向と、次に各関節の関節角度センサオフセットとを含み、(3)最適化問題において使用されるコスト関数は、方向誤差と、足裏頂点高さの変化とを含む。
【0034】
ここで、運動学的キャリブレーションを提供するのに役立つ1つの定式化または方法を説明することは、有益であろう。人型ロボットのための多くのリンク(Mを1以上とするM個のリンク)についての方向データが獲得される場合について考える。ロボットには、角度がロボットの脚の方向に影響し、および/または(骨盤関節など)IMUを有するリンクに影響する、多くの回転関節(N個の関節)が存在する。以下の説明では、説明を簡潔にするために、ロボットのすべての関節の(N個の関節すべての)角度オフセットを同定または決定することが望ましいと仮定するが、いくつかの関節の測定値を使用しているオフセット決定からそれらの関節を除外することは当然のことなので、或る実施形態では、より僅かな部分のオフセットを決定することができる。
【0035】
例えばデータ収集中には、各姿勢が事前定義された運動学的拘束(例えば平らな足)を満たす、K個のサンプル姿勢が利用されると仮定することができる。第kのサンプルのために利用可能な測定値は、IMUからの方向データ
【0036】
【数1】

【0037】
と、関節角度
【0038】
【数2】

【0039】
である。同定または決定されるパラメータは、関節オフセットΔθと、各サンプルにおけるルート方向qである。
最適化問題を解くことによって、コスト関数Zを最小化する、ルート方向(q,q,...,q)と、関節オフセットΔθとが獲得される。コスト関数Zは、
【0040】
【数3】

【0041】
として選択することができ、ここで、LおよびCは、それぞれ、第kのサンプルにおけるリンク方向誤差および拘束誤差を表す。以下では、このコスト関数の各項がより詳細に説明される。
【0042】
第1の項Lは、
【0043】
【数4】

【0044】
によって算出され、ここで、R(*,*)は、ルート方向および関節角度からIMUを用いて第mのリンクの方向を算出するために使用される順運動学関数(forward kinematics function)である。方向誤差は、方向測定を行って、それらの相対位置をs(i=1,2,3)に基づき表した、各リンクに固定された事前定義された3点の平方位置誤差によって評価することができる。例えば、sは、(d,0,0)、(0,d,0)、および(0,0,d)として選択することができ、ここでdは、ユーザ定義の定数である。より大きな定数dの使用は、同じ方向誤差に対して位置誤差がより大きくなるので、第1の項Lのほうにより大きな重みを使用することに対応する。
【0045】
第2の項Cは、データ収集中に強制される運動学的拘束を表す。例えば、ロボットの足が水平の床または他の支持台に平らに接触しなければならない場合、運動学的拘束に関連する第2の項Cは、
【0046】
【数5】

【0047】
として定義することができ、ここで、
【0048】
【数6】

【0049】
は、与えられたルート方向および関節角度から獲得される足裏頂点の高さの変化を算出するために使用される関数である。足裏頂点は、例えば、各足裏の4つの隅であるように選択することができる。一般的な実施では、キャリブレーション解を獲得するために、共役勾配法(conjugate gradient method)が適用される。関節オフセットΔθの初期値は、ゼロに設定され、初期ルート方向qは、すべてのIMU測定値を使用して個々に算出されるルート方向の平均をとることによって決定される。
【0050】
図2は、ロボットの関節のすべてまたは一部においてキャリブレーションを施された関節角度を提供するために、力制御人型ロボットにおいて実行できる、ロボットキャリブレ
ーション方法200を示している。方法200は、キャリブレーションのためにロボットを選択することと、運動学的キャリブレーションモジュールを実行するキャリブレーションコンピュータを提供すること、またはそのようなモジュール/コードを含むようにロボットをプログラムすることなどによって、205において開始する。方法200は、続いて210において、キャリブレーションにおいて使用する運動学的拘束と、コスト関数とを定義する。上で言及したように、いくつかの場合では、運動学的拘束のために、2つの足(足裏)が平らな面(例えば水平な床または台)と接触を保つ方法でロボットに姿勢をとらせることが役立つ。コスト関数は、オフセットを算出する際に使用するためにも定義され、コスト関数は、(例えば、ロボットの足または足の足裏を平らに保つように拘束が選択された場合)方向誤差と、足裏頂点の高さの変化とを提供することができる。
【0051】
方法200は、続いて220において、ロボットの1つまたは複数のリンクにおいてIMUを提供する(またはIMUがすでに存在する場合、1組の入力データを提供する際に使用するために、そのIMUが単に選択される)。例えばIMUは、相対的な方向測定値を提供するために、骨盤リンクにおいて提供(または選択)することができる。方法200は、続いて230において、210において選択された運動学的拘束を強制しながら、1組の関節についてのデータ収集を開始する。例えば、ロボットは、最初に、2つの足の足裏を床に平らにつけた(複数のリンク位置と関節角度とによって定義される)第1の位置または姿勢をとることができる。240において、相対的な大域的方向の決定を容易にするために、この第1の姿勢にある間に、IMUからの測定値が収集される。250において、事前定義された1組の関節(例えば、ロボットのすべての関節、または脚の関節など、ある一部の関節など)のうちの各関節における角度センサ(例えばポテンショメータ)から、角度測定値が収集される。
【0052】
260において、さらなる姿勢がキャリブレーションにおいて利用されるか否か判定されるが、方法200の多くの実施では、キャリブレーションの精度を高めるために、30から50またはより多くの姿勢など、多くの姿勢を利用する。さらなる姿勢が利用される場合、方法200は、続いて265において、運動学的拘束を保持しながら(例えば、足を床に平らにまたは接触させて保ちながら)、脚関節またはリンクを動かすなどして、手動でロボットを動かして、次の姿勢をとらせる。その後、次の姿勢においてIMU入力および角度センサ入力を収集するために、工程240および工程250が繰り返される。その後、キャリブレーションにおいて使用されるさらなる姿勢が存在するか否か決定するために、工程260が再び実行される。
【0053】
さらなる姿勢はないと判定された場合、方法200は、続いて270において、事前定義された1組の関節のうちの各関節についての角度オフセットを決定するために、コスト関数を最小化することなどによって、最適化問題を解く。その後、方法200は、続いて280において、工程270において決定されたオフセットを使用して、事前定義された1組の関節における各関節角度のキャリブレーションを施された値を決定する。これは、各関節のための角度センサによって提供された測定角度にオフセット値を加算することを含んでもよい。このキャリブレーションを施された値は、その後、多くの関節の動きまたは操作によってリンクを位置づけるために、関節トルクを設定することなどによってロボットを制御する際に使用することができる。方法200は、続いて230において、別のキャリブレーション作業を行うことができ(例えば、運動学的キャリブレーションは、1つのロボットについて定期的に繰り返されることがあり)、または290において、終了することができ、コントローラは、力制御人型ロボットのさらなる動作または操作の最中に、キャリブレーションを施された関節角度を決定するために、1組のオフセットを用いて動作を行うなどする。
【0054】
(ロボット110および方法200を用いることなどをする)運動学的キャリブレーシ
ョン方法をテストするため、または運動学的キャリブレーション方法のプロトタイプを作成するため、ロボット(すなわちCMUサルコス人型ロボット)の骨盤リンクに取付けられた単一のIMUは、方向を測定するために使用された(M=1)。この方向はどの関節によっても影響されないので、このテスト実施においては、脚関節(N=14)のオフセットだけが同定または決定された。ロボットの足の各足裏の4つの隅(例えば総計で8点)が、高さ分散を算出するために使用された。サンプル姿勢データは、いくつかの異なる高さに、いくつかの異なる脚配置を取らせることによって、ガントリ(gantry)からロボットを吊るしながら、500Hzの周波数で収集された。
【0055】
さらに(例えば、関節アクチュエータを作動させないように油圧ポンプをオフにして)ロボットを動かし、または操作することによって、データ収集工程(または期間)中に、ロボットに多くの姿勢を取らせた。データ収集工程は、全体の長さが約4分の8つの運動系列をもたらした。データ収集中、姿勢変化は比較的ゆっくりと達成されたので、かなりの量のデータがダウンサンプリングされた。計算時間を最小化するには、(キャリブレーションには十分である限り、またはキャリブレーションが可能である限り)サンプルはより少ないほうが望ましいので、一般に、利用される姿勢の数とのバランスが存在する。
【0056】
図3は、グラフ310およびグラフ320を用いて、それぞれ、コスト関数値および計算時間が、このテスト実施において、キャリブレーションのために使用されるデータの間隔にどのように関係するかを示している。図示されるように、コスト関数値は、キャリブレーションのために使用されるサンプル間隔に係わりなく、0.2秒間隔でとられるフレームにわたって平均される。したがって、この結果は、最適化のために使用されないサンプルにおける相互検証を含む。図3に示されるように、キャリブレーション後のコスト関数値は、約1.8秒間隔までは妥当な小ささの値を維持し、この間隔では、典型的なコンピュータ/プロセッサを用いた場合、計算に約1分しかかからない。
【0057】
図4は、運動学的キャリブレーション方法のテストランにおいて利用される人型ロボットを概略的に示している。410、420、430において、図4は、キャリブレーション前(上)およびキャリブレーション後(下)に、コントローラを介して3つの異なる姿勢をとらされたロボットを示している。例えば、410では、ロボットは、最初に412において、特定の姿勢をとるように制御されるが、関節角度センサの不正確性(例えば回転/移動)のために、足の制御は、(413に示されるように)足を地面/床に平らに置かない。対照的に、414において、運動学的キャリブレーションが達成されると、同じ姿勢410について、(415に示されるように)平らになったロボットの足がもたらされる。ルート位置(例えば骨盤リンクの高さ)は、この情報が利用可能ではないので、一定であることに留意されたい。しかし各姿勢410、420、430において、キャリブレーションの後では、左右の足が同じ高さで平らになっていることを観察することができるが、キャリブレーションの前では、明らかに、このようなことは起こっていない。この事実は、各サンプルにおける平均の高さを減算して、サンプル姿勢における足の頂点の高さ(例えば8つの足裏隅)を検査することによっても検証された。
【0058】
接触拘束における平らな足に加えて、またはこれに対する変更として、本明細書で説明される運動学的キャリブレーション中に、他の運動学的拘束を利用することができる。そのような場合、この新しい拘束の使用を反映して、コスト関数を取り換える(例えば、上記の式(5)を新たに導出されたコスト関数に取り換える)ことが有益なこともある。例えば、発明者は、足を床に平らに接触させる拘束に加えて、ロボットの2つの足を整列させることを要求する拘束を含む、運動学的キャリブレーション方法を実施することが役立つことを見出した。テストは、そのような追加の拘束が運動学的キャリブレーションモジュールとそれが提供するオフセットとによって達成できるキャリブレーション結果を、著しく改善し得ることを示した。
【0059】
この追加の拘束は、図5のロボット500について示されるように、足が並んで整列するように、2つの足を配置することを要求することができる。図示されるように、ロボット500の下半身または脚部分510は、骨盤リンク511、脚リンク512、右脚関節513、右足首関節514、右足516についての位置と、左足首関節518A、左足519Aについての位置も含む、第1の位置に配置される。脚部分510のこの第1の位置では、足516、519Aは、互いに平行な足または足裏516、519Aを通って延びる、中心軸または長手軸AxisRightおよびAxisLeft1を用いて並んで整列させられる。足516、519Aは、足が平らに接触する拘束(すなわち最初の運動学的拘束)を同時に満たすように配置されるので、軸も同一平面にある。
【0060】
図5は、左足519Bと足首関節518Bが、左足519Bの軸AxisLeft2を右足516の軸AxisRightと平行にしたまま、新しい位置(ロボット500の新しい姿勢)への移動520を行った第2の位置にある、ロボット500の脚または下半身530も示している。ロボット500を用いて示される配置は、足のつま先およびかかとを1直線にそろえて、足を平行に保っている。これは、移動520の前に、足516、519Aのつま先側とかかと側に2つの長いまたは細長い部材(例えば板)を配置するなど、単純なジグを使用することによって達成することができる。
【0061】
図6は、足が平らに接触する拘束と組み合わせて利用できる、類似しているがやや異なる追加の拘束を示している。骨盤リンク611、脚リンク612、左右の足首関節614、618、および左右の足(または平面的な足底)616、619を含む、人型ロボットの下半身または脚部分610が示されている。足616、619は、中心軸または長手軸AxisRightとAxisLeftとを一致させることによって、前/頭−後/尾方向に整列するように示されている。やはり、この追加または第2の運動学的拘束は、足616、619を同一(単一)の平面的な水平の支持面(例えば床または地面)に平らに接触させて配置することを要求し、足裏を同一平面上にあり続けさせる、最初または第1の運動学的拘束と同時に強制される。
【0062】
新しい運動学的拘束を追加した場合、足整列拘束を取り扱い/含み、式(5)のコスト関数に取って代わる、コスト関数を導出することができる。図7は、水平な床(または平面的な支持台)に投影された、ロボットの足710、720の上面図700を示している。長方形710、720は、それぞれ、左足および右足を表す。各足710、720から、2つの対応する頂点を選択することができ、2つの頂点は、p*0およびp*1によってその位置を表し、左足の場合は、*=Lであり、右足の場合は、*=Rである。コスト関数の導出は、図7において定義され/示される、角度θおよびθも利用する。
【0063】
足が足整列拘束を満たす場合、θ=π/2、θ=π/2が成り立ち、したがって、cosθ=0、cosθ=0である。このことを心に留めたうえで、足整列拘束のためのコスト関数として、
式(6): C=cosθ+cosθ
のようにコスト関数を選択することができる。足の頂点の位置を使用して、cosθは、
【0064】
【数7】

【0065】
によって算出することができる(cosθを算出するための式も同様である)。
図1のロボット110に関して説明されたように、(動力学的キャリブレーションモジュール158を用いて、ロボット110の各リンク112の質量または他の動力学的パラメータ136、168など)正確またはより正しい慣性パラメータを提供することによって、ロボットまたはその制御のキャリブレーションを行うために、(運動学的キャリブレーションを行いながら、または行わずに)動力学的キャリブレーションも使用することができる。正確な慣性パラメータは、ロボットのモデルベース制御のために重要であり、ロボットのマニピュレータについての慣性パラメータの同定または決定は、ロボット工学産業または研究分野の多くの人たちによって活発に研究されている。従来の方法は、一般に、関節トルクは慣性パラメータの線型方程式として表すことができるという事実を利用していた。特に動力学に影響し、したがってこれらの従来の方法を用いて決定可能な1組のパラメータは、「ベースパラメータ」と呼ばれる。関節トルクおよび運動データを与えた場合、リグレッサの疑似逆行列によって、最小誤差を与えるベースパラメータを獲得することができる。
【0066】
信頼性をもってすべてのベースパラメータを同定するには、データは十分な励振をもたなければならず、励振を最適化するための方法が過去に開発されている。励振が貧弱な場合、リグレッサは悪い状態になり、ベースパラメータの同定または決定が、リンクについての負の質量を含む、物理的に矛盾する慣性パラメータをもたらすことがある。リグレッサの特異値または統計的モデルを使用することによって、同定不可能なパラメータをグループ化し、排除することを含む、また慣性パラメータを矛盾のないパラメータ空間内に制限することも含む、この問題に対する可能な解決策が、研究者によって試みられてきた。
【0067】
残念ながら、これら従来の動力学的キャリブレーション技法をフローティングベースの人型ロボットに適用することは簡単ではない。1つの解決困難な問題は、ロボットのバランスを維持しながら、慣性パラメータの信頼できる計算を実行するのに十分な大きさの加速を最も良く実現するにはどうするかである。別の実際的な問題は、慣性パラメータの計算を実行するのに、またそのような計算の出力/結果をロボット制御の入力として使用するのに必要とされる、人型ロボットの動力学および追加のコードの複雑さである。リグレッサを算出するには、通常、剛体の動力学方程式(rigid−body dynamics equation)の再編成を必要とし、複雑な機構の場合、これは困難である。さらに、算出されたベースパラメータは、標準的な逆動力学の定式化において使用されるパラメータに変換しなければならない。
【0068】
従来の技法にはこれらの問題があることを理解し、心に留めたうえで、以下の説明では、最初に、モデルベース制御で通常は利用可能な逆動力学関数だけを使用してリグレッサを算出するための実用的な方法を提示する。その後、説明は、励振が貧弱であっても、物理的に矛盾のない慣性パラメータを直接的に算出する2つの方法を提示する。第1の方法は、最小2乗解を獲得するために、リグレッサの主要な特異ベクトルだけを考慮することを含み、第2の方法は、質量パラメータに下限を有する最適化問題を解くために、勾配ベース法を適用することを含む。
【0069】
実験結果は、適切な条件数閾値が使用される場合、第1の方法が妥当な最小2乗解をもたらし得ることを示唆した。しかし第2の方法は、元のリグレッサを用いた場合であっても、良好に機能することが判明し、より良い相互検証結果を与えるように思われる。第2の方法と従来の技法の相違の1つは、従来の技法が、矛盾のないパラメータを獲得するために、リンクをその表面に配置された1組の点質量によって表すことである。対照的に、発明者によって教示され説明される第2の方法は、関節を作動させるために使用されるロボットの油圧ホースが、ロボットのCADモデルでは、一般にリンク形状の外側を走っているので、少なくともそのような表し方を使用しない。(ロボットではなく)人体の慣性パラメータを同定しようとする取り組みが、これまでいくつか試みられた。しかし人間の
ほうが人型ロボットよりもはるかに活動的な運動を行うことができるので、従来の技法または応用のいくつかにおいては、良好な励振を獲得するほうが容易である。発明者は、リンクの慣性モーメントを算出するのに十分に適した励振を獲得することを期待していないので、質量パラメータおよび局所質量中心(CoM)パラメータを算出または決定することに努力を集中し、その後、CADモデルを使用することによって、リンクの慣性モーメントを算出する。
【0070】
入力データの不足というこの問題に対処するために、フローティングベースの人型ロボットの動力学的キャリブレーションを容易にするための以下の問題定式化が、発明者によって発案された。フローティングベースを有する人型ロボットの動力学は、
【0071】
【数8】

【0072】
として記述され、ここで、θは、一般化座標であり、φは、算出/同定されるN個の慣性パラメータであり、Mは、関節空間の慣性行列(joint−space inertia matrix)であり、cは、遠心力、コリオリの力(Coriolis force)、および重力であり、τは、アクティブな関節トルクであり、Jは、接触点のヤコビ行列(contact Jacobian matrix)であり、fは、接触力であり、Sは、関節トルクを一般力にマッピングする行列である。
【0073】
特にロボットがMの自由度(DoF)を有し、一般化座標の最初の6つの要素がフローティングベースの6つのDoFに対応する場合、STは、
【0074】
【数9】

【0075】
という形式を有し、ここで、0および1は、適切なサイズの零行列および単位行列を表す。この説明の残りの部分では、式(8)の左辺を、
【0076】
【数10】

【0077】
によって表す。
フレームk(k=1,2,...,K)における関節角度θ、関節トルクτ、および接触力fを含む、Kフレーム長の実験データ系列が収集され、または利用可能であると仮定する。逆動力学アルゴリズムを使用すると、F(*)は、フレームkにおけるθならびにその速度および加速度から、
【0078】
【数11】

【0079】
を使用して算出することができる。F(φ)はφの線形関数になることが知られている。第iのリンクsの局所CoM位置の代わりに、φは、式を線形にするために、1次慣性モーメントms=(msix msiy msiz=m(mは質量)を含まなければならないことに留意されたい。
【0080】
ここでAを使用して表すと、フレームkにおける係数行列(リグレッサ)は、
式(11): F(φ)=Aφ
となる。すべてのフレームについて上記式を連結すると、以下の方程式が得られる。
【0081】
【数12】

【0082】
他方、式(8)の右辺は、フレームkにおける力測定値から、
【0083】
【数13】

【0084】
として算出することができる。その後、すべてのフレームについて式(13)を連結すると、以下の方程式が得られる。
【0085】
【数14】

【0086】
パラメータ計算方法の目標は、以下の方程式
【0087】
【数15】

【0088】
を満たすパラメータφを算出することである。しかし、センサの限界のために、
【0089】
【数16】

【0090】
を算出するのは困難なことがある。例えば、電気モータによって駆動されるほとんどの人型ロボットの場合がそうであるように、関節トルク測定値が利用可能でないことがある。
また、いくつかの接触力は、オンボードの力トルクセンサの限界のために、利用可能でない、またはあまり正確でないことがある。一般に、
【0091】
【数17】

【0092】
および
【0093】
【数18】

【0094】
は、利用可能な成分と利用不可能な成分とに分割することができ、利用可能な成分だけを使用して、最適化問題を定式化することができる。具体的には、
【0095】
【数19】

および
【0096】
【数20】

【0097】
は、それぞれ、その測定値が利用可能な成分と、利用不可能な成分とに分割される。
【0098】
【数21】

【0099】

【0100】
【数22】

【0101】

その後、式(14)は、
【0102】
【数23】

【0103】
のように書き直すことができる。
【0104】
【数24】

【0105】
は、
【0106】
【数25】

【0107】
の零空間基底を表すために使用される。その後、式(16)の両辺に左側から
【0108】
【数26】

【0109】
を乗じることによって、
【0110】
【数27】

【0111】
であるので、以下の方程式が得られる。
【0112】
【数28】

【0113】
次に式(15)の両辺に
【0114】
【数29】

【0115】
を乗じることによって、
【0116】
【数30】

【0117】
が得られ、ここで、
【0118】
【数31】

【0119】
である。式(17)のため、式(18)は、測定可能な力だけを含む。
ベースパラメータは、一般に、標準慣性パラメータφの部分集合の線形結合である。したがって、リグレッサを算出するには、ロボット動力学の記号表現と、与えられた運動データを用いて記号方程式を評価するための専用コード/ソフトウェアルーチンとを必要とする。これらの方法は、複雑な機構の場合、困難なことがある。
【0120】
したがって、発明者は、ベースパラメータの代わりに、標準慣性パラメータを用いる定式化を使用することを選択した。難点は、原理的に必ずしもすべてのパラメータが同定可能/決定可能ではないので、より最適な励振を用いたとしても、物理的に矛盾しないパラメータを獲得することが困難な場合があることである。しかし、発明者のアプローチは、以下の2つの利点、すなわち、(1)逆動力学関数を使用してリグレッサを容易に算出できる、(2)直接的に慣性パラメータを獲得することができる、という利点を探ることを可能にする。
【0121】
式(18)を解く代わりに、(例えば)ロボットのCADモデルから獲得できる、既知の公称パラメータφにできるだけ近い、1組の慣性パラメータが算出される。したがって、慣性パラメータφは、φ=φ+Δφのように分割することができる。また、式(18)は、測定ノイズのために、ほとんどの場合、正確な解をもたない。上記の2点を考慮して、問題は、以下の方程式を最小化するΔφの値を見出そうと試みることと言い表すことができる。
【0122】
【数32】

【0123】
ここで、
【0124】
【数33】

【0125】
である。
本明細書で教示される(図1のロボット110のモジュール158によって実施される)動力学的キャリブレーション方法の1つのユニークな特徴は、ロボットを制御する際に後で使用できる慣性パラメータを提供するために式(19)の最小化が達成される方法である。Δφを獲得するための簡単な方法は、
【0126】
【数34】

【0127】
として与えられる
【0128】
【数35】

【0129】
の疑似逆行列を使用することであり、この疑似逆行列は、式(19)を最小化する最小ノルムを
【0130】
【数36】

【0131】
として与える。しかし、
【0132】
【数37】

【0133】
の条件数が大きい場合、結果の慣性パラメータφ+Δφは、矛盾する値を含むことがある。
この問題の回避策は、事前定義された閾値よりも小さくなるように定め得るような、
【0134】
【数38】

【0135】
の小さな特異値を省くことである。
【0136】
【数39】

【0137】
の特異値分解(singular−value decomposition)は、
【0138】
【数40】

【0139】
と設定することができ、ここで、UおよびVは、直交行列であり、Σは、対角成分が
【0140】
【数41】

【0141】
の特異値である対角行列である。その場合、
【0142】
【数42】

【0143】
の疑似逆行列は、
【0144】
【数43】

【0145】
と書き直すことができる。ここで、正規の
【0146】
【数44】

【0147】
の代わりに、その要素が
【0148】
【数45】

【0149】
によって与えられる
【0150】
【数46】

【0151】
を使用し、ここで、cmaxは、ユーザ定義の最大条件数である。式(19)を最小化する上記の方法は、最小2乗法と呼ばれることがある。
式(19)を最小化するための別の方法は、初期推定としてΔφ=0を使用する、勾配ベース数値最適化を適用することである。この方法の利点は、各パラメータについての下限および/または上限を明示的に設定できることである。1つの実施では、負の質量パラメータを防止するように下限が設定された、共役勾配法が使用される。また、
【0152】
【数47】

【0153】
は、
【0154】
【数48】

【0155】
によって置き換えることができ、ここで、
【0156】
【数49】

【0157】
は、要素が以下によって与えられる対角行列である。
【0158】
【数50】

【0159】
この最小化方法は、勾配ベース法と呼ばれることがある。
ベースパラメータの代わりに標準慣性パラメータが利用されるので、定式化においてリグレッサAを算出することは比較的自明である。以下では、Aの第i列akiを算出するための方法を説明する。最初に、一般力
【0160】
【数51】

【0161】
が、公称慣性パラメータを用い、
【0162】
【数52】

【0163】
によって提供される逆動力学関数を使用して算出される。
次に、
【0164】
【数53】

【0165】
を獲得するために、φの第iの要素に単位変化を起こすことができ、その後、新しい慣性パラメータに対応する新しい一般力は、
【0166】
【数54】

【0167】
を用いて算出することができる。さらに、akiは、方程式
【0168】
【数55】

【0169】
によって算出することができる。
ここで、φの第iの要素に対する単位変化に従って、質量パラメータおよび局所CoMパラメータをどのように変更すべきかについての説明を提供することができる。φの第iの要素がリンクjの質量に対応する場合、リンクjの慣性パラメータは、
式(28): m←m+1
【0170】
【数56】

【0171】
のように変更することができる。ここでは、mを単位質量だけ増加させたが、ms
同じままである。φの第iの要素がmsj*(*=x,y,z)に対応する場合、CoMは、msj*が1だけ増加するように、
【0172】
【数57】

【0173】
のように変更することができる。
発明者は、この新しいキャリブレーション方法の有用性を立証する実験結果を収集するために、上述の動力学的キャリブレーション方法についての多くの実験またはテストを実行した。ロボットのコントローラを使用して、3つのデータ系列が収集されたが、ロボットは、バランスを維持しながら、人間運動捕捉系列を追跡するように制御された。1つの系列は、慣性パラメータの算出または同定のために使用され、他の2つの系列は、相互検証のために使用された。各系列は、約30秒の長さまたは持続時間であった。運動中、接触状態の変化は生じず、両足は、地面/床に平らに接触したままであった。
【0174】
運動には、かなりの量の上半身の動作が含まれたが、下半身は、(ほとんどは実験のために使用された動力学的モデルの誤差に起因する)わずかな量の運動しか行わず、相対的に静止状態にあった。腕関節は、比例微分位置コントローラによって制御された。他の関節の関節トルクコマンドを算出するために、バランスを維持し、参照運動を追跡するためのモデルベースコントローラが使用された。
【0175】
実験中、関節角度、関節トルク、および地面接触力が測定された。骨盤リンクに取付けられたIMUによって、ルート方向が測定された。ルート位置は、参照運動および脚関節角度を使用して推定された。各関節は関節トルクセンサを有していたが、実験で使用された制御ソフトウェアの仕様のために、位置制御される関節のついての関節トルクデータは獲得可能でなかった。また、ロボットの足首にある6軸力トルクセンサの水平力成分は、実験中、良好にキャリブレーションされなかった。
【0176】
最初のデータは、2ミリ秒間隔で記録され、慣性パラメータの算出または同定のために、100ミリ秒間隔にダウンサンプリングされた。関節速度および加速度を算出するために、各フレームの前後の125個のデータ点を考慮してその係数が決定される区分的3次多項式によって、関節角度測定値が補間された。したがって、この補間は、遅延のない低域通過フィルタとして機能する。
【0177】
以下のパラメータセットが、同定または算出のために比較された。個々のリンクのための第1のパラメータセット(L)では、個々のリンクの質量パラメータおよび局所CoMパラメータが算出または同定された。対称性制約を有する個々のリンクのための第2のパラメータセット(LS)では、ロボットの左半身のリンクの質量パラメータおよび局所CoMパラメータが算出され、右半身のリンクは、ミラーリングによって同じパラメータを有するものと仮定された。(CADデータから獲得された)最初の慣性パラメータを使用して獲得されたコスト関数値(式(19))は、実験した3つの運動について、2.11×10から2.29×10の範囲内にあった。
【0178】
動力学的キャリブレーション方法を用いた実験の結果から、以下の観察を行うことができる。第1に、疑似逆行列を使用して妥当な結果を獲得するために、小さな特異値は省くべきであるが、勾配ベース法は、cmaxの値に係わらず、矛盾のない結果を与える。第
2に、対称性を強制することは、より良い相互検証結果を一般に与え、直接検証結果は、それよりもわずかに悪い。第3に、疑似逆行列と勾配ベース法の両方が妥当な結果を与えるほとんどの場合では、勾配ベース法のほうが、はるかに良好な相互検証結果を与えることができるが、直接検証結果は同様である。
【0179】
本発明がある程度の詳しさで説明され、示されたが、本開示はもっぱら例を用いて行われており、以下で特許請求される本発明の主旨および範囲から逸脱することなく、部分の組み合わせおよび構成に対して当業者によって多くの変更を施し得ることが理解されよう。

【特許請求の範囲】
【請求項1】
力制御関節を有する有脚ロボットのキャリブレーションを行うためのキャリブレーション方法であって、
前記有脚ロボットについての運動学的拘束を選択する選択工程と;
前記運動学的拘束を強制しながら前記有脚ロボットを動かすことによって、複数の姿勢をとらせる姿勢工程と;
前記動かすことの最中に、前記有脚ロボットの1組の関節についての1組の角度測定値を収集する収集工程と;
運動学的キャリブレーションモジュールを実行するプロセッサを用いることによって、前記1組の関節のうちの前記関節の各々についての角度オフセットを決定する決定工程とを有する、キャリブレーション方法。
【請求項2】
前記キャリブレーション方法はさらに、前記動かすことの最中に、前記有脚ロボットのリンクに取付けられた慣性測定ユニットから、前記姿勢の各々における相対方向データを収集する工程を有し、
前記決定工程は、前記収集された相対方向データに基づく、
請求項1記載のキャリブレーション方法。
【請求項3】
前記角度測定値は、前記1組の関節のうちの前記関節の各々の近くに取付けられた関節角度センサによって提供され、
前記リンクは、前記有脚ロボットの骨盤リンクである、
請求項2記載のキャリブレーション方法。
【請求項4】
前記決定工程は、リンク方向と前記運動学的拘束とに基づき定義されるコスト関数を最小化する工程を有する、
請求項1記載のキャリブレーション方法。
【請求項5】
前記有脚ロボットは、2つの脚と2つの足とを有する2足ロボットであり、
前記運動学的拘束は、前記2つの足の足裏を、水平の平面的な支持面に平らに接触させて維持することからなる、
請求項1記載のキャリブレーション方法。
【請求項6】
前記運動学的拘束はさらに、前記2つの足を整列した配置に保つことを有する、
請求項1記載のキャリブレーション方法。
【請求項7】
前記整列した配置は、前記2つの足が平行になる位置と、前後する位置とを有する、
請求項6記載のキャリブレーション方法。
【請求項8】
前記キャリブレーション方法はさらに、前記有脚ロボットについての1組の慣性パラメータを算出する算出工程を有する、
請求項1記載のキャリブレーション方法。
【請求項9】
前記算出工程は、標準慣性パラメータを算出する工程を有する、
請求項8記載のキャリブレーション方法。
【請求項10】
前記算出工程は、最小2乗最小化方法を実行するときに、事前定義された閾値を下回るリグレッサの特異値を省く工程を有する、
請求項8記載のキャリブレーション方法。
【請求項11】
前記算出工程は、勾配ベース法を使用して最適化する工程を有する、
請求項8記載のキャリブレーション方法。
【請求項12】
運動学的キャリブレーションを用いるロボットであって、
複数のリンクおよび力制御関節からなるボディであって、前記リンクは、骨盤リンクを含み、前記関節は、各々が足を位置づける1対の足首関節を含む、ボディと;
前記関節の各々に関連する角度センサと;
前記骨盤リンク上に備えられた慣性測定ユニットと;
運動学的キャリブレーションモジュールを実行するプロセッサと
を備え、
前記運動学的キャリブレーションモジュールは、前記角度センサによって提供された角度測定値と、前記慣性測定ユニットによって生成されたデータであるIMUデータとを処理し、
前記角度測定値および前記IMUデータは、多くの姿勢を通る前記ボディの動きの最中に収集され、
前記足は、データ収集中に運動学的拘束を強制するために、前記姿勢の各々の最中に平面的な支持面に平らに接触し、
前記運動学的キャリブレーションは、前記IMUデータおよび前記運動学的拘束に基づき、前記関節の各々についての角度オフセット値を決定する、ロボット。
【請求項13】
前記運動学的拘束はさらに、前記姿勢の各々の最中に前記足が互いに平行になるか、またはつま先をかかとに揃えて配置されるように、前記足を整列させることを有する、
請求項12記載のロボット。
【請求項14】
前記ロボットはさらに、人型の前記ロボットについての慣性パラメータを算出する動力学的キャリブレーションモジュールと、算出された前記慣性パラメータに基づき、前記関節についての関節トルクを生成するロボットコントローラと、を備える、
請求項12記載のロボット。
【請求項15】
前記慣性パラメータを算出することは、標準慣性パラメータを計算することを有し、
さらに、前記慣性パラメータを算出することは、最小2乗最小化方法を実行する場合、事前定義された閾値を下回るリグレッサの特異値を省くことを有する、
請求項14記載のロボット。
【請求項16】
前記慣性パラメータを算出することは、勾配ベース手法を使用して最適化を行うことを有する、
請求項14記載のロボット。
【請求項17】
人型ロボットのキャリブレーションを行うためのシステムであって、前記システムは、
前記人型ロボットの1組の関節からの角度測定値を記憶するメモリであって、前記角度測定値は、運動学的拘束を強制しながら多くの姿勢を通る前記人型ロボットの動作の最中に作動する、前記人型ロボットに取付けられた角度測定センサによって提供される、メモリと;
前記人型ロボットに取付けられた慣性測定ユニットから出力されたデータであるIMUデータを記憶するメモリであって、前記慣性測定ユニットから出力された前記IMUデータは、前記人型ロボットの前記動作の最中に収集される、メモリと;
前記関節の各々についての角度オフセット値を同定するために、前記角度測定値および前記IMUデータを処理することによって、運動学的キャリブレーションを実行するプロセッサと
を備える、人型ロボットのキャリブレーションを行うためのシステム。
【請求項18】
前記人型ロボットは、2つの足を有し、
前記運動学的拘束は、前記足の足裏を水平の平面的な面に接触させて維持することを有する、
請求項17記載のシステム。
【請求項19】
前記運動学的拘束はさらに、前記足を平行になるように、または前記足の長手軸を互いに一致させるように整列させることを有する、
請求項18記載のシステム。
【請求項20】
前記慣性測定ユニットは、前記人型ロボットの骨盤リンク上に取付けられ、
前記運動学的キャリブレーションは、前記IMUデータを使用することによって相対方向を決定することを有する、
請求項17記載のシステム。
【請求項21】
前記プロセッサはさらに、前記人型ロボットの動力学的キャリブレーションを実行し、
前記動力学的キャリブレーションは、最小2乗最小化および勾配ベース最小化の一方を用いることによって、前記人型ロボットについての1組の慣性パラメータを計算することを有する、
請求項17記載のシステム。
【請求項22】
前記システムはさらに、前記角度オフセット値および前記角度測定センサから獲得された追加の角度測定値に基づき、キャリブレーションを施された関節角度を決定するロボットコントローラを備え、
前記ロボットコントローラはさらに、前記キャリブレーションを施された関節角度を使用して、前記関節を操作するために、関節トルクを生成するように動作する、
請求項17記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−107191(P2013−107191A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2012−16805(P2012−16805)
【出願日】平成24年1月30日(2012.1.30)
【出願人】(504399716)ディズニー エンタープライゼス インコーポレイテッド (73)
【Fターム(参考)】