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

测试用例:

PythonAPI/examples/vehicle_gallery.py

carla_1

该测试用例是一个 车辆模型展示工具 :
依次在 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. 连接与初始化
python 复制代码
client = carla.Client('localhost', 2000)
world = client.get_world()
spectator = world.get_spectator()
  • 连接到指定 IP 和端口的 CARLA 服务器
  • 获取仿真世界(world)和主视角观察者(spectator)

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

4. 主展示循环
python 复制代码
for blueprint in vehicle_blueprints:
    # 在固定位置生成当前车辆
    transform = carla.Transform(location, carla.Rotation(yaw=-45.0))
    vehicle = world.spawn_actor(blueprint, transform)

    try:
        print(vehicle.type_id)  # 打印当前车辆类型

        angle = 0
        while angle < 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 操作、同步仿真 的典型官方示例,常用于快速预览车辆资产或演示环绕视角效果。

相关推荐
龙粤GEO32 分钟前
实体Entity在GEO中代表什么含义
人工智能
剑雨巍巍2 小时前
AI Agent面试之基础概念
人工智能
微帧Visionular2 小时前
AI视频单帧清晰,播放时却闪烁,原因是什么?
人工智能·深度学习·音视频
武子康2 小时前
MultiNet6 空闲崩溃:`EXCVADDR=0x8` 后又出现 `CORRUPT HEAP`
人工智能·后端·agent
云智慧AIOps社区2 小时前
智能巡检机器人应用场景解析:机房巡检、园区安防、管廊巡视与展厅导览
人工智能·机器人·具身智能·智能巡检机器人·企业级智能巡检机器人·机房巡检机器人·导览机器人
EnCi Zheng2 小时前
Agent 如何进行工具调用:从一次 Function Calling 到生产级工具编排的完整链路
大数据·人工智能·agent·ai编程·工具调用
赛博守夜人2 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全
lovingsoft2 小时前
AI 时代未来软件形态趋势:从固定功能应用,走向意图驱动、智能体原生的柔性系统-浅析
人工智能
GlobalInfo2 小时前
重磅发布 | 2026年船体清洁机器人行业研究报告:市场规模、发展前景与十五五战略地图
大数据·人工智能·机器人
海宇服务2 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化园区商户免押租赁资信核验网关
大数据·人工智能·架构·自动化