template<typename T>
class drake::multibody::RevoluteJoint< T >
This Joint allows two bodies to rotate relatively to one another around a common axis.
That is, given a frame Jp attached to the parent body P and a frame Jc attached to the child body C (see the Joint class's documentation), this Joint allows frames Jp and Jc to rotate with respect to each other about an axis â. The rotation angle's sign is defined such that child body C rotates about axis â according to the right hand rule, with thumb aligned in the axis direction. Axis vector â is constant and has the same components in both frames Jp and Jc, that is, â_Jp = â_Jc
.
- Template Parameters
-
|
| RevoluteJoint (const std::string &name, const Frame< T > &frame_on_parent, const Frame< T > &frame_on_child, const Vector3< double > &axis, double damping=0) |
| Constructor to create a revolute joint between two bodies so that frame Jp attached to the parent body P and frame Jc attached to the child body C, rotate relatively to one another about a common axis. More...
|
|
| RevoluteJoint (const std::string &name, const Frame< T > &frame_on_parent, const Frame< T > &frame_on_child, const Vector3< double > &axis, double pos_lower_limit, double pos_upper_limit, double damping=0) |
| Constructor to create a revolute joint between two bodies so that frame Jp attached to the parent body P and frame Jc attached to the child body C, rotate relatively to one another about a common axis. More...
|
|
| ~RevoluteJoint () final |
|
const std::string & | type_name () const final |
| Returns a string identifying the type of this joint, such as "revolute" or "prismatic". More...
|
|
const Vector3< double > & | revolute_axis () const |
| Returns the axis of revolution of this joint as a unit vector. More...
|
|
double | default_damping () const |
| Returns this joint's default damping constant in N⋅m⋅s. More...
|
|
void | set_default_damping (double damping) |
| Sets the default value of viscous damping for this joint, in N⋅m⋅s. More...
|
|
double | position_lower_limit () const |
| Returns the position lower limit for this joint in radians. More...
|
|
double | position_upper_limit () const |
| Returns the position upper limit for this joint in radians. More...
|
|
double | velocity_lower_limit () const |
| Returns the velocity lower limit for this joint in radians / s. More...
|
|
double | velocity_upper_limit () const |
| Returns the velocity upper limit for this joint in radians / s. More...
|
|
double | acceleration_lower_limit () const |
| Returns the acceleration lower limit for this joint in radians / s². More...
|
|
double | acceleration_upper_limit () const |
| Returns the acceleration upper limit for this joint in radians / s². More...
|
|
double | get_default_angle () const |
| Gets the default rotation angle. More...
|
|
void | set_default_angle (double angle) |
| Sets the default_positions of this joint (in this case a single angle). More...
|
|
void | AddInTorque (const systems::Context< T > &context, const T &torque, MultibodyForces< T > *forces) const |
| Adds into forces a given torque for this joint that is to be applied about the joint's axis. More...
|
|
|
| RevoluteJoint (const RevoluteJoint &)=delete |
|
RevoluteJoint & | operator= (const RevoluteJoint &)=delete |
|
| RevoluteJoint (RevoluteJoint &&)=delete |
|
RevoluteJoint & | operator= (RevoluteJoint &&)=delete |
|
|
const T & | get_angle (const Context< T > &context) const |
| Gets the rotation angle of this mobilizer from context . More...
|
|
const RevoluteJoint< T > & | set_angle (Context< T > *context, const T &angle) const |
| Sets the context so that the generalized coordinate corresponding to the rotation angle of this joint equals angle . More...
|
|
void | set_random_angle_distribution (const symbolic::Expression &angle) |
|
const T & | get_angular_rate (const Context< T > &context) const |
| Gets the rate of change, in radians per second, of this joint's angle (see get_angle()) from context . More...
|
|
const RevoluteJoint< T > & | set_angular_rate (Context< T > *context, const T &angle) const |
| Sets the rate of change, in radians per second, of this this joint's angle to angle . More...
|
|
const T & | GetDamping (const Context< T > &context) const |
| Returns the Context dependent damping coefficient stored as a parameter in context . More...
|
|
void | SetDamping (Context< T > *context, const T &damping) const |
| Sets the value of the viscous damping coefficient for this joint, stored as a parameter in context . More...
|
|
Public Member Functions inherited from Joint< T > |
| Joint (const std::string &name, const Frame< T > &frame_on_parent, const Frame< T > &frame_on_child, VectorX< double > damping, const VectorX< double > &pos_lower_limits, const VectorX< double > &pos_upper_limits, const VectorX< double > &vel_lower_limits, const VectorX< double > &vel_upper_limits, const VectorX< double > &acc_lower_limits, const VectorX< double > &acc_upper_limits) |
| Creates a joint between two Frame objects which imposes a given kinematic relation between frame F attached on the parent body P and frame M attached on the child body B. More...
|
|
| Joint (const std::string &name, const Frame< T > &frame_on_parent, const Frame< T > &frame_on_child, const VectorX< double > &pos_lower_limits, const VectorX< double > &pos_upper_limits, const VectorX< double > &vel_lower_limits, const VectorX< double > &vel_upper_limits, const VectorX< double > &acc_lower_limits, const VectorX< double > &acc_upper_limits) |
| Additional constructor overload for joints with zero damping. More...
|
|
virtual | ~Joint () |
|
JointIndex | index () const |
| Returns this element's unique index. More...
|
|
JointOrdinal | ordinal () const |
| Returns this element's unique ordinal. More...
|
|
const std::string & | name () const |
| Returns the name of this joint. More...
|
|
const RigidBody< T > & | parent_body () const |
| Returns a const reference to the parent body P. More...
|
|
const RigidBody< T > & | child_body () const |
| Returns a const reference to the child body B. More...
|
|
const Frame< T > & | frame_on_parent () const |
| Returns a const reference to the frame F attached on the parent body P. More...
|
|
const Frame< T > & | frame_on_child () const |
| Returns a const reference to the frame M attached on the child body B. More...
|
|
int | velocity_start () const |
| Returns the index to the first generalized velocity for this joint within the vector v of generalized velocities for the full multibody system. More...
|
|
int | num_velocities () const |
| Returns the number of generalized velocities describing this joint. More...
|
|
int | position_start () const |
| Returns the index to the first generalized position for this joint within the vector q of generalized positions for the full multibody system. More...
|
|
int | num_positions () const |
| Returns the number of generalized positions describing this joint. More...
|
|
bool | can_rotate () const |
| Returns true if this joint's mobility allows relative rotation of the two frames associated with this joint. More...
|
|
bool | can_translate () const |
| Returns true if this joint's mobility allows relative translation of the two frames associated with this joint. More...
|
|
std::string | position_suffix (int position_index_in_joint) const |
| Returns a string suffix (e.g. More...
|
|
std::string | velocity_suffix (int velocity_index_in_joint) const |
| Returns a string suffix (e.g. More...
|
|
const T & | GetOnePosition (const systems::Context< T > &context) const |
| Returns the position coordinate for joints with a single degree of freedom. More...
|
|
const T & | GetOneVelocity (const systems::Context< T > &context) const |
| Returns the velocity coordinate for joints with a single degree of freedom. More...
|
|
void | AddInOneForce (const systems::Context< T > &context, int joint_dof, const T &joint_tau, MultibodyForces< T > *forces) const |
| Adds into forces a force along the one of the joint's degrees of freedom indicated by index joint_dof . More...
|
|
void | AddInDamping (const systems::Context< T > &context, MultibodyForces< T > *forces) const |
| Adds into forces the force due to damping within this joint. More...
|
|
void | Lock (systems::Context< T > *context) const |
| Lock the joint. More...
|
|
void | Unlock (systems::Context< T > *context) const |
| Unlock the joint. More...
|
|
bool | is_locked (const systems::Context< T > &context) const |
|
const VectorX< double > & | default_damping_vector () const |
| Returns all default damping coefficients for joints that model viscous damping, of size num_velocities(). More...
|
|
const VectorX< T > & | GetDampingVector (const systems::Context< T > &context) const |
| Returns the Context dependent damping coefficients stored as parameters in context . More...
|
|
void | set_default_damping_vector (const VectorX< double > &damping) |
| Sets the default value of the viscous damping coefficients for this joint. More...
|
|
void | SetDampingVector (systems::Context< T > *context, const VectorX< T > &damping) const |
| Sets the value of the viscous damping coefficients for this joint, stored as parameters in context . More...
|
|
| Joint (const Joint &)=delete |
|
Joint & | operator= (const Joint &)=delete |
|
| Joint (Joint &&)=delete |
|
Joint & | operator= (Joint &&)=delete |
|
const VectorX< double > & | position_lower_limits () const |
| Returns the position lower limits. More...
|
|
const VectorX< double > & | position_upper_limits () const |
| Returns the position upper limits. More...
|
|
const VectorX< double > & | velocity_lower_limits () const |
| Returns the velocity lower limits. More...
|
|
const VectorX< double > & | velocity_upper_limits () const |
| Returns the velocity upper limits. More...
|
|
const VectorX< double > & | acceleration_lower_limits () const |
| Returns the acceleration lower limits. More...
|
|
const VectorX< double > & | acceleration_upper_limits () const |
| Returns the acceleration upper limits. More...
|
|
void | set_position_limits (const VectorX< double > &lower_limits, const VectorX< double > &upper_limits) |
| Sets the position limits to lower_limits and upper_limits . More...
|
|
void | set_velocity_limits (const VectorX< double > &lower_limits, const VectorX< double > &upper_limits) |
| Sets the velocity limits to lower_limits and upper_limits . More...
|
|
void | set_acceleration_limits (const VectorX< double > &lower_limits, const VectorX< double > &upper_limits) |
| Sets the acceleration limits to lower_limits and upper_limits . More...
|
|
void | set_default_positions (const VectorX< double > &default_positions) |
| Sets the default generalized position coordinates q₀ to default_positions . More...
|
|
const VectorX< double > & | default_positions () const |
| Returns the default generalized position coordinates q₀. More...
|
|
void | SetPositions (systems::Context< T > *context, const Eigen::Ref< const VectorX< T >> &positions) const |
| Sets in the given context the generalized position coordinates q for this joint to positions . More...
|
|
Eigen::Ref< const VectorX< T > > | GetPositions (const systems::Context< T > &context) const |
| Returns the current value in the given context of the generalized coordinates q for this joint. More...
|
|
void | SetVelocities (systems::Context< T > *context, const Eigen::Ref< const VectorX< T >> &velocities) const |
| Sets in the given context the generalized velocity coordinates v for this joint to velocities . More...
|
|
Eigen::Ref< const VectorX< T > > | GetVelocities (const systems::Context< T > &context) const |
| Returns the current value in the given context of the generalized velocities v for this joint. More...
|
|
void | SetDefaultPose (const math::RigidTransform< double > &X_FM) |
| Sets this joint's default generalized positions q₀ such that the pose of the child frame M in the parent frame F best matches the given pose. More...
|
|
math::RigidTransform< double > | GetDefaultPose () const |
| Returns this joint's default pose as a RigidTransform X_FM. More...
|
|
void | SetPose (systems::Context< T > *context, const math::RigidTransform< T > &X_FM) const |
| Sets in the given context this joint's generalized positions q such that the pose of the child frame M in the parent frame F best matches the given pose. More...
|
|
math::RigidTransform< T > | GetPose (const systems::Context< T > &context) const |
| Returns this joint's current pose using its position coordinates q taken from the given context and converting that to a RigidTransform X_FM(q). More...
|
|
void | SetSpatialVelocity (systems::Context< T > *context, const SpatialVelocity< T > &V_FM) const |
| Sets in the given context this joint's generalized velocities v such that the spatial velocity of the child frame M in the parent frame F best matches the given spatial velocity. More...
|
|
SpatialVelocity< T > | GetSpatialVelocity (const systems::Context< T > &context) const |
| Given the generalized positions q and generalized velocities v for this joint in the given context , returns the cross-joint spatial velocity V_FM. More...
|
|
void | SetDefaultPosePair (const Quaternion< double > &q_FM, const Vector3< double > &p_FM) |
| (Advanced) This is the same as SetDefaultPose() except it takes the pose as a (quaternion, translation vector) pair. More...
|
|
std::pair< Eigen::Quaternion< double >, Vector3< double > > | GetDefaultPosePair () const |
| (Advanced) This is the same as GetDefaultPose() except it returns this joint's default pose as a (quaternion, translation vector) pair. More...
|
|
void | SetPosePair (systems::Context< T > *context, const Quaternion< T > &q_FM, const Vector3< T > &p_FM) const |
| (Advanced) This is the same as SetPose() except it takes the pose as a (quaternion, translation vector) pair. More...
|
|
std::pair< Eigen::Quaternion< T >, Vector3< T > > | GetPosePair (const systems::Context< T > &context) const |
| (Advanced) This is the same as GetPose() except it returns this joint's pose in the given context as a (quaternion, translation vector) pair. More...
|
|
Public Member Functions inherited from MultibodyElement< T > |
virtual | ~MultibodyElement () |
|
ModelInstanceIndex | model_instance () const |
| Returns the ModelInstanceIndex of the model instance to which this element belongs. More...
|
|
template<typename = void> |
const MultibodyPlant< T > & | GetParentPlant () const |
| Returns the MultibodyPlant that owns this MultibodyElement. More...
|
|
void | DeclareParameters (internal::MultibodyTreeSystem< T > *tree_system) |
| Declares MultibodyTreeSystem Parameters at MultibodyTreeSystem::Finalize() time. More...
|
|
void | SetDefaultParameters (systems::Parameters< T > *parameters) const |
| Sets default values of parameters belonging to each MultibodyElement in parameters at a call to MultibodyTreeSystem::SetDefaultParameters(). More...
|
|
void | DeclareDiscreteState (internal::MultibodyTreeSystem< T > *tree_system) |
| Declares MultibodyTreeSystem discrete states. More...
|
|
void | DeclareCacheEntries (internal::MultibodyTreeSystem< T > *tree_system) |
| (Advanced) Declares all cache entries needed by this element. More...
|
|
bool | is_ephemeral () const |
| Returns true if this MultibodyElement was added during Finalize() rather than something a user added. More...
|
|
void | set_is_ephemeral (bool is_ephemeral) |
| (Internal use only) Sets the is_ephemeral flag to the indicated value. More...
|
|
| MultibodyElement (const MultibodyElement &)=delete |
|
MultibodyElement & | operator= (const MultibodyElement &)=delete |
|
| MultibodyElement (MultibodyElement &&)=delete |
|
MultibodyElement & | operator= (MultibodyElement &&)=delete |
|
|
void | DoAddInOneForce (const systems::Context< T > &, int joint_dof, const T &joint_tau, MultibodyForces< T > *forces) const final |
| Joint<T> override called through public NVI, Joint::AddInForce(). More...
|
|
void | DoAddInDamping (const systems::Context< T > &context, MultibodyForces< T > *forces) const final |
| Joint<T> override called through public NVI, Joint::AddInDamping(). More...
|
|
Protected Member Functions inherited from Joint< T > |
virtual void | DoSetDefaultPosePair (const Quaternion< double > &q_FM, const Vector3< double > &p_FM) |
| Implementation of the NVI SetDefaultPose(). More...
|
|
virtual std::pair< Eigen::Quaternion< double >, Vector3< double > > | DoGetDefaultPosePair () const |
| Implementation of the NVI GetDefaultPose(). More...
|
|
void | DoSetTopology (const internal::MultibodyTreeTopology &) override |
| Implementation of the NVI SetTopology(). More...
|
|
std::pair< const Frame< T > *, const Frame< T > * > | tree_frames (bool use_reversed_mobilizer) const |
| Utility for concrete joint implementations to use to select the inboard/outboard frames for a tree in the spanning forest, given whether they should be reversed from the parent/child frames that are members of this Joint object. More...
|
|
template<template< typename > class ConcreteMobilizer> |
const ConcreteMobilizer< T > & | get_mobilizer_downcast () const |
| (Internal use only) Returns the mobilizer implementing this joint, downcast to its specific type. More...
|
|
template<template< typename > class ConcreteMobilizer> |
ConcreteMobilizer< T > & | get_mutable_mobilizer_downcast () |
| (Internal use only) Mutable flavor of get_mobilizer_downcast(). More...
|
|
bool | has_mobilizer () const |
| (Internal use only) Returns true if this Joint has an implementing Mobilizer. More...
|
|
Protected Member Functions inherited from MultibodyElement< T > |
| MultibodyElement () |
| Default constructor made protected so that sub-classes can still declare their default constructors if they need to. More...
|
|
| MultibodyElement (ModelInstanceIndex model_instance) |
| Constructor which allows specifying a model instance. More...
|
|
| MultibodyElement (ModelInstanceIndex model_instance, int64_t index) |
| Both the model instance and element index are specified. More...
|
|
template<typename ElementIndexType > |
ElementIndexType | index_impl () const |
| Returns this element's unique index. More...
|
|
template<typename ElementOrdinalType = int64_t> |
ElementOrdinalType | ordinal_impl () const |
| Returns this element's unique ordinal. More...
|
|
const internal::MultibodyTree< T > & | get_parent_tree () const |
| Returns a constant reference to the parent MultibodyTree that owns this element. More...
|
|
const internal::MultibodyTreeSystem< T > & | GetParentTreeSystem () const |
| Returns a constant reference to the parent MultibodyTreeSystem that owns the parent MultibodyTree that owns this element. More...
|
|
void | SetTopology (const internal::MultibodyTreeTopology &tree) |
| Gives MultibodyElement-derived objects the opportunity to retrieve their topology after MultibodyTree::Finalize() is invoked. More...
|
|
virtual void | DoDeclareDiscreteState (internal::MultibodyTreeSystem< T > *) |
| Implementation of the NVI DeclareDiscreteState(). More...
|
|
virtual void | DoDeclareCacheEntries (internal::MultibodyTreeSystem< T > *) |
| Derived classes must override this method to declare cache entries needed by this element. More...
|
|
systems::NumericParameterIndex | DeclareNumericParameter (internal::MultibodyTreeSystem< T > *tree_system, const systems::BasicVector< T > &model_vector) |
| To be used by MultibodyElement-derived objects when declaring parameters in their implementation of DoDeclareParameters(). More...
|
|
systems::AbstractParameterIndex | DeclareAbstractParameter (internal::MultibodyTreeSystem< T > *tree_system, const AbstractValue &model_value) |
| To be used by MultibodyElement-derived objects when declaring parameters in their implementation of DoDeclareParameters(). More...
|
|
systems::DiscreteStateIndex | DeclareDiscreteState (internal::MultibodyTreeSystem< T > *tree_system, const VectorX< T > &model_value) |
| To be used by MultibodyElement-derived objects when declaring discrete states in their implementation of DoDeclareDiscreteStates(). More...
|
|
systems::CacheEntry & | DeclareCacheEntry (internal::MultibodyTreeSystem< T > *tree_system, std::string description, systems::ValueProducer value_producer, std::set< systems::DependencyTicket > prerequisites_of_calc) |
| To be used by MultibodyElement-derived objects when declaring cache entries in their implementation of DoDeclareCacheEntries(). More...
|
|
bool | has_parent_tree () const |
| Returns true if this multibody element has a parent tree, otherwise false. More...
|
|