「工場の操作盤を、人の代わりにロボットに押させてほしい」

この手の相談で最初にぶつかる壁は、たいてい想像と違うところにあります。カメラでもAIでもなく、ロボットに動きを覚えさせるシミュレーターが、現場に置ける機材では動かない。

NVIDIAの発表会でよく流れる、何百体ものロボットが仮想空間で一斉に訓練している映像。あれを動かしているIsaac Simは、レイトレーシング用のRTコアを積んだGPUを前提にしています。工場に置くような小型のAI端末に、そんなものは載っていません。ではクラウドの大型GPUを借りればいいのか。それをやると、回線が細い日はロボットが止まります。工場の中で完結させたくて始めた話なのに、本末転倒です。

諦めるしかないのか。そう思いながら手を動かしてみたら、抜け道がありました。描画を捨てて、物理計算だけをGPUに任せる。この方針で、手のひらサイズの端末1台に2,048体のロボットアームを同時に訓練させられました。

この記事では、RTコアを持たないエッジ端末1台で、2,048体のロボットアームを並列訓練した方法を解説します。シミュレーターの構成、強化学習にカメラ画像を渡さない設計、並列数ごとの実測スループット、そして「ボタンを押す」動作を成功率66.7%まで引き上げるまでの手順を、実測値とあわせて順に説明します。安全違反(アームが壁・床に接触した回数)は全構成で0%でした。

MuJoCo-Warpを選んだ理由

あの映像で本当に効いているのは何か。写実的な絵ではなく、物理シミュレーションを何千体ぶんも同時に回すことのほうです。訓練しているAIは、そもそも絵を見ていません。なら描画は丸ごと捨てられます。

NVIDIAとDeepMindが共同開発しているMuJoCo-Warpを試したところ、これが手元の端末のCUDAだけで素直に動きました。2,048体の仮想ロボットアームが、1台のエッジ端末の上で一斉に訓練に入ります。Isaac Simは要りませんでした。

TABLE 01 — 諦めたものと、代わりに得たもの
観点 Isaac Sim(今回は使えず) MuJoCo-Warp(採用)
必要なGPU RTコア搭載GPUが必須 CUDAが動けば可(手元の端末で動作)
写実的な描画 得意(映像が作れる) 捨てた(訓練には要らないと判断)
物理の並列数 大規模並列 2,048体を1台で並列(8,192体まで確認)
動かす場所 ワークステーション/クラウド 現場に置けるエッジ端末1台
FIG. 0148台のロボットアームが同じ学習済みポリシーで、48通りの条件を同時に実行しているところ。実際の訓練は2,048体並列で、表示しているのは48体だけです。緑のボタンが成功したワールド、赤がそれ以外。この記録では48ワールド中10成功でした。

強化学習にカメラ画像を渡さない設計

もうひとつ効いたのが、強化学習(RL)にカメラ画像を渡さなかったことです。AIが受け取るのは関節の角度と、狙う位置の3D座標だけ。「画面に何が映っているか」を読むのは視覚言語モデル(VLM)とカメラキャリブレーションの仕事、「どう腕を動かすか」がRLの仕事、と切り分けました。

この切り分けで楽になったのは、次の点です。

  1. きれいな絵を描く必要がなくなった——Isaac Simがなくても訓練が成り立つ
  2. カメラを替えても学習し直さなくていい——5分のキャリブレーションで済む
  3. シミュレーターと現実の差が「物理の差」だけになる——見た目を寄せる作業が丸ごと消える

並列数ごとのスループット実測

速度の話。ここは指標の選び方でいくらでも盛れてしまうので、先に決めておきます。物理シミュレーターは1回の制御につき25回の細かい計算を回します。だから「物理サブステップ/秒」と「制御ステップ/秒」では数字が25倍変わる。訓練がどれだけ進むかを見たいなら、後者です。

TABLE 02 — 並列数別の実測スループット(自社検証環境)
構成 制御ステップ/秒 物理サブステップ/秒 CPU比
CPU(10並列) 6,242 156,055 1.0倍(基準)
MuJoCo-Warp 2,048体 19,383 484,582 3.1倍
MuJoCo-Warp 8,192体 76,152 1,903,805 12.2倍

ただ、この表の12.2倍がそのまま訓練の速さになるわけではありません。方策の更新まで含めた実効速度で測ると、CPUの毎秒1,226ステップに対してGPU並列は毎秒3,477ステップ。およそ2.8倍でした。実時間で言うと、CPUが41分で300万ステップ、GPU並列は144分で3,000万ステップ。物理演算だけが速くなっても、学習側の処理が追いつかないと頭打ちになることが分かりました。

ついでに書いておくと、この訓練中もずっと同じ端末に30GB規模のVLMが載ったままでした。訓練側が余分に食ったGPUメモリは1GBほど。「見る」と「学ぶ」が1台に同居できるのは、現場で完結させたいときにそのまま効いてきます。

