Files
Tutorial/docs/RunAndDeploy.md
T
ruifeng.zhouandCursor d935e847ec Add MultiWheelS Simple scheduling plugin for fleet sync
Introduce the MultiWheelS (SimpleComposer host) plugin with the
MultiVehicleCar definition so fleet auto-sync is driven via Simple
dispatch instead of the hand-rolled AGV.FleetGo path. Simplify
MultiWheelC.AGV to BasicInterface, drop the obsolete FleetGo helper
and FleetStraightMovementTest, wire MultiWheelS into Tutorial.sln,
and update RunAndDeploy docs plus add the MultiVehicleAutoSyncReview
notes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 23:12:23 +08:00

4.4 KiB
Raw Blame History

运行与部署说明

1. 依赖

所有 Tutorial 插件引用 D:\MDCS\Release

组件 路径
Medulla Release\Medulla\
Clumsy Release\Clumsy\ClumsyLite.exe
CommonUsage Release\CommonUsage.dll
MDCSToolBox Release\MDCSToolBox.dll(由 Products\mdcstoolbox 编译 PostBuild 输出)

首次使用前编译 MDCSToolBox

dotnet build D:\MDCS\Source\Products\mdcstoolbox\MDCSToolBox.csproj -c Release

2. 编译 Tutorial

cd D:\MDCS\Source\Tutorial
dotnet build Tutorial.sln

输出:

  • M 插件 → build\Medulla\plugins\
  • C 插件 → build\Clumsy\build\Clumsy_AGV2\PostBuild 复制运行时)
  • S 插件 → build\Simple\plugins\PostBuild 复制 SimpleComposer 宿主到 build\Simple\

MultiWheelS 为旧式 net48 项目,需用 MSBuild 单独编译:

msbuild D:\MDCS\Source\Tutorial\MultiWheel\MultiWheelS\MultiWheelS.csproj /p:Configuration=Debug

或在 Visual Studio 中打开 Tutorial.sln 编译 MultiWheelS 项目。

3. 目录结构

Tutorial/
  DiffWheel/DiffWheelM/   DiffWheel/DiffWheelC/
  MultiWheel/MultiWheelM/ MultiWheel/MultiWheelC/ MultiWheel/MultiWheelS/
  deploy/                 # 配置模板(入库)
  build/                  # 运行目录(gitignore

4. 单车验证(多舵轮)

  1. 启动 Playground(若使用仿真)
  2. 启动 DetourDetourLitedetour.jsonshareObjectTag=Multi1,端口 4321
  3. build\Medulla\start_medulla_agv1.bat
  4. 使用 deploy\start_clumsy_agv1.bat 或手动复制:
    • deploy\chassis.jsonbuild\Clumsy\
    • deploy\clumsy_agv1\clumsy.jsonbuild\Clumsy\clumsy.json
    • deploy\clumsy_agv1\clumsyconsole.jsonbuild\Clumsy\clumsyconsole.json
  5. build\Clumsy\ 运行 ClumsyLite.exe

5. 双车手动联动(同机)

配置项 AGV1(主车) AGV2(从车)
Medulla build\Medulla\ tag Multi1web API 8007 build\Medulla_AGV2\ tag Multi2web API 8108
Detour detour.json tag Multi1HTTP 4321 / Web 4322 Detour_AGV2\detour.json tag Multi2HTTP 4421 / Web 4422
clumsyconsole.json soTag=Multi1, port=8008, detourPort=4321 soTag=Multi2, port=8009, detourPort=4421
clumsy.json msConf MultiVehicleMasterEndpoint="/", CarNum=1 MultiVehicleMasterEndpoint="127.0.0.1:8008", CarNum=2

tag 一致性Detour shareObjectTag = Clumsy soTag = Medulla SetShareObjectTag(见 startup.iocmd)。

  1. 启动 Playground + 两台 Detour + 两台 Medulla + 两台 ClumsyLite(工作目录 build\Clumsy / build\Clumsy_AGV2),或使用 DetourLite\bin\Debug\net8.0\start_all_sim.bat 一键启动全部 7 个进程
  2. 主车 Medulla 遥控器按 F 开启「车队联动」
  3. 用摇杆驱动:Y=纵向,X=编队转向

6. 双车自动联动

  1. 完成上一节双车启动
  2. 至少一台车 PosAvailable=trueDetour 定位有效)
  3. 通过 Simple 调度触发自动联动(推荐):
    • 编译 MultiWheelS(见第 2 节),确认 build\Simple\plugins\MultiWheelS.dll 存在
    • build\Simple\ 运行 SimpleComposer.exe(自动加载 ./plugins
    • 添加车型 「多车联动AGV」MultiVehicleCarMultiVehicleSync=true
    • 主车设置 cport:8008、从车 cport:8009(可用 SetCPortconf 字段)
    • 在该车上规划路径 → 编译为 agv.BasicGo(..., multiVehicleSync:true) → 主车 ChassisController 开启 MultiVehicleAutoEnabledPilotDefinition 50ms 循环广播并驱动车队
  4. 自动联动机制已知问题见 MultiVehicleAutoSyncReview.md

7. 差速示例

使用 deploy\clumsy_diff\clumsy.json,工作目录 build\Clumsy_diff\

8. 配置文件说明

文件 作用
detour.json shareObjectTagguru.DetourPort、雷达 layout
clumsyconsole.json soTagportallowMultipledetourHost/detourPort
clumsy.json msConfPilotConfig(含 TestCarSyncDistance、主车端点)
chassis.json 四轮舵轮几何
startup.iocmd SetShareObjectTag Multi1/Multi2

详细算法见 MultiVehicleSync.md,修复清单见 BugFixes.md,自动联动机制问题分析见 MultiVehicleAutoSyncReview.md