news 2026/8/31 18:29:05

自动驾驶—CARLA仿真(6)vehicle_galler demo

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自动驾驶—CARLA仿真(6)vehicle_galler demo

测试用例:
PythonAPI/examples/vehicle_gallery.py

该测试用例是一个车辆模型展示工具
依次在 CARLA 仿真世界中同一位置生成所有可用的车辆类型,并让观察者视角(Spectator)围绕每辆车做环绕飞行,用于直观查看不同车辆的外观。


🔑 主要模块解析

1.get_transform(vehicle_location, angle, d=6.4)
  • 作用:计算观察者(Spectator)在环绕车辆时应处的位置与朝向。
  • 参数
    • vehicle_location:车辆当前位置(carla.Location
    • angle:环绕角度(单位:度,0° 表示正右方)
    • d=6.4:环绕半径(米)
  • 实现逻辑
    • 在车辆周围 X-Y 平面上以半径d做圆周运动
    • Z 坐标固定为 2.0 米(略高于车辆)
    • 摄像机始终朝向车辆中心(通过yaw=180 + angle实现)
    • 同时设置俯视角-15°pitch=-15),获得更自然的观察视角
  • 返回值:一个完整的carla.Transform(包含位置和旋转)

✅ 这是典型的第三人称环绕相机(Orbit Camera)实现。


2.连接与初始化
client=carla.Client('localhost',2000)world=client.get_world()spectator=world.get_spectator()
  • 连接到指定 IP 和端口的 CARLA 服务器
  • 获取仿真世界(world)和主视角观察者(spectator

3.车辆蓝图遍历
vehicle_blueprints=world.get_blueprint_library().filter('vehicle')location=random.choice(world.get_map().get_spawn_points()).location
  • 获取所有车辆类型的蓝图(如轿车、卡车、摩托车等)
  • 随机选择一个地图出生点的位置(仅位置,忽略原始朝向)

4.主展示循环
forblueprintinvehicle_blueprints:# 在固定位置生成当前车辆transform=carla.Transform(location,carla.Rotation(yaw=-45.0))vehicle=world.spawn_actor(blueprint,transform)try:print(vehicle.type_id)# 打印当前车辆类型angle=0whileangle<356:# 等待仿真推进一帧timestamp=world.wait_for_tick().timestamp# 按仿真时间增量更新角度(60度/秒)angle+=timestamp.delta_seconds*60.0# 更新观察者视角spectator.set_transform(get_transform(vehicle.get_location(),angle-90))finally:vehicle.destroy()# 确保车辆被销毁
  • 逐个生成车辆:所有车辆出现在同一位置,朝向-45°
  • 同步环绕
    • 使用world.wait_for_tick()保证与仿真步长同步
    • 角速度 = 60 度/秒 → 约 6 秒完成一圈
    • 初始偏移-90°使起始视角位于车辆正前方
  • 安全清理:无论是否异常,车辆都会被销毁,避免残留

🎯 核心机制总结

机制说明
环绕相机通过三角函数计算观察者位置,结合 yaw 控制朝向,实现平滑环绕
仿真同步使用wait_for_tick()获取精确时间步长,确保旋转速度稳定
批量展示遍历所有vehicle蓝图,自动切换模型
资源管理finally块确保每个车辆在展示后被销毁

该脚本是 CARLA 中展示Actor 控制、Transform 操作、同步仿真的典型官方示例,常用于快速预览车辆资产或演示环绕视角效果。

💾自测结果

carla_1

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 6:54:28

普通程序员必看:该不该转型AI大模型?收藏这篇少走弯路

前言&#xff1a;AI浪潮下&#xff0c;程序员的转型焦虑与机遇 在程序员的日常交流中&#xff0c;"技术迭代"和"职业转型"永远是绕不开的话题。尤其是2023年以来&#xff0c;GPT-4、文心一言等大模型相继爆发&#xff0c;AI技术从实验室走向产业落地&#…

作者头像 李华
网站建设 2026/8/31 12:25:47

医疗挂号管理系统毕业论文+PPT(附源代码+演示视频)

文章目录医疗挂号管理系统一、项目简介&#xff08;源代码在文末&#xff09;1.运行视频2.&#x1f680; 项目技术栈3.✅ 环境要求说明4.包含的文件列表&#xff08;含论文&#xff09;数据库结构与测试用例系统功能结构后台运行截图项目部署源码下载医疗挂号管理系统 如需其他…

作者头像 李华
网站建设 2026/8/31 19:41:37

实用指南:文献怎么查——高效查找文献的方法与技巧

① WisPaper&#xff08;文献聚类 术语辅助&#xff09; 官网&#xff1a;https://www.wispaper.ai 帮助快速理解陌生领域的核心概念和研究主题。 ② Elicit 自动列出最相关论文和方法&#xff0c;为跨学科快速扫文献提供便利。 ③ Explainpaper 逐段解释论文内容&#xff0c…

作者头像 李华
网站建设 2026/8/30 19:36:02

文献检索网站有哪些:常用学术文献检索平台汇总与使用指南

① WisPaper&#xff08;文献聚类 术语辅助&#xff09; 官网&#xff1a;https://www.wispaper.ai 帮助快速理解陌生领域的核心概念和研究主题。 ② Elicit 自动列出最相关论文和方法&#xff0c;为跨学科快速扫文献提供便利。 ③ Explainpaper 逐段解释论文内容&#xff0c…

作者头像 李华
网站建设 2026/8/31 6:17:55

高可用架构下的 1688 API 接口开发与商品数据同步方案

在电商生态中&#xff0c;1688 作为核心的货源供应链平台&#xff0c;其 API 接口的稳定性和商品数据同步的时效性直接影响下游业务的运转。高可用架构下的 1688 API 开发与数据同步&#xff0c;需兼顾接口调用的可靠性、数据一致性、故障容错与性能优化。本文将从架构设计、接…

作者头像 李华
网站建设 2026/8/31 12:50:43

21、嵌入式开发环境搭建与配置指南

嵌入式开发环境搭建与配置指南 1. 交叉开发环境概述 对于刚接触嵌入式开发的开发者来说,本地开发环境和交叉开发环境的概念及差异常常令人困惑。在实际开发中,可能会用到三种编译器以及三个或更多版本的标准头文件,如 stdlib.h 。若缺乏合适的工具和基于主机的实用程序,…

作者头像 李华