transforms_io
An IO layer for the transforms crate.
transforms_io provides ROS2 message handling for the middleware-independent transforms crate. It bridges ROS2 message types with the transform engine, supporting multiple ROS backends and Minot.
Alternatives
For roslibrust, use the roslibrust_transforms crate.
Installation
Add to your Cargo.toml:
[]
= "*"
# Enable exactly one backend
[]
= []
# Choose one:
# r2r = ["transforms_io/r2r"]
# ros2-client = ["transforms_io/ros2-client"]
# mt-pubsub = ["transforms_io/mt-pubsub"]
Usage
r2r Backend
Two modes available:
Threads
use ;
// Create broadcaster
let broadcaster = new;
// Create listener (spawns blocking threads)
let listener = new;
// Lookup transform
let tf = listener.lookup_transform?;
Async
Enable r2r-async feature:
[]
= { = "0.1", = ["r2r-async"] }
use TfListener;
// Returns listener + two futures to spawn on your runtime
let = new_async;
// Spawn on your async runtime
spawn;
spawn;
// Use listener
let tf = listener.lookup_transform?;
ros2-client Backend
use ;
let listener = new;
let tf = listener.lookup_transform?;
mt-pubsub Backend
use ;
use Arc;
use Runtime;
let rt = new;
let listener = new;
let tf = listener.lookup_transform?;