centroidal_control_collection
|
Go to the documentation of this file.
7 #include <SpaceVecAlg/SpaceVecAlg>
9 #include <qp_solver_collection/QpSolverCollection.h>
44 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
59 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
62 Eigen::Vector2d
pos = Eigen::Vector2d::Zero();
65 Eigen::Vector2d
vel = Eigen::Vector2d::Zero();
79 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
82 Eigen::Vector2d
pos = Eigen::Vector2d::Zero();
85 Eigen::Vector2d
vel = Eigen::Vector2d::Zero();
105 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
125 WeightParam(
const Eigen::Vector2d & _linear_momentum_integral = Eigen::Vector2d::Constant(1.0),
126 const Eigen::Vector2d & _linear_momentum = Eigen::Vector2d::Constant(0.0),
127 const Eigen::Vector2d & _angular_momentum = Eigen::Vector2d::Constant(1.0),
128 double _force = 1e-5)
137 Eigen::VectorXd
inputWeight(
int total_input_dim)
const;
202 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
215 QpSolverCollection::QpSolverType qp_solver_type = QpSolverCollection::QpSolverType::Any);
225 const std::function<
RefData(
double)> & ref_data_func,
227 double current_time);
231 Eigen::VectorXd
procOnce(
const std::vector<std::shared_ptr<_StateSpaceModel>> & model_list,
233 const Eigen::VectorXd & ref_output_seq);
int horizon_steps_
Number of steps in horizon.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::Vector2d pos
CoM position [m].
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::Vector2d pos
CoM position [m].
std::pair< double, double > force_range_
Min/max ridge force [N].
Model(double mass, const MotionParam &motion_param, int output_dim=0)
Constructor.
std::shared_ptr< QpSolverCollection::QpSolver > qp_solver_
QP solver.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::Vector2d linear_momentum_integral
Linear momentum integral weight.
StateDimVector toOutput(double mass) const
Get reference output of state-space model.
Eigen::VectorXd procOnce(const std::vector< std::shared_ptr< _StateSpaceModel >> &model_list, const StateDimVector ¤t_x, const Eigen::VectorXd &ref_output_seq)
Process one step.
double force
Force weight.
Eigen::VectorXd planOnce(const std::function< MotionParam(double)> &motion_param_func, const std::function< RefData(double)> &ref_data_func, const InitialParam &initial_param, double current_time)
Plan one step.
static constexpr int state_dim_
State dimension.
static constexpr int outputDim()
Get reference output size.
Eigen::VectorXd outputWeight(size_t seq_len) const
Get output weight vector.
Eigen::Vector2d vel
CoM linear velocity [m/s].
MotionParam motion_param_
Motion parameter.
_StateSpaceModel::StateDimVector StateDimVector
Type of state vector.
Eigen::Matrix< double, StateDim, 1 > StateDimVector
Type of state vector.
double horizon_dt_
Discretization timestep in horizon [sec].
WeightParam weight_param_
Objective weight parameter.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW double com_z
CoM z position [m].
Eigen::Vector2d vel
CoM linear velocity [m/s].
EIGEN_MAKE_ALIGNED_OPERATOR_NEW LinearMpcXY(double mass, double horizon_dt, int horizon_steps, const WeightParam &weight_param=WeightParam(), QpSolverCollection::QpSolverType qp_solver_type=QpSolverCollection::QpSolverType::Any)
Constructor.
Eigen::Vector2d angular_momentum
Angular momentum [kg m^2/s].
double mass_
Robot mass [kg].
QpSolverCollection::QpCoeff qp_coeff_
QP coefficients.
Eigen::VectorXd inputWeight(int total_input_dim) const
Get input weight vector.
double total_force_z
Total z force [N].
Linear MPC of translational and rotational x,y-component motion considering predefined z-component mo...
std::vector< std::shared_ptr< ForceColl::Contact > > contact_list
Contact list.
Eigen::Vector2d linear_momentum
Linear momentum weight.
Eigen::Vector2d angular_momentum
Angular momentum [kg m^2/s].
Eigen::Vector2d angular_momentum
Angular momentum weight.
WeightParam(const Eigen::Vector2d &_linear_momentum_integral=Eigen::Vector2d::Constant(1.0), const Eigen::Vector2d &_linear_momentum=Eigen::Vector2d::Constant(0.0), const Eigen::Vector2d &_angular_momentum=Eigen::Vector2d::Constant(1.0), double _force=1e-5)
Constructor.
StateDimVector toState(double mass) const
Get state of state-space model.