TT Lab
요금제

한국어

시작하기
블로그

블로그

탁구 로봇이 공 하나를 넘기기까지: 단계별 시뮬레이션 영상으로 본 계산

대화로 듣기 · 7분두 사람이 이 글을 풀어 줍니다

상태: 초안 (2026-10-18), 실측. 화면과 글의 숫자는 모두 시뮬레이터 안의 값이고, 카메라 주기·지연·잡음은 가정값입니다. 녹화와 렌더링은 2026-10-18 에 홈랩 쿠버네티스의 미니 PC 노드 한 대에서 임시 파드로 했습니다. 파드 상한은 CPU 6코어·메모리 3 GiB 이고(최고 사용 1.5 GiB), GPU 는 쓰지 않았습니다. 판은 MuJoCo 3.16.0, Python 3.11, numpy 2.3.4, Mesa 23.2.1(llvmpipe, OSMesa), ffmpeg 4.4.2(libx264) 입니다. 물리와 제어는 7편과 같습니다(시간 간격 0.5 ms, 제어 1 kHz, 학습한 하이브리드 정책 시드 0). 평가 공 201번 하나를 네 가지로 돌렸습니다(학습한 하이브리드 지연 30 ms·100 ms, 고전 기준선 30 ms, 학습 없는 명목 계획기 30 ms). 결정적 실행이라 한 번씩 돌렸고, 네 결과 모두 7편 평가 파일의 같은 공·같은 조건 결과(결과 종류와 착지점)와 일치했습니다. 원자료(녹화 out/rec/ball201.json, 글의 숫자 out/facts.json, 녹화·렌더링·그림 스크립트)는 작업 디렉터리 measure/sim-tt-video/ 에 있습니다.

목차

1. 직관: 1.3초 동안 일어나는 일곱 가지 계산

5편과 7편은 공 500개의 성공률로 이야기했습니다. 숫자는 정확하지만, 로봇이 공 하나를 받는 동안 무엇을 언제 계산하는지는 잘 보이지 않습니다. 이번에는 공 하나를 처음부터 끝까지 따라가며, 매 순간 로봇의 머릿속에 있는 값을 화면에 꺼내 놓았습니다.

공개 데이터의 처음 상태(상대 쪽 끝선 위, 우리 쪽으로 날아오는 공)에서 우리 로봇을 거쳐 상대 코트에 떨어지기까지 1.307 s 입니다. 그 사이에 일곱 단계가 있습니다.

  1. 관측. 카메라가 공의 위치를 찍고, 그 점이 늦게 도착합니다.
  2. 예측. 도착한 점으로 공의 상태를 맞추고 앞으로의 경로를 굴립니다.
  3. 타격 결정. 노리는 착지점에서 거꾸로, 언제 어디서 어떤 면으로 얼마나 세게 칠지 정합니다.
  4. 역기구학. 그 라켓 자세를 관절 네 개의 값으로 바꿉니다.
  5. 궤적과 스윙. 지금 자세에서 그 자세까지 관절마다 5차 다항식을 잇고 따라갑니다.
  6. 접촉. 공이 라켓에 닿고 속도와 회전이 바뀝니다.
  7. 착지. 공이 상대 코트에 떨어집니다.

로봇은 5편과 같은 실제 크기의 갠트리 2축(x 옆, z 위) + 손목 2축(yaw, pitch)이고, 제어는 7편의 학습한 하이브리드입니다. 정책은 타격 파라미터 6개만 보정하고, 나머지는 모두 아래에 나오는 고전 계산이 합니다.

2. 영상과 그림을 만든 방법

2.1 전체 과정

