robotoc
robotoc - efficient ROBOT Optimal Control solvers
Loading...
Searching...
No Matches
contact_planner_base.hpp
Go to the documentation of this file.
1#ifndef ROBOTOC_CONTACT_PLANNER_BASE_HPP_
2#define ROBOTOC_CONTACT_PLANNER_BASE_HPP_
3
4#include <vector>
5#include <memory>
6
7#include "Eigen/Core"
8
11#include "robotoc/robot/se3.hpp"
13
14
15namespace robotoc {
16
22public:
27
32
37
42
47
51 ContactPlannerBase& operator=(ContactPlannerBase&&) noexcept = default;
52
57 virtual void init(const Eigen::VectorXd& q) = 0;
58
72 virtual bool plan(const double t, const Eigen::VectorXd& q,
73 const Eigen::VectorXd& v,
74 const ContactStatus& contact_status,
75 const int planning_steps) = 0;
76
83 virtual const aligned_vector<SE3>& contactPlacements(const int step) const = 0;
84
91 virtual const std::vector<Eigen::Vector3d>& contactPositions(const int step) const = 0;
92
99 virtual const std::vector<Eigen::Matrix3d>& contactSurfaces(const int step) const = 0;
100
107 virtual const Eigen::Vector3d& CoM(const int step) const = 0;
108
115 virtual const Eigen::Matrix3d& R(const int step) const = 0;
116
121 virtual int size() const = 0;
122
123 void disp(std::ostream& os) const;
124
125};
126
127} // namespace robotoc
128
129#endif // ROBOTOC_CONTACT_PLANNER_BASE_HPP_
Base interface of contact planners.
Definition: contact_planner_base.hpp:21
virtual bool plan(const double t, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const ContactStatus &contact_status, const int planning_steps)=0
Plans the foot steps in the MPC (receding-horizon) fashion.
ContactPlannerBase & operator=(const ContactPlannerBase &)=default
Default copy assign operator.
virtual const Eigen::Matrix3d & R(const int step) const =0
Gets the rotation matrix of the base at a specified step.
ContactPlannerBase(ContactPlannerBase &&) noexcept=default
Default move constructor.
void disp(std::ostream &os) const
ContactPlannerBase(const ContactPlannerBase &)=default
Default copy constructor.
virtual const std::vector< Eigen::Matrix3d > & contactSurfaces(const int step) const =0
Gets the contact surfaces of a specified step.
ContactPlannerBase()
Default constructor.
Definition: contact_planner_base.hpp:26
virtual int size() const =0
Gets the size of each planned quantities.
virtual void init(const Eigen::VectorXd &q)=0
Initializes the planner.
virtual const std::vector< Eigen::Vector3d > & contactPositions(const int step) const =0
Gets the contact positions of a specified step.
virtual const aligned_vector< SE3 > & contactPlacements(const int step) const =0
Gets the contact placements of a specified step.
virtual ~ContactPlannerBase()
Destructor.
Definition: contact_planner_base.hpp:31
virtual const Eigen::Vector3d & CoM(const int step) const =0
Gets the CoM position of a specified step.
Contact status of robot model.
Definition: contact_status.hpp:32
Definition: constraint_component_base.hpp:17
std::vector< T, Eigen::aligned_allocator< T > > aligned_vector
std vector with Eigen::aligned_allocator.
Definition: aligned_vector.hpp:14
pinocchio::SE3 SE3
Using pinocchio::SE3 without its namespace.
Definition: se3.hpp:15