using MultiWheelC.TrajectoryPlanning.Mapping;
namespace MultiWheelC.TrajectoryPlanning.CoarsePath.Facade;
///
/// 一次从地图输入到 Hybrid A* 粗路径输出的完整业务请求。
/// 地图边界、分辨率和障碍物几何位于 中并使用 mm;位姿和车辆几何使用 m,航向使用 rad,曲率使用 1/m。
///
public sealed class CoarsePathPlanningJob
{
/// 创建默认目标方向、起步曲率和关闭调试旁路的业务请求。
public CoarsePathPlanningJob()
{
StartVehicleCurvature = 0d;
GoalDirection = GoalDirectionConstraint.Any;
DebugOptions = new PlanningDebugOptions();
}
/// 本次唯一建图输入;边界、分辨率和障碍物几何均遵循 Map 模块的 mm 契约。
public PlanningMapRequest MapRequest { get; set; }
/// 车辆几何中心的起始位姿;位置单位 m,航向单位 rad。
public Pose2D Start { get; set; }
/// 车辆几何中心的目标位姿;位置单位 m,航向单位 rad。
public Pose2D Goal { get; set; }
/// 车辆尺寸、安全余量和曲率限制;尺寸单位 m,曲率单位 1/m。
public VehicleParameters Vehicle { get; set; }
/// 原语、离散、容差、代价和资源上限配置。
public HybridAStarConfiguration Configuration { get; set; }
/// 车辆起步曲率,单位 1/m;默认值为 0。
public double StartVehicleCurvature { get; set; }
/// 起步方向约束;null 表示可从前进或倒车开始。
public TravelDirection? StartDirection { get; set; }
/// 目标进入方向约束;默认值为 。
public GoalDirectionConstraint GoalDirection { get; set; }
/// 可选调试旁路配置;默认关闭且使用空接收器,不参与地图或路径计算。
public PlanningDebugOptions DebugOptions { get; set; }
}