44 static const rclcpp::Logger 
LOGGER =
 
   45     rclcpp::get_logger(
"moveit.pilz_industrial_motion_planner.joint_limits_aggregator");
 
   50     const rclcpp::Node::SharedPtr& node, 
const std::string& param_namespace,
 
   51     const std::vector<const moveit::core::JointModel*>& joint_models)
 
   55   RCLCPP_INFO_STREAM(LOGGER, 
"Reading limits from namespace " << param_namespace);
 
   58   for (
auto joint_model : joint_models)
 
  106     container.
addLimit(joint_model->getName(), joint_limit);
 
  119       RCLCPP_WARN_STREAM(LOGGER, 
"no bounds set for joint " << joint_model->
getName());
 
  129       RCLCPP_WARN_STREAM(LOGGER, 
"Multi-DOF-Joint '" << joint_model->
getName() << 
"' not supported.");
 
  137   RCLCPP_DEBUG_STREAM(LOGGER, 
"Limit(" << joint_model->
getName() << 
" min:" << joint_limit.
min_position 
  148       RCLCPP_WARN_STREAM(LOGGER, 
"no bounds set for joint " << joint_model->
getName());
 
  157       RCLCPP_WARN_STREAM(LOGGER, 
"Multi-DOF-Joint '" << joint_model->
getName() << 
"' not supported.");
 
  172                                               " violates min limit from URDF");
 
  179                                               " violates max limit from URDF");
 
  190                                               " violates velocity limit from URDF");
 
A joint from the robot. Models the transform that this joint applies in the kinematic chain....
 
bool satisfiesVelocityBounds(const double *values, double margin=0.0) const
Check if the set of velocities for the variables of this joint are within bounds.
 
const std::string & getName() const
Get the name of the joint.
 
bool satisfiesPositionBounds(const double *values, double margin=0.0) const
Check if the set of values for the variables of this joint are within bounds.
 
const VariableBounds & getVariableBounds(const std::string &variable) const
Get the bounds for a variable. Throw an exception if the variable was not found.
 
static void checkPositionBoundsThrowing(const moveit::core::JointModel *joint_model, const JointLimit &joint_limit)
Checks if the position limits from the given joint_limit are stricter than the limits of the joint_mo...
 
static void updateVelocityLimitFromJointModel(const moveit::core::JointModel *joint_model, JointLimit &joint_limit)
Update the velocity limit with the one from the joint_model.
 
static JointLimitsContainer getAggregatedLimits(const rclcpp::Node::SharedPtr &node, const std::string ¶m_namespace, const std::vector< const moveit::core::JointModel * > &joint_models)
Aggregates(combines) the joint limits from joint model and node parameters. The rules for the combina...
 
static void updatePositionLimitFromJointModel(const moveit::core::JointModel *joint_model, JointLimit &joint_limit)
Update the position limits with the ones from the joint_model.
 
static void checkVelocityBoundsThrowing(const moveit::core::JointModel *joint_model, const JointLimit &joint_limit)
Checks if the velocity limit from the given joint_limit are stricter than the limit of the joint_mode...
 
Container for JointLimits, essentially a map with convenience functions. Adds the ability to as for l...
 
bool addLimit(const std::string &joint_name, JointLimit joint_limit)
Add a limit.
 
bool getJointLimits(const std::string &joint_name, const std::string ¶m_ns, const rclcpp::Node::SharedPtr &node, joint_limits_interface::JointLimits &limits)
 
bool declareParameters(const std::string &joint_name, const std::string ¶m_ns, const rclcpp::Node::SharedPtr &node)
 
const rclcpp::Logger LOGGER
 
bool has_acceleration_limits
 
Extends joint_limits_interface::JointLimits with a deceleration parameter.
 
bool has_deceleration_limits
 
double max_deceleration
maximum deceleration MUST(!) be negative