33 #ifndef DART_DYNAMICS_DETAIL_GenericJointASPECT_HPP_ 34 #define DART_DYNAMICS_DETAIL_GenericJointASPECT_HPP_ 36 #include "dart/common/AspectWithVersion.hpp" 37 #include "dart/dynamics/Joint.hpp" 38 #include "dart/math/Helpers.hpp" 44 template <
class ConfigSpaceT>
50 template <
class ConfigSpaceT>
53 constexpr
static std::size_t NumDofs = ConfigSpaceT::NumDofs;
54 using EuclideanPoint =
typename ConfigSpaceT::EuclideanPoint;
55 using Vector =
typename ConfigSpaceT::Vector;
73 const EuclideanPoint& positions = EuclideanPoint::Zero(),
74 const Vector& velocities = Vector::Zero(),
75 const Vector& accelerations = Vector::Zero(),
76 const Vector& forces = Vector::Zero(),
77 const Vector& commands = Vector::Zero());
82 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
86 template <
class ConfigSpaceT>
89 constexpr
static std::size_t NumDofs = ConfigSpaceT::NumDofs;
90 using EuclideanPoint =
typename ConfigSpaceT::EuclideanPoint;
91 using Vector =
typename ConfigSpaceT::Vector;
92 using BoolArray = std::array<bool, NumDofs>;
93 using StringArray = std::array<std::string, NumDofs>;
146 const EuclideanPoint& positionLowerLimits
147 = EuclideanPoint::Constant(-math::constantsd::inf()),
148 const EuclideanPoint& positionUpperLimits
149 = EuclideanPoint::Constant(math::constantsd::inf()),
150 const EuclideanPoint& initialPositions = EuclideanPoint::Zero(),
151 const Vector& velocityLowerLimits
152 = Vector::Constant(-math::constantsd::inf()),
153 const Vector& velocityUpperLimits
154 = Vector::Constant(math::constantsd::inf()),
155 const Vector& initialVelocities = Vector::Zero(),
156 const Vector& accelerationLowerLimits
157 = Vector::Constant(-math::constantsd::inf()),
158 const Vector& accelerationUpperLimits
159 = Vector::Constant(math::constantsd::inf()),
160 const Vector& forceLowerLimits
161 = Vector::Constant(-math::constantsd::inf()),
162 const Vector& forceUpperLimits
163 = Vector::Constant(math::constantsd::inf()),
164 const Vector& springStiffness = Vector::Zero(),
165 const EuclideanPoint& restPosition = EuclideanPoint::Zero(),
166 const Vector& dampingCoefficient = Vector::Zero(),
167 const Vector& coulombFrictions = Vector::Zero());
184 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
188 template <
class ConfigSpaceT>
201 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
211 template <
class ConfigSpaceT>
214 template <
class ConfigSpaceT>
218 template <
class ConfigSpaceT>
220 const EuclideanPoint& positions,
221 const Vector& velocities,
222 const Vector& accelerations,
223 const Vector& forces,
224 const Vector& commands)
235 template <
class ConfigSpaceT>
237 const EuclideanPoint& positionLowerLimits,
238 const EuclideanPoint& positionUpperLimits,
239 const EuclideanPoint& initialPositions,
240 const Vector& velocityLowerLimits,
241 const Vector& velocityUpperLimits,
242 const Vector& initialVelocities,
243 const Vector& accelerationLowerLimits,
244 const Vector& accelerationUpperLimits,
245 const Vector& forceLowerLimits,
246 const Vector& forceUpperLimits,
247 const Vector& springStiffness,
248 const EuclideanPoint& restPosition,
249 const Vector& dampingCoefficient,
250 const Vector& coulombFrictions)
251 : mPositionLowerLimits(positionLowerLimits),
252 mPositionUpperLimits(positionUpperLimits),
253 mInitialPositions(initialPositions),
254 mVelocityLowerLimits(velocityLowerLimits),
255 mVelocityUpperLimits(velocityUpperLimits),
256 mInitialVelocities(initialVelocities),
257 mAccelerationLowerLimits(accelerationLowerLimits),
258 mAccelerationUpperLimits(accelerationUpperLimits),
259 mForceLowerLimits(forceLowerLimits),
260 mForceUpperLimits(forceUpperLimits),
261 mSpringStiffnesses(springStiffness),
262 mRestPositions(restPosition),
263 mDampingCoefficients(dampingCoefficient),
264 mFrictions(coulombFrictions)
266 for (
auto i = 0u; i < NumDofs; ++i)
268 mPreserveDofNames[i] =
false;
269 mDofNames[i] = std::string();
274 template <
class ConfigSpaceT>
277 : mPositionLowerLimits(_other.mPositionLowerLimits),
278 mPositionUpperLimits(_other.mPositionUpperLimits),
279 mInitialPositions(_other.mInitialPositions),
280 mVelocityLowerLimits(_other.mVelocityLowerLimits),
281 mVelocityUpperLimits(_other.mVelocityUpperLimits),
282 mInitialVelocities(_other.mInitialVelocities),
283 mAccelerationLowerLimits(_other.mAccelerationLowerLimits),
284 mAccelerationUpperLimits(_other.mAccelerationUpperLimits),
285 mForceLowerLimits(_other.mForceLowerLimits),
286 mForceUpperLimits(_other.mForceUpperLimits),
287 mSpringStiffnesses(_other.mSpringStiffnesses),
288 mRestPositions(_other.mRestPositions),
289 mDampingCoefficients(_other.mDampingCoefficients),
290 mFrictions(_other.mFrictions)
292 for (
auto i = 0u; i < NumDofs; ++i)
300 template <
class ConfigSpaceT>
322 for (
auto i = 0u; i < NumDofs; ++i)
332 template <
class ConfigSpaceT>
343 template <
class Derived,
class ConfigSpaceT>
355 #endif // DART_DYNAMICS_DETAIL_GenericJointASPECT_HPP_ Definition: JointAspect.hpp:111
StringArray mDofNames
The name of the DegreesOfFreedom for this Joint.
Definition: GenericJointAspect.hpp:142
class Joint
Definition: Joint.hpp:57
Vector mForceLowerLimits
Min value allowed.
Definition: GenericJointAspect.hpp:120
Vector mAccelerationLowerLimits
Min value allowed.
Definition: GenericJointAspect.hpp:114
Vector mVelocityUpperLimits
Max value allowed.
Definition: GenericJointAspect.hpp:108
Definition: GenericJointAspect.hpp:87
Vector mAccelerationUpperLimits
upper limit of generalized acceleration
Definition: GenericJointAspect.hpp:117
This is an alternative to EmbedStateAndProperties which allows your class to also inherit other Compo...
Definition: EmbeddedAspect.hpp:431
BoolArray mPreserveDofNames
True if the name of the corresponding DOF is not allowed to be overwritten.
Definition: GenericJointAspect.hpp:139
Definition: GenericJointAspect.hpp:51
EuclideanPoint mRestPositions
Rest joint position for joint spring.
Definition: GenericJointAspect.hpp:129
Vector mVelocities
Generalized velocity.
Definition: GenericJointAspect.hpp:61
Definition: Aspect.cpp:40
Vector mInitialVelocities
Initial velocities.
Definition: GenericJointAspect.hpp:111
Vector mCommands
Command.
Definition: GenericJointAspect.hpp:70
Vector mDampingCoefficients
Joint damping coefficient.
Definition: GenericJointAspect.hpp:132
EuclideanPoint mPositions
Position.
Definition: GenericJointAspect.hpp:58
Vector mAccelerations
Generalized acceleration.
Definition: GenericJointAspect.hpp:64
Vector mForceUpperLimits
Max value allowed.
Definition: GenericJointAspect.hpp:123
EuclideanPoint mPositionUpperLimits
Upper limit of position.
Definition: GenericJointAspect.hpp:99
Definition: GenericJointAspect.hpp:45
Vector mForces
Generalized force.
Definition: GenericJointAspect.hpp:67
GenericJointUniqueProperties(const EuclideanPoint &positionLowerLimits=EuclideanPoint::Constant(-math::constantsd::inf()), const EuclideanPoint &positionUpperLimits=EuclideanPoint::Constant(math::constantsd::inf()), const EuclideanPoint &initialPositions=EuclideanPoint::Zero(), const Vector &velocityLowerLimits=Vector::Constant(-math::constantsd::inf()), const Vector &velocityUpperLimits=Vector::Constant(math::constantsd::inf()), const Vector &initialVelocities=Vector::Zero(), const Vector &accelerationLowerLimits=Vector::Constant(-math::constantsd::inf()), const Vector &accelerationUpperLimits=Vector::Constant(math::constantsd::inf()), const Vector &forceLowerLimits=Vector::Constant(-math::constantsd::inf()), const Vector &forceUpperLimits=Vector::Constant(math::constantsd::inf()), const Vector &springStiffness=Vector::Zero(), const EuclideanPoint &restPosition=EuclideanPoint::Zero(), const Vector &dampingCoefficient=Vector::Zero(), const Vector &coulombFrictions=Vector::Zero())
Default constructor.
Definition: GenericJointAspect.hpp:236
Vector mSpringStiffnesses
Joint spring stiffness.
Definition: GenericJointAspect.hpp:126
Definition: GenericJointAspect.hpp:189
EuclideanPoint mPositionLowerLimits
Lower limit of position.
Definition: GenericJointAspect.hpp:96
EuclideanPoint mInitialPositions
Initial positions.
Definition: GenericJointAspect.hpp:102
GenericJointUniqueProperties & operator=(const GenericJointUniqueProperties &other)
Copy assignment operator.
Definition: GenericJointAspect.hpp:302
Vector mFrictions
Joint Coulomb friction.
Definition: GenericJointAspect.hpp:135
Vector mVelocityLowerLimits
Min value allowed.
Definition: GenericJointAspect.hpp:105