自动驾驶—CARLA仿真(9)visualize_multiple_sensors demo

测试用例

PythonAPI/examples/visualize_multiple_sensors.py

carla_vis_multiple_sensors

这是一个 多传感器同步可视化示例 ,用于在 单个 Pygame 窗口中以网格布局同时显示多个传感器数据,包括:

  • 多视角 RGB 摄像头(前、后、左、右)
  • 3D LiDAR 点云(投影为 2D 图像)
  • 语义 LiDAR(Semantic LiDAR)

适用于传感器融合、感知系统调试等场景。


🔑 主要模块解析

1. DisplayManager:统一显示管理器
  • 功能:创建 Pygame 主窗口,并管理传感器子画面的布局。
  • 核心特性 :
    • 支持 网格布局 (如 [2, 3] 表示 2 行 3 列)
    • 自动计算每个传感器画面的 尺寸 和 偏移位置
    • 提供 render() 方法统一刷新所有传感器画面
    • 封装 Pygame 初始化与销毁逻辑
  • 关键方法 :
    • get_display_size():返回每个子画面的宽高
    • get_display_offset(gridPos):根据网格位置 [row, col] 计算像素偏移

✅ 实现了 "一个窗口,多传感器视图" 的核心架构。


2. SensorManager:传感器抽象与数据处理
  • 功能:封装各类传感器的生成、数据回调与渲染逻辑。

  • 支持的传感器类型:

    类型 CARLA 蓝图 数据处理方式
    RGBCamera sensor.camera.rgb 转为 NumPy → BGR → Pygame Surface
    LiDAR sensor.lidar.ray_cast 将 3D 点云 正交投影到 2D 平面,绘制为白点图
    SemanticLiDAR sensor.lidar.ray_cast_semantic 同上,但含语义标签(本例未着色)
    Radar sensor.other.radar 接收数据但未渲染(仅计时)
  • 关键机制:

    • 自动匹配分辨率 :根据 DisplayManager 的子画面尺寸设置传感器 image_size_x/y
    • 异步监听 :通过 sensor.listen(callback) 注册回调函数
    • 性能统计 :记录每帧数据处理耗时(time_processing)

✅ 实现了 传感器类型解耦 ,新增传感器只需扩展 init_sensor() 和对应 save_*_image 方法。


3. 传感器配置与布局(核心演示部分)

在 run_simulation() 中定义了 6 个传感器 ,布局为 2 行 × 3 列:

网格位置 [row, col] 传感器类型 安装位姿
[0, 0] RGBCamera 左侧(yaw = -90°)
[0, 1] RGBCamera 正前方(yaw = 0°)
[0, 2] RGBCamera 右侧(yaw = +90°)
[1, 1] RGBCamera 后方(yaw = 180°)
[1, 0] LiDAR 车顶中心(64 线,100m 范围)
[1, 2] SemanticLiDAR 车顶中心(64 线,100m 范围)
  • 所有传感器均 附着于同一辆自动驾驶车辆(Dodge Charger 2020)
  • 车辆启用 set_autopilot(True),在地图中自主行驶

💡 注释明确提示:修改 grid_size 和 SensorManager 实例即可自定义布局与传感器数量(见 lines 290--308)。


4. 仿真控制模式
  • 同步模式(默认) :
    • 启用 synchronous_mode
    • 固定时间步长 0.05s(20 FPS)
    • 使用 world.tick() 精确控制仿真推进
  • 异步模式(可选) :
    • 使用 world.wait_for_tick() 被动等待

✅ 保证传感器数据与仿真状态严格同步,避免时间错位。


5. 主循环与交互
  • 渲染循环 :

    python 复制代码
    display_manager.render()  # 绘制所有传感器画面
  • 退出控制 :

    • 按 ESC 或 Q 键退出
    • 关闭窗口退出

✅ 总结

该脚本是 CARLA 多传感器可视化 的标准范例,展示了:

  1. 如何在单窗口中网格化布局多个传感器视图
  2. 如何抽象不同传感器的数据处理流程
  3. 如何实现同步/异步仿真下的稳定渲染

适用于开发者快速搭建感知系统调试界面,或用于教学演示多传感器协同工作效果。

相关推荐
地平线开发者1 分钟前
地平线征程6M YOLOv8s 部署
算法·自动驾驶
天远Date Lab7 分钟前
零信任架构实战:基于天远学籍核验三要素构建自动化竞赛资格审查网关
运维·人工智能·架构·自动化
海盗12347 分钟前
AI 新闻日报 2026-10-09:企业代理独立身份、便利店机器人上岗、世界模型接棒
人工智能·机器人·人工智能aigc
核数聚12 分钟前
低端标注拼的是单价,高端标注拼的是能力
人工智能·核数聚
东离与糖宝18 分钟前
RAG调参的承重项:Agentic AutoRAG背后藏着反转
人工智能
FL162386312922 分钟前
外来入侵植物检测数据集VOC+YOLO格式1111张5类别
人工智能·yolo·机器学习
oioihoii28 分钟前
三步改掉 AI 味,附可直接复制的去 AI 味提示词
人工智能
阿乔外贸日记29 分钟前
全球电子产业高度集中:中、韩、日和中国台湾地区占全球数字硬件产能八成
大数据·服务器·人工智能·物联网·云计算
曹牧35 分钟前
AI Skill
人工智能
品牌常新39 分钟前
巡查机器人推荐:楼宇园区仓储怎么选
人工智能