Class MPCOptimizer

Class Documentation

class MPCOptimizer

A MPC Optimizer class.

Public Functions

MPCOptimizer()
~MPCOptimizer()

Destructor.

Eigen::Vector3d kinematic_model(const Eigen::Vector3d &x, const Eigen::Vector3d &q, double v, double w, double dt)

Kinematic model for a particle used by optmizer to stimate final position.

Parameters:
  • x – Eigen::Vector3d Initial position for robot (x,y,z)

  • q – Eigen::Vector3d Initial angel for robot (roll, pitch , yaw)

  • v – double lineal velocity

  • w – double angular velocity

  • dt – double differential time used for integration

Returns:

Eigen::Vector3d Final state for robot (x,y,yaw)

double cost_function(const std::vector<double> &u, std::vector<double> &grad, void *data)

Wrap for real cost function.

Parameters:
  • u – std::vector<double> Velocity vector to be optimized

  • grad – std::vector<double> gradient values for optimizer. It is NOT used for this implementation.

  • data – MPCParameter pointer with parameters used by optimizer

Returns:

double cost value used by nlOpt in internal callback

Public Static Functions

static double nlopt_cost_callback(const std::vector<double> &x, std::vector<double> &grad, void *data)

Real cost function with static propierties.

Parameters:
  • u – std::vector<double> Velocity vector to be optimized

  • grad – std::vector<double> gradient values for optimizer. It is NOT used for this implementation.

  • data – MPCParameter pointer with parameters used by optimizer

Returns:

double cost value used by nlOpt in internal callback