kinematics-rs
is a minimal robot kinematics library written in Rust.
NOTE: This library is still in very early stages of development and started as a project for learning Rust. See a list of more feature-complete libraries here.
The guiding principles of development for this library:
- scope limited to forward problems for kinematic chains and trees
- exhaustive unit testing for maintainng robustness
- detailed benchmarks for provably high performance
- bindings for other languages for simple integration into existing projects
Simple usage example:
use kinematics_rs::{Chain};
fn main() {
// Initialize Chain object that loads the robot URDF
let robot = Chain::<f32>::new(String::from("models/kuka_iiwr.urdf"), String::from("world_joint"));
// Random joint configuration
let config = vec![-0.57, 0.87, -0.65, -0.04, 2.27, 0.83, -2.44];
// Forward kinematics for "ee_fixed_joint"
let xf_target = robot.fk(&config, &String::from("ee_fixed_joint"));
println!("{:}", xf_target);
// Jacobian for "ee_fixed_joint"
let jac_target = robot.jacobian(&config, &String::from("ee_fixed_joint"));
println!("{:}", jac_target);
}
k - Excellent Kinematics library in Rust with many functionalities.