StanfordASL/frax
Fast Robot Kinematics and Dynamics in JAX
해결하는 문제
frax는 순수 Python으로 고성능 로봇 운동학 및 동역학 계산을 제공하기 위해 설계되었습니다. Pinocchio와 같은 C++ 기반 도구의 속도와 Python의 사용 편의성을 결합하고, JAX를 통해 자동 미분과 병렬화를 수행할 수 있는 라이브러리에 대한 요구를 해결합니다.
작동 원리
이 라이브러리는 JAX를 기반으로 구축되어 JIT 컴파일과 자동 미분을 활용할 수 있습니다. URDF 파일로 정의된 로봇의 동역학 항(질량 행렬, 야코비 행렬, 중력 벡터 등)을 계산할 수 있습니다. Manipulator, Humanoid, Quadruped와 같은 특수 클래스를 통해 다양한 로봇 폼 팩터를 지원하며, MuJoCo의 쿼터니언 규칙을 사용하여 자유 부동 베이스를 처리합니다.
대상 사용자
빠르고 미분 가능한 로봇 컨트롤러(예: 역운동학, 작업 공간 제어)를 설계해야 하는 로봇 공학 연구자 및 엔지니어, 그리고 자동 미분을 사용하여 야코비 행렬을 수동으로 유도하는 번거로움을 피하고자 하는 분들을 위한 것입니다.
주요 특징
- 고성능: CPU에서 마이크로초 단위의 계산 시간을 달성하며, GPU/TPU에서는 초당 1억 회 이상의 계산이 가능합니다.
- JAX 기반: JAX의 JIT 컴파일 및 자동 미분과 완벽하게 호환됩니다.
- 내장 로봇 모델: Franka Panda, Kuka iiwa, Unitree G1, Unitree A2 모델이 사전 로드되어 있습니다.
- 구체화된 충돌 모델: 구체화된 충돌 모델이 정의된 경우, 충돌 회피를 위한 메서드가 포함되어 있습니다.
- 유연한 컨트롤러 설계: 운동학 및 동역학의 간단한 함수를 사용하여 제약 조건(예: 특이점 및 자기 충돌 회피)의 프로토타입을 쉽게 설계할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트