エッジGPUの超並列スループット 主指標は制御ステップ/秒(対数軸) 1 k 10 k 100 k 1000 k スループット (ステップ/秒, 対数) CPU 10並列 = 6242 制御ステップ/秒 0.10x 64 0.39x 256 1.6x 1024 3.1x 2048 6.0x 4096 12.2x 8192 ここでCPUを追い越す 並列ワールド数 (MuJoCo-Warp) 物理サブステップ/秒 (参考・25倍) 制御ステップ/秒 (実効・主指標) 実効値=学習が進む速さ。物理サブステップは1制御=25substepの内部刻み。 自社検証環境 実測 2026-07
FIG. 02並列数別の実測スループット(対数軸)。訓練の速さは制御ステップ/秒で見ます。
学習の実時間と成功率の推移 CPUは41分・300万ステップで打ち切り/GPU超並列は144分で3,000万ステップ 0 20 40 60 80 成功率 (%) 0 30 60 90 120 150 学習の実時間 (分) CPU はここで打ち切り 300万ステップ / 41分 / 総合22% 学習中の press 評価 最大 37.3% 総合は slide=0% で頭打ち CPU 逐次PPO・総合 GPU超並列・総合 (評価) GPU超並列・press (評価) 学習中の評価はサーボ無しの簡易判定。正式評価(15mmバイアス+サーボ)での press は 66.7%。 自社検証環境 実測 2026-07
FIG. 03訓練の実時間と成功率。CPUは300万ステップ・41分で打ち切り、GPU超並列は144分で3,000万ステップを消化しました。

数を回した効果は、並べてみると分かりやすい。訓練途中の4段階に、同じ試験を受けさせました。未学習は失敗、300万ステップから先は成功。ボタンの位置も初期のずれも物理も揃えてあるので、この差はまるごと訓練の成果です。

FIG. 044つの訓練段階(未学習/300万/900万/最終2,250万・実時間109分)が同じ試験に同時挑戦。判定は未学習=失敗、以降3つは成功。

接触判定の不備を修正した

できあがった映像を眺めていて、手が止まりました。ペン先が盤面にめり込んでいる。

最初のシミュレーターは接触の計算を手抜きしていました。ペン先に衝突判定がなく、「面をどれだけ越えたか」をそのまま押し込み量として数えていたのです。シミュレーターの中でしか成立しない動きで、実機で同じことをやれば盤面を壊します。数字は良くても、持っていけない数字でした。

そこでシミュレーターを作り直しました。変更点は次のとおりです。

  • 物理ボタンを置いた——直径12mm、盤面から5mm突出、バネのストロークは4mm。満押しでも1mm残るので、ペン先が盤面に届くこと自体が構造上ありえない
  • ペン先に衝突判定を入れた——貫通が物理的に不可能になった
  • 触れたら即失格のルールを足した——アームやペン先が壁・床に当たった時点で終了。合格条件にも「安全違反0%」を追加

成功の判定も変えました。「面を越えた量」ではなく、ボタンが実際に3mm沈んで、その状態が保たれたかどうかで見ます。

FIG. 05学習済みポリシーが物理ボタンを押しているところ。ペン先が衝突して止まり、ボタンがバネで約4mm沈み、離すと5mm突出へ戻ります。右のゲージは沈み込み量のライブ表示。

作り直した物理で訓練し直すと、総合成功率は59.5%から48.0%に下がりました。腕が下手になったわけではありません。試験のほうを現実に寄せた結果です。この11.5ポイントは、見栄えのいい数字を実機に持っていける数字に替えるための代金でした。

むしろ、下がった数字より嬉しい結果がありました。安全違反 0.0%。2,048体が数千万回の訓練を重ねるあいだ、「壁と床には触れない」という縛りを最後まで破りませんでした。どの構成で測っても0.0%です。

成功率の歩み — 最後の一段は「シムの正直化」 全て 15mmバイアス+サーボ の正式評価値 0% 25% 50% 75% 100% 成功率 (%) 合格ライン 90%(全段未達) 22 42 CPU 端から端 36 63.8 残差制御 51.5 77.1 校正平面 +残差 59.5 77.1 旧物理 ハイブリッド 48 66.7 物理ボタン+安全 ハイブリッド(採用) 総合成功率 press単体 斜線=旧物理(先端非衝突)の履歴。59.5→48.0 は難易度上昇であり精度低下ではない。 自社検証環境 実測 2026-07
FIG. 06成功率の歩み。22%→36%→51.5%→59.5%(旧物理)→48.0%(物理ボタン+安全制約)。最後の一段は難易度が上がったことによるものです。

最終的な成功率と安全違反率

最終的な成績です。合格の条件は着手前に決めてありました。初期ずれ15mm・視覚サーボON・各条件200回試して、総合成功率90%以上、かつ安全違反0%。

TABLE 03 — 構成別の最終成績(新物理・正式評価)
構成 総合 押す 滑らせる 安全違反
強化学習のAIだけ 34.0% 66.7% 0.0% 0.0%
強化学習+制御器(採用) 48.0% 66.7% 28.6% 0.0%
合格ライン 90%以上 0%

90%には届きませんでした。安全のほうは条件を満たしましたが、成功率が足りません。残りは実機でのキャリブレーションで詰めていきます。

