查看“色带和磁条导航”的源代码
←
色带和磁条导航
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
管理员
您可以查看和复制此页面的源代码。
<languages/> == 概述 / Overview == 色带和磁条导航是工业 AGV 最经典、最低成本的导航方式:在地面铺设一条 ''视觉色带''或 ''磁条'',车上装传感器实时测量与色带 / 磁条中线的横向偏差,反馈到转向回路实现自动巡线。MDCS 把这类车视为 [[Special:MyLanguage/如何基于SimpleCore核心库进行调度系统开发|自评估车]]:车体自行处理巡线,调度只下发"去哪个站点"的高层意图。 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 [[Special:MyLanguage/如何基于SimpleCore核心库进行调度系统开发|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 == {| class="wikitable" ! 部件 / 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 || 重铺色带 || 重铺磁条 |} 色带导航的优点:易铺设、易看见、可临时改路径;缺点:易污损。<br> 磁条优点:耐用,污垢不影响;缺点:金属物体附近误读,改线难。 == 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: # 在 SimpleComposer 中声明一个 `Car` 子类(不是 ClumsyCar),含 nested `AGV : AGVInterface`。 # `AGV.Go(srcId, dstId)` 把 ''站点意图''翻译为 ''RFID 命令帧''(或 Modbus 寄存器写入),通过 Wi-Fi 发送到车上 PLC。 # 车上 PLC 用 RFID 读到的站点 ID 自决定 ''下一步''(前进 / 等待 / 转向 / 停止),并把 RFID + 状态周期上报。 # 在 `Car.keepAlive()` 中解析回报,更新 `(x, y, th, siteId, batt, error)`。 # 站点上锁仍由 SimpleCore 的 `TryLock / Leave` 控制,但 ''是否真的进入''取决于车体识别到 RFID 标签。 模板代码(重要细节见 `D:\src\cookbook\adaption-reference\苏州凌鸟\Scenes\AMRScene1\Cars\MNavCar.cs` 293 行): <syntaxhighlight lang="csharp"> [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; } } </syntaxhighlight> == 站点定位 / 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'':平时跑 [[Special:MyLanguage/激光SLAM建图|激光 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 == * [[Special:MyLanguage/如何基于SimpleCore核心库进行调度系统开发|如何基于SimpleCore核心库进行调度系统开发]] * [[Special:MyLanguage/纯二维码导航|纯二维码导航]] — 类似思路,地标改为二维码 * [[Special:MyLanguage/巡线行走|巡线行走]] — MDCS Clumsy 巡线(基于位姿,不依赖物理标记) [[Category:定位导航相关手册]]
返回
色带和磁条导航
。
导航菜单
个人工具
中文(中国大陆)
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息