【问题标题】:Truck (Agent) Hitbox in process modeling library流程建模库中的卡车(代理)Hitbox
【发布时间】:2021-09-05 05:56:53
【问题描述】:

我正在使用流程建模库创建一些路径。等待“开”信号亮时,货车应依次停车。 目前,卡车正在彼此“内部”等待。

如何让卡车不仅识别stopnode,还识别到达他前面的卡车的hitbox?

提前致谢

克里斯

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    简单的解决方案是将您的卡车代理从材料处理库中变成运输者。它们具有内置的防撞功能。

    但是,这会降低大型模型的速度,因此您可能只想在需要避免碰撞时才转换它们,然后再次转换回“简单”卡车代理。

    否则,您需要自己构建额外的停止节点并手动编码空间排队。可能但不是直截了当

    【讨论】:

    • 感谢本杰明的想法 - 它是一个小模型,所以我想我会很好地接受你的第一个建议。我也会赞成你的帖子,但我现在在 stackoverflow 上是菜鸟;)
    • 如果底层流程将它们移动到作为点节点的停止节点,我认为这不起作用——如果它们移动到同一点,它们将无法避免碰撞.如果它是一个区域节点,它将在某种程度上起作用。而且他们不会排队
    【解决方案2】:

    卡车在等待“开”信号时应连续停车。 目前,卡车正在彼此“内部”等待。 [...] 如何告诉卡车不仅识别停止节点,而且识别停止节点 到达他面前的卡车的碰撞箱?

    AnyLogic 允许代理在队列块中沿路径(从动画角度)排队。所以不要让它们移动到停止节点(我假设你正在明确地这样做):让它们(从进程的角度来看)进入一个队列,该队列通过从停止节点'向后的路径进行动画处理'。 (这是队列块的“代理位置”设置。)如何将它们保持在队列中并在需要时释放它们取决于模型的性质;例如,

    • 在队列后面使用一个 Hold 块(如果一次释放它们是有意义的)

    • 使用“悬空”队列块,您可以通过编程方式将代理拉出(例如,通过其removeFirst 函数),然后通过 Enter 块将它们添加到流程中的其他位置。

    • 使用一个 Seize 块(它有一个内置队列,您可以设置其位置),所占用的资源代表您需要继续的“令牌”。

    NB:从流程的角度来看,它们位于一个队列中,而队列恰好被动画化为沿路径排队。这与模拟排队的“空间现实”并不完全相同:请参阅this question

    【讨论】:

    • 这是真的,但正如 Stuart 所说:视觉排队没有空间成分。所以这真的取决于你需要什么:)
    • 您好 Stuart,好的,我的想法中遇到了问题 - 我会尝试您的方法。感谢您的详细解答!
    猜你喜欢
    • 2021-12-16
    • 2017-09-06
    • 2012-04-23
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    相关资源
    最近更新 更多