curobo.model_predictive_control module

Model predictive control module.

This module provides model predictive control for real-time trajectory tracking with warm-start optimization and obstacle avoidance.

Example

from curobo import ModelPredictiveControl, ModelPredictiveControlCfg
from curobo.types import JointState, Pose

# Setup MPC
config = ModelPredictiveControlCfg.create(
    robot="franka.yml",
    scene_model="scene.yml",
    optimization_dt=0.02,
    interpolation_steps=4,
)
mpc = ModelPredictiveControl(config)

# Setup problem with current state
current_state = JointState.from_position([0.0, -0.5, 0.0, -2.0, 0.0, 1.5, 0.0])
mpc.setup(current_state)

# Update goal poses
target_pose = Pose(position=[0.5, 0.0, 0.5], quaternion=[1, 0, 0, 0])
mpc.update_goal_tool_poses({"ee_link": target_pose})

# Control loop
while not done:
    current_state = get_robot_state()
    result = mpc.optimize_action_sequence(current_state)
    for action in result.action_sequence:
        robot.execute(action)
ModelPredictiveControl

alias of curobo._src.solver.solver_mpc.MPCSolver

ModelPredictiveControlCfg

alias of curobo._src.solver.solver_mpc_cfg.MPCSolverCfg

ModelPredictiveControlResult

alias of curobo._src.solver.solver_mpc_result.MPCSolverResult