自动驾驶—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. 如何实现同步/异步仿真下的稳定渲染

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

相关推荐
锋行天下26 分钟前
Langgraph HITL 中断运行,用户输入后输出打字效果
人工智能·python
ZhengEnCi31 分钟前
agent 为什么需要自进化:从静态模型到经验驱动的持续成长
人工智能
QXWZ_IA38 分钟前
RTK平面很准、高程总飘,问题出在哪
人工智能
Ferries1 小时前
用 WorkBuddy+DeepSeek 跑了30天自动矩阵,事情没那么简单
人工智能·aigc·vibecoding
用户837133200761 小时前
AI总是会忘记细节咋办?我用GitHub实现外部记忆管理
人工智能·github
谁在黄金彼岸1 小时前
OCR 方案对比:本地多模态可行吗?
人工智能
IT_陈寒1 小时前
React的useEffect依赖数组把我坑惨了
前端·人工智能·后端
大模型真好玩1 小时前
DeepSeek Harness 插件的服务与事件监听详解
人工智能·agent·deepseek
迪菲赫尔曼1 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
阿里云大数据AI技术1 小时前
阿里云DLF年度发布:Agentic Lake全模态 AI 数据湖底座
人工智能