Loading [MathJax]/jax/input/TeX/config.js
ros2_control - rolling
All Classes Namespaces Functions Variables Typedefs Enumerations Pages
Public Member Functions | List of all members
joint_limits::JointSoftLimiter Class Reference
Inheritance diagram for joint_limits::JointSoftLimiter:
Inheritance graph
[legend]
Collaboration diagram for joint_limits::JointSoftLimiter:
Collaboration graph
[legend]

Public Member Functions

bool on_init () override
 Method is realized by an implementation.
 
bool on_enforce (const JointControlInterfacesData &actual, JointControlInterfacesData &desired, const rclcpp::Duration &dt) override
 
bool has_soft_position_limits (const joint_limits::SoftJointLimits &soft_joint_limits)
 
bool has_soft_limits (const joint_limits::SoftJointLimits &soft_joint_limits)
 
- Public Member Functions inherited from joint_limits::JointSaturationLimiter< JointControlInterfacesData >
 JointSaturationLimiter ()
 Constructor.
 
 ~JointSaturationLimiter ()
 Destructor.
 
bool on_configure (const JointControlInterfacesData &current_joint_states) override
 Method is realized by an implementation.
 
bool on_enforce (const JointControlInterfacesData &current_joint_states, JointControlInterfacesData &desired_joint_states, const rclcpp::Duration &dt) override
 Enforce joint limits to desired position, velocity and acceleration using clamping. Class implements this method accepting following data types:
 
bool on_enforce (const JointControlInterfacesData &actual, JointControlInterfacesData &desired, const rclcpp::Duration &dt)
 
bool on_enforce (const trajectory_msgs::msg::JointTrajectoryPoint &current_joint_states, trajectory_msgs::msg::JointTrajectoryPoint &desired_joint_states, const rclcpp::Duration &dt)
 
void reset_internals () override
 Reset internal states of the limiter.
 
- Public Member Functions inherited from joint_limits::JointLimiterInterface< JointLimitsStateDataType >
virtual bool init (const std::vector< std::string > &joint_names, const rclcpp::node_interfaces::NodeParametersInterface::SharedPtr &param_itf, const rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr &logging_itf, const std::string &robot_description_topic="/robot_description")
 Initialization of every JointLimiter.
 
virtual bool init (const std::vector< std::string > &joint_names, const std::vector< joint_limits::JointLimits > &joint_limits, const std::vector< joint_limits::SoftJointLimits > &soft_joint_limits, const rclcpp::node_interfaces::NodeParametersInterface::SharedPtr &param_itf, const rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr &logging_itf)
 
virtual bool init (const std::vector< std::string > &joint_names, const rclcpp::Node::SharedPtr &node, const std::string &robot_description_topic="/robot_description")
 
virtual bool init (const std::vector< std::string > &joint_names, const rclcpp_lifecycle::LifecycleNode::SharedPtr &lifecycle_node, const std::string &robot_description_topic="/robot_description")
 
virtual bool configure (const JointLimitsStateDataType &current_joint_states)
 
virtual bool enforce (const JointLimitsStateDataType &current_joint_states, JointLimitsStateDataType &desired_joint_states, const rclcpp::Duration &dt)
 Enforce joint limits to desired joint state for multiple physical quantities.
 

Additional Inherited Members

- Protected Member Functions inherited from joint_limits::JointLimiterInterface< JointLimitsStateDataType >
virtual bool on_configure (const JointLimitsStateDataType &current_joint_states)=0
 Method is realized by an implementation.
 
virtual bool on_enforce (const JointLimitsStateDataType &current_joint_states, JointLimitsStateDataType &desired_joint_states, const rclcpp::Duration &dt)=0
 Method is realized by an implementation.
 
bool has_logging_interface () const
 Checks if the logging interface is set.
 
bool has_parameter_interface () const
 Checks if the parameter interface is set.
 
- Protected Attributes inherited from joint_limits::JointSaturationLimiter< JointControlInterfacesData >
rclcpp::Clock::SharedPtr clock_
 
JointControlInterfacesData prev_command_
 
std::mutex mutex_
 
- Protected Attributes inherited from joint_limits::JointLimiterInterface< JointLimitsStateDataType >
size_t number_of_joints_
 
std::vector< std::string > joint_names_
 
std::vector< joint_limits::JointLimitsjoint_limits_
 
std::vector< joint_limits::SoftJointLimitssoft_joint_limits_
 
rclcpp::node_interfaces::NodeParametersInterface::SharedPtr node_param_itf_
 
rclcpp::node_interfaces::NodeLoggingInterface::SharedPtr node_logging_itf_
 

Member Function Documentation

◆ on_enforce()

bool joint_limits::JointSoftLimiter::on_enforce ( const JointControlInterfacesData actual,
JointControlInterfacesData desired,
const rclcpp::Duration &  dt 
)
override
Note
: We use the previous command position to compute the velocity limits here because using the actual position would be too conservative, usually there is a couple of cycles of delay between the command sent to the robot and the robot actually showing that in the state. That effectively limits the velocity with which the joint can be moved which is much lower than the actual velocity limit.

◆ on_init()

bool joint_limits::JointSoftLimiter::on_init ( )
inlineoverridevirtual

Method is realized by an implementation.

Implementation-specific initialization of limiter's internal states and libraries.

Returns
true if initialization was successful, otherwise false.

Reimplemented from joint_limits::JointSaturationLimiter< JointControlInterfacesData >.


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