TT Lab
요금제

한국어

시작하기
블로그

블로그

사람 모양 로봇 상체로 탁구 치기: Unitree G1 을 시뮬레이터에 세우고 사람 속도 한계를 걸어 본 기준선

상태: 초안 (2026-10-18), 실측. 화면과 글의 숫자는 모두 시뮬레이터 안의 값이고, 카메라 주기·지연·잡음은 가정값입니다. 이 글의 로봇은 학습하지 않은 고전 계획기로 움직입니다. 평가는 7편과 같은 평가 공 500개(seed 0)와 같은 세 조건(참 상태, 120 Hz·지연 30 ms, 120 Hz·지연 100 ms)으로 했습니다. 괄호 안은 95% 구간의 반폭입니다. 로봇 모델은 MuJoCo Menagerie 의 unitree_g1(Unitree 공식 g1_29dof_rev_1_0, BSD-3-Clause) 이고, 원본 파일은 고치지 않았습니다. 관절 속도 한계는 모델에 없어서 Unitree 공식 URDF 값을 썼습니다. 영상은 2026-10-18 에 홈랩 쿠버네티스의 미니 PC 노드 한 대에서 임시 파드로 렌더링했습니다(CPU 만, 최고 메모리 1.55 GiB). 판은 MuJoCo 3.16.0, Python 3.12.15, numpy 2.5.4, Mesa 25.0.7(OSMesa) 이고, 인코딩은 ffmpeg 9.0.2(libx264) 입니다.

목차

1. 왜 사람 모양인가

5편부터 9편까지의 로봇은 탁자 끝에 붙은 갠트리 2축과 손목 2축이었습니다. 공을 받는 데는 가장 쉬운 모양입니다. 하지만 이 실험실의 다음 목표는 로봇끼리 경기를 시켜 더 강한 로봇을 만드는 것이고, 그 경기가 사람의 탁구와 비슷해 보이려면 로봇도 사람처럼 생겨야 합니다.

그래서 널리 쓰이는 사람 모양 로봇 Unitree G1 의 상체를 골랐습니다. 다리 대신 좌우로 미끄러지는 축 하나를 달았습니다. 탁구 선수가 옆걸음으로 공 쪽으로 가는 움직임을 대신하는 축입니다.

조건을 하나 더 걸었습니다. 로봇이 사람보다 빠르게 움직이면 안 됩니다. 로봇 관절은 사람보다 몇 배 빠를 수 있지만, 그 속도로 이긴 로봇은 「사람처럼 치는 로봇」이 아닙니다. 관절 각속도, 좌우 이동 속도와 가속도, 라켓 속도에 문헌의 사람 상한을 걸고, 로봇 한계와 사람 한계 중 작은 쪽을 썼습니다.

2. 영상으로 먼저 보기

2.1 공 하나를 옆 뒤에서

영상: 평가 공 53번을 G1 상체가 받아 넘기는 장면(4배 느리게)

상대 쪽 끝선에서 날아온 공을 로봇이 좌우 축으로 0.37 m 옮겨 가 0.789 s 에 맞혔습니다. 맞힌 순간 라켓 속도는 1.27 m/s 입니다. 주황 점은 지나온 공의 경로입니다. 몸통이 공을 따라 돌고, 팔꿈치와 손목이 라켓 면을 세우는 모습이 보입니다.

2.2 같은 공을 위에서

영상: 같은 공을 위에서 본 장면, 좌우 축의 이동이 잘 보인다(4배 느리게)

위에서 보면 로봇이 공이 올 자리로 미리 옮겨 가 있는 것이 잘 보입니다. 이 「미리 옮겨 가기」가 이 글에서 가장 큰 차이를 만든 동작입니다(4절).

2.3 서로 다른 공 네 개

영상: 서로 다른 평가 공 네 개를 연달아 받는 장면, 상대 쪽에서 본 시점(2배 느리게)

