StanfordASL/frax
Fast Robot Kinematics and Dynamics in JAX
해결하는 문제
frax는 고성능 로봇 운동학 및 역학 계산을 제공하도록 설계되었습니다. Pinocchio와 같은 C++ 라이브러리의 속도, Python의 사용 편의성, 그리고 JAX가 제공하는 자동 미분 및 병렬화에 대한 네이티브 지원을 결합한 라이브러리에 대한 요구를 충족합니다.
작동 원리
JAX를 사용한 순수 Python으로 작성된 이 라이브러리는 JIT 컴파일과 자동 미분을 지원합니다. URDF 파일을 통해 정의된 로봇의 역학 항(질량 행렬, Jacobian 및 중력 벡터 등)을 계산할 수 있습니다. 회전, 직동, 고정 및 프리 플로팅을 포함한 다양한 관절 유형을 지원합니다.
최대 성능을 달성하기 위해 사용자는 컨트롤러 로직을 @jax.jit 데코레이터로 래핑하고 필요한 경우 배정밀도를 사용하는 것이 권장됩니다. CPU에서는 수 마이크로초 범위의 계산 시간을 달성할 수 있으며, GPU/TPU에서는 초당 1억 회 이상의 계산을 처리할 수 있습니다.
대상
Jacobian을 수동으로 유도하지 않고도 유연하고 고성능인 컨트롤러(역운동학 또는 작업 공간 제어 등)를 설계하고 프로토타입을 제작해야 하는 로봇 연구자 및 엔지니어.
주요 특징
- JAX 기반: 자동 미분 및 병렬화에 대한 네이티브 지원.
- 극한의 속도: CPU에서의 고주파 제어 루프(25-100 kHz) 및 GPU/TPU에서의 대규모 처리량.
- 로봇 특화 헬퍼: 전문화된
Manipulator및Humanoid클래스 포함. - 충돌 회피: 안전 제약을 강제하기 위한 구형 충돌 모델 지원.
- 사전 로드된 모델: Franka Panda 및 Unitree G1 로봇에 대한 내장 지원 제공.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트