1#ifndef WBC_CORE_SCENE_HPP
2#define WBC_CORE_SCENE_HPP
32 virtual bool configure(
const std::vector<TaskPtr> &tasks) = 0;
88 throw std::runtime_error(
"Failed to create instance of plugin " + name +
". Is the plugin registered?");
89 return it->second(robot_model, solver, dt);
95 T* ret =
dynamic_cast<T*
>(tmp);
118 throw std::runtime_error(
"Failed to register plugin with name " + name +
". A plugin with the same name is already registered");
Base class for all wbc scenes.
Definition Scene.hpp:16
virtual const HierarchicalQP & update()=0
Update the wbc scene and return the (updated) optimization problem.
std::vector< types::Wrench > contact_wrenches
Definition Scene.hpp:22
RobotModelPtr robot_model
Definition Scene.hpp:18
const Eigen::VectorXd & getSolverOutputRaw() const
Get current solver output in raw values.
Definition Scene.hpp:59
double hessian_regularizer
Definition Scene.hpp:21
const std::vector< types::Wrench > & getContactWrenches()
Get estimated contact wrenches.
Definition Scene.hpp:75
void setHessianRegularizer(const double reg)
setHessianRegularizer
Definition Scene.hpp:65
Scene(RobotModelPtr robot_model, QPSolverPtr solver, const double dt)
Definition Scene.cpp:9
QPSolverPtr getSolver()
Return the current solver.
Definition Scene.hpp:54
virtual bool configure(const std::vector< TaskPtr > &tasks)=0
Configure the WBC scene. Create tasks and sort them by priority given the task config.
Eigen::VectorXd solver_output
Definition Scene.hpp:20
virtual const types::JointCommand & solve(const HierarchicalQP &hqp)=0
Solve the given optimization problem.
double getHessianRegularizer()
Return the current value of hessian regularizer.
Definition Scene.hpp:70
~Scene()
Definition Scene.cpp:15
RobotModelPtr getRobotModel()
Return the current robot model.
Definition Scene.hpp:49
QPSolverPtr solver
Definition Scene.hpp:19
Definition JointCommand.hpp:8
Definition ContactsAccelerationConstraint.cpp:3
QPSolver * createT()
Definition QPSolver.hpp:35
std::shared_ptr< Scene > ScenePtr
Definition Scene.hpp:78
std::shared_ptr< QPSolver > QPSolverPtr
Definition QPSolver.hpp:33
std::shared_ptr< RobotModel > RobotModelPtr
Definition RobotModel.hpp:315
Describes a hierarchy of quadratic programs.
Definition QuadraticProgram.hpp:53
static SceneMap * getSceneMap()
Definition Scene.hpp:99
std::map< std::string, Scene *(*)(RobotModelPtr, QPSolverPtr, double)> SceneMap
Definition Scene.hpp:83
static T * createInstance(const std::string &name, RobotModelPtr robot_model, QPSolverPtr solver, const double dt)
Definition Scene.hpp:93
static Scene * createInstance(const std::string &name, RobotModelPtr robot_model, QPSolverPtr solver, const double dt)
Definition Scene.hpp:85
static void clear()
Definition Scene.hpp:105
SceneRegistry(const std::string &name)
Definition Scene.hpp:115