AGV调度系统:AGV调度系统能够实现对厂区场景内的地图创建、任务分配、路径规划、交通管制等,旨在解决物流效率低下、任务分配低效、设备冲突等问题。
在与甲方沟通过程中,根据实际场景和业务需求,不断的对系统进行升级优化,最终形成稳定高效的AGV调度系统。
地图创建与解析:实现了厂区场景内的地图创建。通过json记录地图中的站点、路径、充电站等信息,由AGV调度系统计算解析,形成一个拓扑图。
任务分配:实现了任务与最佳AGV的绑定。通过任务的具体内容自己所有AGV的状态和位置等信息,为任务分配寻找一个最合适的AGV。
路径规划:实现了AGV执行任务的最优路径计算。通过地图拓扑图中的点线关系,并根据地图中的所有AGV的位置,计算出AGV执行任务的最短路径。
交通管制:实现了多AGV同时无障碍运行。通过实时读取所有AGV的位置、状态等信息,实时对AGV的运动进行调整,避免多AGV运动冲突。
在该项目中作为软件开发工程师,负责地图数据的解析、任务分配、路径规划、交通管制以及各系统间的通信。
开发环境与语言: Windows 系统,C++。
数据存储:采用 SQLite 轻量级数据库,用于存储解析后的地图数据、任务记录等。
通信:基于 TcpSocket 实现服务端功能,与客户端进行数据交互。
系统架构分为三层:
数据层:负责JSON地图数据的解析以及与 SQLite 数据库的交互,实现地图数据的存储和读取。
算法层:包含任务分配算法、路径规划算法和交通管制算法,负责处理AGV的调度逻辑。
通信层:基于TcpSocket 构建服务端,处理与客户端的连接和数据通信,采用JSON字符串作为通信格式。
系统亮点:
高效的任务分配机制:当新任务到来时,能够快速计算出最近的空闲的且能够满足所有要求的AGV来执行任务,提高了任务执行的效率和资源的利用率。该基于距离和状态的任务分配策略,能够在较短时间内做出合理的决策。
交通管制:当多个AGV同时行驶时,通过有效的交通管制策略,保证AGV之间互不影响,避免碰撞和拥堵情况的发生。该功能提高了系统的安全性和稳定性,确保AGV集群能够有序运行。