ひとつ補足を。押す動作の合否には「ペン先の傾きを何度まで許すか」という線引きが要ります。今回は40度にしました。勘で決めた数字ではありません。実際にボタンが作動した回のうち、96.6%が40度以内に収まっていたからです(97パーセンタイルが40.2度)。

40°基準の裏付け: 作動プレスの整列分布 作動プレス=ボタンを3mm以上沈めたエピソード (1,024件) 20% 40% 60% 80% 100% その範囲に入る割合 (%) 20° 25° 30° 35° 40° 45° 作動時の整列ずれ 上限 (度) レガシー 25° (54.2%) 49.4 54.2 61.8 79.7 99.8 採用: 40° で 96.6% (p97 = 40.2°)
FIG. 07作動した1,024件の傾きずれ分布。40度で96.6%をカバーします。

滑らせる動作は強化学習だけでは解けなかった

成績表をよく見ると、押す動作(66.7%)と滑らせる動作(28.6%)でずいぶん差がついています。しかも強化学習だけに任せた場合、滑らせる動作は0.0%。1回も成功しませんでした。

後から追いかけて分かったのは、記憶がないと解けない種類の動作だったということです。滑らせる動作は「今どこまで滑らせたか」を覚えていないと最後まで持っていけません。ところが今回のAIは、毎回その瞬間に見えているものだけを頼りに動きます。いくら数を回しても、記憶を持たない設計では届かない場所がありました。

そこで、押す動作は強化学習のAIに、滑らせる動作は状態を覚えておける昔ながらの制御プログラムに任せ、指令ごとに振り分けることにしました。総合48.0%はこの組み合わせでの数字です。

分かったこと

ロボットアームの検証として書いてきましたが、AIの導入を検討する立場から見ても、そのまま当てはまる点がありました。

  1. テスト環境を、現実より甘くも辛くもしない。止まっているはずの対象の座標を毎フレーム±8mm揺らす設定を入れていた時期があり、これは現場に存在しない難問をAIに解かせていました。逆に貫通のように「シミュレーターだけが甘い」箇所もある。ズレは両方向に出ます。
  2. 一発の成功率だけで判断しない。実際の運用は「押す→カメラで画面が変わったか確かめる→ダメならもう一度」の繰り返しです。一発66.7%でも、3回試せる前提なら計算上96%まで来ます。見るべきなのは単発の精度ではなく、やり直しを含めた到達率のほうです。
  3. できなかったことを残しておく。今回なら「滑らせる動作が解けなかった」という一行が、次の設計をそのまま決めました。どこで失敗したのか切り分けられていない検証は、次に何も渡せません。
slide事後解剖: 接触はできる、完遂できない 強化学習だけでは滑らせる動作が解けなかった理由 0% 10% 20% 30% 40% スライド指標 (%) 2.5% 10.9% 34.0% 0.2% 7.4% 5.0% run3 RSIのみ run4 報酬整形 run5 二頭+状態特徴 ラッチは14倍改善 でも完遂は動かず = 部分観測性の壁 ラッチ率 (接触確立) 完遂率 (スライド成功) 自社検証環境 実測 2026-07
FIG. 08滑らせる動作を後から調べ直したもの。ラッチ率と完遂率の差が、記憶を持たない設計の限界を示しています。

まとめ

この記事では、RTコアを持たないエッジ端末1台で2,048体のロボットアームを並列訓練した方法を解説しました。描画を捨ててMuJoCo-Warpに物理計算だけを任せ、強化学習にはカメラ画像を渡さず関節角度と目標座標だけを渡す構成です。制御ステップ換算で CPU比3.1倍(2,048体並列)、訓練パイプライン全体では2.8倍でした。「ボタンを押す」動作は成功率66.7%、安全違反は全構成で0.0%です。

一方、滑らせる動作は強化学習だけでは0.0%のままで、状態を保持する制御プログラムと組み合わせて28.6%。総合48.0%は、着手前に決めた合格ライン90%に届いていません。残りは実機でのキャリブレーションで詰めます。

Isaac Simが動かない機材で足止めされている場合、まず確認するとよいのは「学習させるAIが本当に画像を必要としているか」です。必要としていないなら、描画を捨てた時点でGPUの要件は一気に下がります。

NEXT ACTION

「うちの現場でも動くのか」を一緒に見極めます

費用感は対象工程と設置環境で大きく変わるため、一律の金額はご提示していません。まずは現状の工程を伺ったうえで個別にお見積りします。

CONTACT

現場の課題、まずは話してみませんか?

nanoFACTORYは食品・医療・製造の現場に特化したエッジAIメーカーです。導入可否の判断段階からエンジニアが直接お話しします。

検証環境:自社のエッジAI検証機(GPU搭載の組み込み向け端末)/ MuJoCo + MuJoCo-Warp / 6軸小型ロボットアーム(先端は固定タッチペン)。訓練も推論もVLMの常駐も、すべて同じ1台の上で動かしています。記事中の数字はすべてこの環境での実測値です。