rai-opensource/spatialmath-python

Create, manipulate and convert representations of position and orientation in 2D or 3D using Python

해결하는 문제

공간 수학은 로봇공학과 로봇 시각의 기초이며, 개발자가 2D 또는 3D 공간 내 객체의 위치, 방향, 자세를 기술할 수 있게 해줍니다. 이 라이브러리는 수동으로 원시 행렬을 관리하지 않고도 이러한 복잡한 기하학적 변환을 표준화되고 타입 안전한 방식으로 처리할 수 있도록 합니다.

작동 방식

이 라이브러리는 NumPy 배열을 수학적 군으로 추상화하는 고수준 클래스를 제공합니다. 차원과 표현 방식에 따라 특정 클래스를 사용합니다:

  • 3D 공간: SE3 (자세), SO3 (방향), UnitQuaternion (방향), Twist3 (자세), UnitDualQuaternion (자세).
  • 2D 공간: SE2 (자세), SO2 (방향), Twist2 (자세).

이 클래스들은 조합(*), 점 변환(*), 지수(**)를 위한 오버로드 연산자를 지원하며, 정규화, 역변환, 오일러 각도, 롤-피치-요, 각도-축 형태 간의 변환 메서드도 제공합니다. 또한 NumPy 배열을 직접 다루고 싶은 사용자를 위한 저수준 함수도 포함하고 있으며, SymPy를 통해 기호 변수도 지원합니다.

대상 사용자

공간 변환과 자세 추정을 수행해야 하는 로봇공학 연구자 및 엔지니어, 그리고 "Robotics, Vision & Control" 교과서를 사용하는 학생들을 위한 것입니다.

주요 기능

  • 타입 안전성: 2D와 3D 변환 행렬을 실수로 혼동하는 것을 방지합니다.
  • 벡터화: 한 줄로 회전 행렬 또는 자세의 시퀀스를 생성하고 연산할 수 있습니다.
  • 시각화: 변환을 플롯하는(trplot) 및 애니메이션을 생성하는(tranimate) 내장 도구를 제공합니다.
  • 기호 지원: SymPy와 호환되어 기호 변수를 사용한 수학적 도출이 가능합니다.

관련

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