21 double velocity_offset;
22 double deceleration_limit;
23 double upper_position_limit;
24 double lower_position_limit;
29 deceleration_limit(0),
30 upper_position_limit(0),
31 lower_position_limit(0) {}
42 double velocity_offset,
43 double deceleration_limit,
44 double upper_position_limit,
45 double lower_position_limit)
46 : max_velocity(max_velocity),
47 velocity_offset(velocity_offset),
48 deceleration_limit(deceleration_limit),
49 upper_position_limit(upper_position_limit),
50 lower_position_limit(lower_position_limit) {}
61 static constexpr int kNumJoints = 7;
77 return joint_params_[joint_index];
84 const std::array<PositionBasedJointVelocityLimitConstants, kNumJoints>&
getJointParams()
const {
94 const std::array<double, kNumJoints>& joint_positions)
const;
102 const std::array<double, kNumJoints>& joint_positions)
const;
106 static constexpr const char* kRobotElementName =
"robot";
107 static constexpr const char* kJointElementName =
"joint";
108 static constexpr const char* kPositionBasedVelocityLimitsElementName =
109 "position_based_velocity_limits";
110 static constexpr const char* kLimitElementName =
"limit";
111 static constexpr const char* kNameAttributeName =
"name";
112 static constexpr const char* kVelocityAttributeName =
"velocity";
113 static constexpr const char* kUpperAttributeName =
"upper";
114 static constexpr const char* kLowerAttributeName =
"lower";
115 static constexpr const char* kVelocityOffsetAttributeName =
"velocity_offset";
116 static constexpr const char* kDecelerationLimitAttributeName =
"deceleration_limit";
119 static constexpr const char* kJoint1Name =
"joint1";
120 static constexpr const char* kJoint2Name =
"joint2";
121 static constexpr const char* kJoint3Name =
"joint3";
122 static constexpr const char* kJoint4Name =
"joint4";
123 static constexpr const char* kJoint5Name =
"joint5";
124 static constexpr const char* kJoint6Name =
"joint6";
125 static constexpr const char* kJoint7Name =
"joint7";
131 void parseFromURDF(
const std::string& urdf_string);
138 static int getJointIndex(
const std::string& joint_name);
140 std::array<PositionBasedJointVelocityLimitConstants, kNumJoints> joint_params_;
Configuration class that holds position-based joint velocity limit parameters for all 7 joints.
Definition joint_velocity_limits.h:58
std::array< double, kNumJoints > getLowerJointVelocityLimits(const std::array< double, kNumJoints > &joint_positions) const
Compute lower joint velocity limits based on current joint positions.
JointVelocityLimitsConfig(const std::string &urdf_string)
Constructor that parses URDF string and initializes joint parameters.
Definition joint_velocity_limits.h:69
const PositionBasedJointVelocityLimitConstants & operator[](size_t joint_index) const
Get joint parameters for a specific joint.
Definition joint_velocity_limits.h:76
const std::array< PositionBasedJointVelocityLimitConstants, kNumJoints > & getJointParams() const
Get all joint parameters.
Definition joint_velocity_limits.h:84
std::array< double, kNumJoints > getUpperJointVelocityLimits(const std::array< double, kNumJoints > &joint_positions) const
Compute upper joint velocity limits based on current joint positions.
Structure to hold position-based joint velocity limit constants for a single joint from URDF.
Definition joint_velocity_limits.h:19
PositionBasedJointVelocityLimitConstants(double max_velocity, double velocity_offset, double deceleration_limit, double upper_position_limit, double lower_position_limit)
Constructor with specified parameters.
Definition joint_velocity_limits.h:41