フィジカルAIラボ 1.4:シミュレータの地図――刻み幅のコストを数え、接触で軌道が分かれる点を読み、3 つの高速化の比較対象を確かめる

シミュレータの地図――刻み幅のコストを数え、接触で軌道が分かれる点を読み、3 つの高速化の比較対象を確かめる。日本語動画、解説、確認問題、出典をこのページにまとめました(2026-10-06 更新)。

この回の動画

ナレーションは AI 合成音声です。 動画の章・文字起こし・出典

文字起こし

文字起こし

知行の問い

同じつかむ動きなのに、シミュレーターを変えたら、どうしてコップがはね飛ばされるの?今回は、シミュレーターの地図を描いてみます。主な四つのエンジンが、それぞれ何を得意とするのか。そして、同じ動きでも、エンジンを変えると結果がちがうのはなぜか。

シミュレータは何を計算している?

シミュレーターがやっていることは、じつは難しくありません。各関節にどれだけの力をかけるかが決まれば、次の瞬間、物がどう動くかを計算します。なぜ実機で直接練習しないのでしょう?一度転ぶだけでお金がかかり、危険でもあります。シミュレーションなら、何度転んでも平気です。一気に最後まで計算するわけではありません。時間を細かいステップに刻んで、一歩ずつ計算します。ステップが小さいほど正確で、そのぶん遅くなります。いちばん計算が難しいのは、触れるその瞬間です。指がコップに触れたとき、力の大きさも、どちらへすべるかも、すべてこの一瞬で決まります。エンジンによって、接触の計算に使う近似がちがいます。だから同じ動きを入れても、二本の軌道は少しずつ分かれていきます。ちがいは見た目のきれいさじゃなくて、接触の一瞬をどう計算するかなんだ!

四つのエンジン

まずはムジョコ。DeepMind が管理していて、オープンソースで無料です。接触の計算が正確で、多くの論文が基準として使っています。細かい接触が得意で、昔は一度に一つずつしか動かせませんでした。のちにグラフィックボード版が出て、一度にたくさん動かせるようになりました。次は、エヌビディアの アイザック。シミュレーションをまるごとグラフィックボードに載せて、たくさんの環境をいっしょに動かします。どれくらい速いのでしょう?従来のやり方は、処理装置でシミュレーションし、グラフィックボードでネットワークを学習させていました。技術報告によると、すべてをグラフィックボード一枚にまとめると、にけたから、さんけた速くなるそうです。アイザック にはもう一つ強みがあります。映像をとてもリアルにできることです。学習データをつくるのに役立ちます。三つ目は Newton。エヌビディア、グーグル、ディズニーが、このオープンソースのエンジンを共同で開発すると発表しました。土台は、NVIDIA の Warp です。カギになるのが、ムジョコをワープで動かす版です。NVIDIA によると、ヒューマノイドのシミュレーションが七十倍以上速くなります。ニュートンは、さらに二つのことを目指しています。シミュレーションを微分できるようにして、学習しやすくすること。そして、布ややわらかい物も、いっしょに計算できるようにすることです。四つ目は Genesis。これもオープンソースのプロジェクトです。いろいろな物理を、一つのエンジンにまとめようとしています。Genesis はとても新しいエンジンです。新しいエンジンほど、気をつけたいことがあります。本当に十分に検証されているか、です。ゆっくりなら正確、速ければたくさん練習できる。四つのエンジンは、どちらを優先するかが、それぞれちがうんだ!

速さは何のため?

なぜそこまで速さを求めるのでしょう?強化学習では、膨大な回数の試行錯誤が必要だからです。ある論文によると、何千もの並列環境を使い、四本足のロボットが四分もかからずに平地を歩けるようになりました。でこぼこの地面でも、二十分ほどです。この速さを支えているのが、まさに何千もの環境でのいっしょの練習です。でも、速さと正確さは両立しにくいものです。さらにやっかいなのは、シミュレーションがどれだけ正確でも、現実の世界そのものではないことです。では、このずれをどう縮めるのでしょう?よく使われる手が、ドメインランダム化です。重さ、摩擦、照明を、ランダムに揺らします。画面で試してみましょう。同じ動きを、四つのエンジンで並べて再生します。接触の瞬間には、ずれが強調表示されます。正直に言うと、どんな作業でもいちばん、というエンジンはありません。エンジン選びは、何をするのか、どれだけ正確に、どれだけ速く必要かで決まります。ふりかえりです。ポイントは三つ。一つ、シミュレーターの核心は、接触の一瞬をうまく計算すること。二つ、四つのエンジンにはそれぞれ取捨選択があり、グラフィックボードの並列化でけたちがいに速くなった。三つ、速いことは正確なことではなく、シミュレーションは現実ではない。だからコップが飛んだのは、ロボットのせいじゃない。エンジンの接触の計算がちがうんだ!じゃあ、練習に使う動きのデータは、そもそもどこから来るの?また次回!

