5 #ifndef __pinocchio_algorithm_regressor_hpp__
6 #define __pinocchio_algorithm_regressor_hpp__
8 #include "pinocchio/multibody/model.hpp"
9 #include "pinocchio/multibody/data.hpp"
25 template<
typename,
int>
class JointCollectionTpl,
26 typename Matrix6xReturnType>
30 const JointIndex joint_id,
33 const Eigen::MatrixBase<Matrix6xReturnType> & kinematic_regressor);
51 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
55 const JointIndex joint_id,
60 ReturnType res(ReturnType::Zero(6, (model.njoints - 1) * 6));
77 template<
typename,
int>
class JointCollectionTpl,
78 typename Matrix6xReturnType>
82 const JointIndex joint_id,
84 const Eigen::MatrixBase<Matrix6xReturnType> & kinematic_regressor);
101 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
105 const JointIndex joint_id,
109 ReturnType res(ReturnType::Zero(6, (model.njoints - 1) * 6));
126 template<
typename,
int>
class JointCollectionTpl,
127 typename Matrix6xReturnType>
131 const FrameIndex frame_id,
133 const Eigen::MatrixBase<Matrix6xReturnType> & kinematic_regressor);
150 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
154 const FrameIndex frame_id,
158 ReturnType res(ReturnType::Zero(6, (model.njoints - 1) * 6));
187 template<
typename,
int>
class JointCollectionTpl,
188 typename ConfigVectorType>
192 const Eigen::MatrixBase<ConfigVectorType> & q);
204 template<
typename MotionVelocity,
typename MotionAcceleration,
typename OutputType>
208 const Eigen::MatrixBase<OutputType> & regressor);
221 template<
typename MotionVelocity,
typename MotionAcceleration>
222 inline Eigen::Matrix<
223 typename MotionVelocity::Scalar,
226 PINOCCHIO_EIGEN_PLAIN_TYPE(
typename MotionVelocity::Vector3)::Options>
247 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
252 JointIndex joint_id);
272 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
277 FrameIndex frame_id);
306 template<
typename,
int>
class JointCollectionTpl,
307 typename ConfigVectorType,
308 typename TangentVectorType1,
309 typename TangentVectorType2>
310 inline typename DataTpl<Scalar, Options, JointCollectionTpl>::MatrixXs &
314 const Eigen::MatrixBase<ConfigVectorType> & q,
315 const Eigen::MatrixBase<TangentVectorType1> & v,
316 const Eigen::MatrixBase<TangentVectorType2> & a);
339 template<
typename,
int>
class JointCollectionTpl,
340 typename ConfigVectorType,
341 typename TangentVectorType>
342 const typename DataTpl<Scalar, Options, JointCollectionTpl>::RowVectorXs &
343 computeKineticEnergyRegressor(
346 const Eigen::MatrixBase<ConfigVectorType> & q,
347 const Eigen::MatrixBase<TangentVectorType> & v);
368 template<
typename,
int>
class JointCollectionTpl,
369 typename ConfigVectorType>
370 const typename DataTpl<Scalar, Options, JointCollectionTpl>::RowVectorXs &
374 const Eigen::MatrixBase<ConfigVectorType> & q);
378 #include "pinocchio/algorithm/regressor.hxx"
380 #if PINOCCHIO_ENABLE_TEMPLATE_INSTANTIATION
381 #include "pinocchio/algorithm/regressor.txx"
ReferenceFrame
Various conventions to express the velocity of a moving frame.
Main pinocchio namespace.
void bodyRegressor(const MotionDense< MotionVelocity > &v, const MotionDense< MotionAcceleration > &a, const Eigen::MatrixBase< OutputType > ®ressor)
Computes the regressor for the dynamic parameters of a single rigid body.
DataTpl< Scalar, Options, JointCollectionTpl >::Matrix3x & computeStaticRegressor(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
Computes the static regressor that links the center of mass positions of all the links to the center ...
void computeJointKinematicRegressor(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, const DataTpl< Scalar, Options, JointCollectionTpl > &data, const JointIndex joint_id, const ReferenceFrame rf, const SE3Tpl< Scalar, Options > &placement, const Eigen::MatrixBase< Matrix6xReturnType > &kinematic_regressor)
void computeFrameKinematicRegressor(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const FrameIndex frame_id, const ReferenceFrame rf, const Eigen::MatrixBase< Matrix6xReturnType > &kinematic_regressor)
DataTpl< Scalar, Options, JointCollectionTpl >::MatrixXs & computeJointTorqueRegressor(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q, const Eigen::MatrixBase< TangentVectorType1 > &v, const Eigen::MatrixBase< TangentVectorType2 > &a)
Computes the joint torque regressor that links the joint torque to the dynamic parameters of each lin...
DataTpl< Scalar, Options, JointCollectionTpl >::BodyRegressorType & frameBodyRegressor(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, FrameIndex frame_id)
Computes the regressor for the dynamic parameters of a rigid body attached to a given frame,...
const DataTpl< Scalar, Options, JointCollectionTpl >::RowVectorXs & computePotentialEnergyRegressor(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
DataTpl< Scalar, Options, JointCollectionTpl >::BodyRegressorType & jointBodyRegressor(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, JointIndex joint_id)
Computes the regressor for the dynamic parameters of a rigid body attached to a given joint,...
Eigen::Matrix< Scalar, 6, 10, Options > BodyRegressorType
The type of the body regressor.
Eigen::Matrix< Scalar, 6, Eigen::Dynamic, Options > Matrix6x
The 6d jacobian type (temporary)
Eigen::Matrix< Scalar, 3, Eigen::Dynamic, Options > Matrix3x
The 3d jacobian type (temporary)