24#include <SimoxUtility/json/json.hpp>
108 void writeRecord(std::ostream& out,
const Record& record);
116 std::string
summarize(
const std::vector<Record>& records,
float checkerClearance);
119 Record
measure(
const Request& request,
120 const std::optional<global_planning::GlobalPlannerResult>& result,
122 float plannedSeconds);
This file is part of ArmarX.
Record measure(const Request &request, const std::optional< global_planning::GlobalPlannerResult > &result, const algorithms::Costmap &costmap, const float plannedSeconds)
Measure a planning result against the costmap.
std::string summarize(const std::vector< Record > &records, const float checkerClearance)
Aggregate over a sweep, grouped by request kind.
void writeRecord(std::ostream &out, const Record &record)
One JSON object per line, so a sweep streams to disk and can be diffed across revisions.
What one planning request produced.
float sharpestGridTurnDeg
The same, measured on the raw grid-search output before resampling and smoothing.
float spacingRatio
Longest / shortest segment. 1.0 is perfectly even; large values mean bunching.
float meanTurnDeg
Mean absolute direction change per interior waypoint [deg].
float separation
Straight-line start-to-goal distance and the length actually planned [mm].
float startClearance
Costmap clearance at the requested start and goal [mm].
global_planning::GlobalPlannerResult::SmoothingOutcome smoothing
int foldsInResult
Folds in the trajectory the planner returned, measured independently of the smoother's own gate: the ...
float totalTurningDeg
Total turning along the path [deg] – the sum of the absolute direction change at every interior waypo...
float directness
Straight-line distance divided by path length. 1.0 is a straight run.
float sharpestTurnDeg
Sharpest direction change between consecutive segments [deg], and how many exceed 30 deg.
float minClearance
Smallest costmap clearance along the returned path [mm], sampled at waypoints and along the segments ...
Why the position smoothing stage ended the way it did.