docs: plan hybrid astar coarse path modules
This commit is contained in:
@@ -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` 一类接口。
|
||||
|
||||
Reference in New Issue
Block a user