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에서의 대규모 처리량.
  • 로봇 특화 헬퍼: 전문화된 ManipulatorHumanoid 클래스 포함.
  • 충돌 회피: 안전 제약을 강제하기 위한 구형 충돌 모델 지원.
  • 사전 로드된 모델: Franka Panda 및 Unitree G1 로봇에 대한 내장 지원 제공.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트