gpt4 book ai didi

c++ - 按动态条件/约束过滤图形

转载 作者:行者123 更新时间:2023-12-04 07:43:38 25 4
gpt4 key购买 nike

我正在研究一种可以为机器人进行双向规划的图结构。
但不仅是双向的,所以它可以从 A 到 B 和 B 到 A,也考虑到了方向。因此,在某些情况下,仅允许机器人沿边缘向后移动。
看这个例子:
example
从 4 开始,我可以前进到 1。
但是从1开始到4,我需要走路径1>2>3>4,其中3是我可以改变方向的节点。就像汽车单向倒退,并使用 parking 场将汽车掉头。
所以我有限制

  • 我只能打开特定节点
  • 规划节点时需要考虑机器人的方向(节点有方向)

  • 一种想法是在规划之前使用机器人的当前方向和目标的方向过滤图形。但我还不确定这是否可能。
    我的另一个想法是不过滤,并计划整个图表。
    但是我通常不确定我的计划员(现在是 Dijkstra)是否可以处理它,在计划期间机器人的方向可能会改变,就像在节点 3 中一样。
    如果有人能给我一些一般性的提示,如果这是一个好主意,或者你能把我推向正确的方向,我会很高兴。

    最佳答案

    我会说你需要把你的图分成两部分,一个包含所有前向链接,一个包含所有后向链接。然后,这两个图可以在可以转弯的节点处以零成本链接连接。
    从您的示例图中:

    Forward links

    1F - 2F
    2F - 4F
    4F - 3F

    Backwards links

    1B - 2B
    2B - 3B

    Turning links

    3F - 3B
    从 1F 开始,瞄准 3F OR 3B,Dijsktra 会发现
    1F - 2F - 4F - 3F - 3B
    最终可以简化为
    1 - 2 - 4 - 3
    机器人从 1 开始面向前向 4 时的示例输出(机器人可以通过 2 直接到达那里)
    C:\Users\James\code\unirobot\bin>unirobot.exe inforward.txt
    unirobot
    l 1 2 0
    l 2 3 2
    l 2 4 1
    l 4 3 1
    t 3
    s 1 f
    g 4
    4 bidirectional links input

    Forward links
    1f - 2f
    2f - 4f
    4f - 3f

    Back links
    1b - 2b
    2b - 3b

    Turning Links
    3f - 3b

    Combined graph links
    (1f,2f) (2f,1f) (2f,4f) (4f,2f) (4f,3f) (3f,4f) (3f,3b) (1b,2b) (2b,1b) (2b,3b) (3b,2b) (3b,3f)

    Path: 1f -> 2f -> 4f ->
    从 1 开始向后朝向 4 时的示例输出(机器人需要经过节点 3,这是它唯一可以转身的地方)
    C:\Users\James\code\unirobot\bin>unirobot.exe inbackward.txt
    unirobot
    l 1 2 0
    l 2 3 2
    l 2 4 1
    l 4 3 1
    t 3
    s 1 b
    g 4
    4 bidirectional links input

    Forward links
    1f - 2f
    2f - 4f
    4f - 3f

    Back links
    1b - 2b
    2b - 3b

    Turning Links
    3f - 3b

    Combined graph links
    (1f,2f) (2f,1f) (2f,4f) (4f,2f) (4f,3f) (3f,4f) (3f,3b) (1b,2b) (2b,1b) (2b,3b) (3b,2b) (3b,3f)

    Path: 1b -> 2b -> 3b -> 3f -> 4f ->
    生成此输出的代码位于 https://github.com/JamesBremner/unirobot

    关于c++ - 按动态条件/约束过滤图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67316885/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com