插件开发指南
概述 / Overview
本页是 MDCS 插件开发的总入口。MDCS 把所有可扩展能力归为 5 个 插件家族,每个家族对应一类 扩展点 + 基类 + 打包约定。完整离线副本见 `D:\src\cookbook\HOW_TO_CUSTOMIZE.md`。
This is the hub for MDCS plugin development. MDCS organises every extension point into 5 plugin families, each with its own base class + packaging convention. Offline mirror: `D:\src\cookbook\HOW_TO_CUSTOMIZE.md`.
1. 5 类插件 / The five families
| 家族 / Family | 宿主进程 / Host process | 基类 / Base | 入门页 / Tutorial |
|---|---|---|---|
| 雷达插件 / Lidar plugin | Medulla | `Lidar2DIOObject` / `Lidar3DIOObject` | 如何适配新的雷达 / 2D激光雷达适配 |
| 相机插件 / Camera plugin | Medulla | `IOObject`(约定 `MainIOObject` 类名) | 3D相机适配 |
| 底盘适配 / Cart hardware | Medulla | `CartDefinition` | MDCS引擎适配机器人入门教学 |
| Movement / 运动适配 | Clumsy | `MovementDefinition` | 巡线行走 / MovementDefinition详解 |
| 车队插件 / Fleet plugin | SimpleComposer | `ClumsyCar` / `Car` / `BusinessLogic` + `[CarType]` | 如何基于SimpleCore核心库进行调度系统开发 |
底层共通约定见以下子页: Shared conventions live on these sub-pages:
- 插件契约与打包约定 — `MainIOObject` 命名 + Costura + LessokajiWeaver + 部署路径
- IOObject属性参考 — `[IOObjectMonitor] / [IOObjectUtility] / [IOObjectWebUtility] / [IOObjectWatch]`
- CartDefinition属性参考 — `[AsInitParam] / [AsUpperIO] / [AsLowerIO] / [UseLadderLogic]`
- LadderLogic框架 — 周期循环宿主
- startup.iocmd脚本语法 — 启动脚本
- DObject共享内存协议 — IPC
- MovementDefinition详解 — Movement 契约
- SimpleAgvInterface Queue机制 — Queue 行为
- TightCoupler外部反馈API — 外部位姿源接入
- 插件测试与发布 — 测试 + 打包 + 发布
- 插件开发清单 — Do's & Don'ts
2. 工程脚手架 / Scaffolding
脚手架工具:`D:\src\cookbook\MDCS-plugin-helper\generate.py`(交互式 Python 脚本)。 Scaffolder: `D:\src\cookbook\MDCS-plugin-helper\generate.py` (interactive).
cd D:\src\cookbook\MDCS-plugin-helper
python generate.py
# Choose 1 — Create a project
# Pick the plugin family
# Enter project name
它会下载 参考 DLL(`Ref<Name>.dll` 系列)到 `ref/`,并下载对应 boilerplate `.cs` 文件。 It downloads the reference DLLs (`Ref<Name>.dll`) into `ref/` and a boilerplate `.cs` file.
3. 车型适配案例 / Vehicle case studies
按车型分类的端到端案例: End-to-end case studies by vehicle type:
- 叉车适配案例 — 凌鸟 LB14
- 潜伏顶升车(KIVA类小车)适配案例 — 浙江迈睿 KIVA
- 全向车适配案例 — 麦克纳姆 + 四舵
- 牵引车适配案例 — 单 / 双阿克曼