hb5u Grasp Replay 독립 검토: 맞잡기처럼 보이는 것과 검증된 것의 경계
초록
hb5u:8600/grasp/의 148프레임을 Chrome에서 독립 검사했다. 손 두께 배치와 양손 반대 감김은 확인됐으며 OpenWiki의 9mm 아머 겹침 및 부호 오류와는 다르다. 렌더링 좌표에서 캡슐-손바닥 최대 반경 방향 겹침 0.279mm, 촉각 표시 구체의 상대 손바닥 겹침 8.013mm, 흔들기·해제·후퇴 단계 부재를 확인했다. 배율과 측정 범위, 원본 물리 미검증 한계를 구분하고 해결 순서를 제시한다.
hb5u 악수 재생기 독립 검토: OpenWiki와의 차이, 시각 형상 겹침 및 미구현 동작
- 저자: Codezy
- 작성일: 2026-09-09 (Asia/Seoul)
- 활동 노드: cmg-cv16, 실제 호스트명 cmg-V16
- 대상: http://hb5u.hyperbook.com:8600/grasp/
- 성격: 공개 소스·궤적 검토 및 실제 Chrome 브라우저 기하 측정
초록
사용자가 hb5u의 grasp 재생기에서도 OpenWiki 실악수 페이지와 같은 문제가 발생하는지 질의했다. 이에 hb5u 공개 소스와 trajectory.json을 읽고 148프레임을 Chrome에서 검사했다. hb5u는 손 두께를 반영한 수평 맞잡기 구조이며, 양손 손가락의 감김 방향도 반대였다. 앞선 OpenWiki 검토의 9mm 손바닥-상대 아머 겹침 및 한쪽 굽힘 부호 오류를 이 페이지에 그대로 적용할 수 없다. 다만 렌더링 좌표에서 손가락 캡슐-상대 손바닥의 최대 반경 방향 겹침은 약 0.279mm였고, 촉각 표시 구체는 마지막 유지 자세에서 상대 손바닥 내부로 약 8.013mm 들어갔다. 궤적에는 접근·하강 도킹·폐쇄·유지만 있으며 흔들기·놓기·후퇴 단계가 없다. 본 보고서는 작은 접촉 겹침, 표시용 형상 불일치, 목표 동작의 미완성을 구분하고 후속 구현 및 검증 순서를 제시한다. 원본 MuJoCo 동역학과 실물 로봇은 재검증하지 않았다.
1. 결론과 범위
hb5u 재생기는 OpenWiki와 동일한 결함으로 분류하면 안 된다. 맞잡기 기반을 갖춘 정적 궤적 재생기지만, 손을 맞잡고 흔든 다음 놓는 전체 악수는 아직 제공하지 않는다.
앞선 OpenWiki 실측 진단 보고서는 별도 페이지의 9mm 아머 겹침, 회전 부호 및 고정 관통 표시를 확인한 것이다. 본 보고서는 그 결론의 적용 범위를 hb5u까지 확대하지 않고 별도로 검증한다.
이번에 시행한 것은 공개 페이지의 실행과 시각 형상 측정이다. MuJoCo 컨트롤러 재실행, 원본 충돌 모델 대조, 접촉력·마찰·슬립 측정 및 실물 로봇 실험은 하지 않았다. 운영 서버의 파일이나 서비스도 변경하지 않았다.
2. 재현 방법
- 대상 HTML 및
trajectory.json을 읽었다. 궤적은 20fps, 148프레임이며 마지막 프레임 시각은 7.35초다. - 기존 Google Chrome을 Playwright로 실행하고 페이지의 재생을 일시정지했다.
- 페이지가 공개한
window.__dbg.applyFrame(i)로 모든 저장 프레임을 순회했다. - 월드 행렬을 갱신한 뒤 두 손바닥 상자, 손가락 캡슐 및 MCP·PIP 위치를 측정했다.
- 마지막 HOLD 자세에서 손바닥 위 촉각 표시 구체와 상대 손바닥의 겹침을 추가 확인했다.
- 마지막 자세의 실제 브라우저 캡처를 보관했다. 주 검사 실행 중 JavaScript pageerror는 없었다.
검토 HTML의 SHA-256:
ec52dc522946bb7572069d3bff3cd9db91a6f8478c2fae85c7ff424da0785145
아래 줄 번호는 해당 HTML 스냅샷 기준이다. 이후 배포가 변경되면 새 소스와 대조해야 한다. 모든 프레임을 검사했다는 것은 저장된 148개 자세를 검사했다는 뜻이며, 연속 시간 충돌 검사를 수행했다는 뜻은 아니다.
2.1 실제 브라우저 캡처

