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 提供了一种类型安全的方式来处理刚体变换和空间数学,防止在不同坐标系中的坐标被意外混合或误用的常见工程错误。它简化了航空航天和机器人领域中各种全局和局部坐标系之间的转换过程。

它如何工作

该库利用 Rust 的类型系统使坐标系变得明确。它提供了 CoordinateVector 类型,这些类型对 CoordinateSystem 是泛型的。system! 宏允许开发者定义自定义坐标系(例如 PlaneFrd),以确保一个坐标系中的坐标无法在另一个坐标系中使用,除非经过显式的变换。

它开箱即用地支持几种标准坐标系:

  • WGS84:纬度、经度和海拔。
  • ECEF:地心地固笛卡尔坐标。
  • NED:北、东、下(局部切平面)。
  • FRD:前、右、下(机体相对坐标系)。
  • ENU:东、北、上。

用户可以在“工程导向”API(使用 PoseOrientation 类型)和“数学导向”API(使用刚体变换和旋转)之间进行选择。

适用人群

需要在空间数据、机器人或航空航天系统中进行可靠坐标变换,但又不想手动管理线性代数的工程师。

特色亮点

  • 类型安全的坐标系:防止在不同参考系之间误用坐标。
  • 全面的系统支持:内置对 WGS84、ECEF、NED、FRD 和 ENU 的支持。
  • 灵活的 API:提供直观的工程类型(Pose/Orientation)和严谨的数学变换。
  • 基于宏的系统定义:可轻松定义具有特定语义的新坐标系。

相关

  • 项目
  • 项目
  • 项目
  • 项目