iDynTree::optimalcontrol::OptimalControlProblem class

Constructors, destructors, conversion operators

OptimalControlProblem()
~OptimalControlProblem()
OptimalControlProblem(const OptimalControlProblem& other) deleted

Public functions

auto setTimeHorizon(double startingTime, double finalTime) -> bool
auto initialTime() const -> double
auto finalTime() const -> double
auto setDynamicalSystemConstraint(std::shared_ptr<DynamicalSystem> dynamicalSystem) -> bool
auto setDynamicalSystemConstraint(std::shared_ptr<LinearSystem> linearSystem) -> bool
auto dynamicalSystem() const -> const std::weak_ptr<DynamicalSystem>
auto systemIsLinear() const -> bool
auto addGroupOfConstraints(std::shared_ptr<ConstraintsGroup> groupOfConstraints) -> bool
auto removeGroupOfConstraints(const std::string& name) -> bool
auto addConstraint(std::shared_ptr<Constraint> newConstraint) -> bool
auto addConstraint(std::shared_ptr<LinearConstraint> newConstraint) -> bool
auto removeConstraint(const std::string& name) -> bool
auto countConstraints() const -> unsigned int
auto countLinearConstraints() const -> unsigned int
auto getConstraintsDimension() const -> unsigned int
auto listConstraints() const -> const std::vector<std::string>
auto listGroups() const -> const std::vector<std::string>
auto getConstraintsTimeRanges() const -> std::vector<TimeRange>&
auto getLinearConstraintsIndeces() const -> std::vector<size_t>&
auto addMayerTerm(double weight, std::shared_ptr<Cost> cost) -> bool
auto addMayerTerm(double weight, std::shared_ptr<QuadraticCost> quadraticCost) -> bool
auto addMayerTerm(double weight, std::shared_ptr<L2NormCost> quadraticCost) -> bool
auto addMayerTerm(double weight, std::shared_ptr<LinearCost> linearCost) -> bool
auto addLagrangeTerm(double weight, std::shared_ptr<Cost> cost) -> bool
auto addLagrangeTerm(double weight, std::shared_ptr<QuadraticCost> quadraticCost) -> bool
auto addLagrangeTerm(double weight, std::shared_ptr<L2NormCost> quadraticCost) -> bool
auto addLagrangeTerm(double weight, std::shared_ptr<LinearCost> linearCost) -> bool
auto addLagrangeTerm(double weight, double startingTime, double finalTime, std::shared_ptr<Cost> cost) -> bool
auto addLagrangeTerm(double weight, double startingTime, double finalTime, std::shared_ptr<QuadraticCost> quadraticCost) -> bool
auto addLagrangeTerm(double weight, double startingTime, double finalTime, std::shared_ptr<L2NormCost> quadraticCost) -> bool
auto addLagrangeTerm(double weight, double startingTime, double finalTime, std::shared_ptr<LinearCost> linearCost) -> bool
auto addLagrangeTerm(double weight, const TimeRange& timeRange, std::shared_ptr<Cost> cost) -> bool
auto addLagrangeTerm(double weight, const TimeRange& timeRange, std::shared_ptr<QuadraticCost> quadraticCost) -> bool
auto addLagrangeTerm(double weight, const TimeRange& timeRange, std::shared_ptr<L2NormCost> quadraticCost) -> bool
auto addLagrangeTerm(double weight, const TimeRange& timeRange, std::shared_ptr<LinearCost> linearCost) -> bool
auto updateCostTimeRange(const std::string& name, double newStartingTime, double newEndTime) -> bool
auto updateCostTimeRange(const std::string& name, const TimeRange& newTimeRange) -> bool
auto removeCost(const std::string& name) -> bool
auto getCostsTimeRanges() const -> std::vector<TimeRange>&
auto hasOnlyLinearCosts() const -> bool
auto hasOnlyQuadraticCosts() const -> bool
auto setStateLowerBound(const VectorDynSize& minState) -> bool
auto setStateLowerBound(std::shared_ptr<TimeVaryingVector> minState) -> bool
auto setStateUpperBound(const VectorDynSize& maxState) -> bool
auto setStateUpperBound(std::shared_ptr<TimeVaryingVector> maxState) -> bool
auto setControlLowerBound(const VectorDynSize& minControl) -> bool
auto setControlLowerBound(std::shared_ptr<TimeVaryingVector> minControl) -> bool
auto setControlUpperBound(const VectorDynSize& maxControl) -> bool
auto setControlUpperBound(std::shared_ptr<TimeVaryingVector> maxControl) -> bool
auto setStateBoxConstraints(const VectorDynSize& minState, const VectorDynSize& maxState) -> bool
auto setStateBoxConstraints(std::shared_ptr<TimeVaryingVector> minState, std::shared_ptr<TimeVaryingVector> maxState) -> bool
auto setControlBoxConstraints(const VectorDynSize& minControl, const VectorDynSize& maxControl) -> bool
auto setControlBoxConstraints(std::shared_ptr<TimeVaryingVector> minControl, std::shared_ptr<TimeVaryingVector> maxControl) -> bool
auto getStateLowerBound(double time, VectorDynSize& minState) -> bool
auto getStateUpperBound(double time, VectorDynSize& maxState) -> bool
auto getControlLowerBound(double time, VectorDynSize& minControl) -> bool
auto getControlUpperBound(double time, VectorDynSize& maxControl) -> bool
auto costsEvaluation(double time, const VectorDynSize& state, const VectorDynSize& control, double& costValue) -> bool
auto costsFirstPartialDerivativeWRTState(double time, const VectorDynSize& state, const VectorDynSize& control, VectorDynSize& partialDerivative) -> bool
auto costsFirstPartialDerivativeWRTControl(double time, const VectorDynSize& state, const VectorDynSize& control, VectorDynSize& partialDerivative) -> bool
auto costsSecondPartialDerivativeWRTState(double time, const VectorDynSize& state, const VectorDynSize& control, MatrixDynSize& partialDerivative) -> bool
auto costsSecondPartialDerivativeWRTControl(double time, const VectorDynSize& state, const VectorDynSize& control, MatrixDynSize& partialDerivative) -> bool
auto costsSecondPartialDerivativeWRTStateControl(double time, const VectorDynSize& state, const VectorDynSize& control, MatrixDynSize& partialDerivative) -> bool
auto costsSecondPartialDerivativeWRTStateSparsity(iDynTree::optimalcontrol::SparsityStructure& stateSparsity) -> bool
auto costsSecondPartialDerivativeWRTControlSparsity(iDynTree::optimalcontrol::SparsityStructure& controlSparsity) -> bool
auto costsSecondPartialDerivativeWRTStateControlSparsity(iDynTree::optimalcontrol::SparsityStructure& stateControlSparsity) -> bool
auto constraintsEvaluation(double time, const VectorDynSize& state, const VectorDynSize& control, VectorDynSize& constraintsValue) -> bool
auto getConstraintsUpperBound(double time, double infinity, VectorDynSize& upperBound) -> bool
auto getConstraintsLowerBound(double time, double infinity, VectorDynSize& lowerBound) -> bool
auto isFeasiblePoint(double time, const VectorDynSize& state, const VectorDynSize& control) -> bool
auto constraintsJacobianWRTState(double time, const VectorDynSize& state, const VectorDynSize& control, MatrixDynSize& jacobian) -> bool
auto constraintsJacobianWRTControl(double time, const VectorDynSize& state, const VectorDynSize& control, MatrixDynSize& jacobian) -> bool
auto constraintsJacobianWRTStateSparsity(iDynTree::optimalcontrol::SparsityStructure& stateSparsity) -> bool
auto constraintsJacobianWRTControlSparsity(iDynTree::optimalcontrol::SparsityStructure& controlSparsity) -> bool
auto constraintsSecondPartialDerivativeWRTState(double time, const VectorDynSize& state, const VectorDynSize& control, const VectorDynSize& lambda, MatrixDynSize& hessian) -> bool
auto constraintsSecondPartialDerivativeWRTControl(double time, const VectorDynSize& state, const VectorDynSize& control, const VectorDynSize& lambda, MatrixDynSize& hessian) -> bool
auto constraintsSecondPartialDerivativeWRTStateControl(double time, const VectorDynSize& state, const VectorDynSize& control, const VectorDynSize& lambda, MatrixDynSize& hessian) -> bool
auto constraintsSecondPartialDerivativeWRTStateSparsity(iDynTree::optimalcontrol::SparsityStructure& stateSparsity) -> bool
auto constraintsSecondPartialDerivativeWRTControlSparsity(iDynTree::optimalcontrol::SparsityStructure& controlSparsity) -> bool
auto constraintsSecondPartialDerivativeWRTStateControlSparsity(iDynTree::optimalcontrol::SparsityStructure& stateControlSparsity) -> bool