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

如何为MoveByCrane模块设置动态目标:指定Storage中的可用Cell坐标

解决方案步骤
  • 获取存储区可用Cell
    调用存储区对象的getFreeCells()方法获取所有空闲Cell的列表,示例代码:

    List<Cell> freeCells = storageSystem.getFreeCells();
    

    若需要按规则筛选(如优先选择特定区域的Cell),可对列表进行过滤,比如直接取第一个空闲Cell:

    Cell targetCell = freeCells.isEmpty() ? null : freeCells.get(0);
    
  • 映射Cell坐标为起重机目标位置
    每个Cell实例提供getX()、getY()、getZ()方法获取三维坐标,直接将这些值传入MoveByCrane模块的destination属性。
    在模块的destination参数中使用动态表达式:

    targetCell != null ? new Point(targetCell.getX(), targetCell.getY(), targetCell.getZ()) : null
    

    务必先判断targetCell不为空,避免空指针异常。

  • 绑定逻辑到移动触发时机
    在需要触发起重机移动的事件(如智能体进入Store模块、存储区状态更新)中执行Cell获取逻辑,并更新MoveByCrane的目标。示例:在Store模块的On enter事件中添加代码:

    List<Cell> freeCells = storageSystem.getFreeCells();
    if (!freeCells.isEmpty()) {
        Cell target = freeCells.get(0);
        moveByCraneBlock.setDestination(new Point(target.getX(), target.getY(), target.getZ()));
        moveByCraneBlock.start();
    }
    
  • 处理无可用Cell的边界情况
    当getFreeCells()返回空列表时,添加容错逻辑,比如暂停起重机、输出提示或等待存储区释放Cell:

    if (freeCells.isEmpty()) {
        traceln("存储区无可用Cell,起重机暂停移动");
        // 可添加等待逻辑或告警触发逻辑
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:15:56