# Tutorial Medulla / Clumsy 插件 本仓库提供 **差速** 与 **多舵轮** 两套最小可用示例,每种底盘各含 Medulla (M) 与 Clumsy (C) 插件。多舵轮示例包含 **双车联动(MultiVehicleSync)** 的手动与自动轨迹跟踪演示。 ## 目录结构 ```text Tutorial/ Tutorial.sln DiffWheel/ DiffWheelM/ 差速 Medulla 插件 DiffWheelC/ 差速 Clumsy 插件 MultiWheel/ MultiWheelM/ 多舵轮 Medulla 插件 MultiWheelC/ 多舵轮 Clumsy 插件(含双车联动) deploy/ Clumsy/Medulla 配置模板 docs/ 算法原理、修复记录、部署说明 build/ 本地运行目录(gitignore) ``` ## 依赖 统一引用 `D:\MDCS\Release`: - `Release\Medulla\RefCartActivator.dll` 等 - `Release\Clumsy\RefClumsyCore.dll`、`RefClumsyDance.dll` - `Release\CommonUsage.dll` - `Release\MDCSToolBox.dll`(需先编译 `D:\MDCS\Source\Products\mdcstoolbox`) ```powershell dotnet build D:\MDCS\Source\Products\mdcstoolbox\MDCSToolBox.csproj -c Release dotnet build .\Tutorial.sln ``` 默认输出: - M 插件 → `build\Medulla\plugins\` - C 插件 → `build\Clumsy\`、`build\Clumsy_AGV2\`(多舵轮) - 差速 C 插件 → `build\Clumsy_diff\` ## DiffWheelM / DiffWheelC 差速底盘最小 IO: - `SpeedLeft` / `SpeedRight`:下发速度 - `ActualSpeedLeft` / `ActualSpeedRight`:反馈(M 侧 MotorRoutine 镜像) 遥控器:`Up,Down,Left,Right` + `Q,W` 速度比例。 Clumsy 侧提供 **差速-前进2秒**、**差速-原地旋转2秒** MovementTest。 ## MultiWheelM / MultiWheelC 多舵轮底盘 IO 与 `CommonUsage.Chassis.MultiWheelChassis` 几何一致。M 侧 `MotorRoutine` 将下发速度/角度镜像到反馈,便于仿真观察。 遥控器模式:`R` 旋转、`C` 横移、`S` 斜行、`A,D` 车头偏置、**`F` 车队联动**。 ### 双车联动 - AGV1:`build\Medulla`(tag `Multi1`)+ `build\Clumsy`(主车,`MultiVehicleMasterIp="/"`) - AGV2:`build\Medulla_AGV2`(tag `Multi2`)+ `build\Clumsy_AGV2`(从车) 主从通过 HTTP `:8008` 同步;详见 [docs/MultiVehicleSync.md](docs/MultiVehicleSync.md)。 产品源已知问题及 Tutorial 修复说明:[docs/BugFixes.md](docs/BugFixes.md)。 运行步骤:[docs/RunAndDeploy.md](docs/RunAndDeploy.md)。 ## M 与 C 如何通信 两者不直接调用,而是通过 **CartActivator DObject 共享内存**(相同 IO 字段名 + `SetShareObjectTag`)。Clumsy 写轮速/舵角 UpperIO,Medulla 读并下发;Medulla 写反馈 LowerIO,Clumsy 读用于 ghost/控制。 ## 构建与忽略 `build/`、`obj/`、`.vs/` 已在 `.gitignore` 中忽略。配置模板在 `deploy/`,首次运行 Clumsy 时可复制到 `build\Clumsy*`。