Skip to content

Commit a84479c

Browse files
committed
Avoid segfault if TimeParameterization is not set
1 parent b1336dc commit a84479c

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

core/src/solvers/cartesian_path.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,9 @@ PlannerInterface::Result CartesianPath::plan(const planning_scene::PlanningScene
121121
result->addSuffixWayPoint(waypoint, 0.0);
122122

123123
auto timing = props.get<TimeParameterizationPtr>("time_parameterization");
124-
timing->computeTimeStamps(*result, props.get<double>("max_velocity_scaling_factor"),
125-
props.get<double>("max_acceleration_scaling_factor"));
124+
if (timing)
125+
timing->computeTimeStamps(*result, props.get<double>("max_velocity_scaling_factor"),
126+
props.get<double>("max_acceleration_scaling_factor"));
126127

127128
if (achieved_fraction < props.get<double>("min_fraction")) {
128129
return { false, "min_fraction not met. Achieved: " + std::to_string(achieved_fraction) };

core/src/solvers/joint_interpolation.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,9 @@ PlannerInterface::Result JointInterpolationPlanner::plan(const planning_scene::P
103103
return { false, "Goal state is out of bounds!" };
104104

105105
auto timing = props.get<TimeParameterizationPtr>("time_parameterization");
106-
timing->computeTimeStamps(*result, props.get<double>("max_velocity_scaling_factor"),
107-
props.get<double>("max_acceleration_scaling_factor"));
106+
if (timing)
107+
timing->computeTimeStamps(*result, props.get<double>("max_velocity_scaling_factor"),
108+
props.get<double>("max_acceleration_scaling_factor"));
108109

109110
// set max_effort on first and last waypoint (first, because we might reverse the trajectory)
110111
const auto& max_effort = properties().get("max_effort");

0 commit comments

Comments
 (0)