helsing-ai/sguaba

A Rust crate that provides hard-to-misuse rigid body transforms (aka "spatial math") for engineers with other things to worry about than linear algebra.

무엇을 해결하는가

Sguaba는 강체 변환(rigid body transforms) 및 공간 수학을 처리하는 타입 안전(type-safe)한 방법을 제공하여, 서로 다른 좌표계의 좌표가 실수로 혼합되거나 잘못 사용되는 일반적인 엔지니어링 오류를 방지합니다. 이는 항공우주 및 로보틱스에서 사용되는 다양한 전역 및 지역 좌표계 간의 변환 프로세스를 단순화합니다.

작동 방식

이 라이브러리는 Rust의 타입 시스템을 사용하여 좌표계를 명시적으로 만듭니다. CoordinateVector 타입을 제공하며, 이는 CoordinateSystem에 대해 제네릭하게 설계되었습니다. system! 매크로를 사용하면 개발자가 사용자 정의 좌표계(예: PlaneFrd)를 정의하여, 명시적인 변환 없이 한 시스템의 좌표를 다른 시스템에서 사용할 수 없도록 보장할 수 있습니다.

다음과 같은 여러 표준 좌표계를 기본적으로 지원합니다:

  • WGS84: 위도, 경도, 고도.
  • ECEF: 지구 중심, 지구 고정 데카르트 좌표계.
  • NED: North, East, Down (지역 접평면).
  • FRD: Front, Right, Down (기체 상대 프레임).
  • ENU: East, North, Up.

사용자는 "엔지니어링 중심" API(PoseOrientation 타입 사용) 또는 "수학 중심" API(강체 변환 및 회전 사용) 중에서 선택할 수 있습니다.

대상 사용자

선형 대수를 수동으로 관리하지 않고도 신뢰할 수 있는 좌표 변환을 수행해야 하는 공간 데이터, 로보틱스 또는 항공우주 시스템 분야의 엔지니어.

주요 특징

  • 타입 안전한 좌표계: 서로 다른 기준 프레임 간의 좌표 오용을 방지합니다.
  • 포괄적인 시스템 지원: WGS84, ECEF, NED, FRD, ENU에 대한 내장 지원.
  • 유연한 API: 직관적인 엔지니어링 타입(Pose/Orientation)과 엄격한 수학적 변환을 모두 제공합니다.
  • 매크로 기반 시스템 정의: 특정 의미론을 가진 새로운 좌표계를 쉽게 정의할 수 있습니다.

관련

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