# 项目概览 ## 项目定位 `MyParking` 是停车机器人控制软件的当前正式开发版本,主体为 C# 插件工程。项目目标是让多舵轮停车机器人完成底盘运动、车辆状态获取、轨迹跟踪、原地自转和后续停车作业;当前研发重点仍是单车闭环和实车联调,多车协同尚未形成可运行实现。来源:`README.md`、`MultiWheelC/PilotConfig.cs`、`Shared/Fleet/FleetKinematics.cs`。 项目不是可直接 `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`。 - 多车模型数据类型已经预留,但多车配置位于 `PilotConfig.cs` 的 `#if false`,`FleetKinematics.cs` 只有占位注释,不能把当前代码视为已支持多车编队。 ## 整体运行流程 典型新版轨迹跟踪流程: 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` 在实车上的持久化文件位置、加载时机和发布流程。 - 真实车辆最终几何参数、舵轮零位/限位和不同车辆配置的权威来源。 - 完整停车业务的产品流程、安全状态机和验收指标。