麒麟客户端V10安装QT5.15.2步骤
2026/6/24 13:05:02
PythonAPI/examples/visualize_multiple_sensors.py
carla_vis_multiple_sensors
这是一个多传感器同步可视化示例,用于在单个 Pygame 窗口中以网格布局同时显示多个传感器数据,包括:
适用于传感器融合、感知系统调试等场景。
DisplayManager:统一显示管理器[2, 3]表示 2 行 3 列)render()方法统一刷新所有传感器画面get_display_size():返回每个子画面的宽高get_display_offset(gridPos):根据网格位置[row, col]计算像素偏移✅ 实现了“一个窗口,多传感器视图”的核心架构。
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/ysensor.listen(callback)注册回调函数time_processing)✅ 实现了传感器类型解耦,新增传感器只需扩展
init_sensor()和对应save_*_image方法。
在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 范围) |
set_autopilot(True),在地图中自主行驶💡 注释明确提示:修改
grid_size和SensorManager实例即可自定义布局与传感器数量(见 lines 290–308)。
synchronous_mode0.05s(20 FPS)world.tick()精确控制仿真推进world.wait_for_tick()被动等待✅ 保证传感器数据与仿真状态严格同步,避免时间错位。
display_manager.render()# 绘制所有传感器画面ESC或Q键退出该脚本是 CARLA多传感器可视化的标准范例,展示了:
适用于开发者快速搭建感知系统调试界面,或用于教学演示多传感器协同工作效果。