6#include <pinocchio/multibody/geometry.hpp>
7#include <pinocchio/multibody/model.hpp>
8#include <pinocchio/multibody/frame.hpp>
9#include <pinocchio/algorithm/geometry.hpp>
17template <
typename _Scalar>
20 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
25 using Model = pinocchio::ModelTpl<Scalar>;
26 using SE3 = pinocchio::SE3Tpl<Scalar>;
35 const pinocchio::PairIndex frame_pair_id)
40 if (frame_pair_id >=
geom_model_.collisionPairs.size()) {
41 ALIGATOR_OUT_OF_RANGE_ERROR(
42 "Provided collision pair index {:d} is not valid "
43 "(geom model has {:d} pairs).",
44 frame_pair_id, geom_model.collisionPairs.size());
61 return std::make_shared<Data>(*
this);
70template <
typename Scalar>
72 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
74 using typename Base::Matrix6Xs;
75 using typename Base::Vector3s;
76 using SE3 = pinocchio::SE3Tpl<Scalar>;
95#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
96#include "aligator/modelling/multibody/frame-collision.txx"
pinocchio::GeometryData geom_data
FrameCollisionDataTpl(const FrameCollisionResidualTpl< Scalar > &model)
pinocchio::DataTpl< Scalar > pin_data_
pinocchio::SE3Tpl< Scalar > SE3
Matrix6Xs Jcol_
Jacobian of the collision point.
StageFunctionDataTpl< Scalar > Base
Vector3s distance_
Distance from nearest point to joint for each collision frame.
SE3 jointToP1_
Placement of collision point to joint.
pinocchio::SE3Tpl< Scalar > SE3
pinocchio::PairIndex frame_pair_id_
shared_ptr< BaseData > createData() const
Instantiate a Data object.
FrameCollisionResidualTpl(const int ndx, const int nu, const Model &model, const GeometryModel &geom_model, const pinocchio::PairIndex frame_pair_id)
GeometryModel geom_model_
void computeJacobians(const ConstVectorRef &x, BaseData &data) const
ALIGATOR_UNARY_FUNCTION_INTERFACE(Scalar)
pinocchio::FrameIndex frame_id1_
typename Base::Data BaseData
pinocchio::ModelTpl< Scalar > Model
pinocchio::FrameIndex frame_id2_
FrameCollisionDataTpl< Scalar > Data
void evaluate(const ConstVectorRef &x, BaseData &data) const
pinocchio::GeometryModel GeometryModel
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
StageFunctionDataTpl(const int ndx, const int nu, const int nr)
const int nu
Control dimension.
StageFunctionDataTpl< Scalar > Data
Represents unary functions of the form , with no control (or next-state) arguments.
StageFunctionTpl< Scalar > Base