自动驾驶—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_sizeSensorManager 实例即可自定义布局与传感器数量(见 lines 290--308)。


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

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


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

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

    • ESCQ 键退出
    • 关闭窗口退出

✅ 总结

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

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

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

相关推荐
良策金宝AI5 小时前
全球工程软件格局重塑:中国AI原生平台的机会窗口
大数据·运维·人工智能
小笔学长5 小时前
毕业论文答辩 PPT:从内容到呈现的全流程设计指南
人工智能·powerpoint
dagouaofei5 小时前
长文档也能转成PPT:AI自动拆分章节并生成页面
人工智能·python·powerpoint
IT_陈寒5 小时前
SpringBoot 3.2 实战:用这5个新特性让你的API性能提升40%
前端·人工智能·后端
CNRio5 小时前
智能赋能全球化:AI Agent驱动中国科技企业出海的政技融合新范式
人工智能·科技·microsoft
啊阿狸不会拉杆6 小时前
《数字图像处理》第 3 章 - 灰度变换与空间滤波
图像处理·人工智能·算法·计算机视觉·数字图像处理
Keep_Trying_Go6 小时前
统一的人群计数训练框架(PyTorch)——基于主流的密度图模型训练框架
人工智能·pytorch·python·深度学习·算法·机器学习·人群计数
hans汉斯6 小时前
【软件工程与应用】平移置换搬迁系统设计与实现
数据库·人工智能·系统架构·软件工程·汉斯出版社·软件工程与应用
许泽宇的技术分享6 小时前
Sim.ai:开源AI工作流编排平台的技术革命——从可视化设计到生产级部署的完整实践
人工智能·开源