66 lines
2.9 KiB
C#
66 lines
2.9 KiB
C#
using System;
|
||||
|
|
|
|||
|
|
namespace MultiWheelC.TrajectoryPlanning.CoarsePath;
|
|||
|
|
|
|||
|
|
/// <summary>一次规划的只读统计与终止说明;长度和净空单位为 m。</summary>
|
|||
|
|
public sealed class PlanningDiagnostics
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 创建规划统计快照。
|
|||
|
|
/// 参数中的节点数量均为非负计数;pathLengthMeters 和 minimumBodyClearanceMeters 单位为 m;elapsed 为总耗时;pathSearchElapsed 为地图和起终点预检通过后的路径产出耗时;terminationReason 为可读终止说明,可为 null。
|
|||
|
|
/// </summary>
|
|||
|
|
public PlanningDiagnostics(
|
|||
|
|
int expandedNodeCount = 0,
|
|||
|
|
int generatedNodeCount = 0,
|
|||
|
|
int reopenedNodeCount = 0,
|
|||
|
|
int staleOpenListEntryCount = 0,
|
|||
|
|
int peakOpenListCount = 0,
|
|||
|
|
double pathLengthMeters = 0d,
|
|||
|
|
double minimumBodyClearanceMeters = 0d,
|
|||
|
|
TimeSpan elapsed = default(TimeSpan),
|
|||
|
|
string terminationReason = null,
|
|||
|
|
TimeSpan pathSearchElapsed = default(TimeSpan))
|
|||
|
|
{
|
|||
|
|
ExpandedNodeCount = expandedNodeCount;
|
|||
|
|
GeneratedNodeCount = generatedNodeCount;
|
|||
|
|
ReopenedNodeCount = reopenedNodeCount;
|
|||
|
|
StaleOpenListEntryCount = staleOpenListEntryCount;
|
|||
|
|
PeakOpenListCount = peakOpenListCount;
|
|||
|
|
PathLengthMeters = pathLengthMeters;
|
|||
|
|
MinimumBodyClearanceMeters = minimumBodyClearanceMeters;
|
|||
|
|
Elapsed = elapsed;
|
|||
|
|
PathSearchElapsed = pathSearchElapsed;
|
|||
|
|
TerminationReason = terminationReason ?? string.Empty;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>从 Open List 取出并真正扩展的节点数量。</summary>
|
|||
|
|
public int ExpandedNodeCount { get; }
|
|||
|
|
|
|||
|
|
/// <summary>生成并尝试加入搜索状态的节点数量。</summary>
|
|||
|
|
public int GeneratedNodeCount { get; }
|
|||
|
|
|
|||
|
|
/// <summary>以严格更小代价到达同一离散键而重新打开的节点数量。</summary>
|
|||
|
|
public int ReopenedNodeCount { get; }
|
|||
|
|
|
|||
|
|
/// <summary>从 Open List 取出后因已有更优条目而丢弃的陈旧堆条目数量。</summary>
|
|||
|
|
public int StaleOpenListEntryCount { get; }
|
|||
|
|
|
|||
|
|
/// <summary>搜索期间 Open List 同时容纳的最大有效或待丢弃条目数量。</summary>
|
|||
|
|
public int PeakOpenListCount { get; }
|
|||
|
|
|
|||
|
|
/// <summary>成功路径的累计弧长,单位 m;失败结果通常为 0。</summary>
|
|||
|
|
public double PathLengthMeters { get; }
|
|||
|
|
|
|||
|
|
/// <summary>成功路径所有点中车体保守净空下界的最小值,单位 m;失败结果通常为 0。</summary>
|
|||
|
|
public double MinimumBodyClearanceMeters { get; }
|
|||
|
|
|
|||
|
|
/// <summary>从规划入口到返回结果的总耗时。</summary>
|
|||
|
|
public TimeSpan Elapsed { get; }
|
|||
|
|
|
|||
|
|
/// <summary>地图和起终点预检通过后,二维启发式、Hybrid A*、回溯、装配和最终复核的耗时;不含建图,搜索前失败时为零。</summary>
|
|||
|
|
public TimeSpan PathSearchElapsed { get; }
|
|||
|
|
|
|||
|
|
/// <summary>面向调用方的终止原因;成功时可为空字符串。</summary>
|
|||
|
|
public string TerminationReason { get; }
|
|||
|
|
}
|