Rust Guide
The Rust crate is dynibo's native interface. It exposes strongly typed link IDs,
instance-local workspaces, caller-owned output buffers, and detailed Error variants.
Typical setup
use dynibo::Robot;
fn main() -> dynibo::Result<()> {
let mut robot = Robot::from_urdf("robot.urdf")?;
let target = robot.link_id("tool")?;
let q = vec![0.0; robot.joint_count()];
let pose = robot.forward_kinematics(&q, target)?;
println!("{}", pose.translation.vector.transpose());
Ok(())
}
Allocation and concurrency
Create output buffers once when repeatedly calculating matrices or generalized
forces. A Workspace is model-scoped and mutable; use one per concurrent
calculation. A LinkId is also model-scoped and cannot be mixed with an
independently loaded model.
Types and errors
Frame is nalgebra's three-dimensional isometry. Twist and Wrench expose
named angular/linear and torque/force components. Fallible calls return
dynibo::Result<T>; Error::category() provides a stable coarse category while
the error variant preserves detail.