|
|
Why the position smoothing stage ended the way it did. More...
#include <armarx/navigation/global_planning/GlobalPlanner.h>
Public Attributes | |
| bool | collisionFree {false} |
| The smoothed path passed the collision check. | |
| std::size_t | collisions {0} |
| Number of places the rejected smoothed path fell below the clearance. | |
| std::size_t | endpointCollisions {0} |
| Of those, how many were at a commanded endpoint or on the segment adjoining it. | |
| bool | geometryValid {true} |
| The smoothed path was free of folds and degenerate segments. | |
| float | inputMinClearance {0.F} |
| Smallest clearance [mm] on the path handed to the smoother, and on its result. | |
| float | inputSharpestTurnDeg {0.F} |
| Sharpest direction change [deg] in the trajectory handed to the smoother. | |
| bool | judgedAgainstInput {false} |
| The input was already inside the limit, so the result was judged against it. | |
| float | outputMinClearance {0.F} |
| bool | ran {false} |
| The stage ran at all (i.e. was enabled and the trajectory was long enough). | |
| std::size_t | repairedWaypoints {0} |
| Waypoints dropped to repair a fold. | |
| float | worstCollisionClearance {0.F} |
| Worst clearance found at any violating sample [mm]. | |
Why the position smoothing stage ended the way it did.
positionSmoothingApplied alone cannot distinguish a result rejected for residual collisions from one rejected for folding back on itself, and the two call for different fixes. Populated by planners that smooth; left at its defaults otherwise.
Definition at line 80 of file GlobalPlanner.h.
| bool collisionFree {false} |
The smoothed path passed the collision check.
Definition at line 86 of file GlobalPlanner.h.
| std::size_t collisions {0} |
Number of places the rejected smoothed path fell below the clearance.
Definition at line 106 of file GlobalPlanner.h.
| std::size_t endpointCollisions {0} |
Of those, how many were at a commanded endpoint or on the segment adjoining it.
The optimizer holds the start and goal fixed – the start is where the robot is and the goal is what was asked for – so a violation there is not something it could have avoided. Counted apart so a rejection rate can distinguish a path the smoother got wrong from a request it was never able to satisfy.
Definition at line 116 of file GlobalPlanner.h.
| bool geometryValid {true} |
The smoothed path was free of folds and degenerate segments.
Definition at line 89 of file GlobalPlanner.h.
| float inputMinClearance {0.F} |
Smallest clearance [mm] on the path handed to the smoother, and on its result.
Definition at line 122 of file GlobalPlanner.h.
| float inputSharpestTurnDeg {0.F} |
Sharpest direction change [deg] in the trajectory handed to the smoother.
Without it the only turn measurable from outside is the one in the returned path, which is the smoothed path when smoothing succeeded and the unsmoothed one when it did not – two different things, so comparing them across the accept/reject split says nothing. This is the same quantity for both.
Definition at line 103 of file GlobalPlanner.h.
| bool judgedAgainstInput {false} |
The input was already inside the limit, so the result was judged against it.
Definition at line 127 of file GlobalPlanner.h.
| float outputMinClearance {0.F} |
Definition at line 124 of file GlobalPlanner.h.
| bool ran {false} |
The stage ran at all (i.e. was enabled and the trajectory was long enough).
Definition at line 83 of file GlobalPlanner.h.
| std::size_t repairedWaypoints {0} |
Waypoints dropped to repair a fold.
Non-zero implies the path did fold, even when geometryValid ends up true because the repair succeeded.
Definition at line 93 of file GlobalPlanner.h.
| float worstCollisionClearance {0.F} |
Worst clearance found at any violating sample [mm].
Definition at line 119 of file GlobalPlanner.h.