robotoc
robotoc - efficient ROBOT Optimal Control solvers
Loading...
Searching...
No Matches
unconstr_line_search.hpp
Go to the documentation of this file.
1#ifndef ROBOTOC_UNCONSTR_LINE_SEARCH_HPP_
2#define ROBOTOC_UNCONSTR_LINE_SEARCH_HPP_
3
4#include <vector>
5
6#include "Eigen/Core"
7
15#include "robotoc/ocp/ocp.hpp"
20
21
22namespace robotoc {
23
30public:
37 const LineSearchSettings& settings=LineSearchSettings());
38
43
48
53
58
63
67 UnconstrLineSearch& operator=(UnconstrLineSearch&&) noexcept = default;
68
81 aligned_vector<Robot>& robots,
82 const std::vector<GridInfo>& time_discretization,
83 const Eigen::VectorXd& q, const Eigen::VectorXd& v,
84 const Solution& s, const Direction& d,
85 const double max_primal_step_size);
86
99 aligned_vector<Robot>& robots,
100 const std::vector<GridInfo>& time_discretization,
101 const Eigen::VectorXd& q, const Eigen::VectorXd& v,
102 const Solution& s, const Direction& d,
103 const double max_primal_step_size);
104
109
110private:
111 LineSearchFilter filter_;
112 LineSearchSettings settings_;
115 Solution s_trial_;
116 KKTResidual kkt_residual_;
117
118};
119
120} // namespace robotoc
121
122#endif // ROBOTOC_UNCONSTR_LINE_SEARCH_HPP_
Filter of the line search.
Definition: line_search_filter.hpp:14
Dynamics and kinematics model of robots. Wraps pinocchio::Model and pinocchio::Data....
Definition: robot.hpp:32
Backward correction for optimal control problems of unconstrained rigid-body systems.
Definition: unconstr_backward_correction.hpp:33
Direct multiple shooting method of optimal control problems of unconstrained rigid-body systems.
Definition: unconstr_direct_multiple_shooting.hpp:31
Line search for optimal control problems for unconstrained rigid-body systems.
Definition: unconstr_line_search.hpp:29
double computeStepSize(const UnconstrDirectMultipleShooting &dms, aligned_vector< Robot > &robots, const std::vector< GridInfo > &time_discretization, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Solution &s, const Direction &d, const double max_primal_step_size)
Compute primal step size by fliter line search method.
UnconstrLineSearch(const OCP &ocp, const LineSearchSettings &settings=LineSearchSettings())
Construct a line search.
UnconstrLineSearch(const UnconstrLineSearch &)=default
Default copy constructor.
UnconstrLineSearch()
Default constructor.
void clearHistory()
Clear the line search filter.
UnconstrLineSearch & operator=(const UnconstrLineSearch &)=default
Default copy assign operator.
~UnconstrLineSearch()=default
Default destructor.
UnconstrLineSearch(UnconstrLineSearch &&) noexcept=default
Default move constructor.
Definition: constraint_component_base.hpp:17
aligned_vector< SplitSolution > Solution
Solution to the optimal control problem.
Definition: solution.hpp:16
aligned_vector< SplitDirection > Direction
Newton direction of the solution to the optimal control problem.
Definition: direction.hpp:16
std::vector< T, Eigen::aligned_allocator< T > > aligned_vector
std vector with Eigen::aligned_allocator.
Definition: aligned_vector.hpp:14
aligned_vector< SplitKKTResidual > KKTResidual
The KKT residual of the optimal control problem.
Definition: kkt_residual.hpp:16
Grid information.
Definition: grid_info.hpp:24
Settings for the line search.
Definition: line_search_settings.hpp:22
The optimal control problem.
Definition: ocp.hpp:22