dart
|
Public Types | |
using | ThisClass = GenericJoint< ConfigSpaceT > |
using | Base = detail::GenericJointBase< ThisClass, ConfigSpaceT > |
using | Point = typename ConfigSpaceT::Point |
using | EuclideanPoint = typename ConfigSpaceT::EuclideanPoint |
using | Vector = typename ConfigSpaceT::Vector |
using | JacobianMatrix = typename ConfigSpaceT::JacobianMatrix |
using | Matrix = typename ConfigSpaceT::Matrix |
using | UniqueProperties = detail::GenericJointUniqueProperties< ConfigSpaceT > |
using | Properties = detail::GenericJointProperties< ConfigSpaceT > |
using | AspectState = typename Base::AspectState |
using | AspectProperties = typename Base::AspectProperties |
![]() | |
using | Impl = EmbedStateAndProperties< DerivedT, StateDataT, PropertiesDataT > |
using | Derived = typename Impl::Derived |
using | AspectStateData = typename Impl::AspectStateData |
using | AspectState = typename Impl::AspectState |
using | AspectPropertiesData = typename Impl::AspectPropertiesData |
using | AspectProperties = typename Impl::AspectProperties |
using | Aspect = typename Impl::Aspect |
using | Base = CompositeJoiner< Impl, CompositeBases... > |
Public Member Functions | |
DART_BAKE_SPECIALIZED_ASPECT_IRREGULAR (typename ThisClass::Aspect, GenericJointAspect) GenericJoint(const ThisClass &)=delete | |
virtual | ~GenericJoint () |
Destructor. | |
void | setProperties (const Properties &properties) |
Set the Properties of this GenericJoint. | |
void | setProperties (const UniqueProperties &properties) |
Set the Properties of this GenericJoint. | |
void | setAspectState (const AspectState &state) |
Set the AspectState of this GenericJoint. | |
void | setAspectProperties (const AspectProperties &properties) |
Set the AspectProperties of this GenericJoint. | |
Properties | getGenericJointProperties () const |
Get the Properties of this GenericJoint. | |
void | copy (const ThisClass &otherJoint) |
Copy the Properties of another GenericJoint. | |
void | copy (const ThisClass *otherJoint) |
Copy the Properties of another GenericJoint. | |
ThisClass & | operator= (const ThisClass &other) |
Same as copy(const GenericJoint&) | |
Eigen::Vector6d | getBodyConstraintWrench () const override |
Interface for generalized coordinates | |
DegreeOfFreedom * | getDof (std::size_t index) override |
const DegreeOfFreedom * | getDof (std::size_t _index) const override |
std::size_t | getNumDofs () const override |
const std::string & | setDofName (std::size_t index, const std::string &name, bool preserveName=true) override |
void | preserveDofName (size_t index, bool preserve) override |
bool | isDofNamePreserved (size_t index) const override |
const std::string & | getDofName (size_t index) const override |
size_t | getIndexInSkeleton (size_t index) const override |
size_t | getIndexInTree (size_t index) const override |
Command | |
void | setCommand (std::size_t index, double command) override |
double | getCommand (std::size_t index) const override |
void | setCommands (const Eigen::VectorXd &commands) override |
Eigen::VectorXd | getCommands () const override |
void | resetCommands () override |
Position | |
void | setPosition (std::size_t index, double position) override |
double | getPosition (std::size_t index) const override |
void | setPositions (const Eigen::VectorXd &positions) override |
Eigen::VectorXd | getPositions () const override |
void | setPositionLowerLimit (std::size_t index, double position) override |
double | getPositionLowerLimit (std::size_t index) const override |
void | setPositionLowerLimits (const Eigen::VectorXd &lowerLimits) override |
Eigen::VectorXd | getPositionLowerLimits () const override |
void | setPositionUpperLimit (std::size_t index, double position) override |
double | getPositionUpperLimit (std::size_t index) const override |
void | setPositionUpperLimits (const Eigen::VectorXd &upperLimits) override |
Eigen::VectorXd | getPositionUpperLimits () const override |
bool | hasPositionLimit (std::size_t index) const override |
void | resetPosition (std::size_t index) override |
void | resetPositions () override |
void | setInitialPosition (std::size_t index, double initial) override |
double | getInitialPosition (std::size_t index) const override |
void | setInitialPositions (const Eigen::VectorXd &initial) override |
Eigen::VectorXd | getInitialPositions () const override |
Fixed-size mutators and accessors | |
void | setPositionsStatic (const Vector &positions) |
Fixed-size version of setPositions() | |
const Vector & | getPositionsStatic () const |
Fixed-size version of getPositions() | |
void | setVelocitiesStatic (const Vector &velocities) |
Fixed-size version of setVelocities() | |
const Vector & | getVelocitiesStatic () const |
Fixed-size version of getVelocities() | |
void | setAccelerationsStatic (const Vector &accels) |
Fixed-size version of setAccelerations() | |
const Vector & | getAccelerationsStatic () const |
Fixed-size version of getAccelerations() | |
Velocity | |
void | setVelocity (std::size_t index, double velocity) override |
double | getVelocity (std::size_t index) const override |
void | setVelocities (const Eigen::VectorXd &velocities) override |
Eigen::VectorXd | getVelocities () const override |
void | setVelocityLowerLimit (std::size_t index, double velocity) override |
double | getVelocityLowerLimit (std::size_t index) const override |
void | setVelocityLowerLimits (const Eigen::VectorXd &lowerLimits) override |
Eigen::VectorXd | getVelocityLowerLimits () const override |
void | setVelocityUpperLimit (std::size_t index, double velocity) override |
double | getVelocityUpperLimit (std::size_t index) const override |
void | setVelocityUpperLimits (const Eigen::VectorXd &upperLimits) override |
Eigen::VectorXd | getVelocityUpperLimits () const override |
void | resetVelocity (std::size_t index) override |
void | resetVelocities () override |
void | setInitialVelocity (std::size_t index, double initial) override |
double | getInitialVelocity (std::size_t index) const override |
void | setInitialVelocities (const Eigen::VectorXd &initial) override |
Eigen::VectorXd | getInitialVelocities () const override |
Acceleration | |
void | setAcceleration (std::size_t index, double acceleration) override |
double | getAcceleration (std::size_t index) const override |
void | setAccelerations (const Eigen::VectorXd &accelerations) override |
Eigen::VectorXd | getAccelerations () const override |
void | setAccelerationLowerLimit (size_t index, double acceleration) override |
double | getAccelerationLowerLimit (std::size_t index) const override |
void | setAccelerationLowerLimits (const Eigen::VectorXd &lowerLimits) override |
Eigen::VectorXd | getAccelerationLowerLimits () const override |
void | setAccelerationUpperLimit (std::size_t index, double acceleration) override |
double | getAccelerationUpperLimit (std::size_t index) const override |
void | setAccelerationUpperLimits (const Eigen::VectorXd &upperLimits) override |
Eigen::VectorXd | getAccelerationUpperLimits () const override |
void | resetAccelerations () override |
Force | |
void | setForce (std::size_t index, double force) override |
double | getForce (std::size_t index) const override |
void | setForces (const Eigen::VectorXd &forces) override |
Eigen::VectorXd | getForces () const override |
void | setForceLowerLimit (size_t index, double force) override |
double | getForceLowerLimit (std::size_t index) const override |
void | setForceLowerLimits (const Eigen::VectorXd &lowerLimits) override |
Eigen::VectorXd | getForceLowerLimits () const override |
void | setForceUpperLimit (size_t index, double force) override |
double | getForceUpperLimit (size_t index) const override |
void | setForceUpperLimits (const Eigen::VectorXd &upperLimits) override |
Eigen::VectorXd | getForceUpperLimits () const override |
void | resetForces () override |
Velocity change | |
void | setVelocityChange (std::size_t index, double velocityChange) override |
double | getVelocityChange (std::size_t index) const override |
void | resetVelocityChanges () override |
Constraint impulse | |
void | setConstraintImpulse (std::size_t index, double impulse) override |
double | getConstraintImpulse (std::size_t index) const override |
void | resetConstraintImpulses () override |
Integration and finite difference | |
void | integratePositions (double dt) override |
void | integrateVelocities (double dt) override |
Eigen::VectorXd | getPositionDifferences (const Eigen::VectorXd &q2, const Eigen::VectorXd &q1) const override |
virtual Vector | getPositionDifferencesStatic (const Vector &q2, const Vector &q1) const |
Fixed-size version of getPositionDifferences() | |
Passive forces - spring, viscous friction, Coulomb friction | |
void | setSpringStiffness (std::size_t index, double k) override |
double | getSpringStiffness (std::size_t index) const override |
void | setRestPosition (std::size_t index, double q0) override |
double | getRestPosition (std::size_t index) const override |
void | setDampingCoefficient (std::size_t index, double coeff) override |
double | getDampingCoefficient (std::size_t index) const override |
void | setCoulombFriction (std::size_t index, double friction) override |
double | getCoulombFriction (std::size_t index) const override |
Energy | |
double | computePotentialEnergy () const override |
Jacobians | |
const math::Jacobian | getRelativeJacobian () const override |
const GenericJoint< ConfigSpaceT >::JacobianMatrix & | getRelativeJacobianStatic () const |
Fixed-size version of getRelativeJacobian() | |
math::Jacobian | getRelativeJacobian (const Eigen::VectorXd &_positions) const override |
virtual JacobianMatrix | getRelativeJacobianStatic (const Vector &positions) const =0 |
Fixed-size version of getRelativeJacobian(positions) | |
const math::Jacobian | getRelativeJacobianTimeDeriv () const override |
const JacobianMatrix & | getRelativeJacobianTimeDerivStatic () const |
Fixed-size version of getRelativeJacobianTimeDeriv() | |
![]() | |
template<typename... Args> | |
EmbedStateAndPropertiesOnTopOf (Args &&... args) | |
Static Public Attributes | |
static constexpr std::size_t | NumDofs = ConfigSpaceT::NumDofs |
Protected Member Functions | |
GenericJoint (const Properties &properties) | |
void | registerDofs () override |
Recursive algorithm routines for equations of motion | |
void | addChildBiasForceForInvMassMatrix (Eigen::Vector6d &parentBiasForce, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasForce) override |
void | addChildBiasForceForInvAugMassMatrix (Eigen::Vector6d &parentBiasForce, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasForce) override |
void | updateTotalForceForInvMassMatrix (const Eigen::Vector6d &bodyForce) override |
void | getInvMassMatrixSegment (Eigen::MatrixXd &invMassMat, const size_t col, const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &spatialAcc) override |
void | getInvAugMassMatrixSegment (Eigen::MatrixXd &invMassMat, const size_t col, const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &spatialAcc) override |
void | addInvMassMatrixSegmentTo (Eigen::Vector6d &acc) override |
Eigen::VectorXd | getSpatialToGeneralized (const Eigen::Vector6d &spatial) override |
Protected Attributes | |
std::array< DegreeOfFreedom *, NumDofs > | mDofs |
Array of DegreeOfFreedom objects. | |
Vector | mVelocityChanges |
Change of generalized velocity. | |
Vector | mImpulses |
Generalized impulse. | |
Vector | mConstraintImpulses |
Generalized constraint impulse. | |
JacobianMatrix | mJacobian |
Spatial Jacobian expressed in the child body frame. More... | |
JacobianMatrix | mJacobianDeriv |
Time derivative of spatial Jacobian expressed in the child body frame. More... | |
Matrix | mInvProjArtInertia |
Inverse of projected articulated inertia. More... | |
Matrix | mInvProjArtInertiaImplicit |
Inverse of projected articulated inertia for implicit joint damping and spring forces. More... | |
Vector | mTotalForce |
Total force projected on joint space. | |
Vector | mTotalImpulse |
Total impluse projected on joint space. | |
Vector | mInvM_a |
Vector | mInvMassMatrixSegment |
Recursive dynamics routines | |
const Matrix & | getInvProjArtInertia () const |
Get the inverse of the projected articulated inertia. | |
const Matrix & | getInvProjArtInertiaImplicit () const |
Get the inverse of projected articulated inertia for implicit joint damping and spring forces. | |
void | updateRelativeSpatialVelocity () const override |
void | updateRelativeSpatialAcceleration () const override |
void | updateRelativePrimaryAcceleration () const override |
void | addVelocityTo (Eigen::Vector6d &vel) override |
void | setPartialAccelerationTo (Eigen::Vector6d &partialAcceleration, const Eigen::Vector6d &childVelocity) override |
void | addAccelerationTo (Eigen::Vector6d &acc) override |
void | addVelocityChangeTo (Eigen::Vector6d &velocityChange) override |
void | addChildArtInertiaTo (Eigen::Matrix6d &parentArtInertia, const Eigen::Matrix6d &childArtInertia) override |
void | addChildArtInertiaImplicitTo (Eigen::Matrix6d &parentArtInertiaImplicit, const Eigen::Matrix6d &childArtInertiaImplicit) override |
void | updateInvProjArtInertia (const Eigen::Matrix6d &artInertia) override |
void | updateInvProjArtInertiaImplicit (const Eigen::Matrix6d &artInertia, double timeStep) override |
void | addChildBiasForceTo (Eigen::Vector6d &parentBiasForce, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasForce, const Eigen::Vector6d &childPartialAcc) override |
void | addChildBiasImpulseTo (Eigen::Vector6d &parentBiasImpulse, const Eigen::Matrix6d &childArtInertia, const Eigen::Vector6d &childBiasImpulse) override |
void | updateTotalForce (const Eigen::Vector6d &bodyForce, double timeStep) override |
void | updateTotalImpulse (const Eigen::Vector6d &bodyImpulse) override |
void | resetTotalImpulses () override |
void | updateAcceleration (const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &spatialAcc) override |
void | updateVelocityChange (const Eigen::Matrix6d &artInertia, const Eigen::Vector6d &velocityChange) override |
void | updateForceID (const Eigen::Vector6d &bodyForce, double timeStep, bool withDampingForces, bool withSpringForces) override |
void | updateForceFD (const Eigen::Vector6d &bodyForce, double timeStep, bool withDampingForcese, bool withSpringForces) override |
void | updateImpulseID (const Eigen::Vector6d &bodyImpulse) override |
void | updateImpulseFD (const Eigen::Vector6d &bodyImpulse) override |
void | updateConstrainedTerms (double timeStep) override |
|
mutableprotected |
Inverse of projected articulated inertia.
Do not use directly! Use getInvProjArtInertia() to get this quantity
|
mutableprotected |
Inverse of projected articulated inertia for implicit joint damping and spring forces.
Do not use directly! Use getInvProjArtInertiaImplicit() to access this quantity
|
mutableprotected |
Spatial Jacobian expressed in the child body frame.
Do not use directly! Use getRelativeJacobianStatic() to access this quantity
|
mutableprotected |
Time derivative of spatial Jacobian expressed in the child body frame.
Do not use directly! Use getRelativeJacobianTimeDerivStatic() to access this quantity