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

Python如何实现自动驾驶车辆每次抵达新路点时自动切换行驶行为

自动驾驶路点切换行驶行为解决方案

问题根因

现有代码的嵌套if逻辑存在结构性错误,永远无法触发模式切换:外层agent.done()触发后,你立刻创建了aggressive模式的新agent并设置了新目的地,此时新agent的done()状态必然为未完成,内层if判断永远为假,所以每次都会固定生成aggressive模式的agent。

最优实现方案

通过维护一个外部状态标记来循环切换行驶模式,后续新增模式也无需修改核心逻辑,可扩展性极强:

  1. 首先在主循环外部初始化行为配置:
# 可自定义添加更多行驶模式,直接追加到列表即可
behavior_list = ['aggressive', 'cautious']
# 记录当前使用的模式索引
current_behavior_idx = 0
  1. 将原有嵌套if逻辑替换为如下代码:
if agent.done():
    # 计算下一个模式的索引,超出列表长度自动回到首个元素循环
    current_behavior_idx = (current_behavior_idx + 1) % len(behavior_list)
    selected_behavior = behavior_list[current_behavior_idx]
    # 生成对应模式的智能体
    agent = BehaviorAgent(world.player, behavior=selected_behavior) 
    agent.set_destination(random.choice(spawn_points).location)
    world.hud.notification("已抵达目标,正在寻找下一个目标", seconds=4.0)
    print(f"已抵达目标,切换为{selected_behavior}行驶模式,正在寻找下一个目标")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:09:03