공 하나를 넘기기까지: 옆에서 본 전체 과정 평가 공 201번, 120 Hz·지연 30 ms(가정), 학습한 하이브리드. 녹화 궤적(1 ms)을 5배 느리게. 가로축은 탁자 길이 방향(오른쪽이 상대), 세로축은 높이. ▶ 누르면 재생 타격면 목표 0.75 m 1 관측 2–4 예측·결정·역기구학 5 스윙(1차 계획) 5 다시 계획 6 접촉 7 착지 0.200 s 첫 결정 · 0.497 s 다시 계획 · 0.543 s 접촉 · 1.307 s 착지(오차 3.7 cm) 하늘색 점 0.2 s 에 도착한 관측, 올리브 점선 1차 예측, 보라 원 칠 위치(1차·2차), 빨간 선분 라켓 면.
그림: 공 하나를 넘기기까지 옆에서 본 전체 과정. 누르면 5배 느리게 재생
단계 시뮬레이터 시각 영상에서 보이는 것 재생 속도
1 관측 0–0.200 s 찍은 점(회색)과 도착한 점(하늘색) 1/20
2 예측 0.200 s 에 멈춤 2차식 맞춤, 예측 경로, 추정 회전 대 참 회전 정지
3 타격 결정 0.200 s 에 멈춤 칠 위치, 라켓 목표, 면 법선, 노린 경로와 착지점 정지
4 역기구학 0.200 s 에 멈춤 지금 자세와 목표 자세, 관절 네 값 정지
5 궤적과 스윙 0.200–0.539 s 계획한 라켓 경로 대 실제, 관절 기준 대 실제 그래프, 0.497 s 의 다시 계획 1/10
6 접촉 0.513–0.583 s 들어온 속도·나간 속도 화살표, 속력과 회전 1/10
7 착지 0.543–1.307 s 실제 경로 대 계획한 경로, 착지 오차 1/4
비교 0–0.700 s 같은 공의 기준선 대 하이브리드, 지연 30 ms 대 100 ms 1/4

영상은 1280×720, 30 fps, 65.6 s(1,967프레임), H.264 2.6 MB 입니다. 블로그가 영상을 받으면 단계별 클립(4.7–8.1 s)을 이 글의 각 절에 넣습니다. 지금은 같은 내용을 정지 그림과 누르면 재생하는 그림으로 싣습니다.

2.2 녹화: 계산을 바꾸지 않고 꺼내기

7편의 녹화 궤적(rec_*.json)에는 5 ms 간격의 공·라켓 위치만 있습니다. 단계별 계산을 보이려면 관측점, 맞춘 2차식, 예측 경로, 결정마다의 계획, 관절 기준값이 필요해서 같은 환경을 같은 씨앗(공마다 777000 + 공 번호)으로 다시 돌렸습니다. 환경 코드는 고치지 않고 하위 클래스에서 읽기만 했습니다. 1 ms 제어 주기마다 상태를 옮겨 적고, 결정마다 추정값과 계획을 옮겨 적습니다.

class RecEnv(ttenv.TTEnv):
    def _tick(self, qr, vr, ar):
        done = super()._tick(qr, vr, ar)          # 물리·제어는 원래 코드 그대로
        d = self.d
        v, w = ball_world(self)                   # 세계 좌표 속도·각속도
        self.ticks.append([round(self.t, 6), *d.qpos[:11].tolist(), *d.qvel[6:10].tolist(),
                           *np.asarray(qr).tolist(), *v.tolist(), *w.tolist(), ...])
        return done

출처: TT Lab 실험 코드 sim-tt-video/src/vid_record.py(접촉 표시 열은 줄임).

녹화 결과(결과 종류, 착지점)는 7편 평가 파일의 같은 공·같은 조건 값과 대조해 네 경우 모두 같았습니다. 같은 계산이 다시 돌았다는 확인입니다.

2.3 렌더링: 숫자는 녹화에서, 그림은 보여 주기 전용 모델로

