robotoc
robotoc - efficient ROBOT Optimal Control solvers
|
Split backward correction. More...
#include <unconstr_split_backward_correction.hpp>
Public Member Functions | |
UnconstrSplitBackwardCorrection (const Robot &robot) | |
Construct split backward correction. More... | |
UnconstrSplitBackwardCorrection () | |
Default constructor. More... | |
~UnconstrSplitBackwardCorrection () | |
Destructor. More... | |
UnconstrSplitBackwardCorrection (const UnconstrSplitBackwardCorrection &)=default | |
Default copy constructor. More... | |
UnconstrSplitBackwardCorrection & | operator= (const UnconstrSplitBackwardCorrection &)=default |
Default copy operator. More... | |
UnconstrSplitBackwardCorrection (UnconstrSplitBackwardCorrection &&) noexcept=default | |
Default move constructor. More... | |
UnconstrSplitBackwardCorrection & | operator= (UnconstrSplitBackwardCorrection &&) noexcept=default |
Default move assign operator. More... | |
void | coarseUpdate (const Eigen::MatrixXd &aux_mat_next, const double dt, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const SplitSolution &s, SplitSolution &s_new) |
Coarse updates the split solution of this time stage. More... | |
void | coarseUpdate (const Eigen::Block< Eigen::MatrixXd > &aux_mat_next, const double dt, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const SplitSolution &s, SplitSolution &s_new) |
Coarse updates the split solution of this time stage. More... | |
void | coarseUpdate (const double dt, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const SplitSolution &s, SplitSolution &s_new) |
Coarse updates the split solution of this time stage. Auxiliary matrix is assumed to zero matrix, i.e., terminal stage. More... | |
const Eigen::Block< const Eigen::MatrixXd > | auxMat () const |
Auxiliary matrix of this time stage. More... | |
void | backwardCorrectionSerial (const SplitSolution &s_next, const SplitSolution &s_new_next, SplitSolution &s_new) |
Performs the serial part of the backward correction. More... | |
void | backwardCorrectionParallel (SplitSolution &s_new) |
Performs the parallel part of the backward correction. More... | |
void | forwardCorrectionSerial (const SplitSolution &s_prev, const SplitSolution &s_new_prev, SplitSolution &s_new) |
Performs the serial part of the forward correction. More... | |
void | forwardCorrectionParallel (SplitSolution &s_new) |
Performs the parallel part of the forward correction. More... | |
Static Public Member Functions | |
static void | computeDirection (const SplitSolution &s, const SplitSolution &s_new, SplitDirection &d) |
Computes the direction from the results of the forward correction. More... | |
Split backward correction.
robotoc::UnconstrSplitBackwardCorrection::UnconstrSplitBackwardCorrection | ( | const Robot & | robot | ) |
Construct split backward correction.
[in] | robot | Robot model. |
robotoc::UnconstrSplitBackwardCorrection::UnconstrSplitBackwardCorrection | ( | ) |
Default constructor.
robotoc::UnconstrSplitBackwardCorrection::~UnconstrSplitBackwardCorrection | ( | ) |
Destructor.
|
default |
Default copy constructor.
|
defaultnoexcept |
Default move constructor.
const Eigen::Block< const Eigen::MatrixXd > robotoc::UnconstrSplitBackwardCorrection::auxMat | ( | ) | const |
Auxiliary matrix of this time stage.
void robotoc::UnconstrSplitBackwardCorrection::backwardCorrectionParallel | ( | SplitSolution & | s_new | ) |
Performs the parallel part of the backward correction.
[in,out] | s_new | Coarse updated split solution of this time stage. |
void robotoc::UnconstrSplitBackwardCorrection::backwardCorrectionSerial | ( | const SplitSolution & | s_next, |
const SplitSolution & | s_new_next, | ||
SplitSolution & | s_new | ||
) |
Performs the serial part of the backward correction.
[in] | s_next | Split solution of the next time stage. |
[in] | s_new_next | Coarse updated split solution of the next time stage. |
[in,out] | s_new | Coarse updated split solution of this time stage. |
void robotoc::UnconstrSplitBackwardCorrection::coarseUpdate | ( | const double | dt, |
const SplitKKTMatrix & | kkt_matrix, | ||
const SplitKKTResidual & | kkt_residual, | ||
const SplitSolution & | s, | ||
SplitSolution & | s_new | ||
) |
Coarse updates the split solution of this time stage. Auxiliary matrix is assumed to zero matrix, i.e., terminal stage.
[in] | dt | Time stage of time stage. |
[in,out] | kkt_matrix | Split KKT matrix of this time stage. |
[in] | kkt_residual | Split KKT residual of this time stage. |
[in] | s | Split solution of this time stage. |
[in,out] | s_new | Coarse updated split solution of this time stage. |
void robotoc::UnconstrSplitBackwardCorrection::coarseUpdate | ( | const Eigen::Block< Eigen::MatrixXd > & | aux_mat_next, |
const double | dt, | ||
const SplitKKTMatrix & | kkt_matrix, | ||
const SplitKKTResidual & | kkt_residual, | ||
const SplitSolution & | s, | ||
SplitSolution & | s_new | ||
) |
Coarse updates the split solution of this time stage.
[in] | aux_mat_next | Auxiliary matrix of the next time stage. |
[in] | dt | Time stage of time stage. |
[in,out] | kkt_matrix | Split KKT matrix of this time stage. |
[in] | kkt_residual | Split KKT residual of this time stage. |
[in] | s | Split solution of this time stage. |
[in,out] | s_new | Coarse updated split solution of this time stage. |
void robotoc::UnconstrSplitBackwardCorrection::coarseUpdate | ( | const Eigen::MatrixXd & | aux_mat_next, |
const double | dt, | ||
const SplitKKTMatrix & | kkt_matrix, | ||
const SplitKKTResidual & | kkt_residual, | ||
const SplitSolution & | s, | ||
SplitSolution & | s_new | ||
) |
Coarse updates the split solution of this time stage.
[in] | aux_mat_next | Auxiliary matrix of the next time stage. |
[in] | dt | Time stage of time stage. |
[in,out] | kkt_matrix | Split KKT matrix of this time stage. |
[in] | kkt_residual | Split KKT residual of this time stage. |
[in] | s | Split solution of this time stage. |
[in,out] | s_new | Coarse updated split solution of this time stage. |
|
static |
Computes the direction from the results of the forward correction.
[in] | s | Split solution of this time stage. |
[in] | s_new | Coarse updated split solution of this time stage. |
[in,out] | d | Split direction of this time stage. |
void robotoc::UnconstrSplitBackwardCorrection::forwardCorrectionParallel | ( | SplitSolution & | s_new | ) |
Performs the parallel part of the forward correction.
[in,out] | s_new | Coarse updated split solution of this time stage. |
void robotoc::UnconstrSplitBackwardCorrection::forwardCorrectionSerial | ( | const SplitSolution & | s_prev, |
const SplitSolution & | s_new_prev, | ||
SplitSolution & | s_new | ||
) |
Performs the serial part of the forward correction.
[in] | s_prev | Split solution of the previous time stage. |
[in] | s_new_prev | Coarse updated split solution of the previous time stage. |
[in,out] | s_new | Coarse updated split solution of this time stage. |
|
default |
Default copy operator.
|
defaultnoexcept |
Default move assign operator.