色带和磁条导航

来自MDCS wiki2
Artheru讨论 | 贡献2026年5月16日 (六) 19:26的版本 (Initial bilingual draft (auto-published))
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索


概述 / Overview

色带和磁条导航是工业 AGV 最经典、最低成本的导航方式:在地面铺设一条 视觉色带磁条,车上装传感器实时测量与色带 / 磁条中线的横向偏差,反馈到转向回路实现自动巡线。MDCS 把这类车视为 自评估车:车体自行处理巡线,调度只下发"去哪个站点"的高层意图。

Tape and magnetic-strip navigation is the most classic, lowest-cost industrial AGV navigation: lay coloured tape (vision) or a magnetic strip on the floor; the AGV uses a sensor to measure lateral offset from the strip and steers to keep it centred. MDCS treats these as self-evaluating vehicles: the cart does its own line-following, the fleet just dispatches "go to site X" intents.

适用 / Use cases

  • 低成本固定路径(仓储入库、装配线物料补给)
  • 强干扰环境(金属反射多、纹理少,激光 SLAM 表现差)
  • 老线改造(已有色带 / 磁条线路,复用基础设施)
  • 安全要求极高、需要 物理路径可视可控的场景
  • Low-cost fixed routes (binning, assembly-line restock).
  • Environments hostile to laser SLAM (heavy metal reflection, no texture).
  • Brown-field upgrades where tape / magnet routes already exist.
  • Safety-critical use cases that demand a physically visible / controllable path.

系统组成 / System composition

部件 / Part 色带导航 / Tape 磁条导航 / Magnetic strip
路径基础设施 / Path media 反光色带、贴在地面 / reflective coloured tape on the floor 磁条,1–3 mm 厚,可埋入地面或贴面 / magnetic strip 1–3 mm thick
车上传感器 / On-board sensor 线扫相机或多点光电 / line camera or photo-array 磁导航传感器(霍尔阵列)/ Hall-array
站点标记 / Site marker 二维码 / 反光异型 / RFID tag near the tape RFID 标签(最常见)/ RFID tag
控制器 / Controller 厂商 PLC / MCU 厂商 PLC / MCU
通讯 / Comm to fleet Wi-Fi + RFID 站点回报 Wi-Fi + RFID 站点回报
路径修改 / Route change 重铺色带 重铺磁条

色带导航的优点:易铺设、易看见、可临时改路径;缺点:易污损。
磁条优点:耐用,污垢不影响;缺点:金属物体附近误读,改线难。

MDCS 适配 / MDCS adaptation

要点: 这类车在 SimpleCore / SimpleComposer 中是 自评估车(不跑 MDCS 车载),调度的工作止于"高层意图 + 站点回报"。

The vehicle is a self-evaluating car from MDCS's point of view: no on-board Clumsy, no Medulla. The scheduler's job is to send intent and observe site reports.

最小集成: Minimal integration:

  1. 在 SimpleComposer 中声明一个 `Car` 子类(不是 ClumsyCar),含 nested `AGV : AGVInterface`。
  2. `AGV.Go(srcId, dstId)` 把 站点意图翻译为 RFID 命令帧(或 Modbus 寄存器写入),通过 Wi-Fi 发送到车上 PLC。
  3. 车上 PLC 用 RFID 读到的站点 ID 自决定 下一步(前进 / 等待 / 转向 / 停止),并把 RFID + 状态周期上报。
  4. 在 `Car.keepAlive()` 中解析回报,更新 `(x, y, th, siteId, batt, error)`。
  5. 站点上锁仍由 SimpleCore 的 `TryLock / Leave` 控制,但 是否真的进入取决于车体识别到 RFID 标签。

模板代码(重要细节见 `D:\src\cookbook\adaption-reference\苏州凌鸟\Scenes\AMRScene1\Cars\MNavCar.cs` 293 行):

[CarType(Name = "TapeAGV", Title = "色带 / 磁条 AGV / Tape or magstrip AGV")]
public class TapeAGV : Car
{
    public string plcIp;
    public int    rfidLastSeen;
    public DateTime lastHeartbeat = DateTime.Now;

    public class AGV : AGVInterface
    {
        private readonly TapeAGV car;
        public AGV(TapeAGV c) { car = c; }

        public void Go(double sx, double sy, int srcId,
                       double dx, double dy, int dstId, int routeId)
        {
            Queue(
              async () => { TryLock(srcId, routeId); },
              async () =>
              {
                  // 把"去往 dstId"翻译为 RFID 帧
                  await car.SendRfidGoCommand(dstId);
                  // 等车真的到了
                  while (car.rfidLastSeen != dstId) await Task.Delay(100);
              },
              async () => { Leave(srcId); });
        }
    }

    public override async Task keepAlive()
    {
        var status = await ReadPLC(plcIp);
        // 把 PLC 状态映射到 Car
        UpdatePose(status.X, status.Y, status.Heading);
        rfidLastSeen   = status.LastRfid;
        lastHeartbeat  = DateTime.Now;
    }
}

站点定位 / Site localisation

色带 / 磁条本身只能告诉车 横向偏差,不能告诉车 我在路径上哪一段。所以这类车必须沿路径布 RFID 标签作为站点:

  • 每个分叉前后必有 RFID。
  • 长直线段每 5–10 m 一个 RFID 用于精确位姿恢复。
  • 终点 / 工位前 RFID 触发停车 / 入位逻辑。

Tape / strip only gives lateral offset. RFID tags along the path provide which site I'm at — one before/after each branch, one every 5–10 m on long straight, one at each terminal / work position.

与 MDCS 其它定位的混用 / Hybrid with other localisation

有些项目把色带 / 磁条导航 作为 SLAM 失败时的 fallback:平时跑 激光 SLAM,在已知劣化区段(如户外、强光、临时遮挡)切到磁条 fallback。技术上可行,但工程实现复杂(两套传感器、两套控制律、切换瞬间的姿态一致性);除非现场要求否则不推荐。

Some projects use tape / magstrip as a SLAM fallback on known-degraded segments. Technically feasible, engineering-complex (two sensors, two controllers, transition continuity). Avoid unless the deployment really demands it.

调试与维护 / Debug & maintenance

  • 色带磨损 / Tape wear: 每 3–6 个月巡线一次,发现 ≥ 5 cm 连续缺失立即重贴。
  • 磁条覆盖物 / Magstrip cover: 磁条要避免被金属覆盖(货叉车叉齿掉落 / 临时金属板)。
  • RFID 标签丢失 / RFID loss: 每天上电后做一次 全路径轮询;任何标签失效立即报警。
  • 传感器外参 / Sensor extrinsics: 磁导航传感器中心要对齐车体中线 ±5 mm;偏太多巡线会偏。

失败模式 / Failure modes

  • 丢线 / Loss of tape: 车体应停 + 灯闪 + 报告 SimpleComposer。
  • RFID 漏读 / RFID miss: 心跳里包含 last_rfid + age;调度可据此判断车是否仍在路径。
  • 重定位 / Re-localise: 没有重定位概念 —— 失线后只能人工把车搬到任一 RFID 上。

相关页面 / See also