물리 모델의 로봇에는 라켓 말고 도형이 없어서 그대로 그리면 라켓만 공중에 뜹니다. 그래서 관절 배치(qpos 순서, 위치, 축, 라켓 크기)가 같은 보여 주기 전용 모델을 따로 만들어 레일·캐리지·손목·손잡이를 붙이고, 녹화한 qpos 를 그대로 넣어 MuJoCo 의 오프스크린 렌더러로 그렸습니다. 이 모델은 접촉을 계산하지 않습니다. 관측점·예측 경로·타격점 같은 표시는 MuJoCo 장면에 도형으로 넣었고, 자막과 숫자는 그린 프레임 위에 나눔고딕으로 썼습니다. 화면의 숫자는 모두 녹화 파일에서 읽고, 속력(벡터 크기), 각도, cm 환산처럼 그대로 바꾸는 계산만 했습니다. 1 ms 기록 사이의 프레임(1/20 배속에서는 1.67 ms 간격)은 공과 관절 위치를 선형 보간해 그렸습니다.

3. 1단계 관측: 찍은 점이 늦게 도착한다

1단계 관측: 찍은 점과 로봇에 도착한 점 0.2 s 까지 찍은 24개 중 지연 30 ms 를 지나 도착한 것은 21개. 높이를 5배 늘려 그림. t = 0 t = 0.2 s 0.00 s 0.05 s 0.10 s 0.15 s 0.20 s 지연 30 ms: 아직 도착 전 도착한 관측 찍었지만 도착 전 공의 실제 경로 찍는 간격은 약 8.3 ms(1 ms 제어 주기에 맞춰 찍음), 위치 잡음 σ 3 mm. 공의 처음 속력 7.78 m/s.
그림: 1단계 관측: 0.2 s 까지 찍은 점과 도착한 점, 지연 30 ms

공의 상태를 관측에서 추정하는 일반론(칼만 필터 등)은 「탁구 로봇 팔의 기초」 6편 공 비행 방정식에 있습니다.

4. 2단계 예측: 2차식 맞춤과 RK4·바운드 모델

2단계 예측: 2차식 맞춤과 RK4·바운드 모델 0.2 s 의 예측(올리브 점선)과 실제 경로(주황). 0.497 s 에 바운드 뒤 관측으로 다시 맞춘다. 맞춘 2차식 1차 예측 2차 예측 실제 로봇의 추정참값(시뮬레이터) 0.2 s 속도 (m/s)(-1.23, -6.29, -0.39)(-1.14, -6.20, -0.74) 0.2 s 회전 ω (rad/s)(82, -16, 4)(55, 3, 15) 0.497 s 회전 ω (rad/s)(131, -25, 4)(98, -7, 15) 바운드 시각0.415 s0.429 s 바운드 (x, y) m(-0.47, -1.16)(-0.47, -1.26) 예측 바운드와 실제 바운드의 거리 10.3 cm. 회전은 가속도의 작은 차이로만 보여 크게 어긋난다.
그림: 2단계 예측: 맞춘 2차식, 0.2 s 와 0.497 s 의 예측, 실제 경로

계산. 도착한 점(최근 36개까지)에 시간에 대한 위치 2차식을 최소제곱으로 맞춰, 마지막 관측 시각의 위치·속도·가속도를 얻습니다. 0.2 s 의 맞춤은 관측 21개, 가속도 (1.56, 6.90, −13.49) m/s² 였습니다. 가속도에서 중력과 항력을 빼고 남은 몫을 마그누스 힘 (k_M/m) ω×v 로 보고 ω 를 풉니다. 회전은 가속도의 작은 차이로만 보이므로 0 쪽으로 당기는 사전 항(표준편차 300 rad/s)을 둡니다. 그 상태로 플래너의 물리(항력 계수 0.471, 마그누스 계수, 탁자 반발 0.975·마찰 0.10)를 4 ms 간격 RK4 로 굴리고, 탁자에 닿으면 충격량 모델로 튀깁니다.

