Drake
JointActuator< T > Class Template Referencefinal

## Detailed Description

### template<typename T> class drake::multibody::JointActuator< T >

The JointActuator class is mostly a simple bookkeeping structure to represent an actuator acting on a given Joint.

It helps to flag whether a given Joint is actuated or not so that MultibodyTree clients can apply forces on actuated joints through their actuators, see AddInOneForce().

Template Parameters
 T The scalar type. Must be a valid Eigen scalar.

Instantiated templates for the following kinds of T's are provided:

They are already available to link against in the containing library. No other values for T are currently supported.

#include <drake/multibody/tree/multibody_tree.h>

## Public Member Functions

JointActuator (const std::string &name, const Joint< T > &joint, double effort_limit=std::numeric_limits< double >::infinity())
Creates an actuator for joint with the given name. More...

const std::string & name () const
Returns the name of the actuator. More...

const Joint< T > & joint () const
Returns a reference to the joint actuated by this JointActuator. More...

void AddInOneForce (const systems::Context< T > &context, int joint_dof, const T &tau, MultibodyForces< T > *forces) const
Adds into forces a force along one of the degrees of freedom of the Joint actuated by this actuator. More...

void set_actuation_vector (const Eigen::Ref< const VectorX< T >> &u_instance, EigenPtr< VectorX< T >> u) const
Given the actuation values u_instance for this actuator, this method sets the actuation vector u for the entire MultibodyTree model to which this actuator belongs to. More...

double effort_limit () const
Returns the actuator effort limit. More...

Does not allow copy, move, or assignment
JointActuator (const JointActuator &)=delete

JointActuatoroperator= (const JointActuator &)=delete

JointActuator (JointActuator &&)=delete

JointActuatoroperator= (JointActuator &&)=delete

## Friends

template<typename U >
class JointActuator

## ◆ JointActuator() [1/3]

 JointActuator ( const JointActuator< T > & )
delete

## ◆ JointActuator() [2/3]

 JointActuator ( JointActuator< T > && )
delete

## ◆ JointActuator() [3/3]

 JointActuator ( const std::string & name, const Joint< T > & joint, double effort_limit = std::numeric_limits::infinity() )

Creates an actuator for joint with the given name.

The name must be unique within the given multibody model. This is enforced by MultibodyPlant::AddJointActuator().

Parameters
 [in] name A string with a name identifying this actuator. [in] joint The joint that the created actuator will act on. [in] effort_limit The maximum effort for the actuator. It must be strictly positive, otherwise an std::exception is thrown. If +∞, the actuator has no limit, which is the default. The effort limit has physical units in accordance to the joint type it actuates. For instance, it will have units of N⋅m (torque) for revolute joints while it will have units of N (force) for prismatic joints.

## Member Function Documentation

 void AddInOneForce ( const systems::Context< T > & context, int joint_dof, const T & tau, MultibodyForces< T > * forces ) const

Adds into forces a force along one of the degrees of freedom of the Joint actuated by this actuator.

The meaning for this degree of freedom, sign conventions and even its dimensional units depend on the specific joint sub-class being actuated. For a RevoluteJoint for instance, joint_dof can only be 0 since revolute joints's motion subspace only has one degree of freedom, while the units of tau are those of torque (N⋅m in the MKS system of units). For multi-dof joints please refer to the documentation provided by specific joint sub-classes regarding the meaning of joint_dof.

Parameters
 [in] context The context storing the state and parameters for the model to which this joint belongs. [in] joint_dof Index specifying one of the degrees of freedom for this joint. The index must be in the range 0 <= joint_dof < num_velocities() or otherwise this method will throw an exception. [in] joint_tau Generalized force corresponding to the degree of freedom indicated by joint_dof to be added into forces. Refere to the specific Joint sub-class documentation for details on the meaning and units for this degree of freedom. [out] forces On return, this method will add force tau for the degree of freedom joint_dof into the output forces. This method aborts if forces is nullptr or if forces doest not have the right sizes to accommodate a set of forces for the model to which this actuator belongs.

## ◆ effort_limit()

 double effort_limit ( ) const

Returns the actuator effort limit.

## ◆ joint()

 const Joint< T > & joint ( ) const

Returns a reference to the joint actuated by this JointActuator.

## ◆ name()

 const std::string& name ( ) const

Returns the name of the actuator.

## ◆ operator=() [1/2]

 JointActuator& operator= ( JointActuator< T > && )
delete

## ◆ operator=() [2/2]

 JointActuator& operator= ( const JointActuator< T > & )
delete

## ◆ set_actuation_vector()

 void set_actuation_vector ( const Eigen::Ref< const VectorX< T >> & u_instance, EigenPtr< VectorX< T >> u ) const

Given the actuation values u_instance for this actuator, this method sets the actuation vector u for the entire MultibodyTree model to which this actuator belongs to.

Parameters
 [in] u_instance Actuation values for this actuator. It must be of size equal to the number of degrees of freedom of the actuated Joint, see Joint::num_velocities(). For units and sign conventions refer to the specific Joint sub-class documentation. [out] u The vector containing the actuation values for the entire MultibodyTree model to which this actuator belongs to.
Exceptions
 std::exception if u_instance.size() != this->joint().num_velocities(). std::exception if u is nullptr. std::exception if u.size() != this->get_parent_tree().num_actuated_dofs().

## ◆ JointActuator

 friend class JointActuator
friend

The documentation for this class was generated from the following files: