Skip to content

Commit

Permalink
Added assert for non supported algorithms and apply precommit
Browse files Browse the repository at this point in the history
  • Loading branch information
Megane Millan committed Jan 16, 2025
1 parent 064c2a5 commit 3fa5eaa
Show file tree
Hide file tree
Showing 21 changed files with 127 additions and 73 deletions.
9 changes: 7 additions & 2 deletions include/pinocchio/algorithm/aba-derivatives.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ namespace pinocchio
const Eigen::MatrixBase<ConfigVectorType> & q,
const Eigen::MatrixBase<TangentVectorType> & v)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;

const JointIndex i = jmodel.id();
Expand Down Expand Up @@ -162,8 +167,8 @@ namespace pinocchio
{
Ia.noalias() -= jdata.UDinv() * jdata.U().transpose();

fi.toVector().noalias() += Ia * data.oa_gf[i].toVector()
+ jdata.UDinv() * jmodel.jointVelocitySelector(data.u);
fi.toVector().noalias() +=
Ia * data.oa_gf[i].toVector() + jdata.UDinv() * jmodel.jointVelocitySelector(data.u);
data.oYaba[parent] += Ia;
data.of[parent] += fi;
}
Expand Down
31 changes: 25 additions & 6 deletions include/pinocchio/algorithm/aba.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@ namespace pinocchio
const Eigen::MatrixBase<ConfigVectorType> & q,
const Eigen::MatrixBase<TangentVectorType> & v)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;
typedef typename Data::Motion Motion;

Expand Down Expand Up @@ -169,7 +174,8 @@ namespace pinocchio

Force & fi = data.of[i];

jmodel.jointVelocityExtendedModelSelector(data.u).noalias() -= Jcols.transpose() * fi.toVector();
jmodel.jointVelocityExtendedModelSelector(data.u).noalias() -=
Jcols.transpose() * fi.toVector();

jdata.U().noalias() = Ia * Jcols;
jdata.StU().noalias() = Jcols.transpose() * jdata.U();
Expand All @@ -184,8 +190,9 @@ namespace pinocchio
{
Ia.noalias() -= jdata.UDinv() * jdata.U().transpose();

fi.toVector().noalias() += Ia * data.oa_gf[i].toVector()
+ jdata.UDinv() * jmodel.jointVelocityExtendedModelSelector(data.u);
fi.toVector().noalias() +=
Ia * data.oa_gf[i].toVector()
+ jdata.UDinv() * jmodel.jointVelocityExtendedModelSelector(data.u);
data.oYaba[parent] += Ia;
data.of[parent] += fi;
}
Expand Down Expand Up @@ -379,6 +386,11 @@ namespace pinocchio
const Eigen::MatrixBase<ConfigVectorType> & q,
const Eigen::MatrixBase<TangentVectorType> & v)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;

const JointIndex i = jmodel.id();
Expand Down Expand Up @@ -426,13 +438,15 @@ namespace pinocchio

jmodel.jointVelocityExtendedModelSelector(data.u) -= jdata.S().transpose() * data.f[i];
jmodel.calc_aba(
jdata.derived(), jmodel.jointVelocityExtendedModelSelector(model.armature), Ia, parent > 0);
jdata.derived(), jmodel.jointVelocityExtendedModelSelector(model.armature), Ia,
parent > 0);

if (parent > 0)
{
Force & pa = data.f[i];
pa.toVector().noalias() += Ia * data.a_gf[i].toVector()
+ jdata.UDinv() * jmodel.jointVelocityExtendedModelSelector(data.u);
pa.toVector().noalias() +=
Ia * data.a_gf[i].toVector()
+ jdata.UDinv() * jmodel.jointVelocityExtendedModelSelector(data.u);
data.Yaba[parent] += internal::SE3actOn<Scalar>::run(data.liMi[i], Ia);
data.f[parent] += data.liMi[i].act(pa);
}
Expand Down Expand Up @@ -621,6 +635,11 @@ namespace pinocchio
Data & data,
const Eigen::MatrixBase<ConfigVectorType> & q)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;