0.2 s 의 값 로봇의 추정 참값(시뮬레이터)
속도 (m/s) (−1.23, −6.29, −0.39) (−1.14, −6.20, −0.74)
회전 ω (rad/s) (82, −16, 4) (55, 3, 15)
바운드 시각 0.415 s 0.429 s
바운드 위치 (x, y) m (−0.47, −1.16) (−0.47, −1.26)

예측 바운드는 실제보다 14 ms 빠르고 10.3 cm 앞이었습니다. 회전 추정이 가장 크게 어긋납니다(6편에서 본 대로 위치만으로는 회전이 약하게만 보입니다).

바운드 뒤 다시 맞추기. 로봇은 도착한 점의 높이가 가장 낮았다가 1 cm 넘게 다시 올라오면 바운드로 봅니다. 이 공은 0.425 s 를 바운드로 보았고, 그 뒤 관측 4개가 도착한 0.497 s 에 두 번째 결정을 했습니다. 관측이 6개 미만이면 가속도는 중력으로 두고 직선만 맞추며, 회전은 첫 추정을 바운드 모델에 통과시킨 값 (131, −25, 4) rad/s 를 그대로 씁니다(참값 (98, −7, 15)). 이 계산의 식은 「탁구 로봇 팔의 기초」 6편의 중력·항력·마그누스와 바운스 모델 절에 있습니다.

5. 3단계 타격 결정: 착지점에서 거꾸로

3단계 타격 결정: 위에서 본 칠 위치·면 방향·노린 경로 0.2 s 의 1차 결정. 착지점에서 거꾸로 나가는 속도를 풀고, 면 법선과 면 속도를 정한다. 갠트리 x ±0.9 m 노리는 착지점 (0, 0.75) 칠 위치 실제 공 예측 법선(정책 보정 후) 명목 법선 노린 경로 칠 시각0.556 s (결정에서 356 ms 뒤) 칠 위치 b (m)(-0.59, -1.75, 0.32) 면 yaw / pitch-7.7° / 0.4° (명목 -12.3° / 4.7°) 면 속도(법선 방향)1.10 m/s (명목 0.48 m/s) 원하는 나가는 속도(1.02, 4.38, 2.27) m/s, 5.04 m/s 정책 출력(보정)yaw +4.7°, pitch -4.0°, 면 속도 +0.63 m/s, 시각 +7.0 ms, 중심 x -0.6 cm, z -2.7 cm
그림: 3단계 타격 결정: 위에서 본 칠 위치, 면 방향, 노린 경로

계산. 세 가지를 차례로 풉니다.

  1. 나가는 속도. 노리는 착지점은 상대 코트 가운데 (0, 0.75) m 입니다. 수평 속력을 4.5 m/s 로 두고 비행 시간 T = 거리/4.5 를 정한 뒤, 중력만 있는 포물선이 탁자 높이에 닿도록 v_z 를 고릅니다.
  2. 면 법선과 면 속도. 나가는 속도와 들어오는 속도의 차이 방향을 법선 n 으로 잡고, 반발 계수 e 로 법선 방향 면 속도 v_pn = v_in·n + (Δv·n)/(1+e) 를 정합니다. 마찰을 넣은 충격량 모델로 예상 결과를 다시 계산해 세 번 고칩니다.
  3. 칠 시각. 갠트리에는 깊이(y) 축이 없어서 라켓이 닿을 수 있는 y 는 손목 각도로만 정해집니다. 예측 경로가 그 y 를 지나는 시각이 칠 시각입니다.
def _v_des(self, b):
    dx, dy = TARGET[0] - b[0], TARGET[1] - b[1]
    dist = math.hypot(dx, dy)
    vh = 4.5
    Tf = dist / vh
    vz = (T.BALL_R - b[2] + 0.5 * G * Tf * Tf) / Tf
    return np.array([dx / dist * vh, dy / dist * vh, vz])

출처: TT Lab 실험 코드 rl/src/ttenv.py(7편과 같은 파일).

