📌 测试用例
PythonAPI/examples/manual_control_carsim.py
功能完备的手动驾驶控制客户端(Manual Control Client),提供:
- 完整的车辆手动控制(油门、刹车、转向、灯光等)
- 多传感器支持(RGB、深度、语义分割、LiDAR、雷达、DVS)
- 高级仿真功能(天气切换、地图图层控制、录制/回放)
- 实时 HUD 信息显示
适用于 交互式驾驶测试、传感器调试、教学演示、数据采集。
manual_control_carsim.py与manual_control.py 基本一致,不同点在于该测试用例支持carsim 物理仿真,以实现更真实地模拟车辆
PythonAPI/examples/manual_control_chrono.py功能如manual_control_carsim.py,不过manual_control_chrono.py用例支持 三种物理引擎:
- PhysX(默认)
- CarSim(商用高保真)
- Chrono(开源多体动力学)
- Ctrl + K:切换 CarSim
- Ctrl + O:切换 Chrono
通过键盘控制操作不太灵活:
carla_manual_control_carsim
🔑 主要模块解析
1. World 类:仿真世界管理器
- 核心职责 :
- 管理主车(Player)的生成与重生(
Backspace键) - 初始化并管理 5 类传感器 :
CollisionSensor(碰撞检测)LaneInvasionSensor(车道入侵)GnssSensor(GPS 定位)IMUSensor(惯性测量)RadarSensor(毫米波雷达可视化)
- 控制 天气预设 (
C/Shift+C) - 管理 地图图层 (建筑、植被、路灯等,
V/B键)
- 管理主车(Player)的生成与重生(
✅ 是整个仿真环境的"中枢控制器"。
2. KeyboardControl 类:全功能车辆控制
-
基础控制:
按键 功能 W/S油门/刹车 A/D左/右转向 Q切换倒挡 Space手刹 M+,/.手动换挡 -
灯光系统:
L:位置灯 → 近光灯 → 雾灯 → 关闭Shift+L:开启远光灯Z/X:左/右转向灯I:车内灯- 自动灯光:刹车时亮刹车灯,倒车时亮倒车灯
-
高级功能:
Ctrl+W:启用 60 km/h 定速巡航P:切换自动驾驶(Autopilot)Backspace:重生车辆(保留传感器配置)
✅ 实现了 真实车辆的完整人机交互逻辑。
3. HUD 类:专业级抬头显示器
实时显示 15+ 项关键信息:
- 性能指标:服务器/客户端 FPS
- 车辆状态:速度、航向角、加速度、陀螺仪
- 定位数据:GNSS 坐标、高度、罗盘方向
- 控制参数:油门/刹车/转向量(进度条可视化)
- 环境感知 :
- 碰撞历史强度曲线(200 帧)
- 周围车辆列表(距离排序,最远 200 米)
💡 通过 颜色编码 直观展示车辆状态(如红色=急刹,绿色=加速)。
4. 传感器系统(CameraManager)
支持 9 种传感器模式 ,通过 ````` 或 N 键切换:
| 传感器类型 | 特性 |
|---|---|
| RGB 摄像头 | 支持畸变模拟(色差、晕影) |
| 深度摄像头 | 3 种深度着色模式(Raw/Gray/Logarithmic) |
| 语义分割 | CityScapes 调色板 |
| LiDAR | 点云投影为 2D 图像 |
| DVS | 动态视觉传感器(事件相机) |
- 5 种预设视角 (
Tab键切换):- 车后跟随(第三人称)
- 车内视角
- 侧前方
- 高空俯视
- 左侧后视镜
✅ 提供 多模态感知数据 的实时可视化。
5. 雷达可视化(RadarSensor)
-
创新实现 :
pythonself.debug.draw_point(radar_data.transform.location + fw_vec, color=carla.Color(r,g,b)) -
速度着色 :
- 红色:远离车辆(正速度)
- 蓝色:接近车辆(负速度)
- 绿色:横向移动(零径向速度)
-
动态点云:每个点存活 0.06 秒,形成运动轨迹
📡 这是 CARLA 唯一官方提供的雷达可视化方案。
6. 录制与回放系统
- 图像录制 :
R键保存传感器图像到_out/ - 仿真录制 :
Ctrl+R录制完整仿真到manual_recording.log - 回放控制 :
Ctrl+P:启动回放Ctrl+ +/-:调整回放起点(±1/10 秒)
✅ 支持 实验可复现性 和 数据集生成。
7. 地图图层控制
-
11 类图层 :
python[Buildings, Foliage, ParkedVehicles, StreetLights, Walls, ...] -
操作方式 :
V/Shift+V:切换图层类型B/Shift+B:加载/卸载当前图层
🌆 允许 动态调整场景复杂度(如关闭建筑物简化测试)。
✅ 总结
该脚本是 CARLA 最全面的手动驾驶示例,集成了:
- 车辆动力学控制(标准 + 灯光系统)
- 多传感器融合(视觉、激光雷达、雷达、DVS)
- 环境动态调控(天气、地图图层)
- 数据记录与回放
- 实时状态监控