Struct NonlinearOptimizationParameters

Struct Documentation

struct NonlinearOptimizationParameters

Class holding all important parameters for nonlinear optimization.

Public Types

enum TimeAllocMethod

Values:

kSquaredTime
kRichterTime
kMellingerOuterLoop
kSquaredTimeAndConstraints
kRichterTimeAndConstraints
kUnknown

Public Members

double f_abs = -1

Default parameters should be reasonable enough to use without further fine-tuning.

Stopping criteria, if objective function changes less than absolute value. Disabled if negative.

double f_rel = 0.05

Stopping criteria, if objective function changes less than relative value.

Disabled if negative.

double x_rel = -1

Stopping criteria, if state changes less than relative value.

Disabled if negative.

double x_abs = -1

Stopping criteria, if state changes less than absolute value.

Disabled if negative.

double initial_stepsize_rel = 0.1

Determines a fraction of the initial guess as initial step size.

Heuristic value if negative.

double equality_constraint_tolerance = 1.0e-3

Absolute tolerance, within an equality constraint is considered as met.

double inequality_constraint_tolerance = 0.1

Absolute tolerance, within an inequality constraint is considered as met.

int max_iterations = 3000

Maximum number of iterations. Disabled if negative.

double time_penalty = 500.0

Penalty for the segment time.

nlopt::algorithm algorithm = nlopt::LN_BOBYQA

Optimization algorithm used by nlopt, see http:///ab-initio.mit.edu/wiki/index.php/NLopt_Algorithms Previous value was nlopt::LN_SBPLX, but we found that BOBYQA has slightly better convergence and lower run-time in the unit tests.

int random_seed = 0

Random seed, if an optimization algorithm involving random numbers is used (e.g.

nlopt::GN_ISRES). If set to a value < 0, a “random” (getTimeofday) value for the seed is chosen.

bool use_soft_constraints = true

Decide whether to use soft constraints.

double soft_constraint_weight = 100.0

Weights the relative violation of a soft constraint.

mav_trajectory_generation::NonlinearOptimizationParameters::TimeAllocMethod time_alloc_method = kSquaredTimeAndConstraints
bool print_debug_info = false
bool print_debug_info_time_allocation = false