2025/12/26 8:17:58
网站建设
项目流程
物流网站建设流程图,哈尔滨网站建设美丽,江苏省示范校建设专题网站,网站开发的意义和作用CARLA 入门指南
CARLA 仿真器是一套面向自动驾驶#xff08;AD#xff09;及其他机器人应用的综合性合成训练数据生成解决方案。CARLA 能够模拟高度逼真的环境#xff0c;复现现实世界中的城镇、城市和高速公路#xff0c;以及在这些道路空间中行驶的车辆和其他物体。
此…CARLA 入门指南CARLA 仿真器是一套面向自动驾驶AD及其他机器人应用的综合性合成训练数据生成解决方案。CARLA 能够模拟高度逼真的环境复现现实世界中的城镇、城市和高速公路以及在这些道路空间中行驶的车辆和其他物体。此外CARLA 仿真器也是一个出色的评估与测试平台。你可以在仿真环境中部署已训练好的自动驾驶智能体agents安全地测试和评估其性能与安全性而无需承担任何对硬件设备或其他道路使用者的风险。启动 CARLA 并连接客户端CARLA 可通过命令行启动Windows 系统使用可执行文件Linux 系统使用 Shell 脚本。请先按照 Linux 或 Windows 的安装说明完成安装然后在命令行中启动 CARLAcd/carla/root ./CarlaUE4.sh若要通过 Python API 控制 CARLA需将 Python 客户端连接到服务器的开放端口。客户端通过 client 和 world 对象控制仿真器。importcarlaimportrandom# Connect to the client and retrieve the world objectclientcarla.Client(localhost,2000)worldclient.get_world()client 对象用于维持与服务器的连接并提供多种功能如执行命令、加载或导出数据。你可以使用它加载其他地图或重载当前地图恢复初始状态。默认端口为 2000你也可以指定任意可用端口同时可通过输入计算机 IP 地址替代 localhost从而实现 服务器与客户端分离部署——例如在一台配备高性能 GPU 的服务器上运行 CARLA 仿真而在本地笔记本上运行 Python 客户端进行神经网络训练。这对 GPU 资源紧张的场景尤其有用。注意以下内容假设 CARLA 运行在默认的异步模式下。若启用了同步模式部分代码行为可能有所不同。加载地图CARLA 地图的信息在 CARLA API 中world 对象提供了对仿真环境中所有元素的访问权限包括地图、建筑物、交通灯、车辆和行人等。CARLA 服务器通常会加载一个默认地图通常是 Town10。若要在启动时指定其他地图可使用 config.py 脚本python ./util/config.py -m Town04也可在客户端通过 world 对象动态加载地图client.load_world(Town04)可看到仿真器中地图已切换观察者Spectator导航观察者Spectator是进入仿真的视觉窗口。默认情况下当你在带显示器的电脑上运行 CARLA 服务器时会自动弹出一个新窗口显示观察者视角除非使用 -RenderOffScreen 命令行参数。观察者有助于可视化仿真过程你可以熟悉所加载的地图直观查看各项操作的效果如添加车辆、改变天气、开关地图图层等也便于调试。你可以使用鼠标和键盘自由飞行观察者视角Q向上移动朝窗口顶部E向下移动朝窗口底部W向前S向后A向左D向右鼠标左键拖动上下控制俯仰角pitch左右控制偏航角yaw你也可以通过 Python API 访问和操控观察者# Retrieve the spectator objectspectatorworld.get_spectator()# Get the location and rotation of the spectator through its transformtransformspectator.get_transform()locationtransform.location rotationtransform.rotation# Set the spectator with an empty transformspectator.set_transform(carla.Transform())# This will set the spectator at the origin of the map, with 0 degrees# pitch, yaw and roll - a good way to orient yourself in the map添加非玩家角色NPCs地图加载完成后我们需要在仿真中添加车辆以模拟真实交通环境中的其他道路使用者即非玩家角色NPCs。首先从蓝图库中选择所需车辆# 获取蓝图库并筛选车辆蓝图vehicle_blueprintsworld.get_blueprint_library().filter(*vehicle*)接着利用地图预设的出生点spawn points放置车辆# 获取地图的出生点spawn_pointsworld.get_map().get_spawn_points()# 随机在地图各处生成 50 辆车foriinrange(50):world.try_spawn_actor(random.choice(vehicle_blueprints),random.choice(spawn_points))此外还需创建一辆作为仿真核心的“主车”Ego Vehicle——即未来由你的自动驾驶算法控制的车辆ego_vehicleworld.spawn_actor(random.choice(vehicle_blueprints),random.choice(spawn_points))CARLA 还支持添加行人以构建更真实的驾驶场景。在 CARLA 术语中车辆和行人均称为“Actor”参与者具体详见添加传感器现代自动驾驶车辆通过多种车载传感器感知环境如光学摄像头、光流相机、激光雷达LiDAR、毫米波雷达RADAR和加速度计等。CARLA 内置了多种传感器模型可用于生成机器学习训练数据。传感器可安装在车辆上也可固定在某一点如模拟监控摄像头。以下示例将一个标准 RGB 摄像头安装到主车上以录制视频# 定义摄像头相对于车辆的位置车顶上方 1.5 米camera_init_transcarla.Transform(carla.Location(z1.5))# 从蓝图库创建摄像头camera_bpworld.get_blueprint_library().find(sensor.camera.rgb)# 将摄像头挂载到主车cameraworld.spawn_actor(camera_bp,camera_init_trans,attach_toego_vehicle)随后通过listen()方法启动数据记录。该方法接受一个回调函数用于处理传感器数据如保存到磁盘或传输至其他程序# 使用 lambda 函数将图像保存为 PNG 文件camera.listen(lambdaimage:image.save_to_disk(out/%06d.png%image.frame))CARLA 支持多种传感器类型点击此处深入了解。使用交通管理器驱动车辆添加完车辆和传感器后需通过交通管理器Traffic Manager让车辆动起来。该组件可控制车辆在地图道路上自主行驶遵守交通规则模拟真实道路行为。# 将所有车辆交由交通管理器控制forvehicleinworld.get_actors().filter(*vehicle*):vehicle.set_autopilot(True)现在你的仿真已运行起来多辆车在地图中行驶其中一辆主车上的摄像头正在录制数据。这些数据可用于训练自动驾驶智能体。交通管理器还提供丰富的行为定制功能详见文档。这是最基础的仿真设置。接下来你可以深入探索 CARLA 提供的更多传感器和高级功能以构建更精细、更真实的仿真场景。设置主车Ego Vehicle“主车”是 CARLA 仿真中的核心概念通常指安装传感器的车辆由你的自动驾驶算法控制的车辆主车对提升仿真效率至关重要例如大地图分块加载大型地图如 Town12采用分块设计仅加载主车附近的区块以优化性能。混合物理模式Hybrid Physics Mode当仿真包含大量交通车辆时仅对主车附近的车辆计算物理大幅节省计算资源。如何定义主车在生成主车时为其蓝图设置role_name属性为heroego_bpworld.get_blueprint_library().find(vehicle.lincoln.mkz_2020)ego_bp.set_attribute(role_name,hero)ego_vehicleworld.spawn_actor(ego_bp,random.choice(spawn_points))选择地图CARLA 内置多张精心设计的地图涵盖城市、乡村、住宅区等多样环境包含不同建筑风格和道路布局从无标线乡道到多车道高速公路。地图描述Town01小型简易城镇含河流与多座桥梁Town02混合住宅与商业建筑的小城镇Town03较大的城区地图含环岛与大型路口Town04山区小镇含“8字形”无限高速公路Town05方格网状城镇含十字路口与桥梁支持多车道变道Town06多车道高速公路含多个出入口及“密歇根左转”Town07乡村环境窄路、玉米地、谷仓极少红绿灯Town08/09Leaderboard 挑战赛专用“隐藏”地图Town10市中心城区含摩天大楼、住宅区与海滨大道Town11未装饰的大地图Town12超大地图含高层、住宅、乡村等多种区域查看可用地图列表client.get_available_maps()加载指定地图client.load_world(Town03_Opt)选择车辆CARLA 提供丰富的车辆模型库以构建多样化交通流。浏览车辆目录了解详情。列出所有可用车辆蓝图forbpinworld.get_blueprint_library().filter(vehicle):print(bp.id)