TT Lab
ブログ

한국어 English 日本語 中文

はじめる
ブログ

ブログ

古典的手法と強化学習:何を方程式で解き、何を学習に任せるか

ステータス:ドラフト(2026-10-18)、実測。 数値はノートパソコン(Apple M1 Max、macOS 26.5)のPython 3.9.6・numpy 2.0.2で計算したシミュレーション値です。 生データとコード:作業ディレクトリ measure/robot-arm-basics/の m10_learn.py, out/m10_learn.json。「現実世界」もシミュレーションであり、実際のロボット実験はありません (ハードウェア未実測)。論文の数値はそれぞれの原文(arXiv版は版番号を表記)から確認しました。参考資料は2026-10-18に閲覧しました。 作成ルール:実測データが基本であり、測定できなかったものは「未実測」、確認できなかったものは「未確認」と表示します。

目次

1. 直感:分かることは計算し、分からないことは学ぶ

第1〜9篇はいずれも方程式でした。ボールの飛行はニュートンの法則、ラケットの姿勢は幾何学、軌道は多項式、制御は逆力学でした。方程式はデータなしで初球から 動作し、なぜ間違っていたのかを説明できます。その代わり、 モデルが間違っている分だけ正確に間違えます。 第7篇では、ラケットの反発係数が0.05ずれると、着地点が13 cm逸れました。

強化学習(reinforcement learning, RL)はその逆です。モデルなしで試行錯誤によって学習するため、モデルの誤りに縛られませんが、多くの試行が必要であり、何を学習したのかを内部まで把握することが困難です。

卓球ロボットを開発した研究はいずれもこの2つを組み合わせます。問題は「組み合わせるかどうか」ではなく、**「どこに境界を引くか」**です。

2. 図:4つのシステムの境界

네 시스템이 무엇을 학습에 맡겼나 공 예측 타격 결정 동작·궤적 관절 제어 Mülling 2013 EKF 물리 학습(선택) 시연+DMP 고전 Koç 2018 EKF 물리 최적화 최적 3차식 고전 Büchler 2022 모델(HYSR) RL RL RL(근육압) D'Ambrosio 2024 필터만 학습+규칙 선택 ES(관절속도) 로봇 제어기 학습이 맡음(실선) 방정식·고전 방법(점선) 각 논문 원문으로 확인한 구성을 단순화했다. 세부는 본문 표.
図:4つの卓球ロボットシステムが、ボールの予測、打撃の決定、動作、関節制御のうち何を学習に任せているかの比較

3. 論文の比較

それぞれの原文を開いて確認した構成です。数値の横の条件が互いに異なるため、直接比較することはできません。

Müllingら(2013年) Koçら(2018年) Büchlerら(2022年) D'Ambrosioら(2024年)
ロボット Barrett WAM 7自由度 Barrett WAM 7自由度 空気圧人工筋肉8個で動く4自由度アーム ABB IRB 1100 6自由度 + リニアガントリー2軸
認識 カメラ4台 60 Hz カメラ4台 60 Hz ボールの位置 180 Hz カメラ2台 125 Hz
ボールの予測 EKF(重力・抗力、回転は無視) EKF + 飛行モデル モデル(学習中のボールはシミュレーション) フィルター(リアルタイムの飛行予測は行わない)
打撃の決定 混合運動プリミティブ(MoMP)が状況に合ったプリミティブを選択して組み合わせる 打撃の時刻と位置を同時に最適化 PPOポリシーがすべて 高水準コントローラーが打球ごとに技術を1つ選択
動作 人間が腕を持って教えた25個の動作(DMP) 関節ごとに3次多項式最適軌道 PPOが筋肉の圧力変化を100 Hzで制御 技術17個、それぞれ約1万パラメータのCNNが関節速度を50 Hzで制御
学習に任せた部分 プリミティブ選択の重み(RL)、動作の形状(デモンストレーション) ボールモデルの定数の推定(デモンストレーションデータ) アーム制御のすべて 技術(シミュレーションで進化戦略系のBGSで学習) + 技術選択
報告された結果 実機での返球率 69% → 97%(150回の学習後)、対人戦 74.4% → 88% 実機での返球率:固定打撃平面 約10〜40%、提案手法 約40〜60%(設定により80〜90%) 返球率 75%(107回)、スマッシュ率 29%(128回、平均約12 m/s) 29人の人間との29試合で13勝(45%):初級 7/7、中級 6/11、上級以上 0/11

まとめると、境界が右に行くほど学習の占める割合が大きくなります。

モデルを学習によって補正するアプローチもあります。Sony AI(2026年)は、ボールの抗力・マグナス効果・バウンドモデルを、カメラ9台で収集した約5.8万個の軌道データを用いて再調整し、ラケットモデルには物理式のうえにニューラルネットの残差を追加しました。これにより、着地点の中央誤差が基準モデルの0.37 mから0.15 mに減少したと報告されています。

4. 実測:同じ疑問を小さな問題に

論文の結果はロボット、ボール、評価方法がすべて異なるため、「境界をどこに引けば何回打つ必要があるか」を直接比較することはできません。そこで、第1篇の打撃問題をそのまま持ち込み、小さな実験を行いました。