학습한 정책은 이 명목값에 보정 6개를 더합니다(면 yaw·pitch 각 ±20°, 면 속도 ±1.5 m/s, 칠 시각 ±20 ms, 라켓 중심 x·z 각 ±6 cm 범위).

0.2 s 의 1차 결정 명목(학습 없음) 정책 보정 후
칠 시각 0.552 s 0.556 s(결정에서 356 ms 뒤)
칠 위치 b (m) (−0.58, −1.74, 0.32) (−0.59, −1.75, 0.32)
면 yaw / pitch −12.3° / 4.7° −7.7° / 0.4°
면 속도(법선 방향) 0.48 m/s 1.10 m/s
원하는 나가는 속도 (1.03, 4.38, 2.26) m/s (1.02, 4.38, 2.27) m/s, 5.04 m/s

정책 출력을 단위로 바꾸면 yaw +4.7°, pitch −4.0°, 면 속도 +0.63 m/s, 칠 시각 +7.0 ms, 중심 x −0.6 cm, z −2.7 cm 입니다. 원하는 착지점에서 라켓 속도와 법선을 거꾸로 구하는 방정식은 「탁구 로봇 팔의 기초」 7편 타격 방정식에 있습니다.

6. 4단계 역기구학: 닫힌 식 네 줄

4단계 역기구학: 상대 쪽에서 본 갠트리와 손목 닫힌 해: 손목 두 각은 법선에서, 갠트리 두 축은 라켓 중심에서 손목 오프셋을 빼서. x 레일(±0.9 m, 오른쪽이 -x) 탁자 윗면 높이 지금(0.2 s) 목표 공(칠 위치) 관절값식 (L = 0.15 m) 갠트리 x-0.595 mc_x − L·sin(pitch)·sin(yaw) 갠트리 z+0.144 mc_z − L·cos(pitch) 손목 yaw-7.7°atan2(−n_x, n_y) 손목 pitch+0.4°asin(n_z) c = b − n·(공 반지름 + 라켓 두께/2) + 정책의 중심 보정. 네 값 모두 한계 안(잘라 낸 값 없음).
그림: 4단계 역기구학: 상대 쪽에서 본 갠트리의 지금 자세와 목표 자세

갠트리가 직교 좌표라 역기구학은 반복 계산 없이 끝납니다. 손목 두 각은 원하는 법선에서 바로 나오고, 갠트리 두 축은 라켓 중심에서 손목 오프셋을 빼면 됩니다.

def ik(c, n, rb: Robot):
    n = np.asarray(n, float) / np.linalg.norm(n)
    th = math.asin(max(-1.0, min(1.0, n[2])))
    psi = math.atan2(-n[0], n[1])
    x = c[0] - rb.L * math.sin(th) * math.sin(psi)
    z = c[2] - rb.L * math.cos(th)
    y_res = c[1] - (rb.y_g - rb.L * math.sin(th) * math.cos(psi))
    q = np.array([x, z, psi, th])
    ok = bool(np.all(q >= np.array(rb.lo)) and np.all(q <= np.array(rb.hi)))
    return q, y_res, ok

출처: TT Lab 실험 코드 sim/ttsim.py(설명 주석은 줄임).

관절 지금(0.2 s) 1차 목표 한계
갠트리 x 0.000 m −0.595 m ±0.9 m
갠트리 z 0.150 m 0.144 m −0.15–0.7 m
손목 yaw 0.0° −7.7° ±80°
손목 pitch 0.0° 0.4° ±80°

라켓 중심은 c = b − n·(공 반지름 + 라켓 두께/2) 에 정책의 중심 보정을 더한 값입니다. 네 값 모두 한계 안이라 잘라 낸 값이 없었습니다. y_res 는 갠트리가 맞출 수 없는 깊이 방향의 차이인데, 명목 계획에서는 0 이었고 정책 보정이 들어간 1차 목표에서는 −2.9 cm 였습니다. 두 해, 특이점, 해가 없을 때 같은 일반적인 팔의 이야기는 「탁구 로봇 팔의 기초」 4편 역기구학에 있습니다.