const JointIndex & i = jmodel.id();
Expand Down
5 changes: 5 additions & 0 deletions include/pinocchio/algorithm/center-of-mass-derivatives.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,11 @@ namespace pinocchio
Data & data,
const Eigen::MatrixBase<Matrix3xOut> & vcom_partial_dq)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;
typedef typename Data::Motion Motion;

Expand Down
5 changes: 5 additions & 0 deletions include/pinocchio/algorithm/compute-all-terms.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ namespace pinocchio
const Eigen::MatrixBase<ConfigVectorType> & q,
const Eigen::MatrixBase<TangentVectorType> & v)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;
typedef
typename SizeDepType<JointModel::NV>::template ColsReturn<typename Data::Matrix6x>::Type
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ namespace pinocchio
const Model & model,
Data & data)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;
typedef typename Data::Motion Motion;

Expand Down Expand Up @@ -81,8 +86,8 @@ namespace pinocchio
Motion & oa_gf = data.oa_gf[i];
ColsBlock dAdv_cols = jmodel.jointCols(data.dAdv);
const typename Data::TangentVectorType & a = data.ddq;
data.a[i] =
jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c() + (data.v[i] ^ jdata.v());
data.a[i] = jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c()
+ (data.v[i] ^ jdata.v());
if (parent > 0)
data.a[i] += data.liMi[i].actInv(data.a[parent]);
oa = data.oMi[i].act(data.a[i]);
Expand Down
5 changes: 5 additions & 0 deletions include/pinocchio/algorithm/constrained-dynamics.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@ namespace pinocchio
const Eigen::MatrixBase<ConfigVectorType> & q,
const Eigen::MatrixBase<TangentVectorType> & v)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;
typedef typename Data::Motion Motion;
typedef typename Data::Force Force;
Expand Down
5 changes: 5 additions & 0 deletions include/pinocchio/algorithm/energy.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ namespace pinocchio
const Model & model,
Data & data)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

const JointIndex & i = jmodel.id();
data.kinetic_energy += model.inertias[i].vtiv(data.v[i]);
data.kinetic_energy += (jmodel.jointVelocityExtendedModelSelector(model.armature).array()
Expand Down
4 changes: 1 addition & 3 deletions include/pinocchio/algorithm/geometry.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,7 @@ namespace pinocchio
{
const Model::JointIndex joint_id = geom_model.geometryObjects[i].parentJoint;
if (joint_id > 0)
geom_data.oMg[i] =
(data.oMi[joint_id]
* geom_model.geometryObjects[i].placement);
geom_data.oMg[i] = (data.oMi[joint_id] * geom_model.geometryObjects[i].placement);
else
geom_data.oMg[i] = geom_model.geometryObjects[i].placement;
}
Expand Down
6 changes: 6 additions & 0 deletions include/pinocchio/algorithm/impulse-dynamics-derivatives.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ namespace pinocchio
const Eigen::MatrixBase<Matrix3xOut1> & v_partial_dq,
const Eigen::MatrixBase<Matrix3xOut2> & v_partial_dv)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;
typedef typename Data::SE3 SE3;
typedef typename Data::Motion Motion;
Expand Down Expand Up @@ -160,6 +165,7 @@ namespace pinocchio
const Eigen::MatrixBase<Matrix6xOut1> & v_partial_dq,
const Eigen::MatrixBase<Matrix6xOut2> & v_partial_dv)
{

typedef typename Model::JointIndex JointIndex;
typedef typename Data::SE3 SE3;
typedef typename Data::Motion Motion;
Expand Down
3 changes: 1 addition & 2 deletions include/pinocchio/algorithm/jacobian.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -371,8 +371,7 @@ namespace pinocchio
for (JointIndex i = jointId; i > 0; i = model.parents[i])
{
Pass::run(
model.joints[i], data.joints[i],
typename Pass::ArgsType(model, data, q.derived(), J_));
model.joints[i], data.joints[i], typename Pass::ArgsType(model, data, q.derived(), J_));
}
}

