Go to the documentation of this file.
49 MC_RTC_diagnostic_push
67 ClosedLoop = ObservedRobots,
70 ClosedLoopIntegrateReal
76 struct DynamicsConstraint;
139 static Backend context_backend();
142 static void context_backend(Backend backend);
156 addConstraintSet(*ptr);
171 removeConstraintSet(*ptr);
186 inline void addTask(std::shared_ptr<mc_tasks::MetaTask> task)
191 shPtrTasksStorage.emplace_back(task);
206 inline void removeTask(std::shared_ptr<mc_tasks::MetaTask> task)
208 if(task) { removeTask(task.get()); }
214 void setContacts(
const std::vector<mc_rbdyn::Contact> & contacts = {});
218 virtual void setContacts(ControllerToken,
const std::vector<mc_rbdyn::Contact> & contacts) = 0;
221 inline const std::vector<mc_rbdyn::Contact> &
contacts() const noexcept {
return contacts_; }
224 inline const std::vector<mc_solver::ConstraintSet *> &
constraints() const noexcept {
return constraints_; }
227 inline const std::vector<mc_tasks::MetaTask *> &
tasks() const noexcept {
return metaTasks_; }
234 virtual const sva::ForceVecd desiredContactForce(
const mc_rbdyn::Contact &
id)
const = 0;
244 bool run(FeedbackType fType = FeedbackType::None);
277 virtual double solveTime() = 0;
280 virtual double solveAndBuildTime() = 0;
283 void logger(std::shared_ptr<mc_rtc::Logger> logger);
285 std::shared_ptr<mc_rtc::Logger> logger()
const;
288 void gui(std::shared_ptr<mc_rtc::gui::StateBuilder> gui);
290 std::shared_ptr<mc_rtc::gui::StateBuilder> gui()
const;
318 std::shared_ptr<mc_rtc::Logger> logger_ =
nullptr;
321 std::shared_ptr<mc_rtc::gui::StateBuilder> gui_ =
nullptr;
329 virtual bool run_impl(FeedbackType fType = FeedbackType::None) = 0;
344 struct formatter<
mc_solver::QPSolver::Backend> :
public formatter<string_view>
346 template<
typename FormatContext>
353 return formatter<string_view>::format(
"Tasks", ctx);
355 return formatter<string_view>::format(
"TVM", ctx);
357 return formatter<string_view>::format(
"Unset", ctx);
359 return formatter<string_view>::format(
"UNEXPECTED", ctx);
Definition: DynamicsConstraint.h:20
void addConstraintSet(const std::unique_ptr< T > &ptr)
Definition: QPSolver.h:154
mc_rbdyn::RobotsPtr realRobots_p
Definition: QPSolver.h:302
Definition: QPSolver.h:101
Backend backend() const noexcept
Definition: QPSolver.h:126
MC_RTC_diagnostic_push MC_RTC_diagnostic_ignored(GCC, "-Wattributes") enum class MC_SOLVER_DLLAPI FeedbackType
Definition: QPSolver.h:50
Definition: QPSolver.h:85
std::shared_ptr< Robots > RobotsPtr
Definition: fwd.h:17
const mc_control::MCController * controller() const noexcept
Definition: QPSolver.h:295
This class is a basis to wrap Constraint functions from Tasks. The aim of such wrappers should be two...
Definition: ConstraintSet.h:20
const std::vector< mc_rbdyn::Contact > & contacts() const noexcept
Definition: QPSolver.h:221
const std::vector< mc_tasks::MetaTask * > & tasks() const noexcept
Definition: QPSolver.h:227
mc_control::MCController * controller() noexcept
Definition: QPSolver.h:297
void removeTask(std::shared_ptr< mc_tasks::MetaTask > task)
Definition: QPSolver.h:206
std::vector< mc_rbdyn::Contact > contacts_
Definition: QPSolver.h:306
void addTask(std::shared_ptr< mc_tasks::MetaTask > task)
Definition: QPSolver.h:186
Backend
Definition: QPSolver.h:90
void removeConstraintSet(const std::unique_ptr< T > &ptr)
Definition: QPSolver.h:169
mc_rbdyn::RobotsPtr robots_p
Definition: QPSolver.h:301
Backend backend_
Definition: QPSolver.h:300
std::vector< std::shared_ptr< void > > shPtrTasksStorage
Definition: QPSolver.h:312
double timeStep
Definition: QPSolver.h:303
Definition: Configuration.h:1754
std::vector< mc_solver::ConstraintSet * > constraints_
Definition: QPSolver.h:315
Definition: CompletionCriteria.h:10
void controller(mc_control::MCController *ctl) noexcept
Definition: QPSolver.h:293
const std::vector< mc_solver::ConstraintSet * > & constraints() const noexcept
Definition: QPSolver.h:224
#define MC_SOLVER_DLLAPI
Definition: api.h:50
MCController is the base class to implement all controllers. It assumes that at least two robots are ...
Definition: MCController.h:98
Definition: StabilizerStandingState.h:11
std::vector< mc_tasks::MetaTask * > metaTasks_
Definition: QPSolver.h:309