wbc
AccelerationSceneReducedTSID.hpp
Go to the documentation of this file.
1#ifndef WBCACCELERATIONSCENEREDUCEDTSID_HPP
2#define WBCACCELERATIONSCENEREDUCEDTSID_HPP
3
6
7namespace wbc{
8
10
42protected:
44
45 Eigen::VectorXd robot_acc, solver_output_acc;
46 std::vector<types::Contact> contacts;
47 std::vector< TaskPtr > tasks;
48 std::vector< ConstraintPtr > constraints;
59 std::shared_ptr<ContactsFrictionSurfaceConstraint> friction_surface_constraint;
60
61 bool contactsHaveChanged(const std::vector<types::Contact>& old_contacts, const std::vector<types::Contact>& new_contacts){
62 if(old_contacts.size() != new_contacts.size())
63 return true;
64 for(uint i = 0; i < old_contacts.size(); i++){
65 if(old_contacts[i].active != new_contacts[i].active)
66 return true;
67 }
68 return false;
69 }
70
71public:
74
79 virtual bool configure(const std::vector<TaskPtr> &tasks);
80
85 virtual const HierarchicalQP& update();
86
91 virtual const types::JointCommand& solve(const HierarchicalQP& hqp);
92
98
104
111
119
128 void setFrictionConeSlackPenalty(const double w);
129};
130
131} // namespace wbc
132
133#endif
AccelerationSceneReducedTSID(RobotModelPtr robot_model, QPSolverPtr solver, const double dt, uint dim_contact=3, bool use_spatial_acc_bias=true)
Definition AccelerationSceneReducedTSID.cpp:16
virtual const HierarchicalQP & update()
Update the wbc scene and return the (updated) optimization problem.
Definition AccelerationSceneReducedTSID.cpp:79
void setContactWrenchDeltaPenalty(const double w)
Set weight for penalizing the difference between consecutive contact wrenches (solver output),...
Definition AccelerationSceneReducedTSID.hpp:118
virtual ~AccelerationSceneReducedTSID()
Definition AccelerationSceneReducedTSID.hpp:73
double acceleration_penalty
Definition AccelerationSceneReducedTSID.hpp:54
std::vector< types::Contact > contacts
Definition AccelerationSceneReducedTSID.hpp:46
HierarchicalQP hqp
Definition AccelerationSceneReducedTSID.hpp:49
uint dim_contact
Definition AccelerationSceneReducedTSID.hpp:52
static SceneRegistry< AccelerationSceneReducedTSID > reg
Definition AccelerationSceneReducedTSID.hpp:43
bool configured
Definition AccelerationSceneReducedTSID.hpp:50
double contact_wrench_penalty
Definition AccelerationSceneReducedTSID.hpp:55
double acceleration_delta_penalty
Definition AccelerationSceneReducedTSID.hpp:56
void setAccelerationDeltaPenalty(const double w)
Set weight for penalizing the difference between consecutive joint accelerations (solver output),...
Definition AccelerationSceneReducedTSID.hpp:110
std::shared_ptr< ContactsFrictionSurfaceConstraint > friction_surface_constraint
Definition AccelerationSceneReducedTSID.hpp:59
bool contactsHaveChanged(const std::vector< types::Contact > &old_contacts, const std::vector< types::Contact > &new_contacts)
Definition AccelerationSceneReducedTSID.hpp:61
Eigen::VectorXd robot_acc
Definition AccelerationSceneReducedTSID.hpp:45
void setContactWrenchPenalty(const double reg)
Set contact Wrench regularization term.
Definition AccelerationSceneReducedTSID.hpp:103
virtual bool configure(const std::vector< TaskPtr > &tasks)
Configure the WBC scene. Create tasks and sort them by priority given the task config.
Definition AccelerationSceneReducedTSID.cpp:54
types::JointCommand solver_output_joints
Definition AccelerationSceneReducedTSID.hpp:51
std::vector< ConstraintPtr > constraints
Definition AccelerationSceneReducedTSID.hpp:48
double wrench_delta_penalty
Definition AccelerationSceneReducedTSID.hpp:57
double friction_cone_slack_penalty
Definition AccelerationSceneReducedTSID.hpp:58
virtual const types::JointCommand & solve(const HierarchicalQP &hqp)
Solve the given optimization problem.
Definition AccelerationSceneReducedTSID.cpp:195
bool use_spatial_acc_bias
Definition AccelerationSceneReducedTSID.hpp:53
void setAccelerationPenalty(const double reg)
Set acceleration regularization term.
Definition AccelerationSceneReducedTSID.hpp:97
Eigen::VectorXd solver_output_acc
Definition AccelerationSceneReducedTSID.hpp:45
std::vector< TaskPtr > tasks
Definition AccelerationSceneReducedTSID.hpp:47
void setFrictionConeSlackPenalty(const double w)
Soften the contact surface friction cone constraint using a single slack variable per contact,...
Definition AccelerationSceneReducedTSID.cpp:45
Polyhedral wrench friction (coulomb) cone constraint according to https://scaron.info/robotics/wrench...
Definition ContactsFrictionSurfaceConstraint.hpp:16
RobotModelPtr robot_model
Definition Scene.hpp:18
Scene(RobotModelPtr robot_model, QPSolverPtr solver, const double dt)
Definition Scene.cpp:9
QPSolverPtr solver
Definition Scene.hpp:19
Definition JointCommand.hpp:8
Definition ContactsAccelerationConstraint.cpp:3
std::shared_ptr< QPSolver > QPSolverPtr
Definition QPSolver.hpp:33
std::shared_ptr< RobotModel > RobotModelPtr
Definition RobotModel.hpp:318
Describes a hierarchy of quadratic programs.
Definition QuadraticProgram.hpp:53
Definition Scene.hpp:102