Skip to main content

Crate schiebung

Crate schiebung 

Source
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.

§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

§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).