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

如何构建统一函数获取多层嵌套Box Agent相对于main的坐标

统一获取嵌套Agent相对于main坐标的实现方案

核心思路

每个Agent仅需要维护两个通用属性,不需要预先硬编码任何层级关系:

  • 自身相对于直接上级的本地坐标local_coord
  • 直接上级Agent的引用parent(根节点main的parent属性为空)

通过递归或迭代向上回溯所有父节点,累加每一级的本地坐标,即可得到任意层级Agent相对于main的全局坐标,完全适配所有嵌套场景。

代码实现示例(Python)

递归版本(层级不深时使用,代码更简洁)

def get_global_coord(agent):
    if agent.parent is None: # 已经回溯到根节点main
        return agent.local_coord
    # 累加当前节点本地坐标 + 父节点的全局坐标
    return agent.local_coord + get_global_coord(agent.parent)

迭代版本(适配任意深度层级,避免栈溢出)

def get_global_coord(agent):
    total_coord = agent.local_coord
    current_parent = agent.parent
    while current_parent is not None:
        total_coord += current_parent.local_coord
        current_parent = current_parent.parent
    return total_coord

场景适配验证

针对你提到的三种Box嵌套场景,该函数均可自动适配:

  • main > Shelf > Box:自动累加Box + Shelf的坐标
  • main > Pallet > Box:自动累加Box + Pallet的坐标
  • main > Rack > Pallet > Box:自动累加Box + Pallet + Rack的坐标

如果后续新增其他层级的嵌套结构(比如新增main > Truck > Pallet > Box的场景),也不需要修改函数逻辑,直接复用即可。

注:如果坐标计算需要包含旋转变换、缩放变换等操作,只需将上述代码中的加法替换为对应的坐标变换矩阵乘法即可,回溯逻辑完全不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:36:01