좌우 축이 오른쪽(+)으로 크게 움직인 공, 왼쪽(−)으로 0.82 m 움직인 공, 가운데 공, 짧게 튄 공을 차례로 이었습니다. 네 공 모두 반환에 성공했습니다. 공은 처음 80개 가운데 성공한 공에서 좌우 축 이동이 큰 순서로 골랐고, 고른 규칙과 결과는 렌더링 스크립트가 파일로 남깁니다.

3. 로봇과 계획기

항목 값
팔 7축(어깨 3, 팔꿈치 1, 손목 3)
허리 3축(yaw, roll, pitch)
좌우 축 이동 범위 ±0.9 m, 속도 1.5 m/s, 가속도 10 m/s²
골반 위치 끝선 뒤 48 cm(28–68 cm 를 훑어 고름, 차이는 표본 오차 안)
질량 모델 33.3 kg(공식 사양 약 35 kg)
계획기 7편 「하이브리드 명목」과 같은 구조: 공 예측 → 칠 시각·위치·면·속도 결정 → 역기구학 → 관절 궤적, 학습 없음

계획기는 갠트리와 같은 공 예측과 타격 결정을 쓰고, 마지막 단계만 G1 의 관절 11개(좌우 축 포함)에 대한 역기구학으로 바꿨습니다. 다시 계획할 때는 지난 자세에서 출발하도록 했는데, 학습용 공에서 참 상태 성공률이 88.5% 에서 94.0% 로 올랐습니다.

3.1 사람 한계

관절 로봇 한계(URDF, rad/s) 사람 상한(rad/s)
허리 yaw 32 10.1
허리 roll·pitch 37 10.1(몸통 회전값을 대신 씀, 추정)
어깨 pitch / roll / yaw 37 13.8 / 4.8 / 16.7
팔꿈치 37 5.7
손목 roll / pitch / yaw 37 / 22 / 22 18.3 / 9.3 / 3.9

4. 결과: 평가 공 500개

구성 참 상태 120 Hz·30 ms 120 Hz·100 ms
팔 7축 · 허리 사용 · 좌우 축(기본) 91.4% (±2.5) 72.0% (±3.9) 27.4% (±3.9)
같은 구성, 사람 한계 없음 92.4% 74.4% 27.2%
팔 7축 · 허리 잠금 · 좌우 축 83.8% 67.8% 26.6%
팔 5축 · 허리 사용 · 좌우 축 83.4% 70.2% 25.6%
팔 7축 · 허리 사용 · 좌우 축 없음 66.4% 60.4% 26.6%
팔 5축 · 허리 잠금 · 좌우 축 없음 40.4% 31.6% 12.8%
갠트리 고전 기준선(5편) 61.6% 59.2% 26.6%
갠트리 하이브리드 명목(7편, 계획 구조가 같음) 83.2% 80.6% 53.6%
갠트리 학습한 하이브리드(7편, 3시드) 84.8% 83.8% 58.2%

세 가지가 보입니다.

  1. 좌우 축이 가장 큰 차이를 냅니다. 좌우 축을 빼면 참 상태에서 「닿지 않는 공」이 4.6% 에서 23.8% 로 늘고 성공률이 91.4% 에서 66.4% 로 떨어집니다. 팔이 아무리 길어도 탁자 폭 1.525 m 를 제자리에서 다 덮지 못합니다. 사람이 옆걸음을 하는 이유와 같습니다.
  2. 사람 한계의 비용은 생각보다 작습니다. 같은 공을 한계 전·후로 짝지어 비교하면 기본 구성에서 놓친 공은 2.0–8.2% 입니다. 허리를 잠그면 7.6–14.4% 로 커집니다. 팔만으로 빠르게 휘둘러야 하기 때문입니다.
  3. 지연이 길면 갠트리보다 약합니다. 지연 100 ms 에서 기본 구성은 27.4% 로, 같은 구조의 갠트리(53.6%)의 절반입니다. 공 500개 가운데 45.4% 가 「타이밍·예측」으로 실패했습니다(실패의 63%). 무거운 몸통과 좌우 축이 늦은 계획 수정을 따라가지 못합니다. 학습으로 가장 먼저 고칠 곳입니다.

