自动驾驶—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 在 复杂交互场景(如无保护左转、密集车流)中的不足,为自动驾驶系统提供更严苛的测试环境。

相关推荐
victory04314 分钟前
pytorch 矩阵乘法和实际存储形状的差异
人工智能·pytorch·矩阵
guygg885 分钟前
基于捷联惯导与多普勒计程仪组合导航的MATLAB算法实现
开发语言·算法·matlab
fengfuyao9856 分钟前
遗传算法与粒子群算法求解非线性函数最大值问题
算法
之歆9 分钟前
Spring AI入门到实战到原理源码-多模型协作智能客服系统
java·人工智能·spring
盛世宏博北京11 分钟前
《可复制推广:智慧档案馆 “十防” 安全防护体系建设指南》
网络·人工智能·web安全·智慧档案
沫儿笙17 分钟前
CLOOS克鲁斯焊接机器人混合气节气装置
人工智能·机器人
一只落魄的蜂鸟18 分钟前
【2026年-01期】AI Agent Trends of 2025
人工智能
Deepoch19 分钟前
从“机械臂”到“农艺手”:Deepoc如何让机器人理解果实的生命语言
人工智能·机器人·采摘机器人·农业机器人·具身模型·deepoc
LeetCode天天刷20 分钟前
【软件认证】比特翻转【滑动窗口】
算法
BEOL贝尔科技21 分钟前
生物冰箱智能锁如何帮助实验室做好生物样本保存工作的权限管理呢?
人工智能·数据分析