Drake
Drake C++ Documentation
JointLimits Class Referencefinal

Detailed Description

Wrapper type for position, velocity, and acceleration limits.

Note that enforcement of finite limits by this class is optional; see the require_finite_* constructor arguments.

NaNs are rejected for all limits and tolerances.

#include <drake/planning/joint_limits.h>

Public Member Functions

 JointLimits (const multibody::MultibodyPlant< double > &plant, bool require_finite_positions=false, bool require_finite_velocities=false, bool require_finite_accelerations=false)
 Constructs a JointLimits using the position, velocity, and acceleration limits in the provided plant. More...
 
 JointLimits (const multibody::MultibodyPlant< double > &plant, const DofMask &active_dof, bool require_finite_positions=false, bool require_finite_velocities=false, bool require_finite_accelerations=false)
 Constructs a JointLimits using the position, velocity, and acceleration limits in the provided plant, selecting only the dofs indicated by active_dof. More...
 
 JointLimits (const JointLimits &other, const DofMask &active_dof, bool require_finite_positions=false, bool require_finite_velocities=false, bool require_finite_accelerations=false)
 Constructs a JointLimits using the position, velocity, and acceleration limits in the provided other, selecting only the coefficients indicated by active_dof. More...
 
 JointLimits (const Eigen::VectorXd &position_lower, const Eigen::VectorXd &position_upper, const Eigen::VectorXd &velocity_lower, const Eigen::VectorXd &velocity_upper, const Eigen::VectorXd &acceleration_lower, const Eigen::VectorXd &acceleration_upper, bool require_finite_positions=false, bool require_finite_velocities=false, bool require_finite_accelerations=false)
 Constructs a JointLimits using the provided arguments. More...
 
 JointLimits ()=default
 Constructs a JointLimits with 0-length vectors for all limits. More...
 
 ~JointLimits ()
 
int num_positions () const
 
int num_velocities () const
 
int num_accelerations () const
 
const Eigen::VectorXd & position_lower () const
 
const Eigen::VectorXd & position_upper () const
 
const Eigen::VectorXd & velocity_lower () const
 
const Eigen::VectorXd & velocity_upper () const
 
const Eigen::VectorXd & acceleration_lower () const
 
const Eigen::VectorXd & acceleration_upper () const
 
bool CheckInPositionLimits (const Eigen::VectorXd &position, double tolerance=0.0) const
 Checks if position is within position limits, relaxed outward by tolerance in both directions. More...
 
bool CheckInVelocityLimits (const Eigen::VectorXd &velocity, double tolerance=0.0) const
 Checks if velocity is within velocity limits, relaxed outward by tolerance in both directions. More...
 
bool CheckInAccelerationLimits (const Eigen::VectorXd &acceleration, double tolerance=0.0) const
 Checks if acceleration is within acceleration limits, relaxed outward by tolerance in both directions. More...
 
Implements CopyConstructible, CopyAssignable, MoveConstructible, MoveAssignable
 JointLimits (const JointLimits &)=default
 
JointLimitsoperator= (const JointLimits &)=default
 
 JointLimits (JointLimits &&)=default
 
JointLimitsoperator= (JointLimits &&)=default
 

Constructor & Destructor Documentation

◆ JointLimits() [1/7]

JointLimits ( const JointLimits )
default

◆ JointLimits() [2/7]

JointLimits ( JointLimits &&  )
default

◆ JointLimits() [3/7]

JointLimits ( const multibody::MultibodyPlant< double > &  plant,
bool  require_finite_positions = false,
bool  require_finite_velocities = false,
bool  require_finite_accelerations = false 
)

Constructs a JointLimits using the position, velocity, and acceleration limits in the provided plant.

Exceptions
std::exceptionif plant is not finalized.
std::exceptionif the position, velocity, or acceleration limits contain non-finite values, and the corresponding constructor argument is true.
std::exceptionif any limit value is NaN.

◆ JointLimits() [4/7]

JointLimits ( const multibody::MultibodyPlant< double > &  plant,
const DofMask active_dof,
bool  require_finite_positions = false,
bool  require_finite_velocities = false,
bool  require_finite_accelerations = false 
)

Constructs a JointLimits using the position, velocity, and acceleration limits in the provided plant, selecting only the dofs indicated by active_dof.

