35 double solveTime() final;
37 double solveAndBuildTime() final;
40 inline
tvm::LinearizedControlProblem & problem() noexcept {
return problem_; }
82 std::vector<tvm::TaskWithRequirementsPtr> f1Constraints_;
86 std::vector<tvm::TaskWithRequirementsPtr> f2Constraints_;
89 std::vector<ContactData> contactsData_;
99 bool runJointsFeedback(
bool wVelocity);
121 bool runClosedLoop(
bool integrateControlState);
127 std::vector<std::vector<double>> prev_encoders_{};
128 std::vector<std::vector<double>> encoders_alpha_{};
129 std::vector<std::vector<std::vector<double>>> control_q_{};
130 std::vector<std::vector<std::vector<double>>> control_alpha_{};
133 std::unordered_map<std::string, DynamicsConstraint *> dynamics_;
135 bool run_impl(FeedbackType fType = FeedbackType::None)
final;
144 using ContactIterator = std::vector<mc_rbdyn::Contact>::iterator;
145 ContactIterator removeContact(
size_t idx);
146 std::tuple<size_t, bool> addVirtualContactImpl(
const mc_rbdyn::Contact & contact);
147 void addContactToDynamics(
const std::string & robot,
149 const std::vector<sva::PTransformd> & points,
151 std::vector<tvm::TaskWithRequirementsPtr> & constraints,
152 const Eigen::MatrixXd & frictionCone,
#define MC_SOLVER_DLLAPI
Definition: api.h:50
mc_control::Contact Contact
Definition: Controller.h:22
Definition: generic_gripper.h:15
std::shared_ptr< Robots > RobotsPtr
Definition: fwd.h:17
std::chrono::duration< double, std::milli > duration_ms
Definition: clock.h:14
TVMQPSolver & tvm_solver(QPSolver &solver) noexcept
Definition: TVMQPSolver.h:162
ForceVec< double > ForceVecd
std::shared_ptr< TaskWithRequirements > TaskWithRequirementsPtr
Definition: RobotFrame.h:22
This class is a basis to wrap Constraint functions from Tasks. The aim of such wrappers should be two...
Definition: ConstraintSet.h:21
Definition: DynamicsConstraint.h:21
Definition: QPSolver.h:104
Definition: QPSolver.h:88
Definition: TVMQPSolver.h:24
TVMQPSolver(double timeStep)
const tvm::LinearizedControlProblem & problem() const noexcept
Definition: TVMQPSolver.h:43
~TVMQPSolver() final=default
static const TVMQPSolver & from_solver(const QPSolver &solver) noexcept
Definition: TVMQPSolver.h:63
static TVMQPSolver & from_solver(QPSolver &solver) noexcept
Definition: TVMQPSolver.h:51
TVMQPSolver(mc_rbdyn::RobotsPtr robots, double timeStep)