#include <lateralplanner.h>
Public Types | |
typedef adore::mad::LQ_OC_single_shooting< N, R, K, P > | TOffsetSolver |
typedef NominalPlannerInformationSet< N+1, 2 > | TInformationSet |
typedef adore::mad::LLinearPiecewiseFunctionM< double, N+R > | TLongitudinalPlan |
typedef adore::mad::LLinearPiecewiseFunctionM< double, N+R > | TLateralPlan |
Public Member Functions | |
LateralPlanner (adore::view::ALane *lfv, adore::params::APLateralPlanner *aplat, adore::params::APVehicle *apvehicle, adore::params::APTrajectoryGeneration *aptrajectory) | |
void | setPlanningHorizon (double Tend) |
TInformationSet & | getInformationSet () |
TOffsetSolver & | getOffsetSolver () |
RoadCoordinateConverter & | getRoadCoordinateConverter () |
void | compute (const VehicleMotionState9d &initial_state, TLongitudinalPlan *longitudinal_plan, double t0_offset, double s0_offset) |
TLateralPlan & | getLateralPlan () |
double | getTend () const |
bool | hasValidPlan () const |
const SetPointRequest * | getSetPointRequest () const |
double | getCPUTime () const |
Static Public Attributes | |
static const int | N = 3 |
static const int | R = 1 |
Protected Attributes | |
TInformationSet | info_ |
Private Member Functions | |
void | init_offset_default_cost () |
void | initialize (double Tend) |
void | prepare_offset_computation (TLongitudinalPlan *longitudinal_plan, double t0_offset, double s0_offset) |
bool | update_guard (double &target, double value) |
void | update_offset_parameters () |
Private Attributes | |
TOffsetSolver | offset_solver_ |
double | n0_ |
double | dn0_ |
double | ddn0_ |
double | T_ [K+1] |
double | T_end_ |
time steps, incl. 0 at 0 More... | |
RoadCoordinateConverter | roadCoordinates_ |
end time of plan, defines planning horizon as [0,T_end_] More... | |
adore::params::APLateralPlanner * | aplat_ |
adore::params::APTrajectoryGeneration * | aptraj_ |
adore::params::APVehicle * | apvehicle_ |
SetPointRequest | spr_ |
bool | valid_ |
the result as a set-point request More... | |
Plans lateral components of trajectories in a road relative coordinate system in 2 steps, using qpOASES. The longitudinal trajectory is assumed a given. In step 1 the lateral motion of a point mass is optimized. In step 2 the detailed vehicle dynamics is recovered by solving an initial value problem for the zero dynamics of the vehile model. Template parameter K defines number of time steps considered during planning, K*P is an increased number of time steps gained by interpolation. The optimization problem in step 1 is formulated as linear-quadratic with box constraints for integrator chains with input at the third derivative. All constraints and references for the optimization problems have to be externally supplied via the NominalPlannerInformationSet interface.
typedef NominalPlannerInformationSet<N+1,2> adore::fun::LateralPlanner< K, P >::TInformationSet |
typedef adore::mad::LLinearPiecewiseFunctionM<double,N+R> adore::fun::LateralPlanner< K, P >::TLateralPlan |
typedef adore::mad::LLinearPiecewiseFunctionM<double,N+R> adore::fun::LateralPlanner< K, P >::TLongitudinalPlan |
typedef adore::mad::LQ_OC_single_shooting<N,R,K,P> adore::fun::LateralPlanner< K, P >::TOffsetSolver |
|
inline |
|
inline |
compute - try to compute a trajectory according to given constraints and objective
|
inline |
getCPUTime - return the time require for trajectory planning in seconds
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
getSetPointRequest - return computed trajectory in the form of a SetPointRequest
|
inline |
|
inline |
hasValidPlan - return true, if a trajectory was computed, which satisfies given constraints
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
prepare_offset_computation - sets up the constraints for the lateral optimization problem
|
inline |
|
inlineprivate |
|
inlineprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protected |
|
static |
|
private |
|
private |
|
static |
|
private |
end time of plan, defines planning horizon as [0,T_end_]
|
private |
|
private |
|
private |
time steps, incl. 0 at 0
|
private |
the result as a set-point request