造船所のデジタルツインで、ロボットの歩行を検証する——「ロボットが現場を歩けるか」を実機より先に確かめる
ロボットを現場に入れる前に、「そもそもその現場をロボットは歩けるのか」を確かめたい。私たちは、実寸の船体ブロックをNVIDIA Isaac Sim上に再現して、強化学習した四足ロボットの歩行ポリシーで走破性を検証しています。 本記事では、点群・CADからシミュレーション環境を作るパイプライン、強化学習のカリキュラム設計、そして「仮設タラップと作業床を少し工夫するだけでロボットの活動範囲が広がる」ことをシミュレーションで示した検証結果を紹介します。
造船所のデジタルツインで、ロボットの歩行を検証する
1. 「ロボットを買ってから考える」では遅い
造船の現場は、ロボットにとって最も過酷な職場のひとつです。
二重底などの船体ブロックの内部は狭く、補強材(ロンジ)が床から一定間隔で立ち上がり、高所には仮設の足場や梯子が混在しています。照明は暗く、ケーブルが這い、溶接ヒュームが立ち込める。しかもブロックは船ごと・工程ごとに形が変わるので、「一度プログラムすれば終わり」という世界ではありません。
一方で、熟練工の減少と人手不足は待ったなしです。ここでロボットに期待されているのは「人より速く溶接すること」ではなく、造船所をより長く、より安全に動かし続けること——夜間や交替制での稼働、危険な閉所での作業の肩代わりです。
ただ、ロボットを現場に持ち込んでから「梯子が登れなかった」「補強材を跨げなかった」と分かるのでは、時間もコストもかかりすぎます。そこで私たちが取り組んでいるのが、
現場をまるごとデジタルツイン化し、ロボットが「その現場を歩けるか」を実機より先にシミュレーションで確かめる
という検証です。
2. 全体像:点群とCADから「ロボットが歩ける」シミュレーション環境へ
パイプラインは大きく4段階です。
① 計測 ── モバイルレーザースキャナで船体ブロックを計測(点群)
設計データ:造船CADからメッシュを書き出し
↓
② 変換 ── FBX / DXF → USD / USDZ(単位・座標軸・原点の補正)
↓
③ 物理付与 ── 当たり判定・摩擦・反発係数を設定し、Isaac Sim のシーン化
↓
④ 検証 ── 強化学習した歩行ポリシーを投入し、到達可否・時間・転倒を評価
点群由来・CAD由来・その両方を合成したモデルなど複数の作り方を比較し、最終的に造船所の実ブロックを再現したシーン11個を構築しました。あわせて、壁・段差・溝・グレーチング・開口部などを要素ごとに切り出した汎用テストベッドを46シーン自作し、「どの要素でロボットがつまずくのか」を切り分けられるようにしています。

