Python APIΒΆ
cuRobo provides accelerated modules for robotics which can be used to build high-performance robotics applications. The library has several modules for numerical optimization, robot kinematics, geometry processing, collision checking, graph search planning. cuRobo provides high-level APIs for performing tasks like collision-free inverse kinematics, model predictive control, and motion planning.
Public API Quick Start:
from curobo.inverse_kinematics import InverseKinematics, InverseKinematicsCfg
from curobo.trajectory_optimizer import TrajectoryOptimizer, TrajectoryOptimizerCfg
from curobo.motion_planner import MotionPlanner, MotionPlannerCfg
from curobo.model_predictive_control import ModelPredictiveControl, ModelPredictiveControlCfg
from curobo.kinematics import Kinematics, KinematicsCfg
from curobo.scene import Scene, Cuboid, Sphere, Mesh
from curobo.types import JointState
# Forward kinematics
kin = Kinematics(KinematicsCfg.from_robot_yaml_file("franka.yml"))
js = JointState.from_position(q, joint_names=kin.joint_names)
state = kin.compute_kinematics(js)
# Scene representation
scene = Scene(
cuboid=[Cuboid(name="table", dims=[1, 1, 0.1], pose=[0, 0, 0.5, 1, 0, 0, 0])],
)
# Inverse kinematics
ik_config = InverseKinematicsCfg.create(robot="franka.yml")
ik = InverseKinematics(ik_config)
result = ik.solve_pose(goal_tool_poses=target_poses)
# Trajectory optimization
trajopt = TrajectoryOptimizer(trajopt_config)
trajectory = trajopt.solve_pose(goal_tool_poses=target_poses)
# Model predictive control
mpc = ModelPredictiveControl(mpc_config)
result = mpc.optimize_action_sequence(current_state)
Public API Modules:
curobo.kinematics- Forward kinematicscurobo.inverse_kinematics- Inverse kinematics solvercurobo.trajectory_optimizer- Trajectory optimizationcurobo.motion_planner- Motion planningcurobo.model_predictive_control- Model predictive controlcurobo.motion_retargeter- Motion retargeting using inverse kinematics and model predictive controlcurobo.scene- Scene representation with obstaclescurobo.collision_checking- Robot collision checking (for custom pipelines)curobo.perception- Perception utilities (robot segmentation)curobo.robot_builder- Build robot configs from URDFcurobo.viewer- Visualization (Rerun, Viser)curobo.types- Common data types (JointState, Pose, etc.)