Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Supported Robots

All 52 built-in robot configurations, organized by manufacturer.

Universal Robots

Config NameModelDOFIK SolverNotes
ur3eUR3e6OPWCompact tabletop arm
ur5eUR5e6OPWMost popular UR model
ur10eUR10e6OPWLong reach (1300mm)
ur16eUR16e6OPWHeavy payload (16kg)
ur20UR206OPWNext-gen 20kg payload
ur30UR306OPWNext-gen 30kg payload

Franka Emika

Config NameModelDOFIK SolverNotes
franka_pandaPanda7DLSResearch-grade, torque sensing

KUKA

Config NameModelDOFIK SolverNotes
kuka_iiwa7LBR iiwa 77DLS7-DOF collaborative
kuka_iiwa14LBR iiwa 147DLS14kg payload variant
kuka_kr6KR 66OPWIndustrial 6kg

ABB

Config NameModelDOFIK SolverNotes
abb_irb1200IRB 12006OPWCompact industrial
abb_irb4600IRB 46006OPWHigh payload industrial
abb_yumi_leftYuMi (left)7DLSDual-arm collaborative
abb_yumi_rightYuMi (right)7DLSDual-arm collaborative

Fanuc

Config NameModelDOFIK SolverNotes
fanuc_crx10iaCRX-10iA6OPWCollaborative
fanuc_lr_mate_200idLR Mate 200iD6OPWCompact industrial

Yaskawa/Motoman

Config NameModelDOFIK SolverNotes
yaskawa_gp7GP76OPWGeneral purpose
yaskawa_hc10HC106OPWCollaborative 10kg

UFactory (xArm)

Config NameModelDOFIK SolverNotes
xarm5xArm 55DLS5-DOF variant
xarm6xArm 66OPW6-DOF variant
xarm7xArm 77DLS7-DOF redundant

Kinova

Config NameModelDOFIK SolverNotes
kinova_gen3Gen37DLS7-DOF research arm
kinova_gen3_liteGen3 Lite6DLS6-DOF lightweight
jaco2_6dofJaco26DLSAssistive robotics

Trossen Robotics

Config NameModelDOFIK SolverNotes
trossen_px100PincherX 1004DLSBudget tabletop
trossen_rx150ReactorX 1505DLSMid-range
trossen_wx250sWidowX 250s6OPWResearch platform
viperx_300ViperX 3006OPW6-DOF research
widowx_250WidowX 2506OPWResearch platform

Research / Education

Config NameModelDOFIK SolverNotes
aloha_leftALOHA (left)6OPWBimanual teleop
aloha_rightALOHA (right)6OPWBimanual teleop
koch_v1Koch v16OPWOpen-source arm
lerobot_so100LeRobot SO-1006DLSAI training arm
so_arm100SO-ARM1005DLSCompact research
open_manipulator_xOpenMANIPULATOR-X4DLSROBOTIS, 4-DOF
robotis_open_manipulator_pOpenMANIPULATOR-P6OPWROBOTIS, 6-DOF
mycobot_280myCobot 2806OPWElephant Robotics

Rethink Robotics

Config NameModelDOFIK SolverNotes
baxter_leftBaxter (left)7DLSDual-arm research
baxter_rightBaxter (right)7DLSDual-arm research
sawyerSawyer7DLSSingle-arm research

Other Manufacturers

Config NameModelDOFIK SolverNotes
denso_vs068Denso VS0686OPWCompact industrial
dobot_cr5Dobot CR56OPWCollaborative
elite_ec66Elite EC666OPWCollaborative
flexiv_rizon4Flexiv Rizon 47DLSForce-controlled
meca500Mecademic Meca5006OPWMicro industrial
niryo_ned2Niryo Ned26OPWEducation
staubli_tx260Staubli TX2-606OPWHigh-speed
techman_tm5_700Techman TM5-7006OPWCollaborative with vision

Mobile Manipulators

Config NameModelDOFIK SolverNotes
fetchFetch8DLSMobile base + 7-DOF arm
pr2PR28DLSWillow Garage dual-arm
stretch_re2Stretch RE25DLSHello Robot, mobile
tiagoTIAGo8DLSPAL Robotics mobile

Usage

#![allow(unused)]
fn main() {
use kinetic::prelude::*;

// Load any robot by config name
let robot = Robot::from_name("ur5e")?;

// Check available named poses
if let Some(joints) = robot.named_pose("home") {
    println!("Home: {:?}", joints);
}
}

Adding Your Own

See the Custom Robots guide for step-by-step instructions on adding a new robot configuration. Contributions are welcome via pull request.