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)與嚴謹的數學變換。
  • 基於宏的系統定義:可輕鬆定義具有特定語意的新坐標系統。

相關

  • 專案
  • 專案
  • 專案
  • 專案