Expand description
§schiebung
Fast, memory-safe in-memory transform graph with time-aware lookups.
schiebung stores time-stamped isometries between named frames and lets you query any frame’s pose relative to any other by chaining the edges. It supports lerp/slerp interpolation when the requested timestamp falls between samples, batched updates, and a URDF loader for robotics use.
Useful anywhere you have multiple coordinate systems that move relative to each other — multi-sensor fusion, simulation, motion capture, AR/VR, robotics. The closest analogue is ROS TF2; schiebung is for projects that want the abstraction without pulling in ROS.
- Documentation: https://maximaerz.github.io/schiebung/
- Repository: https://github.com/MaxiMaerz/schiebung
- Rust API guide: https://maximaerz.github.io/schiebung/schiebung-core/rust/
§At a glance
use schiebung::{BufferTree, StampedIsometry, TransformType, TransformUpdate};
let mut buffer = BufferTree::new();
buffer.update(&[
TransformUpdate::new(
"world",
"robot_base",
StampedIsometry::from_secs([0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1.0], 0.0),
TransformType::Static,
),
])?;
let tf = buffer.lookup_latest_transform("world", "robot_base")?;§Companion crates
schiebung-rerun— visualize the transform graph live in Rerun.
§License
MIT
Re-exports§
pub use buffer::BufferObserver;pub use buffer::BufferTree;pub use config::get_config;pub use config::BufferConfig;pub use error::TfError;pub use types::StampedIsometry;pub use types::TransformType;pub use types::TransformUpdate;pub use utils::FormatLoader;pub use utils::UrdfLoader;
Modules§
- buffer
- Transform graph storage and lookup (
BufferTree,BufferObserver). - config
- Runtime configuration and config-file loading (
BufferConfig,get_config). - error
- Error type returned by buffer operations (
TfError). - types
- Core value types:
StampedIsometry,TransformType,TransformUpdate. - utils
- Loaders that ingest external model files into a
BufferTree(UrdfLoader).