Files
Tutorial/README.md
T
ruifeng.zhouandCursor 235c6c70ac Add Clumsy plugins and dual-vehicle fleet sync demo.
Restructure into DiffWheel/MultiWheel folders, add DiffWheelC and MultiWheelC with MovementTests, FleetRemote multi-vehicle manual sync, deploy templates, and documentation. Update dependency paths to D:\MDCS\Release and mirror motor feedback in MotorRoutine for simulation.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 15:04:55 +08:00

76 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 写轮速/舵角 UpperIOMedulla 读并下发;Medulla 写反馈 LowerIOClumsy 读用于 ghost/控制。
## 构建与忽略
`build/``obj/``.vs/` 已在 `.gitignore` 中忽略。配置模板在 `deploy/`,首次运行 Clumsy 时可复制到 `build\Clumsy*`