Expand Down
8 changes: 7 additions & 1 deletion include/pinocchio/algorithm/kinematics-derivatives.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,11 @@ namespace pinocchio
const Eigen::MatrixBase<TangentVectorType1> & v,
const Eigen::MatrixBase<TangentVectorType2> & a)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;
typedef typename Data::SE3 SE3;
typedef typename Data::Motion Motion;
Expand All @@ -76,7 +81,8 @@ namespace pinocchio
if (parent > 0)
vi += data.liMi[i].actInv(data.v[parent]);

ai = jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c() + (vi ^ jdata.v());
ai =
jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c() + (vi ^ jdata.v());
if (parent > 0)
ai += data.liMi[i].actInv(data.a[parent]);

Expand Down
4 changes: 2 additions & 2 deletions include/pinocchio/algorithm/kinematics.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -233,8 +233,8 @@ namespace pinocchio
else
data.oMi[i] = data.liMi[i];

data.a[i] =
jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c() + (data.v[i] ^ jdata.v());
data.a[i] = jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c()
+ (data.v[i] ^ jdata.v());
data.a[i] += data.liMi[i].actInv(data.a[parent]);
}
};
Expand Down
8 changes: 5 additions & 3 deletions include/pinocchio/algorithm/pv.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,9 @@ namespace pinocchio

if (parent > 0)
{
pa.toVector().noalias() += Ia * data.a_bias[i].toVector()
+ jdata.UDinv() * jmodel.jointVelocityExtendedModelSelector(data.u);
pa.toVector().noalias() +=
Ia * data.a_bias[i].toVector()
+ jdata.UDinv() * jmodel.jointVelocityExtendedModelSelector(data.u);
data.Yaba[parent] += impl::internal::SE3actOn<Scalar>::run(data.liMi[i], Ia);
data.f[parent] += data.liMi[i].act(pa);
}
Expand Down Expand Up @@ -311,7 +312,8 @@ namespace pinocchio
const JointIndex parent = model.parents[i];

