12constexpr double kBendingDampingRatio = 0.05;
20constexpr double kTwistDampingRatio = 1.0;
41 static JointLaw Of(
double bendingStiffness,
double torsionStiffness,
double length,
double inertiaBending,
double inertiaTwist)
43 const auto damping = [&](
double ratio,
double inertia,
double stiffness) {
return 2.0 * ratio * std::sqrt(inertia *
stiffness / length); };
44 const double bending =
damping(kBendingDampingRatio, inertiaBending, bendingStiffness);
45 return {{bendingStiffness, bendingStiffness, torsionStiffness}, {bending, bending,
damping(kTwistDampingRatio, inertiaTwist, torsionStiffness)}};
63inline Eigen::Vector3d JointMomentOnNext(
const JointLaw& law,
double length,
const Eigen::Quaterniond& q,
const Eigen::Quaterniond& qNext,
64 const Eigen::Vector3d& w,
const Eigen::Vector3d& wNext)
66 const Eigen::Matrix3d R = q.toRotationMatrix();
67 const Eigen::Vector3d relativeVector = (q.conjugate() * qNext).vec();
68 const Eigen::Vector3d relativeRate = R.transpose() * (wNext - w);
69 const Eigen::Vector3d momentInFrame = -2.0 / length * law.stiffness.cwiseProduct(relativeVector) - law.damping.cwiseProduct(relativeRate);
70 return R * momentInFrame;
Definition CableJointMoment.h:26
Eigen::Vector3d damping
c_b, c_b, c_t [N m s].
Definition CableJointMoment.h:28
Eigen::Vector3d stiffness
EI, EI, GJ [N m^2].
Definition CableJointMoment.h:27
static JointLaw Of(double bendingStiffness, double torsionStiffness, double length, double inertiaBending, double inertiaTwist)
Definition CableJointMoment.h:41