Skip to content

Commit 7baf50d

Browse files
author
Michael Wiznitzer
committed
address feedback
1 parent 398e11c commit 7baf50d

File tree

2 files changed

+19
-24
lines changed

2 files changed

+19
-24
lines changed

moveit_core/trajectory_processing/include/moveit/trajectory_processing/time_optimal_trajectory_generation.h

+4-5
Original file line numberDiff line numberDiff line change
@@ -247,13 +247,12 @@ class TimeOptimalTrajectoryGeneration : public TimeParameterization
247247
bool hasMixedJointTypes(const moveit::core::JointModelGroup* group) const;
248248

249249
/**
250-
* @brief Check if the max scaling factor is valid and if not, set it to the specified default value
251-
* \param[in,out] scaling_factor The default scaling factor that should be applied
252-
* if the `max_scaling_factor` is invalid
253-
* \param max_scaling_factor The desired maximum scaling factor to apply to the velocity or acceleration limits
250+
* @brief Check if the requested scaling factor is valid and if not, return 1.0.
251+
* \param requested_scaling_factor The desired maximum scaling factor to apply to the velocity or acceleration limits
254252
* \param limit_type Whether the velocity or acceleration scaling factor is being verified
253+
* \return The user requested scaling factor, if it is valid. Otherwise, return 1.0.
255254
*/
256-
void verifyScalingFactor(double& scaling_factor, const double max_scaling_factor, const LimitType limit_type) const;
255+
double verifyScalingFactor(const double requested_scaling_factor, const LimitType limit_type) const;
257256

258257
const double path_tolerance_;
259258
const double resample_dt_;

moveit_core/trajectory_processing/src/time_optimal_trajectory_generation.cpp

+15-19
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ static const rclcpp::Logger LOGGER =
5353
rclcpp::get_logger("moveit_trajectory_processing.time_optimal_trajectory_generation");
5454
constexpr double DEFAULT_TIMESTEP = 1e-3;
5555
constexpr double EPS = 1e-6;
56+
constexpr double DEFAULT_SCALING_FACTOR = 1.0;
5657
} // namespace
5758

5859
class LinearPathSegment : public PathSegment
@@ -880,11 +881,10 @@ bool TimeOptimalTrajectoryGeneration::computeTimeStamps(robot_trajectory::RobotT
880881
}
881882

882883
// Validate scaling
883-
double velocity_scaling_factor = 1.0;
884-
verifyScalingFactor(velocity_scaling_factor, max_velocity_scaling_factor, VELOCITY);
884+
double velocity_scaling_factor = verifyScalingFactor(velocity_scaling_factor, max_velocity_scaling_factor, VELOCITY);
885885

886-
double acceleration_scaling_factor = 1.0;
887-
verifyScalingFactor(acceleration_scaling_factor, max_acceleration_scaling_factor, ACCELERATION);
886+
double acceleration_scaling_factor =
887+
verifyScalingFactor(acceleration_scaling_factor, max_acceleration_scaling_factor, ACCELERATION);
888888

889889
const std::vector<std::string>& vars = group->getVariableNames();
890890
const moveit::core::RobotModel& rmodel = group->getParentModel();
@@ -980,11 +980,10 @@ bool TimeOptimalTrajectoryGeneration::computeTimeStamps(
980980
}
981981

982982
// Validate scaling
983-
double velocity_scaling_factor = 1.0;
984-
verifyScalingFactor(velocity_scaling_factor, max_velocity_scaling_factor, VELOCITY);
983+
double velocity_scaling_factor = verifyScalingFactor(velocity_scaling_factor, max_velocity_scaling_factor, VELOCITY);
985984

986-
double acceleration_scaling_factor = 1.0;
987-
verifyScalingFactor(acceleration_scaling_factor, max_acceleration_scaling_factor, ACCELERATION);
985+
double acceleration_scaling_factor =
986+
verifyScalingFactor(acceleration_scaling_factor, max_acceleration_scaling_factor, ACCELERATION);
988987

989988
const unsigned num_joints = group->getVariableCount();
990989
const std::vector<std::string>& vars = group->getVariableNames();
@@ -1211,30 +1210,27 @@ bool TimeOptimalTrajectoryGeneration::hasMixedJointTypes(const moveit::core::Joi
12111210
return have_prismatic && have_revolute;
12121211
}
12131212

1214-
void TimeOptimalTrajectoryGeneration::verifyScalingFactor(double& scaling_factor, const double max_scaling_factor,
1215-
const LimitType limit_type) const
1213+
double TimeOptimalTrajectoryGeneration::verifyScalingFactor(const double requested_scaling_factor,
1214+
const LimitType limit_type) const
12161215
{
12171216
std::string limit_type_str;
1218-
auto limit_type_it = LIMIT_TYPES.find(limit_type);
1217+
double scaling_factor = DEFAULT_SCALING_FACTOR;
12191218

1219+
const auto limit_type_it = LIMIT_TYPES.find(limit_type);
12201220
if (limit_type_it != LIMIT_TYPES.end())
12211221
{
12221222
limit_type_str = limit_type_it->second + "_";
12231223
}
12241224

1225-
if (max_scaling_factor > 0.0 && max_scaling_factor <= 1.0)
1225+
if (requested_scaling_factor > 0.0 && requested_scaling_factor <= 1.0)
12261226
{
1227-
scaling_factor = max_scaling_factor;
1228-
}
1229-
else if (max_scaling_factor == 0.0)
1230-
{
1231-
RCLCPP_DEBUG(LOGGER, "A max_%sscaling_factor of 0.0 was specified, defaulting to %f instead.",
1232-
limit_type_str.c_str(), scaling_factor);
1227+
scaling_factor = requested_scaling_factor;
12331228
}
12341229
else
12351230
{
12361231
RCLCPP_WARN(LOGGER, "Invalid max_%sscaling_factor %f specified, defaulting to %f instead.", limit_type_str.c_str(),
1237-
max_scaling_factor, scaling_factor);
1232+
requested_scaling_factor, scaling_factor);
12381233
}
1234+
return scaling_factor;
12391235
}
12401236
} // namespace trajectory_processing

0 commit comments

Comments
 (0)