(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-20
(45)【発行日】2022-05-30
(54)【発明の名称】ロボットキャリブレーションの品質を示す誤差パラメーターの値を決定するための方法および計算システム
(51)【国際特許分類】
B25J 13/00 20060101AFI20220523BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2021534177
(86)(22)【出願日】2021-05-07
(86)【国際出願番号】 JP2021017446
(87)【国際公開番号】W WO2021225152
(87)【国際公開日】2021-11-11
【審査請求日】2021-09-02
(32)【優先日】2020-05-07
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-04-29
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】515182347
【氏名又は名称】株式会社Mujin
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100134371
【氏名又は名称】中塚 隆志
(72)【発明者】
【氏名】サダット デガン,アテイラ
(72)【発明者】
【氏名】碓井 渓
【審査官】杉山 悟史
(56)【参考文献】
【文献】米国特許出願公開第2010/87955(US,A1)
【文献】米国特許出願公開第2017/290601(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
計算システムであって、
非一時的コンピューター可読媒体と、
少なくとも一つの処理回路と、を備え、
前記非一時的コンピューター可読媒体が、(i)ロボットアームのジョイントを介して発生している、または発生した前記ロボットアームの一対のすぐ隣接するアームセグメントの間の相対動作の量または速度を示す動作データセットと、(ii)前記相対動作が発生している、または発生した期間における前記ジョイントでの全トルクまたは全体の力を示す作動データセットとを含むセンサーデータを保存しているとき、
前記少なくとも一つの処理回路は、
前記センサーデータを訓練データおよび試験データに分割することであって、この分割が、(i)前記訓練データとして、動作訓練データおよび対応する作動訓練データを選択することであって、前記動作訓練データが、前記動作データセットの第一のサブセットであり、前記作動訓練データが、前記作動データセットの第一のサブセットであることと、(ii)前記試験データとして、動作試験データおよび対応する作動試験データを選択することであって、前記動作試験データが、前記動作データセットの第二のサブセットであり、前記作動試験データが、前記作動データセットの第二のサブセットであることと、によって行われること、
前記動作訓練データおよび前記作動訓練データに基づいて、(i)前記一対のすぐ隣接するアームセグメントの間の摩擦に関連付けられる摩擦パラメーター推定値、または(ii)前記一対のすぐ隣接するアームセグメントの一つに関連付けられる重心(CoM)推定値のうちの少なくとも一つを決定することと、
前記動作試験データに基づいて、および(i)前記摩擦パラメーター推定値または(ii)前記CoM推定値のうちの前記少なくとも一つに基づいて、作動予測データを決定することであって、前記作動予測データは、異なる時点での前記ジョイントでの全トルクまたは全体の力を示す予測値であることと、
前記作動予測データと、前記異なる時点に対応する前記作動試験データとの間の偏差を記述する残留データ値を含む残留データを決定することと、
前記残留データに基づいて、前記残留データ値を記述する誤差パラメーターの値を決定することと、
前記誤差パラメーターの前記値が、定義された誤差閾値を超えるかどうかを判定することと、
前記誤差パラメーターの前記値が前記定義された誤差閾値を超えるかどうかの表示を出力することと、
を実行するように構成された、計算システム。
【請求項2】
前記誤差パラメーターが、前記残留データ値における周波数コンテンツを示す、請求項1に記載の計算システム。
【請求項3】
前記誤差パラメーターが、前記センサーデータの品質を示す、請求項2に記載の計算システム。
【請求項4】
前記誤差パラメーターが、(i)全トルクまたは全体の力と、(ii)摩擦またはCoMとの関係を記述するモデルの正確性を示す、請求項2に記載の計算システム。
【請求項5】
前記少なくとも一つの処理回路が、前記期間の複数のそれぞれの時間窓に対する複数の平均残留データ値を決定するように構成され、前記複数のそれぞれの時間窓が、前記残留データ値の異なるそれぞれのサブセットに対応し、
前記誤差パラメーターの前記値が、前記複数の平均残留データ値に基づいて決定される、請求項1に記載の計算システム。
【請求項6】
前記少なくとも一つの処理回路が、前記複数の平均残留データ値の最大値に基づいて、前記誤差パラメーターの前記値を決定するように構成される、請求項5に記載の計算システム。
【請求項7】
前記複数の時間窓が、定義されたスライド時間増分によって離間したそれぞれの開始時間を有する重複時間期間を表す、請求項5に記載の計算システム。
【請求項8】
前記動作データセットが、異なる時点に対応する複数の動作データ値を含み、
前記少なくとも一つの処理回路が、前記複数の動作データ値の各動作データ値に対して、
前記動作データ値と等しいか、またはそれに基づくそれぞれの位置値を決定することであって、前記それぞれの位置値が、前記動作データ値に対応するそれぞれの時点で、前記一対のすぐ隣接するアームセグメントの第二のアームセグメントに対する、前記一対のすぐ隣接するアームセグメントの第一のアームセグメントの位置を記述することと、
前記動作データ値と等しいか、またはそれに基づくそれぞれの速度値を決定することであって、前記それぞれの速度値が、前記それぞれの時点における前記第二のアームセグメントに対する前記第一のアームセグメントの速度を記述することと、
前記それぞれの速度値と前記それぞれの位置値との間のそれぞれの比に基づいて、前記動作データ値を訓練データとして、または試験データとして選択するかどうかを決定することと、
を実行することによって、前記センサーデータを訓練データおよび試験データに分割するように構成される、請求項1に記載の計算システム。
【請求項9】
前記少なくとも一つの処理回路が、前記複数の動作データ値の各動作データ値に対して、前記動作データ値に関連付けられた前記それぞれの速度値と前記それぞれの位置値との間の前記それぞれの比が、(i)0から定義された正の比閾値まで延びる比の範囲内、または(ii)定義された負の比閾値未満のうちの少なくとも一つであるかどうかに基づいて、前記動作データ値を訓練データとして、または試験データとして選択するかを決定するように構成される、請求項8に記載の計算システム。
【請求項10】
前記少なくとも一つの処理回路が、前記複数の動作データ値の各動作データ値に対して、前記動作データ値に関連付けられた前記それぞれの速度値と前記それぞれの位置値との間の前記それぞれの比が、(i)0から定義された負の比閾値まで延びる比の範囲内、または(ii)定義された正の比閾値より大きいうちの少なくとも一つであるかどうかに基づいて、前記動作データ値を訓練データとして、または試験データとして選択するかを決定するように構成される、請求項8に記載の計算システム。
【請求項11】
前記摩擦パラメーター推定値が、粘性摩擦の係数の推定値であるか、またはクーロン摩擦の推定値である、請求項1に記載の計算システム。
【請求項12】
前記作動データセットが、前記一対のすぐ隣接するアームセグメントの間に前記相対動作を引き起こすための、アクチュエーターを流れる電流を測定するとき、
前記少なくとも一つの処理回路が、前記電流に基づいて前記ジョイントでの前記全トルク、または前記全体の力を決定するように構成される、請求項1に記載の計算システム。
【請求項13】
命令を有する非一時的コンピューター可読媒体であって、
前記命令は、計算システムの少なくとも一つの処理回路によって実行されるとき、前記少なくとも一つの処理回路に、
前記非一時的コンピューター可読媒体上に格納されるセンサーデータを、訓練データおよびセンサーデータに分割することを実行させ、
前記非一時的コンピューター可読媒体が格納するように構成される前記センサーデータは、(i)ロボットアームのジョイントを介して発生している、または発生した、前記ロボットアームの一対のすぐ隣接するアームセグメント間の相対動作の量または速度を示す、動作データセットと、(ii)前記相対動作が発生しているか、または発生した期間中の前記ジョイントでの全トルクまたは全体の力を示す作動データセットと、を含み、
(i)前記訓練データとして、動作訓練データおよび対応する作動訓練データを選択することであって、前記動作訓練データが、前記動作データセットの第一のサブセットであり、前記作動訓練データが、前記作動データセットの第一のサブセットであることと、(ii)前記試験データとして、動作試験データおよび対応する作動試験データを選択することであって、前記動作試験データが、前記動作データセットの第二のサブセットであり、前記作動試験データが、前記作動データセットの第二のサブセットであることとによって、前記センサーデータが前記訓練データおよび前記試験データに分割され、
前記命令は、前記少なくとも一つの処理回路によって実行されるとき、前記少なくとも一つの処理回路に、さらに、
前記動作訓練データおよび前記作動訓練データに基づいて、(i)前記一対のすぐ隣接するアームセグメントの間の摩擦に関連する摩擦パラメーター推定値、または(ii)前記一対のすぐ隣接するアームセグメントのうちの一つに関連付けられる重心(CoM)推定値のうちの少なくとも一つを決定することと、
前記動作試験データに基づいて、および(i)前記摩擦パラメーター推定値または(ii)前記CoM推定値のうちの前記少なくとも一つに基づいて、作動予測データを決定することであって、前記作動予測データは、異なる時点での前記ジョイントでの全トルクまたは全体の力を示す予測値であることと、
前記作動予測データと、前記異なる時点に対応する前記作動試験データとの間の偏差を記述する残留データ値を含む残留データを決定することと、
前記残留データに基づいて、前記残留データ値を記述する誤差パラメーターの値を決定することと、
前記誤差パラメーターの前記値が、定義された誤差閾値を超えるかどうかを判定することと、
前記誤差パラメーターの前記値が前記定義された誤差閾値を超えるかどうかの表示を出力することと、
を実行させる、非一時的コンピューター可読媒体。
【請求項14】
前記誤差パラメーターが、前記残留データ値における周波数コンテンツを示す、請求項13に記載の非一時的コンピューター可読媒体。
【請求項15】
前記誤差パラメーターが、前記センサーデータの品質を示す、請求項14に記載の非一時的コンピューター可読媒体。
【請求項16】
前記誤差パラメーターが、(i)全トルクまたは全体の力と、(ii)摩擦またはCoMとの関係を記述するモデルの正確性を示す、請求項14に記載の非一時的コンピューター可読媒体。
【請求項17】
前記命令は、複数のそれぞれの時間窓に対する複数の平均残留データ値を決定することを前記少なくとも一つの処理回路にさらに実行させ、前記複数のそれぞれの時間窓が、前記残留データ値の異なるそれぞれのサブセットに対応し、
前記誤差パラメーターの前記値が、前記複数の平均残留データ値に基づいて決定される、請求項13に記載の非一時的コンピューター可読媒体。
【請求項18】
前記命令は、前記複数の平均残留データ値の最大値に基づいて、前記誤差パラメーターの前記値を決定することを前記少なくとも一つの処理回路にさらに実行させる、請求項17に記載の非一時的コンピューター可読媒体。
【請求項19】
前記複数の時間窓が、定義されたスライド時間増分によって離間したそれぞれの開始時間を有する重複時間期間を表す、請求項18に記載の非一時的コンピューター可読媒体。
【請求項20】
計算システムによって行われる方法であって、
前記計算システムの非一時的コンピューター可読媒体上に格納されるセンサーデータを、訓練データおよびセンサーデータに分割することを含み、
前記非一時的コンピューター可読媒体が格納するように構成される前記センサーデータは、(i)ロボットアームのジョイントを介して発生している、または発生した、前記ロボットアームの一対のすぐ隣接するアームセグメント間の相対動作の量または速度を示す、動作データセットと、(ii)前記相対動作が発生しているか、または発生した期間中の前記ジョイントでの全トルクまたは全体の力を示す作動データセットと、を含み、
(i)前記訓練データとして、動作訓練データおよび対応する作動訓練データを選択することであって、前記動作訓練データが、前記動作データセットの第一のサブセットであり、前記作動訓練データが、前記作動データセットの第一のサブセットであることと、(ii)前記試験データとして、動作試験データおよび対応する作動試験データを選択することであって、前記動作試験データが、前記動作データセットの第二のサブセットであり、前記作動試験データが、前記作動データセットの第二のサブセットであることとによって、前記センサーデータが前記訓練データおよび前記試験データに分割され、
前記方法は、さらに、
前記動作訓練データおよび前記作動訓練データに基づいて、(i)前記一対のすぐ隣接するアームセグメントの間の摩擦に関連付けられる摩擦パラメーター推定値、または(ii)前記一対のすぐ隣接するアームセグメントの一つに関連付けられる重心(CoM)推定値のうちの少なくとも一つを決定することと、
前記動作試験データに基づいて、および(i)前記摩擦パラメーター推定値または(ii)前記CoM推定値のうちの前記少なくとも一つに基づいて、作動予測データを決定することであって、前記作動予測データは、異なる時点での前記ジョイントでの全トルクまたは全体の力を示す予測値であることと、
前記作動予測データと、前記異なる時点に対応する前記作動試験データとの間の偏差を記述する残留データ値を含む残留データを決定することと、
前記残留データに基づいて、前記残留データ値を記述する誤差パラメーターの値を決定することと、
前記誤差パラメーターの前記値が、定義された誤差閾値を超えるかどうかを判定することと、
前記誤差パラメーターの前記値が前記定義された誤差閾値を超えるかどうかの表示を出力することと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、「METHOD AND COMPUTING SYSTEM FOR DETERMINING A VALUE OF AN ERROR PARAMETER INDICATIVE OF QUALITY OF ROBOT CALIBRATION」と題する、2021年4月29日に出願された米国特許出願第17/244,224号の優先権を主張し、当該出願は、「A ROBOTIC SYSTEM WITH ROBOT OPERATION PARAMETER DETERMINATION」と題する、2020年5月7日に出願された米国仮特許出願第63/021,089号の利益を主張し、それら全体の内容は参照により本明細書に組み込まれる。
【0002】
本開示は、ロボットキャリブレーションの結果の品質を示す誤差パラメーターの値を決定するための方法および計算システムに関する。
【背景技術】
【0003】
自動化がより一般的になるに従い、倉庫保管および小売環境など、より多くの環境においてロボットが使用される。例えば、ロボットは、倉庫の中にある物体と相互作用するように使用され得る。ロボットの動作は、一定であってもよく、または倉庫の中のセンサーによって生成された情報などの、入力に基づいてもよい。
【0004】
しかしながら、技術が進歩しているにもかかわらず、ロボットは多くの場合、より大きなおよび/またはより複雑なタスクを実行するために要求される、人間の相互作用を複製するのに必要な精巧さを欠く。ロボットが人間の行動に近づくためには、正確性および再現性を持ってロボットの動作を制御するために、ロボットを較正する必要がある。
【発明の概要】
【0005】
本開示の一態様は、計算システムと、計算システムによって実行される方法と、方法を実施させ得る命令を有する非一時的コンピューター可読媒体と、に関する。実施形態では、計算システムは非一時的コンピューター可読媒体、および少なくとも一つの処理回路を含む。少なくとも一つの処理回路は、非一時的コンピューター可読媒体が、(i)ロボットアームのジョイントを介して発生している、または発生したロボットアームの一対のすぐ隣接するアームセグメントの間の相対動作の量または速度を示す動作データセットと、(ii)相対動作が発生している、または発生した期間におけるジョイントでの全トルクまたは全体の力を示す作動データセットとを含むセンサーデータを保存しているとき、さまざまな動作を実行するように構成される。さまざまな動作は、センサーデータを訓練データおよび試験データに分割することを含み得る。かかる分割は、(i)訓練データとして、動作訓練データおよび対応する作動訓練データを選択することであって、動作訓練データが、動作データセットの第一のサブセットであり、作動訓練データが、作動データセットの第一のサブセットであることと、(ii)試験データとして、動作試験データおよび対応する作動試験データを選択することであって、動作試験データが、動作データセットの第二のサブセットであり、作動試験データが、作動データセットの第二のサブセットであることと、によって行われる。さまざまな動作はさらに、動作訓練データおよび作動訓練データに基づいて、(i)一対のすぐ隣接するアームセグメントの間の摩擦に関連付けられる摩擦パラメーター推定値、または(ii)一対のすぐ隣接するアームセグメントの一つに関連付けられる重心(CoM)推定値のうちの少なくとも一つを決定することを含み得る。さまざまな動作は、動作試験データに基づいて、および(i)摩擦パラメーター推定値または(ii)CoM推定値のうちの少なくとも一つに基づいて、作動予測データを決定することを含み得るものであり、作動予測データは、異なる時点でのジョイントでの全トルクまたは全体の力を示す予測値である。さまざまな動作は、作動予測データと、異なる時点に対応する作動試験データとの間の偏差を記述する残留データ値を含む残留データを決定することと、残留データに基づき、残留データ値を記述する、誤差パラメーターの値を決定することと、誤差パラメーターの値が、定義された誤差閾値を超えるかどうかを判定することと、誤差パラメーターの値が定義された誤差閾値を超えるかどうかの表示を出力することと、をさらに含み得る。
【図面の簡単な説明】
【0006】
【
図1A】本明細書の実施形態と合致する、ロボットキャリブレーションの結果、またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質または信頼性を評価するためのシステムを示す。
【
図1B】本明細書の実施形態と合致する、ロボットキャリブレーションの結果、またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質または信頼性を評価するためのシステムを示す。
【
図1C】本明細書の実施形態と合致する、ロボットキャリブレーションの結果、またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質または信頼性を評価するためのシステムを示す。
【0007】
【
図2A】本明細書の実施形態と合致する、ロボットキャリブレーションの結果、またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質または信頼性を評価するための計算システムを示すブロック図を提供する。
【
図2B】本明細書の実施形態と合致する、ロボットキャリブレーションの結果、またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質または信頼性を評価するための計算システムを示すブロック図を提供する。
【
図2C】本明細書の実施形態と合致する、ロボットキャリブレーションの結果、またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質または信頼性を評価するための計算システムを示すブロック図を提供する。
【
図2D】本明細書の実施形態と合致する、ロボットキャリブレーションの結果、またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質または信頼性を評価するための計算システムを示すブロック図を提供する。
【0008】
【
図3A】本明細書の実施形態と合致する、ロボットキャリブレーションを行い得る環境を示す。
【
図3B】本明細書の実施形態と合致する、ロボットキャリブレーションを行い得る環境を示す。
【
図3C】本明細書の実施形態と合致する、ロボットキャリブレーションを行い得る環境を示す。
【
図3D】本明細書の実施形態と合致する、ロボットキャリブレーションを行い得る環境を示す。
【
図3E】本明細書の実施形態と合致する、ロボットキャリブレーションを行い得る環境を示す。
【0009】
【
図4】本明細書の実施形態と一致する、ロボットキャリブレーションの結果の信頼性または正確性、またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質を示す、誤差パラメーターの値を決定するための例示的な方法を示す、フロー図を示す。
【0010】
【
図5A】本明細書の実施形態と合致する、アームセグメントの動作を示す。
【
図5B】本明細書の実施形態と合致する、アームセグメントの動作を示す。
【0011】
【
図6A】本明細書の実施形態と一致する、作動データおよび動作データを示す。
【
図6B】本明細書の実施形態と一致する、作動データおよび動作データを示す。
【
図6C】本明細書の実施形態と一致する、作動データおよび動作データを示す。
【0012】
【
図7A】本明細書の実施形態と一致する、作動データおよび動作データを示す。
【
図7B】本明細書の実施形態と一致する、作動データおよび動作データを示す。
【
図7C】本明細書の実施形態と一致する、作動データおよび動作データを示す。
【0013】
【
図8A】本明細書の実施形態と一致する、訓練データおよび試験データに分割されるセンサーデータを示す。
【
図8B】本明細書の実施形態と一致する、訓練データおよび試験データに分割されるセンサーデータを示す。
【0014】
【
図9A】本明細書の実施形態と一致する、訓練データに基づいて少なくとも一つの摩擦パラメーター推定値を決定する実施例を示す。
【
図9B】本明細書の実施形態と一致する、訓練データに基づいて少なくとも一つの摩擦パラメーター推定値を決定する実施例を示す。
【
図9C】本明細書の実施形態と一致する、訓練データに基づいて少なくとも一つの摩擦パラメーター推定値を決定する実施例を示す。
【0015】
【
図10A】本明細書の実施形態と一致する、訓練データに基づいて、重心(CoM)推定値を決定する実施例を示す。
【
図10B】本明細書の実施形態と一致する、訓練データに基づいて、重心(CoM)推定値を決定する実施例を示す。
【0016】
【
図11】本明細書の実施形態と一致する、動作試験データに基づいて生成された作動予測データの実施例を示す。
【0017】
【
図12】本明細書の実施形態と一致する、残留データ値の実施例を示す。
【0018】
【
図13A】本明細書の実施形態と一致する、残留データ値の実施例を示す。
【0019】
【
図13B】本明細書の実施形態と一致する、それぞれの時間窓における、残留データ値のそれぞれのグループに対する平均値を決定する一例を示す。
【発明を実施するための形態】
【0020】
本開示の一態様は、ロボットキャリブレーション操作の一部として行われ得る、ロボットの特性の推定に関する。一部のシナリオでは、ロボットは、例えば、倉庫または工場の中に位置してもよく、その環境の中にある物体を拾い上げるか、またはそうでなければ物体と相互作用するために使用され得る。ロボットキャリブレーション操作には、ロボットの構成要素間の摩擦、またはロボットの構成要素の質量中心(CoM)がある場所など、ロボットの物理特性を記述する一つまたは複数のパラメーターの推定を伴い得る。一部のシナリオでは、これらの物理特性の値は、ロボットの製造業者によって提供される、公称値または理論値から逸脱し得る。偏差は、製造公差、経年変化、温度変化、または何らかの他の要因など、さまざまな要因から生じる場合がある。
【0021】
本開示のより具体的な態様は、一つまたは複数のパラメーターの推定値、推定値を決定するために使用されるモデル、および/または推定値を決定するために使用されるセンサーデータの正確性、信頼性、または品質の評価に関する。実施形態では、こうした評価には、センサーデータを訓練データおよび試験データに分割することを伴い得る。例えば、センサーデータは、例えば、ロボットの構成要素の動作、またはその構成要素によって経験される力またはトルクを測定してもよく、作動データおよび動作データを含んでもよい。この実施例では、センサーデータは、作動訓練データ(訓練作動データとも呼ぶ)、動作訓練データ(訓練動作データとも呼ぶ)、作動試験データ(試験作動データとも呼ぶ)、および動作試験データ(試験動作データとも呼ぶ)に分割され得る。言い換えれば、作動データおよび動作データは、それぞれ、訓練データおよび試験データに分割され得る。この実施例では、作動訓練データは、作動データから抽出される訓練データであってもよく、例えば、作動データの第一の部分であってもよく、一方で、作動試験データは、作動データから抽出される試験データであってもよく、例えば、作動データの第二の部分であり得る。従って、作動訓練データおよび作動試験データは、それぞれ、作動関連訓練データおよび作動関連試験データと呼んでもよい。同様に、動作訓練データは、動作データから抽出される訓練データであってもよく、例えば、動作データの第一の部分であってもよく、一方で、動作試験データは、動作データからも抽出される試験データであってもよく、例えば、動作データの第二の部分であり得る。従って、この実施例における動作訓練データおよび動作試験データは、それぞれ、動作関連訓練データおよび動作関連試験データと呼んでもよい。一部の実例では、動作データは、動作データによって示される速度値と、動作データによって示される位置値との間の比に基づいて、動作訓練データおよび動作試験データに分割され得る。例えば、比を動作データは、動作データを表す座標系を対称領域に分割する線の傾きを表し得る、定義された比閾値と比較することによって、訓練データおよび試験データに分割され得る。こうした例では、作動データは、動作訓練データおよび動作試験データに対応するように、訓練データおよび作動データに分割され得る。
【0022】
いくつかの実施では、作動訓練データおよび動作訓練データは、推定値を決定するか、またはロボットキャリブレーションのいくつかの他の態様を実施するために使用され得る。推定値が決定されるとき、それらは、動作試験データとともに、予測データ、またはより具体的には、作動予測データを決定するために使用され得る。以下でより詳細に論じるように、作動予測データは、アームセグメントまたはジョイントでの全トルクまたは全体の力を示す予測を提供するデータであり得る。従って、作動予測データは、作動関連予測データとも呼ばれ得る。一部の実例では、作動予測データは、作動予測データと作動試験データとの間の偏差のレベルを示す残留データ値を決定するために、作動試験データと比較され得る。残留データ値は、ロボットキャリブレーションの結果の正確性または信頼性、またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質を評価するために使用され得る。
【0023】
実施形態では、上で論じた正確性、信頼性、または品質は、残留データ値に基づいて決定され得る誤差パラメーターの値を介して評価され得る。一部の実例では、誤差パラメーターは、残留データ値の周波数コンテンツを示し得る。例えば、誤差パラメーターは、スライド時間窓を残留データ値に適用し、特定の時間窓内の残留データ値のグループに対するそれぞれの平均値を計算することによって決定され得る。本実施形態では、スライド時間窓は、より具体的には、残留データ値のそれぞれのグループに対応する複数の重複時間窓を定義し得る。複数の重複時間窓は、残留データ値のそれぞれのグループに対する複数の平均値にさらに対応し得る。いくつかの実装では、誤差パラメーターの値は、複数の平均値の最大であり得る。一部の実例では、誤差パラメーターの値は、残留データ値が低周波数コンテンツまたは高周波数コンテンツを有するかを示し得る。低周波数コンテンツの存在は、ロボットの不均等な動作を引き起こし、ロボットキャリブレーションに使用されるセンサーデータの品質を低下させ得る、別の物体との衝突などの事象を経験するロボットを示してもよく、またはこれと一致してもよく、センサーデータは、ロボットの動作を測定し得る。
【0024】
図1A、1B、および1Cは、ロボットの一つまたは複数の物理特性を推定するか、もしくはそうでなければ記述する情報を決定するための、すなわち、より具体的には、ロボットキャリブレーションを行うためのシステム1000を示す。当業者は、
図1A~1Cが、ロボットキャリブレーションを行うために使用される、システム1000の一実施例を示し、
図1A~1Cに示す構成要素が除去もしくは省略されてもよく、および/または追加の構成要素がシステム1000に追加され得ることを認識するであろう。
図1Aに示すように、システム1000は、計算システム1100およびロボット1200を含み得る。実施形態では、システム1000は、ロボットキャリブレーションシステムまたはその構成要素であってもよく、ロボットキャリブレーションシステムは、例えば、ロボット1200の一つまたは複数の物理特性または何らかの他の特性を決定することを伴い得る、ロボットキャリブレーションを行うように構成される。ロボットキャリブレーションは、例えば、ロボット1200のロボット動作(ロボット運動とも呼ぶ)が制御され得る、正確性のレベルを高めるために、すなわち、より具体的には、ロボット1200の軌道を計画および/もしくは正確に実行する能力を高めるために行われてもよい。本明細書の実施形態における計算システム1100は、ロボットキャリブレーションの正確性または信頼性を決定するように構成され得る。より具体的には、計算システム1100は、誤差パラメーターの値を決定するように構成され得る。誤差パラメーターは、ロボットキャリブレーションから取得された推定値、モデル、またはその他の情報(例えば、ロボット1200の物理特性の推定値)の正確性を示してもよく、および/またはロボットキャリブレーションを実施するために使用されるセンサーデータの品質を示し得る。
【0025】
一部の実例では、計算システム1100は、ロボット1200の一つまたは複数の物理特性を決定してもよく、および/またはロボット1200の一つまたは複数の物理特性を使用して、ロボット1200に、計画軌道にしたがう動作(運動とも呼ぶ)を出力させるための動作コマンドを生成し得る。例えば、計算システム1100は、ロボット1200の一つまたは複数の物理特性に固有であるか、またはそうでなければ、それら物理特性を考慮する、動作コマンド(例えば、モーターコマンド)を決定するように構成され得る。実施例として、一つまたは複数の物理特性には、例えば、ロボット1200の構成要素(例えば、ロボットアームのアームセグメント)間の摩擦、それらの構成要素の質量中心(CoM)があるそれぞれの場所、それらの構成要素の質量もしくは慣性モーメントのそれぞれの値、および/または何らかの他の物理特性を含み得る。ロボットのこれらの特性によって、ロボット1200の運動を制約するか、もしくはそうでなければ影響を及ぼしてもよく、および/またはロボット1200の構成要素をどのように作動するべきかに影響を及ぼし得る。
【0026】
一部の実例では、システム1000によって推定される特性は、ロボット1200の一つまたは複数の構成要素が、力、トルク、または他の形態の作動にどのように応答するかを記述することによってなど、ロボット1200の運動の物理的性質(例えば、運動力学)を記述するために利用され得る。
図1Aの計算システム1100、または別の計算システムを使用して、ロボット1200の動作を制御する場合、動作は、推定される特性に基づいて制御され得る。例えば、モーターまたは他のアクチュエーターは、ロボット1200の構成要素の運動(例えば、直線運動または回転運動)を開始もしくは調整するように、力またはトルクを出力し得るが、運動は、例えば、摩擦による力(運動または運動の変化に抵抗し得る)、重力による力、および/または構成要素の質量もしくは慣性モーメント(運動または運動の変化にも抵抗し得る)などの慣性要素といった要因の影響が及び得る。この実施例では、ロボットの構成要素に対する運動を制御することには、例えば、ロボットの構成要素を駆動するために使用される、アクチュエーターによって出力される力またはトルクの大きさの値、方向、および/もしくは持続期間を決定するときに、上記の要因を相殺すること、またはより一般的には、要因を考慮に入れることを伴い得る。運動制御は、例えば、ロボット1200によって軌道を実行するのに使用されてもよく、一部のシナリオでは、ロボットのさまざまな構成要素の位置、速度もしくは速さ、および/または加速度の計画値に正確に従うことを伴い得る。すなわち、運動制御には、ロボットのさまざまな構成要素の速度および/または加速度に対する特定の値もしくは値のセットを伴い得る、計画軌道に従うことを伴ってもよい。上で論じた物理特性の推定値は、実行軌道を、計画軌道と厳密に一致させるために、アクチュエーターを制御するように使用され得る。
【0027】
実施形態では、ロボットキャリブレーションを行うことには、力モデルおよび/もしくはトルクモデルの決定または更新を伴い得る。こうした実施形態では、計算システム1100(または何らかの他の計算システム)によって、力モデルおよび/またはトルクモデルに基づいて、アクチュエーターによって印加される力および/またはトルクの量、または力および/またはトルクの方向もしくは持続期間を決定し得る。一部の実例では、力モデルおよび/またはトルクモデルは、ロボット1200またはその構成要素上の全体の力もしくは全トルクに影響を与える要因を記述する情報によって形成され得るか、またはその情報を含み得る。例えば、力モデルおよび/またはトルクモデルは、例えば、摩擦、重力、質量、慣性モーメント、および/またはそれらの組み合わせを表すパラメーターの値を含み得る。一部のシナリオでは、力モデルおよび/またはトルクモデルは、ロボットまたはその構成要素が、どのくらい摩擦を受けるかを記述する情報を含み得る、摩擦モデルを含んでもよい。実施例として、摩擦モデルは、以下でより詳細に論じる、粘性摩擦(動摩擦または滑り摩擦とも呼ぶ)およびクーロン摩擦(静止摩擦とも呼ぶ)を表すパラメーターを含んでもよい。一部の状況では、力モデルおよび/またはトルクモデルは、アクチュエーターによって出力される力および/またはトルクと、ロボットの構成要素が受ける全トルクもしくは全体の力との関係(例えば、数学的関係)を記述してもよく、ならびに/またはアクチュエーターによって出力される力および/またはトルクと、ロボットの構成要素の結果として生じる運動との関係を記述し得る。上記の実施例では、ロボットキャリブレーションによって、力モデルまたはトルクモデルがもたらされる場合、計算システム1100(または何らかの他の計算システム)によって、力モデルおよび/またはトルクモデルを利用して、アクチュエーターを制御するか、またはより一般的には、ロボット1200の運動を制御し得る。本実施形態では、上述の誤差パラメーターは、力モデルおよび/またはトルクモデルの正確性または信頼性を記述してもよく、および/または力モデルおよび/またはトルクモデルを生成するために使用されるセンサーデータの品質を記述し得る。従って、計算システム1100は、ロボットキャリブレーションの実行から得られた力モデルおよび/またはトルクモデルの正確性または信頼性を決定するように、誤差パラメーターの値を決定するように構成され得る。
【0028】
上述のように、
図1Aのシステム1000は、ロボット1200の一つもしくは複数の物理特性を記述するか、または他の方法で表す情報を決定することなどによって、ロボットキャリブレーションを行うために使用され得る。一部の実例では、システム1000(およびシステム1000によって行われる関連する方法)は、ロボット1200を動作させ、動作を記述するデータを使用して、ロボットの物理特性を決定することによって、ロボットキャリブレーションを行うように動作する。より具体的には、動作中、計算システム1100によって、ロボット1200を監視してもよく、ロボット1200の構成要素の動作を記述する、センサーデータを受信し得る。受信したセンサーデータに基づいて、計算システム1100によって、ロボット1200またはその構成要素の物理特性の各々について、それぞれの値を決定し得る。本実施形態では、計算システム1100によって決定され得る誤差パラメーターは、ロボット1200の物理特性の各々の推定値に対する正確性または信頼性を示し得る。
【0029】
実施形態では、ロボット1200は、ロボットアーム1210を含んでもよく、ロボットキャリブレーションを行うことには、ロボットアーム1210の構成要素(例えば、アームセグメント)の一つまたは複数の物理特性の決定を伴い得る。より具体的には、ロボットアーム1210は、n個のアームセグメント12121、12122、…1212n(ロボットアーム1210のリンクとも呼ぶ)を含んでもよく、ロボットキャリブレーションから決定される一つまたは複数の物理特性は、アームセグメント12121~1212nのうちの一つまたは複数について記述し得る。一部の実例では、アームセグメント12121~1212nの各々は、複数の運動平面で、独立して作動可能または動作可能であり得る。一部の実施では、アームセグメント12121~1212nは、ロボットアーム1210が、一連のアームセグメント12121~1212nから形成されるように、直列で互いに連結し得る(例えば、複数のジョイントによって)。本実施形態では、アームセグメント12121~1212n は、エンドエフェクタ(エンドエフェクタ装置とも称する)または他のアームセグメントを移動させて特定の姿勢にするための、運動連鎖を形成し得る。例えば、アームセグメント12121~1212nは、アームセグメント12121~1212nの各々が、ロボット基部または一連のアームセグメント12121~1212nの中のすぐ前のアームセグメントに連結する、第一の端部(例えば、近位端)を有し、かつ一連のアームセグメント12121~1212nの中の次に続くアームセグメントに連結する、第二の端部(例えば、遠位端)を有するか、またはロボットアーム1210の遠位端を形成するように連結し得る。このように、アームセグメント12121の次に、アームセグメント12122に続いてもよく、その次にアームセグメント12123に続いてもよく、その次にアームセグメント12124などが続いてもよい。実施例として、アームセグメント12121が、アームセグメント12121の近位端で、ロボット基部に連結してもよく、アームセグメント12121の遠位端で、アームセグメント12122に連結し得る。この実施例ではさらに、アームセグメント12122が、アームセグメント12122の近位端で、アームセグメント12121に連結してもよく、アームセグメント12122の遠位端で、アームセグメント12123に連結し得る。一部の実施では、アームセグメント1212nは、エンドエフェクタ装置であり得る。当業者は、アームセグメント12121~1212n が、ロボット1200の操作要件に従って動作を行うために、いかなる配置でも連結し得ることを認識するであろう。
【0030】
実施形態では、ロボットキャリブレーションが、ロボットアーム1210のアームセグメント12121~1212nの物理特性に関する情報の決定を伴う場合、情報は、ロボットアーム1210の動作を制御するために使用され得る。例えば、アームセグメント12121~1212nは、ロボットアーム1210の遠位端で、エンドエフェクタまたは他のアームセグメントに対する所望の姿勢を達成するために、ロボットアーム1210の全体運動を生み出すよう、互いに対して移動可能であり得る。計算システム1100が、ロボットアーム1210の軌道を計画することによってなど、ロボットアーム1210の動作の制御に関与する場合、計算システム1100によって、個々のアームセグメントの動作を計画し得る。個々のアームセグメントに対するこの動作の計画は、個々のアームセグメントの物理特性に関して決定された情報に基づいてもよい。一部の実例では、ロボットキャリブレーションには、個々のアームセグメントに、全体の力または全トルクがどのくらいかかるかに影響を及ぼす要因を記述する、力モデルおよび/またはトルクモデルの決定を伴い得る。例えば、力モデルおよび/またはトルクモデルは、アームセグメント、または一対のアームセグメントを接続するジョイントに適用してもよく、アームセグメントまたはジョイントが受ける全体の力もしくは全トルクと、ジョイントに対するアームセグメントによる動作の量または速度との関係を記述し得る。こうした実例では、計算システム1100によって、力モデルおよび/またはトルクモデルに基づいて、個々のアームセグメントの動作を計画し得る。本実施形態では、計算システム1100が、個々のアームセグメントまたはジョイントに特異的な力モデルおよび/またはトルクモデルを生成するか、または他の方法で決定する場合、計算システム1100はさらに、その個々のアームセグメントまたはジョイントに特異的な誤差パラメーター値を決定するように構成されてもよく、誤差パラメーター値は、上で論じた誤差パラメーターの値を指し、力モデルまたはトルクモデルの信頼性または正確性を示し得る。計算システム1100が、アームセグメントまたはジョイントのそれぞれに対してそれぞれの力モデルおよび/またはトルクモデルを生成する場合、計算システム1100は、アームセグメントまたはジョイントのそれぞれに対するそれぞれの誤差パラメーター値をさらに決定し得る。
【0031】
実施形態では、ロボットキャリブレーションを行うことが、ロボットアーム1210のアームセグメント12121~1212nの各アームセグメントに対して、物理特性に関する情報の決定を伴う場合、物理特性には、アームセグメントの動作と、アームセグメントに直接印加されるトルクまたは力との関係を記述する、パラメーターを伴い得る。例えば、パラメーターは、アームセグメント12121~1212nの各々について、アームセグメントの質量中心の場所、アームセグメントの質量もしくは重量、アームセグメントの質量がどのように分布しているか、アームセグメントの慣性モーメント、および/またはアームセグメントとロボットアーム1210の別の構成要素(例えば、別のアームセグメント)との間の摩擦を記述し得る。パラメーターは、ロボットアーム1210の軌道を計画するときに、計算システム1100またはいかなる他の計算システムによって使用され得る。例えば、計算システム1100によって、パラメーターを使用して、特定の量の力またはトルクによって、どのくらいの動作もしくは動作速度が生みだされるのかを予測するか、または特定の動作量または動作速度を生成するのに、どのくらいの力もしくはトルクが必要かを判定し得る。より具体的には、計算システム1100によって、アームセグメントへの摩擦の影響、アームセグメントへの重力の影響(アームセグメントのCoMに作用するとして近似し得る)、および/もしくはアームセグメントの質量もしくは慣性モーメントを相殺する、力またはトルクの量を決定するようにパラメーターを使用し得る。本実施形態では、ロボットキャリブレーションが、例えば、特定のアームセグメントの質量中心の位置、または二つのアームセグメント間の摩擦係数の推定値を決定することを伴う場合、上で論じた誤差パラメーターは、推定値の正確性および/または信頼性を記述してもよく、または他の方法で示し得る。
【0032】
実施形態では、
図1Bに示すように、ロボット1200は、ロボットキャリブレーション操作を行うために使用され得る、一つまたは複数のセンサーのセット1220および一つまたは複数のアクチュエーター(例えば、モーター)のセット1230を含み得る。一つまたは複数のアクチュエーターのセット1230は各々、一つまたは複数のアームセグメントを動作させるために、ロボットアーム1210のアームセグメント1212
1~1212
nのうちの一つまたは複数に印加され得る、力またはトルクを出力するように構成され得る。実施形態では、一つまたは複数のアクチュエーターのセット1230の操作は、計算システム1100によって制御され得る。例えば、計算システム1100は、一つまたは複数のアクチュエーターのセット1230のうちの少なくとも一つのアクチュエーターを起動させるために、一つまたは複数の動作コマンドを出力するように構成され得る。一部の実施では、一つまたは複数の動作コマンドは、一つまたは複数のアクチュエーターのセット1230を起動させ、力および/またはトルクを出力させるための、アナログならびに/またはデジタル信号を含み得る。一つまたは複数の動作コマンドによって、一部の実例では、力もしくはトルクが起動されたアクチュエーターによってどのくらい出力されるか、力もしくはトルクの方向、および/または力もしくはトルクの持続期間を制御し得る。
【0033】
実施形態では、
図1Cに示すように、一つまたは複数のアクチュエーターのセット1230が、複数のアクチュエーター1230
1~1230
nを含んでもよく、それらの各々が、複数のアームセグメント1212
1~1212
nのそれぞれのアームセグメントを動作させるための、力またはトルクを出力し得る。例えば、複数のアクチュエーター1230
1~1230
nが、アームセグメント1212
1~1212
nを回転させるか、または他の方法で移動させるためのトルクを出力するように構成され得る。一実施例では、アクチュエーター1230
1~1230
nは、アームセグメント1212
1~1212
nに連結するか、またはそれらに配置されてもよく、アームセグメント1212
1~1212
nそれぞれを動作させるように起動するときに、それぞれの力またはトルクを出力し得る。こうした実施例では、アクチュエーター1230
1~1230
nの起動、および/またはアクチュエーター1230
1~1230
nによって出力される力もしくはトルクそれぞれの量は、計算システム1100によって(例えば、動作コマンドで)制御され得る。
【0034】
実施形態では、一つまたは複数のセンサーのセット1220は、ロボットキャリブレーションを行うように、計算システム1100によって使用される、センサーデータの一つまたは複数のセット(データセットとも呼ぶ)を生成するように構成される。一部のシナリオでは、データセットは、アームセグメント12121~1212nのうちの一つまたは複数の動作、および/もしくはアームセグメント12121~1212nが受ける力もしくはトルクを測定してもよく、またはそうでなければ表し得る。例えば、センサーデータに対する一つまたは複数のデータセットは、作動データセットおよび動作データセットを含み得る。
【0035】
実施形態では、作動データセットは、アームセグメント12121~1212nのうちの一つまたは複数が受ける、または一つまたは複数のジョイントで受ける全体の力および/または全トルクを表すデータを含み得る。アームセグメント上の全体の力または全トルクは、アクチュエーター12301~1230nの寄与による力もしくはトルク、重力からの寄与による力もしくはトルク、および摩擦からの寄与による力もしくはトルクを含むか、またはそれらに基づいてもよい。作動データセットayは、一つまたは複数のアームセグメントまたは一つまたは複数のジョイントによって経験される全体の力または全トルクを直接示すか、またはそれらに直接的に比例する。
【0036】
実施形態では、アームセグメント12121~1212nのうちの一つについての動作データセットは、アームセグメントの動作量または動作速度(例えば、速度または加速度)を表すデータを含み得る。移動は、例えば、アームセグメントの回転、アームセグメントの線形動作、または何らかの他の動作であり得る。一部の実例では、動作量または動作速度は、別のアームセグメントなど、ロボット1200の別の構成要素に対して測定され得る。例えば、この別のアームセグメントの位置は、動作するアームセグメントの動作量または動作速度を測定する起点となる、基線位置(またはより一般的には、基準フレーム)として扱われ得る。一部の実例では、動作量は、例えば、上で論じた基線位置に対してであり得る、動作するアームセグメントの位置または変位によって表され得る。動作が、基線位置に対する一つのアームセグメントの回転を伴う場合、位置または変位はまた、回転位置、回転変位、または角変位と呼ばれてもよく、度またはラジアンを単位として測定され得る。一部の実例では、回転位置についての正の値は、動作するアームセグメントが基線位置を過ぎて一方向に回転した(例えば、反時計回りの方向)ことを示してもよく、一方、回転位置についての負の値は、動作するアームセグメントが基線位置を過ぎて反対方向に回転した(例えば、時計回りの方向)ことを示し得る。
【0037】
実施形態では、一つまたは複数のセンサーセット1220は、
図1Cに示すように、作動データを生成するための第一のセンサーセット1222
1、1222
2、…1222
n、および動作データを生成するための第二のセンサーセット1224
1、1224
2、…1224
nを含んでもよい。一部の実施では、第一のセンサーセット1222
1~1222
nは、アームセグメント1212
1~1212
nに配置されるか、またはそうでなければそれと一致し得る。同様に、第二のセンサーセット1224
1~1224
nはまた、アームセグメント1212
1~1212
nに配置されるか、またはそうでなければそれと一致し得る。この実施例では、第一のセンサーセット1222
1~1222
nの各々は、複数のアームセグメント1212
1~1212
nのそれぞれのアームセグメントにおける、力またはトルクを示す、それぞれの作動データセットを生成し得る。さらに、第二のセンサーセット1224
1~1224
nの各々は、複数のアームセグメント1212
1~1212
nのそれぞれのアームセグメントの動作の量または速度を示す、それぞれの動作データセットを生成し得る。一部の実施では、アームセグメント1212
1~1212
nは、アクチュエーター1230
1~1230
nによって駆動されるか、またはそうでなければ作動し、第一のセンサーセット1222
1~1222
nの各センサーは、複数のアクチュエーター1230
1~1230
nのそれぞれのアクチュエーターに対応する、トルクセンサーまたは電流センサーであり得る。センサー1222
1~1222
nの各々が電流センサーである場合、センサーは、複数のアクチュエーター1230
1~1230
nのそれぞれのアクチュエーターを流れる電流それぞれの量と実質的に等しくてもよい、センサーを流れる電流のそれぞれの量を測定するように構成され得る。アクチュエーターを流れる電流の量は、対応するアームセグメントが受ける全体の力または全トルクの量を計算するか、または他の方法で判定するために使用され得る。この計算は、計算システム1100によって、またはセンサー1222
1~1222
n自体によって行われてもよい。
【0038】
図2Aでは、計算システム1100の実施形態を示す、ブロック図を提供する。計算システム1100は、少なくとも一つの処理回路1110、および非一時的コンピューター可読媒体(または複数の媒体)1120を含む。実施形態では、処理回路1110は、一つまたは複数のプロセッサー、一つまたは複数の処理コア、プログラマブルロジックコントローラー(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらの任意の組み合わせ、またはいかなる他の処理回路を含む。実施形態では、非一時的コンピューター可読媒体1120は、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、またはそれらのいかなる適切な組み合わせなどの記憶装置であってもよく、例えば、コンピューターディスケット、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、ランダムアクセスメモリー(RAM)、読み出し専用メモリー(ROM)、消却可能プログラム可能読み出し専用メモリー(EPROMまたはフラッシュメモリー)、スタティックランダムアクセスメモリー(SRAM)、携帯型コンパクトディスク読み出し専用メモリー(CD-ROM)、デジタル多目的ディスク(DVD)、メモリースティック、それらのいかなる組み合わせ、またはいかなる他の記憶装置などであり得る。一部の実例では、非一時的コンピューター可読媒体1120は、複数の記憶装置を含み得る。処理回路1110によって実行されるとき、処理回路1110に、
図4に示す方法4000に関して記載する操作など、本明細書に記載する一つまたは複数の方法を行わせるコンピューター可読プログラム命令を、非一時的コンピューター可読媒体1120が、代替的または追加的に記憶し得る。
【0039】
図2Bは、計算システム1100の実施形態であり、通信インターフェース1130を含む、計算システム1100Aを描写する。通信インターフェース1130は、上で論じたセンサー(例えば、1220)および/またはアクチュエーター(例えば、1230)を用いてなど、計算システム1100Aとロボット1200との間に、有線または無線通信経路を提供するように構成され得る。実施例として、通信回路は、RS-232ポートコントローラー、USBコントローラー、イーサネットコントローラー、Bluetooth(登録商標)コントローラー、PCIバスコントローラー、ネットワークコントローラー、いかなる他の通信回路、またはそれらの組み合わせを含んでもよい。計算システム1100Aによって、一つまたは複数の動作コマンドを生成する場合、通信インターフェース1130は、一つまたは複数の動作コマンドをアクチュエーターのセット1230に伝達するように構成され得る。さらに、センサーのセット1220が、センサーデータを生成する場合、通信インターフェース1130は、センサーのセット1220からセンサーデータ(例えば、動作データおよび作動データ)を受信するように構成され得る。こうした状況では、計算システム1100の処理回路1110は、通信インターフェース1130を介して、センサーデータを直接または間接的に受信するように構成され得る。
【0040】
実施形態では、処理回路1110が、非一時的コンピューター可読媒体1120に記憶される、一つまたは複数のコンピューター可読プログラム命令によってプログラムされ得る。例えば、
図2Cは、計算システム1100/1100Aの実施形態である、計算システム1100Bを示し、処理回路1110が、ロボットキャリブレーションを行うための、および/またはロボットキャリブレーションの結果の正確性および/または信頼性を評価するためのコンピューター可読プログラム命令を含み得る、ロボットキャリブレーションモジュール1122を含む、一つまたは複数のモジュールによってプログラムされる。例えば、ロボットキャリブレーションモジュール1122は、特定のアームセグメントに関連付けられるCoM推定値、またはアームセグメント間の特定のジョイントに関連付けられる摩擦パラメーター推定値について、CoM推定値または摩擦パラメーター推定値に対する誤差パラメーター値を決定するように構成されてもよく、誤差パラメーター値は、上で論じた誤差パラメーターの値であり得る。ロボットキャリブレーションモジュール1122が、複数のCoM推定値または複数の摩擦パラメーター推定値を決定する場合、モジュール1122は、複数の推定値に対する複数のそれぞれの誤差パラメーター値を決定し得る。さまざまな実施形態では、「コンピューター可読命令」および「コンピューター可読プログラム命令」という用語は、さまざまなタスクおよび操作を遂行するように構成される、ソフトウェア命令またはコンピューターコードを記述するために使用される。さまざまな実施形態では、「モジュール」という用語は、処理回路1110に一つまたは複数の機能タスクを行わせるように構成される、ソフトウェア命令またはコードの集まりを広く指す。モジュールおよびコンピューター可読命令は、処理回路または他のハードウェアコンポーネントが、モジュールもしくはコンピューター可読命令を実行しているときに、さまざまな操作またはタスクを行うものとして説明され得る。
【0041】
実施形態では、
図2Cに示すように、非一時的コンピューター可読媒体1120は、ロボットキャリブレーションを行うために、処理回路1110によって使用され得る、センサーデータ1124を記憶するか、または他の方法で含んでもよい。センサーデータ1124は、例えば、上に記載した作動データおよび動作データを含み得る。例えば、
図2Dは、センサーデータ1124が、動作データ1127および作動データ1128を含む実施例を描写する。一部の実例では、動作データ1127および作動データ1128はそれぞれ、複数のデータセットを含んでもよく、各データセットは、それぞれのアームセグメントに関連付けられる移動を記述し、またはそれぞれのアームセグメント、またはアームセグメントを別のアームセグメントに接続するそれぞれのジョイントにおける全体の力またはトルクを記述する。一部のシナリオでは、センサーデータ1124は、
図1Bのセンサーのセット1220によって生成されていてもよく、
図2Bの通信インターフェース1130を介して受信されたものであり得る。記憶されたセンサーデータ1124を使用して、ロボットキャリブレーション操作を行う場合、非一時的コンピューター可読媒体1120はさらに、ロボットキャリブレーション操作の結果として決定される情報1126(ロボットキャリブレーション情報1126とも呼ぶ)を記憶し得る。ロボットキャリブレーション情報1126は、ロボット(例えば、1200)の一つまたは複数の物理特性を記述し得る。例えば、ロボットキャリブレーション情報は、ロボットの一つまたは複数の物理特性を記述するさまざまなパラメーターについて、それぞれの推定値(推定された値とも呼ぶ)を含み得る。一部の実例では、ロボットキャリブレーション情報は、トルクモデル、力モデル、および/または摩擦モデルを記述し得る。実施形態では、ロボットキャリブレーション情報1126は、上述のそれぞれの推定値の信頼性および/または正確性、ならびに/またはそれぞれの推定値を生成するために使用されるセンサーデータの信頼性または品質を示す、誤差パラメーター値を含み得る。
【0042】
図3A~3Dは、ロボットキャリブレーションがさまざまな実施形態に従って行われ得る、例示的な環境を示す。当業者は、
図3A~3Dが、ロボットキャリブレーションを行うための環境の一実施例を示し、
図3A~3Dに示す既存の構成要素を除去してもよく、および/または追加の構成要素を環境に追加し得ることを認識するであろう。
図3Aは、ロボット1200の実施形態であり得る、ロボット3200の側面図を提示する。ロボット3200は、基部3202に連結するロボットアーム3210を含み得る。
図3Aの実施例では、ロボットアーム3210は、複数のジョイント3214
1、3214
2、3214
3、3214
4、3214
5で連結し得る、複数のアームセグメント3212
1、3212
2、3212
3、3212
4、3212
5、および3212
6(リンクとも呼ぶ)を含み得る。
図3Aの実施例では、アームセグメント3212
1~3212
6は、基部3202から離れた方向であり得る下流方向に延在し得る、一連のアームセグメントとして接続し得る。この実施例では、ロボットアーム3210に沿って最も下流にあるアームセグメント3212
6 は、エンドエフェクタ装置(例えば、ロボットグリッパ)であってもよく、ロボットアーム3210の遠位端を形成し得る。すなわち、アームセグメント3212
6は、ロボット基部3202に対して、ロボットアーム3210の最も遠位のアームセグメントであり得る。
【0043】
実施形態では、ジョイント32141~32145が、すぐ隣接するアームセグメントのそれぞれの対を直接連結し得る。例えば、アームセグメント32121は、ジョイント32141でアームセグメント32122に連結する。この実施例では、アームセグメント32121およびアームセグメント32122は、ジョイント32141を介して互いに直接連結するため、互いとすぐ隣接しているとみなされ得る。ジョイント32141によって、一対のアームセグメント32121、32122の間で相対動作が可能になり得る。一実施例では、ジョイント32141は、一対のアームセグメント32121、32122の間で相対回転を可能にし、またはより具体的には、アームセグメント32122が、アームセグメント32121に対して回転することが可能になる、外旋ジョイント(またはより一般的には、ピボット点)であり得る。この実施例では、他のジョイント32142から32145は各々、すぐ隣接するアームセグメントのそれぞれの対を直接接続し、一対のアームセグメントの間で相対回転を可能にする、外旋ジョイントであり得る。例えば、ジョイント32145によって、アームセグメント32125およびアームセグメント32126を直接接続し、アームセグメント32126 が、アームセグメント32125に対して回転することが可能になり得る。別の実施例では、ロボットアーム3210は、追加的または代替的に、一対のすぐ隣接するアームセグメント間で、相対的な直進運動(相対的な横方向運動とも呼ぶ)を可能にする、プリズムジョイントを有し得る。
【0044】
上述のように、アームセグメント32121~32126は、アームセグメント32121からアームセグメント32126へ下流方向に延在し得る、一連のアームセグメントとして接続し得る。アームセグメント32121は、ロボット基部3202に最も近く(最も近位であるとも言う)にあってもよく、一方、アームセグメント32126は、ロボット基部3202から最も遠く(すなわち、最も遠位であるとも言う)にあり得る。一連のアームセグメント32121から32126は、一つのアームセグメント(例えば、32123)の動作によって、下流アームセグメント(例えば、32124、32125、32126)を動作させる、運動連鎖を形成し得る。アームセグメント32121~32126 の直列接続によって、近位端または近位方向、および遠位端または遠位方向をさらに画定し得る。例えば、アームセグメント32121~32126の各々には、それぞれの近位端およびそれぞれの遠位端があり得る。近位端は、ロボット基部3202のより近くであってもよく、一方、遠位端は、ロボット基部3202からより遠くなるように、さらなる下流にあり得る。実施例として、アームセグメント32123には、アームセグメント32122に直接接続する近位端があってもよく、アームセグメント32124に直接接続する遠位端があり得る。さらに、アームセグメント(例えば、32124、32125、または32126)が、別のアームセグメント(例えば、32123)の遠位端に直接または間接的に接続する場合、前者のアームセグメント(例えば、32124、32125、または32126)は、後者のアームセグメント(例えば、32123)の遠位とみなされ得る。反対に、アームセグメント(例えば、32123、32124、32125)が、別のアームセグメント(例えば、32126)の近位端に直接または間接的に接続する場合、前者のアームセグメント(例えば、32123、32124、32125)は、後者のアームセグメント(例えば、32126)の近位とみなされ得る。別の実施例として、アームセグメント32123は、アームセグメント32122に対する、およびアームセグメント32121に対する、遠位アームセグメントとみなされてもよく、一方、アームセグメント32121および32122は、アームセグメント32123に対する近位アームセグメントとみなされ得る。
【0045】
実施形態では、
図3Bに示すように、ロボット3200は、それぞれのアームセグメント3212
2~3212
6を動作させるため、すなわち、より具体的には、すぐ隣接するアームセグメントのそれぞれの対の間に相対動作を引き起こすために、複数のアクチュエーター3330
1、3330
2、3330
3、3330
4、および3330
5(アクチュエーター1230
1から1230
nの実施形態であり得る)を含み得る。一部の実例では、複数のアクチュエーター3330
1~3330
5は、それぞれジョイント3214
1から3214
5に、またはその近くに配置され得る。一部の実施では、アクチュエーター3330
1~3330
5は、ジョイント3214
1~3214
5の周りに配置されるモーターであってもよく、ジョイント3214
1~3214
5でトルクまたは力を出力し得る。アクチュエーター3330
1 から3330
5 は各々、アームセグメント3212
2~3212
6のそれぞれの一つを、隣接するアームセグメントに対して(または何らかの他の基準フレームに対して)移動させるために、それぞれの力またはトルクを出力し得る。実施例として、アクチュエーター3330
3は、一対のアームセグメント3212
3、3212
4を直接接続するジョイント3214
3に、またはその近くに配置され得る。アクチュエーター3330
3は、一対のアームセグメント3212
3、3212
4の間に相対回転を引き起こし得る、トルクをジョイント3214
3にて出力し得る。より具体的には、トルクによって、一対のアームセグメント3212
3、3212
4のうち、より遠位のアームセグメント3212
4 を、一対のアームセグメントのうち、より近位のアームセグメント3212
3に対して回転させ得る。さらに、アームセグメント3212
4が、ジョイント3214
3の周りを回転し得る。実施形態では、アクチュエーター3330
1~3330
5には、モーター(例えば、電気モーターおよび/または磁気モーター)、ポンプ(例えば、油圧ポンプまたは空気ポンプ)、一部の他のアクチュエーター、またはそれらの組み合わせを含み得る。
【0046】
実施形態では、ロボット3200は、ロボットキャリブレーションを行う際に使用され得る、センサーデータを生成するためのセンサーセットを含んでもよい。例えば、
図3Cに示すように、ロボット3200は、作動データを生成するための第一のセンサーセット3222
1、3222
2、3222
3、3222
4、および3222
5、ならびに動作データを生成するための第二のセンサーセット3224
1、3224
2、3224
3、3224
4、および3224
5を含み得る。より具体的には、第一のセンサーセット3222
1~3222
5 (センサー1222
1から1222
nの実施形態であり得る)は各々、複数のアームセグメント3212
2~3212
6のそれぞれのアームセグメントの作動に関係する、それぞれの作動データセットを生成するように構成され得る。より具体的には、特定のアームセグメントに対する作動データセットによって、アームセグメントにかかる、またはアームセグメントが受ける力もしくはトルクを示す、パラメーターを測定し得る。例えば、センサー3222
1は、アームセグメント3212
1に対するアームセグメント3212
2(またはその逆)の作動に対応する、第一の作動データセットを生成してもよく、一方、センサー3222
2は、アームセグメント3212
2に対するアームセグメント3212
3(またはその逆)の作動に対応する、第二の作動データセットを生成し得る。別の実施例として、センサー3222
3は、アームセグメント3212
3に対するアームセグメント3212
4(またはその逆)の作動に対応する、第三の作動データセットを生成してもよく、一方、センサー3222
4は、アームセグメント3212
4に対するアームセグメント3212
5(またはその逆)の作動に対応する、第四の作動データセットを生成し得る。
【0047】
実施形態では、センサー32221~32225は、ジョイント32141~32145にて全体の力もしくはトルク、すなわち、より具体的には、それらのジョイントで接続するアームセグメント32122~32126上の全体の力もしくはトルクを直接測定するように各々構成される、力センサーもしくはトルクセンサーであるか、またはそれらを含んでもよい。実施形態では、センサー32221~32225は、電流または電圧を測定するように構成される、電流センサーまたは電圧センサーを含み得る。一実施例では、センサー32221~32225は、アクチュエーター33301~33305を流れる電流のそれぞれの量を測定するように構成される、電流センサーであり得る。この実施例では、センサー32221~32225の各々は、アクチュエーター33301~33305のそれぞれのアクチュエーター(例えば、モーター)と直列に電気的に接続し得る。センサーは、それ自体を流れる電流の量を測定してもよく、電流の量は、それぞれのアクチュエーターに提供されるか、それぞれのアクチュエーターによって引き出されるか、もしくはそうでなければそれぞれのアクチュエーターを流れる電流の量と等しいか、または実質的に等しくなり得る。アクチュエーターを流れる電流の量は、アクチュエーターが位置する、対応するジョイントでの全体の力または全トルクを示し得る。一部の実例では、ジョイント、すなわちジョイントのアームセグメントが、アクチュエーターによって駆動される機械負荷として作用してもよく、アクチュエーターを流れる電流の量は、アクチュエーターを起動するために、どのくらいの電圧が提供されるかに依存し、負荷が、アクチュエーターによって提供される以外のトルク(例えば、重力に起因するトルク)に影響を受けているか、および/または負荷の運動に、別のトルク(例えば、摩擦による抵抗トルク)が抵抗しているかなど、機械負荷の特質に依存し得る。実施例として、センサー32224は、ジョイント32144での全体の力またはトルク、すなわち、より具体的には、アームセグメント32125またはアームセグメント3212-4上の全体の力または全トルク(ジョイント32144によって提供されるピボット点に対して、アームセグメント32125および/または32124を回転させるための)を示し得る、アクチュエーター33304を流れる電流の量を測定し得る。
【0048】
一部の実例では、センサー32221~32225によって生成される作動データは、対応するアクチュエーター33301~33305を流れている電流の量と等しい値を有し得る。こうした実例では、計算システム1100は、作動データによって表される電流値に基づいて、全トルクまたは全体の力の値を計算するか、または他の方法で決定するように構成され得る。一部の実例では、センサー32221~32225自体が、全トルクまたは全体の力の値を計算するか、または他の方法で決定し、トルク値または力の値を作動データの一部として提供するように構成され得る。計算は、例えば、全トルクが、電流を乗じた所定の定数(トルク定数と呼んでもよい)に等しいか、またはそれに基づく関係など、電流と全トルクまたは全体の力との所定の関係(例えば、あらかじめ定義された関係)に基づいてもよい。従って、計算システム1100は、トルク定数にセンサー32221~32225によって測定される電流の値を乗じることによって、全トルクの上記計算を行うように構成され得る。一部の実施では、計算システム1100(および/またはセンサー32221~32225)は、トルク定数に値を提供し得る、記憶されたアクチュエーター情報にアクセスし得る。例えば、トルク定数は、非一時的コンピューター可読媒体1120に記憶された値であり得る。
【0049】
上述のように、
図3Cの第二のセンサーセット3224
1~3224
5は、それぞれの動作データセットを生成し得る。一部の実施では、第二のセンサーセット3224
1~3224
5は、それぞれジョイント3214
1~3214
5に、またはその近くに配置され得る。センサー3214
1~3214
5によって生成されるそれぞれの動作データセットは、それぞれアームセグメント3212
2~3212
6の動作を測定するか、またはそうでなければ記述し、すなわち、より具体的には、ジョイント3214
1~3214
5によって接続するアームセグメントのそれぞれの対の間の相対動作を記述し得る。例えば、センサー3224
5 は、ジョイント3214
5に対する、およびアームセグメント3212
5に対するアームセグメント3212
6の動作を測定するか、またはそうでなければ記述し、すなわち、より具体的には、ジョイント3214
5によって直接接続する、一対のすぐ隣接するアームセグメント3212
6、3212
5の間の相対動作を記述し得る。上記の実施例では、アームセグメント3212
6は、対のより遠位のアームセグメントであってもよく、一方、アームセグメント3212
5は、対のより近位のアームセグメントであり得る。別の実施例として、センサー3224
4が、ジョイント3214
4に対する、およびアームセグメント3212
4に対するアームセグメント3212
5の動作を測定するか、またはそうでなければ記述し得る。
【0050】
実施形態では、動作データは、アームセグメントの動作の量もしくは速度を測定するか、またはそうでなければ記述し得る。動作の量または速度は、アームセグメントが接続するジョイントの位置、アームセグメントが移動し始める前の位置、移動しているアームセグメントにすぐ隣接する近位アームセグメントの位置、または何らかの他の基線位置(基準位置とも呼ぶ)など、基線位置に対して測定され得る。一部の実例では、動作量は、基線位置に対するアームセグメントの位置を指し得る。動作にアームセグメントの回転を伴う場合、動作量(すなわち、より具体的には、回転量)は、一部の実例では、アームセグメントの回転位置(角度位置、回転変位、または角変位とも呼ぶ)を指し得る。アームセグメントの回転位置は、基線位置に対して測定され得る。実施例として、
図3Dは、アームセグメント3212
5が、ジョイント3214
4を通って延在する回転軸Aの周りで、ジョイント3214
4に対して、およびアームセグメント3212
4に対して回転する状況を示し、ジョイント3214
4によって、二つのアームセグメントを直接接続し得る。この実施例では、アームセグメント3212
5の回転位置は、アームセグメント3212
5が、基線位置に対してどのくらい回転したかを測定する、角度θによって示され得る。上述のように、さまざまな位置が基線位置として使用され得る。一実施例では、
図3Eのアームセグメント3212
4および3212
5の簡略図が示すように、基線位置は、回転位置の角度θが位置3510から測定され得るように、ジョイント3214
4に対して、およびアームセグメント3212
4に対して静止していたときの、アームセグメント3212
5の位置3510(例えば、アームセグメントの配向)であり得る。
図3Eでは、基線位置3510は、水平位置を有する角度α(例えば、ゼロでない角度)を形成し得る。より具体的には、基線位置3510に関連付けられる配向は、重力に対して垂直な配向であり得る、水平配向を有する角度αを形成し得る。角度αについては、以下でより詳細に論じる。
【0051】
実施形態では、動作データは、アームセグメント(例えば、32125)が回転しているか、もしくは他の方法で移動している速度を測定するか、またはそうでなければ記述し得る。動作速度は、上で論じた基線位置に対して測定され得る。一部の実例では、ジョイント(例えば、32144)の周りの一つのアームセグメントの動作速度は、そのジョイントに対して、またはすぐ隣接するアームセグメント(例えば、32124)に対して測定され得る。一部の実施では、動作速度は、速さ、速度、または加速度(例えば、回転の速さ、回転速度、または回転加速度)を指し得る。この実施例では、回転の速さは、回転速度の大きさを指してもよく、一方、回転速度はさらに、回転の方向(例えば、時計回りまたは反時計回り)を記述し得る。実施形態では、計算システム1100は、センサー32241~32245によって生成される動作データに基づいて、追加の動作データを判定するように構成され得る。例えば、センサー32241~32245 が、回転位置を直接測定し、動作データの中のその測定値を提供する場合、計算システム1100は、回転位置(例えば、回転位置の時間ベースの導関数として)に基づいて、回転速度および/または回転加速度を決定するように構成され得る。実施形態では、第二のセンサーセット32241~32245は、角度変位センサー、線形変位センサー、動作データを生成するように構成される他のセンサー、またはそれらの組み合わせを含み得る。
【0052】
上述したように、本開示の一態様は、ロボットキャリブレーションの、より具体的には、ロボットキャリブレーションを実施するために使用されるモデルおよび/またはセンサーデータの、ならびに/またはロボットキャリブレーションから決定される推定値(例えば、摩擦パラメーター推定値、CoM推定値、または何らかの他の物理特性の推定値)の正確性、品質、または信頼性評価に関する。一部の実例では、以下でより詳細に論じるように、作動予測データ値と作動試験データ値との間の偏差を示す誤差パラメーターに基づいて評価がなされ得る。
図4は、こうした誤差パラメーターの値を決定するための例示的な方法4000のフロー図を示す(値は、誤差パラメーター値とも呼ぶことができる)。一部のシナリオでは、方法4000は、ロボットキャリブレーション操作の一部として行われてもよい。当業者であれば、
図4は、誤差パラメーターの値を決定するための、より一般的には、上述の評価を実施するための方法の一実施例を示し、この評価を実施するための他の方法の例は、方法4000よりも少ないステップ、より多くのステップ、および/または異なるステップを有し得ることを理解するであろう。実施形態では、方法4000は、計算システム1100によって、すなわち、より具体的には、処理回路1110によって、非一時的コンピューター可読媒体1120上に記憶された命令(例えば、ロボットキャリブレーションモジュール1122に対する命令)を実行しているときなどに、少なくとも計算システム1100の処理回路1110によって行われてもよい。
【0053】
実施形態では、方法4000のステップの一部または全てが、複数回行われてもよく、複数回は複数回の反復に対応し得る。方法4000のステップに関する以下の考察は、それらのステップの一回の反復を示し得るものの、追加の反復を行ってもよい。各反復は、ロボットキャリブレーションが実行されるアームセグメントまたはジョイントなどの特定の構成要素、またはロボットキャリブレーションから決定される特定の推定値もしくは他の情報のセットのそれぞれの誤差パラメーター値を決定するために使用され得る。例えば一つの反復または一連の反復は、特定のアームセグメント、特定のジョイント、またはジョイントによって連結される特定の一対の隣接するアームセグメントに関連付けられるCoM推定値および摩擦パラメーター推定値のそれぞれの誤差パラメーター値を決定するために、一つの期間の間に実施されてもよく、一方、次の反復または次の一連の反復は、別のアームセグメント、別のジョイント、または、この他のジョイントによって接続された別の対のアームセグメントに関連付けられるCoM推定値および摩擦パラメーター推定値のそれぞれの誤差パラメーター値を決定するために、別の期間の間に行われてもよい。実施形態では、方法4000のステップは、一つの誤差パラメーター値を決定するために一つの期間の間に実施されてもよく、ステップの一部または全ては、別の誤差パラメーター値を決定するために別の期間の間に繰り返され得る。
【0054】
実施形態では、方法4000は、計算システム1100が、
図2Cのセンサーデータ1124などのセンサーデータを訓練データおよび試験データ分割するステップ4002で始まってもよい、または含んでもよい。一部の実例では、センサーデータ(例えば、1124)は、非一時的コンピューター可読媒体1120上など、計算システム1100上に格納されてもよく、または別の場所に格納され得る。保存されたセンサーデータ(例えば、1124)は、例えば、保存された動作データ(例えば、1127)および保存された作動データ(例えば、1128)を含み得る。センサーデータは
図1Cおよび3Cのセンサー1222
1~1222
nまたは3222
1~3222
5およびセンサー1224
1~1224
nまたは3224
1~3224
5などの一つまたは複数のセンサーによって生成され得る。例えば、方法4000が、アームセグメント3212
5またはそのジョイント3212
4上でロボットキャリブレーションを実行することに関連する誤差パラメーター値を決定して、その物理特性を推定する反復を含む場合、その反復におけるセンサーデータは、例えば、センサー3222
4によって生成される作動データセットを含み、例えば、センサー3224
4によって生成される動作データセットを含み得る。方法4000が、アームセグメント3212
4またはジョイント3214
3などの別のアームセグメントまたは別のジョイント上のアームセグメント上のロボットキャリブレーションの実行に関連する誤差パラメーター値を決定するための別の反復を含む場合、その反復におけるセンサーデータは、例えば、センサー3222
3によって生成される作動データセットを含み、例えば、センサー3224
3によって生成される動作データセットを含み得る。
【0055】
一部の実施では、方法4000は、センサーデータを取得またはその他の方法で受信するために、ステップ4002の前に計算システム1100によって行われ得る、一つまたは複数のステップを含み得る。例えば、これらの一つまたは複数のステップは、計算システム1100が、すぐ隣接するアームセグメントであり得る、二つのアームセグメントを直接接続するジョイントを介して(例えば、3214
4を介して)、第一のアームセグメント(例えば、3212
5)と第二のアームセグメント(例えば、3212
4)との間の相対動作を引き起こすための、一つまたは複数の動作コマンドのセットを生成することを伴い得る。一部の実例では、一つまたは複数の動作コマンドを、複数のアクチュエーターのうちの第一のアクチュエーター(例えば、3330
4)を起動するために使用してもよく、計算システム1100によって、
図2Bの通信インターフェース1130を介して、第一のアクチュエーター(例えば、3330
4)に出力するか、または他の方法で伝達し得る。例えば、第一のアクチュエーター(例えば、3330
4)がモーターである場合、一つまたは複数の動作コマンドは各々、モーターを起動するためのモーターコマンドであり得る。動作コマンドについては、「METHOD AND COMPUTING SYSTEM FOR ESTIMATING PARAMETER FOR ROBOT OPERATION」と題する、米国特許出願第17/243,939号(MJ0062-US/0077-0015US1)において、より詳細に論じられ、その内容全体が参照により本明細書に組み込まれる。実施形態では、アクチュエーター(例えば、3330
4)が、一つまたは複数の動作コマンドを受信すると、アクチュエーターは、ジョイントでの運動を出力し、すなわち、より具体的には、力またはトルクを出力して、ジョイントでの運動を引き起こし得る。上述のように、ジョイントにおける運動は、ジョイント自体の動作(例えば、回転)を指すか、またはジョイント(例えば、3214
4)によって直接連結される二つのアームセグメント(例えば、3212
4、3212
5)間の相対回転を指し得る。
【0056】
例えば、
図5Aおよび5Bは、二つのアームセグメントを直接連結するジョイント3214
4を介してアームセグメント3212
4に対して回転するアームセグメント3212
5を含む運動を示す。運動は、アームセグメント3212
5上またはジョイント3214
4上に発揮され得るトルクまたは力を出力し得る、アクチュエーター3330
4を起動させる一つまたは複数の動作コマンドによって引き起こされ得る。運動は、
図5Aに示されるように、アームセグメント3212
4に対して反時計回り方向に回転するアームセグメント3212
5および下流アームセグメント3212
6を含み得、
図5Bに示されるように、アームセグメント3212
4に対して時計回り方向に回転するアームセグメント3212
5および下流アームセグメント3212
6を含む。より具体的には、
図5Aのアームセグメント3212
5は、開始位置から中間位置に反時計回りに回転する一方、
図5Bのアームセグメント3212
5は、中間位置から終了位置に反対方向に回転し得る。
【0057】
実施形態では、一つまたは複数のセンサー(例えば、センサー3222
4および3224
4)は、アームセグメント間の運動が発生している期間中、作動データセット、動作データセット、および/または他のセンサーデータを生成し得る。一部の実例では、作動データセットは、アームセグメント3212
5およびジョイント3214
4など、運動に関与するアームセグメントまたはジョイントによって経験される力またはトルクを示し得る。実施例として、
図6Aは、アームセグメント3212
5が、ジョイント3214
4を介してアームセグメント3212
4に対して回転している期間中に、センサー3222
4.によって生成された作動データを表すグラフを示す。グラフ内の作動データは、ジョイント3214
4での全トルク、またはジョイント3214
4に対するアームセグメント3212
5に及ぼされる全トルクを示し得る。図はさらに、運動が起こっている時間内のさまざまな時点、例えば、t
startおよびt
endを描写する。この実施例では、t
startは、全トルクにより、アームセグメント3212
5が図の中間位置に向かって
図5Aの開始位置から回転し得る、期間の開始を表し得る。t
endで、すぐ隣接するアームセグメント3212
5、3212
4間の相対回転は停止し得る。
図6Aの実施例で、作動データは、時間の関数であり得る。より具体的には、作動データは、複数の異なる時点に対応し得る、複数の作動データ値を含み得る。
図6Aの正の作動データ値は、第一の方向(例えば、反時計回り方向)にある全トルクを表してもよく、図中の負の作動データ値は、第二の方向(例えば、時計回り方向)にある全トルクを表し得る。
【0058】
実施形態では、センサー3224
4などの一つまたは複数のセンサーによって生成される動作データセットは、相対回転または他の運動を記述し得る。例えば、動作データセットは、ジョイント3212
4を介した、すぐ隣接する上流アームセグメント3212
4に対するアームセグメント3212
5の動作の量または速度を記述し得る。いくつかの実施では、動作データは、回転位置の値、回転速度の値、および/または回転加速度の値を含み得る、複数の動作データ値を含み得る。実施例として、動作量は、アームセグメント3212
5の回転位置または変位によって表され得る。より具体的には、
図6Bは、時間関数としてのアームセグメント3212
5の回転位置を示す、動作データを示す。この実施例では、回転位置または変位は、基線位置3510など、基線位置に対して測定され得る。回転位置の正の値は、基線位置の一方の側面上にある位置(例えば、基線位置の上方)を指してもよく、一方、回転位置の負の値は、基線位置の他方の側面上にある位置(例えば、基線位置の下方)を指し得る。
【0059】
動作データが動作速度を示す場合、動作速度は、回転の速さ、回転速度、または回転加速度によって表され得る。より具体的には、
図6Cは、基線位置3510に対する、アームセグメント3212
4に対する、または何らかの他の基準フレームに対する、アームセグメント3212
5の回転速度を示す。回転速度の正の値は、第一の方向(例えば、反時計回り方向)における回転を指してもよく、一方、回転速度の負の値は、第二の方向(例えば、時計回り方向)における回転を指し得る。
【0060】
図6Bおよび6Cは、回転が発生している時間内の時間t
startおよびt
endの点を示し、さらに、追加的な時点t
deceleration_point1、t
direction_switch、t
deceleration_point2を示す。t
startで、アームセグメント3212
5は、アームセグメント3212
5を
図5Aの開始位置から中間位置まで回転させるように、反時計回り方向に加速し始めることができる。t
deceleration_point1では、アームセグメント3212
5は、反時計回りの方向に回転し続けることができるが、その方向の回転加速度および回転速度は、大きさにおいて減少し始め得る。t
direction_switchでは、アームセグメント3212
5は、中間位置に到達し、回転方向を時計回り方向に逆転させる前に、一時停止または一時的に停止し得る。この時点で、回転加速度および回転速度は時計回り方向に大きさが増加し始め、アームセグメント3212
5を
図5Bの中間位置から終了位置に向かって回転させることができる。t
deceleration_point2では、アームセグメント3212
5は時計回りの方向に回転し続けることができるが、回転加速度および回転速度は大きさが減少し得る。t
endで、アームセグメント3212
5は、
図5Bの終了位置に到達し、および回転速度の大きさがゼロに減少した可能性がある。
【0061】
実施形態では、計算システム1100は、一つまたは複数のセンサーによって生成される作動データ、動作データ、および/またはその他のセンサーデータを受信し、センサーデータを非一時的コンピューター可読媒体1120に記憶し得る。
図7A~7Cは、作動データおよび動作データの例を示す。より具体的には、
図7Aは、動作データが、アームセグメント3212
5などのアームセグメントの回転位置を度またはラジアンで示す複数の値θ(t
1)~θ(t
z)を含む実施例を示す。値θ(t
1)~θ(t
z)は、回転位置値、またはより一般的には動作データ値とも称し、それぞれの時点t
1~t
zに対応してもよく、例えば、
図5Aおよび5Bの基線位置3510に対するものであり得る。実施例として、回転位置値θ(t
1)~θ(t
z)は、
図6Bのグラフによって表される値であり得る。こうした例では、t
1はt
startに対応してもよく、一方でt
zはt
endに対応し得る。
【0062】
さらにこの実施例では、作動データは、ジョイント3214
4またはアームセグメント3212
5など、ジョイントまたはアームセグメントで発揮される全トルクを示す、複数の値τ(t
1)~τ(t
z)を含み得る。また、これらの値τ(t
1)~τ(t
z)は、トルク値、またはより一般的には、作動データ値とも呼ばれ、それぞれの時点t
1~t
zに対応し得る。従って、回転位置値θ(t
1)~θ(t
z)は、それぞれトルク値τ(t
1)~τ(t
z)に対応し得る。上述のように、作動データは、一部の例では、アームセグメントまたはジョイントでの全体の力または全トルクを間接的に示し得る。例えば、
図7Bは、作動データが、アームセグメントまたはジョイントでトルクまたは力を出力するために使用される対応するアクチュエーター(例えば、3330
4)を流れる電流c(t
1)~c(t
z)の値に比例/直接的に測定される実施例を示す。こうした例では、計算システム1100は、測定される電流値c(t
1)~c(t
z)に基づいて、トルク値τ(t
1)~τ(t
z)を決定するように構成され得る。
図7Cは、センサーデータの、またはより具体的には、回転速度
【数1】
~
【数2】
の値を直接示す、動作データ別の実施例を提供する。これらの値はまた、回転速度値、またはより一般的には動作データ値と呼んでもよい。一実施形態では、
図7A~7Cのセンサーデータのさまざまな実施例を組み合わせてもよい。例えば、
図7Bの作動データは、
図7Cの動作データと組み合わせることができる。
【0063】
上述のように、ステップ4002は、センサーデータを訓練データおよび試験データに分割することを伴い得る。実施形態では、センサーデータは、訓練データとして、動作訓練データ(動作関連訓練データとも呼ぶ)および対応する作動訓練データ(作動関連訓練データとも呼ぶ)を選択することによって、および試験データとして、動作試験データ(動作関連試験データとも呼ぶ)および対応する作動試験データ(作動関連試験データとも呼ぶ)を選択することによって、分割され得る。言い換えれば、訓練データは、動作訓練データおよび作動訓練データを含んでもよく、試験データは、動作試験データおよび作動試験データを含んでもよい。例えば、
図8Aは、
図7Aのセンサーデータが、訓練データおよび試験データに分割される、実施例を示す。訓練データは、動作訓練データθ
training、および作動訓練データτ
trainingを含んでもよく、一方、試験データは、動作試験データθ
test、および作動試験データτ
testを含んでもよい。
図8Aで示されるように、動作訓練データθ
training訓練は、動作データセットの第一のサブセットであってもよく(セットは、動作データ値θ(t
1)~θ(t
z)を含む)、一方で、動作試験データは、動作データセットの第二のサブセットであり得る。作動訓練データは、作動データセットの第一のサブセットであってもよく(セットは、作動データ値τ(t
1)~τ(t
z)を含んでもよい)、一方で、作動試験データは、作動データセットτ(t
1)~τ(t
z)の第二のサブセットであり得る。いくつかの実施では、上述のサブセットは重複を有しなくてもよい。
【0064】
センサーデータは、さまざまな方法で分割され得る。一実施例では、計算システム1100は、動作データの連続値の前半の半分を動作訓練データとして選択し、動作データの連続値の後半の半分を試験データとして選択し得る。作動訓練データおよび作動試験データは、同様の様式で選択され得る。別の実施例では、計算システム1100は、動作データの他の全ての値を動作訓練データとして選択し、動作データの残りの値を試験データとして選択し、同様に作動訓練データおよび作動試験データを選択し得る。別の実施例では、
図8Aは、回転位置値θ(t
1)~θ(t
z)を含む動作訓練データを選択する計算システム1100を示す。この実施例では、計算システムは、回転位置値θ(t
1)~θ(t
a)および回転位置値θ(t
b+1)~θ(t
c)を訓練データとして選択することができ、これらの値は、動作データの第一のサブセットを形成し得る。同様に、計算システム1100は、作動訓練データを選択して、作動データの第一のサブセットを形成し得る、トルク値τ(t
1)~τ(t
a)およびトルク値τ(t
b+1)~τ(t
c)を含み得る。さらに、計算システム1100は、動作試験データを選択して、動作データの第二のサブセットを形成し得る、回転位置値θ(t
a+1)~θ(t
b)、および回転位置値θ(t
c+1)~θ(t
z)を含み得る。同様に、計算システム1100は、作動試験データを選択して、作動データの第二のサブセットを形成し得る、トルク値τ(t
a+1)~τ(t
b)およびトルク値τ(t
c+1)~τ(t
z)を含み得る。
【0065】
センサーデータを分割する別の実施例では、計算システム1100は、動作データによって示される位置値および速度値に対して、またはより具体的には、位置と速度との間の関係に対して対称的な様式で、センサーデータを分割することができる。例えば、関係は、回転速度と回転位置との間の比を指し得る。より具体的には、
図8Bは、回転位置値および回転速度値を記述する座標系(例えば、極座標系)を示す。回転位置値および回転速度値は、動作データの一部であってもよく、または動作データから導出され得る。例えば、非一時的コンピューター可読媒体1120内に格納される動作データは、回転位置値を含んでもよく、計算システム1100は、回転速度値を、回転位置値の時間ベースの微分に等しいか、またはそれに基づくと決定し得る。図はさらに、座標系を対称領域812、821、813、831、814、841、815、および851に分割し得る仮想線801および仮想線803を描写する。実施形態では、仮想線801は、回転速度と回転位置との間の定義された比閾値、例えば、
【数3】
の比を表し得る。
【0066】
実施形態では、計算システム1100は、動作データ値がどの領域に位置するかに基づいて、特定の動作データ値を訓練データまたは試験データとして選択し得る。より具体的には、動作データ値は、回転位置値および/または対応する回転速度値を含み得る。例えば、動作データ値は、回転位置値を含んでもよく、計算システムは、回転位置値に基づいて回転速度値を決定し得る。計算システム1100は、回転位置値と対応する回転速度値との組み合わせがどの領域に位置するかに基づいて、動作データ値を訓練データとして選択するか、または試験データとして選択するかを決定し得る。いくつかの実施では、計算システム1100は、回転速度値と回転位置値との間の比に基づいて、この決定を行い得る。例えば、仮想線801は、座標系の一つの四分円を、互いに対称な一対の領域812、821に分割し得る。領域812は、それらの回転速度値と対応する回転位置値とのそれぞれの比が、定義された比閾値(例えば、
【数4】
)から0に延在する定義された範囲内にある、動作データ値を表し得る。定義された比閾値は、正の値または負の値(すなわち、正の比閾値または負の比閾値)であってもよく、仮想線801の勾配(例えば、-1)によって表され得る。定義された比閾値は、非一時的コンピューター可読媒体内1120に格納されてもよく、その中にあらかじめ定義されてもよく、あるいは計算システム1100によって動的に定義されるか、またはその他の方法で決定され得る。一部の実例では、本開示の定義された値は、手動で定義され、非一時的コンピューター可読媒体1120に記憶されてもよく、または計算システム1100によって動的に定義されてもよく、また非一時的コンピューター可読媒体1120に記憶されてもよく、または使用後に破棄され得る。
図8Bにおいて、領域821は、回転速度値と対応する回転位置値との間のそれぞれの比が、定義された比閾値(例えば、-1未満)よりも小さい、動作データ値を表し得る。従って、この実施例では、動作データ値が、対応する回転速度値と、定義された比閾値(例えば、-1)から0に延びる範囲内にある対応する回転位置値との間の比を有する場合、動作データ値は、訓練データとして選択され得る。対応する作動データ値はまた、訓練データとして選択され得る(対応する作動データ値は、動作データ値と同じ時点を記述する作動データ値であり得る)。動作データ値が、定義された比閾値よりも小さい比を有する場合、動作データ値は、試験データとして選択され得る。
【0067】
別の実施例として、仮想線803は、座標系の別の四分円を、互いに対称な一対の領域813、831に分割し得る。この実施例では、領域831内に入る動作データ値は、動作訓練データとして選択されてもよく、一方で領域813内に入る動作データ値は、試験データとして選択され得る。領域813は、それらの回転速度値と対応する回転位置値との間のそれぞれの比が、0から別の定義された比閾値(例えば、
【数5】
)まで延在する定義された範囲内にある動作データ値を表してもよく、一方で領域831は、回転速度値と対応する回転位置値との間のそれぞれの比が、定義された比閾値(例えば、1よりも大きい)よりも大きい動作データ値を表し得る。この実施例の定義された比閾値は、線803の勾配によって表され得る。従って、この実施例では、動作データ値が、対応する回転速度値と、0から定義された比閾値(例えば、1)に延びる範囲内にある対応する回転位置値との間の比を有する場合、動作データ値は、試験データとして選択され得る。動作データ値が、定義された比閾値(例えば、1よりも大きい)よりも大きい比を有する場合、動作データ値は、訓練データとして選択され得る。上述の方法でセンサーデータを分割することは、訓練データに基づいて、パラメーターのより正確な推定を促進してもよく、および/または試験データを使用して、推定されたパラメーターのより正確な評価を促進し得る、対称である訓練データおよび試験データを生成し得る。
【0068】
図4に戻り、方法4000は、一実施形態では、計算システム1100が、動作訓練データ(例えば、θ
training)および作動訓練データ(例えば、τ
training)に基づいて、(i)センサーデータによって測定された相対運動を受けた一対のアームセグメント(例えば、3212
5、3212
4)間の摩擦に関連する摩擦パラメーター推定値、または(ii)一対のアームセグメントの一つ(例:3212
5)に関連付けられた重心(CoM)の推定値のうちの少なくとも一つを決定することができる、ステップ4004を含み得る。本実施形態では、摩擦パラメーター推定値が、粘性摩擦の係数の推定値であるか、またはクーロン摩擦の推定値である。
【0069】
図9A~9Cは、摩擦パラメーター推定値が、作動訓練データおよび動作訓練データに基づいて、どのように決定され得るかを示す。より具体的には、
図9Aは、(i)作動訓練データτ
trainingによって示される全トルクの値、および(ii)動作訓練データθ
training によって示される回転速度の対応する値(例えば、回転速度値は、θ
trainingにおける回転位置値の時間ベースの派生物であり得る)の組み合わせのプロットである。値の各組み合わせは、訓練データによって説明されるそれぞれの時点におけるジョイント(例えば、3214
4)での全トルクを表す第一の値、およびその時点における回転速度を表す第二の値を含み得る。例えば、第一の値は、例えば、特定の時点での、第二のアームセグメント(例えば、3212
4)に対する第一のアームセグメント(例えば、3212
5)上の全トルクを示してもよく、第二の値は、その時点での、第一のアームセグメントと第二のアームセグメントとの間の回転速度を示し得る。
図9Aにプロットされた値の組み合わせは、例えば、
図5Aおよび5Bに示される回転に、ならびに
図6A~6Cに示されるセンサーデータに対応し得る。例えば、
図9Aは、t
start からt
deceleration_point1までの時間の間に第一の方向(例えば、反時計回り方向)で大きさが増大し、その後、t
deceleration_point1からt
direction_switchまでの時間の間に大きさが減少し、次いで、第一の方向から第二の方向(例えば、時計回り方向)に切り替わり、およびt
direction_switchからt
deceleration_point2までの期間の間に第二の方向で大きさが増大し、その後、t
deceleration_point2 からt
endまでの期間の間に大きさが減少する、回転速度を表す、動作訓練データ、および作動訓練データを示す。
【0070】
実施形態では、作動訓練データによって表される全トルクは、二つの隣接するアーム(例えば、32125および32124)間のアクチュエーターの慣性からの寄与に基づいてもよい。実施形態では、全トルクは摩擦からの寄与に基づいてもよい。より具体的には、全トルクは、一部の実例では、次の例示の式によって記述され得る。
τ=アクチュエーターからの寄与+重力からの寄与+摩擦からの寄与(1)
【0071】
上記の式で、τは、ジョイント(例えば、3214
4)上の全トルクを指し、作動訓練データτ
trainingに等しいか、またはそれから導き出され得る。この実施例では、アクチュエーターからの寄与は、アクチュエーター(例えば、3330
4)によって出力されるトルクまたは力を指し得る。例えば、アクチュエーターからのこの寄与は、
【数6】
によって表され得る。ここで、
【数7】
は、第二のアームセグメント(例えば、3212
4)に対する第一のアームセグメント(例えば、3212
5)の回転加速度を表す用語であり、Iは第一のアームセグメントの慣性モーメントである。実施形態では、重力からの寄与は、第一のアームセグメントおよびエンドエフェクタ装置)など、下流セグメントの重量によって引き起こされるトルクを指してもよく、トルクは、ジョイント(例えば3214
4)によって提供されるピボット点に対して作用する。例えば、重力からの寄与は、用語mgr cosθまたはmgr sinθによって表されてもよく、θは、重力ベクトルに対する下流セグメントの回転位置を表し、一方、mgは下流セグメントの重量寄与を表す。より具体的には、mは下流セグメントの質量を表し、一方、gは重力加速度(例えば、9.8m/sec
2)を表す。この実施例では、rは、第一のアームセグメント質量中心(CoM)とジョイントとの距離を表す。一部の実施では、質量mまたは重量mgの値は、非一時的コンピューター可読媒体1130に記憶される、既知の値であり得る。
【0072】
実施形態では、摩擦からの寄与は、どのくらいの抵抗が、第二のアームセグメントに対する、または二つのアームセグメントを接続するジョイントに対する、第一のアームセグメントの運動または運動の変化による摩擦によって提供されるのかを指し得る。一部のシナリオでは、摩擦からの寄与は
【数8】
と表されてもよく、sは、第一のアームセグメントと第二のアームセグメントとの間の静止摩擦(クーロン摩擦とも呼ぶ)の量を表し、
【数9】
は、第二のアームセグメントによって提供される、基準フレームに対する第一のアームセグメントの回転速度を表し、bは、第一のアームセグメントと第二のアームセグメントとの間の粘性摩擦の係数を表す。こうしたシナリオでは、静止摩擦は、第一のアームセグメントと第二のアームセグメントとの間の相対回転中、一定のままであってもよく、一方、回転速度の大きさが増加するにつれて、粘性摩擦は大きさが増大し得る。
【0073】
実施形態では、計算システム1100は、作動訓練データτ
trainingから、全トルクの摩擦成分とも呼ばれ得る、摩擦からの寄与を効果的に抽出するか、または他の方法で決定するように構成され得る。例えば、
図9Bおよび9Cは、さまざまな時点について、全トルクの摩擦成分を表す値の組み合わせを示す。全トルクの摩擦成分に対するこれらの値は、回転速度の値と組み合わされ得る。一部の実例では、計算システム1100は、作動訓練データによって示される全トルクから、それらの寄与が分かっている場合はアクチュエーターの寄与、および重力の寄与を差し引くことによって、全トルクの摩擦成分を抽出するように構成され得る。例えば、計算システム1100によって、以前に、(慣性モーメントを表す)の推定値、またはr(CoMを表す)Iの推定値を決定した場合、計算システム1100は、それらの推定値だけでなく、動作訓練データによって提供されるか、または動作訓練データから導き出される
【数10】
の値も使用して、アクチュエーターからの寄与(
【数11】
として推定され得る)、および重力からの寄与(mgt cosθとして推定され得る)を決定し得る。その後、計算システム1100によって、アクチュエーターの寄与および重力の寄与を全トルクから取り除いて(subtract out)、摩擦の寄与を抽出し得る。一部の実例では、計算システム1100によって、以下でより詳細に論じるように、全トルクを摩擦に関係させる、連立方程式のセットを解くことによって、摩擦成分を効果的に抽出し得る。
【0074】
図9Cに示すように、計算システム1100は、摩擦パラメーター推定値を決定するために、全トルクの摩擦成分(作動訓練データから抽出され得る)と、回転速度(動作訓練データによって提供されるか、または動作訓練データから抽出され得る)との関係を使用するように構成され得る。より具体的には、二つのアームセグメント間の摩擦には、静止摩擦および粘性摩擦を含み得る。上で論じたように、静止摩擦は、一部の実例では、定数(s)として表されてもよく、一方、粘性摩擦は、回転速度の線形関数
【数12】
であると表され得る。その結果、全トルクの摩擦成分が
【数13】
として近似し得る。こうした実例では、計算システム1100によって、線形の当てはめを、全トルクの摩擦成分を表す、
図9Cの値の組み合わせに適用し得る。より具体的には、計算システム1100によって、
図9Bおよび9Cの値の組み合わせを通って適合するか、またはそうでなければ、その組み合わせに近似する、線9500Aおよび/または線9500Bを決定し得る。線9500Aまたは9500Bは、
【数14】
の上記の式を表し得る。より具体的には、計算システム1100によって、線9500Aまたは9500Bの勾配に等しいか、またはそれに基づくように(またはそれらの線のそれぞれの勾配の平均として)、粘性摩擦(b)の係数を決定し、線9500Aまたは9500Bの高さに等しいか、またはそれに基づく(例えば、Y切片の9501Aから9501Bに、またはそれらの大きさの平均に等しい)ように、静止摩擦(s)を決定し得る。
【0075】
上述のように、計算システム1100は、全トルクを摩擦に関係させる、連立方程式のセットを解くことによって、摩擦成分を効果的に抽出するように構成され得る。上述のように、全トルクτは、アクチュエーターからの寄与、重力からの寄与、および摩擦からの寄与に基づいてもよい。一実施例では、全トルクは、以下のより具体的な関係に基づいてもよい。
【数15】
【0076】
この実施例では、パラメーターτに対する値は、作動訓練データによって提供されるか、または作動訓練データから導き出され得る。パラメーター
【数16】
(回転位置、回転速度、および回転加速度をそれぞれ表し得る)は、動作訓練データによって提供されるか、または動作訓練データから導き出され得る。さらに上で論じたように、パラメーターIは慣性モーメントを表し、パラメーターmgは、アームセグメント(例えば、3212
5)の重量を表し、パラメーターrは、アームセグメントのCoMと、アームセグメントが接続するジョイント(例えば、3214
4)との間の距離を表し、パラメーターsは静止摩擦の量を表し、パラメーターbは粘性摩擦の係数を表す。上記の実施例では、αは、
図3Eに示すように、基線位置と水平配向との間の角度であり得る。さらに、符号
【数17】
関数が運動の方向と反対の方向を有する静止摩擦を表すために、使用され得る。より具体的には、符号
【数18】
関数は、
【数19】
が正であるとき1の値、
【数20】
が負であるとき-1の値、
【数21】
が0であるとき0の値を有し得る。
【0077】
一実施形態では、計算システム1100は、上記の関係を使用して、訓練データによって表される異なる時点、または、より一般的には、(i)作動訓練データからのトルク値および(ii)動作訓練データからの位置、速度、または加速度の値のさまざまな組み合わせに対応する式のセットを生成するように構成され得る。例えば、計算システム1100は、行列として表され得る、以下の式のセットを生成するように構成され得る。
【数22】
【0078】
上記の実施例では、
【数23】
は、作動訓練データによって提供されるか、または作動訓練データから導き出される、異なるトルク値に対応し得る。例えば、作動訓練データが
図8Aの実施例からであるとき、その後、
【数24】
は、
【数25】
と等しくてもよく、作動訓練データの一部であるとして
図8Aに示され、一方で、
【数26】
は、
【数27】
と等しくてもよく、
【数28】
は、
【数29】
と等しくてもよい。より具体的には、作動訓練データが
図8Aの実施例からであるとき、その後、上記式中のトルク値、
【数30】
は、より具体的には、
【数31】
を含んでもよい。さらに、
【数32】
は、動作訓練データから提供されるか、またはそれから導き出される異なる加速度値に対応してもよく、またこれは
【数33】
にそれぞれ対応する。同様に、
【数34】
は、動作訓練データによって提供されるか、または動作訓練データから導き出される、異なる速度値に対応してもよく、
【数35】
は、動作訓練データによって提供されるか、または動作訓練データから導き出される、異なる位置値に対応し得る。位置
【数36】
、または速度
【数37】
のこれらの値はまた、
【数38】
のトルク値に対応し得る。一実施例では、上の式中の
【数39】
値は、具体的には、
図8Aの回転位置値
【数40】
を含む。上の実施例では、上の式の値は、異なる時点に対応することができ、より具体的には、異なる時点における一つまたは複数のセンサー(例えば、3222
4、3224
4)によってなされる測定値に対応することができる。
【0079】
実施形態では、計算システム1100は、上記の連立方程式のセットを解いて、s、b、I、m、r、および/またはαに対するそれぞれの値を決定するように構成され得る。式を解くことには、上記の式を満たすか、またはおおよそ満たす、s、b、I、m、r、および/もしくはαに対するそれぞれの値を決定することを伴い得る。摩擦パラメーター推定値は、例えば、式を解くことから決定されるsの値またはbの値であり得る。いくつかの実施では、計算システム1100は、最小二乗フィッティング方法を適用して、例えば、式の左側(例えば、式4)の値と、式の右側の値との間の誤差の量を最小化する、上記のパラメーターに対するそれぞれの値を決定するように構成され得る。式の左側の値は、作動訓練データによって提供されるか、または作動訓練データから抽出される、トルク値
【数41】
であり得る。式の右側の値は、例えば、式4の上の式を使用して、および動作訓練データによって提供されるか、または動作訓練データから抽出される、回転位置値、回転速度値、および回転加速度値を使用して計算され得る。
【0080】
上述のように、ステップ4004は、摩擦パラメーター推定値またはCoM推定値のうちの少なくとも一つを決定することを伴い得る。実施形態では、計算システムは、上で図示した複数の同時方程式を解くことによって、CoM推定値を求めることができる。一部の実例では、計算システム1100によって、アームセグメント(例えば、3212
5)の重量に起因する、すなわち、より具体的には、アームセグメントのCoMへの重力の影響に起因する全トルクの成分を、作動訓練データから、効果的に抽出するように、上記の手法または何らかの他の手法を使用し得る。一実施例では、この成分は、mgr cos(θ+α)として表現されてもよく、例えば、全トルクから、アクチュエーターの寄与(例えば、
【数42】
)、および摩擦の寄与(例えば、
【数43】
)を差し引くことによって取得され得る。例えば、
図10Aは、アームセグメントのCoMへの重力の影響として近似し得る、全トルクの重力成分を表す値の例を提供する。
図10Bは、正弦適合、すなわち、より具体的には、計算システム1100が
図10Aの値を適合させるように使用している、正弦曲線を示す。一部の実例では、計算システム1100によって、
図10Bの正弦曲線の振幅および位相シフトに基づいて、CoM推定値を決定し得る。より具体的には、計算システム1100は、正弦曲線の振幅に基づいて、mgrの値を決定するように構成されてもよく、一方、パラメーターαは、正弦曲線の位相シフトに影響を及ぼし得る。この実施例では、計算システム1100によって、正弦曲線の振幅とアームセグメントの重量の割合を決定し得るが、割合は、アームセグメントのCoMを表し得るrに等しいかまたはそれを示し得る。
【0081】
実施形態では、作動訓練データに基づいて、特定のアームセグメントに対するCoMの推定値を決定するとき、計算システム1100は、下流アームセグメント(例えば、より遠位のアームセグメント)が、作動訓練データまたは他の訓練データに与え得る影響を考慮に入れるように構成され得る。より具体的には、下流アームセグメント(例えば、32126)からの重量は、特定のアームセグメント(例えば、32125)またはジョイント(例えば、32144)での全トルクに寄与し得る。従って、下流アームセグメントは、特定のアームセグメント(例えば、32125)に対するCoM推定値を求めるために使用される作動訓練データまたは動作訓練データに影響を与え得る。こうした状況では、計算システム1100は、作動訓練データまたは動作訓練データが、その影響を除去または補償するために、下流アームセグメントの重量によってどの程度影響を受けるかを決定し得る。
【0082】
一部の実例では、ステップ4004は、上で論じた式(例えば、式4)を解くことによってなど、慣性モーメントIに対する推定値を求めることを含み得る。CoM推定値、摩擦パラメーター推定値、および/または慣性モーメントの推定値を決定することは、「METHOD AND COMPUTING SYSTEM FOR ESTIMATING PARAMETER FOR ROBOT OPERATION」と題する、米国特許出願第17/243,939号(MJ0062-US/0077-0015US1)においてより詳細に論じられ、その全体が参照により本明細書に組み込まれる。
【0083】
図4を再び参照すると、実施形態4000は、一実施形態では、計算システム1100が、
図8Aのθ
testなど、動作試験データに基づき、おおび(i)摩擦パラメーター推定値または(ii)CoM推定値のうちの少なくとも一つに基づいて作動予測データを決定する、ステップ4006を含んでもよく、推定値は、ステップ4004から決定される。例えば作動予測データは、トルク値(トルク予測値とも呼ぶことができる)を予測する設定されたτ
predictであってもよく、または、力値(力予測値とも呼ぶことができる)を予測する設定f
predictであってもよく、トルクまたは力の予測値は、例えば、3214
4などのセンサーデータを生成するために使用される回転または他の運動に関連付けられるジョイントでの全トルクまたは全体の力を示す予測値であり得る。この実施例では、設定されたτ
predictは、τ
predict_1、τ
predict_2、...τ
predict_nなどの複数のトルク値を予測し得る。言い換えれば、設定されたτ
predictは、複数のトルク予測値(予測トルク値とも呼ぶ)τ
predict_1、τ
predict_2、...τ
predict_nを含んでもよい。
【0084】
実例によっては、トルク予測値または他の作動予測データは、センサーデータが生成された期間中の異なる時点に対応し得る。例えば、
図11は、異なる時点に対応する複数のトルク予測値τ
predict_1、τ
predict_2、...τ
predict_nを含む作動予測データを表すグラフを提供する。より具体的には、トルク予測値、およびトルク予測値を生成するために使用される動作試験データは、異なる時点に対応し得る。例えば、動作試験データθ
test は、複数の回転位置値θ
test-_1、θ
test_2、...θ
test_nを含んでもよい。動作試験データが
図8Aからであるとき、次いで、動作試験データの回転位置値θ
test-_1、θ
test_2、...θ
test_nは、より具体的には、
図8Aの回転位置値θ(t
a+1)...θ(
tb)およびθ(t
c+1)...θ(
tz)を含む。こうした実施例では、動作試験データは、t
a+1...t
bおよびt
c+1...t
zの時点に対応する。作動予測データは、動作試験データに基づいてもよく、従って、t
a+1...t
bおよびt
c+1...t
zの時点に対応し得る。
【0085】
実施形態では、作動予測データは、上の式2、3、または4と類似した式に基づいて決定され得る。例えば、作動予測データが、複数のトルク予測値τ
predict_1、τ
predict_2、...τ
predict_nを含むとき、次に、セット中の各トルク予測値τ
predict_iは、式に基づいて決定され得る。
【数44】
【0086】
この式においては、
【数45】
は、
図8Aの動作試験データθ
testなどの動作試験データによって提供されるか、またはそれから導出される、i番目の回転加速度値、回転速度値、または回転位置値を指す。式中のsおよびbの値は、摩擦パラメーター推定値の一部として決定され得るクーロン摩擦および動摩擦のそれぞれの推定値であってもよく、一方、CoMの値は、CoM推定値であってもよく、Iの値は、慣性モーメントの推定値であり得る。これらの推定値の一部または全ては、上述のように、動作訓練データおよび作動訓練データに基づいて、ステップ4004で決定され得る。
【0087】
図4に戻り、方法4000は、一実施形態では、計算システム1100が、上述のτ
predictなどの作動予測データと、
図8Aのτ
testなどの作動試験データとの間の偏差または誤差を説明することができる残留データを決定する、ステップ4008を含み得る。一部の実例では、
図12に示すように、残留データは、異なる時点に対応する残留データ値を含み得る。例えば、τ
predictが
図8Aの動作試験データに基づく場合、作動予測データは、t
a+1...t
bおよびt
c+1...t
zの時点に対応するトルク予測値を含み得る。この実施例では、作動試験データτ
testは、t
a+1...t
bおよびt
c+1...t
zの時点に対応する、値τ
test_1、τ
test_2、...τ
test_nを含んでもよい。
【0088】
実施形態では、残留データは、作動予測データと作動試験データとの間の誤差の程度を示し得る。こうした実施形態では、計算システム1100は、作動予測データと作動試験データとの間の差を決定することによって、残留データを決定し得る。作動予測データが複数のトルク予測値を含んでおり、作動試験データも複数のトルク値を含む場合、計算システム1100は、作動試験データの複数のトルク値から複数のトルク予測値を減算することによって(またはその逆)、残留データを決定し得る。例えば、
図13Aは、残留データが、作動試験データのトルク予測値とトルク値との間の誤差を示し得る、残留データ値e
1、e
2、e
3、...e
nを含む、例を示している。この実施例では、計算システム1100は、例えば、作動試験データのトルク値τ
test_1、τ
test_2、...τ
test_nを、作動予測データのトルク予測値τ
predict_1、τ
predict_2、...τ
predict_nによって、減算することによって、残留データ値e
1、e
2、e
3、...e
nを決定し得る。
【0089】
図4に戻ると、方法4000は、一実施形態では、計算システム1100が、残留データ値、例えば、
図13Aの値e
1、e
2、e
3、...e
nを記述する誤差パラメーターに対する値を決定するステップ4010を含む。実例によっては、誤差パラメーターは、ロボットキャリブレーションのために生成されるセンサーデータの品質を示し得る。一部の実例では、誤差パラメーターは、例えば、(i)全トルクまたは全体の力と、(ii)摩擦またはCoMとの間の関係を記述する、モデルの品質、正確性、または信頼性を示し得る。一部の実例では、誤差パラメーターは、モデルを使用して決定される、推定値(例えば、摩擦パラメーター推定値、CoM推定値、および/または慣性モーメントの推定値)の正確性または信頼性を示し得る。言い換えれば、誤差パラメーターは、モデル、センサーデータ、および/またはパラメーター推定値における信頼度(または信頼度の欠如)を示し得る。
【0090】
実施形態では、モデルは、ステップ4004で摩擦パラメーター推定値および/またはCoM推定値を求めるため、および/またはステップ4006で作動予測データを計算するために、計算システム1100によって使用されてきたかもしれない。モデルは、例えば、(i)ジョイント(例えば、32144)またはアームセグメント(例えば、32125)での全トルクまたは全体の力と、(ii)ジョイントによって接続されるアームセグメント(例えば、32125、32124)間の摩擦、またはアームセグメント(例えば、32125)のうちの一つのCoMとの間の関係を記述し得る。モデルは、式2、3、4、5、または6のうちの一つなど、式を含んでもよく、または式によって表され得る。式は、例えば、アームセグメント間の粘性摩擦の係数bおよび静止摩擦s、アームセグメントのうちの一つのCoM、アームセグメントのうちの一つの慣性モーメントIなどのパラメーターの関数として、および回転位置値、回転速度値、および/または回転加速度値などの動作データ値の関数として、全体の力または全トルクを定義し得る。一部のシナリオでは、モデルの式は、アクチュエーターからの摩擦、重力、または力もしくはトルクが、ジョイントまたはアームセグメントにおける全体の力またはトルクにどのように影響するかの簡略化された近似を提供し得る。モデルは、全体の力またはトルクと、摩擦、CoM、およびアクチュエーターによって出力されるトルクまたは力のなどのパラメーターとの間の関係の近似のみを提供し得るため、このモデルに基づく作動予測データは、作動試験データに完全には合致しない場合がある。誤差パラメーターは、作動試験データと作動予測データとの間にどの程度の偏差があるかを記述し得るため、誤差パラメーターは、作動予測データを生成するために使用されるモデル、すなわち、より具体的には、モデルの中の式(複数可)の正確性のレベルを示してもよく、モデルが充分に正確であるか、またはモデルが単純すぎるかを示し得る。一部の実例では、誤差パラメーターは、摩擦パラメーター推定値およびCoM推定値など、式への入力である推定値の正確性のレベルをさらに示し得る。
【0091】
上述のように、誤差パラメーターは、一実施形態では、ステップ4004で摩擦、CoM、および/または慣性モーメントを推定するために使用されたセンサーデータ、またはより一般的には、ロボットキャリブレーションを実施するために使用されるセンサーデータの品質を示し得る。例えば、センサーデータは、ロボット3200のアームセグメント32125など、ロボットの一つまたは複数のアームセグメントの動作を測定し得る。一部の実例では、アームセグメント(例えば、32125)、またはロボットのその他の部分は、ロボットが、その動きを予想外に妨げるか、または変更し得る、別の物体にぶつかるまたは衝突するなどの事象を経験し得る。こうした衝突は、滑らかな動作ではなく、加速度の急激な変化を特徴とする動作を含む、ロボットの一つまたは複数のアームセグメントの不均等な動作をもたらし得る。不均等な動きは、ロボットキャリブレーションに対して特に信頼性がなく、従って品質が低い、作動データおよび動作データを含む、センサーデータを生成し得る。
【0092】
実施形態では、センサーデータの品質は、ステップ4010の残留データ値に周波数コンテンツを通して反映され得る。より具体的には、本実施形態の誤差パラメーターは、残留データ値における周波数コンテンツを記述してもよく、または示すことができる。一部の実例では、低周波数コンテンツの存在は、ロボット(例えば、3200)が別の物体との衝突を経験したときに生成されるセンサーデータなど、低品質または信頼性の低い品質を有するセンサーデータを示してもよく、またはそれと一致し得る。より具体的には、残留データ値における高周波数コンテンツの存在は、例えば、ランダムに変動し、ランダムな量の変化をセンサーによって生成される動作データまたは作動データに導入し得る電気ノイズなどのバックグラウンドノイズと関連付けられてもよく、またはそれと一致し得る。一部のシナリオでは、バックグラウンドノイズは、ロボットが別の物体と衝突するなどの事象と比較して、比較的小さな誤差源であり得る。一部の状況では、衝突などの事象はまた、動作データまたは作動データに変化をもたらし得るが、その変化の頻度は、バックグラウンドノイズの頻度と比較して低くあり得る。従って、残留データ値における低周波数コンテンツの存在は、ロボットキャリブレーションに使用される動作データ、作動データ、またはその他のセンサーデータの品質を低下させ得る、ロボットと別の物体との間の衝突などの事象とより一致し得る。
【0093】
実施形態では、計算システム1100は、残留データ値の群に対して平均化関数を実行し得る。平均化関数は、残留データ値のグループに対して周波数フィルターリングを行う効果を有し得る。例えば、平均化関数は、高周波数コンテンツよりも重く、低周波数コンテンツを重み付けする結果(またはその逆)を生成し得る。一部の実例では、平均化関数の結果は、より低周波数コンテンツがある場合、より高い値を有し得る。従って、平均化関数の結果は、残留データ値の群における周波数コンテンツを示し得る。いくつかの実施では、残留データ値の群は、時間窓に対応する残留データ値とし得る。例えば、計算システム1100は、複数のそれぞれの時間窓に対する複数の平均残留データ値を決定し得る。実施例として、
図13Bは、作動試験データ、動作試験データ、または他のセンサーデータがロボットキャリブレーション用に生成されるときの期間においての時間窓(時間スロットとも呼ぶ)である、複数の時間窓13001、13002、13003、13004を示す。これらの時間窓(例えば、5ミリ秒、10ミリ秒、または100ミリ秒の時間窓)は、残留データ値の異なるそれぞれのサブセットに対応し得る。この実施例では、時間窓13001は、t
a からt
a+4の時間範囲をカバーしてもよく、残留データ値e
1~e
5の第一のサブセットに対応し得る。時間窓13002は、t
a+1からt
a+5までの時間範囲をカバーしてもよく、残留データ値e
2~e
6の第二のサブセットに対応し得る。別の実施例として、時間窓13003は、t
a+2からt
a+6の時間範囲をカバーしてもよく、残留データ値e
3~e
7の第三のサブセットに対応し得る。
【0094】
実施形態では、時間窓(例えば、13001-13004)は、スライド時間窓であり得る。より具体的には、それらは、重複時間期間または時間範囲を表してもよく、定義されたスライド時間増分(例えば、1ミリ秒、5ミリ秒など)によって間隔を置いたそれぞれの開始時間を有する。
図13Bの実施例において、時間窓13001~13004のそれぞれの開始時間は、t
a+1からt
aを引いたのと等しい、定義されたスライド時間増分(例えば、あらかじめ定義された増分)によって離間し得る。
図13Bは、各々が5つの残留データ値を有する時間窓を示し、他の実施例は、より多くの残留データ値(例えば、20個の残留データ値、100個の残留データ値)、またはより少ない残留データ値を含む時間窓を有し得る。
【0095】
実施形態では、計算システム1100は、複数のそれぞれの時間窓に対する複数の平均残留データ値を決定することによって、平均化関数を実行し得る。例えば、
図13Bにおいて、複数の平均残留データ値(残留データ値の配列とも呼ぶ)は、a
swe_1、a
swe_2、a
swe_3、a
swe_4、...であり得る。平均残留データ値の各々は、対応するスライド時間窓内の残留データ値の平均であり得る。例えば、平均残留データ値a
swe_1は、時間窓13001における残留データ値e
1、e
2、e
3、e
4、およびe
5の平均であり得る。別の実施例として、平均残留データ値a
swe_2は、時間窓13002における残留データ値e
2、e
3、e
4、e
5、およびe
6の平均であり得る。上述のように、複数の平均残留データ値は、対応する時間窓によって含有される残留データ値内の周波数コンテンツによって影響され得る。従って、複数の平均残留データ値は、それぞれの時間窓に属する残留データ値のそれぞれのグループ内の周波数コンテンツを示し得る。また上述したように、残留データ値中の低周波数コンテンツは、センサーデータが信頼できないか、または低品質であることを示してもよく、またはそれと一致し得る。従って、計算システム1100は、ロボットキャリブレーションに関与するセンサーデータが、平均残留データ値に基づいて十分な品質を有するかを判定し得る。
【0096】
実施形態では、計算システム1100は、複数の平均残留データ値に基づいて、誤差パラメーターの値を決定し得る。実施例として、計算システム1100は、誤差パラメーターの値を、aswe_1、aswe_2、aswe_3、aswe_4、....などの複数の平均残留データ値の最大値またはMasweと等しいか、またはそれに基づいて判定し得る。上述のように、この実施例における誤差パラメーターの値、例えばMasweは、ロボットキャリブレーションのために生成されたセンサーデータの品質または信頼性を示し得る、残留データ値中の低周波数コンテンツまたは高周波数コンテンツの量を示し得る。一部の実例では、Masweなどの誤差パラメーターに対する比較的低い値は、残留データ値がほぼゼロであり、センサーデータの品質が比較的高いことを示し得る一方、誤差パラメーターに対する比較的高い値は、センサーデータの品質が比較的低いことを示し得る。
【0097】
実施形態では、計算システム1100は、誤差パラメーターの値が、定義された誤差閾値(例えば、あらかじめ定義された誤差閾値)を超えるか、または定義された信頼閾値(例えば、あらかじめ定義された信頼閾値)を下回るかを判定し得る。実例によっては、信頼閾値は、例えば、誤差閾値の逆であり得る。誤差パラメーターの値が、定義された誤差閾値を超えるか、または定義された信頼閾値を下回る場合、計算システム1100は、誤差パラメーターの値が、誤差閾値を超えるか、または信頼閾値を下回るという表示を出力し得る。いくつかの実施では、表示は、通信インターフェース1130を介して出力される信号であってもよく、信号は別の計算システムによって受信され得る。実施形態によっては、表示は、計算システム1100の表示装置(存在する場合)上に出力されるテキストまたはグラフィカルメッセージであり得る。一部の実例では、計算システム1100は、誤差パラメーターの値を非一時的コンピューター可読媒体1120に記憶し得る。
【0098】
実施形態では、定義された誤差閾値は、例えば、計算システム1100が受信し、非一時的コンピューター可読媒体1120に記憶する、手動で定義された値であり得る。実施形態では、定義された誤差閾値は、計算システム1100が動的に定義したか、または他の方法で決定した値であり得る。例えば、計算システム1100は、定義されたトルク値(例えば、公称トルク値)、特定のロボットに関連付けられる定義された速度乗数(例えば、あらかじめ定義された速度乗数)、および特定のロボット(例えば、3200)と関連付けられ得る実験的に決定されたパーセンテージ値に基づいて、誤差閾値を決定し得る。従って、異なるロボットは、この実施例では異なる誤差閾値と関連付けられ得る。
【0099】
実施形態では、誤差パラメーターの値が、定義された誤差閾値を超えるか、または定義された信頼閾値よりも小さい場合、こうした表示は、ロボットキャリブレーションを再実行するかどうか、ロボットキャリブレーションを実施するために使用されるモデルを変更するかどうか、および/またはロボット(例えば、3200)もしくはロボットアーム(例えば、3210)に対する運動計画の方法を変更するかどうかを決定するため、計算システム1100によって、別の計算システムによって、および/またはユーザーによって使用され得る。例えば、ロボットキャリブレーションは、新しいセンサーデータを取得し、摩擦パラメーターおよび/またはCoM推定値に対する新しい推定値を生成する試みで再実行され得る。計算システム1100は次に、方法4000のステップを繰り返して、新しいセンサーデータまたは新しい推定値が、誤差パラメーターに対してより良好な値をもたらすかどうかを決定することができる。
【0100】
さまざまな実施形態に関する追加の考察:
【0101】
実施形態1は、計算システム、計算システムによって実施される方法、または方法を実施させるための命令を有する非一時的コンピューター可読媒体に関する。実施形態では、計算システムは非一時的コンピューター可読媒体、および少なくとも一つの処理回路を含む。少なくとも一つの処理回路は、非一時的コンピューター可読媒体が、(i)ロボットアームのジョイントを介して発生している、または発生したロボットアームの一対のすぐ隣接するアームセグメントの間の相対動作の量または速度を示す動作データセットと、(ii)相対動作が発生している、または発生した期間におけるジョイントでの全トルクまたは全体の力を示す作動データセットとを含むセンサーデータを保存しているとき、さまざまな動作を実行するように構成される。さまざまな動作には、(i)訓練データとして、動作データセットの第一のサブセットである動作訓練データ、および、作動データセットの第一のサブセットである、対応する作動訓練データを選択することと、(ii)試験データとして、動作データセットの第二のサブセットである動作試験データ、および、作動データセットの第二のサブセットである、対応する作動試験データを選択することと、によって、センサーデータを訓練データおよび試験データに分割することが含まれ得る。さまざまな動作はさらに、動作訓練データおよび作動訓練データに基づいて、(i)一対のすぐ隣接するアームセグメントの間の摩擦に関連付けられる摩擦パラメーター推定値、または(ii)一対のすぐ隣接するアームセグメントの一つに関連付けられる重心(CoM)推定値のうちの少なくとも一つを決定することを含み得る。さまざまな動作は、動作試験データに基づいて、および(i)摩擦パラメーター推定値または(ii)CoM推定値のうちの少なくとも一つに基づいて、作動予測データを決定することであって、作動予測データは、異なる時点でのジョイントでの全トルクまたは全体の力を示す予測値であるように、決定することをさらに含み得る。さまざまな動作は、作動予測データと、異なる時点に対応する作動試験データとの間の偏差を記述する残留データ値を含む残留データを決定することと、残留データに基づき、残留データ値を記述する誤差パラメーターの値を決定することと、誤差パラメーターの値が、定義された誤差閾値を超えるかどうかを判定することと、誤差パラメーターの値が定義された誤差閾値を超えるかどうかの表示を出力することと、を含む。
【0102】
実施形態2は、実施形態1の計算システムを含み、誤差パラメーターは、残留データ値における周波数コンテンツを示す。
【0103】
実施形態3は、実施形態1または2の計算システムを含み、誤差パラメーターは、センサーデータの品質を示す。
【0104】
実施形態4は、実施形態1~3のいずれか一つの計算システムを含み、誤差パラメーターは、(i)全トルクまたは全体の力と、(ii)摩擦またはCoMとの間の関係を記述するモデルの正確性を示す。
【0105】
実施形態5は、実施形態1~4のいずれか一つの計算システムを含み、少なくとも一つの処理回路が、期間の複数のそれぞれの時間窓に対する複数の平均残留データ値を決定するように構成され、複数のそれぞれの時間窓が、残留データ値の異なるそれぞれのサブセットに対応する。本実施形態では、誤差パラメーターの値は、複数の平均残留データ値に基づいて決定される。
【0106】
実施形態6は、実施形態5の計算システムを含み、少なくとも一つの処理回路は、複数の平均残留データ値の最大値に基づいて、誤差パラメーターの値を決定するように構成される。
【0107】
実施形態7は、実施形態5または6の計算システムを含み、複数の時間窓が、定義されたスライド時間増分によって離間したそれぞれの開始時間を有する重複時間期間を表す。
【0108】
実施形態8は、実施形態1~7のいずれか一つの計算システムを含み、動作データセットが、異なる時点に対応する複数の動作データ値を含み、少なくとも一つの処理回路が、複数の動作データ値の各動作データ値に対して、動作データ値と等しいか、またはそれに基づくそれぞれの位置値を決定することであって、それぞれの位置値が、動作データ値に対応するそれぞれの時点で、一対のすぐ隣接するアームセグメントの第二のアームセグメントに対する、一対のすぐ隣接するアームセグメントの第一のアームセグメントの位置を記述することと、動作データ値と等しいか、またはそれに基づくそれぞれの速度値を決定することであって、それぞれの速度値が、それぞれの時点における第二のアームセグメントに対する第一のアームセグメントの速度を記述することと、それぞれの速度値とそれぞれの位置値との間のそれぞれの比に基づいて、動作データ値を訓練データとして、または試験データとして選択するかどうかを決定することと、を実行することによって、センサーデータを訓練データおよび試験データに分割するように構成される。
【0109】
実施形態9は、実施形態8の計算システムを含み、少なくとも一つの処理回路が、複数の動作データ値の各動作データ値に対して、動作データ値に関連付けられたそれぞれの速度値とそれぞれの位置値との間のそれぞれの比率が、(i)0から定義された正の比閾値まで延びる比の範囲内、または(ii)定義された負の比閾値未満のうちの少なくとも一つであるかどうかに基づいて、動作データ値を訓練データとして、または試験データとして選択するかを決定するように構成される。
【0110】
実施形態10は、実施形態8または9の計算システムを含み、少なくとも一つの処理回路が、複数の動作データ値の各動作データ値に対して、動作データ値に関連付けられたそれぞれの速度値とそれぞれの位置値との間のそれぞれの比率が、(i)0から定義された正の比閾値まで延びる比の範囲内、または(ii)定義された負の比閾値未満のうちの少なくとも一つであるかどうかに基づいて、動作データ値を訓練データとして、または試験データとして選択するかを決定するように構成される。
【0111】
実施形態11は、実施形態1~10のいずれか一つの計算システムを含み、摩擦パラメーター推定値が、粘性摩擦の係数の推定値であるか、またはクーロン摩擦の推定値である。
【0112】
実施形態12は、実施形態1~11のいずれか一つの計算システムを含み、作動データセットが、一対のすぐ隣接するアームセグメントの間に相対動作を引き起こすための、アクチュエーターを流れる電流を測定するとき、少なくとも一つの処理回路が、電流に基づいてジョイントでの全トルク、または全体の力を決定するように構成される。
【0113】
関連分野の当業者にとって、本明細書に記載する方法および用途への、他の好適な修正ならびに適応が、実施形態のうちのいずれの範囲から逸脱することなく成され得ることは明らかであろう。上に記載する実施形態は、説明に役立つ実施例であり、本発明がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示するさまざまな実施形態は、記載および添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為または事象は、異なるシーケンスで行われてもよく、追加、統合、または完全に省略し得ることも理解されるべきである(例えば、記載した全ての行為または事象は、方法またはプロセスを実施するのに必要ではない場合がある)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、またはユニットにより行われていると記載しているものの、本明細書に記載する特徴および機能は、構成要素、モジュール、またはユニットのいかなる組み合わせによって行われてもよいことは理解されるべきである。従って、添付の特許請求の範囲で定義されるような、発明の趣旨または範囲から逸脱することなく、さまざまな変更および修正を当業者が及ぼし得る。