Example RTD Planner Implementation of ARMOUR
ArmourPlanner and these related components define the ARMOUR planner as described by Michaux et. al. in https://arxiv.org/abs/2301.13308. This planner requires the use of the matching robust controller. Currently a kinematics-only minimal version of this is implemented.
The Base ARMOUR Planner
- class armour.ArmourPlanner.ArmourPlanner(trajOptProps: TrajOptProps, robot: ArmourAgentInfo, **options)[source]
Bases:
RtdPlanner
,Options
- static defaultoptions() dict [source]
Abstract static method which needs to be implemented to provide the default options for any given class. Should return a dict
- planTrajectory(robotState: EntityState, worldState: WorldState, waypoint) tuple[rtd.planner.trajectory.Trajectory.Trajectory, dict] [source]
Then on each waypoint, we call for a trajectory plan: Use RTD to solve for a trajectory and return either the parameters or invalid signal (continue).
Loops over each RtdTrajOpt instance (thus, each trajectory type) with the given RobotState, WorldState, Waypoint, and initial guess.
From the results, selects the best valid Trajectory, otherwise return an invalid trajectory which will throw when attempting to set the new trajectory, ensuring the old one continues
Reachable Set Generation
Generation of reachable sets are implemented as constraint generating classes, with the following classes generating instances for the constraints.
JointReachableSetsOnline This does the online computation of joint reachable sets. |
|
ForwardOccupancy This acts as a generator for a single instance of a ForwardReachableSet, and return FOInstance |
|
InputReachableSet This generates the upper and lower bound reachable sets on the input, and creates an IRSInstance object |
This is just an individual instance of an original ARMTD JRS |
|
This is just an individual instance of joint limit set set from armour |
|
JLSInstance This is just an individual instance of joint limit set set from armour |
|
This is just an individual instance of input reachable set from armour |
Trajectory Types and Factory
The original ArmTD trajectory with piecewise accelerations |
|