robotoc
robotoc - efficient ROBOT Optimal Control solvers
Loading...
Searching...
No Matches
joint_velocity_upper_limit.hpp
Go to the documentation of this file.
1#ifndef ROBOTOC_JOINT_VELOCITY_UPPER_LIMIT_HPP_
2#define ROBOTOC_JOINT_VELOCITY_UPPER_LIMIT_HPP_
3
4#include "Eigen/Core"
5
14
15
16namespace robotoc {
17
23public:
29
34
39
44
49
54
59 JointVelocityUpperLimit&&) noexcept = default;
60
62
63 void allocateExtraData(ConstraintComponentData& data) const override {}
64
65 bool isFeasible(Robot& robot, const ContactStatus& contact_status,
67 const SplitSolution& s) const override;
68
69 void setSlack(Robot& robot, const ContactStatus& contact_status,
71 const SplitSolution& s) const override;
72
73 void evalConstraint(Robot& robot, const ContactStatus& contact_status,
75 const SplitSolution& s) const override;
76
77 void evalDerivatives(Robot& robot, const ContactStatus& contact_status,
79 SplitKKTResidual& kkt_residual) const override;
80
81 void condenseSlackAndDual(const ContactStatus& contact_status,
83 SplitKKTMatrix& kkt_matrix,
84 SplitKKTResidual& kkt_residual) const override;
85
86 void expandSlackAndDual(const ContactStatus& contact_status,
88 const SplitDirection& d) const override;
89
90 int dimc() const override;
91
92private:
93 int dimc_, dim_passive_;
94 Eigen::VectorXd vmax_;
95
96};
97
98} // namespace robotoc
99
100#endif // ROBOTOC_JOINT_VELOCITY_UPPER_LIMIT_HPP_
Base class for constraint components.
Definition: constraint_component_base.hpp:34
Data used in constraint components. Composed by slack, dual (Lagrange multiplier),...
Definition: constraint_component_data.hpp:17
Contact status of robot model.
Definition: contact_status.hpp:32
Constraint on the upper limits of the joint velocity.
Definition: joint_velocity_upper_limit.hpp:22
JointVelocityUpperLimit & operator=(const JointVelocityUpperLimit &)=default
Default copy operator.
void evalConstraint(Robot &robot, const ContactStatus &contact_status, ConstraintComponentData &data, const SplitSolution &s) const override
Computes the primal residual, residual in the complementary slackness, and the log-barrier function o...
int dimc() const override
Returns the size of the constraint.
KinematicsLevel kinematicsLevel() const override
Checks the kinematics level of the constraint component.
JointVelocityUpperLimit(const Robot &robot)
Constructor.
JointVelocityUpperLimit(JointVelocityUpperLimit &&) noexcept=default
Default move constructor.
JointVelocityUpperLimit()
Default constructor.
void evalDerivatives(Robot &robot, const ContactStatus &contact_status, ConstraintComponentData &data, const SplitSolution &s, SplitKKTResidual &kkt_residual) const override
Computes the derivatives of the priaml residual, i.e., the Jacobian of the inequality constraint,...
void condenseSlackAndDual(const ContactStatus &contact_status, ConstraintComponentData &data, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual) const override
Condenses the slack and dual variables, i.e., factorizes the condensed Hessians and KKT residuals....
void allocateExtraData(ConstraintComponentData &data) const override
Allocates extra data in ConstraintComponentData.
Definition: joint_velocity_upper_limit.hpp:63
bool isFeasible(Robot &robot, const ContactStatus &contact_status, ConstraintComponentData &data, const SplitSolution &s) const override
Checks whether the current solution s is feasible or not.
JointVelocityUpperLimit(const JointVelocityUpperLimit &)=default
Default copy constructor.
void expandSlackAndDual(const ContactStatus &contact_status, ConstraintComponentData &data, const SplitDirection &d) const override
Expands the slack and dual, i.e., computes the directions of the slack and dual variables from the di...
void setSlack(Robot &robot, const ContactStatus &contact_status, ConstraintComponentData &data, const SplitSolution &s) const override
Sets the slack variables of each constraint components.
Dynamics and kinematics model of robots. Wraps pinocchio::Model and pinocchio::Data....
Definition: robot.hpp:32
Newton direction of the solution to the optimal control problem split into a time stage.
Definition: split_direction.hpp:20
The KKT matrix split into a time stage.
Definition: split_kkt_matrix.hpp:18
KKT residual split into each time stage.
Definition: split_kkt_residual.hpp:18
Solution to the optimal control problem split into a time stage.
Definition: split_solution.hpp:20
Definition: constraint_component_base.hpp:17
KinematicsLevel
Kinematics level of the constraint component used in ConstraintComponentBase.
Definition: constraint_component_base.hpp:24