Skip to content

Commit 03c699d

Browse files
committed
Allow zero size tolerances
1 parent dab3b9c commit 03c699d

File tree

1 file changed

+28
-22
lines changed

1 file changed

+28
-22
lines changed

tesseract_motion_planners/trajopt/src/trajopt_utils.cpp

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -103,32 +103,38 @@ std::shared_ptr<trajopt::TermInfo> createCartesianWaypointTermInfo(int index,
103103
std::to_string(coeffs.size()));
104104
}
105105

106-
if (lower_tolerance.size() == 1)
106+
if (lower_tolerance.size() > 0)
107107
{
108-
pose_info->lower_tolerance = Eigen::VectorXd::Constant(6, lower_tolerance(0));
109-
}
110-
else if (lower_tolerance.size() == 6)
111-
{
112-
pose_info->lower_tolerance = lower_tolerance;
113-
}
114-
else
115-
{
116-
throw std::runtime_error("Invalid lower tolerance size for Cartesian waypoint term info. Expected 1 or 6, got " +
117-
std::to_string(lower_tolerance.size()));
108+
if (lower_tolerance.size() == 1)
109+
{
110+
pose_info->lower_tolerance = Eigen::VectorXd::Constant(6, lower_tolerance(0));
111+
}
112+
else if (lower_tolerance.size() == 6)
113+
{
114+
pose_info->lower_tolerance = lower_tolerance;
115+
}
116+
else
117+
{
118+
throw std::runtime_error("Invalid lower tolerance size for Cartesian waypoint term info. Expected 1 or 6, got " +
119+
std::to_string(lower_tolerance.size()));
120+
}
118121
}
119122

120-
if (upper_tolerance.size() == 1)
123+
if (upper_tolerance.size() > 0)
121124
{
122-
pose_info->upper_tolerance = Eigen::VectorXd::Constant(6, upper_tolerance(0));
123-
}
124-
else if (upper_tolerance.size() == 6)
125-
{
126-
pose_info->upper_tolerance = upper_tolerance;
127-
}
128-
else
129-
{
130-
throw std::runtime_error("Invalid upper tolerance size for Cartesian waypoint term info. Expected 1 or 6, got " +
131-
std::to_string(upper_tolerance.size()));
125+
if (upper_tolerance.size() == 1)
126+
{
127+
pose_info->upper_tolerance = Eigen::VectorXd::Constant(6, upper_tolerance(0));
128+
}
129+
else if (upper_tolerance.size() == 6)
130+
{
131+
pose_info->upper_tolerance = upper_tolerance;
132+
}
133+
else
134+
{
135+
throw std::runtime_error("Invalid upper tolerance size for Cartesian waypoint term info. Expected 1 or 6, got " +
136+
std::to_string(upper_tolerance.size()));
137+
}
132138
}
133139

134140
return pose_info;

0 commit comments

Comments
 (0)