// Abusing otherwise unused data.tau below.
jmodel.jointVelocityExtendedModelSelector(data.tau).noalias() = jdata.S().transpose() * data.f[i];
jmodel.jointVelocityExtendedModelSelector(data.tau).noalias() =
jdata.S().transpose() * data.f[i];
jmodel.jointVelocitySelector(data.u) -= jmodel.jointVelocitySelector(data.tau);
data.f[i].toVector().noalias() -=
jdata.UDinv() * jmodel.jointVelocityExtendedModelSelector(data.tau);
Expand Down
5 changes: 5 additions & 0 deletions include/pinocchio/algorithm/regressor.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,11 @@ namespace pinocchio
const Eigen::MatrixBase<TangentVectorType1> & v,
const Eigen::MatrixBase<TangentVectorType2> & a)
{
assert(
(std::is_same<JointModel, JointModelMimicTpl<Scalar, Options, JointCollectionTpl>>::value
== false)
&& "Algorithm not supported for mimic joints");

typedef typename Model::JointIndex JointIndex;

const JointIndex i = jmodel.id();
Expand Down
4 changes: 2 additions & 2 deletions include/pinocchio/algorithm/rnea-derivatives.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -306,8 +306,8 @@ namespace pinocchio
else
data.oMi[i] = data.liMi[i];

data.a[i] =
jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c() + (data.v[i] ^ jdata.v());
data.a[i] = jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c()
+ (data.v[i] ^ jdata.v());
if (parent > 0)
{
data.a[i] += data.liMi[i].actInv(data.a[parent]);
Expand Down
14 changes: 7 additions & 7 deletions include/pinocchio/algorithm/rnea-second-order-derivatives.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,13 @@ namespace pinocchio
typedef
typename SizeDepType<JointModel::NV>::template ColsReturn<typename Data::Matrix6x>::Type
ColsBlock;
ColsBlock J_cols =
jmodel.jointExtendedModelCols(data.J); // data.J has all the phi (in world frame) stacked in columns
ColsBlock psid_cols =
jmodel.jointCols(data.psid); // psid_cols is the psi_dot in world frame
ColsBlock J_cols = jmodel.jointExtendedModelCols(
data.J); // data.J has all the phi (in world frame) stacked in columns
ColsBlock psid_cols = jmodel.jointCols(data.psid); // psid_cols is the psi_dot in world frame
ColsBlock psidd_cols =
jmodel.jointCols(data.psidd); // psidd_cols is the psi_dotdot in world frame
ColsBlock dJ_cols = jmodel.jointExtendedModelCols(data.dJ); // This here is phi_dot in world frame
ColsBlock dJ_cols =
jmodel.jointExtendedModelCols(data.dJ); // This here is phi_dot in world frame

J_cols.noalias() =
data.oMi[i].act(jdata.S()); // J_cols is just the phi in world frame for a joint
Expand All @@ -98,8 +98,8 @@ namespace pinocchio
ov, psid_cols,
psidd_cols); // This ov here is v(p(i)) , psi_dotdot calcs
ov += vJ;
oa +=
(ov ^ vJ) + data.oMi[i].act(jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c());
oa += (ov ^ vJ)
+ data.oMi[i].act(jdata.S() * jmodel.jointVelocityExtendedModelSelector(a) + jdata.c());
motionSet::motionAction(ov, J_cols, dJ_cols); // This here is phi_dot, here ov used is v(p(i))
// + vJ Composite rigid body inertia
Inertia & oY = data.oYcrb[i];
Expand Down
5 changes: 3 additions & 2 deletions include/pinocchio/multibody/joint/joint-basic-visitors.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -195,8 +195,9 @@ namespace pinocchio

template<typename InputType, typename ReturnType>
struct jointConfigExtendedModelSelectorVisitor
: fusion::
JointUnaryVisitorBase<jointConfigExtendedModelSelectorVisitor<InputType, ReturnType>, ReturnType>
: fusion::JointUnaryVisitorBase<
jointConfigExtendedModelSelectorVisitor<InputType, ReturnType>,
ReturnType>
{
typedef boost::fusion::vector<InputType> ArgsType;

Expand Down
3 changes: 1 addition & 2 deletions include/pinocchio/multibody/joint/joint-composite.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -542,8 +542,7 @@ namespace pinocchio
return A.middleCols(Base::i_j, nj());
}
template<typename D>
typename SizeDepType<NV>::template ColsReturn<D>::Type
jointCols(Eigen::MatrixBase<D> & A) const
typename SizeDepType<NV>::template ColsReturn<D>::Type jointCols(Eigen::MatrixBase<D> & A) const
{
return A.middleCols(Base::i_v, nv());
}
Expand Down
6 changes: 2 additions & 4 deletions include/pinocchio/multibody/joint/joint-model-base.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -435,8 +435,7 @@ namespace pinocchio
// Non-const access
// TODO rename Jac/Vel into Full/Red (for full system and reduced system ?)
template<typename D>
typename SizeDepType<NV>::template ColsReturn<D>::Type
jointCols(Eigen::MatrixBase<D> & A) const
typename SizeDepType<NV>::template ColsReturn<D>::Type jointCols(Eigen::MatrixBase<D> & A) const
{
return derived().jointCols_impl(A.derived());
}
Expand Down Expand Up @@ -494,8 +493,7 @@ namespace pinocchio

// Non-const access
template<typename D>
typename SizeDepType<NV>::template RowsReturn<D>::Type
jointRows(Eigen::MatrixBase<D> & A) const
typename SizeDepType<NV>::template RowsReturn<D>::Type jointRows(Eigen::MatrixBase<D> & A) const
{
return derived().jointRows_impl(A.derived());
}
Expand Down
Loading

0 comments on commit 3fa5eaa

Please sign in to comment.