4.1 실패를 원인별로 나누면

기본 구성, 사람 한계 적용, 500개 대비 비율입니다. 공 하나에 원인 하나만 셉니다.

조건 닿지 않음 관절 한계(로봇) 관절 한계(사람) 자세(면 방향) 타이밍·예측 실패 합계
참 상태 4.6% 0.4% 2.4% 0.0% 1.2% 8.6%
120 Hz·30 ms 4.0% 1.2% 10.6% 0.0% 12.2% 28.0%
120 Hz·100 ms 10.6% 1.4% 15.2% 0.0% 45.4% 72.6%

카메라 지연 30 ms 에서 생긴 실패의 38% 는 「사람 관절 한계에 걸림」이었습니다. 늦게 알게 된 공을 따라가려면 사람보다 빨리 움직여야 하는 경우입니다. 사람 선수도 이런 공은 놓칩니다.

5. 좌우 축은 얼마나 빨라야 하나

좌우 축 속도·가속도 참 상태 성공률
1.0 m/s 88.6%
1.5–3.0 m/s 91.4–92.4%
3 m/s · 40 m/s² 68.4%

빠를수록 좋지 않았습니다. 가속도가 40 m/s²(약 4 g)가 되면 몸통이 크게 밀리고, 팔 관절의 토크가 그 반작용을 버티지 못합니다(토크 포화가 제어 주기의 35%). 사람의 범위(속도 2.2 m/s 이하, 가속도 10 m/s² 이하)에 있는 1.5–2.0 m/s · 10 m/s² 가 가장 좋은 구간에 들었습니다.

축이 옮기는 질량은 G1 전체와 라켓·운반대(가정 5 kg)를 합친 38.5 kg 입니다. 10 m/s² 로 밀려면 계산상 385 N 이고, 시뮬레이터에서 잰 값은 95% 지점 468 N, 최대 520 N 이었습니다. 다리를 떼고 상체만 올리면 질량이 24.1 kg 이 되어 힘은 약 2/3 로 줄어듭니다.

6. 라켓은 얼마나 빨리 휘두를 수 있나

관절 속도 한계만으로 계산한 최대 라켓 속도(계획한 타격 자세, 면 법선 방향)입니다. 토크로 그 속도까지 가속하는 시간은 넣지 않은 상한입니다.

구성 로봇 한계 사람 한계
기본 구성 중앙 38.8 m/s 중앙 9.6 m/s (5–95%: 5.5–18.9)
팔 5축 · 허리 잠금 — 중앙 2.4–3.4 m/s

공을 넘기는 데 드는 1.5–4 m/s 는 기본 구성이면 거의 모든 자세에서 냅니다. 스매시에 드는 5–7 m/s 는 사람 한계 아래에서는 팔 7축·허리 사용 구성만 대부분의 자세에서 냅니다. 다만 지금 계획기가 맞힌 순간의 라켓 속도는 중앙 1.06 m/s 입니다. 공을 막듯이 대고 넘기는 수준입니다. 세게 치는 것은 학습의 몫입니다.

7. GPU 에서 빨리 돌리기

학습에는 수많은 공을 동시에 돌려야 해서 MuJoCo Warp(GPU)에서도 같은 장면을 돌렸습니다. CPU MuJoCo 와 0.5 s 를 대조하니, 로봇이 크게 움직이는 경우에도 공 위치 차이가 중앙 5 µm, 관절 차이가 최대 1.1×10⁻⁵ rad 였습니다.

동시에 돌린 세계 수 초당 물리 스텝(RTX 4060)
256 63만
1,024 133만
4,096 166만
8,192 167만

갠트리(657만)의 약 1/4 입니다. 관절이 많고 몸통이 무거워 접촉 계산이 늘기 때문입니다. 한 번만 잰 값이라 흔들림은 확인하지 않았습니다.

8. 다음: 학습, 그리고 로봇끼리의 경기

영상: 탁구대 양쪽에 G1 두 대를 세운 장면. 대전 환경의 첫 모습

미실측과 한계

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

댓글

아직 댓글이 없습니다.

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