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
Base class for the generation of reacheable sets for the planner |
|
Base class for a single reachable set generated for some state + parameters |
Trajectory Interfaces
Base class for a parameterized trajectory |
|
An exception thrown when validate() of a trajectory fails |
|
Base class for the Trajectory factory object |
|
Trajectory Optimization Interfaces & Components
A NamedTuple for storing consistent properties we use across RTD for trajectory optimization. |
|
Base interface for creating the objective to optimize for the trajopt problem |
|
Base class for any sort of nonlinear optimizer used |
|
Optimization Engine based on scipy.optimize.fsolve |
|
Core trajectory optimization routine for RTD |