Python SDK /fastsim.planner

fastsim.planner

3 classes

Abstract planner interface for motion planning backends. Implement Planner to integrate a custom IK/FK/motion-plan solver. CuroboPlanner provides a ready-to-use GPU-accelerated implementation.

class

Planner

abstract7 methods
fastsim.planner.planner.PlannerextendsABC

Abstract base class defining the planning interface used by MotionPlanController.

Subclass Planner and implement all abstract methods to connect a custom motion planning library. Instances are created per-robot and managed by the framework.

solve_ikmethod
def solve_ik(self, base_frame_ee_pose: list, is_goal_set: bool = False, retract_joint_position: list | None = None)dict

Solve inverse kinematics for a target EE pose.

NameTypeDefaultDescription
base_frame_ee_poselistTarget EE pose [x, y, z, qw, qx, qy, qz].
is_goal_setoptboolFalseWhether a motion goal has already been set in the planner state.
retract_joint_positionoptlist|NoneNoneOptional retract seed for singularity avoidance.
dict — Joint position solution dict.
solve_fkmethod
def solve_fk(self, joint_positions: list, joint_names: list)dict

Compute forward kinematics for a joint configuration.

NameTypeDefaultDescription
joint_positionslistJoint position values.
joint_nameslistCorresponding joint names.
dict — End-effector pose dict.
gen_motion_planmethod
def gen_motion_plan(self, start_state: dict, base_frame_ee_pose: list, is_goal_set: bool = False)dict

Generate a collision-free joint trajectory.

NameTypeDefaultDescription
start_statedictStarting joint state dict.
base_frame_ee_poselistGoal EE pose.
is_goal_setoptboolFalseWhether the planner goal is pre-set.
dict — Planned trajectory dict.
attach_objectsmethod
def attach_objects(self, joint_state: dict, object_prim_paths: list, link_name: str, attach_offset: list)None

Register attached objects in the planner collision model.

NameTypeDefaultDescription
joint_statedictCurrent joint state at time of attachment.
object_prim_pathslistUSD prim paths of objects to attach.
link_namestrRobot link name for the attachment.
attach_offsetlistPose offset [x, y, z, qw, qx, qy, qz] from the link.
detach_objectsmethod
def detach_objects(self, link_name: str)None

Remove attached objects from the planner collision model.

NameTypeDefaultDescription
link_namestrThe link name from which to detach.
get_plannable_joint_namesmethod
def get_plannable_joint_names(self)list

Return the list of joints this planner controls.

list — List of plannable joint name strings.
get_locked_jointmethod
def get_locked_joint(self)list

Return joints excluded from planning (locked).

list — List of locked joint name strings.
class

CuroboPlanner

2 methods
fastsim.planner.curobo_planner.CuroboPlannerextendsPlanner

GPU-accelerated motion planner backed by the cuRobo library.

CuroboPlanner implements all Planner abstract methods using cuRobo's batched IK, FK, and motion-generation solvers. Requires a CUDA-capable GPU.

get_world_representationmethod
def get_world_representation(self)Any

Return the cuRobo world collision model (voxel or mesh).

Any — cuRobo world representation object.
get_robot_representationmethod
def get_robot_representation(self)Any

Return the cuRobo robot self-collision model.

Any — cuRobo robot representation object.
Inherited fromPlanner7
solve_ikmethod
def solve_ik(self, base_frame_ee_pose: list, is_goal_set: bool = False, retract_joint_position: list | None = None)dict

Solve inverse kinematics for a target EE pose.

solve_fkmethod
def solve_fk(self, joint_positions: list, joint_names: list)dict

Compute forward kinematics for a joint configuration.

gen_motion_planmethod
def gen_motion_plan(self, start_state: dict, base_frame_ee_pose: list, is_goal_set: bool = False)dict

Generate a collision-free joint trajectory.

attach_objectsmethod
def attach_objects(self, joint_state: dict, object_prim_paths: list, link_name: str, attach_offset: list)None

Register attached objects in the planner collision model.

detach_objectsmethod
def detach_objects(self, link_name: str)None

Remove attached objects from the planner collision model.

get_plannable_joint_namesmethod
def get_plannable_joint_names(self)list

Return the list of joints this planner controls.

get_locked_jointmethod
def get_locked_joint(self)list

Return joints excluded from planning (locked).

class

PlannerFactory

static-only1 method
fastsim.planner.planner_factory.PlannerFactory

Static factory for creating Planner instances from a config dict.

createstaticmethod
@staticmethod def create(robot_name: str, config: dict)Planner

Instantiate a Planner for a given robot name and config.

NameTypeDefaultDescription
robot_namestrName of the robot this planner will control.
configdictPlanner configuration dict specifying type and parameters.
Planner — Constructed Planner instance.