Reduced Coordinates
- 다른 이름: minimal coordinates, joint coordinates
- 카테고리: Software & tooling › Simulation & twins
- 태그: physics-simulation, rigid-body-dynamics, multibody-systems, kinematics, simulation
관절로 연결된 메커니즘을 관절 변수만으로 기술하는 방식으로, 관절이 자유 물체들 사이의 구속으로 강제되는 대신 구성 방식 자체로 붙어 있게 된다.
정의
로봇 암 같은 다물체 시스템은 크게 두 가지 방식으로 시뮬레이션할 수 있다. 최대 좌표(maximal coordinates)에서는 모든 링크가 6자유도를 가진 자유 강체이며, 관절은 솔버가 매 단계마다 강제해야 하는 구속으로 추가된다. 축소 좌표(reduced coordinates)에서는 시스템을 관절 변수, 즉 관절 각도와 직동 변위만으로 기술하며, 부유 로봇의 경우 여기에 베이스의 자세를 더한다. 그러면 각 링크의 자세는 순기구학으로 이 변수들로부터 계산되므로 관절이 분리될 수 없다. 구속은 구성 방식 자체로 만족된다.
축소 좌표는 고전적인 로봇 동역학 알고리즘이 자연스럽게 놓이는 틀이다. 재귀 Newton-Euler 알고리즘, 복합 강체 알고리즘, Featherstone의 관절체 알고리즘은 모두 관절 공간의 양을 직접 다루며, 링크 수에 대해 선형으로 또는 선형에 가깝게 증가하는 시간 안에 역동역학이나 순동역학을 계산한다. 운동 방정식은 익숙한 형태 M(q) q̈ + C(q, q̇) q̇ + g(q) = τ를 가지며, 이는 로봇 제어에 그대로 대응된다. 이 접근법을 쓰는 시뮬레이터로는 MuJoCo, Drake, Pinocchio 기반 도구, 그리고 PhysX와 Bullet의 articulation 유형이 있다. 예를 들어 Isaac Gym은 모든 로봇을 PhysX 축소 좌표 articulation으로 시뮬레이션한다.
주요 장점은 긴 체인에 대한 정확도와 안정성이다. 관절 드리프트나 관절 늘어남이 없고, 관절 한계와 구동이 실제 관절 변수에 작용하며, 적분할 변수가 더 적다. 한계는 구조가 기구학적 트리여야 하므로 4절 링크나 병렬 로봇 같은 닫힌 루프에는 추가적인 루프 닫힘 구속이 필요하다는 점, 그리고 환경과의 접촉은 여전히 구속이나 페널티 힘으로 처리해야 한다는 점이다. 최대 좌표는 단순하고 병렬화가 쉬워서 게임 물리와 느슨하게 연결된 물체에서 여전히 흔히 쓰인다.
중요한 이유
시뮬레이터가 로봇을 어떻게 표현하는지는 큰 하중 아래에서 관절이 붙어 있는지, 얼마나 큰 시간 간격을 쓸 수 있는지, 시뮬레이션된 관절 동역학이 제어기의 모델과 얼마나 가깝게 일치하는지에 영향을 준다. 어떤 도구가 축소 좌표와 최대 좌표 중 무엇을 쓰는지 알면, 물리 엔진 간의 안정성, 성능, 모델링 선택지의 많은 차이를 설명할 수 있다.
주요 응용
- 로봇 암, 다리 로봇, 휴머노이드의 물리 시뮬레이션
- 제어와 모델 예측 제어를 위한 강체 동역학 라이브러리
- 강화 학습을 위한 GPU 병렬 시뮬레이션
- 관절 공간 동역학 모델을 이용한 궤적 최적화
- 관절형 시스템의 미분 가능 시뮬레이션
실제 사례
한 엔지니어가 강화 학습을 위해 휴머노이드 URDF를 GPU 시뮬레이터로 가져온다. 축소 좌표 articulation으로 로드하면 로봇의 상태는 베이스 자세와 속도에 관절당 하나의 위치와 속도를 더한 것이 되며, 이는 관측 벡터와 정책이 출력하는 관절 PD 목표값에 그대로 대응된다. 앞서 같은 모델을 관절 구속으로 연결한 별도의 강체들로 만들었을 때는, 강한 착지 중에 무릎이 눈에 띄게 분리되었고 훨씬 많은 솔버 반복이 필요했다. 이 로봇에는 닫힌 체인 발목 링크 기구도 있다. articulation은 트리여야 하므로, 엔지니어는 이를 루프 닫힘 구속 하나를 추가한 트리로 모델링하고, 그 결과 얻은 관절 토크 한계가 실제 메커니즘과 일치하는지 확인한다.
흔한 오해
- 축소 좌표와 최대 좌표는 서로 다른 물리를 모델링한다 — 이상적으로는 둘 다 같은 동역학을 기술하며, 차이는 수치 풀이, 드리프트, 구속 강성에서 온다
- 축소 좌표는 어떤 메커니즘이든 직접 표현할 수 있다 — 병렬 로봇과 링크 기구에서처럼 닫힌 기구학적 루프에는 추가적인 루프 닫힘 구속이 필요하다
- 축소 좌표를 쓰면 구속 솔버가 필요 없다 — 접촉, 관절 한계, 루프 닫힘은 여전히 풀어야 하는 구속이다
알아야 할 사람
- 시뮬레이션 및 물리 엔진 개발자
- GPU 시뮬레이터를 사용하는 로봇 학습 엔지니어
- 강체 동역학 라이브러리를 다루는 제어 엔지니어
- URDF와 MJCF 파일 같은 로봇 모델을 준비하는 엔지니어
관련 기술
- PhysX Articulations
- MuJoCo
- Pinocchio
- Drake
- 재귀 Newton-Euler 알고리즘(Recursive Newton-Euler Algorithm)
관련 용어
관련 프로젝트
- GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- RLinf: Scalable infrastructure for post-training foundation models via RL
- Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
- NVIDIA Isaac Sim: NVIDIA Omniverse app for AI-driven robot simulation and testing