Files
ParkingRobot/docs/overview.md

47 lines
3.4 KiB
Markdown

# 项目概览
## 项目定位
`MyParking` 是停车机器人控制软件的当前正式开发版本,主体为 C# 插件工程。项目目标是让多舵轮停车机器人完成底盘运动、车辆状态获取、轨迹跟踪、原地自转和后续停车作业;当前研发重点仍是单车闭环和实车联调,多车协同已有纯计算骨架但尚未形成可运行实现。来源:`README.md``MultiWheelC/PilotConfig.cs``MultiWheelC/Fleet/``Shared/Fleet/`
项目不是可直接 `dotnet run` 的独立应用:
- `MultiWheelC.dll` 由 Clumsy 宿主加载,提供 C 层动作、控制和 `MovementTest` 入口。
- `MedullaAdapter.dll` 由 Medulla 宿主加载,负责 M 层硬件通信和周期逻辑。
- `CommonUsage.dll` 提供通用底盘模型和四轮几何解算。
对应入口类型为 `MultiWheelC/PilotDefinition.cs::PilotDefinition``MedullaAdapter/DiverCartDefinition.cs::DiverCartDefinition`;仓库中没有 `Program.Main`
## 车辆与业务场景
- 代码接口面向四个可转向轮组,并暴露8个驱动电机的位置/速度反馈和4个舵角反馈。M/C IO定义见 `PilotDefinition``DiverCartDefinition`
- 车体支持正常前后行驶、倒车轨迹、任意固定运动方向β下的滚动运动、蟹行和停车后原地自转。主要入口见 `MultiWheelC/Movements/``MultiWheelC/Experiments/`
- 夹臂速度、位置、限位和报警IO已经接入,但轮胎识别、自动钻车、释放车辆和完整停车作业状态机尚未在当前新版流程中完成。来源:`PilotConfig.cs``PilotDefinition.cs``README.md`
- 多车已具备 `FleetLayout``FleetState``FleetController``FleetKinematics` 组成的纯计算链;多车配置仍位于 `PilotConfig.cs``#if false`,且状态聚合、通信、成员纠偏、安全协调和实体发送尚未接入,因此不能把当前代码视为已支持可运行的多车编队。
## 整体运行流程
典型新版轨迹跟踪流程:
1. Clumsy 宿主通过 `MovementTest` 或动作计划启动 `TrajectoryTrackingMovement`
2. 动作停车并通过 `PrepareWheelsForward` 将舵轮预对齐到本段运动方向β。
3. `ParkingVehicleStateProviderFactory` 组合 Detour 位姿和轮组反馈速度。
4. `ParkingGeometricController` 完成轨迹投影、横纵向控制、GCP分配和完成条件判断。
5. `GcpCommandExecutor``MultiWheelChassisAdapter` 将SI单位命令转换到当前运动坐标系,再调用 `CommonUsage.Chassis.MultiWheelChassis`
6. M层周期逻辑将底盘和夹臂命令发送到MCU/CAN,并把反馈通过宿主IO返回C层。
详细调用链见 `architecture.md`,接口和坐标语义见 `interfaces.md`
## 当前阶段
- 单车基本运动、新版轨迹跟踪、倒车直线、45°蟹行直线、原地自转和组合动作均有宿主测试入口。
- 新版控制默认采用 Stanley 横向控制和 PID 纵向控制;轨迹实验和控制周期诊断可输出CSV。
- 当前代码能力不等于完整实车验收,特别是高速、曲线倒车、蟹行曲线、长期稳定性和异常工况仍需单独验证。
## 待确认
- Clumsy/Medulla 宿主的正式版本、插件部署目录和启动顺序。
- `PilotDefinition.Conf` 在实车上的持久化文件位置、加载时机和发布流程。
- 真实车辆最终几何参数、舵轮零位/限位和不同车辆配置的权威来源。
- 完整停车业务的产品流程、安全状态机和验收指标。