根拠と出典

2〜3桁 · 一枚のGPUで物理シミュレーションと学習をまとめて行うと、CPUでシミュレーションしGPUでネットワークを学習させる従来方式より速くなる幅(エヌビディア Isaac Gym 技術報告) [R] · arXiv 2108.10470 · Isaac Gym(NVIDIA)

70倍以上 · Google DeepMind の MuJoCo-Warp による人型シミュレーションの高速化は70倍超、手の中での操作タスクは約100倍(エヌビディアによる) [O] · NVIDIA 開発者ブログ · Announcing Newton

4分未満 · ワークステーション用GPU一枚の上で何千もの並列環境を使い、四足ロボット ANYmal が平地歩行を身につけるまでの学習時間。でこぼこの地面では約20分(論文の自己報告) [R] · arXiv 2109.11978 · Learning to Walk in Minutes

練習とセルフチェック

小テストは公開で、回答するとすぐ解説が出ます。読み物の練習問題の答えはログイン会員向けです。

フロー図。見出しは「同じ動きが分かれる理由」。1 から 4 の番号付きの塗りつぶした円が左から右へ矢印でつながる。その下の文字は順に「一歩ずつ計算 関節の力から次の瞬間を求める」「接触の瞬間が最難関:力の大きさとすべる向き」「エンジンごとに接触の近似がちがう」「同じ動きでも二本の軌道が少しずつ分かれる」。下部に出典の表示がある。
第 1.4 回で説明したシミュレーションのしくみ:シミュレーターは一歩ずつ計算し、接触の瞬間がいちばん難しい。エンジンごとに接触の近似がちがうため、同じ動きでも軌道が少しずつ分かれる。矢印は動画の説明の順序を示し、番号は順位ではありません。図には測定値は含まれていません。出典:フィジカルAIラボ 1.4 動画。

第 1.4 回の動画は「同じつかむ動きなのに、シミュレーターを変えたら、どうしてコップがはね飛ばされるのか」という問いから始まり、シミュレーターの地図を描きました。シミュレーターの核心は小さなステップに刻んで一歩ずつ計算することで、いちばん難しいのは接触の瞬間です。エンジンごとに接触の近似がちがうので、同じ動きを入れても二本の軌道は少しずつ分かれていきます。MuJoCo、Isaac、Newton、Genesis にはそれぞれ取捨選択があり、どんな作業でもいちばんというエンジンはありません。動画は三つの証拠を引用しています。Isaac Gym 技術報告の「2〜3 桁速い」、MuJoCo-Warp で「人型のシミュレーションが 70 倍以上速い」という NVIDIA ブログの説明、そしてある論文の「平地歩行を 4 分未満で学習」です。このページはこの回の解説と練習です。文字起こしをくり返すのではなく、まず三つの高速化の数字がそれぞれ何と比べたものかを整理します。次に架空のつかむ動作で刻み幅を小さくしたときのコストを手で計算し、架空の二つのエンジンの再生記録から軌道が分かれる点を見つけ、最後に「作業でエンジンを選ぶ」を確認用のチェックリストにします。全体を通すルールは一つです。高速化の倍率は、その比較対象・作業・システムのもとでだけ成り立ちます。出典のちがう倍率は掛け合わせることも、大小を比べることもできません。

このレッスンの動画、文字起こし、出典はこのページの上部にあります。シーズン全体の構成は講座の概要をご覧ください。前回のフィジカルAIラボ 1.3:センサー――1 つのコップで画素数、深度の測定範囲、握る力を手計算するは、「これだけのセンサーと試行錯誤を実機で練習するのは遅すぎる。どこで練習するのか」という問いで終わりました。このレッスンはその続きです。Isaac Gym の 2〜3 桁と Learning to Walk in Minutes の実験条件は、フィジカルAIラボ 0.4:仮想の世界で一万回練習――シミュレーションの 3 つの数字に実験条件を戻すですでに一つずつ扱いました。このレッスンではその表とバッチの計算はくり返さず、必要なところで参照するだけにします。新しく加えるのは、Newton のブログにある MuJoCo-Warp の数字と、シミュレーターの内部で起きる「刻み幅」と「接触」の二つです。

1. 三つの高速化の数字は、それぞれ何と比べているか

動画の三つの証拠の原文は次のとおりで、それぞれ別の資料に由来します。

This leads to blazing fast training times for complex robotics tasks on a single GPU with 2-3 orders of magnitude improvements compared to conventional RL training that uses a CPU based simulator and GPU for neural networks.

