这篇文章是对之前做过的分布式机器人多机协同系统的一些设计和思考的整理归纳。写下来主要是为了复盘思路,理清架构,同时也能给后来者提供一些参考。
一、基本概念
我们要解决的问题是:如何让多个异构机器人设备协同完成巡检任务。这意味着系统需要统一调度无人机、地面机器人、固定相机和其他边缘计算节点等
从架构层面看,最合理的方式是 中心控制:
- 云端负责全局调度与任务编排,下发统一的任务指令;
- 各设备只需按照分配的任务执行,并将运行状态上报云端
这篇文章是对之前做过的分布式机器人多机协同系统的一些设计和思考的整理归纳。写下来主要是为了复盘思路,理清架构,同时也能给后来者提供一些参考。
我们要解决的问题是:如何让多个异构机器人设备协同完成巡检任务。这意味着系统需要统一调度无人机、地面机器人、固定相机和其他边缘计算节点等
从架构层面看,最合理的方式是 中心控制:
某日,小坤坤顶着狂风暴雨出门面试,坐了地铁,转了共享单车,摔了一跤,走过马路,跨过人行天桥,一路又唱又跳终于到达面试地点,见到了面试官:
面试官:“1 的二进制是多少?”
小坤坤:“01”
面试官:“2 呢?”
小坤坤:“10”(坤:So easy)
面试官:“13 的二进制是多少?”
小坤坤:“这个需要算一下,平时不用” 说完掏出纸笔进行除二法运算
小坤坤顶着面试官灼热的目光一通写画后:“是 1101”
面试官:“那 15 呢?”
小坤坤又一通写画道:“是 1111”
在嵌入式开发的世界里,"点灯" (Blinking LED) 的地位等同于编程语言界的 "Hello World"。如果你能控制一个 LED 的亮灭,你就能控制继电器、电机、甚至核弹发射井(理论上)。
在 Linux 中,有一句至理名言:"一切皆文件" (Everything is a file)。
是的,连硬件引脚也是文件。我们可以像写文本文件一样,通过读写特定的系统文件来控制电压高低。是不是很酷?
我们使用 sysfs 接口来操作 GPIO。想象一下,你作为一个系统管理员,通过修改文件系统里的"配置单",直接指挥硬件干活。
Modbus 是一种通用的工业通信协议,广泛应用于自动化领域中设备之间的通信。它最初由 Modicon(现在的施耐德电气)于 1979 年开发,是一个开放标准的协议。
在 OSI 模型中,Modbus 通常被归类为应用层协议,可以说RS485 是 OSI 模型中的物理层实现,负责电气和机械特性,Modbus 则通常处于 OSI 模型的应用层,负责定义数据传输的结构、规则和协议。
RS-485 是一种物理层通信标准,定义了电气特性、传输速率、线路拓扑等细节
RS485 是一种广泛应用于工业领域的半双工串行通信协议。RS485 可以支持多达 32 个设备在同一总线上通信。RS485 的最大传输速率可以达到 10Mbps,但实际应用中,速率和传输距离成反比关系。
RS485 使用差分信号传输,这意味着它通过一对互补信号线(通常标记为 A 和 B)传输数据。
在 RS485 总线的两端需要连接终端电阻(通常为 120 欧姆),以匹配线路阻抗,防止信号反射。
IEC 61499 defines a domain-specific modeling language for developing distributed industrial control solutions. IEC 61499 extends IEC 61131-3 by improving the encapsulation of software components for increased re-usability, providing a vendor independent format, and simplifying support for controller-to-controller communication. Its distribution functionality and the inherent support for dynamic reconfiguration provide the required infrastructure for Industry 4.0 and industrial IoT applications.
刚开始玩黑果的时候,网上资料确实不少,但是有一些教程复杂到令人望而生畏。于是在自己摸索的过程中有了这一份笔记。