구축 방법 — 메카니카
■ 방법
- 규칙 시뮬레이션. 2D 질점–부재 모형을 XPBD(확장 위치 기반 동역학)로 적분한다.
- 서브스텝마다 부재·각도·접촉 제약 전체를 한 번에 푼다: (J W Jᵀ + α̃) Δλ = −C − α̃λ 를 역 커트힐–맥키 순서로 띠 폭을 줄인 뒤 촐레스키 분해. 모터 힘·토크 한계, 케이블 압축, 접촉 당김은 활성 집합으로 한계값에 고정하고 다시 푼다. 그다음 마찰, 가우스–자이델 1회.
- 시간 간격 1/60 s 고정(정한 값), 서브스텝 20 → h = 0.83 ms. 부재 = 거리 제약, 컴플라이언스 L/(EA). 서보·고정 접합 = 각도 제약(토크 한계). 바퀴 = 회전 자유도 + 직류 모터 토크–속도 직선 τ = τs(u − ω/ω0). 접촉 = 평면 제약 + 위치 단계 쿨롱 마찰.
- 파괴: 한 프레임 평균 축력이 인장 강도×단면적, 압괴 강도×단면적, 오일러 좌굴 π²EI/L²(양끝 핀) 중 해당 한계에 이르면 부러진다. 고정 접합은 휨 강도×단면계수.
- 서보: 비례대 0.06 rad(이 오차에서 정지 토크), 감쇠비 0.7, 설정값은 최고 속도와 감속 한계(정지 토크의 25% ÷ 유효 관성) 안에서 움직이고 실제 각도보다 0.1 rad 이상 앞서지 않음(모두 정한 값).
- ‘해석’ 버튼: 직접 강성법(핀 접합 트러스) K u = F, 부분 피벗 가우스 소거. 케이블이 압축이면 빼고 다시 푼다. 강성 행렬이 특이하면 ‘불안정 구조’.
- 제어 미션(C1~C4): 거리 센서 = 앞바퀴 중심에서 차체 방향으로 쏜 광선과 지형의 교점까지 거리. 규칙 제어기(거리 < 기준이면 모터 0, 아니면 정한 출력). PID = 서보 비례대(P = 정지 토크 ÷ 비례대), 적분(설정값에 오차 적분을 더함, ±0.5 rad 제한), 감쇠비(D)를 사용자가 정함, 감속 계획은 끔. 관절 프로그램은 1.2초(정한 값)마다 다음 단계. 역기구학은 두 링크 해석해(코사인 법칙), 팔꿈치 방향 두 해 중 선택.
- 미션: 단계형 15개(구조 6, 로봇 5, 제어 4). 미완성 설계를 깔아 두고 부품 1~4개만 더해 푼다. 별 ★ 통과, ★★·★★★는 미션별 기준(부품 수, 자중, 시간, 효율). 기준값은 풀이 예시를 돌려 정한 값.
- 학습 없음 · 브라우저 JavaScript, 외부 라이브러리 없음 · 테스트 Node v22.22.0 · 실행 20261024T183559Z
- LLM: 지금은 쓰지 않음. 사고 조사 보고서 문장은 규칙 템플릿. Workers AI가 문장을 다시 쓰는 기능이 있지만, 시험한 모델(@cf/meta/llama-3.1-8b-instruct-fp8)이 단위를 틀려 꺼 두었다. 숫자는 엔진이 계산한다.
■ 데이터
| 부품 | 값 | 성격 |
|---|---|---|
| 발사 5×5 mm | E 4.0 GPa · 휨 20 MPa · 압축 12.4 MPa · 170 kg/m³ | 공개 표, 약 |
| 소나무(동부 백송) 8×8 mm | E 8.5 GPa · 휨 59 MPa · 압축 33.1 MPa · 400 kg/m³ | 공개 표, 약 |
| 알루미늄 6063-T5 각관 10×10×1 mm | E 68.9 GPa · 항복 145 MPa · 2700 kg/m³ | 공개 값, 약 |
| 강선 지름 0.3 mm | E 200 GPa · 인장 2000 MPa | 약(보수적) |
| 마이크로 서보(SG90급) | 0.176 N·m · 0.1 s/60° · 9 g | 4.8 V 데이터시트, 약 |
| 표준 서보(MG996R급) | 0.92 N·m · 0.17 s/60° · 55 g | 4.8 V 데이터시트, 약 |
| TT 기어드 모터 1:48 + 바퀴 65 mm | 정지 0.0785 N·m · 무부하 200 rpm · 50 g | 판매처 사양, 약 |
| 리니어 액추에이터 | 50 N · 25 mm/s · 길이 ±25% · 60 g | 정한 값 |
| 마찰 계수 | 바퀴 μs 0.9 / μk 0.75 · 접합점 0.5 / 0.4 | 정한 값 |
| 접합 허브 | 2 g · 반지름 6 mm | 정한 값 |
- 목재 인장 강도는 휨 강도(MOR)로 근사했다(정한 값). 단면 치수는 모두 정한 값.
- 기타 정한 값: 시작 0.5초 동안 중력을 서서히 켬, 제작 오차 ±0.02 mm, 롤러 지점 미끄럼 ±1 cm, 부재 축방향 감쇠, 서보 속도 감쇠.
- 성격: 공개 자료의 대표값을 손으로 옮긴 것.
- 사용자 입력 저장: 설계와 최고 기록을 브라우저 localStorage에만 저장. 개인정보 없음.
■ 검증
- 측정 조건: Node v22.22.0, 1/60 s × 서브스텝 20, 같은 설계를 엔진에 넣고 해석해와 비교. 실행 20261024T183559Z, 테스트 89개 통과(엔진 26, 미션 58, 보고서 함수 5) + 영어 사전 누락 0.
- 정정 트러스 부재력: 시뮬 8.900 N / 손계산 8.901 N (오차 0.009%).
- 부정정 워렌 트러스(1 kg, 양끝 고정) vs 직접 강성법: 부재력 최대 오차 0.052%, 처짐 0.0995 / 0.0994 mm.
- 비교 기준(가우스–자이델만 쓴 XPBD, 같은 조건): 부재력 오차 15.3%, 처짐 22.5 mm로 226배 과대.
- 재료별 처짐: 발사 0.099 mm, 알루미늄 0.0045 mm(22배), 강성법 대비 최대 오차 0.07%.
- 오일러 좌굴: 발사 20 cm 기둥 파괴 압축력 51.45 N / 공식 51.40 N. 40 cm는 12.85 N으로 0.250배(이론 0.25).
- 압괴: 발사 5 cm 기둥 310.6 N / σc·A 310.0 N. 강선 인장 파단 141.7 N / σ·A 141.4 N.
- 서보: 10 cm 팔 끝 160 g 유지(처짐 0.54 cm, 비례대 탄성), 200 g은 3.93 cm 처짐(이론 경계 약 179 g). 90° 회전 0.167 s / 데이터시트 속도 기준 0.150 s(끝에서 감속).
- 액추에이터: 3 kg 들어 올림, 6 kg 못 듦(한계 약 5.1 kg).
- 마찰: 21° 경사 정지, 28° 미끄러짐(μs 0.5의 경계 26.6°).
- 바퀴: 평지 최고 속도 0.681 m/s / ω0·r 0.681 m/s. 30° 언덕(200 g 적재) 4륜 구동 통과, 뒷바퀴 구동 실패.
- 진자: 주기 1.1063 s / 이론 1.1071 s(0.08%). 10초 뒤 흔들림 에너지 74%(위치 기반 적분의 수치 감쇠).
- 미션 11개 모두: 깔린 미완성 설계는 실패, 풀이 예시는 부품 한도 안에서 통과.
- 틀린 풀이는 실패: 하우 방향 강선 대각재(느슨해짐), 평형추 200 g(남는 토크 0.196 > 0.176 N·m), 마이크로 서보, 하중점 바로 아래 액추에이터(78 N > 50 N).
- 더 좋은 풀이가 별이 더 많음: 작은 다리 위 트러스 7.23 g ★2 / 아래 강선 트러스 5.90 g ★3. 대각재 발사 469배 ★2 / 강선 504배 ★3.
- 대각재 방향(A5) 예시: 최대 14.05 kg, 그 하중에서 강성법 활용률 100.7%. 벽 크레인 최대 1.85 kg, 효율 259배.
- 결정성: 같은 설계를 두 번 돌려 위치가 비트 단위로 같음(같은 브라우저 기준).
- 제어: C1 멈출 거리 2 cm·속도 100%는 충돌, 12 cm는 8.3 cm 앞에서 섬, 6 cm·60%는 4.63 cm 앞 정지. C2 P 10은 처져 실패, D 0은 넘침 13.8°로 실패, I 5를 넣으면 넘침 7.1° → 10.1°(적분 누적), P 60·I 5·D 1.0은 남은 오차 0.003°. C3·C4 역기구학 → 정기구학 왕복 오차 3×10⁻¹⁴ mm, 팔꿈치 반대 방향 풀이는 서보 범위 밖이라 실패.
- 성능: 부재 127개 프레임당 1.11 ms(서버 CPU). 실기기 폰은 확인 전.
- 학습·평가 분리: 해당 없음(학습 없음).
■ 범위
- 2D. 접합은 핀(선택적으로 고정 접합). 부재 자체의 휨 변형은 계산하지 않고, 고정 접합의 휨 한계만 본다.
- 좌굴은 양끝 핀(K = 1), 초기 처짐 없는 이상 기둥. 좌굴 뒤 거동(후좌굴)은 ‘파괴’로 처리.
- 노드와 바퀴만 땅과 부딪친다. 부재끼리, 부재와 바퀴는 부딪치지 않는다. 지형 모서리는 부재를 뚫지 못한다.
- 부재 150개, 길이 2~80 cm, 하중 시험 상한 다리 40 kg · 크레인 20 kg.
■ 출처
- Macklin, M., Müller, M. & Chentanez, N. (2016). XPBD: Position-based simulation of compliant constrained dynamics. Motion in Games.
- Macklin, M., Storey, K., Lu, M., Terdiman, P., Chentanez, N., Jeschke, S. & Müller, M. (2019). Small steps in physics simulation. Symposium on Computer Animation.
- Macklin, M., Müller, M., Chentanez, N. & Kim, T.-Y. (2014). Unified particle physics for real-time applications. ACM Transactions on Graphics 33(4).
- Cuthill, E. & McKee, J. (1969). Reducing the bandwidth of sparse symmetric matrices. ACM National Conference.
- Timoshenko, S. P. & Gere, J. M. (1961). Theory of Elastic Stability. McGraw-Hill.
- 데이터: Forest Products Laboratory (2010). Wood Handbook — Wood as an Engineering Material. USDA FPL-GTR-190 및 이를 옮긴 표(발사·동부 백송 값 대조).
- 데이터: TT 모터 1:48 사양 — SunFounder 부품 문서, Adafruit 측정값(판매처 게시).
- 데이터: SG90 · MG996R 데이터시트(TowerPro).
■ 이력
- 2026-10-27 · v1.0 · 공개