You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AGV仓储仿真系统:如何实现多次随机选取货架循环作业?

仓储AGV仿真系统问题解决

需求与现有问题

需求:搭建仓储系统,AGV从货架系统取货架送至工作站,等待数秒后送回,要求AGV送回货架后随机选取货架重复流程。

现有问题:

  • 所有货架完成一次作业后仿真直接结束
  • AGV固定按从左到右顺序取货
  • 修改队列FIFO/LIFO模式无法实现随机取货
  • 添加等待块后仿真无动作
  • 已勾选“Restore Agent on Exit”,但AGV仍仅单次取货

解决步骤

1. 实现随机选货

放弃队列模式,用代码随机指定货架目标:

  • 在AGV完成货架送回动作后,添加代码块
  • 写入以下代码(替换成你仿真中的实际对象名称):
    // 从货架系统随机选一个货架
    Shelve randomShelve = rackSystem.getShelves().get(randomIndex(rackSystem.getShelves().size()));
    // 触发AGV执行取货-送站-回库流程
    agv.moveTo(randomShelve, () -> {
        agv.pickup(randomShelve);
        agv.moveTo(workstation, () -> {
            agv.drop(randomShelve);
            // 工作站等待5秒(可修改时长)
            delay(5, TimeUnit.SECONDS, () -> {
                agv.pickup(randomShelve);
                agv.moveTo(rackSystem, () -> {
                    agv.drop(randomShelve);
                    // 完成后触发下一轮任务
                    getEngine().scheduleOnce(() -> startNextTask(), 0);
                });
            });
        });
    });
    
  • 把上述流程封装成自定义函数startNextTask(),方便循环调用

2. 实现循环作业,防止仿真提前结束

  • 将整个作业流程封装为函数后,在AGV每次送回货架后调用该函数,形成循环
  • 在仿真设置中,将结束条件改为手动结束或设置足够长的仿真时长,避免因货架单次作业完成而终止

3. 资源池替代方案

如果偏好使用队列/资源分配方式:

  • 创建资源池,将所有货架加入池内
  • 设置资源池的分配策略为随机(Random)
  • AGV完成任务后,将货架释放回资源池,再重新随机请求货架,实现循环随机取货

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 06:48:34