상태: 초안 (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. 직관: 아는 것은 계산하고, 모르는 것은 배운다
- 2. 그림: 네 시스템의 경계
- 3. 논문 비교
- 4. 실측: 같은 질문을 작은 문제로
- 5. 어디에 경계를 그을까: 이 시리즈의 제안
- 6. 한계
- 7. 1부를 마치며
- 참고
1. 직관: 아는 것은 계산하고, 모르는 것은 배운다
1~9편은 모두 방정식이었습니다. 공의 비행은 뉴턴의 법칙, 라켓 자세는 기하, 궤적은 다항식, 제어는 역동역학이었습니다. 방정식은 데이터 없이 첫 공부터 동작하고, 왜 틀렸는지 설명할 수 있습니다. 대신 모델이 틀린 만큼 정확히 틀립니다. 7편에서 라켓 반발 계수가 0.05 틀리면 착지점이 13 cm 빗나갔습니다.
강화학습(reinforcement learning, RL)은 반대입니다. 모델 없이 시행착오로 배우므로 모델의 틀림에 묶이지 않지만, 많이 쳐 봐야 하고 무엇을 배웠는지 들여다보기 어렵습니다.
탁구 로봇을 만든 연구들은 모두 둘을 섞습니다. 질문은 「섞을까 말까」가 아니라 **「어디에 경계를 그을까」**입니다.
2. 그림: 네 시스템의 경계
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 정책이 전부 | 고수준 제어기가 타구마다 기술 하나를 고름 |
| 동작 | 사람이 팔을 잡고 가르친 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 |
정리하면 경계가 오른쪽으로 갈수록 학습의 몫이 커집니다.
- Mülling 외는 물리(EKF 예측)와 동작 모양(시연)을 그대로 두고, 「어떤 동작을 얼마나 섞을지」만 강화학습으로 고쳤습니다. 150번 쳐서 69% 를 97% 로 올렸습니다.
- Koç 외는 학습을 거의 쓰지 않고, 공 모델 상수를 사람 시연 데이터로 추정한 뒤 궤적을 최적화로 풉니다(최적화 평균 25 ms). 1편에서 말한 고정 가상 타격 평면의 한계를 최적화로 넘은 사례입니다.
- Büchler 외는 공압 근육처럼 모델을 세우기 어려운 팔에서 사전 지식 없이 처음부터 학습했습니다. 공은 실제로 날리지 않고 기록한 궤적 100개를 시뮬레이션으로 재생하며(HYSR), 팔은 실제로 움직였습니다. 반환 과제에 약 1만 5천 번, 14시간쯤을 쳤습니다.
- D'Ambrosio 외는 기술 하나하나를 MuJoCo 시뮬레이션에서 학습하고(경사를 쓰지 않는 진화 전략 계열의 BGS 로, PPO·SAC 보다 동작이 매끄러웠다고 적었습니다), 실시간에는 비행 모델을 돌리지 않습니다. 대신 기술을 고르는 고수준 제어기에 회전 분류기, 기술별 성능 기록, 수작업 규칙, 상대별 선호 학습을 섞었습니다. 고른 기술이 20 ms 안에 정해집니다.
모델을 학습으로 보정하는 흐름도 있습니다. Sony AI 2026 은 공의 항력·Magnus·바운스 모델을 카메라 9대로 모은 궤적 약 5.8만 개로 다시 맞추고, 라켓 모델에는 물리식 위에 신경망 잔차를 더했습니다. 착지점 중앙 오차가 기준 모델의 0.37 m 에서 0.15 m 로 줄었다고 보고합니다.
4. 실측: 같은 질문을 작은 문제로
논문들의 결과는 로봇·공·평가가 모두 달라 「경계를 어디에 그으면 몇 번 쳐야 하나」를 직접 비교할 수 없습니다. 그래서 7편의 타격 문제를 그대로 가져와 작은 실험을 했습니다.
설정. 「실제 세계」의 라켓은 모델과 다릅니다. 반발 계수 e = 0.72(모델 0.8), 접선 속도 보존율 k = 0.88(모델 1.0, 러버 마찰로 접선 속도가 12% 줄어듦). 공은 1편의 데이터셋에서 고른 실제 타구 300개(학습 200, 시험 100)이고, 목표는 상대 쪽 (0.3, 0.9) m 에 0.6초 만에 떨어뜨리기입니다.
세 가지 방법.
- (a) 방정식만: 명목 모델(e = 0.8, k = 1)로 7편의 닫힌 해를 씁니다.
- (b) 물리 상수만 학습: N 번 쳐 보며 들어온 공과 나간 공의 속도를 관측하고(카메라 잡음 σ 0.05 m/s), e 와 k 두 숫자를 최소제곱으로 다시 맞춥니다. 라켓은 계속 닫힌 해로 계산합니다. 법선 방향 식이 e 에 대해 선형(v_out·n − v_r·n = e·(v_r·n − v_in·n))이라 바로 풀립니다.
- (c) 모델 없이 정책 탐색: 공 상태(속도 3, 위치 2, 상수 1)를 받아 라켓 법선의 두 각과 라켓 속력을 내는 선형 정책(파라미터 18개)을 교차 엔트로피 방법(CEM)으로 찾습니다. 한 세대에 후보 40개, 후보마다 공 10개를 쳐서 평균 착지 오차로 순위를 매깁니다.
# (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)
| 방법 | 쳐 본 공 | 시험 착지 오차 중앙값 |
|---|---|---|
| (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).
- 경계를 잘 그으면 학습은 놀랍게 싸집니다. 모르는 것이 숫자 두 개뿐이라는 것을 방정식이 알려 주므로, 공 한 번만 쳐도 오차가 24.5 cm 에서 2.1 cm 로 줄었습니다.
- 모델을 버리면 비쌉니다. 같은 문제를 모델 없이 풀면 2,000번을 쳐도 1 m 넘게 빗나갔고, 8,000번 뒤로는 25 cm 근처에서 더 나아지지 않았습니다. 선형 정책은 「공 속도 → 라켓 각」의 비선형 관계를 다 담지 못하기 때문입니다. 정책을 신경망으로 키우면 나아지겠지만, 그만큼 더 많이 쳐야 합니다(미실측).
- 실제 로봇에서 공 2만 번은 사람이 공을 줍는 시간만 해도 하루가 넘습니다. Büchler 외가 공을 시뮬레이션으로 재생한 것, D'Ambrosio 외가 기술을 시뮬레이션에서 학습한 것이 이 비용 때문입니다. 시뮬레이션에서 학습하면 이번에는 시뮬레이터의 상수가 틀린 만큼 실제와 어긋나므로, 결국 다시 「모델을 데이터로 맞추는 일」이 돌아옵니다(Sony AI 2026).
이 실험은 의도적으로 단순합니다. 실제 세계도 시뮬레이션이고, 모델과 다른 점이 「모델 안의 상수」라서 (b) 에 유리합니다. 모델의 꼴 자체가 틀린 경우 (예: 러버가 회전을 거는 효과를 모델이 아예 모름)에는 상수를 아무리 맞춰도 남는 오차가 있고, 그 잔차를 학습하는 것이 Sony AI 2026 의 신경망 잔차입니다.
5. 어디에 경계를 그을까: 이 시리즈의 제안
오픈하드웨어 첫 로봇을 위한 출발점으로 다음을 제안합니다. 실험으로 바뀔 수 있습니다.
| 단계 | 처음에는 | 학습을 더할 자리 |
|---|---|---|
| 공 예측(6편) | EKF + 물리 모델 | 항력·Magnus·바운스 상수를 우리 공·탁자 데이터로 다시 맞추기. 회전 추정 |
| 타격 결정(7편) | 사격법 + 반발 모델의 닫힌 해 | 라켓 반발 상수 맞추기(이 글의 b), 그다음 모델 잔차 |
| 역기구학·궤적(4·8편) | 해석해 + 5차 다항식/시간 최적 | 거의 필요 없음 |
| 제어(9편) | PD + 역동역학 앞먹임 | 관성·마찰 상수 식별, 반복 학습 제어(같은 동작을 되풀이하며 앞먹임을 고침) |
| 전략(어디로 칠지) | 고정 목표점 | 강화학습. 상대에 따라 바뀌는 부분이라 방정식으로 쓰기 어렵다 |
원칙은 하나입니다. 방정식이 「무엇을 모르는지」를 좁혀 줄 수 있으면 그 좁혀진 것만 학습한다. 모델을 세우기 어려운 구동기(공압 근육)나 정답이 없는 판단(전략)은 처음부터 학습이 맡는 편이 낫습니다.
6. 한계
- CEM 은 강화학습 가운데 가장 단순한 축에 드는 정책 탐색입니다. PPO 같은 경사 기반 방법, 신경망 정책, 시뮬레이션 사전 학습 후 실기 미세 조정과는 비교하지 않았습니다(미실측).
- 「실제 세계」의 차이를 상수 두 개로만 만들었습니다. 회전, 공의 개체 차, 관측 지연이 있는 세계에서의 비교는 미실측입니다.
- Büchler 외의 숫자는 arXiv v1 기준입니다. T-RO 2022 최종본의 숫자는 열어 보지 못했습니다(미확인). Mülling 외 2011 의 생체 모사 접근 원문은 열지 못해, 4단계 동작 구분은 2013 논문의 그림 설명으로만 확인했습니다.
7. 1부를 마치며
열 편 동안 공 하나를 치기 위한 일곱 단계를 계산으로 따라왔습니다. 오픈하드웨어로 옮길 때 기억할 숫자를 모으면 이렇습니다.
| 숫자 | 값 | 편 |
|---|---|---|
| 공이 끝줄에 오기까지 | 데이터셋 중앙 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만 번 쳐도 모자라요. 아는 건 방정식에 맡기고, 모르는 두 숫자만 배우니까 열 번이면 충분했어요!
참고
모든 자료는 2026-10-18 에 열람했습니다.
- Mülling, Kober, Kroemer, Peters, Learning to select and generalize striking movements in robot table tennis, IJRR 32(3) (2013) 263–279, 저자 공개본, 3.1~3.3 절, 그림 7.
- Koç, Maeda, Peters, Online optimal trajectory generation for robot table tennis, RAS 105 (2018) 121–137, 저자 공개본, 6 절, 그림 11, 표 A.3.
- Büchler, Guist, Calandra, Berenz, Schölkopf, Peters, Learning to Play Table Tennis From Scratch using Muscular Robots, arXiv:2006.05935 v1(T-RO 2022 최종본 미확인).
- D'Ambrosio 외, Achieving Human Level Competitive Robot Table Tennis, arXiv:2408.03906, II·III 절, 부록 표 XIV.
- D'Ambrosio 외, Robotic Table Tennis: A Case Study into a High Speed Learning System, arXiv:2309.03315.
- Conti 외(Sony AI), Physics Models for Sim-to-Real Transfer in Professional-Level Robot Table Tennis, arXiv:2606.28805.
- Google DeepMind, competitive_robot_table_tennis, CC-BY 4.0.