自动驾驶—CARLA仿真(20)manual_control demo

测试用例

PythonAPI/examples/manual_control.py

功能完备的手动驾驶控制客户端,提供:

  • 完整的车辆手动控制(油门、刹车、转向、灯光等)
  • 高级车辆特性支持(车门控制、遥测显示、Ackermann 控制)
  • 多传感器支持(RGB、深度、语义分割、LiDAR、雷达、DVS、光流)
  • 高级仿真功能(天气切换、地图图层控制、录制/回放)

适用于 交互式驾驶测试、传感器调试、教学演示、数据采集

carla_manual_control


🔑 主要模块解析

1. World 类:仿真世界管理器
  • 核心职责
    • 管理主车(Player)的生成与重生(Backspace 键)
    • 初始化并管理 5 类传感器
      • CollisionSensor(碰撞检测)
      • LaneInvasionSensor(车道入侵)
      • GnssSensor(GPS 定位)
      • IMUSensor(惯性测量)
      • RadarSensor(毫米波雷达可视化)
    • 控制 天气预设C/Shift+C
    • 管理 地图图层 (建筑、植被、路灯等,V/B 键)
    • 支持 车门开关O 键)和 车辆遥测T 键)

✅ 是整个仿真环境的"中枢控制器"。


2. KeyboardControl 类:全功能车辆控制
  • 基础控制

    按键 功能
    W/S 油门/刹车
    A/D 左/右转向
    Q 切换倒挡
    Space 手刹
    M + ,/. 手动换挡
  • 灯光系统

    • L:位置灯 → 近光灯 → 雾灯 → 关闭
    • Shift+L:开启远光灯
    • Z/X:左/右转向灯
    • I:车内灯
    • 自动灯光:刹车时亮刹车灯,倒车时亮倒车灯
  • 高级功能

    • Ctrl+W:启用 60 km/h 定速巡航
    • P:切换自动驾驶(Autopilot)
    • Backspace:重生车辆(保留传感器配置)
    • O:开关所有车门
    • T:切换车辆遥测(显示底盘 debug 信息)
    • F:切换 Ackermann 控制器(高精度转向模型)

✅ 实现了 真实车辆的完整人机交互逻辑


3. Ackermann 控制器支持(核心创新)
  • 传统控制 :使用 VehicleControl(简化转向模型)

  • Ackermann 控制

    python 复制代码
    self._ackermann_control = carla.VehicleAckermannControl()
    world.player.apply_ackermann_control(self._ackermann_control)
  • 优势

    • 模拟真实车辆的 阿克曼转向几何
    • 低速时更精确的转向响应
    • HUD 显示目标速度(3.6 * self._ackermann_control.speed

🚗 适用于 高精度路径跟踪低速泊车场景


4. HUD 类:专业级抬头显示器

实时显示 15+ 项关键信息

  • 性能指标:服务器/客户端 FPS
  • 车辆状态:速度、航向角、加速度、陀螺仪
  • 定位数据:GNSS 坐标、高度、罗盘方向
  • 控制参数:油门/刹车/转向量(进度条可视化)
  • 环境感知
    • 碰撞历史强度曲线(200 帧)
    • 周围车辆列表(距离排序,最远 200 米)
  • Ackermann 信息:目标速度(当启用时)

💡 通过 颜色编码 直观展示车辆状态(如红色=急刹,绿色=加速)。


5. 传感器系统(CameraManager)

支持 14 种传感器模式 ,通过 ````` 或 N 键切换:

传感器类型 特性
RGB 摄像头 支持畸变模拟(色差、晕影)
深度摄像头 3 种深度着色模式(Raw/Gray/Logarithmic)
语义分割 CityScapes 调色板
实例分割 对象级分割
LiDAR 点云投影为 2D 图像
DVS 动态视觉传感器(事件相机)
光流 运动矢量可视化
法线图 表面法线方向
Cosmos 可视化 专用控制算法可视化
  • 5 种预设视角Tab 键切换):
    1. 车后跟随(第三人称)
    2. 车内视角
    3. 侧前方
    4. 高空俯视
    5. 左侧后视镜

✅ 提供 多模态感知数据 的实时可视化。


6. 雷达可视化(RadarSensor)
  • 创新实现

    python 复制代码
    self.debug.draw_point(radar_data.transform.location + fw_vec, color=carla.Color(r,g,b))
  • 速度着色

    • 红色:远离车辆(正速度)
    • 蓝色:接近车辆(负速度)
    • 绿色:横向移动(零径向速度)
  • 动态点云:每个点存活 0.06 秒,形成运动轨迹

📡 这是 CARLA 官方提供的雷达可视化方案


7. 录制与回放系统
  • 图像录制R 键保存传感器图像到 _out/
  • 仿真录制Ctrl+R 录制完整仿真到 manual_recording.log
  • 回放控制
    • Ctrl+P:启动回放
    • Ctrl+ +/-:调整回放起点(±1/10 秒)

✅ 支持 实验可复现性数据集生成


8. 地图图层控制
  • 11 类图层

    python 复制代码
    [Buildings, Foliage, ParkedVehicles, StreetLights, Walls, ...]
  • 操作方式

    • V / Shift+V:切换图层类型
    • B / Shift+B:加载/卸载当前图层

🌆 允许 动态调整场景复杂度(如关闭建筑物简化测试)。


✅ 总结

该脚本是 CARLA 最全面的手动驾驶示例,集成了:

  1. 车辆动力学控制(标准 + Ackermann + 灯光系统)
  2. 多传感器融合(视觉、激光雷达、雷达、DVS、光流)
  3. 环境动态调控(天气、地图图层)
  4. 数据记录与回放
  5. 实时状态监控

💡 核心价值

它不仅是官方推荐的 入门教程 ,更是 开发自定义驾驶应用的参考模板,适用于从学术研究到工业落地的全场景需求。

相关推荐
最晚的py1 小时前
聚类的评估方法
人工智能·算法·机器学习
KG_LLM图谱增强大模型2 小时前
【102页最新综述】AI智能体时代的记忆系统:形式、功能与知识图谱长记忆动态机制全景解析
大数据·人工智能·agent
jkyy20142 小时前
从菜品识别到健康决策:AI技术如何赋能B端智慧饮食管理
大数据·人工智能·科技·健康医疗
Coder个人博客2 小时前
Apollo 9.0.0 自动驾驶系统整体架构分析
人工智能·架构·自动驾驶
高洁012 小时前
DNN案例一步步构建深层神经网络(3)
python·深度学习·算法·机器学习·transformer
Deepoch2 小时前
从“功能机”到“智能体”:服务机器人的认知革命与产业重构
大数据·人工智能·科技·机器人·未来·具身模型·deepoc
码农小白猿2 小时前
超导材料测试的智能化升级:IACheck如何优化临界温度与电阻率数据的核验
人工智能
qq_411262422 小时前
四博智联 AI 技术方案
人工智能
啊巴矲2 小时前
小白从零开始勇闯人工智能:机器学习初级篇(线性回归与逻辑回归)
人工智能·机器学习·线性回归