It enables developers to achieve significant performance gains, with more than a 70x acceleration for humanoid simulations and a 100x speedup for in-hand manipulation tasks.

The parallel approach allows training policies for flat terrain in under four minutes, and in twenty minutes for uneven terrain.

一つ目は Isaac Gym 技術報告(arXiv 2108.10470、著者の所属は NVIDIA)、二つ目は NVIDIA 開発者ブログの Announcing Newton(2025-03-18)、三つ目は Learning to Walk in Minutes(arXiv 2109.11978、著者は ETH Zurich と NVIDIA)からです。並べると次のようになります。

動画での言い方何についての数字か何と比べているか作業の範囲レベル
2〜3 桁速いIsaac Gym:物理シミュレーションとニューラルネットワークの学習をどちらも GPU 一枚で行うCPU でシミュレーションし GPU でニューラルネットワークを動かす従来の RL 学習報告で扱った複雑なロボット作業R(著者の報告)
人型シミュレーションが 70 倍以上速いMuJoCo-Warp:ブログによれば、Google DeepMind が公開した、Warp で高速化したオープンソースのロボットシミュレーター引用した文には、比較対象、ハードウェア、並列の規模が書かれていない人型シミュレーションで 70 倍以上。手の中での操作は 100 倍で、別の数字O(メーカーのブログ)
平地を 4 分未満ワークステーション用 GPU 一枚の上で、数千台の並列シミュレーションロボットを使って四足ロボット ANYmal を学習倍率ではなく学習時間。論文は別に、従来研究より何桁も速いと述べている平地で 4 分未満、でこぼこの地面で 20 分R(著者の報告)

この表を読むときの注意点は三つあります。

  • 三つの数字は単位も比較対象もちがいます。一つ目は二つの学習パイプラインの比、二つ目は一つのシミュレーターの二種類の作業での高速化、三つ目は一回の学習にかかった時間です。掛け合わせて一つの「総合的な高速化」にすることも、Newton が Isaac より速い・遅いと言うのに使うこともできません。
  • 70 倍は人型シミュレーションだけのものです。同じ文の中で、手の中での操作には 100 倍が示されています。引用した文には、ほかの作業(たとえば四足歩行や布)の数字はなく、どの版の MuJoCo と、どのハードウェアで比べたのかも書かれていません。動画が「NVIDIA によると」と言っているのは、これがメーカーのブログによる提携先のツールの紹介で、独立した評価ではないからです。
  • 「4 分未満」はシミュレーションの中での学習時間です。原文は under four minutes で、ちょうど 4 分ではありません。作業は平地歩行で、条件はワークステーション用 GPU 一枚の上の数千台の並列ロボットです。ロボットが実際の地面で歩けるようになるまでの時間ではありません。

制約と注意点

  • Isaac Gym(arXiv 2108.10470、2021-08-24)と Learning to Walk in Minutes(arXiv 2109.11978、2021-09-24)の数字はどちらも著者の報告で R 級です。二つの文献にはどちらも NVIDIA の著者がいます。MuJoCo-Warp の 70 倍と 100 倍は NVIDIA 開発者ブログ(2025-03-18)に由来し、O 級のメーカー自身の記述で、引用した文には比較対象、ハードウェア、テストの設定が書かれていません。本サイトはいずれも独自に再現していません。
  • Newton の機能は発表時のブログに基づく説明で、ブログは当時、開発が進行中だとしていました。このレッスンはその後のリリース状況を追っておらず、どの機能がすでに使えるかも判断していません。
  • Genesis の説明は動画だけに基づいており、このレッスンでは一次資料を引用していません。動画での MuJoCo の「接触の計算が正確」、Isaac の「映像がリアル」という説明も講座による要約で、このレッスンでは対応する定量的なデータを見つけていません。
  • 第 2 節の 2.0 s、0.2 m/s、10,000 エピソード、1,000 個の並列環境、「1 ステップの計算量は同じ」、第 3 節のエンジン A・B とすべての変位の数字は、練習のための仮定で、どのエンジンやシステムの設定や出力でもありません。「ステップの境目でだけ接触を確かめる」は教育用の単純化したモデルで、実在のどのエンジンの接触アルゴリズムを説明するものでもありません。
  • 第 4 節の右の列と三つの架空の作業の確認項目は教える側の提案で、選定の結論ではありません。このレッスンは二つの文献の要旨と本文の冒頭数節、およびブログの本文に基づいており、補足資料は含みません。実機への移行がどれだけうまくいったかは、これらの文章には出てきません。
  • 実験ページの四つのエンジンの再生はスクリプトによるデモで、動画の画面にもイメージと表示されています。本記事では実験ページの実装を確認していません。

リンク

この回の動画を見る(日本語) · 1.4