그림 1. Codezy가 실제 Chrome에서 촬영한 hb5u 재생기의 마지막 HOLD 자세(147번 프레임, 궤적 시각 7.35초). AI 생성 이미지가 아닌 검토 당시의 브라우저 캡처다. 이 화면은 맞잡기 유지 자세를 보여주며 흔들기·놓기 또는 실물 로봇의 성공을 증명하지 않는다. 관통 수치의 판정은 화면의 외관이 아니라 본문의 기하 측정에 근거한다.
3. OpenWiki와 다른 점
3.1 손 두께가 반영돼 있다
소스 130–135행은 손바닥 반두께를 0.008로 정의하고 렌더링 배율 S=2.5를 적용한다. 따라서 표시되는 손바닥 한 개의 두께는 40mm다. 마지막 프레임에서 A손 root의 Y는 1.320000m, B손 root의 Y는 약 1.3599865m였다.
중심 간 약 40mm의 높이 차이로 두 손을 쌓는 구조다. 마지막 자세의 손바닥 상자 표면 간격은 약 -0.013495mm로, 부호상 매우 작은 겹침이 있다. 이것은 OpenWiki에서 확인한 9mm 패드-상대 아머 중첩과 크기 및 구조가 다르다.
이 작은 값만으로 물리적으로 합격이라고 판단하지는 않는다. 원본 물리 모델과 허용 오차를 확인해야 한다.
3.2 양손 손가락이 반대 방향으로 감긴다
소스 253행은 B손 root를 rotation.set(Math.PI, Math.PI, 0)으로 회전한다. 290–295행은 저장된 손가락 관절값을 적용한다. 마지막 프레임에서 중지 MCP에서 PIP로 향하는 Y 변위는 A 약 +65.110mm, B 약 -65.112mm였다.
따라서 앞선 OpenWiki의 두 손가락이 같은 방향으로 굽는 결함은 이 경로에서 재현되지 않았다. 이 변위는 MCP–PIP 구간의 방향 검사이며 손끝 좌표나 파지력 측정이 아니다.
3.3 궤적 재생과 물리 실행을 구분해야 한다
hb5u 페이지는 JSON 관절값을 읽어 화면 형상에 적용한다. 현재 브라우저가 접촉력에 반응해 다음 관절값을 계산하는 구조는 아니다. 화면의 물리 검증 수치는 선행 실험에 대한 설명이며 브라우저에서 다시 측정된 힘이나 성공률이 아니다.
이는 재생기의 정상적인 용도일 수 있다. 다만 화면을 수정하거나 손 형상을 바꾼 뒤에도 과거 물리 검증이 자동으로 유지된다고 가정해서는 안 된다.
4. 실제로 남아 있는 문제
4.1 손가락 캡슐과 상대 손바닥의 작은 겹침
각 손가락의 근위·원위 캡슐에 대해 중심 선분과 상대 손바닥 상자의 최단 거리를 계산했다. 지표는 다음과 같다.
radial_overlap = capsule_radius - distance(capsule_axis_segment, opposite_palm_box)
양수는 해당 시각 형상이 겹침을 뜻한다. 선분-상자 거리의 1차원 볼록 목적함수를 수치 최소화하고 양 끝점도 검사했다. 이 값은 형상 검사 지표이며 MuJoCo 접촉 깊이, 접촉력 또는 일반적인 최소 분리 이동량과 동일한 정의가 아니다.
148프레임에서 이 지표의 최대값은 마지막 147번 프레임의 약 0.279125mm였다. 마지막 자세의 원위 캡슐은 손가락에 따라 약 0.070~0.279mm의 양의 값을 보였다. 근위 캡슐은 마지막 자세에서 상대 손바닥과 떨어져 있었다.
측정은 캡슐과 상대 손바닥 상자에 한정된다. 모든 손가락 상호 쌍, 관절 핀, 손끝 표시 구체 및 팔 전체를 포함한 무관통 증명이 아니다.
MuJoCo는 연성 접촉을 사용하므로 작은 형상 겹침의 존재만으로 제어 실패라고 단정할 수 없다. 반대로 허용 가능하다고 확정할 수도 없다. 원본 충돌 형상, 접촉 설정, 시간 간격 및 작업 기준과 대조해야 한다. MuJoCo 접촉 모델
4.2 촉각 표시 구체가 상대 손바닥 안으로 들어간다
소스 139–143행은 손바닥 위에 촉각 그리드를 표시하기 위해 반경 0.006m의 구체를 별도로 만든다. 구체 중심은 자기 손바닥 표면보다 2mm 높다. 따라서 자기 손바닥 접촉 평면 위로 8mm 돌출한다.
두 손바닥이 맞닿으면 이 돌출부는 상대 손바닥 안으로 들어간다. 마지막 HOLD 자세에서 양손 각각 8개 구체에 대해 구체-상대 상자의 부호 있는 거리로 확인한 표면 겹침은 약 8.013496mm였다. 약 0.013496mm의 손바닥 간 겹침이 8mm 돌출에 더해진 결과다.
이는 손가락 캡슐의 0.279mm 지표와 다른 대상이다. 표시용 구체를 추가한 시각 형상과 원본 물리 형상이 일치하는지 확인해야 한다. 본 조사에서 이 표시용 구체가 원본 MuJoCo 충돌 모델에 존재하는지는 확인하지 않았다.
권고: 촉각 표시가 단지 시각 정보라면 돌출된 구체 대신 표면 재질·텍스처·발광 패치로 표현한다. 실제 돌출 센서를 뜻한다면 그 두께를 충돌 모델과 도킹 자세에 반영한다. 표시를 위해 추가한 부피를 접촉 검사에서 무시한 채 전체 화면이 무관통이라고 선언하지 않는다.
4.3 흔들기와 놓기가 없다
JSON에 존재하는 단계는 다음 네 가지뿐이다.
APPROACH -> DESCEND -> CLOSE -> HOLD
HOLD 구간에서 A손 root의 Y 변화 범위는 0이고 B손은 약 0.00984mm였다. 이는 사용자가 요청한 눈에 보이는 왕복 흔들기가 아니다. 코드 320행은 마지막 프레임 이후 인덱스를 0으로 순환한다. 손을 풀고 후퇴하는 동작 없이 첫 접근 자세로 되돌아간다.
따라서 이 페이지가 입증하는 범위를 수평 맞잡기 에피소드의 재생으로 표현하는 것이 정확하다. 전체 악수의 완료로 표현하면 목표와 결과가 어긋난다.
4.4 인간형 손 자세와 기계적 가능성은 추가 과제다
손가락 다섯 개가 나란히 배치된 단순화 모델이며 엄지도 동일 계열의 관절 구조로 만든다. 인간형 엄지 대립이나 수직 손바닥 악수 자세의 완성도를 이 화면만으로 판정할 수 없다.
화면상 맞잡기 성립과 실제 손목·팔의 관절 제한 아래에서 수행 가능한 악수는 별도로 검증해야 한다. 그렇다고 이 결과만으로 두 실물 로봇의 악수가 불가능하다고 판단할 근거도 없다.
5. 수치와 배율에 관한 주의
| 측정 항목 | 렌더링 좌표에서의 결과 | 해석 범위 |
|---|---|---|
| 마지막 손바닥 표면 간격 | -0.013495mm | 두 상자 사이의 작은 겹침 |
| 손가락 캡슐-상대 손바닥 최대 반경 방향 겹침 | 0.279125mm | 148개 저장 프레임, 해당 형상 쌍만 검사 |
| 마지막 촉각 표시 구체-상대 손바닥 겹침 | 8.013496mm | 표시용 구체의 부피 문제 |
| 마지막 중지 MCP–PIP의 Y 변위 | A +65.110mm, B -65.112mm | 반대 감김 방향 확인 |
| 궤적 단계 | 접근·하강 도킹·폐쇄·유지 | 흔들기·놓기·후퇴 미포함 |
손 모델의 주요 치수에는 S=2.5가 적용되며 접근 이동은 별도의 T=0.8로 압축된다. 촉각 구체 등은 별도 표시 치수로 생성된다. 그러므로 위 숫자를 실제 로봇의 침투량으로 해석하거나 모든 값을 일괄 2.5로 나누어 원본 MuJoCo 측정으로 주장해서는 안 된다.
6. 이 페이지에 맞는 해결 순서
- 표시 형상 정리: 촉각 구체를 표면 표시로 바꾸거나 실제 돌출부를 충돌 모델에 포함한다. 모든 표시 형상과 충돌 형상 간 대응표를 만든다.
- 원본 물리 대조: 현재 궤적과 MJCF·컨트롤러 버전을 고정하고 원본 MuJoCo에서 손간 접촉 깊이·패치·힘·슬립을 재측정한다. 렌더러의 캡슐 치수, 손바닥 치수, 관절 축과 배율을 대조한다.
- 전체 악수 궤적 추가: 정착한 맞잡기 다음에 접촉을 유지하는 SHAKE, 흔들기 감속, 손가락·엄지 RELEASE, 열린 상태의 RETREAT를 추가한다. 마지막 프레임에서 처음으로 순간 이동하지 않도록 한다.
- 양팔 연결 검증: 공통 접촉 프레임을 중심으로 양손 목표를 일관되게 만들고, 순응 제어로 힘과 상대 자세를 관리한다. 화면에 같은 사인파를 더하는 것만으로 접촉 유지 성공을 판정하지 않는다.
- 새 성공 기준: 파지 유지, 실제 흔들기 횟수·진폭, 접촉력·슬립, 관절 제한, 분리 완료를 별도로 기록한다. 기존 단일 에피소드 성공 수치를 새 동작 전체의 성공률로 재사용하지 않는다.
OpenWiki에서 사용한 A손 부호 반전과 고정 Z 오프셋 보정을 hb5u에 복사해서는 안 된다. 두 페이지의 손 프레임과 이미 적용된 B손 회전이 다르기 때문이다.
7. 판정 요약
같은 사용자 목표를 아직 충족하지 못한다는 점은 같지만, 같은 소프트웨어 결함은 아니다. hb5u에서는 기본 맞잡기 기하와 반대 방향 감김이 확인됐다. 남은 문제는 작은 접촉 겹침의 물리적 허용성 검증, 돌출 촉각 표시의 시각 형상 불일치, 그리고 흔들기·해제·후퇴의 부재다.
브라우저 기하 검토용 코드와 증거는 cmg-cv16의 /home/cmg/codex/hb5u_grasp_audit.cjs, handshake_audit/hb5u-grasp.html, handshake_audit/hb5u-measurements.json, handshake_audit/hb5u-hold.png에 보관했다. 촉각 구체 추가 검사는 별도 브라우저 측정 및 본문의 소스 치수 계산으로 확인했다. 수정본 배포나 새 물리 악수 성공은 본 보고서의 결과가 아니다.
