(57)【要約】【課題】コンピュータ・アニメーション・データ・ファイルから得たアニメーション・データによって定義されたキャラクターの動き方をするロボットを提供する。【解決手段】ロボットは、歩行または他の動きをするキャラクターのアニメーション・データを得るロボット開発方法を用いて作り出される。キャラクターは人間に似たものとすることができ、この方法は、下位部が、アニメーション・データで定義されたアニメーション・キャラクターの下位部の運動学的構造と合致する運動学的構造を有する、二足ロボットを開発することを含む。ロボットの制御プログラムが、軌道最適化などを用いることによって生成される。この制御プログラムは、アニメーション・データによって提供されるキャラクターの歩行動作を模倣する開ループ歩行軌道を含む。この開ループ歩行軌道は、アニメーション・データによるキャラクターの動作を、ゼロ・モーメント・ポイント（ＺＭＰ）が接触凸閉包内にとどまるように修正することによって生成する。【選択図】図２
2016154845.tif 000002
【特許請求の範囲】
【請求項１】
アニメーション・キャラクターの動きを模倣するように適合されたロボットであって、
フローティング・ベース脚式ロボット・アセンブリを提供するように関節において相互連結された複数の構造セグメントと、
前記フローティング・ベース脚式ロボット・アセンブリの動きを提供するように前記構造セグメントにトルクを加えるための複数のアクチュエータであって、前記関節の１つに近接してそれぞれ提供された複数のアクチュエータと、
動作軌道に基づいて前記ロボットの動きを提供するように、前記アクチュエータに制御信号を提供するコントローラと
を備え、
前記動作軌道は、前記アニメーション・キャラクターのアニメーション・データから抽出され、かつ、前記構造要素および前記アクチュエータによって提供された運動学的構造に基づいて修正された、参照動作に基づく、ロボット。
【請求項２】
前記フローティング・ベース脚式ロボット・アセンブリは二足ロボットとして構成され、前記参照動作は前記アニメーション・キャラクターの歩行動作である、請求項１に記載のロボット。
【請求項３】
前記アクチュエータは、前記参照動作から得られたトルク要件を提供するように選択される、請求項１に記載のロボット。
【請求項４】
前記参照動作は、前記アニメーション・キャラクターの参照動作内で定義されるハードウェアの可動域に従いつつ、前記動作軌道を提供するように修正される、請求項１に記載のロボット。
【請求項５】
前記参照動作は、前記ロボットの前記構造要素の構成空間にマッピングされ、および、安定性を保持するように立脚足を路面上で平らに保つことによって、前記動作軌道を提供するように修正される、請求項１に記載のロボット。
【請求項６】
前記構造セグメントは、前記アニメーション・データのアニメーション・キャラクターに対して定義されたスケルトンの要素に対応する、請求項１に記載のロボット。
【請求項７】
前記構造要素の各々は、前記スケルトンの要素のうちの１つのサイズおよび形状に対応するサイズおよび形状を有する、請求項６に記載のロボット。
【請求項８】
前記構造要素のうちの少なくとも１つの形状またはサイズは、前記スケルトンの要素のうちの対応する要素の形状またはサイズと異なり、それによって前記ロボットは、前記参照動作内で定義されたアニメーション・キャラクターの可動域に対応する可動域を有する、請求項７に記載のロボット。
【請求項９】
ロボットの設計および制御基準を生成する方法であって、
データ・ストレージ・デバイスからキャラクターのアニメーション・データのセットを取り出すステップと、
コンピュータ・システム上のプロセッサにより、前記キャラクターのキャラクター・スケルトンを定義するデータをアニメーション・データの前記セットから抽出するステップと、
前記プロセッサにより、前記キャラクター・スケルトンを定義する抽出された前記データに基づいて運動学的構造を定義することを含み、アニメーション・データの前記セットに基づいて前記ロボットの可動域を定義することをさらに含む、前記ロボットの目標特性
のセットを設定する、目標特性設定ステップと、
前記運動学的構造および前記ロボットの前記可動域に対応する構造セグメントのセットを含む、前記ロボットの機構を設計する、機構設計ステップと
を備える、方法。
【請求項１０】
アニメーション・データの前記セットは、コンピュータ・アニメーション・ソフトウェア・スイートによる前記キャラクターのモデルと、前記キャラクターの前記モデルのアニメーション・ファイルとを備え、前記キャラクターの前記モデルは前記キャラクター・スケルトンを提供し、前記アニメーション・ファイルは前記ロボットの前記可動域を提供する、請求項９に記載の方法。
【請求項１１】
前記機構設計ステップは、前記キャラクター・スケルトンの１つの要素に基づいて、前記構造セグメントの各々の形状およびサイズを定義するステップを含む、請求項９に記載の方法。
【請求項１２】
前記機構設計ステップがさらに、前記ロボットの前記可動域に従うように、前記構造セグメントのうちの少なくとも１つの形状またはサイズを修正するステップを含む、請求項１１に記載の方法。
【請求項１３】
前記ロボットの参照動作を定義するアニメーション・データの前記セットからデータを抽出するステップをさらに備え、前記目標特性設定ステップは、前記参照動作を得るためのトルク要件を定義するステップを含み、前記方法はさらに、前記トルク要件に基づいて、前記構造要素を動かすためのアクチュエータを選択するステップを含む、請求項９に記載の方法。
【請求項１４】
前記ロボットの参照動作を定義するアニメーション・データの前記セットからデータを抽出するステップと、構造セグメントの前記セットに基づく前記参照動作を修正することに基づいて、前記ロボットの動作軌道を生成するステップとをさらに備え、それによって前記ロボットの前記可動域は、前記動作軌道を使用した前記ロボットの制御の間保持される、請求項９に記載の方法。
【請求項１５】
前記参照動作は、構造セグメントの前記セット中の立脚足を路面上に保つことによって、かつ、安定性を提供するようにサポート・ポリゴンの圧力中心（ＣｏＰ）またはゼロ・モーメント・ポイント（ＺＭＰ）において軌道最適化を適用することによって、前記動作軌道を生成するように修正される、請求項１４に記載の方法。
【請求項１６】
人型ロボットを生成および制御して、アニメーション・キャラクターの動作を模倣する動きを提供する方法であって、
アニメーション・キャラクターのアニメーション・データを処理して、前記アニメーション・キャラクターのキャラクター・スケルトンおよび参照動作を得るステップと、
前記キャラクター・スケルトンに基づいて、ロボットの運動学的構造を定義するステップと、
前記参照動作および前記キャラクター・スケルトンに基づいて、前記ロボットのトルク要件を定義するステップと、
複数のアクチュエータを前記トルク要件に基づいて定義して前記ロボットの前記運動学的構造を前記参照動作に基づいて動かすステップと
を備える、方法。
【請求項１７】
前記参照動作に基づいて動作軌道を生成するステップと、前記アクチュエータを制御して、前記動作軌道をたどるように前記運動学的構造を動作させるステップとをさらに備え
る、請求項１６に記載の方法。
【請求項１８】
前記運動学的構造を定義するステップは、関節において枢動可能に相互連結された構造セグメントのセットを定義するステップを含み、前記構造セグメントのうちの少なくとも１つは、前記可動域を提供するように、前記キャラクター・スケルトンの対応する要素とサイズが異なり、前記ロボットは前記動作軌道に従って動く、請求項１７に記載の方法。
【請求項１９】
前記参照動作は前記アニメーション・キャラクターの歩行軌道であり、前記動作軌道は、サポート・ポリゴンにおけるＺＭＰを維持しつつ、前記歩行軌道に対応する、請求項１７に記載の方法。
【請求項２０】
前記動作軌道は前記ロボットの歩行動作であり、前記歩行動作は、前記参照動作を前記運動学的構造にマッピングすることによって生成され、かつ、前記ＺＭＰ基準による安定性を提供するように、またはサポート・ポリゴンにおけるＣｏＰを保つように前記ロボットの立脚足を前記路面上で平らに保つよう前記参照動作を修正することによって生成される、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は一般に、脚式ロボット（たとえば、フローティング・ベース二足人型ロボット、または四足動物などの他の脚式ロボット）を含むロボットの設計および制御に関する。より詳細には、本明細書は、アニメーション・キャラクターの動きを模倣する、またはアニメーション・キャラクターの動きに比較的緊密に合致するように動くロボット、たとえばアニメーション・キャラクターまたは映画のキャラクターと同様に歩くように開発される二足歩行ロボットを開発し、さらに制御するための方法に関する。
【背景技術】
【０００２】
ロボット業界には、アニメーション・キャラクターを、そのキャラクターに特有ですぐにそれと分かる歩き方のような似た動きなどを示すことによって、現実世界で具現化するロボットを作り出すための技術者および科学者に対する大きな需要がある。このことは特に娯楽産業において当てはまる。その理由は、そのようなキャラクターものまねロボットは、人が以前に映画またはテレビ番組でしか見たことがないキャラクターと物理的に交流することを可能にするからである。これらのロボットに生命感を与えるには、まねられるキャラクターの外見を模倣するだけでなく、キャラクターの動き方を模倣することも重要である。
【０００３】
残念なことに、ロボットの動きおよび動き方をアニメーション映画またはテレビ番組のキャラクターなどのキャラクターに合致させる方法は単純ではなく、またこれまでの解決策は完全には効果的でなかった。キャラクターを模倣するロボットを設計および制御することでの課題の１つは、ほとんどのアニメーション・キャラクターが、現実世界での物理的な実行可能性を考慮して設計およびアニメーション化されておらず、またその動きが物理的に適正であることがまずないことである。
【０００４】
たとえば、形が人型であるキャラクターを模倣することが望ましい場合があり、設計者は、人体に基づいた外見を備えたロボットである二足の人型ロボットでそのキャラクターを模倣することがある。人型ロボットは、人間用に作られた、また人間と安全かつ効果的に相互作用するように適合されていることの多い、工具および機械などの様々な環境と相互作用を行うように設計されている。一般に、人型ロボットは、頭が付いた胴と、２本の腕と、ロボットが平面を歩いたり階段を上がったりなどができるよう何らかの形の足がそれぞれ付いた２本の脚とを有する（たとえば、これらの人型ロボットは、人間のように「二足動物」である）。人型ロボットは、関節によって相互連結される多くの剛性のリンクを用いて形成されることができ、ロボットを動かし姿勢をとらせるように各関節に力またはトルクを加えることによってこれらのリンクは、動かされまたは姿勢をとらされる。同様に、３本、４本またはそれ以上の脚を持つものなど、他の脚式ロボットもまた、力制御されたその脚の動作を利用して歩くことができる。
【０００５】
人間の環境と相互に作用するには、人型ロボットは、安全で従順な力制御関節の制御を必要とする。これに関連して、所望の動きおよび出力される力（接触力）を決定するように、またそれに応じて人型ロボットの動きおよび姿勢を効果的に制御するための関節トルクを出力するように、プログラムされるコントローラが各ロボットに設けられる。しかし、アニメーション・キャラクターの動き方を正確に模倣するのに、このようなコントローラを用いてこれらの人型ロボットを動作させることは、このやり方が人型ロボットとそのリンクおよび関節とに対して単純に物理的に適正ではない、または実行可能ではない場合があるので、困難なことが分かっている（たとえば、その物理的構成要素がキャラクター
の動きをすることが不可能な場合がある）。
【０００６】
アニメーション・キャラクターは、その外観もその動き（たとえば、動き方）もより現実的なものに進化した。コンピュータ・グラフィックス技法を使用して、３次元（３Ｄ）キャラクターを、その３Ｄアニメーション・キャラクターによる、より自然で物理的にそれらしい動きと共に設計および生成することができる。多くの動きの中でとりわけ、二足キャラクターに対する関心の故に、写実的で自然な二足歩行を生成することが多くの研究者によって広範に検討されてきた。アニメーション・キャラクターを二足ロボットに似せようとする手法の１つは、軌道最適化を用いて歩行動作を直接探究して、物理法則に従う所望の動きを見出すことであった。別の手法は、キャラクターが歩けるようにする歩行コントローラを物理学ベースのシミュレーションで開発することであった。最近、コンピュータ・グラフィックス界では、機械的なキャラクターをアニメーション化する技法を確立することが試みられ、所望の動きをする機械的なキャラクターを設計する計算フレームワークが何人かの研究者によって提案されている。しかし、今日まで、これらの手法のどれも、アニメーション・キャラクターの動きを着実に模倣する二足ロボットを実現していない。
【０００７】
その結果、生きているような二足歩行を現実世界で得たいという要望が、ロボット工学の分野で過去数十年間存続してきた。高齢者をその日常生活において助ける、または天災および人災を解消するなどの現実世界の問題を解決する目標に取り組むために、関節位置および関節トルクの現物に忠実な制御によって人型ロボットが開発されてきた。より小型である別の二足ロボットが、娯楽のため、および趣味愛好家のために、サーボ・モータを使用して開発されてきた。最近、サーボ・モータ、および３Ｄプリンタで得られたリンクを有する小型二足ロボットが、ロボット業界で注目を集め始めた。しかし、今日まで、これらの革新のどれも、多くのアニメーション・キャラクターまたは映画のキャラクターの歩行を含む動きを容易に模倣できるロボットを実現していない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、現実世界または物理的世界の制約に従うようには作り出されなかったキャラクターを含めて、多種多様なアニメーション・キャラクターと同様により正確に動くことができるロボットを開発／生成する（さらにその動作を制御する）方法が依然として必要とされている。好ましくは、その新規の方法は少なくとも、アニメーション・キャラクターのように歩く二足ロボットを開発するのに有用であり、より好ましくは、少なくともある程度はアニメーション・キャラクターのものと合致する物理的構成を有するように選ばれたロボットを、アニメーション・キャラクターの動き方を有するようにロボットを制御できるよう、設計、構築、および制御するのに有用である。また、いくつかの実施態様では、これらの新規の方法で開発されたロボットが、３Ｄ印刷できるリンク、およびサーボ・モータで作動できる関節などの、容易に入手できる構成要素を使用して構築されることは有用であろう。
【課題を解決するための手段】
【０００９】
本発明者らは、アニメーション・キャラクターを現実世界で生かすようにロボットを設計および制御するための方法の改善が必要であると認識した。例示的な実施態様として、アニメーション・キャラクターのように見える、また本明細書ではより重要な、アニメーション・キャラクターのように歩く二足ロボットが提示される。言い換えると、ロボットが、アニメーション・データ（すなわち、キャラクターを含むアニメーション映画もしくはその断片から得られたデータ、および／またはアニメーション映画／その断片と関連付けられたコンピュータ・グラフィックス（ＣＧ）ファイルから得られたデータ）によって定義されたキャラクターの動き方を表すように設計され、構築され、さらに制御される。
【００１０】
手短に述べると、ロボット開発または設計の方法は、歩行する（または、ロボットに模倣される他の動きをする）特定のキャラクターのアニメーション・データのセットを取り出すことから開始する。この例では、キャラクターは形が人型であり、この方法では、アニメーション・キャラクターの下位部に相当する胴アセンブリ、左脚アセンブリおよび右脚アセンブリを含む下位部を有する二足ロボットの開発を継続する。具体的には、ロボットの下位部は、アニメーション・データに定義された、またはそれから導出されたアニメーション・キャラクターの下位部の運動学的構造と合致する運動学的構造を有するように設計される。
【００１１】
次に、この合致する運動学的構造を有する下位部は、３Ｄ印刷されるリンクなどを用いて、また関節アクチュエータとしてサーボ・モータの形態により製作される。次に、軌道最適化または他の手法などを使用することによって、製作され組み立てられたロボット（またはその下位部）用の制御プログラムが生成される。この制御プログラムは、以前に取り出されたアニメーション・データにより実現されるキャラクターの歩行動作を模倣するように構成されている開ループ歩行軌道を含むことができる。
【００１２】
開ループ歩行軌道は、ゼロ・モーメント・ポイント（ＺＭＰ）が接触凸閉包内にとどまるようにキャラクターの動きをアニメーション・データにより修正することによって、生成される。次に、コントローラは制御プログラムを使用して、アニメーション・データによって実現される歩行をすることができるかどうか、またロボットがキャラクターの動きを正確に模倣するかどうかを試験または検証などするために、関節をサーボ・モータ（または他の関節アクチュエータ）の制御によって作動させることができる。本発明者らが実施した試験では、ロボット（その構造および制御構成要素）を開発するこの方法の結果として、緊密に模倣またはコピーされるアニメーション・キャラクターの動きに関して、これまでの技法と比べて著しい改善が示された。
【００１３】
より具体的に、アニメーション・キャラクターの動作を模倣するように適合されたロボットが本明細書で説明される。ロボットは、関節で相互連結された複数の構造セグメントを含み、またロボットの動きを提供するように構造セグメントにトルクを加えるための、関節の１つに近接してそれぞれ設けられた複数のアクチュエータも含む。さらに、ロボットは、動作軌道に基づいたロボットの動きを提供するように、アクチュエータに制御信号を与えるコントローラを含む。アニメーション・キャラクターの動きを模倣するために、動作軌道は、アニメーション・キャラクターのアニメーション・データから抽出され、次いで、構造要素およびアクチュエータによって提供される運動学的構造に基づいて修正された、参照動作に対応する。いくつかの実施態様では、ロボットは二足ロボットであり、参照動作はアニメーション・キャラクターの歩行動作である。
【００１４】
ロボットを実現するために、アクチュエータは、参照動作から得られたトルク要件を提供するように構成される。さらに、参照動作は、アニメーション・キャラクターの参照動作で定義される可動域に従いながら、動作軌道を提供するように修正される。ロボットの動作軌道を提供するように、参照動作は、ロボットの構造要素の配置空間にマッピングされ、また、参照動作は、立脚足を路面上で平らに保って安定性を保持することによって修正される。
【００１５】
ロボットのいくつかの実施形態では、構造セグメントは、アニメーション・データのアニメーション・キャラクターについて定義されたスケルトンの要素に対応する。このような実施形態では、構造要素のそれぞれが、スケルトンの要素のうちの１つのサイズおよび形状に対応するサイズおよび形状を有する。特に、構造要素のうちの少なくとも１つの形状またはサイズは、スケルトンの要素のうちの対応するものの形状またはサイズと異なる
ように修正されることができ、それによりロボットは、参照動作によって定義されたアニメーション・キャラクターの可動域に対応する可動域を有するようになる。この関連で、ロボットのリンク／セグメントの形状および／またはサイズは、より適切にアニメーション・キャラクターの動きを模倣するために、所望の可動域または動き方を提供するように修正される。
【図面の簡単な説明】
【００１６】
【図１Ａ】アニメーション・キャラクターを表示するユーザ・インターフェースを（スケルトンすなわちリギングの形で）示す図。
【図１Ｂ】アニメーション・キャラクターの下位部の動きを模倣するために開発されたロボットを示す図。
【図２】入力としてアニメーション・データを使用して、ロボット（たとえば、その機構）および動き制御プログラム（模倣される動きが歩行動作の場合、歩行軌道を与えるなどの制御信号のセット）を設計／開発するための方法（またはフレームワークのステップ）を示す図。
【図３Ａ】アニメーション・キャラクターの動きを模倣するための本明細書で教示の開発方法により設計、製作および組み立てられたロボットの前面図。
【図３Ｂ】アニメーション・キャラクターの動きを模倣するための本明細書で教示の開発方法により設計、製作および組み立てられたロボットの側面図。
【図３Ｃ】アニメーション・キャラクターの動きを模倣するための本明細書で教示の開発方法により設計、製作および組み立てられたロボットの前方斜視図。
【図４】図３Ａ〜図３Ｃのロボットの、図１Ａのアニメーション・キャラクターの参照動作を模倣するための最適化歩行軌道を示す図。
【図５Ａ】グラフィック・スクリーン・ショットのセットによりアニメーション動作（参照動作）を示す図。
【図５Ｂ】グラフィック・スクリーン・ショットのセットおよび動作しているロボットの画像によりロボットの目標動作を示す図。
【図５Ｃ】グラフィック・スクリーン・ショットのセットおよび動作しているロボットの画像によりロボットの最適化動作を示す図。
【図５Ｄ】動作しているロボットの画像により実際に得られたロボット動作を示す図。
【図６】本明細書のロボット開発システムの機能ブロック図。
【発明を実施するための形態】
【００１７】
手短に言えば、本開示は、アニメーション・キャラクターの動きを模倣するのに特によく適合されているロボットを設計、開発および製作するための方法を対象とする。本明細書に教示の方法はまた、製作されたロボットがアニメーション・キャラクターの動きに緊密に合致する、またはそれをコピーする動き方で動くようにするための制御プログラムまたは命令を生成することを含む。さらに、本明細書は、これらの方法により構築され、アニメーション・キャラクターの動きと類似の動きを実行するように構成されるロボットを教示している。これの方法は、ほぼすべてのアニメーション・データ（たとえば、アニメーション・キャラクターの運動学的構造、およびこのようなキャラクターの動きを定義するデータ）と共に使用され、アニメーション・キャラクターの形を現実世界または物理的世界で表すようにロボットに多種多様な形を提供することができる。二足ロボットが以下の記述で、二足人型キャラクターを模倣するための非限定的な一例として説明されるが、本明細書で教示の概念は、他のロボット構成に容易に拡張される。
【００１８】
以下の記述では、アニメーション・キャラクターにならって設計されるロボットを開発するための方法について説明し、この記述ではまた、ロボットをさらに、本明細書で論じられた技法により生成されたキャラクターのような歩行動作を用いて制御または操作でき
ることについて論じた。図１Ａは、アニメーション業界で使用されるＭＡＹＡまたは他のソフトウェア・プログラムもしくはソフトウェア・スイートであり得るコンピュータ・アニメーション（またはコンピュータ・グラフィックス）ソフトウェアによって提供される、グラフィカル・ユーザ・インターフェース（ＧＵＩ）１１２のスクリーン・ショット１１０を示す。ＧＵＩ１１２には、本発明者らによって作り出されたロボット開発方法を使用してロボットを生成または開発するための基礎または入力として使用されるアニメーション・キャラクター１２０が示されている。
【００１９】
より詳細には、コンピュータ・アニメーションはスケルトン・アニメーションを含むことができ、これは、キャラクター１２０を２つの部分、すなわち、キャラクターを描くために使用される表面表現（たとえば、スキン、メッシュなど）と、キャラクターのスキンまたはメッシュに動きを与えるために使用される（たとえば、姿勢、キーフレームなど）相互連結された骨（スケルトンまたはリグと呼ばれる）の階層セットとで表すためのコンピュータ・アニメーションの技法である。スケルトン・アニメーションは、ある期間キャラクターに動きを与えるための標準的な方法であり、キャラクターのスケルトン（骨／リンクおよびその関節）のアニメーションまたは動きは、その期間にわたる動きを定義するためのインバース・キネマティック・アニメーション、フォワード キネマティック・ア
ニメーション、または他の技法を使用して完成される。このようにして、アニメーション・キャラクターの特定のスケルトンの動き方または動きはアニメ制作者によって定義されることができ、またアニメーション・データによって、リンクおよび関節の配置（スケルトン１２０による）だけでなく、その動作学または動きの定義も提供される。
【００２０】
図１Ｂに示されるように、次にロボット１５０を、アニメーション・キャラクター１２０ならびにその動き方および動きを定義するためのコンピュータ・アニメーション・ソフトウェアによって生成されたアニメーション・データを使用して開発することができる。図１Ｂには、ロボット１５０が、アニメーション・キャラクター１２０の動作、たとえば歩行を模倣するように制御または操作される二足ロボットの下位部を含むように示されている。ロボット１５０の様々な構成要素については、以下でより詳細に説明する。ロボット１５０の運動学的構造は、アニメーション・キャラクター１２０（またはそのスケルトン設計）に基づいて設計され、キャラクターのスキン、メッシュ、またはスーツ（図１Ａに示されていない）で覆われるには十分に小型である。
【００２１】
実際には、ロボット１５０のリンクは３Ｄ印刷され（または別の方法で製作する）、また関節はサーボ・モータなどで駆動される。キャラクターのような歩行動作では、たとえば軌道最適化を使用することにより、開ループ歩行軌道とすることができる（また実験では本発明者らにより、開ループ歩行軌道であった）。ロボット１５０のために生成される歩行軌道の１つの目的は、安定性を保ちながらアニメーション・キャラクター１２０の歩行に似るようにする（模倣する）ことである。これは、場合によっては、ゼロ・モーメント・ポイント（ＺＭＰ）基準がロボット１５０によって歩行中に確実に満たされるようにすることで実現することができる。
【００２２】
次に、最適化歩行はハードウェアにおいて試験される。例えば、ロボット１５０の実施形態においては、制御プログラムまたは歩行軌道を使用するロボット１５０が安定した歩行（この歩行は、多くの場合アニメーション・キャラクター１２０の、それが歩行するように動きを与えられたときの歩行に緊密に合致することができる）を生成または提供されるかを検証することである。以下の記述ではまた、（たとえば）ハードウェア歩行を最適化速度に制限する可能性があるシミュレーションとハードウェア歩行との間の差異をハードウェア実験によって特定できることについても説明する。これを念頭において、以下の記述はまた、アニメーション・キャラクターを模倣するための改良されたロボットを製造するために、この差異または問題をどのように解決できるか、または少なくとも対処でき
るかについてのいくらかの教示も含む。
【００２３】
以下では、アニメーション・キャラクターおよびその動きを模倣するようにロボットのハードウェアを開発するための、またロボットの歩行軌道（制御プログラム／信号）を生成するためのフレームワークを提供する。これに関連して１つの主要な課題は、元のアニメーション（たとえば、アニメーション・キャラクター１５０を提供するために使用されるアニメーション・データ）およびその動きは一般に、物理的制約を考慮して設計されていないことである。たとえば、本発明者らは、それぞれが３自由度（ＤＯＦ）を有する、３つの関節から構成された足首〜足部分があるアニメーション・キャラクター（すなわち、キャラクター１５０）を対象にすることによって、その方法を検査した。しかし、９つのアクチュエータを、開発されるロボット１５０のような物理的ロボットの小さな足の中に組み込むことは、アニメーション・キャラクターの足首〜足部分に基づくことができるとはいえ、アニメーション・キャラクター１２０の足首〜足部分の動きをなおシミュレーションできるもっと実際的な実装を提供するために異なり得る。さらに、アニメーションの（または、アニメーション・ソフトウェアから提供されるロボット１５０のアニメーション・データの）歩行動作は、アーティストまたはアニメ制作者によって巧妙に作られたキーフレームを用いて生成されるが、これらの歩行動作は、ロボット１５０などのロボットでは物理的に実現可能でないことが多い。言い換えると、アニメーション・データの歩行動作を実際のロボットで単に再生すると、ロボットはそのバランスを失い転倒することになり得る。
【００２４】
手短に言えば、本開示は、人間動作追跡コントローラ、ならびにロボットを制御するために使用される制御方法、およびロボットのバランスの取れた動きを制御するそのようなコントローラを有するロボットを対象とする。このコントローラ（または追跡コントローラ）は、自立人型ロボットが、人間動作キャプチャ・データ（キーフレーム・アニメーションおよび他の人間動作データ・ソースを含むことができる）によって定義された動作などの所与の動作または入力された動作を追跡できるように適合される。
【００２５】
追跡コントローラを設計する上で克服または対処された１つの困難は、所与の／入力された動作は、特定のロボットまたは特定の環境もしくは時点には実現可能ではない場合があること、および、本明細書に記載のコントローラ設計なしでは、ロボットが単純なフィードバック・コントローラを用いてただ単にその動作を完全に追跡しようとした場合に、ロボットが転倒する可能性があることであった。たとえば、キャプチャされた人間動作は、人間のキャプチャ・データを提供する人間の被験者／モデルに対しては実現可能である一方で、同じ動作がロボットに対しては、力またはトルク駆動関節を含む構成要素が特定の設計および配置である特定のフローティング・ベース人型ロボットの動作学および動力学の違いにより、実現可能ではないことがあり得る。また、キーフレーム・アニメーションは通常、ロボットの動力学を考慮しないで作り出され、したがって、それをコントローラへの人間動作キャプチャ・データ入力として使用することは、いくつかの動作が特定の物理的ロボットでは単純に実行不可能であるので、これまでのコントローラでは課題となっていた。
【００２６】
以下の記述では、人型ロボットで使用するための追跡コントローラについて教示しており、その追跡コントローラは、制御されるロボットのバランスを維持しつつ動作キャプチャ・データを追跡することができる。このコントローラは２つの主構成要素、すなわち、（１）たとえば標準的な比例微分（ＰＤ）コントローラを使用して所望の加速度を各自由度（ＤＯＦ）で計算する構成要素と、（２）第１の構成要素による所望の加速度を実現するための最適関節トルクおよび接触力を、ロボットの全身力学および接触力の限度、ならびに接触リンク動作に対する制約を考慮して計算する構成要素とを含む。関節トルクが６ＤＯＦのロボットのルートには寄与しないという事実を利用することによって、追跡コン
トローラは最適化を、リアルタイムに解決することができる２つのより簡単な下位問題に分離するように設計されてきた（たとえば、ロボットの各関節の各駆動部にトルク値を送出するコントローラを有するロボットのリアルタイム制御のために）。
【００２７】
ロボットを制御しつつ安定性を向上させる１つの取り得る技法は、複数の追跡コントローラを同時に動作させ、次にコントローラの１つを選択して最終制御入力を決定することである。所与の参照動作（追跡コントローラに入力される動作キャプチャ・データによって定義される）を追跡しようとするコントローラに加えて、追跡コントローラ（またはコントローラ・アセンブリ）は、参照としての固定静止平衡姿勢で動作する別のコントローラのインスタンスを含むことができる。次に、追跡コントローラ・アセンブリは、ロボットがそのバランスを失いそうにどれだけなっているかに応じて、ロボットへの実際の入力を選ぶことができる。言い換えると、固定参照を用いたコントローラは、ロボットがバランスをまさに失おうとしていると判定されたときに、静止平衡姿勢でロボットを安全に停止させる（たとえば、ロボットが転倒する、またはバランスを失うことになる動作を実行もしくは追跡しないように制御される）ように使用される（または制御を引き継ぐように作動する）。
【００２８】
図２は、アニメーション・データによって定義されたアニメーション・キャラクターの動きを模倣するための制御プログラムを生成することを含めてアニメーション・データから物理的ロボットを開発する方法２００を示す。方法２００は２１０で、物理的ロボットを開発するための入力としてアニメーション・データのセットを受け取ることから開始し、このステップは、コンピュータ・アニメーション・ソフトウェアも動作させているコンピュータ／コンピューティング・デバイス上のプロセッサによって、または同一もしくは別のコンピュータ／コンピューティング・デバイス上の別のプロセッサによって実行される。これらのプロセッサのそれぞれが、コードまたはソフトウェア・プログラム命令を実行して方法２００の機能／ステップを実施する。さらに、プロセッサは、アニメーション・データ、抽出されたパラメータおよび定義、ならびに方法２００の実施中に生成された他のデータを記憶するメモリにアクセスすることができる。
【００２９】
ステップ２１０で、方法２００は、アニメーション・データを抽出および分析して、物理的ロボット（たとえば、アニメーション・キャラクターのスケルトン）を作り出すのに有効な、また作り出された物理的ロボットを用いて模倣動作（たとえば、アニメーション・データで定義された参照動作）を生成するのに有効な情報を得ることを含む。抽出されたデータ２１５は、物理的ロボットの目標特性を設定することを含む次のステップまたは機能２２０に伝達される。一実施形態では、アニメーション・データは、ＭＡＹＡなどのコンピュータ・アニメーション・プログラムによって提供される。
【００３０】
ステップ２１０での分析の出力２１５に基づいて、目標特性は、ロボットの運動学的構造（たとえば、ロボットのリンク（サイズ、形状など）、リンク間の関節、関節のアクチュエータなど）、その運動学的構造の構成要素の可動域（ＲＯＭ）、ならびに運動学的構造の各関節のトルク要件を含め、ステップ２２０で設定される。ステップ２２０（およびステップ２４０、２５０、２７０などの他のステップ）の処理および最適化には、ＭＡＴＬＡＢ  Ｓｉｍｕｌｉｎｋ／ＳｉｍＭｅｃｈａｎｉｃｓ（Ｒ２０１３ａ）または他の、ロボット工学設計を支援する現在入手可能な、または将来入手可能になるであろうソフトウェア製品の使用を伴う。
【００３１】
図示のように、ステップ２２０は、後の設計／開発ステップで使用するための出力（目標特性）２３０のセットを提供する。特に、キャラクター・スケルトン２１５に基づいて製造される運動学的構造の各関節に対するトルク要件２３２が、目標特性（たとえば、関節に対するトルク要件２３２）を実現できるアクチュエータのようなメカトロニクス構成
要素を選択するように機能するステップ／プロセス２４０に提供される。さらに、出力２３０は、ロボットの運動学的構造とその構造またはその構成要素のＲＯＭも含むことができ、２３４で示されるように、方法ステップ／機能２５０に提供される。
【００３２】
ステップ２５０は、セグメント／リンクおよびリンク間の関節を含むロボット機構を、運動学的構造（たとえば、キャラクターのスケルトンの骨に合致または対応するためのリンク）と、この構造のＲＯＭとに基づいて設計することを含む（たとえば関節は、止め部を設けるように、または別様に、参照動作２１５におけるキャラクター・スケルトンおよび／またはそのアニメーションによって定義できるアニメーション・キャラクターの様々なＲＯＭを実現するように、構成される）。ステップ２５０への別の入力として、ステップ２４０の出力／結果２４５は、アクチュエータ、コントローラ、および他の選択されたメカトロニクス構成要素を含めて提供される。ステップ２５０の出力２５５は、設計されたロボット機構のコンピュータ支援設計（ＣＡＤ）モデルなどのデジタル・モデルであってもよく、この出力２５５は、ロボットを構築／製作するステップ２６０（たとえば、３Ｄ部品を印刷してリンク／セグメントを提供する、アクチュエータ、コントローラを得る、またハードウェアを取り付ける／組み立てるなどの後、これらの構成要素を組み立てる）の入力として使用される。ステップ２６０の出力２６５は、図１Ｂのロボット１５０など、製作されたロボットである。
【００３３】
加えて、目標特性設定／選択ステップ２２０の出力２３０は、ロボット動作軌道（たとえば、この例では歩行軌道）を生成することを含むステップ２７０への入力として提供される目標動作軌道２３８を含むこともできる。ロボット（ステップ２６０で製作／組立て）のこの軌道（たとえば、開ループ歩行軌道）を生成するために、ステップ２１０でアニメーション・データから得られたアニメーション歩行動作２１５は、ステップ２２０で修正されて、ロボット２６５に適している目標動作軌道２３８が提供される。具体的には、ステップ２２０は、動作をロボットの配置空間にマッピングすることを含む。次に、動作は、立脚足を路面上で平らに保つように修正され、その結果、二足歩行を提供するようにロボットを制御するのにロボット業界で広く使用されている従来のＺＭＰ基準を使用することによるような安定性が保証されることになる。
【００３４】
次に、ロボット歩行軌道２７０を生成するために、最小限の機構２５７がステップ／プロセス２５０により得られる。さらに、ステップ２７０では、歩行動作が、アニメーション・データによる参照動作２１５において定義または提供されるアニメーション・キャラクターの歩行様式（動き方）を保ちつつ、安定するように設計／選択されるべきということが想定されている。いくつかの実施形態では、ステップ２７０は軌道最適化の使用を伴う。特にこの最適化は、目標歩行動作からの偏差を最小にすると共にサポート・ポリゴンの圧力中心（ＣｏＰ）またはＺＭＰを保持する目的関数を用いて行われる。
【００３５】
ステップ２７０の生成物は動作軌道であり、これは、入力されたアニメーション・データから得られる参照動作２１５を模倣する動きのセットまたは動作を行うようにアクチュエータを制御するための、ロボット・ハードウェア上／内（または場合によって外部）に設けられたロボット・コントローラによって使用される。ステップ２８０で、ロボット・コントローラは、この最適化動作軌道２７５に基づいてロボットを制御して、関節軌道を追跡することによって最初に試験できる歩行（または他の）動作を行うように作動する。ステップ２８０はさらに、アニメーション・データによる参照動作２１５にさらに緊密に合致する動きを得るように動作軌道の調整を含むこともできる。
【００３６】
方法２００は、ロボット全体にもロボットの選択部分にも適用され得る。以下の議論では、二足人型ロボットとしてモデル化されるアニメーション・キャラクターの下部本体または下位部のロボット・ハードウェアを提供および操作することに関して、方法２００の
ステップ／プロセスを実行するための詳細が提示される。まず、データがアニメーション・データから抽出される。１つの特定の実施態様で、アニメーション・キャラクターのスケルトン構造が、コンピュータ・グラフィックス・プログラム／ソフトウェア製品（たとえば、ＭＡＹＡなど）のアニメーション・データ入力ファイルから抽出された。図１Ａのアニメーション・キャラクター１２０により示される特定の実施形態では、各脚が１５ＤＯＦを有し、腰には３ＤＯＦ、各膝には３ＤＯＦ、各足首には３ＤＯＦ、また各足には６ＤＯＦがあった。
【００３７】
以下の表１は、足、脛、および大腿部の高さ、ならびに骨盤の幅の抽出値を提示する。典型的な小型二足ロボットと比較すると、骨盤は、脚長（２０センチメートル＝８．１＋８．９＋３．０センチメートル）に対して広く（１８．８センチメートル）、このことが物理的ロボットによる歩行時の後期のバランスをより困難にする。
表１  目標および最終の動作学的構成（目標セグメント寸法はアニメーション・キャラクターからのもの、またＲＯＭ要件はシミュレーション分析からのものである）
【００３８】
【表１】
2016154845.tif 000003
キャラクター・スケルトンおよび参照動作がアニメーション・データから抽出されると、方法は、ロボットの目標特性およびその動作軌道を設定することに進むことができる。アニメーション・キャラクターのスケルトン・データは慣性特性を含まず、また物理的ロボット（またはロボット・ハードウェア）をアニメーション・キャラクターのアニメーション・データで定義された通りに厳密に構築することは一般に実際的ではない。たとえば、アニメーション・キャラクター（たとえば、図１Ａのキャラクター１２０）のスケルトンの足首〜足部分は９ＤＯＦを有することができるが、この９ＤＯＦを典型的なロボットの足（またはほとんどの物理的キャラクターの足）の体積に実装するのは困難である。これらの要因および設計課題を考慮して、この方法は、ロボット・ハードウェアを設計するためのいくつかの基準、すなわち、（１）実現可能なＤＯＦの数を設定する、（２）ロボットの寸法およびその構成要素をアニメーション・キャラクターのものと実際ほどに近く保つ、（３）可動域（ＲＯＭ）が参照動作（たとえば歩行）を実現するのに適しているこ
とを確実なものにする、ならびに（４）参照動作（たとえば歩行）のためのトルク能力を確保する、などの基準を使用して実装される。
【００３９】
例示的な実施態様では、開発方法／プロセスの目標は、元のアニメーション（またはアニメーション・データ）のアニメーション・キャラクターで見出される歩行動作を模倣できるロボットを生成することであった。これを念頭において、目標歩行動作の動力学がシミュレーションで調査され、このシミュレーション／実験の詳細が以下でより詳細に説明される。このシミュレーション分析によって、しかしながら、３ＤＯＦの股関節、１ＤＯＦの膝関節および２ＤＯＦの足首関節によって連結された大腿部、脛および足を含む典型的な小型の人型ロボットの脚構成により、歩行動作（特定の動き方で歩行するアニメーション・キャラクター１２０の参照動作を用いた試運転において定義される）を正確に模倣できることが検証された。さらに、このシミュレーション結果により、可動域の見積もり（表１参照）と、歩行動作のための各関節のトルク要件とが得られた。
【００４０】
アニメーション・データから抽出された情報に基づいて目標特性が選択／設定されると、ロボットのメカトロニクス構成要素の選択を進めることができる。たとえば、この選択には、関節アクチュエータのセットを、見積もられたトルク要件を満たすことができる入手可能な関節アクチュエータのセット／データベースから探索することによって選択することが含まれ得る。この探索は、場合により、サーボ・モータまたは、関節軌道を追跡することを含む制御および試験を容易にするのにサーボ・モータが有効である、他の所望のタイプのアクチュエータなどに限定される。特定の、しかし限定的ではない一例では、ダイナミクセル（Ｄｙｎａｍｉｘｅｌ）により販売／製造されているサーボが使用された。その理由は、これが広範に利用可能であり、関節位置コントローラ（これもロボットを構築するのに選ばれることがある）を有する人型ロボットに一般に使用されているからである。より詳細には、ＤｙｎａｍｉｘｅｌのＭＸ−１０６Ｔが腰および膝の関節のアクチュエータとして使用され、ＤｙｎａｍｉｘｅｌのＭＸ−６４Ｔがロボットの足首関節のアクチュエータとして使用された。ＭＸ−１０６ＴおよびＭＸ−６４Ｔで作用させることができる最大トルク（τ１０６，ｍａｘＮｍおよびτ６４，ｍａｘＮｍ）は、角速度（ω  ｒａｄ／ｓ）の場合、
【００４１】
【数１】
2016154845.tif 000004
式（１）
であり、これらは歩行動作最適化において制約条件として（以下で論じるように）設定される。
【００４２】
さらに、本発明者らが使用した特定の試験または試作品の実施態様では、ＯｐｅｎＣＭ９．０４マイクロコントローラ・ボードがＯｐｅｎＣＭ４５８ＥＸＰ拡張ボードと共に使用された。ロボット用のこのコントローラを用いて、関節位置命令がサーボに１０秒ごとにＴＴＬで送られた。試運転では電源が外部に用意されたが、本明細書に記載の技法で開発および構築される多くのロボットのコントローラおよび電源は、ボード上に用意されることが予想される。
【００４３】
目標特性がアニメーション・データから選択または生成されると、ロボット機構が設計または生成される。図１Ａのアニメーション・キャラクター１２０の例、およびその歩行動作を模倣したいという要望を継続して、ロボット１５０の運動学的構造（図１Ｂによるが、図３Ａ〜図３Ｃにさらに詳細に示されている）は、本明細書で教示の方法の１つの試験で設計された。ロボット１５０の運動学的構造は、アニメーション・キャラクター１２
０のスケルトンに見出されるのと同様の構成要素を有するように設計され、またアニメーション・キャラクターの寸法に近くなるようにも設計された。さらに、運動学的構造の要素はまた、アニメーション・キャラクター１２０の参照動作によって定義された動き方による歩行のＲＯＭを確保するようにも設計された。
【００４４】
図３Ａ〜図３Ｃは、ロボット１５０の運動学的構造の様々な要素（メカトロニクス構成要素）を示す。この例では、ロボットは以下のセグメント／リンク、すなわち骨盤３１０と、右および左の骨盤リンク３１４、３１５と、右および左の大腿部リンク３２０、３２１と、右および左の脛／向こう脛リンク３３０、３３１と、右および左の足リンク３４０、３４１とを含む。さらに、ロボット１５０は、以下のアクチュエータ（たとえば、サーボ・モータ）のセット、すなわち腰アクチュエータ３１２、３１３、３１６、および３１７と、膝アクチュエータ３２２、３２３と、足首アクチュエータ３３２、３３３とを含む。中間から遠位のアクチュエータの順序は、腰ヨー、腰ロール、腰ピッチ、膝ピッチ、足首ピッチ、そして膝回転となる。ロボット１５０の大腿部、脛、および足セグメントは、ＲＯＭを確保するためにアニメーション・キャラクターよりもわずかに長く、また骨盤幅は、表１と同様の比率を保つためにより広い。したがって、この方法には、まずセグメント／リンクをスケルトンおよびそのサイズに合致するように選択し、次に、必要であれば、ＲＯＭが物理的ロボットで確実に得られるようにサイズおよび／または構成を修正することが含まれる。
【００４５】
アニメーション・キャラクター１２０のように、腰関節の３つの回転軸および足首の２つの回転軸は、各関節で相互位置合わせされる。加えて、設計の方法には、腰、膝、および足首ピッチ関節を初期構成（たとえば、まっすぐに立つ構成）における矢状面において位置合わせしようとすることが含まれた。しかし、足首サーボ（たとえば、他のメカトロニクス構成要素）のサイズにより、足首ピッチ関節は、ロボット１５０の最終設計では図３Ｂに示されるように前方に配置された。さらに、この方法の設計ステップには、目標ＲＯＭを実現するために、膝サーボを初期構成において傾斜させることが含まれた（すなわち、目標ＲＯＭは、アニメーション・キャラクターのスケルトン構成を修正または再構成するために使用された（たとえば、このＲＯＭは、アニメーション・キャラクターの参照動作をより適切に模倣するために、優先適用され、またはより重視されることもできる））。
【００４６】
ロボットの設計が完了すると、ロボットの部品が製作され、または別法で取得および製作されて、ロボットが提供される。ロボット１５０の例について続けると、セグメント／リンクはすべて３Ｄ印刷され、次に、アルミニウム・フレームおよびアクチュエータを使用して組み立てられた（図３Ａ〜図３Ｃに示す）。１つの試作品ロボット１５０に関しては、３Ｄプリンタはストラタシス（Ｓｔｒａｔａｓｙｓ）から入手できるＯｂｊｅｃｔ２６０Ｃｏｎｎｅｘであり、この３Ｄプリンタは、セグメントを印刷するのにＲＧＤ５２５で使用された。フレームは、ロボティス（Ｒｏｂｏｔｉｓ）から入手可能なアルミニウム・ロボット・フレームであった。機構および電子回路は、以下の表２に要約されている。
【００４７】
【表２】
2016154845.tif 000005
これらのロボット開発および制御方法の態様が理解された後、（たとえば、図１Ａに示されるアニメーション・キャラクター１２０を模倣するために）アニメーション・データを使用してアニメーション・キャラクターの歩行動作を模倣する、安定した歩行動作を提供するこの方法の使用についてさらに説明することが有用であろう。まずデータが、キャラクター１２０のアニメーション・データから抽出される。ほとんどのアニメーションと同様に、従来のコンピュータ・アニメーション・ソフトウェアからアニメーション・ファイルとして与えられる元の歩行動作は、アーティストまたはアニメ制作者がアニメーション・ソフトウェア（たとえば、Ｍａｙａなど）と対話／アニメーション・ソフトウェアを使用するという手作業により作成される。
【００４８】
キャラクター１２０の実用例では、アニメーション・データにより、類似しているが同一ではない２つの非対称の歩容の形で参照動作が提供された。これらの歩容から、この方法には、４つの異なる単一立脚動作を生成（または設計）することが含まれた。アニメーション歩行動作では、一歩に１．１秒から１．２秒を要した。さらに、両脚支持相構成は完全な一歩の約１５パーセントであり、立脚期は踵接地姿勢から始まり、つま先が離れた姿勢で終わった。さらに、アニメーション・データにより、立脚中に足が約３０度回転することが確認された（アニメーション・キャラクターの参照動作のさらなる詳細については図５Ａに関し以下参照）。
【００４９】
ロボット開発方法の例示的な実施態様／試験では、本発明者らは、ロボットがアニメーション・キャラクター１２０およびその歩行動作を模倣するための１つの歩行動作（すなわち、方法に入力される参照動作）を生成することを目指した。この１つの歩行動作は、アニメーションと似るように設計されたが、必ずしも参照動作を再現しない。ロボット１５０はアニメーション・キャラクターと異なる運動学的構成を有するので、（関節軌道ではなく）セグメント／リンクの位置軌道がユークリッド空間
【００５０】
【数２】
2016154845.tif 000006
により抽出された。詳細には、これらの位置は、骨盤、腰、膝、足首、およびつま先の先端の中心から抽出され、その動きは、１秒当たり２４フレームの時間周波数により提供された。
【００５１】
目標特性を設定する次のステップでは、目標関節軌道が、ロボットの単一立脚動作
【００５２】
【数３】
2016154845.tif 000007
に対して、ユークリッド空間
【００５３】
【数４】
2016154845.tif 000008
内の元の動作に基づいて生成された。両脚支持相の目標動作は、それが比較的短く、また両足がその位置に留まり、動作に自由度があまりないので、生成されなかった。単一立脚動作では、アニメーション動作は、ロボットに適するように、（１）立脚足を路面上で平らに保つこと、および（２）ユークリッド空間内の動作をロボットの配置空間の中にマッピングすること、によって修正された。加えて、ロボット１５０の元の動作および可動域（ＲＯＭ）に基づいて、立脚足は３０度外を向くように設定され、一歩の長さおよび一歩の幅は、それぞれ１５センチメートルおよび１３センチメートルに設定された。
【００５４】
元の単一立脚動作
【００５５】
【数５】
2016154845.tif 000009
はまず、その位置
【００５６】
【数６】
2016154845.tif 000010
で立脚足を保持するようにユークリッド空間内で修正される。全時間のフレーム内の立脚は、立脚足をその位置に置くために直線的に平行移動される。遊脚は、立脚腰と遊脚腰の間の相対位置を維持しながら遊脚足の元の垂直の動きを保存するために、水平面内だけで平行移動され、垂直（または重力）軸に沿って適切に変倍される。遊脚の軌道はさらに、遊脚足が、以前および次の立脚足構成にそれぞれつながる位置において動き始め、動き終わるように修正される。
【００５７】
ユークリッド空間内のセグメントの目標軌道であるロボットの目標動作軌道
【００５８】
【数７】
2016154845.tif 000011
を生成するために、ロボットの配置空間の中に変換された。この方法は典型的な逆運動学（ＩＫ）とは、セグメントごとに目標位置があると共に（１つのエンド・エフェクタにだけ目標位置を持つのとは反対に）これらの目標がロボットには必ずしも達成可能とは限らないという点で異なる。このことは、試験実装において、セグメントをその目標位置につなぐ仮想ばねダンパーを用いて姿勢ごとに物理学シミュレーションを実行することによって解決された。すべての姿勢のシミュレーション結果から関節角度を読み取ることによって、目標関節軌道
【００５９】
【数８】
2016154845.tif 000012
が得られる（図５Ｂに示す）。
【００６０】
４つの異なるアニメーション歩行動作を同じ方法で修正することによって、４つの目標関節軌道が単一立脚相について取得された。４つの歩行動作の全部が、図４のグラフ４００に点線で示されている。詳細には、グラフ４００は最適化歩行軌道を示す。完全な一歩
の最適化軌道（実線で示す）が、アニメーション・データから修正された目標関節軌道（点線で示す）と比較されている。
【００６１】
図５Ａ〜図５Ｄは、グラフィック・スクリーン・ショットのセットおよび動作しているロボットの画像により、アニメーション動作（参照動作）、ロボットの目標動作、ロボットの最適化動作、および実際に得られたロボット動作を示す。ロボット開発方法の１つの目標は、モデルにされたアニメーション・キャラクターのアニメーションでの歩行動作と似ている（すなわち模倣する）歩き方をロボットにさせることである。アニメーション・キャラクターの歩行動作は、アニメーションからの（アニメーション・データからの）一連のスクリーン・ショット５１０に示されている。この方法には、アニメーション・キャラクターの参照動作をロボットの構成空間にマッピングすることによって、また立脚足を路面上で平らに保つことによって、スクリーン・ショット５２０で示されるアニメーション歩行をまず修正することが含まれる。
【００６２】
修正された動作は物理的に不適正であるので（たとえば、図５Ｂに示されたシーケンスではＣｏＰが足からはみ出ている）、図５Ｃに示された一連のショット５３０に示されるようにＣｏＰをサポート・ポリゴンの内側に保持することによって、歩行は、修正され物理的に実現される。最後に、図５Ｄの一連の画像５４０に示されるように、図５Ｃからの最適化歩行動作が、ロボット１５０（すなわち設計され、製造され、組み立てられたハードウェア）を制御するために使用される（再生される）。最適化動作速度ではスリップを招くハードウェアの変形により、動作は、この試験ではゆっくりとした時間で再生された（たとえば、最適化速度よりも２倍遅く）。
【００６３】
図５Ｂは、立脚足が路面に結合されていると仮定することによる物理的シミュレーションで追跡された目標動作
【００６４】
【数９】
2016154845.tif 000013
の１つを示す。このシミュレーションは、ＣｏＰ（下方の一連の画像の黒線）がサポート・ポリゴン（グレー領域）から出ることを示し、これは、この動作をロボットが追跡すればロボットが転倒することを意味する。本明細書に記載の残りのステップ／プロセスは、歩行動作を生成することであり、これは、４つの
【００６５】
【数１０】
2016154845.tif 000014
のセットと類似であり、かつロボットが転倒することなく物理的に実現可能である、すなわちＺＭＰ基準として知られているように足の中にＣｏＰがとどまる。この課題は、軌道最適化、または本発明の方法を実践するための別の技法を使用して解決されることができる。
【００６６】
軌道最適化は、所与の基準および制約条件で最適軌道を設計するための十分に確立した方法である。単一立脚は、１４５（＝１２×１２＋１）個のパラメータを用いて、
【００６７】
【数１１】
2016154845.tif 000015
としてパラメータ化され、ここで１２個のパラメータは各関節軌道の等しく時空化されたノードを表し（×１２）、追加パラメータは単一立脚動作の持続時間を定義する（＋１）
。パラメータ
【００６８】
【数１２】
2016154845.tif 000016
のセットを評価するために、関節軌道がこれらのパラメータから再構築され、動作を調査するために順運動学（ＦＫ）が解かれ、動力学を調べるために逆動力学（ＩＤ）が解かれる。より詳細には、関節軌道はスプライン補間により再構築されることができ、ＦＫおよびＩＤを解くために、ＭＡＴＬＡＢ  Ｓｉｍｕｌｉｎｋ／ＳｉｍＭｅｃｈａｎｉｃｓ（Ｒ２０１１３ａ）（または他のソフトウェア・ツール）を用いて、立脚足が路面に結合されている関節角度追跡モードで物理的シミュレーションを実行することができる。
【００６９】
ＦＫおよびＩＤの結果から、単一立脚動作は、この動作が目標動作にどれだけ類似しているか、
【００７０】
【数１３】
2016154845.tif 000017
またＣｏＰが立脚足の中心にどれだけ近くにとどまるか、
【００７１】
【数１４】
2016154845.tif 000018
に基づいて評価される。動作の差異およびＣｏＰの偏差はそれぞれ、
【００７２】
【数１５】
2016154845.tif 000019
の通りに、関節角度の差異の２乗平均平方根として定義される。前者はすべての目標フレームｋで計算され、後者はすべてのシミュレーション時間ステップｔで計算されることに留意されたい。
【００７３】
パラメータ化単一立脚動作
【００７４】
【数１６】
2016154845.tif 000020
が評価されるので、最適動作を生成する問題は、非線形条件付き最適化問題として
【００７５】
【数１７】
2016154845.tif 000021
の通りに公式化される。
【００７６】
目標の１つは、動作の安定性を向上させつつ、すなわちＣｏＰを立脚足の中心近くに保ちながら、目標動作
【００７７】
【数１８】
2016154845.tif 000022
からの偏差を最小限にすることである。重み付け係数ｃＳＳおよびｃＣＯＰは、目標のバランスを取るようにヒューリスティックに見出される。制約条件１、すなわちＣ１により、対称的歩行に必要である、遊脚足が目標位置で動き始め動き終わることが保証される。他のすべての制約条件（Ｃ２〜Ｃ６）により、物理的に実現可能な歩行動作が確実になる。すなわち、Ｃ２により、モデルが転倒しないことが確実になり、Ｃ３により、遊脚足
【００７８】
【数１９】
2016154845.tif 000023
が路面よりも高くなるように保たれ、Ｃ４により、サーボが（式（１））のようなトルクを発生させる能力があるかどうかが検査され、Ｃ５により、立脚足が路面から浮かないことが確実になり、Ｃ６は、立脚足でスリップしないようにすることを目的とする（ＧＲＦｘ，ｙ，ｚは各軸に沿った路面反力であり、本発明者らは、試験した試作品では摩擦係数μ＝０．６を使用した）。理論的には、Ｃ２が、ＣＯＰＳＳのコスト項なしでロボットが転倒しないようにするのに十分である。しかし、ＣｏＰを足の中心近くに保持することによって、ロボットの動作におけるモデル化誤差および小さな外乱（実環境には常に存在する）が補償される。
【００７９】
試験では、共分散行列適応進化戦略（ＣＭＡ−ＥＳ）が、軌道パラメータ
【００８０】
【数２０】
2016154845.tif 000024
を最適化するために使用された。制約条件を強制するために、大きい定数、たとえばｃＬ＝１０６が、制約条件に反した場合にコストに加えられた。目標軌道の１つが初期パラメータとして使用され、ＣＭＡ−ＥＳが６０００世代に対し６４の集団サイズで実行された。実行速度について実装を最適化しなければ、従来のデスクトップ型コンピュータで動作させるのに約２日を要する。
【００８１】
ロボット歩行軌道（たとえば、両立脚相）を生成することに関し、単一立脚動作
【００８２】
【数２１】
2016154845.tif 000025
が完全歩行動作を生成するように最適化されると、単一立脚相の最後の姿勢と次の単一立脚相の第１の姿勢とをつなぐ両立脚相動作
【００８３】
【数２２】
2016154845.tif 000026
が生成される。ユークリッド空間内のセグメント位置は、目標開始姿勢と目標終了姿勢の間に補間されることができ、次に、関節軌道を得るためにＩＫが解かれる。試験の場合では、補間された両立脚動作は、ＣｏＰが以前の立脚足から次の立脚足へと進むサポート・ポリゴン内にとどまるので、安定している。そうではなく、動作が安定でなければ、単一立脚相と類似の軌道を最適化することによって、安定した動作が生成される。両脚支持動作を最適化するために、コストは
【００８４】
【数２３】
2016154845.tif 000027
になる。目標両立脚動作が利用可能でないために、第１の制約条件Ｃ１がすべての時間ステップに適用され、ＣＯＰｌｉｍｉｔが、ロボットの両脚を包むサポート・ポリゴンになる。
【００８５】
次に、完全歩行動作が、単一立脚動作と両立脚動作をつなぐことによって得られる。１つの脚の単一立脚、両立脚、遊脚および両立脚からの完全な一歩の関節軌道が、目標単一立脚および遊脚動作と共に図４に示されている。足首回転軌道は、目標軌道から最も外れている。これは、足首がＣｏＰを小さい動きで最も効果的に調節できるからである。結果として得られる歩行動作ならびにそのＣｏＰおよびＣｏＭ軌道が図５Ｃに示されている。
【００８６】
アニメーション・キャラクターによる物理的設計を試験するために、またアニメーション・キャラクターの歩行が正確に模倣されているかどうかを試験するためにロボット１５０を動作させた。最適化歩行軌道は、ハードウェア上で、サーボ・モータによる開ループ関節軌道を追跡することによって試験された。最適化軌道が再生されるとき（ロボットのアクチュエータを制御するために用いられる）、ロボットは、動きを完全には生成しなかったので、前方によろめくことが分かった。詳細には、遊脚相の始めと終わりに立脚はいっそう屈曲し、遊脚足を引きずる。これにより遊脚足が路面を押し、立脚足が滑ることになり、結果として不安定な歩行になる。この試験は、ロボットが負荷を受けて異なる動作を引き起こすことを、その歩行を空歩行（歩行動作を空中で行うこと）と比較することによって検証するのに役立ち、また動作エラーの２つのソースがリンクの変形およびサーボ・モータのエラーであると考えられたことを検証するのに役立った。
【００８７】
試験運転中、ロボットは、最適化動作がゆっくりと再生されたときにはあまり滑らないことが観察され、歩行結果は、最適化歩行により近く見えた。理論的には、ＣｏＰ軌道は、ゆっくりとしたペースの歩行ではＣｏＭ軌道に近くなる。最適化ＣｏＭ軌道（図５Ｃに示す）は、ほとんど立脚足の上にとどまり、不安定なときは短い。さらにＣｏＭは、それが立脚足から外れたとき、現在または次の立脚足の方に進む。したがって、不安定性は次の安定相で補償される可能性がある。図５Ｄは、最適化されたものより２倍遅く歩行するロボット１５０を示す。
【００８８】
本明細書の結果に基づいて、このシステム／方法は、最適軌道をより適切に追跡するように改良できると考えられる。第１に、追跡しやすい最適軌道を生成できる可能性がある。たとえば、軌道を最適化するとき、リンクの変形に関してコスト項を含むことができる。加えて、ＣｏＰの偏差に対してロバスト性を最適化するとき、ロバスト性は遊脚足高さに対して考慮される。第２に、より適切なセグメントにより変形を低減させることができる。さらに、より剛性のセグメントを提供するように材料および構造設計を調査する。また、セグメントの強度を改善することは、ロボットが試験中に転倒したときにセグメントが場合によっては破損するので、望ましいといえる。第３に、より適切な追跡が、モータのサーボ制御を改善することによって実現され得る。さらに、関節およびセグメントが担うことになる負荷を考慮してオフセットを角度軌道に加えるフィードフォワード・コントローラを、ロボットに付加することもできる。
【００８９】
図６は、図２の方法２００を実行するのに使用できるような、本明細書によるロボット開発システム６００の機能ブロック図である。図示のように、システム６００は、たとえば、アニメーション化キャラクターを作り出し、そのようなキャラクターをアニメーション化するのに使用されるアニメ制作者のコンピュータである、アニメーション・ワークステーション６１０を含む。ワークステーション６１０は、入出力デバイス６１４（たとえば、キーボード、マウス、グラフィカル・ユーザ・インターフェース（ＧＵＩ）を表示できる画面（タッチ画面であり得る）、音声認識デバイスなど）の動作を管理するプロセッサ６１２を含む。プロセッサ６１２はまた、コンピュータ・アニメーション（またはコンピュータ・グラフィックス）ソフトウェア６１８（たとえば、Ｍａｙａなど）が機能するように、メモリ／データ・ストレージ６２０を管理し、コード／ソフトウェア／実行可能命令を実行する。ワークステーション６１０およびソフトウェア６１８を使用中、アニメ制作者（図示せず）は、キャラクター・スケルトン６２６（図１Ａのスケルトン１２０など）と、このスケルトン６２６の参照動作６２８として示されているアニメーションとを含むアニメーション・データ６２４のセットを生成することができる。
【００９０】
システム６００はまた、たとえば図２の方法２００に関し示された機能を実現するように特に適合されたコンピュータ・システムである、ロボット開発ワークステーション６３
０を含み、ロボット開発ワークステーション６３０は、図示されるように６２９によってアニメーション・ワークステーション６１０と通信結合されている。ロボット開発ワークステーション６３０は、ロボット６７０を製作し組み立てるのに、および、通信リンク６６９を通じてロボット６７０へ伝達できる動作軌道６６４などによりロボット６７０を制御するのに有効なパラメータを生成するために、ロボット設計者によって操作される。ワークステーション６３０は、Ｉ／Ｏデバイス６３４の動作を管理する、また開発スイート６４０を得るためにコード／命令／ソフトウェア・プログラムを実行する、プロセッサ６３２を含む。さらに、プロセッサ６３２は、メモリ／データ・ストレージ・デバイス６５０を管理する。
【００９１】
開発スイート６４０は、キャラクター・スケルトン６２６と、スケルトン６２６の参照動作６２８とを含む、アニメーション・データ６２４からデータを抽出するように作動するデータ抽出モジュール６４２を含む（たとえば、図２の方法２００のステップ２１０を実行するために）。スイート６４０はまた、ロボット６７０（設計されるロボット）の目標特性を設定するように機能する目標特性モジュール６４４を含む（たとえば、方法２００のステップ２２０を実行するために）。特に、モジュール６４４は、ロボット６７０のトルク要件６５２を決定するために、抽出データ（スケルトン６２６および参照動作６２８）を処理する。さらにモジュール６４４は、参照動作６２８を提供するために、抽出データを処理して運動学的構造６５４と、この運動学的構造６５４の可動域（ＲＯＭ）６５６とを生成する。さらに、モジュール６４４は、参照動作６２８に基づいて目標動作軌道６６２を生成する。
【００９２】
開発スイート６４０はまた、入力としてトルク要件６５２を使用してアクチュエータ６５８を含むメカトロニクス構成要素を生成／選択するための（たとえば、図２の方法２００のステップ２４０を実行するために）、また、入力として運動学的構造６５４およびＲＯＭ６５６を使用して構造セグメント／リンク６６０を含むロボット機構を生成／選択するための（たとえば、図２の方法２００のステップ２５０を実行するために）、ロボット・メカトロニクスおよびロボット機構モジュール６４６を含む。さらに、開発スイート６４０は動作軌道モジュール６４８を含み、このモジュールは、目標動作軌道６６２を処理および修正するように機能して、構造セグメント６６０を適合させ、ロボット６７０の動作軌道６６４を生成するためのＲＯＭ６５６を得る（たとえば、図２の方法２００のステップ２７０を実行するために）。
【００９３】
動作軌道６６４はロボット６７０に伝達され、６７６で示されるように、メモリ６７４に記憶される。ロボット６７０（二足人型ロボット、または歩行動作である動作軌道を有する他のロボットであってもよい）は、コントローラ（たとえば、トラッキング・コントローラ）６７２を含み、このコントローラは、動作軌道６７６を処理して、ロボット６７０の駆動部６８０（たとえば、サーボ・モータ、または６５８で開発スイート６４０によって定義される他のアクチュエータ）に伝達される制御信号のセット（たとえば、関節トルク）６７８を生成し、この駆動部は、関節６８４で作動して、動作軌道６７６をたどるように（たとえば、歩行動作をたどるように）、またアニメーション・キャラクター６２６の動作６２８を模倣するように、セグメント／リンク６８８（構造セグメント定義６６０に基づいて得られる）を動かす。
【００９４】
本発明がある程度詳細に説明および図示されたが、本開示は例示的に作成されたこと、ならびに部品の組合せおよび構成の多数の変更が、添付の特許請求の範囲に記載の本発明の趣旨および範囲から逸脱することなく、当業者により行われ得ることを理解されたい。
【図１Ａ】
2016154845.tif 000028
【図１Ｂ】
2016154845.tif 000029
【図２】
2016154845.tif 000030
【図３Ａ】
2016154845.tif 000031
【図３Ｂ】
2016154845.tif 000032
【図３Ｃ】
2016154845.tif 000033
【図４】
2016154845.tif 000034
【図５Ａ】
2016154845.tif 000035
【図５Ｂ】
2016154845.tif 000036
【図５Ｃ】
2016154845.tif 000037
【図５Ｄ】
2016154845.tif 000038
【図６】
2016154845.tif 000039