RTD Planner Interfaces and Base Classes

The core components to any mid-level RTD Planner.

The RTD Planner

This is an interface to specify the midlevel planner. It’s written to be relatively isolated from the rest of the simulation package.

class rtd.planner.RtdPlanner[source]

Bases: object

This class specifies the overall planner

It should set up anything for any special type of RTD planner. Construction of a special version of this should do the following:

  • Construct OptimizationEngine(s) with parameters

  • Construct ReachableSets for each reachable set and trajectory type

  • Construct some Objective object for the problem at hand

  • Determine/set RtdTrajOpt parameters and create it for each trajectory type

Then on each waypoint, we call for a trajectory plan using planTrajectory. That will use RTD to solve for a trajectory

abstract planTrajectory(robotState: EntityState, worldState: WorldState, waypoint) Trajectory | None[source]

Generate a trajectory for the given states and waypoint.

Loops over each RtdTrajOpt instance (thus, each trajectory type) with the given RobotState, WorldState, Waypoint, and initial guess if wanted

From the results, this should select the best valid Trajectory. Otherwise it should return an empty or invalid trajectory which will throw when attempting to set the new trajectory, ensuring the old one continues - or something like that.

Parameters:
  • robotState – EntityState: Current state of the robot

  • worldState – WorldState: Current state of the world

  • waypoint – The waypoint to consider for the trajopt problem(s)

Returns:

A trajectory object, which may or may not be valid. If no plans are found, this may alternately return an empty value.

Return type:

Trajectory or None

Reachable Sets Generation Interfaces

ReachSetGenerator

Base class for the generation of reacheable sets for the planner

ReachSetInstance

Base class for a single reachable set generated for some state + parameters

Trajectory Interfaces

Trajectory

Base class for a parameterized trajectory

InvalidTrajectory

An exception thrown when validate() of a trajectory fails

TrajectoryFactory

Base class for the Trajectory factory object

TrajectoryContainer

BadTrajectoryException

Trajectory Optimization Interfaces & Components

TrajOptProps

A NamedTuple for storing consistent properties we use across RTD for trajectory optimization.

Objective

Base interface for creating the objective to optimize for the trajopt problem

GenericArmObjective

OptimizationEngine

Base class for any sort of nonlinear optimizer used

ScipyOptimizationEngine

Optimization Engine based on scipy.optimize.fsolve

RtdTrajOpt

Core trajectory optimization routine for RTD