自动驾驶—CARLA仿真(17)invertedai_traffic demo

📌 测试用例

PythonAPI/examples/invertedai_traffic.py

CARLA 与 InvertedAI 的联合仿真系统(Co-simulation),用于:

  1. 利用 InvertedAI 云服务生成高真实感交通流
  2. 在 CARLA 中渲染并同步这些智能体的行为
  3. 支持车辆 + 行人混合交通、交通灯联动、路径规划

适用于 大规模城市级自动驾驶仿真、行为预测验证、V2X 场景生成

💡 InvertedAI

一家提供 云原生交通仿真 API 的公司,其模型基于真实世界驾驶数据训练,能生成比 CARLA TrafficManager 更真实的车辆行为。

免费额度有限!


🔑 主要模块解析

1. InvertedAI 初始化流程
python 复制代码
# 1. 获取地图区域信息
location_info_response = iai.location_info(location=args.location)

# 2. 划分初始化区域(四叉树)
regions = iai.get_regions_default(...)

# 3. 调用 large_initialize 生成初始智能体
response = iai.large_initialize(
    location=args.location,
    regions=regions,
    traffic_light_state_history=[traffic_lights_states],
    ...
)
  • large_initialize
    • 在指定地理区域(如 carla:Town10HD)生成 50+ 辆车 的初始状态
    • 考虑 交通灯状态车辆间相对位置
    • 返回每个智能体的 AgentState(位置/朝向/速度)和 AgentProperties(尺寸/类型)

✅ 解决了 CARLA 原生 spawn 点不足的问题,支持 任意位置生成车辆


2. CARLA-InvertedAI 双向同步机制
(1) CARLA → InvertedAI 同步
  • 交通灯状态

    python 复制代码
    traffic_lights_states = assign_iai_traffic_lights_from_carla(...)
    • 将 CARLA 交通灯状态(红/黄/绿)映射到 InvertedAI ID
    • 每帧更新,确保 AI 车辆遵守信号灯
  • 行人状态(非 IAI 控制):

    python 复制代码
    state, properties = initialize_iai_agent(actor, "pedestrian")
    response.agent_states[agent_id] = state  # 反馈行人位置给 IAI
    • CARLA 控制的行人位置实时同步到 InvertedAI
    • 避免 IAI 车辆与行人碰撞
(2) InvertedAI → CARLA 同步
python 复制代码
def update_transforms(iai2carla, response):
    for agent_id in iai2carla.keys():
        if agentdict["is_iai"]:
            agent = response.agent_states[agent_id]
            actor.set_transform(transform_iai_to_carla(agent))
  • 每帧将 InvertedAI 计算的 新位姿 应用到 CARLA 车辆
  • 关键设置actor.set_simulate_physics(False)
    → 禁用 CARLA 物理引擎,完全由 IAI 控制运动

3. 动态路径规划(Waypoint System)
python 复制代码
def get_next_waypoints(carla_map, agent_states, waypoints, args):
    # 1. 检查是否需要新航点
    if distance_to_waypoint <= detection_threshold or >= max_distance_away:
        # 2. 从 CARLA 路网获取下一个航点
        wp = carla_map.get_waypoint(agent_location)
        next_wp = random.choice(wp.next(args.iai_waypoint_distance))
        return [next_wp.x, next_wp.y]
  • 解决 IAI 无全局路径问题
    InvertedAI 只提供局部行为,本脚本通过 CARLA 路网补充 长距离导航
  • 参数控制
    • --iai-waypoint-distance=15:航点间隔 15 米
    • --iai-max-distance-away=20:偏离超 20 米则重规划

✅ 实现 InvertedAI 行为 + CARLA 导航 的混合控制。


4. 混合交通参与者管理
类型 控制方 生成方式
IAI 车辆 InvertedAI 云服务 large_initialize + large_drive
CARLA 行人 CARLA 内置 AI controller.ai.walker
Hero 车 用户(可选) 第一辆生成的车辆
  • 行人特殊处理
    • 仅由 CARLA 控制(不调用 IAI)
    • 但位置同步给 IAI 避障
  • Hero 车
    • 通过 --hero 参数指定
    • 自动设置第三人称视角跟随

5. 高级配置与日志
  • API 参数
    • --api-model=bI5p:指定 InvertedAI 模型版本
    • --iai-async=True:异步调用 API 提升性能
  • 数据记录
    • --record:启用 CARLA 录制(.log 文件)
    • --iai-log:导出 InvertedAI 专用日志(.json),支持可视化回放

🌐 系统架构图

复制代码
+------------------+       +---------------------+
|   InvertedAI     |<----->|      CARLA          |
|  (Cloud Service) |  API  |  (Local Simulator)  |
+------------------+       +----------+----------+
        ↑                             ↑
        | 同步交通灯状态              | 同步行人位置
        | 下发车辆位姿                | 上报路网信息
        ↓                             ↓
+------------------+       +---------------------+
|  Real-world      |       |  Rendering &        |
|  Driving Data    |       |  Physics (Disabled) |
+------------------+       +---------------------+

✅ 总结

该脚本是 CARLA 与商业级交通仿真 API 集成的案例,展示了:

  1. 如何 扩展 CARLA 原生交通能力 至城市级规模
  2. 如何 融合云服务 AI 与本地渲染引擎
  3. 如何 实现高保真、可扩展、可复现 的混合仿真

💡 核心价值

利用 InvertedAI 的 真实驾驶行为模型 ,弥补 CARLA TrafficManager 在 复杂交互场景(如无保护左转、密集车流)中的不足,为自动驾驶系统提供更严苛的测试环境。

相关推荐
用户3521802454759 小时前
🎆从 Prompt 到 Skill:让 Spring AI Agent 学会"装新技能"
人工智能·spring boot·ai编程
米小虾10 小时前
手把手教你搭建第一个生产级AI Agent:从选型到实战的完整指南
人工智能·agent
任沫10 小时前
Agent之Function Call
javascript·人工智能·go
米小虾10 小时前
2026年AI Agent全面爆发:从开源生态到企业级应用的进化之路
人工智能·agent
用户69190268133910 小时前
Vibe Coding 开发项目的基本范式
人工智能·设计模式·代码规范
To_OC10 小时前
别再跟 AI 死磕 prompt 了,我写了个 Loop 让它自己改到满意为止
人工智能·aigc·agent
血小溅11 小时前
三大 AI 编码框架深度对比:GSD vs OpenSpec vs Superpowers
人工智能·后端
武子康14 小时前
调查研究-186 LangChain 和 LangGraph 的区别:从快速构建 Agent 到生产级工作流编排
人工智能·langchain·llm
武子康14 小时前
调查研究-185 CodeGraph 调研:给 AI 编程 Agent 一张代码库地图,少一点反复 grep(2026)
人工智能·openai·claude