Exceptions
std::exceptionif plant is not finalized.
std::exceptionif active_dof.size() != num_positions().
std::exceptionif active_dof.size() != num_velocities().
std::exceptionif active_dof.size() != num_accelerations().
std::exceptionif the position, velocity, or acceleration limits contain non-finite values, and the corresponding constructor argument is true.
std::exceptionif any limit value is NaN.

◆ JointLimits() [5/7]

JointLimits ( const JointLimits other,
const DofMask active_dof,
bool  require_finite_positions = false,
bool  require_finite_velocities = false,
bool  require_finite_accelerations = false 
)

Constructs a JointLimits using the position, velocity, and acceleration limits in the provided other, selecting only the coefficients indicated by active_dof.

Exceptions
std::exceptionif active_dof.size() != other.num_positions().
std::exceptionif active_dof.size() != other.num_velocities().
std::exceptionif active_dof.size() != other.num_accelerations().
std::exceptionif the position, velocity, or acceleration limits contain non-finite values, and the corresponding constructor argument is true.
std::exceptionif any limit value is NaN.

◆ JointLimits() [6/7]

JointLimits ( const Eigen::VectorXd &  position_lower,
const Eigen::VectorXd &  position_upper,
const Eigen::VectorXd &  velocity_lower,
const Eigen::VectorXd &  velocity_upper,
const Eigen::VectorXd &  acceleration_lower,
const Eigen::VectorXd &  acceleration_upper,
bool  require_finite_positions = false,
bool  require_finite_velocities = false,
bool  require_finite_accelerations = false 
)

Constructs a JointLimits using the provided arguments.

Exceptions
std::exceptionif the position, velocity, or acceleration limits contain non-finite values, and the corresponding constructor argument is true.
std::exceptionif any lower/upper limit pairs differ in size.
std::exceptionif any upper limit coefficients are less than the corresponding lower limit coefficient.
std::exceptionif velocity and acceleration limits differ in size.
std::exceptionif any limit value is NaN.

◆ JointLimits() [7/7]

JointLimits ( )
default

Constructs a JointLimits with 0-length vectors for all limits.

◆ ~JointLimits()

Member Function Documentation

◆ acceleration_lower()

const Eigen::VectorXd& acceleration_lower ( ) const

◆ acceleration_upper()

const Eigen::VectorXd& acceleration_upper ( ) const

◆ CheckInAccelerationLimits()

bool CheckInAccelerationLimits ( const Eigen::VectorXd &  acceleration,
double  tolerance = 0.0 
) const

Checks if acceleration is within acceleration limits, relaxed outward by tolerance in both directions.

Exceptions
std::exceptionif acceleration.size() != num_accelerations().
std::exceptionif tolerance is negative.
std::exceptionif acceleration or tolerance contain NaN values.

◆ CheckInPositionLimits()

bool CheckInPositionLimits ( const Eigen::VectorXd &  position,
double  tolerance = 0.0 
) const

Checks if position is within position limits, relaxed outward by tolerance in both directions.

Exceptions
std::exceptionif position.size() != num_positions().
std::exceptionif tolerance is negative.
std::exceptionif position or tolerance contain NaN values.

◆ CheckInVelocityLimits()

bool CheckInVelocityLimits ( const Eigen::VectorXd &  velocity,
double  tolerance = 0.0 
) const

Checks if velocity is within velocity limits, relaxed outward by tolerance in both directions.

Exceptions
std::exceptionif velocity.size() != num_velocities().
std::exceptionif tolerance is negative.
std::exceptionif velocity or tolerance contain NaN values.

◆ num_accelerations()

int num_accelerations ( ) const

◆ num_positions()

int num_positions ( ) const

◆ num_velocities()

int num_velocities ( ) const

◆ operator=() [1/2]

JointLimits& operator= ( JointLimits &&  )
default

◆ operator=() [2/2]

JointLimits& operator= ( const JointLimits )
default

◆ position_lower()

const Eigen::VectorXd& position_lower ( ) const

◆ position_upper()

const Eigen::VectorXd& position_upper ( ) const

◆ velocity_lower()

const Eigen::VectorXd& velocity_lower ( ) const

◆ velocity_upper()

const Eigen::VectorXd& velocity_upper ( ) const

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