自动驾驶—CARLA仿真(19)automatic_control demo

📌 测试用例

PythonAPI/examples/automatic_control.py
自动驾驶代理(Autonomous Agent)演示系统,用于:

  1. 加载三种不同级别的自动驾驶代理(Basic/Constant/Behavior)
  2. 自动规划路径并控制车辆从起点到随机目的地
  3. 提供完整的 HUD 信息显示、传感器管理和交互控制

carla_automatic_control

🔑 主要模块解析

1. 自动驾驶代理系统(核心创新)

脚本集成了 CARLA 官方提供的三种导航代理:

代理类型 特性
BasicAgent agents.navigation.basic_agent 基于 Pure Pursuit 的简单路径跟踪,支持速度限制
ConstantVelocityAgent agents.navigation.constant_velocity_agent 保持恒定速度沿直线行驶(用于测试)
BehaviorAgent agents.navigation.behavior_agent 高级行为代理 ,支持 cautious/normal/aggressive 三种驾驶风格

在 CARLA 的 BehaviorAgent 中,cautious(谨慎)、normal(正常)、aggressive(激进)代表三种预设的驾驶行为风格,它们通过调整底层参数来模拟不同性格驾驶员的行为

  • 路径规划

    python 复制代码
    destination = random.choice(spawn_points).location
    agent.set_destination(destination)
  • 循环模式
    --loop 参数启用后,到达目的地自动选择新目标

✅ 这是 CARLA 官方推荐的自动驾驶开发入口


2. World 类:仿真环境管理器
  • 车辆生成
    • 随机选择符合 --filter--generation 的车辆
    • 设置 role_name='hero' 便于识别
  • 传感器集成
    • 碰撞检测CollisionSensor
    • 车道入侵检测LaneInvasionSensor
    • GNSS 定位GnssSensor
    • 多摄像头/LiDARCameraManager 支持 7 种传感器模式)
  • 物理优化
    modify_vehicle_physics() 启用 sweep wheel collision 提升稳定性

3. HUD(抬头显示器)系统

实时显示关键信息:

  • 性能指标:服务器/客户端 FPS
  • 车辆状态:速度、航向角、位置、档位
  • 环境信息:地图名称、仿真时间、天气
  • 感知数据
    • 碰撞历史(200 帧强度曲线)
    • 周围车辆列表(距离排序)
    • GNSS 坐标

💡 通过 进度条+数值 直观展示油门/刹车/转向量。


4. 传感器管理系统(CameraManager)
  • 多视角支持:5 种预设摄像头位置(车后、车内、侧方等)

  • 多模态传感器

    python 复制代码
    self.sensors = [
        ['sensor.camera.rgb', ...],
        ['sensor.camera.depth', ...],
        ['sensor.camera.semantic_segmentation', ...],
        ['sensor.lidar.ray_cast', ...]
    ]
  • 实时渲染:LiDAR 点云投影为 2D 图像

  • 录制功能self.recording = True 保存图像到 _out/ 目录


5. 主控制循环
python 复制代码
while True:
    # 1. 推进仿真
    if args.sync: world.world.tick()
    
    # 2. 获取代理控制指令
    control = agent.run_step()
    
    # 3. 应用车辆控制
    world.player.apply_control(control)
    
    # 4. 检查是否到达目的地
    if agent.done():
        if args.loop: 
            agent.set_destination(new_destination)
  • 同步模式支持:确保代理决策与仿真严格对齐
  • 资源安全清理finally 块恢复设置并销毁所有 Actor

🎯 核心应用场景

场景 配置示例
基础路径跟踪测试 --agent Basic --behavior normal
激进驾驶行为分析 --agent Behavior --behavior aggressive
恒速巡航验证 --agent Constant
长距离连续导航 --loop --agent Behavior
多传感器数据采集 结合 CameraManager 的录制功能

✅ 总结

该脚本是 CARLA 自动驾驶代理的标准参考实现,展示了:

  1. 如何 集成官方导航代理 实现端到端自动驾驶
  2. 如何 构建完整的仿真监控系统(HUD + 传感器)
  3. 如何 管理复杂仿真资源(车辆、传感器、代理)

💡 核心价值

为研究人员和开发者提供了一个 开箱即用的自动驾驶测试平台 ,无需从零实现路径规划和控制逻辑,可直接聚焦于 高级行为策略感知-决策融合 的研究。

相关推荐
大刚测试开发实战19 小时前
TestHub V0.2.2版本发布,附更新指南
人工智能
冬奇Lab20 小时前
Agent 系列(21):Harness 测试工程——45 个测试怎么设计,以及它发现了什么 bug
人工智能·llm·agent
冬奇Lab20 小时前
每日一个开源项目(第133篇):EchoBird - 把 AI 工具的安装和部署做成傻瓜操作
人工智能·开源·资讯
IT_陈寒21 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
用户5191495848451 天前
Windows 渗透测试载荷加载器 POC 工具集
人工智能·aigc
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
通信小呆呆1 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
施小赞1 天前
普通 RAG vs GraphRAG 核心对比
人工智能·ai
EAIReport1 天前
RuoYi-AI 企业级AI开发平台实战详解
人工智能
xiao5kou4chang6kai41 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理