Public Types | Public Member Functions | Public Attributes | Private Member Functions | Friends | List of all members
tesseract_scene_graph::JointSafety Class Reference

Parameters for Joint Safety Controllers. More...

#include <joint.h>

Public Types

using ConstPtr = std::shared_ptr< const JointSafety >
 
using Ptr = std::shared_ptr< JointSafety >
 

Public Member Functions

void clear ()
 
 JointSafety ()=default
 
 JointSafety (const JointSafety &)=default
 
 JointSafety (double soft_upper_limit, double soft_lower_limit, double k_position, double k_velocity)
 
 JointSafety (JointSafety &&)=default
 
bool operator!= (const JointSafety &rhs) const
 
JointSafetyoperator= (const JointSafety &)=default
 
JointSafetyoperator= (JointSafety &&)=default
 
bool operator== (const JointSafety &rhs) const
 
 ~JointSafety ()=default
 

Public Attributes

double k_position { 0 }
 
double k_velocity { 0 }
 
double soft_lower_limit { 0 }
 
double soft_upper_limit { 0 }
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Friends

class boost::serialization::access
 
struct tesseract_common::Serialization
 

Detailed Description

Parameters for Joint Safety Controllers.

Definition at line 129 of file joint.h.

Member Typedef Documentation

◆ ConstPtr

Definition at line 133 of file joint.h.

◆ Ptr

Definition at line 132 of file joint.h.

Constructor & Destructor Documentation

◆ JointSafety() [1/4]

tesseract_scene_graph::JointSafety::JointSafety ( )
default

◆ JointSafety() [2/4]

tesseract_scene_graph::JointSafety::JointSafety ( double  soft_upper_limit,
double  soft_lower_limit,
double  k_position,
double  k_velocity 
)

Definition at line 129 of file joint.cpp.

◆ ~JointSafety()

tesseract_scene_graph::JointSafety::~JointSafety ( )
default

◆ JointSafety() [3/4]

tesseract_scene_graph::JointSafety::JointSafety ( const JointSafety )
default

◆ JointSafety() [4/4]

tesseract_scene_graph::JointSafety::JointSafety ( JointSafety &&  )
default

Member Function Documentation

◆ clear()

void tesseract_scene_graph::JointSafety::clear ( )

Definition at line 137 of file joint.cpp.

◆ operator!=()

bool tesseract_scene_graph::JointSafety::operator!= ( const JointSafety rhs) const

Definition at line 155 of file joint.cpp.

◆ operator=() [1/2]

JointSafety& tesseract_scene_graph::JointSafety::operator= ( const JointSafety )
default

◆ operator=() [2/2]

JointSafety& tesseract_scene_graph::JointSafety::operator= ( JointSafety &&  )
default

◆ operator==()

bool tesseract_scene_graph::JointSafety::operator== ( const JointSafety rhs) const

Definition at line 145 of file joint.cpp.

◆ serialize()

template<class Archive >
void tesseract_scene_graph::JointSafety::serialize ( Archive &  ar,
const unsigned int  version 
)
private

Definition at line 158 of file joint.cpp.

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Definition at line 187 of file joint.h.

◆ tesseract_common::Serialization

friend struct tesseract_common::Serialization
friend

Definition at line 188 of file joint.h.

Member Data Documentation

◆ k_position

double tesseract_scene_graph::JointSafety::k_position { 0 }

Definition at line 178 of file joint.h.

◆ k_velocity

double tesseract_scene_graph::JointSafety::k_velocity { 0 }

Definition at line 179 of file joint.h.

◆ soft_lower_limit

double tesseract_scene_graph::JointSafety::soft_lower_limit { 0 }

Definition at line 177 of file joint.h.

◆ soft_upper_limit

double tesseract_scene_graph::JointSafety::soft_upper_limit { 0 }

IMPORTANT: The safety controller support is very much PR2 specific, not intended for generic usage.

Basic safety controller operation is as follows

current safety controllers will take effect on joints outside the position range below:

position range: [JointSafety::soft_lower_limit + JointLimits::velocity / JointSafety::k_position, JointSafety::soft_uppper_limit - JointLimits::velocity / JointSafety::k_position]

if (joint_position is outside of the position range above) velocity_limit_min = -JointLimits::velocity + JointSafety::k_position * (joint_position - JointSafety::soft_lower_limit) velocity_limit_max = JointLimits::velocity + JointSafety::k_position * (joint_position - JointSafety::soft_upper_limit) else velocity_limit_min = -JointLimits::velocity velocity_limit_max = JointLimits::velocity

velocity range: [velocity_limit_min + JointLimits::effort / JointSafety::k_velocity, velocity_limit_max - JointLimits::effort / JointSafety::k_velocity]

if (joint_velocity is outside of the velocity range above) effort_limit_min = -JointLimits::effort + JointSafety::k_velocity * (joint_velocity - velocity_limit_min) effort_limit_max = JointLimits::effort + JointSafety::k_velocity * (joint_velocity - velocity_limit_max) else effort_limit_min = -JointLimits::effort effort_limit_max = JointLimits::effort

Final effort command sent to the joint is saturated by [effort_limit_min,effort_limit_max]

Please see wiki for more details: http://www.ros.org/wiki/pr2_controller_manager/safety_limits

Definition at line 176 of file joint.h.


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


tesseract_scene_graph
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:49