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,
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,
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>
150 template<
typename Scalar,
int Options,
template<
typename,
int>
class JointCollectionTpl>
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>
306 template<
typename,
int>
class JointCollectionTpl,
307 typename ConfigVectorType,
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 &
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.
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 ...
const DataTpl< Scalar, Options, JointCollectionTpl >::RowVectorXs & computePotentialEnergyRegressor(const ModelTpl< Scalar, Options, JointCollectionTpl > &model, DataTpl< Scalar, Options, JointCollectionTpl > &data, const Eigen::MatrixBase< ConfigVectorType > &q)
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)
Computes the kinematic regressor that links the joint placements variations of the whole kinematic tr...
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,...
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 >::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...
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)
Computes the kinematic regressor that links the joint placement variations of the whole kinematic tre...
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)