Autoware.Auto
nlp_adapters.hpp File Reference
#include <common/types.hpp>
#include <vector>
#include <string>
#include "configuration.hpp"
#include "parking_planner_types.hpp"
#include "bicycle_model.hpp"
#include "geometry.hpp"
Include dependency graph for nlp_adapters.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  autoware::motion::planning::parking_planner::NLPCostWeights< T >
 
class  autoware::motion::planning::parking_planner::NLPObstacleStageVariables< T >
 Class used to describe the additional dual variables required for each. More...
 
class  autoware::motion::planning::parking_planner::NLPObstacle< T >
 Class used to represent an obstacle with the relevant data and conversions for the NLP solver. The idea is that this can be instantiated by the solver using MX as a template parameter to build constraints, then again using a concrete scalar type to call the solver with. More...
 
struct  autoware::motion::planning::parking_planner::SerializedVariables< T >
 

Namespaces

 autoware
 This file defines the lanelet2_map_provider_node class.
 
 autoware::motion
 This namespace is for motion planning, motion models, and related functionality.
 
 autoware::motion::planning
 
 autoware::motion::planning::parking_planner
 Classes and functionality for planning parking maneuvers.
 

Functions

template<typename T >
SerializedVariables< T > autoware::motion::planning::parking_planner::assemble_variable_vector_and_bounds (const Trajectory< T > &trajectory, const std::vector< NLPObstacle< T >> &obstacles, const VehicleState< float64_t > &lower_state_bounds, const VehicleState< float64_t > &upper_state_bounds, const VehicleCommand< float64_t > &lower_command_bounds, const VehicleCommand< float64_t > &upper_command_bounds)
 Function to assemble the variable vector for the NLP from given states and commands. This is used in both the solver generation for specifying how the variables are ordered as well as when calling the solver because it will expect the initial guess in the same format. The adapter here serves as a single source of truth for how the serialization is to be done. More...
 
template<typename T >
Trajectory< float64_t > autoware::motion::planning::parking_planner::disassemble_variable_vector (const std::vector< T > &variable_vector, const std::size_t horizon_length)
 Helper function to turn a serialized variable vector into a structured Trajectory object. More...
 
template<typename T >
std::vector< T > autoware::motion::planning::parking_planner::assemble_parameter_vector (const VehicleState< T > &current_state, const VehicleState< T > &goal_state, const BicycleModelParameters< T > &model_parameters, const std::vector< NLPObstacle< T >> &obstacles, const NLPCostWeights< T > &cost_weights)
 Helper function to turn the inputs to an NLP solve into a flat vector of scalars for use by the CasADi-interfaced solver. More...
 

Variables

constexpr auto autoware::motion::planning::parking_planner::ARTIFICIAL_DUAL_MULTIPLIER_BOUND = 1.0e4
 Since we need upper and lower bounds in the constructs used here, but some variables do not have clearly defined upper bounds, we introduce an artificial upper bound number that is "large enough to never matter". The value has been determined experimentally to work - picking this value too small will lead to the problem no longer being mathematically correct, making it too large will lead to numerical difficulties. More...