docs: plan hybrid astar coarse path modules

This commit is contained in:
梁薄云
2026-07-26 23:20:10 +08:00
parent 7604d12a44
commit a0d21eea57
2 changed files with 380 additions and 0 deletions
@@ -47,6 +47,9 @@ ClumsyPilot/ParkrobTrajplanner/
│ │ ├── PlanningGridMap.cs
│ │ ├── ObstacleDistanceField.cs
│ │ └── PlanningMapAdapter.cs
│ ├── PlanningMapRequest.cs
│ ├── PlanningMapBuildResult.cs
│ └── PlanningMapFactory.cs
│ └── Test/
│ └── MovementTest.MapTest.cs
├── CoarsePath/ # MultiWheelC.TrajectoryPlanning.CoarsePath
@@ -105,6 +108,36 @@ ClumsyPilot/tests/
## Map 模块
### 对外调用门面
粗路径模块不直接实例化 `EnvironmentMapBuilder``MapObstacleRasterizer``TwoLegObstacleProjector``PlanningMapAdapter``PlanningMapFactory``Map` 模块唯一的公共创建入口:
```csharp
public sealed class PlanningMapFactory
{
public PlanningMapBuildResult Create(PlanningMapRequest request);
}
```
粗路径调用只依赖其稳定输出:
```csharp
var mapResult = new PlanningMapFactory().Create(mapRequest);
if (!mapResult.Succeeded)
return PlanningResult.FromMapFailure(mapResult);
var result = new HybridAStarPlanner().Plan(new PlanningRequest
{
Map = mapResult.Map,
Start = startPose,
Goal = goalPose,
Vehicle = vehicle,
Configuration = configuration,
});
```
`PlanningMapRequest` 集中地图边界/分辨率、人工障碍物、可选 `TwoLegDetect` 投影输入和空旷地图声明;`PlanningMapBuildResult` 返回 `Succeeded`、失败原因、每个障碍物来源的摘要,以及成功时不可变的 `PlanningGridMap`。因此 A* 的 `PlanningRequest.Map` 始终是已完成校验、mm→m 适配、距离场生成的输入,规划器不需要了解地图构造细节。
### 环境地图与图层
`EnvironmentGridMap` 保存 mm 单位的地图边界、分辨率和仅含外部障碍物的占据单元。它不接受 `MarkVehicleFootprint` 一类接口。