1#ifndef ROBOTOC_POINT_CONTACT_HPP_
2#define ROBOTOC_POINT_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"
24 using Matrix6xd = Eigen::Matrix<double, 6, Eigen::Dynamic>;
72 const Eigen::Vector3d& contact_force,
73 pinocchio::container::
aligned_vector<pinocchio::Force>& joint_forces) const;
86 template <typename VectorType1, typename VectorType2>
88 const pinocchio::Model& model, const pinocchio::Data& data,
89 const Eigen::MatrixBase<VectorType1>& desired_contact_position,
90 const Eigen::MatrixBase<VectorType2>& baumgarte_residual) const;
106 template <typename MatrixType1, typename MatrixType2, typename MatrixType3>
108 const pinocchio::Model& model, pinocchio::Data& data,
109 const Eigen::MatrixBase<MatrixType1>& baumgarte_partial_dq,
110 const Eigen::MatrixBase<MatrixType2>& baumgarte_partial_dv,
111 const Eigen::MatrixBase<MatrixType3>& baumgarte_partial_da);
121 template <typename VectorType>
123 const pinocchio::Model& model, const pinocchio::Data& data,
124 const Eigen::MatrixBase<VectorType>& velocity_residual) const;
137 template <typename MatrixType1, typename MatrixType2>
139 const pinocchio::Model& model, pinocchio::Data& data,
140 const Eigen::MatrixBase<MatrixType1>& velocity_partial_dq,
141 const Eigen::MatrixBase<MatrixType2>& velocity_partial_dv);
153 template <typename VectorType1, typename VectorType2>
155 const pinocchio::Model& model, const pinocchio::Data& data,
156 const Eigen::MatrixBase<VectorType1>& desired_contact_position,
157 const Eigen::MatrixBase<VectorType2>& position_residual) const;
169 template <typename MatrixType>
171 const pinocchio::Model& model, pinocchio::Data& data,
172 const Eigen::MatrixBase<MatrixType>& position_partial_dq);
191 const
double baumgarte_velocity_gain);
215 void disp(std::ostream& os) const;
217 friend std::ostream& operator<<(std::ostream& os,
220 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
224 int contact_frame_id_, parent_joint_id_, dimv_;
226 pinocchio::Motion v_frame_;
227 Eigen::Matrix3d v_linear_skew_, v_angular_skew_;
228 Matrix6xd J_frame_, frame_v_partial_dq_, frame_a_partial_dq_,
229 frame_a_partial_dv_, frame_a_partial_da_;
234#include "robotoc/robot/point_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