Files
ParkingRobot/docs/overview.md
T

3.4 KiB

项目概览

项目定位

MyParking 是停车机器人控制软件的当前正式开发版本,主体为 C# 插件工程。项目目标是让多舵轮停车机器人完成底盘运动、车辆状态获取、轨迹跟踪、原地自转和后续停车作业;当前研发重点仍是单车闭环和实车联调,多车协同已有纯计算骨架但尚未形成可运行实现。来源:README.mdMultiWheelC/PilotConfig.csMultiWheelC/Fleet/Shared/Fleet/

项目不是可直接 dotnet run 的独立应用:

  • MultiWheelC.dll 由 Clumsy 宿主加载,提供 C 层动作、控制和 MovementTest 入口。
  • MedullaAdapter.dll 由 Medulla 宿主加载,负责 M 层硬件通信和周期逻辑。
  • CommonUsage.dll 提供通用底盘模型和四轮几何解算。

对应入口类型为 MultiWheelC/PilotDefinition.cs::PilotDefinitionMedullaAdapter/DiverCartDefinition.cs::DiverCartDefinition;仓库中没有 Program.Main

车辆与业务场景

  • 代码接口面向四个可转向轮组,并暴露8个驱动电机的位置/速度反馈和4个舵角反馈。M/C IO定义见 PilotDefinitionDiverCartDefinition
  • 车体支持正常前后行驶、倒车轨迹、任意固定运动方向β下的滚动运动、蟹行和停车后原地自转。主要入口见 MultiWheelC/Movements/MultiWheelC/Experiments/
  • 夹臂速度、位置、限位和报警IO已经接入,但轮胎识别、自动钻车、释放车辆和完整停车作业状态机尚未在当前新版流程中完成。来源:PilotConfig.csPilotDefinition.csREADME.md
  • 多车已具备 FleetLayoutFleetStateFleetControllerFleetKinematics 组成的纯计算链;多车配置仍位于 PilotConfig.cs#if false,且状态聚合、通信、成员纠偏、安全协调和实体发送尚未接入,因此不能把当前代码视为已支持可运行的多车编队。

整体运行流程

典型新版轨迹跟踪流程:

  1. Clumsy 宿主通过 MovementTest 或动作计划启动 TrajectoryTrackingMovement
  2. 动作停车并通过 PrepareWheelsForward 将舵轮预对齐到本段运动方向β。
  3. ParkingVehicleStateProviderFactory 组合 Detour 位姿和轮组反馈速度。
  4. ParkingGeometricController 完成轨迹投影、横纵向控制、GCP分配和完成条件判断。
  5. GcpCommandExecutorMultiWheelChassisAdapter 将SI单位命令转换到当前运动坐标系,再调用 CommonUsage.Chassis.MultiWheelChassis
  6. M层周期逻辑将底盘和夹臂命令发送到MCU/CAN,并把反馈通过宿主IO返回C层。

详细调用链见 architecture.md,接口和坐标语义见 interfaces.md

当前阶段

  • 单车基本运动、新版轨迹跟踪、倒车直线、45°蟹行直线、原地自转和组合动作均有宿主测试入口。
  • 新版控制默认采用 Stanley 横向控制和 PID 纵向控制;轨迹实验和控制周期诊断可输出CSV。
  • 当前代码能力不等于完整实车验收,特别是高速、曲线倒车、蟹行曲线、长期稳定性和异常工况仍需单独验证。

待确认

  • Clumsy/Medulla 宿主的正式版本、插件部署目录和启动顺序。
  • PilotDefinition.Conf 在实车上的持久化文件位置、加载时机和发布流程。
  • 真实车辆最终几何参数、舵轮零位/限位和不同车辆配置的权威来源。
  • 完整停车业务的产品流程、安全状态机和验收指标。