自作した汎用テストベッドの例(左上から:壁に挟まれた階段、ロンジを模した格子、開口部付きの壁、傾斜と段差の組み合わせ)
3. 見た目がいいモデルが、ロボットに使えるとは限らない
最初に痛感したのがこれです。人間が見て美しい3Dモデルでも、物理シミュレーションに入れた瞬間に問題が噴き出します。
| 起きたこと | 対処 |
|---|---|
| CAD由来のモデルに当たり判定がなく、ロボットが床をすり抜ける | スクリプトで三角メッシュの衝突形状を一括で焼き込む |
| データの原点が数十〜数百m離れた場所にあり、物理が不安定になる | 取り込み前に単位・座標軸・原点を自動チェックして補正 |
| 厚みのない板の「表と裏の面の間」に足が挟まって抜けない | 実寸の厚みを持つ箱形状に置き換え(連続衝突判定では直らなかった) |
| 宙に浮いた部材、欠落した階段 | 上流のモデル作成工程へフィードバック |
| 共有形式がバラバラで、受け渡しのたびにテクスチャが落ちる | 3案を比較し、単一のUSDZに統一 |
特に効いたのは、ロボットが「見ている」地図と「踏んでいる」床がずれていた問題です。当たり判定用のメッシュと、ロボットが周囲の高さを読み取る高さマップ用のメッシュが別管理になっており、地図に床が写っていませんでした。床を地図側にも追加しただけで、階段の登り切り率が約4%から約38%へ跳ね上がりました。ポリシーを1行も変えずに、です。
さらに、高さマップを「上空から光線を下ろして測る」実装だったため、ブロック内部では頭上の甲板を床と誤認していました。光線の出発点を胴体付近に下げ、高すぎる点を捨てることで解消。同時に高さマップの計算を1周期あたり約12msから約2msに短縮し、学習のスループットも上げています。
4. 強化学習:地形を「分解」してカリキュラムにする
検証の主役は、市販の四足ロボット Unitree A2(大型)と Unitree Go2(小型)です。人型ではなく四足を選んだのは、ブロック内の不整地と荷物の運搬を考えると、現時点で最も現実的な選択肢だからです。
学習環境は NVIDIA Isaac Sim / Isaac Lab 上のPPO(rsl-rl)。造船所の環境を「そのまま」学習させるのではなく、現場の難所を要素に分解して地形を生成しました。
- 地形7種:平地・溝・段差(階段)・斜面・ロンジ(補強材)・マンホール2種
- 難易度5段階:ロボットが上達すると、自動的に難しい地形へ進む
- 地形は1回あたり約0.15秒で生成でき、数千の環境を並列で回せる
Go2では、頭部に取り付けたLiDARの点群から足元の高さマップ(17×11点)を作り、関節12軸の目標角を出力するポリシーを学習しました。実機のセンサー記録を解析し、点群の欠け・高さのばらつき・遅れといった現実の「汚さ」を学習時にも再現しています。ポリシーはONNX形式に変換し、実機のランナーとそのまま共通化しました。
A2では、「階段が得意な先生ポリシー」と「ロンジ跨ぎが得意な先生ポリシー」を別々に鍛え、それを1本の生徒ポリシーに蒸留(multi-teacher distillation)するアプローチを取りました。約2万イテレーションで、1本のポリシーが階段からロンジまでを通しで走破できるようになっています。
最新の全地形ポリシーがシミュレーション上で越えられるようになった目安は次のとおりです。
| 地形 | 到達点 |
|---|---|
| 壁・箱 | 約1m |
| 階段 | 高さ約67cmまで |
| ロンジ(補強材) | 高さ約56cmまで |
| 溝 | 幅約1.2m |
| 斜面 | 約54° |
| 直進性 | 10m歩いたときの横ずれ 2.4m → 7cm に改善 |
また、同じポリシーを Isaac Sim と MuJoCo の両方で動かせる自作ランナーを作り、物理エンジンを変えても同じ挙動になるか(sim-to-sim)を照合しています。片方の物理エンジンの「癖」に過学習していないかを確かめるためです。
汎用テストベッドでのGo2の走行検証(Isaac Sim/2倍速)。左上から:階段、格子状のロンジ(赤い点は高さマップの計測点)、グレーチングの階段、斜面
5. 検証結果:造船所の「難所」をロボットは越えられるか
いよいよ本番です。実ブロックを再現したシーンで、作業者が日常的に使う動線をロボットに歩かせました。各場面で8回ずつ試行した結果です。
| 検証した場面 | 成功回数 | 所見 |
|---|---|---|
| 垂直に近い既存の梯子 | 8回中0回 | 登りかけるが、十数秒で後方へ転落 |
| 仮設タラップ(4段、踊り場付き) | 8回中3回 | 成功時は約4秒で登り切る |
| ロンジを跨ぐ(作業床なし) | 8回中0回 | 跨いだ先で姿勢を立て直せない |
| ロンジを跨ぐ(作業床あり) | 8回中2回 | ロンジ4本を連続で跨ぎ、転倒0 |
数字だけ見ると「まだまだ」に見えるかもしれません。しかしこの検証の価値は、失敗の理由がはっきり分かったことにあります。
既存の梯子は、人間が手すりを掴んで登る前提の角度です。四足ロボットにはそもそも無理がある。一方、同じ高さでも段の幅を広げ、登った先に踊り場を設けた仮設タラップにすると、成功が出始めます。ロンジも同様で、跨いだ先に機体を置き直せる平らな作業床があるだけで、0回が2回に変わりました。
つまり、成否を分けたのは段差の高さそのものよりも、
「登る幅」と「登った先で体勢を立て直せる場所」があるかどうか
だったのです。
6. ロボットを鍛えるか、現場を少し変えるか
ここから導かれる提言はシンプルです。
- 船体構造そのもの(ロンジなど)は変えられない → ロボット側を鍛える(学習・制御の改善)
- 仮設物(タラップ・足場・作業床)は変えられる → ロボットが通れる仕様(例:段の高さ約20cm × 踏面約30cm)を現場へ提案する
ロボット導入というと「ロボットの性能をどこまで上げるか」の話になりがちですが、現場側の小さな工夫で活動範囲は大きく広がる。それを、足場を1本も組む前にシミュレーションで定量的に示せることが、デジタルツインの最大の価値だと考えています。
なお、すべてを強化学習で解こうとしているわけではありません。敷居の高いマンホールのように、1本ずつ脚を通す精密な動作が必要な場面では、強化学習をやめて関節軌道を設計する方針に切り替えています。手段にこだわらず、場面ごとに最適な制御を選ぶのも私たちの役割です。
7. 次のステップ:シミュレーションと現実のループを回す
現在は、以下のサイクルを回しながらシミュレーションを現実に近づけています。
sim-to-sim(Isaac Sim ↔ MuJoCo で挙動を照合)
↓
sim-to-real(実機で「吊るして試す → 平地 → 段差」の順に検証)
↓
real-to-sim(実機で見えたズレをシミュレーションに戻す)
たとえば実機では、センサーの高さマップが数百ミリ秒遅れて届く見込みがあります。秒速0.75mで歩けば、その間に約30cm進んでしまう計算です。こうした遅れやノイズを約15条件で揺らした評価を回し、弱点が出た条件だけを追加学習する——という地道な作業を続けています。
また、3Dモデルに材質や板厚などの属性が残っておらず、「どの部材がどれか」を形状だけから推測しなければならないという課題も見えてきました。部材IDで形状と属性を結ぶ共通スキーマの必要性を提言し、USDのカスタム属性で設計情報を引き継ぐ検証も進めています。
8. おわりに
「ロボットを導入したいが、うちの現場で本当に動くのか分からない」——これは造船に限らず、建設・プラント・物流など、あらゆる現場に共通する悩みです。
Open Reach Techは、
- 現場の点群・CADデータからのシミュレーション環境構築(USD化・物理設定)
- Isaac Sim / Isaac Lab による強化学習ポリシーの開発と評価基盤づくり
- 「ロボットを鍛える」と「現場を変える」の両面からの導入可否の定量評価
を一気通貫でご支援できます。ロボット導入の検討段階からご相談いただければ、実機を買う前に「歩けるか」を確かめるところからご一緒します。
シミュレーションで学習した動きを実機に載せる取り組みについては、「強化学習した動きを、シミュレーションから実機へ」で紹介しています。