1#ifndef ROBOTOC_SURFACE_CONTACT_HPP_
2#define ROBOTOC_SURFACE_CONTACT_HPP_
5#include "pinocchio/multibody/model.hpp"
6#include "pinocchio/multibody/data.hpp"
7#include "pinocchio/container/aligned-vector.hpp"
8#include "pinocchio/spatial/force.hpp"
26 using Matrix6xd = Eigen::Matrix<double, 6, Eigen::Dynamic>;
75 pinocchio::container::
aligned_vector<pinocchio::Force>& joint_forces) const;
88 template <typename VectorType>
90 const pinocchio::Model& model, const pinocchio::Data& data,
91 const
SE3& desired_contact_placement,
92 const Eigen::MatrixBase<VectorType>& baumgarte_residual);
108 template <typename MatrixType1, typename MatrixType2, typename MatrixType3>
110 const pinocchio::Model& model, pinocchio::Data& data,
111 const Eigen::MatrixBase<MatrixType1>& baumgarte_partial_dq,
112 const Eigen::MatrixBase<MatrixType2>& baumgarte_partial_dv,
113 const Eigen::MatrixBase<MatrixType3>& baumgarte_partial_da);
123 template <typename VectorType>
125 const pinocchio::Model& model, const pinocchio::Data& data,
126 const Eigen::MatrixBase<VectorType>& velocity_residual) const;
139 template <typename MatrixType1, typename MatrixType2>
141 const pinocchio::Model& model, pinocchio::Data& data,
142 const Eigen::MatrixBase<MatrixType1>& velocity_partial_dq,
143 const Eigen::MatrixBase<MatrixType2>& velocity_partial_dv);
155 template <typename VectorType>
157 const pinocchio::Model& model, const pinocchio::Data& data,
158 const
SE3& desired_contact_placement,
159 const Eigen::MatrixBase<VectorType>& position_residual);
171 template <typename MatrixType>
173 const pinocchio::Model& model, pinocchio::Data& data,
174 const Eigen::MatrixBase<MatrixType>& position_partial_dq);
193 const
double baumgarte_velocity_gain);
217 void disp(std::ostream& os) const;
219 friend std::ostream& operator<<(std::ostream& os,
222 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
226 int contact_frame_id_, parent_joint_id_, dimv_;
227 pinocchio::
SE3 jXf_, X_diff_;
228 Matrix6xd J_frame_, frame_v_partial_dq_, frame_a_partial_dq_,
229 frame_a_partial_dv_, frame_a_partial_da_;
235#include "robotoc/robot/surface_contact.hxx"
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