十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

DI-drive×Carla模拟器速成指南:客户端-服务器架构、端口配置与同步模式

DI-drive×Carla模拟器速成指南:客户端-服务器架构、端口配置与同步模式 DI-drive×Carla模拟器速成指南客户端-服务器架构、端口配置与同步模式【免费下载链接】DI-driveDecision Intelligence Platform for Autonomous Driving simulation.项目地址: https://gitcode.com/gh_mirrors/di/DI-driveDI-drive 是面向自动驾驶仿真的决策智能平台它与 CARLA 模拟器通过「客户端-服务器」架构协同工作。本文带你快速看懂三件事DI-drive 的 Python 客户端如何连接 CARLA 服务器、多服务器端口如何一行配置、同步模式sync mode为什么让采样更稳定帮助新手最快跑通第一次仿真。先看懂架构谁是客户端谁是服务器DI-drive 把 CARLA 封装为一层「模拟器抽象」核心类是CarlaSimulator服务器端CARLA 本体负责渲染城市、物理运算、生成 NPC 车辆和行人通常独立启动推荐 Docker 方式。客户端DI-drive 里的 core/simulators/carla_simulator.py通过carla.Client(host, port)与服务器建立 TCP 连接默认hostlocalhost、port9000连接超时 60 秒。数据缓存静态类CarlaDataProvidercore/simulators/carla_data_provider.py缓存客户端与服务器之间的状态避免每个 tick 频繁通信。客户端建立后模拟器负责加载城市地图、设置天气、生成主角车默认vehicle.tesla.model3与传感器再把观测RGB、深度、BEV、LiDAR 等交给你的训练或评估脚本。一个直观的好处因为服务器独立运行你可以「一个服务器 多个客户端」或「多个服务器 多进程客户端」并行采样互不干扰。一键启动 CARLA 服务器Docker 方式官方教程 docs/source/tutorial/carla_tutorial.rst 推荐用 Docker 拉起 CARLA 服务器最简命令如下docker pull carlasim/carla:0.9.10 docker run -p 2000-2002:9000-9002 --runtimenvidia --gpus gpu_id carlasim/carla:0.9.10两个要点容器内部端口是9000-9002映射到宿主机的2000-2002——这就是为什么 demo 脚本里客户端有时写 2000 有时写 9000取决于你在哪一层访问。需要同时开多个服务器时可以用官方提供的 multi-carla 镜像-n 8 -p 9000表示从 9000 起连续启动 8 台服务器端口依次取偶数递增9000、9002、9004……。多服务器端口配置一行carla_ports搞定启动多台服务器后客户端如何批量连接答案在配置字典的server字段例如 demo/auto_run/auto_run.py 中的写法server[dict(carla_hostlocalhost, carla_ports[9000, 9002, 2])]这里有个巧妙约定carla_ports[起, 止, 步长]完全模仿 Python 的range。由于 CARLA 每台服务器需要占用相邻两个端口N 和 N1所以步长固定为 2配置实际展开的服务器端口[9000, 9010, 2]9000、9002、9004、9006、9008共 5 台[2000, 2002, 2]2000共 1 台Docker 映射场景端口展开与占用调度由 core/utils/others/tcp_helper.py 中的TCPManager负责它为每个(host, port)维护一个占用状态字典多进程环境启动时通过get_available_env领取一个空闲服务器用完调用release_tcp归还——这就是「多服务器轮询分配」的全部机制。同步模式为什么训练时建议开启CARLA 默认是「实时」渲染速度受 GPU 和帧率波动影响采样数据的时间戳不稳定。DI-drive 默认开启了同步模式默认配置见 core/simulators/carla_simulator.pyconfig dict( townTown01, sync_modeTrue, # 固定步长不再实时渲染 delta_seconds0.1, # 每步推进 0.1 秒 no_renderingFalse, )启用后见_set_sync_mode方法settings.synchronous_mode True世界不再自己流动必须由客户端主动推进settings.fixed_delta_seconds 0.1每调用一次tick世界恰好前进 0.1 秒数据节奏完全可控训练时可把no_rendering_mode设为 True关闭画面渲染换取更高吞吐。同步模式下流量管理器Traffic Manager也保持同步NPC 车辆的行为与主角车同频——这正是 RL/IL 采样可复现性的关键。此外若你不指定 TM 端口DI-drive 会调用find_traffic_manager_port基于 core/utils/others/tcp_helper.py自动探测系统空闲端口省去手动管理。除了同步模式模拟器还支持 14 种预设天气晴天、暴雨、黄昏等随机切换进一步丰富训练分布新手速查清单✅ 服务器Docker 启动carlasim/carla:0.9.10注意容器内外端口差异9000 ↔ 2000✅ 客户端server[dict(carla_host..., carla_ports[起, 止, 2])]步长恒为 2✅ 多服务器opendilab/multi-carla镜像-n 台数 -p 起始端口批量拉起✅ 同步模式sync_modeTruedelta_seconds0.1需要高速采样时再关渲染✅ 注意客户端销毁时不会自动释放它创建的 actor 与天气修改记得调用模拟器的clean_up方法清理现场。掌握这三块——客户端连接、端口分配、同步模式——你就已经能独立跑通 DI-drive 上大多数 CARLA 相关的训练与评估脚本了。【免费下载链接】DI-driveDecision Intelligence Platform for Autonomous Driving simulation.项目地址: https://gitcode.com/gh_mirrors/di/DI-drive创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表