(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024114672
(43)【公開日】2024-08-23
(54)【発明の名称】ロボット設計のための勾配ベースの最適化
(51)【国際特許分類】
G06F 30/10 20200101AFI20240816BHJP
G06F 30/20 20200101ALI20240816BHJP
G06F 111/04 20200101ALN20240816BHJP
【FI】
G06F30/10
G06F30/20
G06F111:04
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024018875
(22)【出願日】2024-02-09
(31)【優先権主張番号】23305186.1
(32)【優先日】2023-02-10
(33)【優先権主張国・地域又は機関】EP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
2.TAICHI
(71)【出願人】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】フランソワ コシュヴルー
(72)【発明者】
【氏名】デイビッド ボナー
(72)【発明者】
【氏名】マルタン-ピエール ヒューゴ シュミット
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146DC04
5B146DC05
5B146EA18
(57)【要約】
【課題】1つまたは複数の材料で形成されたロボット本体を表す3Dロボット本体モデルを設計するためのコンピュータ実装方法を提供する。
【解決手段】方法は、ロボットの運動メトリックを定量化する所定のパラメータに基づいて目的関数を提供することを含む。所定のパラメータは、3D空間のグリッディングを形成する複数のボクセルと、1つまたは複数の材料に関係付けられる1つまたは複数のパラメータと、作動信号を表す作動関数とを含む。設計変数は、複数のボクセルにわたる密度値の分布と、複数のボクセルにわたる作動係数の分布とを含む。方法は、目的関数の勾配ベースの最適化を実施するために設計変数を探索し、それにより設計変数の最適な連続値を取得することと、設計変数の最適な連続値に基づいて3Dロボット本体モデルを決定することとをさらに含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
3Dロボット本体モデルを設計するためのコンピュータ実装方法であって、
前記3Dロボット本体モデルは、1つまたは複数の材料で形成されたロボット本体を表し、前記ロボット本体は、変形可能材料で各々が作られた1つまたは複数の変形可能部分を有し、前記1つまたは複数の変形可能部分の少なくとも一部は、作動されるように構成され、前記方法は、
所定のパラメータに基づく目的関数を提供することであって、前記目的関数は、設計変数の連続関数であり、前記目的関数は、ロボットの運動メトリックを定量化し、前記目的関数の最適値は、前記運動メトリックに関するロボットの最適な性能に対応し、
前記所定のパラメータは、
3D空間のグリッディングを形成する複数のボクセルと、
前記1つまたは複数の材料に関係付けられる1つまたは複数のパラメータと、
作動信号(A)を表す作動関数(f(t))であって、前記作動信号は、時間期間にわたる前記変形可能材料の変形を作動させる、作動関数と
を含み、
前記設計変数は、
前記複数のボクセルにわたる密度値の分布であって、各密度値は、ボクセルについて、前記ボクセルが材料で満たされる割合を、空と充満との間で連続的かつ単調に表す、密度値の分布と、
前記複数のボクセルにわたる作動係数の分布であって、各作動係数は、ボクセルについて、前記作動信号に対する前記ボクセルの内部の材料の応答を表す、作動係数の分布と
を含む、ことと、
前記目的関数の勾配ベースの最適化を実施するために前記設計変数を探索し、それにより前記設計変数の最適な連続値を取得することと、
前記設計変数の前記最適な連続値に基づいて3Dロボット本体モデルを決定することと
を含むことを特徴とする方法。
【請求項2】
前記ロボット本体は、剛性材料で各々が作られた1つもしくは複数の剛性部分をさらに備え、前記設計パラメータは、
前記複数のボクセルにわたる硬化パラメータ(κ)値の分布であって、各硬化パラメータ値は、ボクセルについて、前記ボクセルを満たす材料の硬さのレベルを、第1のレベルと前記第1のレベルよりも硬い第2のレベルとの間で連続的かつ単調に表す、硬化パラメータ(κ)値の分布をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記勾配ベースの最適化を実施することは、反復的なプロセスを含み、各反復は、各ボクセルについての前記密度値および前記硬化パラメータ値に基づいて、前記複数のボクセルにわたるヤング率値の分布を計算することを含むことを特徴とする請求項2に記載の方法。
【請求項4】
ボクセルについての前記ヤング率値の前記計算は、以下のタイプのものであることを特徴とする請求項3に記載の方法。
【数1】
上式で、Eは、前記計算されるヤング率であり、E
maxは、剛性材料の前記ヤング率であり、E
minは最小ヤング率であり、E
actは、前記変形可能材料の前記ヤング率であり、ρは密度値であり、κは硬化パラメータの値であり、
【数2】
である。
【請求項5】
前記ロボット本体は、変形可能材料で各々が作られた1つもしくは複数の変形可能部分からなり、前記設計変数は、前記複数のボクセルにわたる前記密度値の分布および前記作動係数の分布からなることを特徴とする請求項1に記載の方法。
【請求項6】
各粒子に割り当てられる質量の前記値は、1つもしくは複数の対応するボクセルの前記密度値に比例することを特徴とする請求項5に記載の方法。
【請求項7】
前記目的関数の前記勾配ベースの最適化を実施することは、体積分率に対して制約を課すことであって、前記体積分率は、密度値のそれぞれの分布から計算され、任意選択で、前記体積分率に対して制約を課すことは、所与のボクセルにおいて、以下のタイプのものであることを特徴とする請求項1乃至6のいずれか一項に記載の方法。
【数3】
上式で、
【数4】
であり、ηはパラメータであり、V
fracは前記体積分率であり、ρは制約あり密度値であり、
【数5】
は制約なし密度値であり、
【数6】
は、前記複数のボクセル上の
【数7】
の合計であり、N
voxelは、前記複数のボクセルにおけるボクセル総数である。
【請求項8】
前記目的関数の前記勾配ベースの最適化を実施することは、作動エネルギーに対して制約を課すことであって、前記作動エネルギーは前記設計変数の関数であり、任意選択で、前記作動エネルギーに対して前記制約を課すことは、所与のボクセルにおいて、以下のタイプのものであることを特徴とする請求項2乃至4のいずれか一項に記載の方法。
【数8】
上式で、
【数9】
であり、
【数10】
は制約あり作動係数であり、
【数11】
は制約なし作動係数であり、
【数12】
は、前記複数のボクセル上の
【数13】
の合計であり、
【数14】
は、ボクセルiにおける前記制約なし作動係数の絶対値であり、ρ
iは、ボクセルiにおける密度値であり、Γ
fracはエネルギー分率であり、N
voxelは、ボクセル総数、前記複数のボクセルである。
【請求項9】
前記設計変数を探索することは、
前記設計変数の値の前記分布を、前の値および計算された導関数に基づいて更新することと、
前記密度の前記更新された値と体積分率に対する前記制約とを使用して前記密度の前記更新された値をさらに更新することと、
前記密度の前記さらに更新された値と作動エネルギーに対する前記制約とを使用して前記作動係数の前記更新された値をさらに更新することと
をさらに含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記勾配ベースの最適化を実施することは、反復的なプロセスを含み、各反復は、前記所定の変数に基づいて前記ロボットをシミュレートし、それにより前記時間期間にわたるシミュレーション変数の値を取得することを含み、前記シミュレートすることは、任意選択でメッシュレス法であることを特徴とする請求項1乃至9のいずれか一項に記載の方法。
【請求項11】
前記勾配ベースの最適化の各反復において、前記シミュレートすることはマテリアルポイント法(MPM)を含み、前記MPMは、
前記複数のボクセルによって形成される前記グリッディングに対して位置する複数の粒子を定義することと、
各粒子に、
前記設計変数の前記値に基づくヤング率と、
1つもしくは複数の対応するボクセルの前記密度値に基づく質量の値と、
前記作動係数と前記作動関数とに基づく前記作動信号の値と、
を割り当てることと、
前記粒子に割り当てられた前記ヤング率、前記質量の値、および前記作動信号の前記値に基づいて、MPMシミュレーションステップを反復することと
を含むことを特徴とする請求項10に記載の方法。
【請求項12】
前記勾配ベースの最適化を実施することは、前記設計変数に対する前記目的関数の偏導関数を計算することをさらに含み、前記勾配ベースの最適化を実施することは、
初期時間と時間期間の終わりとの間で複数の時点を提供し、それにより、結果として生じる2つの時点間で各々が形成される複数の時間間隔を定義することであって、したがって、前記時間期間にわたるシミュレーション変数の値を取得することは、前記複数の時点における前記シミュレーション変数を取得することを含むことと、
前記初期時間から最後の1つ前の時間までの各時間間隔上で順方向シミュレーションを実施することであって、前記時間間隔上で順方向シミュレーションを実施することは、初期条件、および/もしくは前の時間間隔上での前記順方向シミュレーションに基づくことと、
最後の間隔上で、初期条件および/もしくは前の時間間隔上での前記順方向シミュレーションに基づいて、順方向シミュレーションおよび逆方向シミュレーションを実施することと、
最後の前の前記時間間隔から最初の時間間隔までの各時間間隔上で、初期条件、および/もしくは前の時間間隔上での前記順方向シミュレーションに基づいて、逆方向シミュレーションを実施することと
を含むことを特徴とする請求項1乃至11のいずれか一項に記載の方法。
【請求項13】
前記設計変数の前記最適な連続値に基づいて前記3Dロボット本体モデルを決定することは、前記複数のボクセルにわたる1つもしくは複数の前記設計変数の前記最適値をしきい値処理することを含むことを特徴とする請求項1乃至12のいずれか一項に記載の方法。
【請求項14】
請求項1乃至13のいずれか一項に記載の方法を実施するための命令を含むことを特徴とするコンピュータプログラム。
【請求項15】
メモリに結合されたプロセッサを備えるシステムであって、前記メモリには、請求項14に記載のコンピュータプログラムが記録されていることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータプログラムおよびシステムの分野に関し、より詳細には、3Dロボット本体モデルを設計するための方法、システム、およびプログラムに関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、および製造のために、いくつかのソリューション、ハードウェアおよびソフトウェアが市場で提供されている。CADは、コンピュータ支援設計(Computer-Aided Design)の頭字語であり、例えばこれは、オブジェクトを設計するためのソフトウェアソリューションに関係する。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の頭字語であり、例えばこれは、未来の製品の物理的挙動を解析およびシミュレートするためのソフトウェアソリューションに関係する。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の頭字語であり、例えばこれは、製品製造プロセスおよびリソースを定義するためのソフトウェアソリューションに関係する。このようなコンピュータ支援設計ソリューションでは、グラフィカルユーザインタフェースが、技法の効率に関して重要な役割を果たす。これらの技法は、製品ライフサイクル管理(PLM)ソリューションに組み込まれ得る。PLMとは、会社が、拡張エンタープライズの概念にわたり、製品の構想からその寿命に至る製品開発のために、製品データを共有し、共通プロセスを適用し、企業知識を活用するのを助けるエンジニアリング戦略を指す。ダッソーシステムズによって(商標CATIA、SIMULIA、DELMIA、およびENOVIAの下で)提供されているPLMソリューションは、製品エンジニアリング知識を体系化するエンジニアリングハブ、製造エンジニアリング知識を管理する製造ハブ、および、エンジニアリングハブと製造ハブとの両方へのエンタープライズ統合および接続を可能にするエンタープライズハブを提供する。これらのソリューションは全部合わせて、製品とプロセスとリソースとをリンクする共通モデルを提供して、最適化された製品定義、製造準備、生産、およびサービスを推進する動的な知識ベースの製品創造および決定サポートを可能にする。
【0003】
既存のソリューションは、変形可能な材料で各々が作られた1つまたは複数の変形可能部分を備えるロボット本体を有するロボットを設計するためのツールを提供する。このようなロボットは「ソフトロボット」としばしば呼ばれるが、こうしたロボットは、その変形可能部分が衝突し得る部片の損傷を回避するなど、幅広い利点を提供する。したがって、このようなロボットは、限定ではないが特に食品産業で使用され、種々の産業にまたがるその使用が広まりつつある。
【0004】
非特許文献1は、複数の材料と、構成的パターン生成ネットワーク(compositional pattern-producing network)(CPPN)と呼ばれる強力な生成エンコーディングとを用いた、進化するソフトロボットを開示している。この文書は、CPPNが直接エンコーディングよりも速いロボットを進化させること、および、CPPN形態の方が自然に見えることを教示している。この文書はまた、材料が多く追加されるほどロコモーション性能が増大すること、性能を抑圧することなく種々のコスト関数を用いて形状および挙動の多様性が高められることが可能であること、ならびに、有機体が種々の解像度レベルで進化させられることが可能であることも教示している。
【0005】
このコンテキスト内で、3Dロボット本体モデルを設計するための改善されたソリューションの必要が依然としてある。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【非特許文献1】Cheneyら,“Unshackling evolution:evolving soft robots with multiple materials and powerful generative encoding”,GECCO 2013
【非特許文献2】https://my.3dexperience.3ds.com/welcome/fr/compass-world/rootroles/nc-shop-floor-programmer
【非特許文献3】https://my.3dexperience.3ds.com/welcome/fr/compass-world/rootroles/nc-mill-turn-machine-programmer
【非特許文献4】https://my.3dexperience.3ds.com/welcome/fr/compass-world/rootroles/powder-bed-machine-programmer
【非特許文献5】“Autonomous Soft Robotic Fish Capable of Escape Maneuvers Using Fluidic Elastomer Actuators”https://www.liebertpub.com/doi/10.1089/soro.2013.0009
【非特許文献6】Martinezら,“Procedural Voronoi foams for additive manufacturing”,ACM Transactions on Graphics,Volume 35,Issue 4
【非特許文献7】https://en.wikipedia.org/wiki/Material_point_method
【非特許文献8】Huら,“A moving least squares material point method with displacement discontinuity and two-way rigid body coupling.”,ACM Transactions on Graphics(TOG)37.4(2018):1-14
【非特許文献9】Huら,“Difftaichi:Differentiable programming for physical simulation.”arXiv preprint arXiv:1910.00935,2019
【非特許文献10】Hunら,“Taichi:A language for high-performance computation on spatially sparse data structures.”ACM Transactions on Graphics(TOG)38,6(2019),201
【非特許文献11】Diederik P. Kingma and Jimmy Ba.,“Adam:A Method for Stochastic Optimization.”arxiv:1412.6980,2014
【発明の概要】
【0008】
したがって、3Dロボット本体モデルを設計するためのコンピュータ実装方法が提供される。3Dロボット本体モデルは、1つまたは複数の材料で形成されたロボット本体を表し、ロボット本体は、変形可能材料で各々が作られた1つまたは複数の変形可能部分を有し、1つまたは複数の変形可能部分の少なくとも一部は、作動されるように構成される。本方法は、所定のパラメータに基づく目的関数を提供することを含み、目的関数は、設計変数の連続関数である。目的関数は、ロボットの運動メトリックを定量化する。目的関数の最適値は、運動メトリックに関するロボットの最適な性能に対応する。所定のパラメータは、3D空間のグリッディングを形成する複数のボクセルと、1つまたは複数の材料に関係付けられる1つまたは複数のパラメータと、作動信号を表す作動関数とを含む。作動信号は、時間期間にわたる変形可能材料の変形を作動する。設計変数は、複数のボクセルにわたる密度値の分布を含む。各密度値は、ボクセルについて、ボクセルが材料で満たされる割合を、空と充満との間で連続的かつ単調に表す。設計変数は、複数のボクセルにわたる作動係数の分布をさらに含む。各作動係数は、ボクセルについて、作動信号に対するボクセル内部の材料の応答を表す。本方法は、目的関数の勾配ベースの最適化を実施するために設計変数を探索し、それにより設計変数の最適な連続値を取得することをさらに含む。本方法は、設計変数の最適な連続値に基づいて3Dロボット本体モデルを決定することをさらに含む。
【0009】
本方法は、以下のうちの1つまたは複数を含み得る。
【0010】
-勾配ベースの最適化を実施することは、反復的なプロセスを含み、各反復は、所定の変数に基づいてロボットをシミュレートし、それにより時間期間にわたるシミュレーション変数の値を取得することを含み、シミュレートすることは、任意選択でメッシュレス法である。
【0011】
-勾配ベースの最適化の各反復において、シミュレートすることはマテリアルポイント法(MPM)を含み、MPMは、複数のボクセルによって形成されるグリッディングに対して位置する複数の粒子を定義することと;設計変数の値に基づくヤング率と、1つもしくは複数の対応するボクセルの密度値に基づく質量の値と、作動係数と作動関数とに基づく作動信号の値と、を各粒子に割り当てることと;粒子に割り当てられたヤング率、質量の値、および作動信号の値に基づいて、MPMシミュレーションステップを反復することとを含む。
【0012】
-ロボット本体は、変形可能材料で各々が作られた1つもしくは複数の変形可能部分からなり、設計変数は、複数のボクセルにわたる密度値の分布および作動係数の分布からなる。
【0013】
-各粒子に割り当てられる質量の値は、1つもしくは複数の対応するボクセルの密度値に比例する。ロボット本体は、剛性材料で各々が作られた1つもしくは複数の剛性部分をさらに備え、設計パラメータは、複数のボクセルにわたる硬化パラメータ(κ)値の分布をさらに含み、各硬化パラメータ値は、ボクセルについて、ボクセルを満たす材料の硬さのレベルを、第1のレベルと第1のレベルよりも硬い第2のレベルとの間で連続的かつ単調に表す。
【0014】
-勾配ベースの最適化を実施することは、反復的なプロセスを含み、各反復は、各ボクセルについての密度値および硬化パラメータ値に基づいて、複数のボクセルにわたるヤング率値の分布を計算することを含む。
【0015】
-ボクセルについてのヤング率値の計算は、以下のタイプのものである。
【0016】
【0017】
上式で、Eは、計算されるヤング率であり、Emaxは、剛性材料のヤング率であり、Eminは最小ヤング率であり、Eactは、変形可能材料のヤング率であり、ρは密度値であり、κは硬化パラメータの値であり、
【0018】
【0019】
である。
【0020】
-目的関数の勾配ベースの最適化を実施することは、体積分率に対して制約を課すことをさらに含み、体積分率は、密度値のそれぞれの分布から計算され、任意選択で、体積分率に対して制約を課すことは、所与のボクセルにおいて、以下のタイプのものである。
【0021】
【0022】
上式で、
【0023】
【0024】
であり、ηはパラメータであり、Vfracは体積分率であり、ρは制約あり密度値であり、
【0025】
【0026】
は制約なし密度値であり、
【0027】
【0028】
は、複数のボクセル上の
【0029】
【0030】
の合計であり、Nvoxelは、複数のボクセルにおけるボクセル総数である。
【0031】
-目的関数の勾配ベースの最適化を実施することは、作動エネルギーに対して制約を課すことをさらに含み、作動エネルギーは設計変数の関数であり、任意選択で、作動エネルギーに対して制約を課すことは、所与のボクセルにおいて、以下のタイプのものである。
【0032】
【0033】
上式で、
【0034】
【0035】
であり、
【0036】
【0037】
は制約あり作動係数であり、
【0038】
【0039】
は制約なし(すなわち生の)作動係数であり、
【0040】
【0041】
は、複数のボクセル上の
【0042】
【0043】
の合計であり、
【0044】
【0045】
は、ボクセルiにおける制約なし作動係数の絶対値であり、ρiは、ボクセルiにおける密度値であり、Γfracはエネルギー分率であり、Nvoxelは、複数のボクセルにおけるボクセル総数である。
【0046】
-設計変数を探索することは、設計変数の値の分布を、前の値および計算された導関数に基づいて更新することと、密度の更新された値と体積分率に対する制約とを使用して密度の更新された値をさらに更新することと、密度のさらに更新された値と作動エネルギーに対する制約とを使用して作動係数の更新された値をさらに更新することとをさらに含む。
【0047】
-勾配ベースの最適化を実施することは、設計変数に対する目的関数の偏導関数を計算することをさらに含み、勾配ベースの最適化を実施することは:初期時間と時間期間の終わりとの間で複数の時点を提供し、それにより、結果として生じる2つの時点間で各々が形成される複数の時間間隔を定義することであって、したがって、時間期間にわたるシミュレーション変数の値を取得することは複数の時点におけるシミュレーション変数を取得することを含むことと;初期時間から最後の1つ前の時間までの各時間間隔上で順方向シミュレーションを実施することであって、時間間隔上で順方向シミュレーションを実施することは、初期条件、および/もしくは前の時間間隔上での順方向シミュレーションに基づくことと;最後の間隔上で、初期条件および/もしくは前の時間間隔上での順方向シミュレーションに基づいて、順方向シミュレーションおよび逆方向シミュレーションを実施することと;最後の前の時間間隔から最初の時間間隔までの各時間間隔上で、初期条件、および/もしくは前の時間間隔上での順方向シミュレーションに基づいて、逆方向シミュレーションを実施することとを含む。
【0048】
ならびに/または、
-設計変数の最適な連続値に基づいて3Dロボット本体モデルを決定することは、複数のボクセルにわたる設計変数のうちの1つもしくは複数の最適値をしきい値処理することを含む。
【0049】
さらに、本方法を実施するための命令を含むコンピュータプログラムが提供される。
【0050】
さらに、本コンピュータプログラムが記録されたコンピュータ可読記憶媒体が提供される。
【0051】
さらに、メモリに結合されたプロセッサを備えるシステムが提供され、メモリには、本コンピュータプログラムが記録されている。
【図面の簡単な説明】
【0052】
次に、添付図面を参照しながら非限定的な例について記述される。
【
図1】本システムのグラフィカルユーザインタフェースの例を示す図である。
【発明を実施するための形態】
【0053】
3Dロボット本体モデルを設計するためのコンピュータ実装方法が提案される。3Dロボット本体モデルは、1つまたは複数の材料で形成されたロボット本体を表す。ロボット本体は、変形可能材料で各々が作られた1つまたは複数の変形可能部分を有する。1つまたは複数の変形可能部分の少なくとも一部は、作動されるように構成される。本方法は、所定のパラメータに基づく目的関数を提供することを含む。目的関数は、設計変数の連続関数である。目的関数は、ロボットの運動メトリックを定量化する。目的関数の最適値は、運動メトリックに関するロボットの最適な性能に対応する。
【0054】
所定のパラメータは、3D空間のグリッディング(gridding)を形成する複数のボクセルを含む。所定のパラメータは、1つまたは複数の材料に関係付けられる1つまたは複数のパラメータをさらに含み、所定のパラメータは作動関数も含む。作動関数は、時間期間にわたる変形可能材料の変形を作動する作動信号を表す。
【0055】
設計変数は、複数のボクセルにわたる密度値の分布を含む。各密度値は、ボクセルについて、ボクセルが材料で満たされる割合を、空と充満との間で連続的かつ単調に表す。設計変数は、複数のボクセルにわたる作動係数の分布をさらに含む。各作動係数は、ボクセルについて、作動信号に対するボクセル内部の材料の応答(例えば、その位相および振幅)を表す。
【0056】
本方法は、目的関数の勾配ベースの最適化を実施するために(すなわち、その実施を介して)、設計変数を探索することをさらに含む(したがって、設計変数は、最適化の自由変数であり、すなわち、最適化の間に変動することが可能にされる変数、つまり探索されることが可能にされる変数である)。本方法は、それにより、設計変数の最適な連続値を取得する。本方法は、設計変数の最適な連続値に基づいて3Dロボット本体モデルを決定することをさらに含む。
【0057】
このような方法は、ロボット本体の3Dモデルを設計するための改善された方法を構成する。実際、本方法は、勾配ベースの最適化アプローチにおける、密度値の分布と作動係数の分布との両方を最適化する。
【0058】
一方では、作動係数が、最適化されることになる設計変数であることにより、本方法は、作動信号に対するロボットの応答を最適化することができる。言い換えれば、本方法は、ロボットの最適な作動挙動を見つける。すなわち、運動メトリックに関して最適な性能を達成するために作動されることになる変形可能部分の最適な空間分布を見つける。したがってこれは、ロボットのトポロジ(すなわち、取得された密度値の分布に基づくもの)に加えて、ロボットの作動レイアウト(すなわち、ロボットの受動的および能動的要素のレイアウト)も最適化され得る設計ソリューションを構成する。これは、本方法の性能を改善する。というのは、作動を考慮する当技術分野における既知の方法とは対照的に、ロボットの能動的部分の場所および形状が事前に定義されないからである。
【0059】
他方、設計変数の最適値を取得するために、本方法は、勾配ベースの最適化を実施する。これは、ロボットの運動に関係するメトリックに関するロボットの性能が、連続的な設計変数の目的関数として表現されることが可能であることのおかげで可能にされる。というのは、運動挙動は、材料分布および作動レイアウトに連続的に依存するからである。勾配ベースの最適化方法は、勾配なし方法と比較して、最適化変数の数の点でよりよいスケーラビリティを有する。これは、勾配ベースの最適化を使用することで、本方法が、最適な設計変数を計算時間の点でより速く取得できること、および/または、より多数の自由度を用いてロボット本体のより複雑な設計を取得できることを意味する。さらに、勾配ベースの最適化を使用することは、勾配なしの大域的検索戦略とは異なり、少なくとも局所的な意味で、最適解への収束を保証する。
【0060】
上で論じられた2つの態様の各々により、本方法は、設計条件とのよりよい適合を(より高い自由度のおかげで)有する設計を取得することができ、また、現実の条件下でこの設計に基づいて製造されるロボットの性能を改善することができる。
【0061】
さらに、上で論じられたように、密度値の各々は、ボクセルにおける、このボクセルが材料で満たされる割合の連続的かつ単調な表現を提供する。各作動係数もまた、ボクセルについて、作動信号に対するボクセル内部の材料の応答を連続的かつ単調に表し得る。これにより、本方法は、ロボット本体の種々のプロパティ(例えば、材料分布、および/または、作動に対する機械的応答)について、連続的な表現を採用する。これは、最適化問題の自由変数に対する目的関数の挙動における連続性を提供し、それにより本方法が勾配ベースの最適化技法から利益を得られるようにすることによって、本方法を改善する。このような連続性はさらに、設計変数の連続的な最適値を取得することによって、本方法を改善する。「連続的であること」によって意味されるのは、本方法による最適化によって取得される最適な設計変数が、それぞれの連続的な範囲内の任意の値を取り得ることであり、許容領域/範囲と呼ばれることもある。許容範囲内のこのような連続性は、特に、本方法が、離散値、および/または特定の事前に定義されたセット中にある値を探索するように最適化を限定しないことを意味する。さらに、このような連続性は、最適化が、取得された最適値に対して(事後の)フィルタリングを適用しないことを意味する。これは、本方法によって取得される設計を改善する。というのは、最適化は計算的により速く機能することができ(最適化において、最適化を介して値を制限するための制約がないので)、また、最適化は、探索の領域が大きいほど、より最適な解、すなわち目的関数のより最適な値を有する解を取得することができるからである。より最適な値は、最適化が最大化である場合には、より大きい値であり得、最適化が最小化である場合には、より小さい値であり得る。これにより、本方法による取得された設計は、(最適化問題において表される)設計目的に、よりよく適合する。
【0062】
本方法は、設計変数の最適値に基づいて3Dロボット本体モデルを決定するステップを含む。したがって、本方法は、モデル化されたオブジェクトを一般に操作するプロセスを形成し得、または、そのようなプロセスの少なくとも一部を形成し得る。本方法によって設計変数の最適値に基づいて決定される3Dモデルは、3D CADモデル、有限要素モデル(FEM)、3Dメッシュ、3D点群、B-rep、または任意の他の既知のモデル化されたオブジェクトであり得る。モデル化されたオブジェクトは、例えばデータベースに記憶されたデータによって定義される任意のオブジェクトである。その延長として、「モデル化されたオブジェクト」という表現は、データ自体を示す。モデル化されたオブジェクトのいくつかの例については、以下の本明細書で論じられる。上で論じられたように、本方法の設計変数の少なくともいくつかは、ロボットのプロパティの連続的な表現である。本方法は、設計変数の最適な連続値に基づいて3Dロボット本体モデルを決定するステップで、それぞれの3Dロボット本体モデルを取得するために、取得された設計変数に対してさらに他の処理を適用し得る。例では、このような処理は、(最適な)密度値に対してしきい値処理ステップを適用することを含み得る。「しきい値処理」によって意味されるのは、しきい値に基づいて値の離散セットにマッピングすることである。例えば、本方法は、0.5よりも高い密度値を有する各ボクセルは、それぞれの材料で満たされたボクセルであり、0.5よりも低い密度値を有する各ボクセルは、材料が空のボクセルであると決定し得る。例では、同様のしきい値処理ステップが、最適な作動係数にも適用され得る。本方法は、最適な作動係数を採用して、ロボット本体のどんなエリアがどの順序で伸張および/または収縮すべきか、またどんな力および変位がロボット本体に加えられるべきかを設計する際の改善されたソリューションを提供し得る。これは、取得された作動係数に従って規定された効果を生むように実際のアクチュエータを設計するための効果的なツールを、ユーザ/設計者に提供する。
【0063】
あるいは、本方法は、取得された最適な連続的設計変数に対する処理にしきい値処理を適用しないこともあり、または、しきい値処理を部分的にのみ適用することもある。このような部分的なしきい値処理では、本方法は、しきい値よりも小さいかまたは大きい値に対してのみしきい値処理を適用し得る。例えば、本方法は、0.5未満の密度値のみを0に設定し得るが、0.5よりも大きい密度値に対しては、どんな丸めも適用しない。このような例は、設計されたロボットが3D印刷のようないくつかの最新の製作方法によって製作されることになるときに、特に適する。このような製作方法は、密度を局所的に制御することができ、それにより、最適な連続的密度値に基づいて、例えば多孔度を制御することによって、ロボットを製作することができる。これは、最終的な製作されたロボットが設計目的に適合するのを改善する。
【0064】
本方法が最適な設計変数に対してしきい値処理を適用する例と適用しない例との両方において、本方法の出力は、設計変数(例えば、密度および作動係数)の、ボクセル単位の分布である。任意選択で、このボクセル表現は、任意の既知の方式で、(例えばB-Repを含むパラメトリック曲面を有する)パラメトリックCADモデルに変換されてよいが、これは本開示の範囲外である。
【0065】
本方法は、ロボット本体の3Dモデルを設計することに、特に関係がある。「ロボット本体」によって意味されるのは、ロボット構造を構成する材料の実質的な部分である。ロボット本体は、(能動的または受動的な)変形可能部分、および任意選択で剛性部分を備え得る。ロボット本体は、ロボットの形態を表す。ロボットは、ロボット本体に加えて、(例えば、上記の変形可能部分を作動するための)1つまたは複数のアクチュエータも備え得る。加えて、ロボットは、固定具など他のコンポーネント、例えば、ロボットの種々の要素を共に接続するのに使用されるコネクタ要素(例えば接合部)も備え得る。ロボット本体は、例えば、それぞれのロボットの総質量の60%よりも多くを、または80%よりも多くを占めることがある。それぞれのロボットは、それ自体が、より大きいロボットに接続されること、および/またはより大きいロボットと協同することがある。ロボット本体の設計に加えてさらに、本方法は、例えば任意の既知の方法に従って、取得された最適な設計変数に基づいてアクチュエータを設計することを含み得る。アクチュエータの厳密な設計方式は、本開示の範囲外である。
【0066】
製造製品(またはそのモデル化されたオブジェクト)、例えば「ロボット本体」またはロボットを設計することによって意味されるのは、この製造製品のモデル化されたオブジェクトを精巧に作るプロセスの少なくとも一部である任意のアクションまたは一連のアクションである。言い換えれば、モデル化されたオブジェクトを設計することは、モデル化されたオブジェクトを精巧に作るプロセスの少なくとも一部である任意のアクションまたは一連のアクションを示す。したがって、本方法は、3Dモデル化オブジェクト(3Dロボット本体モデル)を最初から生み出すことを含み得る。あるいは、本方法は、前に生み出された3Dモデル化オブジェクトを提供し、次いでこの3Dモデル化オブジェクトを修正することを含み得る。本方法は、このようなプロセスを形成し得、または、このプロセスの少なくとも一部を形成し得る。本方法の後には、ロボット本体の取得された最適な設計変数に基づいてロボットの詳細な設計を取得するために、さらに他の設計ステップが続き得る。例えば、さらに他の設計ステップは、取得された最適な作動係数分布に対応するように、1つまたは複数のアクチュエータについて、タイプおよび/または特定の位置を取得し得る。あるいは、または追加的に、さらに他の設計ステップは、取得された最適な密度値分布に基づいてロボットの詳細な幾何形状を取得し得る。このようなステップは、例えば機械加工プロセス、フライス加工プロセス、成形プロセスにおける、または付加製造による、この幾何形状を取得するのに必要とされる製造ステップを決定することをさらに含み得る。あるいは、または追加的に、さらに他の設計ステップは、(例えば疲労解析に関する)さらに1つもしくは他の編集もしくは最適化ステップ、および/または、他のモデルとの間での変換(例えば、本方法によって取得された設計済みモデルを、応力/疲労解析ソフトウェアによって評価されるFEMモデルに変換する)ステップを含み得る。このようなさらに他のステップはまた、製作要件にも関係付けられ得る。このようなさらに他のステップのいくつかに関するこれ以上の詳細については、後で論じられる。
【0067】
本方法はまた、製造プロセスにも含まれ得、この製造プロセスは、本方法の実施後、モデル化されたオブジェクトに対応する物理的製品、すなわち、設計された3Dロボット本体モデルによって表されるロボット本体、またはそのようなロボット本体を有するロボット全体を、生産することを含み得る。いずれの場合でも、本方法によって設計されたモデル化されたオブジェクトは、製造オブジェクトを表し得る。したがって、モデル化されたオブジェクトは、モデル化された固体(すなわち、固体を表すモデル化されたオブジェクト)であり得る。本方法はモデル化されたオブジェクトの設計を改善するので、本方法はまた、製品の製造を改善し、したがって製造プロセスの生産性を高める。
【0068】
システムのタイプに応じて、モデル化されたオブジェクトは、種々のデータによって定義され得る。システムは実際、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムの任意の組合せであり得る。これらの種々のシステムにおいて、モデル化されたオブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータに言及されることがある。しかし、モデル化されたオブジェクトは、これらのシステムの任意の組合せに対応するデータによって定義され得るので、これらのシステムは、他に対して排他的なものではない。したがって、システムは、CAD、CAE、PLM および/またはCAMシステムの両方であることも十分にあり得る。
【0069】
CADソリューション(例えば、CADシステムまたはCADソフトウェア)によって追加的に意味されるのは、モデル化されたオブジェクトのグラフィカル表現、および/または、CATIAなどその構造化表現(例えばフィーチャツリー)に基づいて、モデル化されたオブジェクトを設計することに少なくとも適応化された、任意のシステム、ソフトウェアまたはハードウェアである。この場合、モデル化されたオブジェクトを定義するデータは、モデル化されたオブジェクトの表現を可能にするデータを含む。例えば、CADシステムは、エッジまたは線、場合によっては面または表面を使用する、CADモデル化オブジェクトの表現を提供し得る。線、エッジ、または表面は、様々な方式で、例えば非一様有理Bスプライン(NURBS)で表され得る。具体的には、CADファイルは仕様を含み、この仕様から幾何形状が生成され得、そしてこの幾何形状は、表現が生成されるのを可能にする。モデル化されたオブジェクトの仕様は、単一のCADファイルまたは複数のCADファイルに記憶され得る。CADシステムにおけるモデル化されたオブジェクトを表すファイルの典型的なサイズは、1部品当たり1メガバイトの範囲にある。
【0070】
CADのコンテキストでは、モデル化されたオブジェクトは、その表現、典型的には3D表現を可能にするデータによってモデル化される任意のオブジェクトであり得る。3D表現は、部品をすべての角度から見ることを可能にする。例えば、3Dモデル化オブジェクトは、3D表現されたとき、その軸のいずれかを中心として、または表現が表示されている画面中のいずれかの軸を中心として、扱われ回転され得る。3D表現の表示は、設計を容易にする(すなわち、設計者がそのタスクを統計的に達成する速度を速める)。製品の設計は製造プロセスの一部なので、これは、この産業における製造プロセスを迅速化する。
【0071】
モデル化されたオブジェクトは、製造製品、すなわち、製造されることになる製品であり得る。モデル化されたオブジェクトは、CAD/CAEソフトウェアソリューションまたはCAD/CAEシステムを例えば用いたその仮想設計の完了に続いて実世界で製造されることになる製品の幾何形状を表し得、この製品は、(例えば機械的)部品、もしくは部品のアセンブリ(もしくは、等価には、部品のアセンブリ。というのは、本方法の視点からは、部品のアセンブリはそれ自体で部品と見なされ得るからである。もしくは、本方法は、アセンブリの各部品に、独立に適用されてもよい)、またはより一般に、任意の剛体アセンブリ(例えばモバイルメカニズム)などである。CAD/CAEソフトウェアソリューションは、航空宇宙、建築、建設、消費財、ハイテクデバイス、産業機器、輸送、海事、および/または、オフショア石油/ガス生産もしくは輸送を含む、多様かつ無限の産業分野における製品の設計を可能にする。したがって、本方法によって設計された3Dモデル化オブジェクトは、一般的な機械部品、電子機械部品または電子部品(例えば、セキュリティおよび/または制御および/または計測製品、計算および通信機器、半導体、医療デバイスおよび機器を含む)、包装メカニズム(例えば、飲食物およびタバコ、美容およびパーソナルケア、家庭用製品の包装を含む)の部品など、任意の機械部品であり得る産業製品を表し得る。
【0072】
CAEソリューションによって追加的に意味されるのは、モデル化されたオブジェクトの物理的挙動の解析に適応化された、ソフトウェアまたはハードウェアによる任意のソリューションである。周知であり広く使用されているCAE技法は、有限要素モデル(FEM)であり、以下ではこれはCAEモデルとして等価に呼ばれる。FEMは通常、モデル化されたオブジェクトを要素、すなわち有限要素メッシュに分割することを伴い、その物理的挙動は、等式によって計算およびシミュレートされることが可能である。このようなCAEソリューションは、ダッソーシステムズによって商標SIMULIA(登録商標)の下で提供されている。別の成長しつつあるCAE技法は、CAD幾何学データなしで、種々の物理学フィールドからの複数のコンポーネントからなる複雑なシステムをモデル化および解析することを伴う。CAEソリューションは、製造する製品のシミュレーション、したがって最適化、改良、および妥当性検査を可能にする。このようなCAEソリューションは、ダッソーシステムズによって商標DYMOLA(登録商標)の下で提供されている。CAEは、新しいCADモデルによって様々な構造要件(次のものに限定されないが、質量、硬さ、強度、耐久性など)が確実に達成されるようにするために使用され得る。これらの要件のいくつかは、重要業績評価指標(KPI)と呼ばれることがある。多くの産業製品(例えば、自動車、航空機、消費者向けパッケージ商品、ハイテク)では、これらのKPIは対立する。例えば、質量が小さいほど、普通は硬さが下がる。したがって、KPI間の最良のトレードオフを見つけるために、最適化法がしばしば適用される。
【0073】
CAMソリューションによって意味されるのは、製品の製造データの管理に適応化された、ソフトウェアまたはハードウェアによる任意のソリューションである。製造データは一般に、製造する製品、製造プロセス、および必要とされるリソースに関係付けられるデータを含む。CAMソリューションは、製品の製造プロセス全体を計画し最適化するのに使用される。例えば、それは、実現可能性、製造プロセスの継続時間、または、特定のロボットなど製造プロセスの特定ステップで使用され得るリソースの数についての情報をCAMユーザに提供し得、したがって、管理または必要とされる投資に関する決定を可能にする。CAMは、CADプロセスおよび潜在的なCAEプロセスの、後続プロセスである。例えば、CAMソリューションは、CADモデルにおいて提供される押出しフィーチャと整合する機械加工パラメータまたは成形パラメータに関する情報を提供し得る。このようなCAMソリューションは、ダッソーシステムズによって、商標CATIA、Solidworks、または商標DELMIA(登録商標)の下で提供されている。
【0074】
したがって、CADソリューションとCAMソリューションとは、密に関係付けられる。実際、CADソリューションは、製品または部品の設計に焦点を合わせ、CAMソリューションは、それをどのように作るかに焦点を合わせる。CADモデルを設計することは、コンピュータ支援製造への最初のステップである。実際、CADソリューションは、CAMソリューションを用いて扱われる製造プロセスの間の誤差のリスクおよび精度の損失を削減するために、フィーチャベースのモデル化および境界表現(B-Rep)など、鍵となる機能を提供する。実際、CADモデルは、製造されるように意図される。したがって、それは、製造されることになるオブジェクトのバーチャルツインであり、これはデジタルツインとも呼ばれ、これは以下の2つの目的を有する。
【0075】
-製造されることになるオブジェクトの正しい挙動を特定の環境でチェックする。
【0076】
-製造されることになるオブジェクトの製造可能性を確実にする。
【0077】
上で論じられたように、本方法によって設計されるモデル化されたオブジェクトは、設計変数のボクセル分布、すなわち密度値および作動係数の最適分布から、または追加的に硬化パラメータから決定される。密度値、すなわち材料の有無の、このようなボクセル表現は、製造製品の離散的な幾何学表現を形成する。この離散的な幾何学表現は、データの離散セットを含むデータ構造である。各データは、製品の要素を指定し得、離散要素と呼ばれることがある。
【0078】
離散的な幾何学表現は、例では、100、1000、または10000個よりも多くのそのようなデータを含み得る。各データは、そのデータが製品の固体表現を形成するような、3D空間中で位置決めされたそれぞれの幾何学エンティティを表し得る。幾何学エンティティの集約(すなわち、和集合または並置)は、全部合わせて、3Dオブジェクトを固体/体積として表す。本方法は、設計変数の取得された最適値を使用して3D離散幾何学表現を取得するステップを含み得る。具体的には、本方法は、(例えば、B-Repを取得することによって)ロボット本体の固体表現を再構築するために、密度値の取得された最適分布を使用し得る。
【0079】
本方法は生産プロセスに含まれ得、この生産プロセスは、本方法の実施後、本方法によって設計/処理/出力されたモデル化されたオブジェクトに対応する物理的製品(ロボット本体、またはそのようなロボット本体を有するロボット全体)を生産することを含み得る。生産プロセスは、以下のステップを含み得る。
【0080】
-本方法を(例えば自動的に)適用し、それにより、本方法によって出力されたCADモデルまたはCAEモデルを取得する。
【0081】
-取得されたCADまたはCAEモデルを製品の製造に使用する。
【0082】
本方法はまた、CAEモデルをCADモデルに変換することも含み得る。このような変換は、CAEを入力として、それを、製品を表すフィーチャツリーを含むCADモデルに変換する、以下の(例えば完全に自動的な)変換プロセスを実行することを含み得る。変換プロセスは、以下のステップを含む(これらのステップの各々を実装するための、既知の完全自動アルゴリズムが存在する)。
【0083】
-CAEモデル、またはその外表面/スキンをセグメント化し、それにより、CAEモデルから、例えばモデルの表面部分を各々が形成するセグメントへの、セグメント化を取得する。
【0084】
-セグメントを処理することによってCADフィーチャの幾何形状を検出する。これは例えば、セグメント、またはセグメントのグループを検出することを含み、これらは各々、所与のCADフィーチャ幾何形状(例えば、押出し、回転、または任意の正準プリミティブ)、および任意選択で、その幾何学的特性(例えば、押出し軸、回転軸、またはプロファイル)を形成する。
【0085】
-検出された幾何形状を、例えば幾何形状および/またはその上記の幾何学的特性に基づいて、パラメータ化する。
【0086】
-CAD演算子の各々を、CAEモデルのそれぞれの部分にフィッティングする。これは、その部分の幾何形状に基づいて、例えば、同じフィーチャ幾何形状の一部として検出された近隣セグメントを集約することによって行う。
【0087】
-幾何形状および対応するCAD演算子をフィーチャツリーにエンコードする。
【0088】
-任意選択で、フィーチャツリーを実行し、それにより製品のB-rep表現を取得する。
【0089】
-フィーチャツリーおよび任意選択でB-repを出力する。フィーチャツリーおよび任意選択でB-repは、CADモデルを形成する。
【0090】
CADモデルを製造に使用することは、CADモデルによって表される製品の製造に含まれる/関与する、任意の実世界のアクションまたは一連のアクションを示す。CADモデルを製造に使用することは、例えば以下のステップを含み得る。
【0091】
-取得されたCADモデルを編集する。
【0092】
-CADモデルもしくは対応するCAEモデル(例えば、CAEからCADへの変換プロセスの後でCADモデルが生じる元であるCAEモデル)に基づいてシミュレーションを実施する。これは、機械的な、使用上の、および/もしくは製造上のプロパティおよび/もしくは制約を妥当性検査するためのシミュレーション(例えば、構造シミュレーション、熱力学シミュレーション、空気力学シミュレーション)などである。
【0093】
-シミュレーションの結果に基づいてCADモデルを編集する。
【0094】
-任意選択で(すなわち、使用される製造プロセスに応じて機械製品の生産はこのステップを含むこともあり含まないこともある)、製造製品の生産/製造のために、(例えば編集された)CADモデルに基づいて製造ファイル/CAMファイルを(例えば自動的に)決定する。
【0095】
-CADファイル、および/もしくは、製造ファイル/CAMファイルを、工場に送る。
【0096】
ならびに/または、
-決定された製造ファイル/CAMファイル、もしくはCADモデルに基づいて、本方法によって出力されたモデルによって元々表された機械製品を(例えば自動的に)生産/製造する。これは、製造ファイル/CAMファイル、および/もしくはCADファイルを、製造プロセスを実施する機械に(例えば自動的に)供給することを含み得る。
【0097】
この最後の生産/製造のステップは、製造ステップまたは生産ステップと呼ばれ得る。このステップは、例えば、CADモデルおよび/またはCADファイルが1つまたは複数の製造機械に、または機械を制御するコンピュータシステムに供給されると、CADモデルおよび/またはCAMファイルに基づいて部品/製品を製造/製作する。製造ステップは、任意の既知の製造プロセスまたは一連の製造プロセスを実施することを含み得、これらは例えば、1つもしくは複数の付加製造ステップ、1つもしくは複数の切断ステップ(例えば、レーザ切断もしくはプラズマ切断ステップ)、1つもしくは複数のスタンピングステップ、1つもしくは複数の鍛造ステップ、1つもしくは複数の曲げステップ、1つもしくは複数の深絞りステップ、1つもしくは複数の成形ステップ、1つもしくは複数の機械加工ステップ(例えばフライス加工ステップ)、および/または、1つもしくは複数のパンチングステップである。本設計方法は部品/製品を表すモデル(CAEまたはCAD)の設計を改善するので、製造およびその生産性もまた改善される。
【0098】
CAMファイルは、CADモデルから取得される製造ステップアップモデルを含み得る。製造ステップアップは、機械製品を製造するのに必要とされるすべてのデータを含み得、したがってこれは、CADモデルによって取り込まれるものに対応する幾何形状および/または材料分布を有し、場合によっては製造許容誤差までを有する。生産ファイルを決定することは、CADモデルから生産ファイルを(例えば自動的に)決定するための任意のCAM(コンピュータ支援製造)またはCAD-to-CAMソリューション(例えば、任意の自動化されたCAD-to-CAM変換アルゴリズム)を適用することを含み得る。このようなCAMまたはCAD-to-CAMソリューションは、以下のソフトウェアソリューションのうちの1つまたは複数を含み得、これらは、製造する製品のCADモデルに基づいて、所与の製造プロセスのための製造命令およびツールパスを自動生成することを可能にする。
【0099】
-Fusion 360
-FreeCAD
-CATIA
-SOLIDWORKS
-ダッソーシステムズのNC Shop Floor programmer。これは、非特許文献2において説明されている。
-ダッソーシステムズのNC Mill-Turn Machine Programmer。これは、非特許文献3において説明されている。
および/または、
-ダッソーシステムズのPowder Bed Machine Programmer。これは、非特許文献4において説明されている。
【0100】
製品/部品は、付加製造可能な部品、すなわち、付加製造(すなわち3D印刷)によって製造されることになる部品であり得る。この場合、生産プロセスは、CAMファイルを決定するステップを含まず、3DプリンタにCADモデルを直接に(例えば、かつ自動的に)供給することによって、直接に生産/製造ステップに進む。3Dプリンタは、機械製品を表すCADモデルが供給されると(例えば、かつ、3Dプリンタオペレータによって3D印刷が開始されると)、CADモデルに従って機械製品を直接かつ自動的に3D印刷するように構成される。言い換えれば、3Dプリンタは、それに(例えば自動的に)供給されたCADモデルを受け取り、CADモデルを(例えば自動的に)読み取り、材料を例えば一層ずつ足し合わせることによって部品を(例えば自動的に)印刷して、CADモデルによって取り込まれた幾何形状および/または材料分布を再現する。3Dプリンタは、材料を加え、それにより、CADモデルによって取り込まれた幾何形状および/または材料分布を、3Dプリンタの解像度まで、また任意選択で許容誤差および/または製造補正ありまたはなしで、実際に厳密に再現する。製造は、例えばユーザ(例えば、3Dプリンタのオペレータ)によってまたは自動的に(3Dプリンタまたはそれを制御するコンピュータシステムによって)、例えば3Dプリンタの仕様に合致するようにCADファイルを修正することによって、そのような製造補正および/または許容誤差を決定することを含み得る。生産プロセスは、追加的または代替的に、例えば(参照により本明細書に組み込まれる特許文献1に記載のように)オーバーハング量を最小化するための印刷方向と、層スライシング(すなわち、各層の厚さの決定と、層ごとのパス/軌道、および3Dプリンタヘッドについての他の特性(例えば、レーザビームの場合、例えばパス、速度、強度/温度、および他のパラメータ)とを、CADモデルから(例えば、3Dプリンタまたはそれを制御するコンピュータシステムによって自動的に)決定することを含み得る。
【0101】
あるいは、製品は、フライス加工部品(すなわち、フライス加工によって製造された部品)など、機械加工部品(すなわち、機械加工によって製造された部品)であり得る。あるいは、製品は、成形部品、すなわち成形(例えば射出成形)によって製造された部品であり得る。このような場合、生産プロセスは、CAMファイルを決定するステップを含み得る。このステップは、製品のCADモデルからCAMファイルを自動的に取得するための任意の適切なCAMソリューションによって、自動的に実施され得る。CAMファイルの決定は、生産プロセスに影響し得るいずれかの幾何学的特質(例えば、誤差またはアーチファクト)をCADモデルが有するかどうかを(例えば自動的に)チェックし、そのような特質を(例えば自動的に)補正することを含み得る。
【0102】
機械加工の場合は、チェックに加えてさらに、CAMファイルを決定することは、機械加工またはフライス加工パス、すなわち、製品を機械加工するために機械加工ツールによって辿られることになるパスを、(例えば自動的に)決定することを含み得る。したがって、CAMファイルを決定する結果として、機械加工パスを含むCAMファイルと、任意選択で、設定された機械パラメータおよび/または構成されたネスティングの仕様とが得られ、これが出力される。この出力されたCAMファイルは、次いで機械加工ツールに(例えば、直接および自動的に)供給され得、かつ/または、機械加工ツールは、次いで、ファイルを読み取ることによって(例えば、直接および自動的に)プログラムされ得、この時点で、生産プロセスは、生産/製造ステップを含み、このステップでは、機械は、例えば生産ファイルを直接および自動的に実行することによって、生産ファイルに従って製品の機械加工を実施する。機械加工プロセスは、機械加工ツールが材料の実世界ブロックを切断して、例えば許容誤差(例えば、フライス加工の場合は数十ミクロン)まで、CADモデルによって取り込まれた幾何形状および/または材料分布を再現することを含む。
【0103】
成形の場合は、チェックに加えてさらに、CAMファイルを決定することは、次いで、CADモデルに基づいて、成形に使用されることになる液体材料の量、および/または、液体材料を型の内部で硬化/凝固させるための時間を決定し、これらのパラメータを含むCAMファイルを出力することをさらに含み得る。次いで、生産プロセスは、出力されたファイルに基づいて成形を(例えば自動的に)実施することを含み、型は、決定された硬化時間にわたり、例えば許容誤差まで(例えば、離型のための抜き勾配角度の組込みまたは抜き勾配角度の修正まで)、液体材料を、CADモデルによって取り込まれた幾何形状および/または材料分布に対応する形状に形作る。
【0104】
次に、設計された3Dロボット本体モデルによって表されるロボット本体の製造、またはそのようなロボット本体を有するロボットの製造について、より詳細に例として論じられる。
【0105】
本方法は、多くの変形可能材料から作られ種々の方式で作動されることが可能な変形可能部分を有するロボットを表す3Dロボット本体モデルをもたらし得る。ロボット本体またはロボットは、シリコンなどの材料から製造され得、流体圧力、典型的には空気圧によってそれらを作動し得る。他の作動、例えばケーブルが使用されてもよい。特に、本方法を使用して設計されたロボットは空気圧による作動を使用し得るが、これは、最も一般的なアプローチでもある。本方法によって得られる(仮想)設計は、当技術分野における既知の技法を使用する製作において実現され得る。
【0106】
本発明によって得られる設計に従って作られたロボットは、変形可能な、かつ/または剛性の、いくつかの異なるエリア/部分を有し得、変形可能エリアは、受動的または能動的とすることができる。能動的エリアは、作動されるように構成されたエリアであり、受動的エリアは、作動されないことになるエリアである。生き物の解剖学に似て、能動的エリアは「筋肉」として等価に呼ばれることがあり、剛性エリアは「骨」または「骨格」として等価に呼ばれることがある。受動的または能動的エリアの各々は、ある程度、変形可能であり得、または変形不可能すなわち剛性であり得る。能動的エリアは、種々の方式で作動され得る。作動された剛性エリアは、剛性ゆえ、ごくわずかな変形を示すのみであり得る。したがって、本方法は、剛性エリアを受動的と考え得る。異なるプロパティを有する別個の部分は、異なるおよび/または独立した製作プロセスを必要とし得、後で全部一緒に組み立てられる必要があり得る。これは、種々の目的に役立つ変形可能部分を有するロボットのための当技術分野における既知の方法に従って行われることが可能である。このような方法によれば、各部分が個別に製作され、次いで組み立てられて、所望の結果に到達し得る。例が、非特許文献5に記載されている。
【0107】
例では、本方法は、設計変数の最適な連続値に基づく決定された3Dロボット本体モデルに基づいてロボット本体または(全体的な)ロボットを製造することをさらに含み得る。本方法は、変形可能な能動的/受動的部分、および/または変形不可能な受動的/能動的部分の各々を、それぞれの製造プロセスおよびそれぞれの材料に従って製造し得る。次いで本方法は、これらの部分を共に組み立ててロボットを製造し得る。製造は、(例えば、材料タイプの、または製造ツールに対する材料利用可能性の、妥当性検査または入力のために)コマンドがオペレータから受け取られると、自動的に、または少なくとも部分的には自動的に、実施され得る。
【0108】
望まれる数の要素からロボットを組み立てることが可能であることを確立したところで、次に、筋肉制御を含む、ロボットの個別エリアの各々の製作について論じられる。
【0109】
受動的エリアの変動する硬さは、例えば、文書(非特許文献6)による、格子微細構造を利用する既知の3D印刷技法によって生成され得る。
【0110】
流体圧力によって制御される、個別の筋肉挙動のための作動は、管または個別の空気ポンプユニットによる個別の空気圧供給のおかげで、個別であり得る。これにより、作動の振幅およびタイミング(例えば位相シフト)は、したがって制御可能である。所与の空気圧に対して生成される筋力および変位の量に関しては、これは、設計において各場所に割り当てられる振幅値の関数であるように局所的に適応化されることが可能である。この適応を実施するために、構造最適化の方法が使用され得る。これにより、筋肉の動きを、妥当な誤差内で、本方法によって生成(すなわち設計)された任意の形態および挙動に適応させることが実現可能である。トポロジ最適化は筋肉内部の材料を動かすことができ、規定された伸張および収縮に一致するように挙動を修正する内部構造に到達する。
【0111】
筋肉制御戦略は、当技術分野における多くの制御戦略に従って実施され得、正弦波作動のような単純な作動に限定されることは決してない。後で論じられるように、本方法は、物理学を通したバックチェーニング(back chaining)による勾配ベースの最適化を実施し得、それにより、任意の制御戦略を通して連鎖律を辿って、作動を統御するパラメータまで遡ることができ、したがって、それらはロボット形態と協調最適化され得る。これは、勾配を利用しない既知のロボット生成方法に対して相対的な別の利点を形成する。というのは、この協調最適化ならびに制御戦略は不可能だからである。
【0112】
上で論じられたように、ロボット本体モデルは、変形可能材料で各々が作られた1つまたは複数の変形可能部分を有する。エンジニアリングにおいて知られているように、変形とは、力(またはその応力)の下での、オブジェクトのサイズまたは形状の変化を指す。実際上は、実際に見られるすべての材料は、変形可能である。すなわち、圧力が加えられると変形する。したがって、剛性材料、すなわち力の下で変形しない材料は、仮言的である。エンジニアリングでは、剛性材料は、力(またはその応力)が加えられたときにごくわずかな変形、例えばどんな方向にも1%未満の変形を有する材料であると一般に考えられている。言い換えれば、剛体/剛性オブジェクトは、変形がゼロであるかまたはそれが無視可能なほど小さい固体である。剛体上のいずれか2つの所与の点間の距離は、それに対して及ぼされる外力またはモーメントにかかわらず、時間において一定のままである。剛性は、各材料のヤング率によって定義される硬さパラメータに従って定義され得る。例えば、本方法の適用例では、しきい値よりも高いヤング率を有する各材料は、剛性すなわち変形不可能と考えられ得る。しきい値は、ロボット本体またはロボットが実践に移されたときに受けると想定される力および応力に依存し得る。しきい値は、例えば、20GPa、50GPa、または100GPaであり得る。一般に、剛性のオブジェクトはまた、コンパクトかつあまり伸ばされないときには特に、最大パーセンテージの伸び(すなわち歪み)によって定義されることも可能である。例えば、剛性部分が、どんな方向にも1%よりも大きく変形しないことがあり得る。さらに、1つまたは複数の変形可能部分の少なくとも一部は、作動されるように構成される。作動によって意味されるのは、変形可能材料の能動的な変形、例えば収縮または伸張である。能動的な変形は、加えられた力/応力の下での変形である。作動関数は、そのような能動的な変形を表す。アクチュエータを(上で論じられたように)設計する際に必要な力/応力は、任意の既知の方式で決定されることが可能である。例では、能動的な変形可能材料は、空気ポケットのネットワークからなるものであり得る。このネットワークは、空気がポンプでネットワークに注入されて伸張性の(膨張性の)力が生み出されることが可能なように、または、空気がポンプで吸い出されて収縮性の(収縮)力が生み出されることが可能なように構成され得る。別の例では、能動的な変形可能材料の内部には、複数の弾性壁に押し付けられるかまたは引き寄せられてそれにより膨張性または収縮性の力を生むように構成された(例えば、空気式または電気式の)リニアアクチュエータのアレイが備わることが可能である。設計者は、この場合、このような膨張性および/または収縮性の効果を生むようにアクチュエータを設計し得る。
【0113】
「所定のパラメータに基づく目的関数を提供する」ことによって意味されるのは、本方法が、所定のパラメータ(のセット)を目的関数におけるパラメータとして使用して定義される目的関数を取得することである。目的関数はまた、設計変数(のセット)の連続関数でもある。「運動メトリック」によって意味されるのは、ロボットの運動に関する尺度である。運動は、ロボットの変位および/または回転のような、巨視的な運動を含み得る。例では、目的関数は、時間期間中のロボットの質量中心/重心の変位を少なくとも部分的に計算し得る。このような例では、最適化問題は、この時間期間にわたる変位を最大化すること、すなわち平均速度を最大化することにあり得る。このような最適化された設計の結果として、ミッションまたは技術的タスクを実施するための実際的な条件下で、(例えば、エネルギー消費および/または時間消費の点で)より効率的なロボットが取得される。あるいは、または追加的に、運動は、力が加えられたときの変形のような、微視的な運動を含み得る。例では、目的関数は、軸力および/または捩じれの下でのロボットの(例えば最大の)変形を少なくとも部分的に計算し得る。運動メトリックは、本方法による設計済み(かつ製造済み)ロボットが使用されると想定される適用例に従うものであり得る。よって、目的関数は、この適用例における関心対象のロボット挙動に関係付けられ得る。目的関数の最適値は、この運動メトリックに関するロボットの最適な性能に対応する。「ロボットの運動メトリックを定量化する」ことによって意味されるのは、目的関数が、この運動メトリックのメトリックとしての数量、例えば、センチメートルで表される変位またはマイクロメートルで表される変形を出力することである。
【0114】
上で論じられたように、所定のパラメータは、3D空間のグリッディングを形成する複数のボクセルを含む。このような複数のボクセルは、ロボットの幾何形状がその中で記述され得る離散空間を提供する。例では、複数のボクセルは、3D空間における立方体を形成し得る。複数のボクセルのサイズ(例えば、ボクセルによって形成される立方体のエッジのサイズ)は、(適用例に応じた)望ましい最大サイズの種々のロボットを設計するのを可能にするほど十分に大きいものであり得る。
【0115】
所定のパラメータは、1つまたは複数の材料に関係付けられる1つまたは複数のパラメータをさらに含む。このようなパラメータは、以下では、材料パラメータとして等価に呼ばれることがある。これらのパラメータは、硬さ(ヤング率)、硬度、靭性、剪断弾性係数、ポアソン比、ラメ係数、比質量などのうちの1つまたは複数を含む機械的および/または化学的プロパティであり得る。「1つまたは複数の材料に関係付けられる」ことによって意味されるのは、材料パラメータの各々が、1つまたは複数の材料の機械的および/または物理的プロパティを表し得ることである。言い換えれば、材料パラメータの各々は、1つもしくは複数の材料のうちの1つの機械的および/もしくは物理的プロパティに等しいか、または、1つもしくは複数の材料のうちの1つの許容可能な値の範囲を表すかのいずれかであり得る。例えば、材料パラメータは、変形可能および/または変形不可能材料の硬さの最小および/または最小値を含み得る。この場合、本方法は、最適な設計変数を取得すると、それぞれの最大および/または最小を満たすように、ロボットのための1つまたは複数の変形可能/変形不可能材料を決定し得る。
【0116】
所定のパラメータは、作動関数をさらに含む。作動関数は、時間期間にわたる変形可能材料の変形を作動する作動信号を表す。作動信号は、1つまたは複数のアクチュエータまたは外力からロボットに加えられる作動を表す。作動関数は、1つまたは複数のパラメータを使用して定義され得る。例では、作動関数は、時間依存の関数であり得る。作動関数は、周期関数および/または振動関数、例えば、周波数、位相、および振幅パラメータによって定義される正弦関数であり得る。あるいは、作動関数は、このような周期関数および/または振動関数の合計、例えば、種々の位相、周波数、および/または振幅を有する正弦関数の合計であり得る。
【0117】
所定の変数は、追加的に、時間期間を含み得る。時間期間は、ロボットの適用例やロボットに加えられる力の性質に従って自動的に定義されてもよく、かつ/または、ユーザによって決定されてもよい。いくつかの例では、時間期間は、ロボットの挙動が関心対象である時間間隔、例えば、オブジェクトを掴む時間期間中の時間間隔であり得る。いくつかの例では、時間期間は、ロボットの状態が対応する定常性に達するのに十分なほど長い時間間隔であり得る。例えば、ロボットのアームがその定常速度に達するとき、または、外力の下の構造が定常変形状態に達するときなど。
【0118】
上で論じられたように、いくつかの例では、作動関数は、周期関数、すなわち、周波数によって定義される定期的なサイクルでその値を繰り返す関数であり得る。周期的な作動関数を採用することは、最適化が前の作動サイクルの反復の利益を得るような繰返しの作動を、ロボット本体が受けられるようにすることによって、改善されたソリューションを構成し得る。一方では、多数のローディングサイクルを可能にすることは、計算的にコストがかかる。他方、サイクル数を著しく低減することは、満足のいかない運動メトリックをロボットに提供し得る(すなわち、設計変数の最適値は、目的関数の満足のいく値を提供しない)。例では、本方法は、時間期間が十分に多数の作動サイクルを含むように、時間期間および/または周波数を設定し得る。特定の例では、本方法は、時間期間を固定されたままにし、少なくとも6または少なくとも10(ローディング)サイクルが時間期間に収まることが可能なように周波数を十分に大きく設定し得る。
【0119】
上で論じられたように、本方法は、作動関数を所定の変数とする。これにより、本方法は、より効率的な最適化戦略を取得することができる。というのは、アクティブ化関数に関係付けられる追加のパラメータが決定されることは必要とされないからである。さらに、これにより、本方法は、最適化問題がより速く、すなわちより少数の反復で、最適な連続解に収束するように、アクティブ化関数を設定することができる。例えば、本方法は、上で論じられたように、アクティブ化関数を周期関数に設定し得る。他方、周期関数は、上で論じられたようなリニアアクチュエータまたは特に空気ポケットのように、多くの実際的なアクチュエータをモデル化するのに効率的に使用されることが可能である。他方、周期関数は、正弦曲線であり得、特に、達成される電力が与えられた場合のエネルギー消費の点でロボットの最適な挙動を可能にし得る。正弦曲線などの周期関数は、目的関数が速度であるときには特に適切である。
【0120】
所定の変数は、最適化において使用される複数の他のパラメータを含み得る。例えば、所定の変数は、材料で満たされたボクセルの体積分率に対する制限を示すパラメータ、ロボットの作動エネルギーに対する制限を示すパラメータ、空に帰せられる最小ヤング率を示すパラメータ、最大質量、勾配ベースの最適化を制御する1つまたは複数のパラメータを含み得る。
【0121】
論じられたように、設計変数は、複数のボクセルにわたる密度値の分布、すなわち、各ボクセルにおいて値が定義された密度分布を含む。各密度値は、ボクセルについて、ボクセルが材料で満たされる割合を、空と充満との間で連続的かつ単調に表す。例では、各密度値は、材料で満たされたボクセルの体積分率を表し得る。このような例では、密度値は0と1の範囲にあり得、0は空のボクセルを意味し、1は完全に充満したボクセルを意味する。
【0122】
設計変数は、複数のボクセルにわたる、すなわち各ボクセルにおいて値が定義された、作動係数の分布をさらに含む。各作動係数は、ボクセルについて、作動信号に対するボクセル内部の材料の応答を表す。応答は、応答の位相および振幅によって表され得る。応答は、作動信号との関係で表され得る。すなわち、作動信号と応答との間にどのように位相シフトが存在するか、および/または、応答が作動信号と比較してどれくらい増幅されるかを表すことによって、表され得る。
【0123】
例では、所与のボクセルにおける作動信号は、所与のボクセルにおけるそれぞれの作動関数と、所与のボクセルにおける密度の値と、所与のボクセルにおけるアクティブ化係数との関数である。作動信号は、密度のペナライズされた値の関数であり得る。具体的には、所与の場所におけるアクティブ化信号は、ペナライズされた密度と、作動関数と、アクティブ化係数との乗算であり得る。
【0124】
次いで本方法は、目的関数の勾配ベースの最適化を実施するために設計変数を探索することによって、設計変数の最適な連続値を取得する。「設計変数を探索する」ことによって意味されるのは、目的関数の最適化を実施するために、領域(許容領域とも呼ばれる)中の種々の値に設計変数を設定することによって、目的関数の値を評価することである。「目的関数の最適化を実施する」ことによって意味されるのは、目的関数の最適値を取得するために設計変数の最適値のセットを取得することである。最適化を実施することは、目的関数の最小化もしくは最大化を含み得るか、または、目的関数の最小化もしくは最大化であり得る。したがって、設計変数の最適値は、目的関数を最小化または最大化する値であり得る。最適化は勾配ベースの最適化であり、すなわち、設計変数を探索することは、目的関数のそれぞれの勾配を使用して、ある最適化反復におけるある候補設計変数(すなわち、候補密度変数および候補作動係数)から、次の反復における別の候補設計変数に移行することに基づく。ある反復から別の反復へのこのような移行は、連続的なマップであり得、例えば、前の反復における候補設計変数と重み付き勾配との間の連続的な一次結合であり得る。目的関数のそれぞれの勾配は、(例えば所与のボクセルにおける)この候補設計変数に対する目的関数の偏導関数であり得るか、またはそれを含み得る。勾配ベースの最適化は、任意の既知の方法によるものであり得る。
【0125】
上で論じられたように、取得される最適な設計変数は、連続的であり、すなわち、最適化の間に連続的な範囲内の任意の値を取ることができる。他方、最適化の出力においては、取得された最適値は、各ボクセルにおける最適な設計変数の各々についての連続的な範囲の1つの単一値である。例では、最適な密度値は、材料で満たされたボクセルの値と空のボクセルの値との間の、例えば0と1との間の任意の値であり得る。最適化の出力において、取得された密度値は、異なる値のセット、例えば少なくとも3つの異なる値のセットを形成し得る。言い換えれば、密度値の連続的な範囲からの少なくとも3つの異なる値が、最適化の結果の中に、すなわち結果的な最適な密度値の中に現れる。例えば、異なる値のうちの1つは空のボクセルを表し得、1つは完全に満たされたボクセルを表し得、1つは部分的に満たされたボクセルを表し得る。例では、最適化の出力において、取得されたすべての最適な作動係数値のセットは、少なくとも4つの異なる値を含み得、これらのうちの1つは受動的領域を表し、これらのうちの少なくとも2つは、能動的領域の異なる位相を表す。言い換えれば、作動係数値の連続的な範囲からの少なくとも4つの異なる値が、最適化の結果の中に、すなわち結果的な最適な作動係数値の中に現れる。
【0126】
次いで本方法は、設計変数の最適な連続値に基づいて、3Dロボット本体モデルを決定する。例では、本方法は、複数のボクセルに対する任意の再構築方法を使用して、また、(ボクセルの充填に比例する)密度値の最適分布に基づいて、ロボットの幾何形状を再構築し得る。
【0127】
勾配ベースの最適化を実施することは、反復的なプロセスを含み得る。反復的なプロセスの各反復は、所定の変数に基づいてロボットをシミュレートし、それにより時間期間にわたるシミュレーション変数の値を取得することを含み得る。「シミュレーション変数」によって意味されるのは、シミュレーションの時間期間中の複数の時点におけるロボットの状態を記述/定義する複数の変数である。例では、シミュレーション変数は、時間期間にわたる、位置、速度、および変形勾配の変数の一揃いであり得る。時間期間にわたるシミュレーション変数の値を取得することはさらに、(候補)設計変数のそれぞれの値に関係し得る。次いで本方法は、時間期間にわたる、候補設計変数についての取得されたシミュレーション変数の値に対応する目的関数の値を取得し得る。したがって、最適化ステップの各反復は、その反復の候補設計変数の目的関数のそれぞれの値を評価するための少なくとも1つのシミュレーションステップを含み得る。
【0128】
本方法は、物理学および力学をシミュレートする任意の既知の方法に従ってシミュレートを実施し得る。例では、シミュレートすることは、メッシュレス法(メッシュフリー法としても知られる)であり得る。メッシュレス法の使用は、特に、ロボットが変形可能材料で構成されるときに有益である。メッシュレス法は、有限要素法のようなメッシュベースの方法とは対照的に、大きい変形および/または歪みを受けることがある材料に対してメッシュを使用しない。このような場合、材料の大きい変形/歪みは、それに取り付けられたそれぞれのメッシュに対して大きい変形および/または歪みを課し、この結果、変形力学に関するメッシュベースの方法の適用例においてシミュレーションを取得する際に特異点問題が生じ得る。
【0129】
例では、勾配ベースの最適化の各反復において、シミュレートすることはマテリアルポイント法(MPM)を含み得る。当分野で知られているように、MPMはメッシュレス法である。MPMは、複数のボクセルによって形成されるグリッディングに対して位置する複数の粒子(すなわちマテリアルポイント)を定義することを含み得る。「複数のボクセルによって形成されるグリッディングに対して位置する」ことによって意味されるのは、各粒子の(大域的または普遍的な)場所がグリッディングに対して定義されることである。複数の粒子は、ロボットの幾何形状の離散化を提供する。
【0130】
本方法によるMPM実装形態は、設計変数の値に基づくヤング率を各粒子に割り当てることをさらに含み得る。これらの設計変数は、特に、密度値のそれぞれの分布であり得る。MPMは、(例えば値1の)充満したボクセルと(例えば値0の)空のボクセルとの間の中間密度値の存在をペナライズするために、ヤング率を割り当て得る。言い換えれば、本方法によるMPM実装形態は、現実の物理的有意性を有さない中間密度の形成を抑制し得、これは、1または0に近い密度の、より鮮鋭な形態につながる。さらに言い換えれば、ペナライゼーションは、著しく低いヤング率を中間密度が呈するように、硬さと密度との関係を修正し得、それにより、最適化がこれらの値の探索を回避できるようにする。
【0131】
例では、MPMは、以下のタイプのヤング率を割り当て得る。
【0132】
【0133】
上式で、Eは、割り当てられるヤング率であり、ρは密度値であり、p1はペナライゼーションパラメータであり、Emaxは最大ヤング率であり、Eminは最小ヤング率である。例では、ペナライゼーションパラメータは、3よりも大きい定数であり得、例えばp1=4であり得る。最大ヤング率は、材料パラメータに関して上で論じられたように、1つまたは複数の材料のヤング率に関係付けられる上限範囲であり得る。最小ヤング率は、数値的安定性のための小さい定数であり得る。言い換えれば、Eminは、空の場合のヤング率を表すための小さい数であり得る。例では、Emin=0.01である。
【0134】
さらに、MPMは、各粒子に、1つまたは複数の対応するボクセルの密度値に基づく質量の値を割り当てることをさらに含み得る。これらの対応するボクセルは、粒子があるボクセル、および/または、このボクセルの近隣ボクセルのグループを含み得る。例えば、MPMシミュレーションは、最初に、それぞれのボクセルにつき1つの粒子として、粒子のセットを生成することを含み得、粒子に割り当てられる質量は、それぞれのボクセルの密度値に(もっぱら)基づき得、例えばそのような密度値に比例し得る。他の例では、1つまたは複数の対応するボクセルの密度値は、対応するボクセルにおける密度値の加重平均であり得る。加重平均は重みのセットを含み得、各重みは、対応するボクセルのうちの1つに対応する。割り当てられる質量の値は、例えば複数のボクセルにわたる定数による、加重平均に比例し得る。
【0135】
例では、複数の粒子は、各ボクセルが粒子を1つだけ含むようなグリッディングに対して位置し得る。このような例では、MPMは、粒子が位置するこのそれぞれのボクセルの密度値に比例する質量の値を割り当て得る。割り当てられる質量の値は、以下のタイプのものであり得る。
【0136】
mp=Mmax×ρ (2)
【0137】
上式で、mρは、粒子に割り当てられる質量であり、ρは密度値であり、Mmaxは、粒子についての最大質量を表す、複数のボクセルにわたる定数である。Mmaxの値は、1に設定され得る。
【0138】
あるいは、割り当てられる質量の値は、以下のタイプのものであり得る。
【0139】
mp=Mmax×min(ρ(1+γκ),1) (3)
【0140】
上式では、上に定義された表記法に加えて、κは、後で詳細に論じられるように硬化パラメータである。パラメータγは、10よりも小さい値、例えば7であり得る重み付けパラメータである。
【0141】
さらに、MPMは、作動係数と作動関数とに基づく作動信号の値を各粒子に割り当てることをさらに含み得る。例では、割り当てられる作動信号の値は、作動係数のそれぞれの値と、密度のそれぞれのペナライズされた値と、それぞれの作動関数とに比例し得る。密度のそれぞれの値は、上で論じられた密度値の加重平均として取得され得る。同様に、MPMは、加重平均を使用し、任意選択で密度に対する重みと同じ重みを使用して、作動係数のそれぞれの値を取得し得る。MPMは、密度のそれぞれの値に対してペナライゼーションを使用し得る。これは、モデルの物理的意味を改善する。というのは、モデル化の観点からは、密度が0に近づくにつれて作動信号は0に下がるからである。さらに、このようなペナライゼーションは、変形可能で軽い粒子について変形勾配の高増幅を取得するのを回避することによって、数値的安定性を改善する。割り当てられる作動信号の値は、以下のタイプのものであり得る。
【0142】
【0143】
上式で、Aは、割り当てられる作動信号であり、ρは密度値であり、p2はペナライゼーションパラメータであり、Aは、複数のボクセルにわたる定数である。Amaxの値は、10よりも小さい定数、例えば5よりも小さい定数に設定され得る。例では、本方法は、Amaxを、ロボットの変形可能部分の最大ヤング率すなわちEmax(または、以下で論じられるような多剛性の例によればEact)の約5~7分の1の値にし得る。
【0144】
さらに、sin(ωt)は、周波数ωを有する、(時間tに関して)時間変動する作動関数である。時間期間が1~1.5秒である例では、本方法は、周波数を1と100との間の値、例えば50未満に設定し得る。他の例では、正弦関数は、一般的な作動関数f(t)であり得、例えば、種々の周波数、振幅、または位相シフトを有するいくつかの正弦関数の一次結合であり得る。
【0145】
MPMは、粒子に割り当てられたヤング率、質量の値、および作動信号の値に基づいて、MPMシミュレーションステップを反復することをさらに含み得る。例では、シミュレーションステップの各反復において、MPMは、複数のマテリアルポイントに対応するメッシュ/グリッドを決定する。言い換えれば、シミュレーションの初期化ステップで、MPMはこのメッシュを、複数の粒子に対するメッシュを考えることによって決定し得る。MPMは、当分野で知られているように、決定されたメッシュを使用して複数の速度を取得し得る(後で「グリッド演算」段階としての実装形態で論じられるように)。より具体的には、MPMは、決定されたメッシュに対して、例えばメッシュのノードに対して、また、設定変数と所定のパラメータとに基づいて、作動応力テンソルを計算し得る。次いでMPMは、ニュートンの運動法則と、任意選択で1つまたは複数の境界条件とを適用して、上記の複数の速度を取得し得る。次いでMPMは、取得された速度に基づいて各粒子の変位を計算し得る(後で「グリッドから粒子へ」段階としての実装形態で論じられるように)。
【0146】
当分野で知られているように、MPMの決定されたメッシュは、位置、速度、および変形勾配の新しいフィールド(すなわち分布)を見つけるためにニュートン力学が算出される場所である。次いでMPMは、補間を使用して、算出された新しいフィールドを粒子上で移転し返す。このようなグリッド/粒子移転および補間は、当技術分野における任意の既知の方式に従って実施されることが可能であり、これは本開示の範囲外である。
【0147】
例では、MPMは、各粒子につき、また、決定されたメッシュに対して、作動コーシー応力テンソルを以下の関係に従って計算し得る。
【0148】
【0149】
上式で、σaは応力であり、Fは変形勾配であり、JはFの行列式であり、Iは単位行列である。ここで、λおよびμは、割り当てられたヤング率およびポアソン係数を用いて取得されるラメ係数である。ポアソン係数は種々の材料についてわずかにしか変動せず、特に、等方性の連続的な材料間ではそうであるので、本方法は、複数のボクセルにわたるポアソン係数について一定値を考え得る。例えば、本方法は、0.01と0.5との間、例えば0.1と0.45との間または0.2と0.3との間のポアソン比の一定値、例えば0.25を設定し得る。
【0150】
例では、3Dロボット本体モデルは、変形可能材料で各々が作られた1つまたは複数の変形可能部分からなるものであり得る。言い換えれば、このような例では、ロボット本体は変形可能である。このような例では、設計変数は、複数のボクセルにわたる密度値の分布および作動係数の分布からなるものであり得る。特に、このような例では、(MPMが使用されるときの)各粒子に割り当てられる質量の値は、例えば式(2)に従って、1つまたは複数の対応するボクセルの密度値に比例し得る。
【0151】
例では、3Dロボット本体モデルは、剛性材料で各々が作られた1つまたは複数の剛性部分をさらに備え得る。このような例では、設計パラメータは、複数のボクセルにわたる硬化パラメータ値の分布をさらに含み得る。各硬化パラメータ値は、ボクセルについて、ボクセルを満たす材料の硬さのレベルを、第1のレベルと第1のレベルよりも硬い第2のレベルとの間で連続的かつ単調に表し得る。例では、第1のレベルは、変形可能部分についての硬さレベルを表し得、第2のレベルは、剛性部分についての硬さレベルを表し得る。第1のレベルは値0に設定され得、第2のレベルは値1に設定され得る。このような例では、最適な硬化パラメータは、上で論じられたように連続値であり得る。言い換えれば、硬化パラメータの値は、第1のレベルと第2のレベルとの間の任意の値であり得る。結果として、最適化の出力における取得された最適な硬化パラメータ値は、この連続的な範囲の少なくとも3つの異なる値のセットからのものであり得る。言い換えれば、最適化された硬化パラメータ値の最終的なセット中には、範囲の少なくとも3つの異なる値が存在する。例えば、ある値は、完全に剛性のボクセルを表し得、ある値は、完全に変形可能なボクセルを表し得、ある値は、この2つの極値の間を表し得る。
【0152】
ロボット本体中で1つまたは複数の剛性部分を許容することは、ロボットの性能についての改善されたソリューションを構成する。剛性部分の存在は、ロボットの剛性部分と変形可能部分との相互作用のおかげで、ロボットが運動をより効率的に移行させ、それによってより少ないエネルギー消費で動くことの助けとなる。他方、また数学的な意味では、剛性部分の存在は、変形可能部分(または筋肉)の量を低減し、それにより、変形時にロボットによって消費されるエネルギーを低減する。さらに、本方法は、このような剛性部分の場所およびサイズを、ユーザの直観によって選択されるようにするのではなく、自動的に、かつ最適化プロシージャを介して取得する。
【0153】
さらに、また上で論じられたのと同様に、本方法は、このような例では、材料の硬さについて、硬化パラメータの連続的な表現を採用する。これは、最適化問題の追加的な自由変数(すなわち硬化パラメータ)に対する目的関数の挙動における連続性を提供し、それにより本方法が勾配ベースの最適化技法から利益を得られるようにすることによって、ソリューションを改善する。
【0154】
このような例では、本方法は、3Dロボット本体モデルを決定するステップで、それぞれの3Dロボット本体モデルを取得するために、取得された硬化パラメータに対してさらに他の処理を適用し得る。例では、このような処理は、(最適な)硬化パラメータに対してしきい値処理ステップを適用することを含み得る。例えば、本方法は、第1のレベルと第2のレベルとの平均よりも高い硬化パラメータを有する各ボクセルは剛性のボクセルであると決定し得る。
【0155】
特に、このような例では、(MPMが使用されるときの)各粒子に割り当てられる質量の値は、それぞれの密度とそれぞれの硬化パラメータとの関数に依存し得る。このような関数は、例えば式(3)に従うものであり得る。
【0156】
このような例では、勾配ベースの最適化を実施することは、反復的なプロセスを含み得る。反復的なプロセスの各反復は、各ボクセルについての密度値および硬化パラメータ値に基づいて、複数のボクセルにわたるヤング率値の分布を計算することを含み得る。ヤング率分布のこのような計算は、最適化の各反復についてのMPMシミュレーションの一部(例えば、MPMの初期化における)であり得る。このような例では、ボクセルについてのヤング率値の計算は、以下のタイプのものである。
【0157】
【0158】
上式で、Eは、計算されるヤング率であり、Emaxは、剛性材料のヤング率であり、Eminは最小ヤング率であり、Eactは、変形可能材料のヤング率であり、ρは密度値であり、κは硬化パラメータの値であり、
【0159】
【0160】
である。
【0161】
例では、目的関数の勾配ベースの最適化を実施することは、体積分率に対して制約を課すことをさらに含み得、体積分率は、密度値のそれぞれの分布から計算される。これは、最適化が実現性のある解に収束するのを改善する。特に、制約を弱く課すこと、すなわち、密度の値を厳密な値に制約しないこと(例えば、ラグランジュ乗数を使用するとそうなるように、また、この例の方法はそれを実施しない)は、最適化が解空間をよりよく探索する助けとなる。例では、本方法は、以下で論じられるように、このような弱い制約を再正規化の形で適用し得る。
【0162】
例では、体積分率に対して制約を課すことは、所与のボクセルにおいて、以下のタイプのものであり得る。
【0163】
【0164】
上式で、
【0165】
【0166】
である。
【0167】
ここで、ηはパラメータであり、Vfracは体積分率であり、ρは(制約あり)密度値であり、
【0168】
【0169】
は制約なし(または生の)密度値であり、
【0170】
【0171】
は、複数のボクセル上の
【0172】
【0173】
の合計であり、Nvoxelは、複数のボクセルにおけるボクセル総数である。ボクセル総数は、1ボクセル当たり1つの粒子を有する例では、粒子の総数に等しい。
【0174】
このような例では、目的関数の勾配ベースの最適化を実施することは、作動エネルギーに対して制約を課すことをさらに含み得、作動エネルギーは、設計変数の関数である。これは、作動の量および/または使用されることになる変形可能部分の量を考慮に入れて、時間期間にわたってロボットによって消費されるエネルギーに対する境界を設定することによって、改善されたソリューションを構成する。他方、このような例は、目的関数および消費エネルギーを最適化するための、多目的最適化よりも効率的なソリューションを提供する。さらに、制約を弱く課すことは、上で論じられたように、最適化が解空間をよりよく探索する助けとなる。例では、本方法は、以下で論じられるように、このような弱い制約を再正規化の形で適用し得る。
【0175】
例では、作動エネルギーに対して制約を課すことは、所与のボクセルにおいて、以下のタイプのものである。
【0176】
【0177】
上式で、
【0178】
【0179】
であり、αは、制約あり作動係数(これは単に作動係数と呼ばれる)であり、
【0180】
【0181】
は、制約なしまたは生の作動係数であり、
【0182】
【0183】
は、複数のボクセル上の
【0184】
【0185】
の合計であり、
【0186】
【0187】
は、ボクセルiにおける生の作動係数の絶対値であり、
【0188】
【0189】
は、ボクセルiにおける(制約あり)密度値である。ここで、Γfracはエネルギー分率であり、Nvoxelは、複数のボクセルにおけるボクセル総数である。ここで、ボクセル上のエネルギーは、
【0190】
【0191】
として定義され得る。上式(9)における関数tanhは、ソフトリミットとしての働きをする。このようなソフトリミットは、エネルギーがリミットよりもはるかに低いときにはほとんど効果を有さず、リミットが近づくほど強くなる。
【0192】
例では、上で論じられた所定の変数は、ロボットをシミュレートするのに必要とされるパラメータのうちのいずれかをさらに含み得る。特に、所定の変数は、MPM法に関して上で論じられたパラメータのうちのいずれか、例えば、ペナライゼーションパラメータp1、Emin、Mmax、γ、Vfrac、Γfracのうちの1つまたは複数を含み得る。
【0193】
次に、初期化ステップについて論じられる。
【0194】
例では、最適化は、設計変数の初期化によって開始し得る。例えば、本方法は、密度変数をそれぞれの上記の体積分率Vfracに初期化し得る。上で論じられたように、本方法は、体積分率を所定の変数として提供し得る。このような例では、最適化ループは、値を強く制約することができる。というのは、それは、総計が一定のままでありながら密度を動かすだけで済むからである。エネルギー消費使用は変形可能部分の関数であり、作動係数が-1から1の範囲とされる例では、係数値は、すべてのボクセルにおいて中立すなわち0に設定される。というのは、他のどんな初期化値も偏りを導入し得るからである。
【0195】
このような例では、設計変数を探索することは、設計変数の値の分布を、前の値および計算された導関数に基づいて更新することをさらに含み得る。更新することは、勾配降下法更新を含み得る。言い換えれば、本方法は、密度および作動係数の各々を、それぞれの勾配と、勾配に沿ったそれぞれのステップサイズとに従って更新し得る。本方法は、密度の更新された値(すなわち、勾配降下法に従う)と体積分率に対する制約とを使用して、密度の更新された値をさらに更新し得る。本方法は、密度のさらに更新された値と作動エネルギーに対する制約とを使用して、作動の更新値をさらに更新し得る。
【0196】
例では、勾配ベースの最適化を実施することは、設計変数に対する目的関数の偏導関数を計算することをさらに含み得る。本方法は、上で論じられたように設計変数の値を更新する際(例えば、勾配降下法を使用するとき)、このような計算された偏導関数を使用し得る。勾配ベースの最適化を実施することは、偏導関数の計算のための時間局所的方法を含み得る。このような時間局所的方法は、「時間大域的」微分として知られる微分可能シミュレーションによるロボット設計の制限に対する、改善されたソリューションを構成する。最適化が、設計変数に対して相対的な目的関数の偏導関数に対する最急降下法によって進行する例では、上記の導関数は、(例えばMPMを使用する)シミュレーションを時間において順方向に実行し、次いでシミュレーションの終わりから逆方向に勾配を積分することの結果として得られる。このように時間において逆方向に解くことは、順方向シミュレーションにおけるあらゆる時間ステップのすべての中間状態を保存することを必要とする。シミュレーションには多数の時間ステップがあるので、保存されるデータの量は非常に多く、メモリフットプリントに関して禁制的である。時間局所的方法を採用することで、かなり多くの設計変数を有するロボット、したがってより複雑であり高レベルの詳細を有する、かつ/または長いミッションを実行できるロボットを、シミュレートおよび最適化することが可能になる。
【0197】
このような例では、勾配ベースの最適化を実施することは、初期時間と時間期間の終わりとの間で複数の時点を提供し、それにより、結果として生じる2つの時点間で各々が形成される複数の時間間隔を定義することを含み得る。したがって、時間間隔にわたるシミュレーション変数の値を取得することは、複数の時点におけるシミュレーション変数を取得することを含み得る。さらに、所定の変数に基づいてロボットをシミュレートすることは、初期時間から最後の1つ前の時間までの各時間間隔上で順方向シミュレーションを実施することを含み得る。ここで、時間間隔上で順方向シミュレーションを実施することは、(例えば、最初の間隔についての)初期条件、および/または前の時間間隔上での順方向シミュレーションに基づき得る。言い換えれば、本方法は、順方向シミュレーションをいくつかの間隔に分割し、これらを順次解き得る。次いで本方法は、最後の間隔上で、初期条件、および/または前の時間間隔上での順方向シミュレーションに基づいて、順方向シミュレーションおよび逆方向シミュレーションを実施し得る。次いで本方法は、最後の前の時間間隔から最初の時間間隔までの各時間間隔上で、初期条件(すなわち、最後の間隔についての)、および/または前の時間間隔上での順方向シミュレーションに基づいて、逆方向シミュレーション(すなわち、時間において逆方向)を実施し得る。
【0198】
例では、設計変数に対する目的関数の偏導関数を計算することは、以下のタイプの式を使用して、シミュレーション変数に従って各時間ステップ(すなわち時間間隔)で決定され得る。
【0199】
【0200】
上式で、Lは目的関数であり、ρは密度値であり、T0は初期時点であり、Tfは、複数の時点のうちの最後の時点である(これは時間期間の終わりである)。ここで、stは、時点tにおけるシミュレーション変数であり、ρtは、時点tにおける密度値である。同様の関係が、
【0201】
【0202】
および
【0203】
【0204】
の計算にも使用され得る。
【0205】
これは、本方法が、シミュレーションをいくつかの部分に分割し、連鎖律を展開して、各時間ステップについての勾配を取得し、勾配を組み立て得ることを意味する。n個の下位部分への分割の場合、このプロセスは、2n-1回のシミュレーション、すなわち、n-1回の順方向シミュレーションと最後の間隔における1回のシミュレーションとn-1回の逆方向シミュレーションとを必要とする。
【0206】
このような例では、本方法は、中間状態を近似しない。その代わり、本方法は、シミュレーションを繰り返し、「連鎖律」とも呼ばれる以下のタイプの式を使用することによって、それらを再構築し得る。
【0207】
【0208】
項stは、各時間ステップtにおける粒子の状態(すなわち、位置、速度、変形勾配)の概念を単純化するのに使用される。
【0209】
偏導関数のこのような分割は特に可能であり、設計変数および作動の勾配がシミュレーション変数(例えば、位置、速度)の勾配からシミュレーションの各時間ステップで算出されるからである。さらに、変形勾配は、目的関数からの連鎖律バックプロパゲーションから算出される。
【0210】
分割方法によって取得された偏導関数を使用して、また、最適化が設計変数に対して相対的な目的関数の偏導関数に対する最急降下法によって進行する例において、本方法は、各反復で、各ボクセルにおいて以下のタイプの式に従って設計変数の各々を更新し得る。
【0211】
密度値ρについては
【0212】
【0213】
作動係数αについては
【0214】
【0215】
硬化パラメータκについては
【0216】
【0217】
である。ここで、δρ、δα、およびδκは、それぞれの最急降下法におけるステップサイズであり、機械学習の分野における勾配降下法アルゴリズムにおいて知られているように、学習率として等価に呼ばれることがある。本方法は、各ステップサイズの初期値を(例えば、ユーザによる入力に従って)設定し得、これらを、最適化の反復において(例えば各反復において)、また最適化の収束挙動に従って、修正し得る。例では、本方法は、ステップサイズの値を、δρ=0.02、δα=0.1、およびδκ=0.3として設定し得る。矢印記号←は、演算子の左側のオペラントの古い値が、右側の値で更新/置換されることを示す。
【0218】
例では、上で論じられた所定の変数は、ステップサイズδρ、δα、およびδκをさらに含み得る。
【0219】
本方法は、コンピュータ実装される。これは、本方法のステップ(またはほぼすべてのステップ)が、少なくとも1つのコンピュータまたは任意の類似システムによって実行されることを意味する。したがって、本方法のステップは、場合によっては全自動的または半自動的に、コンピュータによって実施される。例では、本方法のステップの少なくともいくつかをトリガすることは、ユーザ-コンピュータ対話を通して実施され得る。必要とされるユーザ-コンピュータ対話のレベルは、予見される自動性のレベルに依存し得、ユーザの望みを実装する必要性とのバランスが取られ得る。例では、このレベルは、ユーザによって定義され得、かつ/または事前に定義され得る。
【0220】
方法のコンピュータ実装の典型例は、本方法を、この目的に適応化されたシステムを用いて実施することである。本システムは、メモリに結合されたプロセッサと、グラフィカルユーザインタフェース(GUI)とを備え得、メモリには、本方法を実施するための命令を含むコンピュータプログラムが記録されている。メモリは、データベースも記憶し得る。メモリは、このような記憶に適応化された任意のハードウェアであり、場合によっては、いくつかの物理的な異なる部分(例えば、プログラム用に1つ、また場合によってはデータベース用に1つ)を含む。
【0221】
図2は本システムのGUIの例を示し、ここで、本システムはCADシステムである。
【0222】
図2では、本方法によって取得されるロボット本体モデルが、3Dモデル化オブジェクト2000として提示されている。GUI2100は、典型的なCAD様のインタフェースであり得、標準的なメニューバー2110、2120、ならびに下部および側部ツールバー2140、2150を有し得る。このようなメニューバーおよびツールバーは、当技術分野で知られているように、ユーザによって選択可能なアイコンのセットを含み、各アイコンは1つまたは複数の操作または機能に関連付けられる。これらのアイコンのいくつかは、GUI2100中に表示された3Dモデル化オブジェクト2000の編集および/または処理に適応化されたソフトウェアツールに関連付けられる。ソフトウェアツールは、ワークベンチにグループ化され得る。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチのうちの1つは、モデル化された製品2000の幾何学的特徴を編集するのに適した編集ワークベンチである。動作時、設計者は、例えば、オブジェクト2000の一部を事前選択し、次いで、適切なアイコンを選択することによって操作の開始(例えば寸法や色などの変更)または幾何学的制約の編集を行い得る。例えば、典型的なCAD操作は、画面に表示された3Dモデル化オブジェクトのパンチングまたは折曲げのモデル化である。GUIは、例えば、表示された製品2000に関係付けられるデータ2500を表示し得る。図の例では、「フィーチャツリー」として表示されたデータ2500、およびそれらの3D表現2000は、ブレーキキャリパとディスクとを含むブレーキアセンブリに関係する。GUIはさらに、例えばオブジェクトの3D配向を容易にするため、または編集された製品の動作のシミュレーションをトリガするため、または表示された製品2000の様々な属性をレンダリングするための、様々なタイプのグラフィックツール2130、2070、2080も示し得る。触覚デバイスによってカーソル2060が制御されて、ユーザがグラフィックツールと対話するのを可能にし得る。
【0223】
図3は本システムの例を示し、ここで、本システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
【0224】
この例のクライアントコンピュータは、内部通信バス1000に接続された中央処理装置(CPU)1010と、やはりバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータにはグラフィカルプロセッシングユニット(GPU)1110がさらに備わり、GPU1110は、バスに接続されたビデオランダムアクセスメモリ1100に関連付けられる。ビデオRAM1100は、当技術分野でフレームバッファとしても知られる。大容量記憶デバイスコントローラ1020が、ハードドライブ1030などの大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形に組み入れるのに適した大容量メモリデバイスは、あらゆる形の不揮発性メモリを含み、例としてこれらは、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス;内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク;光磁気ディスクを含む。これらはいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補われ得るかまたはそれに組み込まれ得る。ネットワークアダプタ1050が、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御デバイスやキーボードなど、触覚デバイス1090も備え得る。カーソル制御デバイスは、ユーザがディスプレイ1080上の望まれる任意の場所にカーソルを選択的に位置決めできるようにするために、クライアントコンピュータ中で使用される。加えて、カーソル制御デバイスは、ユーザが様々なコマンドを選択し制御信号を入力するのを可能にする。カーソル制御デバイスは、システムに制御信号を入力するためのいくつかの信号生成デバイスを含む。通常、カーソル制御デバイスはマウスであり得、マウスのボタンを使用して信号を生成する。あるいは、または追加的に、クライアントコンピュータシステムは、センシティブパッドおよび/またはセンシティブスクリーンを備えてもよい。
【0225】
コンピュータプログラムは、コンピュータによって実行可能な命令を含み得、命令は、本方法を上記のシステムに実施させるための手段を含む。プログラムは、本システムのメモリを含む任意のデータ記憶媒体に記録可能であり得る。プログラムは、例えば、デジタル電子回路において、またはコンピュータハードウェア、ファームウェア、ソフトウェアにおいて、またはこれらの組合せにおいて実装され得る。プログラムは、装置として、例えば、プログラム可能プロセッサによって実行されるように機械可読記憶デバイスに有形に組み入れられた製品として、実装され得る。方法ステップは、プログラム可能プロセッサが、入力データに作用して出力を生成することによって本方法の機能を実施するために命令のプログラムを実行することによって、実施され得る。したがって、プロセッサは、プログラム可能であり得、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスとの間でデータおよび命令を送受信するように結合され得る。アプリケーションプログラムは、高水準手続き型言語もしくはオブジェクト指向プログラミング言語で、または望まれるならアセンブリ言語もしくは機械語で実装され得る。いずれの場合でも、言語は、コンパイラ型言語またはインタープリタ型言語であり得る。プログラムは、フルインストールプログラムまたは更新プログラムであり得る。プログラムがシステム上で適用される結果として、いずれの場合でも、本方法を実施するための命令が得られる。あるいは、コンピュータプログラムは、クラウドコンピューティング環境のサーバに記憶されてサーバ上で実行されることもあり、サーバは、ネットワークを介して1つまたは複数のクライアントと通信している。このような場合、処理ユニットが、プログラムに含まれる命令を実行し、それにより、クラウドコンピューティング環境で本方法が実施されるようにする。
【0226】
次に、本方法の実装形態について論じられる。
【0227】
本方法の実装形態は、アプリオリな形状も作動戦略もない中立的な初期化体積、典型的には立方体が与えられた場合に、歩行または泳ぎが可能なソフトロボットを生成するという、技術的設計問題へのソリューションに関係する。さらに、ソリューションは、スケーラビリティの点で制限されてはならない。これは、ロボット複雑性およびシミュレーション時間に関して、計算要件および特にメモリフットプリントが管理可能なままであることを意味する。
【0228】
本方法の実装形態は、ロボット工学の領域、特に、変形可能部分を使用するロボット工学における領域に属し得る。このような領域は、外骨格など、人間と密に対話する任意のロボットデバイスを扱い、この場合、ロボットの少なくとも一部は、その運動を、大きい変形のフレキシビリティから取得する。このようなロボットにおいては、さらに他の接合部または関節が存在し得る。このようなロボットは、産業における自動化された製品取扱いのためのグリッパ適用例において、多くの成功を見出してきた。例えば、Soft Robotics Incという会社は、mGripと呼ばれるグリッパを食品サービス産業に供給しているが、これは、空気式のフレキシブルな挟み具を使用して、ステーキやペストリーや生地玉など非常に柔らかいオブジェクトを掴み、操作する。このようなフレキシブルなロボットグリッパの概念はまた、果物の摘み取りにも有望である。
【0229】
具体的には、本方法の実装形態は、所与の挙動の実現のために形態とアクチュエータ配置との両方の効率的な算出を可能にする、フレキシブルな部材を有する新規なロボットモデルを導入する。実装形態は、密度と作動との両方についての連続変数の点からロボット生成問題を再公式化することによって、スケーラビリティと収束とを有するソリューションを提供する。これを微分可能物理ソルバと組み合わせることにより、密度および作動の値は、勾配降下法によって進化することができ、生成的プロセスの極めてよりよい性能およびスケーラビリティを呈することができる。実装形態はまた、多数の変数を含む時間依存の最適化プロセスに内在する、既知の方法のメモリ使用の問題に対して、独創的かつ効果的なソリューションを提供する。
【0230】
変形可能部分を有する仮想ロボットを生成するための効率的な方式を提供することによって、実装形態は、シリコンまたは他のフレキシブルな材料から作られ空気チャンバまたは他の流体充填チャンバによって作動される物理的ロボットの、設計およびそれに続く構築を容易にする。
【0231】
実装形態は、種々の物理設計を評価する試行錯誤プロセスを著しく削減することができ、したがって開発時間を劇的に短縮することができる。この効果は自動車界ではすでに観察されており、自動車界では、機械部品とアセンブリとの仮想CADモデルの導入が、自動車の開発時間を2分の1以下に短縮することに寄与してきた。
【0232】
実装形態は、速い収束およびスケーラビリティを提供する勾配ベースの方法を使用することによって、前述の欠点を回避しながら、変形可能部分を有する効果的なロボットを目的関数に従って生成することができる。高次元空間で勾配降下法に依拠することの特有の利点は、それがニューラルネットワークの訓練で広く使用されており、したがって十分に研究されておりソフトウェアおよびハードウェアによって効率的にサポートされることである。実装形態は、すべての構成部分、すなわち、筋肉(アクチュエータ)およびある程度剛性の受動的エリアが、最良の性能のために設計体積における任意の位置および形状を自由に占めるような、ソフトロボットの生成を可能にする。
【0233】
実装形態は、実世界ソフトロボットの構築のためのモデルとして役立つことができる仮想3Dロボットを生み出すことになる。ロボットモデルにおけるロボットは、ある挙動を起こすべくそれ自体を自動的に構成するように設計される。例えば、このような挙動は、X軸に沿ったものとして定義され得る所与の方向に移動することであり得る。
【0234】
以下の表は、使用される各概念についての説明を、それらが変動し得る範囲と共に提供する。
【0235】
【0236】
上記に従い、材料の有無を記述する密度フィールドρと、作動の位相および振幅を表す作動フィールドαとによって、実装形態によるロボットが表される。密度および作動は、ボクセルごとの値として直接に表され得る。密度フィールドと作動フィールドとは両方とも、通常のXYZグリッド体積場所で、すなわち、各ボクセル位置でフィールド値(密度、作動)が定義されるボクセルフィールド上で、現実のサンプル値によって定義される。
【0237】
実装形態による単純化されたモデルでは、ロボットは、例えば立方体とすることのできる基本形状に初期化される。密度は、この形状の空間における任意の場所で、1(材料充満)と0(空、または材料なし)との間で変化することができ、その結果、形状および接続性(すなわちトポロジ)の変化が生じる。作動係数は-1と1との間で変化し得、-1と1とは、(180度の位相の)逆の作動であり、中央値0は、受動的な非作動ボクセルを表す。言い換えれば、値-1は能動的なマイナス筋肉を意味し、値0は受動的な筋肉を意味し、値+1は能動的なプラス筋肉を意味する。能動的なマイナス筋肉および能動的なプラス筋肉は、πに等しい位相差の作動を有し、したがって、一方が収縮しつつあるときは、他方は伸張しつつある。
【0238】
位相および振幅の値は、ベース正弦波をシフトおよび逓倍する。硬化パラメータが存在する異形では、このパラメータは、0と1との間で変化し得る。実装形態の目標は、このボクセルフィールド中の密度および作動の値を見つけて、最も首尾よいロボット挙動を生成することである。首尾よい挙動は、ジャンプ、オブジェクトの持上げ、または他の任意のタスクなど、1つまたは複数の基準によって定義されることが可能である。いくつかの実装形態によれば、成功(すなわち、首尾よい挙動)は、あるシミュレーション時間内に所与の方向へできるだけ遠くに移動できることである。
【0239】
図3を参照すると、実装形態による勾配ベースの最適化方法は、以下のステップに従う。
【0240】
ステップ301は、ロボット変数の初期化を含む。このような初期化は、同一の値、または分布に従ったランダム化された値への初期化であり得る。実装形態が、ターゲット体積分率、すなわち、仕上げられたロボットにおける充満から空までのボクセルの所与の割合を実装する(すなわち課す)ことを含む場合は、密度変数の初期化は、それぞれのこの体積分率に設定されてよい。
【0241】
ステップ302は、MPMを用いたロボットのシミュレーションを含む。シミュレーションでは、ロボットは、所与の時間ステップの数にわたる作動の下で動き、ロボットの重心によって移動された距離が記録される。この距離が、目的関数の値である。
【0242】
ステップ303で、変数の勾配が目的関数に対して決定される。ステップ304で、勾配値が、近隣ボクセルの勾配との幾何平均によって平滑化される。このような平滑化は、高い局所変動を防止する助けとなる。ステップ305は、勾配降下法戦略に従って変数を更新することを含む。
【0243】
ステップ302~305の反復のループが、ステップ306で最終的な設計に到達するまで繰り返される。設計の完結、すなわちステップ306は、i)最大許容計算時間に達すること、ii)設計が安定すること、すなわち、ある反復から次の反復までに設計変数(密度、作動)が変化しなくなること、のうちの最初の1つが起こったときに生じる。
【0244】
上で論じられたように、実装形態は、マテリアルポイント法シミュレーションを使用してロボットをシミュレートする(非特許文献7参照)。マテリアルポイント法(MPM)は、流体や固体を含む連続体材料、および多相相互作用に対する、メッシュフリー数値シミュレーション方法である。MPMは、大きい変形を伴うオブジェクトをモデル化するのに適したハイブリッドオイラー-ラグランジュ法である。ラグランジュの見地では、MPMは、(個別のプロパティを有する)粒子のセットとして表され、オイラーの見地では、(運動の式を解くための)固定解像度のシミュレーション空間のグリッドとして表される。MPMは、時間ステップごとにノード接続性を再評価し、柔らかいオブジェクトの大きい変形に対してそれを頑強にするが、これは有限要素法とは反対であり、有限要素法では、大きい変形は、ノード反転を回避するために非常にコストのかかる再メッシュ化ステップを必要とする。加えて、MPMは、容易に微分可能である。これらのプロパティにより、MPM法は、勾配ベースの最適化に適する。
【0245】
特に、実装形態は、参照により本明細書に組み込まれる文書(非特許文献8)に従ってMPMを実施し得る。引用される文書のMPM実装形態は、移動最小二乗マテリアルポイント法(MLS-MPM)であり、これは、粒子のプロパティをMPMグリッドに移転するのに使用される補間関数が二次射影カーネルで置き換えられるMPMのバージョンであり、これはアルゴリズムを著しく高速化する。
【0246】
MPMは、3つの段階で構成される。第1の段階、いわゆる「粒子からグリッドへ」段階では、MPMは、粒子応力をそれらの変形勾配Fを用いて計算する。各グリッドノードの質量が、最も近い粒子の重み付き和によって計算される。さらに、ノードの速度が、粒子の速度および応力と同じ重み付けを用いて計算される。第2の段階、すなわち「グリッド演算」では、グリッドノードに外力が加えられ、境界条件が解かれて、最終的なノードの速度が取得される。第3の段階、すなわち「グリッドから粒子へ」では、粒子の速度が、第1の段階とは逆の演算で取得される。次いで、実装形態は、例えばオイラー陽解法ソルバを使用して、粒子の新しい位置を計算する。この3つの段階が、シミュレーションの各時間ステップにつき繰り返される。これらの演算のすべては微分可能であり、各演算の勾配は、解析的に算出され、連鎖律を介して結合される。
【0247】
図4は、MPMの例を示す。このモデルは、密度および作動をモデル化する3Dボクセルフィールド410に関連付けられる粒子(すなわちマテリアルポイント)のセット400(
図4の左側)からなる。ボクセルフィールド410中で、サイズ420のロボットが複数の粒子400によって考えられる。初期化ステップでは、ボクセルフィールド410は、ソフトロボットの設計体積をカバーする。シミュレーション中、粒子は、シミュレーション環境440中の任意の場所に自由に動けるが、それらの密度および作動は、ボクセルフィールド410中のそれらの初期位置によって定義され続ける。シミュレーション環境440はMPMシミュレーショングリッド450に分割されるが、MPMシミュレーショングリッド450はボクセルフィールド410と混同されるべきではない。シミュレーション環境はサイズ460を有し、これは、(シミュレーション環境440中でのロボットの動きを可能にするために)ロボットサイズ420よりも大きい。シミュレーション中、粒子400は、シミュレーション環境440中で自由に動き得る。
【0248】
図4における種々のグレースケールレベルは、粒子にわたる設計変数(例えば密度値)の分布を表し得る。例えば、グレースケールで濃いほど、設計値のそれぞれの値が大きいことを意味する。
図4の左側は、この設計変数が複数のボクセル(したがって補間時の粒子)にわたって一定値に設定されている初期状態を示す。例えば、実装形態は、すべてのボクセルについて、初期の密度値を体積分率に設定し得る。
図4の右側は、最適化中または最適化後の粒子の同じセット400を表し得る。したがって、図の右側の各粒子は、左側の相対的な粒子と対応する。
【0249】
次に、実装形態の種々のエンコーディングについて論じられる。
【0250】
上で論じられた、設計変数がボクセルごとの値として直接に提示される実装形態は、直接エンコーディングとして等価に呼ばれることがある。
【0251】
対照的に、いくつかの実装形態は、陰的なモデル(implicit model)、またはニューラルエンコーディングとして知られる、より少数の変数を使用するエンコーディングによって、設計変数を決定し得る。このような実装形態は、ニューラルネットワークを陰関数として使用して、3D空間中のボクセル位置に従ってフィールドにおける値を割り当てる。この場合、最適化は、ネットワークの重みを最適化する。しかし、本方法の原理は同じのままである。
【0252】
図5は、ニューラルエンコーディングを使用する本方法の例を提示する。エンコーディングは陰的モデルとしてニューラルネットワーク510を使用する。ネットワーク510は、設計変数520(例えば、密度フィールドまたは作動フィールド)と、ボクセル位置515であるネットワークの入力との間に、接続を確立する。本方法は、直接エンコーディング法と同様のMPMシミュレーション530に基づいて、最適値を取得し得る。
【0253】
一般に、ニューラルエンコーディングは、ニューラルネットワークが3D陰的モデルを提供することから利益を得るが、この場合、本方法は、(複数のボクセルによって形成される)グリッド中の点間を補間することによって、より詳細なロボットを取得することができる。他方、直接エンコーディングは、より中立的な初期化と、よりよい数値的安定性とを有することにおいて、より有益である。
【0254】
実装形態は、各粒子がその対応するフィールドのボクセルにリンクされると考えることによって、フィールドとMPMシミュレーションとをリンクする。これに関して、実装形態は、密度フィールドを使用して、シミュレーションにおけるロボットの形態を変更する。より具体的には、実装形態は、粒子の質量を密度として割り当て、中間密度値の存在をペナライズする。このアプローチは、異常に低いヤング率を中間密度が呈するように、硬さと密度との関係を修正する。結果として、ソルバは、これらの値の使用を回避する。この関係は、以下のとおりであり得る。
【0255】
E=(Emax-Emin)ρp+Emin (16)
上式で、Emaxは最大ヤング率であり、Eminは最小ヤング率である。上で論じられたように、Eminは、空の場合のヤング率を表すための小さい数であり得る。例では、Emin=0.01であり、ペナライゼーションパラメータp=4である。
【0256】
ロボットを動かすために、実装形態は、時間変動する作動信号「A」を変形勾配に適用し、この場合、A=(Amax×α×ρp×f(t)).Iであり、f(t)は作動関数である。作動信号を取得するために、実装形態は、ペナライズされた密度を作動関数に掛ける。このようなペナライゼーションは、密度が0に近づくにつれて作動が0に下がるというモデル化の観点からは改善する意味をなす。加えて、このような作動は、数値的安定性を改善する。作動信号は、重み付き作動関数として等価に呼ばれることがある。いくつかの実装形態では、作動信号は、正弦関数の和のような作動関数で構成され得る。これらの場合、aは、1つの(正弦)関数当たり1つのパラメータを有するベクトルである。
【0257】
次いで、実装形態は、以下のように、粒子の応力(すなわちコーシー応力)を取得し得る。
【0258】
【0259】
上式で、σaは応力であり、Fは変形勾配であり、JはFの行列式であり、Iは単位行列である。ここで、λおよびμは、ヤング率と0.25に等しいポアソン係数とを用いて取得されるラメ係数である。
【0260】
最適化反復のために、実装形態は、式(11)および(12)に関して論じられた分割および連鎖律を使用して、設計変数の各々に対する勾配を取得し得る。実装形態は、これらの勾配を、それらをガウスカーネルによって畳み込んで雑音性の値を除去することによって、平滑化し得る。
【0261】
歩行ソフトロボットに関係付けられるいくつかの実装形態では、作動関数は正弦関数に設定され得る。このような実装形態は、重力と、接触時の地面の反力とを、外力のみとして考え得る。目的関数は、ロボットの重心の変位を最大化することになる。
【0262】
図6は、歩行ロボット600の進化と、仕上げられたロボットの(ロコモーション)歩行サイクルにおける特徴的なプッシュオフ位置およびジャンプ位置とを示す。ステップ610は、ロボットの初期化された形状を提示し、ステップ620は、50回の反復における中間形状であり、ステップ630は、100回の反復後の最終的な形状を提示する。
図6に見られるように、50回の反復後には、ロボットの脚622および624がすでに現れている。ステップ640および650は、ロボット600の最終的な設計のロコモーションサイクルプッシュオフおよびロコモーションサイクルジャンプを提示する。
【0263】
実装形態は、グリッド演算を変更して、例えば泳ぐソフトロボットを取得し得る。こうするために、実装形態は、ソフトロボットに中立浮力があると仮定して重力および地面反力を除去し、ロボットの面法線の関数としての抗力を追加し得る。これらの法線は、MPMグリッド上でソーベルフィルタによって取得される。
【0264】
図7は、本方法の50回の反復(710)、100回の反復(720)、150回の反復(730)および600回の反復(740)の後の、泳ぐロボット設計の例を示す。
【0265】
実装形態はまた、異なる目的関数を用いる(
図3の300のような)パイプラインにも対処し得る。例えば、実装形態は、複数の時間ステップt上の
【0266】
【0267】
としての目的関数を考え得る。このような実装形態では、目標は、特定の粒子(すなわちp)の加速度(すなわち
【0268】
【0269】
の尺度を最小化するソフトダンパを生み出すことであり、したがって
【0270】
【0271】
である。このような目的関数は、ロボット本体の各粒子につき、時間における加速度の6-ノルムを提示する。このようなノルムは、無限大ノルム(すなわち最大ノルム)を、目的関数の最適化におけるよりよい挙動で効率的に置き換えることができる。言い換えれば、オプティマイザは、このような目的関数を使用してピーク加速値を下げようと試み、これにより、ダンパに対する損傷が低減するほど改善する。
【0272】
図8A~Bは、最適化されていない受動的ダンパ810と、最適化された例820とを提示する。特定の粒子は、830として示される。
【0273】
実装形態は、密度および作動フィールドを直接に最適化する。言い換えれば、実装形態は、ボクセルごとのいくつかの変数の最適化を実施する。高次元空間における勾配降下法のスケーラブルな挙動のおかげで、実装形態は、このような最適化を効率的に実施することができる。
【0274】
次に、メモリ管理ソリューションの例について論じられる。
【0275】
微分可能MPMシミュレーションによるロボット生成の既知の制限は、いわゆる「時間大域的」微分の使用である。最適化は、設計変数に対して相対的な目的関数の勾配に対する最急降下法によって進行する。勾配は、シミュレーションを時間において順方向に実行し、次いでシミュレーションの終わりから逆方向に勾配を積分する結果として得られる。
【0276】
このように時間において逆方向に解くことは、順方向シミュレーションにおけるあらゆる時間ステップの中間状態のすべてを保存することを必要とする。シミュレーションには多数の時間ステップがあるので、保存されるデータの量は非常に多く、このアプローチはメモリフットプリントにおいて禁制的である。
【0277】
高レベルの詳細を有する、かつ/または長いミッションを実行できるソフトロボットの生成を不可能にするこのような制限を回避するために、実装形態は、シミュレーションを時間単位でいくつかの下位部分に分割し、勾配を組み立てる。実装形態は、シミュレーションを4つの下位部分に分割し得、この場合、勾配の取得は、7回のシミュレーションを必要とすることになる。n個の下位部分への分割の場合、プロセスは同一であり、2n-1回のシミュレーションに達する。これは「時間局所的」アプローチとして知られる。
【0278】
図9Aは、このような時間局所的アプローチの例を示す。プロセス700は、n=4のとき、以下のステップに従う。
【0279】
-ステップ710:最初の3回の実行で、実装形態は、順方向パスを行うのみでシミュレーションの最終状態を保存する。各シミュレーションは、前のシミュレーション(すなわち、前の時間ステップのシミュレーション)からロードされた状態で開始する。
【0280】
-ステップ920:4回目の実行で(すなわち最後の下位部分上で)、実装形態は、式(11)におけるようにシミュレーション変数に対する目的関数の勾配、および設計変数に対するシミュレーション変数の勾配を通して、前の3回の実行と同様に進み、それに加えて目的関数からの逆方向(バックプロパゲーションとも呼ばれる)パスも実行する。
【0281】
-ステップ930:実装形態は、保存されたシミュレーション値を使用して、最初の3つの実行の各々を逆の順序(すなわち、第3、第2、および第1)で再実行する。反転された順序のシミュレーションでは、実装形態は、目的関数の勾配を(バック)プロパゲートして、式(11)におけるように設計変数に対する目的関数の勾配を取得する。
【0282】
-ステップ940:実装形態は、設計変数勾配を組み立てて、最終的な変数を取得する。これらは、同じパラメータを用いる単一段階シミュレーションの勾配、すなわち、式(11)のような最適化において使用される大域的な勾配に等しい。
【0283】
分割を用いて、実装形態は、シミュレーションのメモリ使用を1/nに制限する。これにより、より多数の粒子の使用が可能になり、我々のロボットの解像度が高まり、そしてこれにより、ソフトロボットがより精巧な挙動を起こすのが可能になる。シミュレーションコストの増加は、メモリフットプリント障壁が除去されることを考えれば、実際には非常に妥当なものである。
【0284】
図9Bは、n個の時間ステップを用いて密度変数に対する目的関数の偏導関数(すなわち
【0285】
【0286】
)を計算するための時間局所的アプローチの別の例を提示する。明示的に示された複数の時点のうち4つの時点T
0、T
i1、T
i2、およびT
f、ここで、T
0は初期時間であり、T
fは最終時間である。下向きの矢印は順方向シミュレーションを提示し、逆向きの矢印は逆方向シミュレーション(またはバックプロパゲーション)を提示する。初期時間T
0から開始して、ブロック950は、最初の順方向シミュレーションである実行1を表し、ブロック960は、順方向シミュレーションの実行3からn-1を表す。ブロック970は、順方向および逆方向シミュレーションである実行nを表す。最終時間T
fから逆方向に進み、ブロック980は、逆方向シミュレーションの実行n+1から2n-2を表し、ブロック990は、逆方向シミュレーションの実行2n-1を表す。前述のように、偏導関数999は、異なる時間的下位部分、すなわち
図9Bにおける998、997、および996の合計として展開されることが可能である。下位部分998はブロック990および950から計算され、下位部分997はブロック980および960から計算され、下位部分996はブロック970から計算される。
【0287】
実装形態は、微分可能物理ソルバからの勾配を使用し、シミュレーションを繰り返すことによって中間状態を再構築する。実装形態は、例えば、参照により本明細書に組み込まれる文書(非特許文献9)に記載の方法を使用して、この文書で説明されるチェックポインティングトリックを介して勾配を計算し得る。
【0288】
図10は、最適化の概略表現を提示する。ヤング率1030およびアクティブ化信号1040の各々が、密度変数1010および作動係数1010に依存して計算される。密度変数1010および作動係数1010は、式(7)から(9)を使用して計算され、ヤング率1030およびアクティブ化信号1040は、式(1)または(6)、および式(4)をそれぞれ使用して計算される。図のよりよい明確さのために、硬化パラメータへの潜在的な依存は提示されていない。
【0289】
次いで、設計変数1030および1040に基づいて、MPMシミュレーション1050がNT個の時間ステップで取得され得る。最終的なシミュレーション状態
【0290】
【0291】
(時間ステップTfにおけるシミュレーション変数の値が、目的関数Lに提供される。式(12)および式(11)のような連鎖律を使用するバックプロパゲーション1060が、最適化を完了して、設計変数についての勾配を取得し、式(13)、(14)、および(15)を使用して設計変数を更新する。
【0292】
次に、多剛性ロボットを設計するための適用例について論じられる。
【0293】
変形例では、実装形態は、ロボットが骨格を自然に進化させるのを可能にする。骨格によって意味されるのは、ちょうど脊椎動物の骨、または産業用ロボットのアームセグメントのように、ロボットのいくつかのエリアが擬似剛性になり得ることである。筋肉組織を骨格と組み合わせると、梃子のアクションが可能になり、そしてこれは、可動性を実装するためのより効果的な方式である。
【0294】
他の組織よりもずっと硬い骨格要素の出現を可能にするために、実装形態は、最適化が、能動的な粒子と受動的な粒子とでヤング率が非常に異なる構成を考えることができるようにする。上で論じられたようなSIMP式は、率を密度に関連付けるだけであり、これは、同じ密度の受動的な粒子と能動的な粒子とが、同じヤング率を有することを意味する。この制限に対処し、より高い率を有する受動的な粒子を取得するために、実装形態は、式(16)に取って代わる別の式を導入する。
【0295】
【0296】
上式で、Eは、調整されたヤング率であり、Emaxは、剛性材料のヤング率であり、Eminは最小ヤング率であり、Eactは、変形可能材料のヤング率であり、ρは密度値であり、
【0297】
【0298】
である。硬化パラメータκは、ロボットの硬化を制御する、複数のボクセルにわたって分散される設計変数である。
【0299】
式(18)によれば、硬い部分もまた作動信号を有し得るが、高い硬さは、低い変形勾配および無視できるほどの作動につながる。κ=0の場合、式(18)は式(16)と同じ挙動を有し、ここで、Eactは、ロボットの変形可能部分についてのEmaxであり、すなわち、ロボットが多剛性でない場合の全体的なEmaxと同様ある。
【0300】
しかし、式(18)を使用すると、質量とヤング率EminおよびEactとの関係について複数の解がもたらされ、これは、ヤング率は高いが質量は低い粒子につながり得、この結果、挙動が悪くなる。この問題を克服するために、実装形態は、式(2)に代えて以下の式に従って、質量に剛性の効果を追加するための関係を使用し得る。
【0301】
mp=Mmax×min(ρ(1+γκ),1) (19)
【0302】
上式で、mρは、粒子に割り当てられた質量であり、ρは密度値であり、Mmaxは、複数のボクセルにわたる定数である。Mmaxの値は1に設定され得る。さらに、κは、後で詳細に論じられるように、硬化パラメータである。パラメータγは、10よりも小さい値、例えば7であり得る重み付けパラメータである。
【0303】
式(19)は、密度と剛性の両方が大きいときは常にmp=Mmaxとすることによって、軽すぎる粒子を回避することを目指す。これは、硬いエリアはその密度のみによって予測されることになる重みよりも低い重みを有するべきでないという直観に対応する。
【0304】
上で論じられた利点に加えて、微分可能物理ソルバを使用することの大きい利点の1つは、式(19)などの補正が連鎖律および勾配ベースの最適化にシームレスに統合されることである。
【0305】
加えて、また、オプティマイザが能動的な材料をあらゆる場所に配置するのを回避するために、実装形態は、使用されるエネルギーの量を制限する。実世界ロボットはできる限り最少のエネルギーを使用したいので、エネルギーを制限しないことは非現実的である。これに対処するために、実装形態は、トポロジカルな最適化の体積分率と同様のエネルギー分率を導入する。このような分率を課すことは、筋肉作動を控えめに使用して、骨格構造との組合せで機械的利点を得ようとすることを、オプティマイザに奨励する。
【0306】
この公式化を導入するために、実装形態は、モデルのエネルギーが
【0307】
【0308】
に従って作動関数に関係付けられると想定する。この場合、以下のとおりである。
【0309】
【0310】
ここで、
【0311】
【0312】
である。
【0313】
この公式化の利点は、以下を含む。
【0314】
1)これは骨格構造の出現を自動的な方式で可能にする。これは、従来の最先端技術では観察されてこなかったものである。
【0315】
2)これはバランスを取ることが困難な可能性のある多目的関数を使用せずに、ロボットによる最大エネルギー使用を制約する。
【0316】
3)これはtanh関数(平滑化されたヘヴィサイドモデル)のおかげで、完全に受動的な初期化を可能にする。これは、受動的な粒子から能動的な粒子へのスムーズな遷移を確実にする。完全に受動的な初期化は、最終的なロボット形態の進化的出現にとって最良である。というのは、これは、作動がどこになるかを事前に想定しないからである。
【0317】
図11は、骨格による多剛性を有するロボット1100についてのロコモーションサイクルの例を提示する。筋肉(膨張しているか収縮しているかのいずれか)は濃い灰色で提示され、骨格は薄い灰色である。
【0318】
剛性部分ありまたはなしの例で、体積分率およびエネルギー分率は、上で論じられた表で提供される、]0,1]の全範囲を取らないことがある。実際の例では、体積分率の値は、0.4から0.8の間、例えば0.65から0.75の間であり得る。いくつかの例では、軽量で効率的なロボットを設計するために、より低い体積分率、例えば0.5未満、例えば0.4未満の体積分率が望まれることがある。体積分率のより小さい値、例えばしきい値よりも小さい、例えば0.2または0.1よりも小さい値は、有用でないことがある。例では、エネルギー分率の値は、0.2から0.6の間、例えば0.3から0.4の間の値、例えば0.25であり得る。
【0319】
プロトタイプ実装形態
プロトタイプ実装形態は、MPM勾配を用いて密度および作動フィールドの値を直接に最適化する。実装形態は、定義間隔内でのクランピングを伴ってフィールドをターゲット値に設定することによって、初期化する。
【0320】
プロトタイプ実装形態は、ニューラルエンコーディングと直接エンコーディングとのいずれかを使用し得る。
【0321】
ニューラルエンコーディングによれば、実装形態は、2つの隠れ層を有する全結合型ニューラルネットワークを使用して、エンコーダを生み出す。これは、ボクセル空間座標を入力として、ボクセルの密度および作動を出力する。第1の出力は密度出力であり、ネットワークは、シグモイド関数を使用して0と1との間の値を取得する。ネットワークは、作動値についての3つの出力がsoft argmax関数に供給されるようにして、-1と1との間の作動関数を取得する。ネットワークを初期化するために、本方法は、各ボクセルについての、密度に対するターゲット体積分率に等しい作動値0を取得するように、ネットワークを事前訓練する。これらの値はMPMシミュレーションに与えられ、結果として得られる勾配を用いてニューラルネットワークの重みが最適化される。
【0322】
ネットワークは、任意のボクセル座標についての密度および作動を出力することになる陰関数なので、シミュレーションおよび最適化をより低い解像度で実施し、その後、より高い解像度グリッド上でネットワークを評価して、ロボットのより細粒度の高い定義を取得することが可能である。
【0323】
直接エンコーディングによれば、本方法は、MPM勾配を用いて密度および作動フィールドの値を直接に最適化する。本方法は、定義間隔内でのクランピングを伴ってフィールドをターゲット値に設定することによって、初期化する。本方法は、高周波数を制限するために、3Dガウス畳込みカーネルによる平滑化を勾配に適用する。この操作なしでは、充満したボクセルが空のボクセルに囲まれているように見える可能性があり、これは現実的でない。
【0324】
実装形態は、高周波数を制限するために、3Dガウス畳込みカーネルによる平滑化を勾配に適用することを含む。この操作なしでは、充満したボクセルが空のボクセルに囲まれているように見える可能性があり、これは現実的でない。
【0325】
1)MPM実装形態
プロトタイプ実装形態は、参照により本明細書に組み込まれる文書(非特許文献9)において提供されているMLS-MPM実装形態を採用する。プロトタイプ実装形態は、上記の実装形態にいくつかの修正を加えて可変密度を取得し、力および作動関数を実装形態の種々のシナリオに適応させる。
【0326】
2)引用された文書(Difftaichi)の実装形態は、元々はTaichiの拡張であり、現在はTaichiLang(非特許文献10参照)に統合されており、自動微分を組み込み、設計変数の空間に対する目的関数の勾配を提供する。これは、シミュレートされるオブジェクトの、勾配ベースの最適化を可能にする。TaichiLangは、Pythonに組み込まれ、疎構造を処理するように設計されたプログラミング言語である。これは特に、並列計算を用いる高性能3D物理学およびコンピュータグラフィックスアプローチを実装することに向けられている。
【0327】
3)時間大域から時間局所への分割
プロトタイプ実装形態は、n=4、すなわち4つへの分割を使用する。時間における分割の重要性は検証済みである。一方、テストに使用された消費者向けPC上では、40×40×40個の粒子のロボットのシミュレーションを取得するのは不可能であった。分割を用いて、このロボットがどのように歩行するかを学習するようにシミュレートされた。
【0328】
メモリ使用はt*m3に比例し、ここで、tはシミュレーション時間であり、mは、ロボット設計領域の1つの軸に沿った粒子の数である。これは、どんなハードウェアが提供されたとしても、非分割アプローチが実施不可能になることを示す。
【0329】
グリッパシナリオ
上で論じられたように、本方法の適用例は、産業における重要な関心事である、フレキシブルなグリッパを設計する際に採用され得る。次に、
図8A~Bを参照しながら、このような適用の例について論じられる。
【0330】
図8Aには、フレキシブルなグリッパの例示的な初期設定が、グリッパ810およびペイロード820によって提示される。グリッパ810の初期状態は、ペイロード820が内側に収まった、くり抜かれた立方体である。これは単なる例である。他の初期状態も可能である。
【0331】
図8Bは、地面840に対するグリッパ810およびペイロード820の概略図を提示する。外力F
g850が、z軸845に沿って考えられる。ペイロード820は、グリッパ810によって持ち上げられることになり、両方が一緒にMPMにおいてシミュレートされる。MPMは、ペイロード820とグリッパ810との(例えばギャップゾーン805における)衝突/接触をネイティブに反映する。
【0332】
目的関数はペイロード820に対してのみ定義され、密度および作動の更新はグリッパ810に対してのみ定義される。MPMでは、外力850は、正のZ方向に加わり、グリッパ810の上部815にわたって分散される。目標は、ペイロード820を上方に持ち上げることであり、したがって、外力850の値は、グリッパ810と、共に持ち上げられることになるオブジェクトとの下向きの力(重力作用、すなわち質量×重力によるもの)を超えるべきである。言い換えれば、Fg=-βg(mpl+Mgr)であり、ここで、グリッパがそのグリップ中にペイロードを持ちながら上方に加速することができるようにβ>1である。ここで、Mplはペイロード820の質量であり、Mgrはグリッパ810の質量であり、gは重力加速度である。
【0333】
最適化問題の目的関数は、ペイロード重心(CG)825のZ値を最大化することになる。Z値には、(持ち上げられた)高さの最終的な値、または平均値が使用され得る。平均Z目的を使用することは、ペイロードが持ち上げられたが最後の時間ステップでグリッパから落ちたときなどに、部分的な成功に対する報酬(勾配)を生み出すという利点を有する。
【0334】
実験および結果
次に、本方法による、かつ前述のプロトタイプ実装形態を使用した、いくつかの実験結果について論じられる。
【0335】
実験のための標準的なロボット解像度は50×50×50であり、1ボクセル当たり1つの粒子があり、結果として125000個の粒子がある。これは、時間計算と3D解像度との良好なバランスをもたらす。すべての実験で、最大化する目的関数は、ロボットのすべての粒子の重心によってx軸上で移動される距離である。実装形態は、重心算出のために粒子密度を考慮に入れない。実験は、Nvidia A6000 GPU上で実施された。粒子の最大質量Mmaxは、すべての実験で1に等しい。材料プロパティについては、Emax=25である。作動値については、Amax=4.65であり、40のωであり、これは少なくとも6作動サイクルを保証する。オプティマイザについては、実装形態は、Adam(参照により本明細書に組み込まれる文書(非特許文献11)による)を使用し、学習率は、筋肉変数については0.1、密度変数については0.02である。
【0336】
第1のケース:歩行ロボット
歩行ロボットについて、実装形態は、768個の0.002の時間ステップを用いてロボットをシミュレートした。体積分率は0.75に設定される。最適化は、200回の反復にわたって行われる。
【0337】
図13Aは、これらの反復の後の、最適化されたロボットの動きを提示する。
図13Bは、15、45、75、および200回の反復における関連付けられる進化を伴う最適化にわたる移動距離の進化を提示する。距離における1は、立方体ロボットの長さである。わかるように、形態は、自然に二足ソフトロボットに収束した。第1の反復では、目的関数のスコアを改善するための最も容易な方法は、倒れることだが、ロボットは自然に、第2の脚を構築して歩き、目的関数を改善した。
図13Bの移動距離と反復とのグラフは凸状であり、これは、頑強な収束のインジケータである。
【0338】
第2のケース:階段を上り、障害物を回避する
本方法の頑強性が、「階段を上る」および「障害物を回避する」シナリオでテストされる。階段シナリオでは、MPMグリッドの解像度は64×64×64であり、Emax=25である。障害物シナリオでは、MPMグリッドの解像度は100×100×100であり、Emax=35である。以下の実験の両方で、体積分率は0.65に設定される。
【0339】
図14A~Bは、階段シナリオおよび得られた結果を提示する。
図14Aに見られるように、このシナリオは2段の階段にあり、各段はロボットの1/10の高さを有し、その後に平坦なエリアが続く。
図14Aは、最適化されたロボットの運動を提示し、
図14Bは、反復回数15、45、75、および150回における関連付けられる進化を伴う最適化にわたる移動距離の進化を提示する。ここでは、ロボットは、階段を登るのに適応化された、かつ平面上を歩行するのにも適応化された二足ロボットに収束する。ロボットは、1100個の1.4×10
-3の時間ステップ上でシミュレートされた。(
図8)
図15A~Bは、障害シナリオおよび得られた結果を提示する。
図15Aに見られるように、このシナリオは、三角形に配置された3つのポールにある。ロボットは、ポールを避ける軌道を見つけようとする。最適化された形態は、ここでは、歩行シナリオまたは階段シナリオとは非常に異なり、これらのシナリオは両方とも、非対称であり、フラップ状の付属肢からの慣性効果を使用する。ロボットは、1100個の1.1×10
-3の時間ステップ上でシミュレートされた。
図15Aは、最適化されたロボットの運動を提示し、
図15Bは、反復回数10、45、90、および400回における関連付けられる進化を伴う最適化にわたる移動距離の進化を提示する。
【0340】
第3のケース:高解像度ロボット
このケースでは、また(上で論じられた分割による)メモリ管理による、100×100×100の解像度および200万個の変数のボクセルグリッド上でのロボットの最適化について論じられる。これは、一般的なアルゴリズムが扱えるものよりも4桁多い。「歩行」シナリオと同じパラメータが、わずか512時間ステップで使用された。
図16は、結果を提示する。この実験はまた、解像度に関する実装形態の安定性も示す。というのは、結果は、同じ条件および同じパラメータの下で最適化された、より低解像度の結果と同様だからである。
【0341】
第4のケース:多剛性ロボット
このケースでは、硬化パラメータ(すなわち剛性変数)の追加と共に、初期化形状が70×35×50に設定される。パラメータγは7に設定される。比較のために、同じパラメータを有する完全にソフトなロボットもまたシミュレートされる。MPMは、多剛性ロボットにおいて使用される高いヤング率と共に、陽的な時間ステップ積分を使用し、数値的不安定性を回避するために時間ステップが低減される。我々のソフトロボットでは、2×10-3の時間ステップおよび25のEmaxを使用した。多剛性のケースでは、Emaxを1500に設定し、4×10-4の時間ステップに制限され、必要とされる計算時間を増加させる。
【0342】
図17および18A~Bに、結果が提示される。
図17(左)は、最適化された多剛性ロボットを提示し、グレースケールで薄いほど、Emax1500までの硬い材料を表す。
図17(右)は、同じパラメータを有する最適化されたソフトロボットを提示する。
図18(上)は、最適化された多剛性ロボットの運動を提示し、
図18(下)は、15、50、75、および300回の反復における関連付けられる進化を伴う最適化にわたる移動距離の進化を提示する。曲線1810および1820は、ソフトロボットおよび多剛性ロボットをそれぞれ提示する。
【0343】
これらの図に見られるように、移動距離は両方のロボットの場合で同じだが、多剛性ロボットは、同じ結果に対してはるかに少ない筋肉を使用し、根本的に異なる形態を有する。硬化パラメータκの学習率つまり初期学習率、すなわち式(15)中のδκは、この実験では0.3である。結果として得られるロボットは、その外骨格を使用して運動を伝達する。
【0344】
第5のケース:エネルギー制限
この実験では、歩行ロボットと同じパラメータが、わずか512個の時間ステップのシミュレーションで使用される。ロボットによって使用されるエネルギーは、公式
【0345】
【0346】
によって計算される。
【0347】
図19に結果が提示されるが、この図は、ロボットによって移動された距離の進化を提示する。点1910は、エネルギー制約ありのロボットによって移動された距離である。ロボットの、グレースケールでより薄い部分は、硬い部分である。
図19に見られるように、結果として得られる形態は、エネルギー制限なしのロボットに驚くほど類似する。0.25よりも高いΓ
fracの場合、エネルギー制限ありのロボットによって移動された距離は、制約なしのロボットよりも長く、これは、制約なしのロボットが最適とは言えなかったことを意味する。制約は、よりよい勾配降下を奨励し、極小を回避すると思われる。実際、種々の値のエネルギー分率を用いて最適化することは、エネルギー使用を最小化しながら移動距離を最大化するパレート効率解のセットを探索することになる。
【手続補正書】
【提出日】2024-05-22
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
3Dロボット本体モデルを設計するためのコンピュータ実装方法であって、
前記3Dロボット本体モデルは、1つまたは複数の材料で形成されたロボット本体を表し、前記ロボット本体は、変形可能材料で各々が作られた1つまたは複数の変形可能部分を有し、前記1つまたは複数の変形可能部分の少なくとも一部は、作動されるように構成され、前記方法は、
所定のパラメータに基づく目的関数を提供することであって、前記目的関数は、設計変数の連続関数であり、前記目的関数は、ロボットの運動メトリックを定量化し、前記目的関数の最適値は、前記運動メトリックに関するロボットの最適な性能に対応し、
前記所定のパラメータは、
3D空間のグリッディングを形成する複数のボクセルと、
前記1つまたは複数の材料に関係付けられる1つまたは複数のパラメータと、
作動信号(A)を表す作動関数(f(t))であって、前記作動信号は、時間期間にわたる前記変形可能材料の変形を作動させる、作動関数と
を含み、
前記設計変数は、
前記複数のボクセルにわたる密度値の分布であって、各密度値は、ボクセルについて、前記ボクセルが材料で満たされる割合を、空と充満との間で連続的かつ単調に表す、密度値の分布と、
前記複数のボクセルにわたる作動係数の分布であって、各作動係数は、ボクセルについて、前記作動信号に対する前記ボクセルの内部の材料の応答を表す、作動係数の分布と
を含む、ことと、
前記目的関数の勾配ベースの最適化を実施するために前記設計変数を探索し、それにより前記設計変数の最適な連続値を取得することと、
前記設計変数の前記最適な連続値に基づいて3Dロボット本体モデルを決定することと
を含むことを特徴とする方法。
【請求項2】
前記ロボット本体は、剛性材料で各々が作られた1つもしくは複数の剛性部分をさらに備え、前記設計変数は、
前記複数のボクセルにわたる硬化パラメータ(κ)値の分布であって、各硬化パラメータ値は、ボクセルについて、前記ボクセルを満たす材料の硬さのレベルを、第1のレベルと前記第1のレベルよりも硬い第2のレベルとの間で連続的かつ単調に表す、硬化パラメータ(κ)値の分布をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記勾配ベースの最適化を実施することは、反復的なプロセスを含み、各反復は、各ボクセルについての前記密度値および前記硬化パラメータ値に基づいて、前記複数のボクセルにわたるヤング率値の分布を計算することを含むことを特徴とする請求項2に記載の方法。
【請求項4】
ボクセルについての前記ヤング率値の前記計算は、以下のタイプのものであることを特徴とする請求項3に記載の方法。
【数1】
上式で、Eは、前記計算されるヤング率であり、E
maxは、剛性材料の前記ヤング率であり、E
minは最小ヤング率であり、E
actは、前記変形可能材料の前記ヤング率であり、ρは密度値であり、κは硬化パラメータの値であり、
【数2】
である。
【請求項5】
前記ロボット本体は、変形可能材料で各々が作られた1つもしくは複数の変形可能部分からなり、前記設計変数は、前記複数のボクセルにわたる前記密度値の分布および前記作動係数の分布からなることを特徴とする請求項1に記載の方法。
【請求項6】
各粒子に割り当てられる質量の値は、1つもしくは複数の対応するボクセルの前記密度値に比例することを特徴とする請求項5に記載の方法。
【請求項7】
前記目的関数の前記勾配ベースの最適化を実施することは、体積分率に対して制約を課すことであって、前記体積分率は、密度値のそれぞれの分布から計算され、任意選択で、前記体積分率に対して制約を課すことは、所与のボクセルにおいて、以下のタイプのものであることを特徴とする請求項1乃至6のいずれか一項に記載の方法。
【数3】
上式で、
【数4】
であり、ηはパラメータであり、V
fracは前記体積分率であり、ρは制約あり密度値であり、
【数5】
は制約なし密度値であり、
【数6】
は、前記複数のボクセル上の
【数7】
の合計であり、N
voxelは、前記複数のボクセルにおけるボクセル総数である。
【請求項8】
前記目的関数の前記勾配ベースの最適化を実施することは、作動エネルギーに対して制約を課すことであって、前記作動エネルギーは前記設計変数の関数であり、任意選択で、前記作動エネルギーに対して前記制約を課すことは、所与のボクセルにおいて、以下のタイプのものであることを特徴とする請求項2乃至4のいずれか一項に記載の方法。
【数8】
上式で、
【数9】
であり、
【数10】
は制約あり作動係数であり、
【数11】
は制約なし作動係数であり、
【数12】
は、前記複数のボクセル上の
【数13】
の合計であり、
【数14】
は、ボクセルiにおける前記制約なし作動係数の絶対値であり、ρ
iは、ボクセルiにおける密度値であり、Γ
fracはエネルギー分率であり、N
voxelは
、前記複数のボクセル
におけるボクセル総数である。
【請求項9】
前記設計変数を探索することは、
前記設計変数の値の前記分布を、前の値および計算された導関数に基づいて更新することと、
前記密度の前記更新された値と体積分率に対する前記制約とを使用して前記密度の前記更新された値をさらに更新することと、
前記密度の前記さらに更新された値と作動エネルギーに対する前記制約とを使用して前記作動係数の前記更新された値をさらに更新することと
をさらに含むことを特徴とする請求項8に記載の方法。
【請求項10】
前記勾配ベースの最適化を実施することは、反復的なプロセスを含み、各反復は、所定の変数に基づいて前記ロボットをシミュレートし、それにより前記時間期間にわたるシミュレーション変数の値を取得することを含み、前記シミュレートすることは、任意選択でメッシュレス法であることを特徴とする請求項1乃至6のいずれか一項に記載の方法。
【請求項11】
前記勾配ベースの最適化の各反復において、前記シミュレートすることはマテリアルポイント法(MPM)を含み、前記MPMは、
前記複数のボクセルによって形成される前記グリッディングに対して位置する複数の粒子を定義することと、
各粒子に、
前記設計変数の前記値に基づくヤング率と、
1つもしくは複数の対応するボクセルの前記密度値に基づく質量の値と、
前記作動係数と前記作動関数とに基づく前記作動信号の値と、
を割り当てることと、
前記粒子に割り当てられた前記ヤング率、前記質量の値、および前記作動信号の前記値に基づいて、MPMシミュレーションステップを反復することと
を含むことを特徴とする請求項10に記載の方法。
【請求項12】
前記勾配ベースの最適化を実施することは、前記設計変数に対する前記目的関数の偏導関数を計算することをさらに含み、前記勾配ベースの最適化を実施することは、
初期時間と時間期間の終わりとの間で複数の時点を提供し、それにより、結果として生じる2つの時点間で各々が形成される複数の時間間隔を定義することであって、したがって、前記時間期間にわたるシミュレーション変数の値を取得することは、前記複数の時点における前記シミュレーション変数を取得することを含むことと、
前記初期時間から最後の1つ前の時間までの各時間間隔上で順方向シミュレーションを実施することであって、前記時間間隔上で順方向シミュレーションを実施することは、初期条件、および/もしくは前の時間間隔上での前記順方向シミュレーションに基づくことと、
最後の間隔上で、初期条件および/もしくは前の時間間隔上での前記順方向シミュレーションに基づいて、順方向シミュレーションおよび逆方向シミュレーションを実施することと、
最後の前の前記時間間隔から最初の時間間隔までの各時間間隔上で、初期条件、および/もしくは前の時間間隔上での前記順方向シミュレーションに基づいて、逆方向シミュレーションを実施することと
を含むことを特徴とする請求項1乃至6のいずれか一項に記載の方法。
【請求項13】
前記設計変数の前記最適な連続値に基づいて前記3Dロボット本体モデルを決定することは、前記複数のボクセルにわたる1つもしくは複数の前記設計変数の前記最適値をしきい値処理することを含むことを特徴とする請求項1乃至6のいずれか一項に記載の方法。
【請求項14】
請求項1乃至6のいずれか一項に記載の方法を実施するための命令を含むことを特徴とするコンピュータプログラム。
【請求項15】
メモリに結合されたプロセッサを備えるシステムであって、前記メモリには、請求項14に記載のコンピュータプログラムが記録されていることを特徴とするシステム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0188
【補正方法】変更
【補正の内容】
【0188】
【外国語明細書】