91 std::vector<std::size_t>& removed,
92 const GeometryLimits& limits = {});
110 const GeometryLimits& limits = {});
This file is part of ArmarX.
std::vector< std::size_t > findTurnRateViolations(const core::GlobalTrajectory &trajectory, const GeometryLimits &limits)
Segments whose commanded heading turns faster than the base could follow.
double maxTurnRate(const core::GlobalTrajectory &trajectory, const GeometryLimits &limits)
The largest |dyaw| / segment length in the trajectory [rad/mm].
std::vector< std::size_t > findGeometryViolations(const core::GlobalTrajectory &trajectory, const GeometryLimits &limits)
Indices of waypoints that make the path double back on itself.
core::GlobalTrajectory repairGeometry(const core::GlobalTrajectory &trajectory, std::vector< std::size_t > &removed, const GeometryLimits &limits)
Drop the offending waypoints, repeating until the path is monotone.
Thresholds for what counts as a geometrically usable path.
double minSegmentLength
Segments shorter than this [mm] carry no reliable direction, and the heading a downstream spline read...
double minDirectionDot
Consecutive travel directions whose dot product is below this have reversed.
double maxTurnRate
Most the commanded heading may turn per millimetre travelled [rad/mm].