# AGV-Simulator **Repository Path**: openwcs/agv-simulator ## Basic Information - **Project Name**: AGV-Simulator - **Description**: 强大的AGV导航模拟工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-06-11 - **Last Updated**: 2025-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AGV模拟工具 v1.0 一个功能强大的AGV(自动引导车)模拟工具,提供可视化的地图编辑器和智能的多AGV导航模拟系统。 ![演示](images/nav_000.gif) ![演示](images/nav_001.gif) ![演示](images/nav_002.gif) ![避让](images/nav_avoid.gif) ## 🌟 主要功能 ### 📍 地图编辑器 - **网格视图**: 支持最大1500x1200的网格地图 - **站点管理**: 可添加、编辑、删除站点,站点必须位于网格中心 - **路径编辑**: 支持单向和双向路径连接 - **交互操作**: 双击编辑属性,拖拽移动,右键菜单操作 - **缩放功能**: 支持地图缩放和拖拽浏览 - **文件操作**: 地图保存和加载功能 ### 🤖 AGV模拟系统 - **多AGV模拟**: 支持最多20个AGV同时运行 - **智能导航**: 基于A*算法的路径规划 - **碰撞避让**: 智能避障系统,防止AGV碰撞 - **任务管理**: 支持添加运输任务,优先级调度 - **状态监控**: 实时显示AGV状态(空闲、移动、装载、卸载) - **自动恢复**: AGV遇到障碍时自动寻找替代路径 ### 🗺️ 地图生成器 - **随机地图**: 自动生成复杂的随机地图 - **仓库布局**: 预设的仓库场景模板 - **工厂布局**: 预设的生产线场景模板 - **复杂度控制**: 可选择简单、中等、复杂三种生成模式 ### 🎨 用户界面 - **现代化设计**: 炫酷的深色主题界面 - **直观操作**: 工具栏分组,操作简单直观 - **实时反馈**: 状态栏显示坐标、缩放等信息 - **多选项卡**: 地图编辑和模拟分离,便于操作 ## 🚀 快速开始 ### 环境要求 - Python 3.7+ - PyQt5 5.15.0+ - Windows/Linux/macOS ### 安装步骤 1. **克隆项目** ```bash git clone <项目地址> cd agv3 ``` 2. **安装依赖** ```bash pip install -r requirements.txt ``` 3. **运行程序** ```bash python main.py ``` ## 📖 使用指南 ### 1. 创建地图 #### 新建地图 1. 点击左侧工具栏"新建地图"按钮 2. 选择"添加站点"工具 3. 在网格上点击添加站点 4. 选择"添加路径"工具 5. 依次点击两个站点创建路径连接 #### 编辑站点 - **双击站点**: 编辑站点名称和描述 - **右键站点**: 显示上下文菜单(编辑/删除) - **拖拽站点**: 移动站点位置 #### 路径设置 - 在工具栏选择路径类型(双向/单向) - 单向路径会显示箭头指示方向 ### 2. 地图操作 #### 视图控制 - **鼠标滚轮**: 缩放地图 - **中键拖拽**: 移动地图视图 - **Ctrl + 鼠标滚轮**: 精确缩放 #### 选择操作 - **单击选择**: 选择单个对象 - **Ctrl + 单击**: 多选对象 - **Delete键**: 删除选中对象 ### 3. AGV模拟 #### 开始模拟 1. 确保地图包含站点和路径 2. 设置AGV数量(1-20) 3. 点击"开始模拟"按钮 4. 切换到"AGV模拟"选项卡查看运行 #### 添加任务 1. 点击"添加任务"按钮 2. 选择起始站点和目标站点 3. 设置任务优先级(1-10) 4. 填写货物描述和备注 5. 确认添加任务 #### 模拟控制 - **暂停/恢复**: 暂停或恢复模拟 - **停止模拟**: 完全停止模拟并重置 - **实时监控**: 观察AGV状态变化 ### 4. 地图生成 #### 随机生成 1. 点击"随机生成地图"按钮 2. 系统自动创建包含站点和路径的地图 3. 可重复生成获得不同布局 #### 预设场景 - **仓库模式**: 适合仓储物流模拟 - **工厂模式**: 适合生产线运输模拟 ### 5. 文件管理 #### 保存地图 1. 点击"保存地图"或Ctrl+S 2. 选择保存位置和文件名 3. 地图以JSON格式保存 #### 加载地图 1. 点击"加载地图"或Ctrl+O 2. 选择之前保存的JSON文件 3. 系统自动加载地图数据 ## 🔧 技术特性 ### 核心算法 - **A*寻路算法**: 高效的最短路径搜索 - **碰撞检测**: 实时检测AGV间距离 - **优先级调度**: 基于任务优先级的智能分配 - **动态避障**: 遇到阻塞时的路径重规划 ### 数据结构 - **图论模型**: 站点和路径构成的有向/无向图 - **状态机**: AGV状态管理(空闲、移动、作业) - **队列管理**: 任务队列和AGV队列 ### 性能优化 - **增量更新**: 只重绘变化的部分 - **坐标变换**: 高效的屏幕坐标转换 - **内存管理**: 合理的对象生命周期管理 ## 🎯 应用场景 ### 仓储物流 - 货架布局规划 - 拣选路径优化 - 库存搬运模拟 ### 生产制造 - 生产线物料配送 - 工位间运输规划 - 产能瓶颈分析 ### 教学研究 - 算法验证平台 - 路径规划教学 - 系统仿真实验 ## 🐛 故障排除 ### 常见问题 **Q: 程序启动失败** A: 检查Python版本和PyQt5安装情况 **Q: 地图显示异常** A: 尝试重新加载地图文件或检查JSON格式 **Q: AGV无法移动** A: 确保站点间有有效的路径连接 **Q: 模拟卡顿** A: 减少AGV数量或简化地图复杂度 ### 性能建议 - 站点数量建议控制在100个以内 - AGV数量建议不超过10个(复杂地图) - 定期保存工作进度 ## 📝 更新日志 ### v1.0 (当前版本) - ✅ 基础地图编辑功能 - ✅ 多AGV模拟系统 - ✅ 智能路径规划 - ✅ 碰撞避让算法 - ✅ 任务管理系统 - ✅ 地图保存/加载 - ✅ 随机地图生成 - ✅ 现代化界面设计 ### 计划功能 - 🔄 性能统计报告 - 🔄 更多预设场景 - 🔄 路径优化算法 - 🔄 3D可视化模式 - 🔄 实时数据导出 ## 📄 许可证 本项目采用MIT许可证,详见LICENSE文件。 ## 🤝 贡献 欢迎提交问题报告和功能建议! --- **AGV模拟工具** - 让物流仿真更简单、更直观、更高效!