TT Lab
ブログ

한국어 English 日本語 中文

はじめる
ブログ

ブログ

シミュレーションから実世界へ:ドメインランダム化、遅延・ノイズモデリング、システム同定、大規模並列シミュレーション

ステータス:ドラフト(2026-10-18)、実測。 数値はノートPC(Apple M1 Max、macOS 26.5)のPython 3.9.6・numpy 2.0.2で直接計算したシミュレーション値です。この記事における「実物」は物理定数を変更したもう一つのシミュレータであり、実際のロボットではありません(ハードウェア未実測)。原資料とコード:作業ディレクトリ measure/robot-arm-basics/rl/の ttenv.py, ppo.py, exp_rl.py(グループ sim2real)、結果 out/rl/s2r_*_s{0,1,2}.json。 参考資料は2026-10-18に閲覧しました。作成ルール:実測データを基本とし、測定できなかったものは「未実測」、確認できなかったものは「未確認」と表記します。

目次

1. 直感:シミュレータの隙を学ぶ

強化学習ポリシーは報酬を高めるあらゆる隙を探します(第13回)。シミュレーター内において、その隙には シミュレータが間違っている部分も含まれています。ラケットの反発が実際よりも少し強ければ、ポリシーはその強い反発に合わせて優しく打つ方法を学びます。実世界では、ボールがネットにかかります。

第1〜10回が示した通り、卓球の物理定数は不確実です。文献のマグナス係数は7倍以上の開きがあり(第6回)、反発係数の0.05の差が着地点13 cmの差となり(第7回)、カメラとコントローラーの遅延は数十〜100 msでした(第1回)。シミュレーションから実世界へ移行する問題(sim-to-real、sim2real)に対処する方法は、大きく分けて4つあります。

方法 考え方 代償
ドメインランダム化(domain randomization) 定数をエピソードごとに変動させ、どのような値でも機能するポリシーを学習する 問題がより難しくなり、より多くの学習が必要になる
遅延・ノイズモデリング 実際のシステムの遅延とノイズをシミュレータに追加する 実際の遅延を測定する必要がある
システム同定(system identification, real2sim) 実物から定数を測定してシミュレータに追加する 測定できないもの(回転効果など)が残る
大規模並列シミュレーション 上記3つが増大させる学習量を計算によってカバーする GPU・CPUリソース

2. 実際の卓球ロボットが行ったこと

3. 実測:振り子ラケットの「実物」

3.1 設定

「実物」は以下の5つの要素を変更したシミュレータです。各数値は第1〜10回で確認した不確実性の大きさに合わせて選定しました。

項目 公称シミュレーション 「実物」 根拠
ラケット反発 e_r 0.80 0.72 第10回のモデル誤差実験と同じ値
観測遅延 0 20 ms(2ステップ) 第1回:実際のシステムの遅延は数十ms
ボール位置ノイズ 0 σ 5 mm(速度ノイズはそれに比例) 第2・6回の補正・観測ノイズの大きさ
抗力 ×1.0 ×1.1 第6回:文献の C_D 0.37〜0.55
マグナス効果 ×1.0 ×1.5 第6回:文献値に7倍以上の開きがある

学習分布は4つです。すべて直接制御、形状報酬、PPOデフォルト設定、ボール19,200個、シード3つであり、評価は学習に使用していないボール1,000個を用いて公称シミュレーションと「実物」でそれぞれ行います。

学習分布 反発 遅延(ステップ) ノイズ 抗力倍率 マグナス倍率
ランダム化なし 0.80 0 0 1.0 1.0
狭いランダム化 0.75~0.85 0~1 0〜3 mm 0.95~1.05 0.8~1.2
広いランダム化 0.65~0.90 0~3 0〜8 mm 0.9~1.2 0.5~2.0
同定した値をそのまま使用 0.72 2 5 mm 1.1 1.5

狭いランダム化は「実物」を 含みません(反発0.72は範囲外、遅延2ステップも範囲外)。広いランダム化は含みます。最後の行はシステム同定が完全に成功した場合です。

3.2 結果

학습 분포를 넓히면: 명목 시뮬레이션 대 「실물」 0 25 50 75 100 % 83 73 랜덤화 없음 91 80 좁은 랜덤화 57 55 넓은 랜덤화 79 74 식별한 값 그대로 명목 시뮬레이션 「실물」(다른 물리) 「실물」= 반발 0.72·지연 20 ms·잡음 5 mm·항력 ×1.1·Magnus ×1.5. 시드 3개.
図:学習分布別の公称シミュレーションと「実物」の成功率
学習分布 公称シミュレーション 「実物」中央値(最小〜最大) 差(中央値)
ランダム化なし 82.9% 72.7% (62.9~80.0) −10.2%p
狭いランダム化 91.2% 79.5% (70.8~85.2) −11.7%p
広いランダム化 57.4% 54.7% (52.6~75.4) −2.7%p
同定した値をそのまま使用 79.3% 74.4% (64.2~80.4) −4.9%p

3.3 読み取ったこと

3.4 観測を変えるアプローチ

ランダム化は「知らないことに耐える」ための手法です。「知らないことを突き止める」手法もあります。同じプロジェクト内で別途進行したMuJocoシミュレータの実験では、古典的なプランナーがボールの軌跡だけで回転を推測する場合と比較して、「上回転・下回転・無回転」の回転の種類を事前に把握し、その種類の平均回転を事前情報として組み込んだ場合、条件に応じて返球率が7〜19%p高かったと報告されています(例:決定時点が打撃の300 ms前で、回転がデータセットのままである場合、77%から94%へ向上)。回転の種類は、相手の姿勢や打球音など、ボールが飛ぶ前のシグナルから把握することができます。D'Ambrosioら 2024も、強い回転を正確に読み取れないことを限界として挙げており、対戦相手がその点を突いてきたと記しています(V節第5項)。ポリシーが認識する情報を増やすことが、ランダム化を広げることよりもコストパフォーマンスが高い場合があります。

4. 制限事項

5. まとめ

ティティの一言: シミュレータばかり信じていると、本物の卓球台でボールがネットにかかってしまいます。物理法則を少しずつ揺らしながら練習すれば、初めて見る卓球台でも慌てずに済みますよ!

参考文献

すべての資料は2026-10-18に閲覧しました。

ログインするといいねできます

コメント

まだコメントはありません。

ログインするとコメントできます