moveit2
The MoveIt Motion Planning Framework for ROS 2.
Public Member Functions | Protected Attributes | List of all members
pilz_industrial_motion_planner::JointLimitsContainer Class Reference

Container for JointLimits, essentially a map with convenience functions. Adds the ability to as for limits and get a common limit that unifies all given limits. More...

#include <joint_limits_container.h>

Public Member Functions

bool addLimit (const std::string &joint_name, JointLimit joint_limit)
 Add a limit. More...
 
bool hasLimit (const std::string &joint_name) const
 Check if there is a limit for a joint with the given name in this container. More...
 
size_t getCount () const
 Get Number of limits in the container. More...
 
bool empty () const
 Returns whether the container is empty. More...
 
JointLimit getCommonLimit () const
 Returns joint limit fusion of all(position, velocity, acceleration, deceleration) limits for all joint. There are cases where the most strict limit of all limits is needed. If there are no matching limits, the flag has_[position|velocity|...]_limits is set to false. More...
 
JointLimit getCommonLimit (const std::vector< std::string > &joint_names) const
 Returns joint limit fusion of all(position, velocity, acceleration, deceleration) limits for given joints. There are cases where the most strict limit of all limits is needed. If there are no matching limits, the flag has_[position|velocity|...]_limits is set to false. More...
 
JointLimit getLimit (const std::string &joint_name) const
 getLimit get the limit for the given joint name More...
 
std::map< std::string, JointLimit >::const_iterator begin () const
 ConstIterator to the underlying data structure. More...
 
std::map< std::string, JointLimit >::const_iterator end () const
 ConstIterator to the underlying data structure. More...
 
bool verifyPositionLimit (const std::string &joint_name, double joint_position) const
 verify position limit of single joint More...
 
bool verifyVelocityLimit (const std::string &joint_name, double joint_velocity) const
 verify velocity limit of single joint More...
 
bool verifyAccelerationLimit (const std::string &joint_name, double joint_acceleration) const
 verify acceleration limit of single joint More...
 
bool verifyDecelerationLimit (const std::string &joint_name, double joint_acceleration) const
 verify deceleration limit of single joint More...
 

Protected Attributes

std::map< std::string, JointLimitcontainer_
 Actual container object containing the data. More...
 

Detailed Description

Container for JointLimits, essentially a map with convenience functions. Adds the ability to as for limits and get a common limit that unifies all given limits.

Definition at line 51 of file joint_limits_container.h.

Member Function Documentation

◆ addLimit()

bool pilz_industrial_motion_planner::JointLimitsContainer::addLimit ( const std::string &  joint_name,
pilz_industrial_motion_planner::JointLimit  joint_limit 
)

Add a limit.

Parameters
joint_nameName if the joint this limit belongs to
joint_limitLimit of the joint
Returns
true if the limit was added, false if joint_limit.has_deceleration_limit && joint_limit.max_deceleration >= 0

Definition at line 52 of file joint_limits_container.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ begin()

std::map< std::string, JointLimit >::const_iterator pilz_industrial_motion_planner::JointLimitsContainer::begin ( ) const

ConstIterator to the underlying data structure.

Returns

Definition at line 109 of file joint_limits_container.cpp.

◆ empty()

bool pilz_industrial_motion_planner::JointLimitsContainer::empty ( ) const

Returns whether the container is empty.

Returns
true if empty, false otherwise

Definition at line 79 of file joint_limits_container.cpp.

◆ end()

std::map< std::string, JointLimit >::const_iterator pilz_industrial_motion_planner::JointLimitsContainer::end ( ) const

ConstIterator to the underlying data structure.

Returns

Definition at line 114 of file joint_limits_container.cpp.

◆ getCommonLimit() [1/2]

JointLimit pilz_industrial_motion_planner::JointLimitsContainer::getCommonLimit ( ) const

Returns joint limit fusion of all(position, velocity, acceleration, deceleration) limits for all joint. There are cases where the most strict limit of all limits is needed. If there are no matching limits, the flag has_[position|velocity|...]_limits is set to false.

Returns
joint limit

Definition at line 84 of file joint_limits_container.cpp.

Here is the caller graph for this function:

◆ getCommonLimit() [2/2]

JointLimit pilz_industrial_motion_planner::JointLimitsContainer::getCommonLimit ( const std::vector< std::string > &  joint_names) const

Returns joint limit fusion of all(position, velocity, acceleration, deceleration) limits for given joints. There are cases where the most strict limit of all limits is needed. If there are no matching limits, the flag has_[position|velocity|...]_limits is set to false.

Parameters
joint_names
Returns
joint limit
Exceptions
std::out_of_rangeif a joint limit with this name does not exist

Definition at line 94 of file joint_limits_container.cpp.

◆ getCount()

size_t pilz_industrial_motion_planner::JointLimitsContainer::getCount ( ) const

Get Number of limits in the container.

Returns
Number of limits in the container

Definition at line 74 of file joint_limits_container.cpp.

Here is the caller graph for this function:

◆ getLimit()

JointLimit pilz_industrial_motion_planner::JointLimitsContainer::getLimit ( const std::string &  joint_name) const

getLimit get the limit for the given joint name

Parameters
joint_name
Returns
joint limit
Exceptions
std::out_of_rangeif a joint limit with this name does not exist

Definition at line 104 of file joint_limits_container.cpp.

Here is the caller graph for this function:

◆ hasLimit()

bool pilz_industrial_motion_planner::JointLimitsContainer::hasLimit ( const std::string &  joint_name) const

Check if there is a limit for a joint with the given name in this container.

Parameters
joint_nameName of the joint

Definition at line 69 of file joint_limits_container.cpp.

Here is the caller graph for this function:

◆ verifyAccelerationLimit()

bool pilz_industrial_motion_planner::JointLimitsContainer::verifyAccelerationLimit ( const std::string &  joint_name,
double  joint_acceleration 
) const

verify acceleration limit of single joint

Parameters
joint_name
joint_acceleration
Returns
true if within limits, false otherwise

Definition at line 131 of file joint_limits_container.cpp.

Here is the call graph for this function:

◆ verifyDecelerationLimit()

bool pilz_industrial_motion_planner::JointLimitsContainer::verifyDecelerationLimit ( const std::string &  joint_name,
double  joint_acceleration 
) const

verify deceleration limit of single joint

Parameters
joint_name
joint_acceleration
Returns
true if within limits, false otherwise

Definition at line 137 of file joint_limits_container.cpp.

Here is the call graph for this function:

◆ verifyPositionLimit()

bool pilz_industrial_motion_planner::JointLimitsContainer::verifyPositionLimit ( const std::string &  joint_name,
double  joint_position 
) const

verify position limit of single joint

Parameters
joint_name
joint_position
Returns
true if within limits, false otherwise

Definition at line 119 of file joint_limits_container.cpp.

Here is the call graph for this function:

◆ verifyVelocityLimit()

bool pilz_industrial_motion_planner::JointLimitsContainer::verifyVelocityLimit ( const std::string &  joint_name,
double  joint_velocity 
) const

verify velocity limit of single joint

Parameters
joint_name
joint_velocity
Returns
true if within limits, false otherwise

Definition at line 125 of file joint_limits_container.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ container_

std::map<std::string, JointLimit> pilz_industrial_motion_planner::JointLimitsContainer::container_
protected

Actual container object containing the data.

Definition at line 169 of file joint_limits_container.h.


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