Planning

Directory: demo/planning/ — motion planning, IK, and trajectory execution.

FastSim supports two motion planning backends:

  • CuRobo: NVIDIA GPU-accelerated planner with collision awareness
  • OMPL: Open Motion Planning Library with PyBullet collision checking (CPU-only)

CuRobo Planner

yaml
robot_cfg_dict:
  franka_panda:
    stereotype: general_robot
    asset_path: assets://robots/franka.usd
    ee_link_name: panda_hand
    use_planner: true
    planner_cfg:
      stereotype: curobo
      robot_config_file: assets://curobo/franka/franka.yml
      world_config_source: stage

OMPL Planner

yaml
robot_cfg_dict:
  franka_panda:
    stereotype: general_robot
    asset_path: assets://robots/franka.usd
    ee_link_name: panda_hand
    use_planner: true
    planner_cfg:
      stereotype: ompl
      robot_urdf_path: assets://robots/franka.urdf

OMPL works with the PyBullet backend for a fully CPU-based planning setup.

Usage in Control Thread

python
def planning_loop(sim):
    while sim.is_running():
        result = sim.motion_plan_controller.move_robot_to_ee_pose(
            "franka_panda", target_pose, sync=True
        )
        result.unwrap()

sim.add_controller_thread(planning_loop)
sim.start()