当前位置: 首页 > news >正文

自动驾驶—CARLA仿真(25)synchronous_mode demo

📌 测试用例

PythonAPI/examples/synchronous_mode.py

同步模式下的多传感器可视化示例,用于:

  1. 同步采集 RGB 摄像头和语义分割摄像头数据
  2. 将两路图像叠加显示(RGB 为底图,语义分割为半透明覆盖层)
  3. 通过预设路径自动控制车辆移动

适用于多模态感知算法验证、传感器融合调试、教学演示


🔑 主要模块解析

1.CarlaSyncMode类:同步模式上下文管理器(核心创新)
  • 功能:封装 CARLA 同步模式的开启/关闭逻辑
  • 优势
    • 自动管理world.tick()与传感器数据对齐
    • 确保每帧只处理同一仿真时刻的多传感器数据
  • 使用方式
    withCarlaSyncMode(world,camera_rgb,camera_semseg,fps=30)assync_mode:snapshot,image_rgb,image_semseg=sync_mode.tick(timeout=2.0)
  • 关键机制
    • 为每个传感器创建独立队列(queue.Queue
    • 通过assert all(x.frame == self.frame for x in data)确保帧同步

✅ 这是 CARLA多传感器同步采集的最佳实践


2.车辆控制逻辑(简化版路径跟踪)
# 初始化waypoint=m.get_waypoint(start_pose.location)# 主循环中waypoint=random.choice(waypoint.next(1.5))vehicle.set_transform(waypoint.transform)
  • 特点
    • 禁用物理引擎vehicle.set_simulate_physics(False)
    • 直接设置位姿:跳过控制指令,直接 teleport 到路点
    • 随机路径选择random.choice(waypoint.next(1.5))在前方 1.5 米处随机选路点
  • 效果:车辆沿道路自动行驶,但运动不连续(瞬移式)

⚠️ 注意:这不是真实驾驶,而是路径可视化演示


3.多传感器叠加显示
# 绘制 RGB 图像(底层)draw_image(display,image_rgb)# 绘制语义分割图像(半透明覆盖层)draw_image(display,image_semseg,blend=True)
  • blend=True实现
    ifblend:image_surface.set_alpha(100)# 设置透明度(0-255)
  • 语义分割着色
    image_semseg.convert(carla.ColorConverter.CityScapesPalette)
    • 使用 CityScapes 标准调色板(道路=灰色,车辆=蓝色等)

🎨 效果:RGB 图像 + 半透明语义标签覆盖,直观显示分割结果。


4.性能监控

实时显示两种 FPS:

# 真实 FPS(Pygame 渲染帧率)font.render('% 5d FPS (real)'%clock.get_fps(),...)# 仿真 FPS(CARLA 仿真步长)fps=round(1.0/snapshot.timestamp.delta_seconds)font.render('% 5d FPS (simulated)'%fps,...)
  • 典型值
    • simulated FPS= 30(由fps=30参数决定)
    • real FPS≈ 30(取决于渲染性能)

✅ 总结

该脚本是 CARLA多传感器同步可视化的精简范例,展示了:

  1. 如何可靠地同步多传感器数据
  2. 如何叠加显示不同模态的感知结果
  3. 如何通过路点系统实现自动路径跟踪
http://www.cnnetsun.cn/news/88483.html

相关文章:

  • Qwen3-VL-30B 4bit量化版发布:单卡部署突破
  • FLUX.1-ControlNet自定义控制模式全解
  • Windows server 2019 离线安装docker容器
  • springboot基于uniapp的有机农产品商城电商平台_4747f8w7-小程序
  • 用Dify构建文生视频工作流:从输入到输出
  • 基于Android的高校教室预约管理平台系统(源码+lw+部署文档+讲解等)
  • 开源不输商用!LobeChat媲美ChatGPT的用户体验实测
  • 十三、Kafka基础环境实战
  • EmotiVoice 安装与环境配置指南
  • LobeChat能否实现AI专利检索?技术创新辅助工具开发
  • vue基于spring boot的乡村民宿预订周边旅游管理系统
  • 网安零基础必冲!upload-labs 文件上传漏洞保姆级通关教程
  • vue基于Springboot框架 新能源充电桩报修管理系统
  • v3基于SpringBoot的酒店管理系统
  • Git安装Windows版本并配置清华镜像用于TensorFlow贡献开发
  • Langchain-Chatchat 0.3.1 Windows本地部署指南
  • 私有云ACK:企业智能化转型的安全基座与算力引擎
  • Docker部署Qwen3-14B及GPU加速实战
  • SWIR相机
  • vLLM 0.11.0 发布:全面移除 V0 引擎,性能与多模态支持再升级
  • 从零开始:使用Git安装TensorRT及其依赖组件
  • 模块十八.集合
  • FLUX.1-dev服装生成LoRA模型体验
  • 使用nexus3搭建自己的制品服务器
  • 38、Linux 邮件与网页浏览实用指南
  • 41、互联网服务实用指南
  • LLaMA-Factory微调与模型中断续训实战
  • GitHub项目实践:Fork并定制你的个性化Anything-LLM前端界面
  • pythonstudy Day37
  • Linly-Talker结合RAG技术实现知识增强型虚拟客服系统