7. 5단계 궤적과 스윙: 39 ms 에 다시 그은 길

5단계 궤적과 추종: 5차 다항식 기준과 실제 관절 점선은 제어기가 받은 기준(1차 계획, 0.497 s 부터 2차 계획), 실선은 실제 관절. 갠트리 x (m) -0.58 0.00 다시 계획 손목 pitch (°) 0 30 접촉 0.2 s 0.3 s 0.4 s 0.5 s 2차 계획은 접촉까지 39 ms: x 가속도 323 m/s², z 98 m/s² 를 요구(한계 40·30). 한계에서 잘려 접촉 순간 x 가 기준과 6.6 cm 어긋났다(1차 계획 동안 x 오차 최대 0.3 cm).
그림: 5단계 궤적과 추종: 갠트리 x 와 손목 pitch 의 5차 다항식 기준과 실제

계산. 결정할 때마다 지금 관절의 위치·속도·가속도에서 타격 순간의 목표(위치 q, 속도 (0, 0, 0, −v_pn/L), 가속도 0)까지 관절마다 5차 다항식을 잇습니다. 휘두른 뒤 pitch 는 0.12 s 에 걸쳐 멈춥니다. 1 kHz 의 계산 토크 제어(PD + 피드포워드, 고유 진동 50 rad/s)가 이 기준을 따라가고, 가속도와 속도는 축 한계에서 자릅니다.

5차 다항식이 양 끝의 위치·속도·가속도를 맞추는 원리와 한계 안의 최소 시간 궤적은 「탁구 로봇 팔의 기초」 8편 궤적 생성, 계산 토크 제어는 9편 제어에 있습니다.

8. 6단계 접촉: 1 ms 안의 일

6단계 접촉: 옆에서 본 라켓 면과 공 점은 공(4 ms 간격), 화살표는 속도(1 m/s 당 3 cm, 겹치지 않게 위아래로 비켜 그림). 라켓 면 상대 쪽 → 속력 회전 진행 방향 기준 들어온 공 4.51 m/s 98.9 rad/s 탑스핀 97.6 rad/s 나간 공 4.89 m/s 98.7 rad/s 백스핀 95.8 rad/s 회전 벡터는 거의 그대로(1.5 rad/s 변화)인데 공의 방향이 뒤집혀 탑스핀이 백스핀이 된다. 계획이 원한 나가는 속력 5.06 m/s, 접촉 0.543 s(계획 0.536 s), 라켓 면 중심 0.69 m/s.
그림: 6단계 접촉: 옆에서 본 라켓 면과 공, 들어온 속도와 나간 속도

영상은 이 장면을 1/10 배속으로 보입니다. 공이 라켓에 닿았다고 기록된 것은 1 ms 기록 한 칸(물리 스텝 두 번)입니다.

속력 회전 크기 진행 방향 기준
들어온 공(0.542 s) 4.51 m/s 98.9 rad/s 탑스핀 97.6 rad/s
나간 공(0.544 s) 4.89 m/s 98.7 rad/s 백스핀 95.8 rad/s

9. 7단계 착지: 목표에서 3.7 cm

7단계 착지: 계획한 경로와 실제 경로, 착지 오차 위: 옆에서 본 나가는 공. 아래: 위에서 본 상대 코트(목표 주변 확대). 꼭대기 0.68 m 실제(학습한 정책) 계획이 노린 경로(중력만) 명목(학습 없음) 목표 학습한 정책 3.7 cm 명목 22.1 cm y 0.35 m1.05 m 착지점 (-0.004, 0.713) m, 네트 위 여유 36.7 cm, 타격에서 착지까지 0.764 s. 실제 경로는 백스핀의 마그누스 힘과 항력 때문에 중력만 둔 계획보다 높이 떴다.
그림: 7단계 착지: 계획한 경로와 실제 경로, 착지 오차
값 학습한 하이브리드 명목(학습 없음)
착지점 (x, y) m (−0.004, 0.713) (−0.007, 0.529)
목표 (0, 0.75) 에서 3.7 cm 22.1 cm
꼭대기 높이 0.68 m 0.47 m
결과 반환 성공 반환 성공