設定。 「現実世界」のラケットはモデルとは異なります。反発係数 e = 0.72(モデルは0.8)、接線速度保存率 k = 0.88(モデルは1.0、ラバーの摩擦により接線速度が12%減少)。ボールは第1篇のデータセットから選んだ実際の打球300個(学習用200、テスト用100)であり、目標は相手側の(0.3, 0.9)mの地点に0.6秒で落とすことです。

3つの手法。

# (b) 한 번 칠 때마다 e, k 를 최소제곱으로 다시 맞춘다
n, vrn = racket_general(V, v_out_wanted, e, k)        # 지금 추정값으로 닫힌 해
vout = true_racket(V, n, vrn)                          # 실제 세계(모델과 다름)
Vm, Om = V + noise(), vout + noise()                   # 관측
A_e.append(vrn - Vm @ n);  b_e.append(Om @ n - vrn)    # e 에 대해 선형인 식
e = dot(A_e, b_e) / dot(A_e, A_e)
모델이 틀린 라켓: 몇 번 쳐 봐야 맞추나 1 10 100 1,000 10,000 0.1 1 10 100 쳐 본 공의 수(로그) 착지 오차 중앙값(cm, 로그) 방정식만(명목 모델) 24.5 cm 물리 상수만 학습 0.33 cm 모델 없이 정책 탐색(CEM) 실제 라켓 e=0.72, 접선 보존 0.88 / 모델 e=0.8, 1.0. 시험 공 100개. 물리 상수 학습은 10번 시드의 중앙값, CEM 은 선형 정책 18개 파라미터.
図:モデルが間違っているラケットで打ったボールの回数に応じた着地誤差
手法 打球数 テスト着地誤差の中央値
(a)方程式のみ(公称モデル) 0 24.5 cm(90% 29.3)
(a')方程式 + 正確な定数(参考) 0 0.0007 cm
(b)物理定数のみ学習 1 2.1 cm
3 1.8 cm
10 1.3 cm
30 0.77 cm
100 0.33 cm
(c)線形ポリシー CEM 2,000 129 cm
8,000 25.0 cm
16,000 30.6 cm
24,000 25.4 cm

(b)は10個のシードの中央値であり、100回打った後に推定されたeは0.720、kは0.876でした(真値は0.72、0.88)。

この実験は意図的にシンプルにされています。現実世界もシミュレーションであり、モデルと異なる点が「モデル内の定数」であるため、(b)に有利に働いています。モデルの 形式そのものが間違っている 場合(例:ラバーが回転をかける効果をモデルがまったく把握していない)、定数をどのように調整しても残差が生じることになり、その残差を学習するのがSony AI(2026)のニューラルネット残差です。

5. どこに境界を引くか:本シリーズの提案

オープンハードウェアの最初のロボットに向けた出発点として、以下を提案します。実験によって変更される可能性があります。

段階 初期状態 学習を追加する箇所
ボール予測(第6篇) EKF + 物理モデル 抗力・マグナス効果・バウンド定数を自社のボール・テーブルのデータで再調整する。回転の推定
打撃決定(第7篇) 射撃法 + 反発モデルの閉じた解 ラケットの反発定数を調整(本記事のb)、その後にモデル残差
逆運動学・軌道(第4・8篇) 解析解 + 5次多項式 / 時間最適化 ほとんど不要
制御(第9篇) PD + 逆力学フィードフォワード 慣性・摩擦定数の同定、反復学習制御(同じ動作を繰り返してフィードフォワードを修正する)
戦略(どこに打つか) 固定目標点 強化学習。対戦相手に応じて変化する部分であるため、方程式で記述することは難しい

原則は1つだけです。 方程式が「何を分からないのか」を絞り込むことができれば、その絞り込まれた部分のみを学習する。 モデル構築が難しいアクチュエータ(空気圧筋肉)や正解のない判断(戦略)は、最初から学習に任せる方が得策です。

6. 制限事項

7. 第1部を終えて

10回にわたってボールを1打つための7つのステップを計算でたどってきました。オープンハードウェアに移行する際に覚えておくべき数値をまとめると以下のようになります。

数値 値 編
ボールがエンドラインに到達するまで データセット中央 0.65 s、12 m/s のボール 0.32 s 1
予測誤差の主な原因 回転不明 5 cm、回転判明 0.5 cm 6
ラケット角度 1° / 速度 0.1 m/s / 反発 0.05 着地点 6 / 10 / 13 cm 7
打ち返すために必要な関節速度 約 10 rad/s(人間のように打つ場合は約 25) 5
スイング時間 0.05~0.1 s(加速度の限界 300~600 rad/s²) 8
制御 1 kHz + フィードフォワード、電流ループ 1~2 kHz 帯域幅 9
関節のゼロ点 0.1° がラケットの方向 0.1~0.2° 3

次のステップは、これらの数値を実際のパーツやシミュレータで再度測定することです。その前に、第11~15編では強化学習の原理(MDP、PPO、報酬設計と行動空間、シミュレーションから実機への移行、評価)をトイプロブレムで実際に実装しながら進めていきます。

ティティの一言。 すべてを学ぼうとするとボールを2万回打っても足りません。知っていることは方程式に任せ、知らない2つの数値だけを学ぶので、10回で十分でした!

参考

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

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

コメント

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

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