UM-ARM-Lab/pytorch_kinematics

Robot kinematics implemented in pytorch

해결하는 문제

PyTorch Robot Kinematics는 로봇 운동학 계산을 위한 고성능 미분 가능 프레임워크를 제공합니다. 순운동학(FK), Jacobian 계산 및 역운동학(IK)을 병렬화 가능하고 PyTorch의 autograd 시스템과 호환되는 방식으로 수행하여, 이러한 연산을 머신러닝 파이프라인에 직접 통합할 수 있도록 합니다.

작동 원리

이 라이브러리는 URDF, SDF, MJCF와 같은 표준 형식을 통해 로봇 설명을 로드합니다. PyTorch 텐서를 사용하여 운동학 연산을 구현함으로써 CPU 또는 GPU에서 여러 로봇 구성을 동시에 배치 처리할 수 있습니다.

주요 기술 구현 사항:

  • Analytical Geometric Jacobian: FK의 역전파(backward pass)에 사용되어 표준 autograd 대비 그래디언트 계산 속도를 약 9배 향상시킵니다.
  • Damped Least Squares: 특이점 근처에서의 진동을 방지하기 위해 역운동학에 사용되는 반복법입니다.
  • torch.compile 지원: 라이브러리는 PyTorch 2.0+에 최적화되어 있어 FK 및 Jacobian 커널을 최적화된 그래프로 컴파일하여 상당한 속도 향상을 제공합니다.

대상 사용자

궤적 최적화, 로봇 학습 또는 충돌 검사(pytorch-volumetric 통합을 통해)를 위해 빠르고 미분 가능한 운동학 계산을 수행해야 하는 로봇 연구자 및 엔지니어를 위해 설계되었습니다.

주요 특징

  • 멀티 포맷 지원: URDF, SDF, MJCF 파일에서 로봇 설명을 로드합니다.
  • 병렬 실행: 관절 값을 배치 처리하여 직렬 루프보다 수십 배 빠르게 변환 및 Jacobian을 계산합니다.
  • 미분 가능: 그래디언트 기반 최적화를 위해 PyTorch autograd와 완전히 호환됩니다.
  • 최적화된 성능: torch.compile을 활용하여 FK 및 IK 루프 모두에서 상당한 속도 향상을 제공합니다.
  • 독립형 IK: ROS에 의존하지 않는 IK 솔버를 제공합니다.

관련

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