10. 비교: 같은 공, 다른 방법과 다른 지연

같은 공, 세 조건: 위에서 본 로봇 쪽 평가 공 201번. 가로는 탁자 길이(오른쪽이 네트), 세로는 옆(x). 0.7 s 까지 6배 느리게. ▶ 누르면 재생 고전 기준선, 지연 30 ms 못 맞힘(가장 가까울 때 28.2 cm) 학습한 하이브리드, 지연 30 ms 반환 성공(착지 오차 3.7 cm) 학습한 하이브리드, 지연 100 ms 못 맞힘(가장 가까울 때 32.4 cm) 공 쓰인 계획의 예측 쓰인 계획의 칠 위치 라켓 면
그림: 같은 공, 세 조건을 위에서 본 그림. 누르면 6배 느리게 재생

고전 기준선(지연 30 ms): 못 맞힘, 가장 가까울 때 28.2 cm. 기준선은 0.2 s 에 관측 21개로 위치·속도·회전을 한꺼번에 최소제곱으로 맞췄는데, 회전을 (111, 279, −27) rad/s 로 읽었습니다(참값 (55, 3, 15)). 그 예측으로 칠 위치를 x −0.83 m 로 잡았고, 그 시각 실제 공은 x −0.54 m 에 있었습니다. 기준선은 예측 바운드 80 ms 뒤부터 칠 시각 80 ms 전까지만 다시 계획합니다. 예측 바운드가 0.440 s, 칠 시각이 0.545 s 라 그 창이 비어 계획은 0.2 s 의 하나뿐이었습니다. 하이브리드는 바운드를 관측에서 찾고 관측 4개가 모이면 바로 다시 계획해 고쳤습니다.

학습한 하이브리드(지연 100 ms): 못 맞힘, 가장 가까울 때 32.4 cm. 같은 정책, 같은 공입니다. 0.2 s 에 도착한 관측이 13개뿐이라(30 ms 는 21개) 회전을 (67, −5, 87) rad/s 로 읽었고, 세로축(z) 둘레의 옆돌기 성분이 커서 칠 위치를 x −0.19 m 로 잡았습니다(그 시각 실제 공 x −0.55 m). 바운드 뒤 관측 4개는 0.567 s 에야 도착했고, 그때 나온 계획의 칠 시각 0.545 s 는 이미 지나 있어 쓰지 못했습니다. 지연 100 ms 에서 이 정책의 반환 성공률은 500개 기준 58.2%, 기준선은 26.6% 입니다(7편).

11. 만들면서 겪은 일

12. 한계와 미실측

13. 다음 편으로

다음은 낮은 공과 작업 공간을 넓히는 깊이 축을 로봇 모델에 넣어 같은 평가를 다시 돌리는 것입니다(7편에서 예고). 이번 녹화·렌더링 도구를 그대로 써서, 깊이 축이 생기면 「칠 시각」 의 정의가 어떻게 바뀌는지도 같은 일곱 단계로 보이려 합니다.

티티 한마디. 성공률 표로만 보던 로봇을 공 하나로 따라가 보니, 마지막 39 ms 에 계획을 다시 그어 한계의 8배를 요구받고도 라켓 안에 공을 넣는 장면이 있었어요. 숫자 하나 뒤에 이렇게 아슬아슬한 순간이 숨어 있었네요!

참고

바깥 링크는 7편과 같은 주소입니다(7편에서 2026-10-18 에 열리는 것을 확인했습니다).

로그인하면 좋아요를 누를 수 있습니다

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다