Skip to content

Commit b5f30fc

Browse files
committed
[spatial] Assert mass is positive
1 parent afe7497 commit b5f30fc

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

include/pinocchio/spatial/inertia.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ namespace pinocchio
363363
const Scalar eps = ::Eigen::NumTraits<Scalar>::epsilon();
364364

365365
const Scalar & mass = params[0];
366+
assert(mass >= Scalar(0.));
366367
Vector3 lever = params.template segment<3>(1);
367368
lever /= (mass >= 0) ? math::max(mass,eps) : math::min(mass,-eps);
368369

@@ -440,6 +441,7 @@ namespace pinocchio
440441
const Scalar eps = ::Eigen::NumTraits<Scalar>::epsilon();
441442

442443
const Scalar & mab = mass()-Yb.mass();
444+
assert(mab >= Scalar(0.));
443445
const Scalar mab_inv = (mab >= 0) ? Scalar(1)/math::max(mab,eps) : Scalar(1)/math::min(mab,-eps);
444446
const Vector3 & AB = (lever()-Yb.lever()).eval();
445447
return InertiaTpl(mab,
@@ -453,6 +455,7 @@ namespace pinocchio
453455

454456
const InertiaTpl& Ya = *this;
455457
const Scalar & mab = mass()-Yb.mass();
458+
assert(mab >= Scalar(0.));
456459
const Scalar mab_inv = (mab >= 0) ? Scalar(1)/math::max(mab,eps) : Scalar(1)/math::min(mab,-eps);
457460
const Vector3 & AB = (Ya.lever()-Yb.lever()).eval();
458461
lever() *= (mass()*mab_inv); lever() -= (Yb.mass()*mab_inv)*Yb.lever(); //c *= mab_inv;

0 commit comments

Comments
 (0)