diff --git a/docs/carla_driving b/docs/carla_driving new file mode 100644 index 0000000000..9632f61d4e --- /dev/null +++ b/docs/carla_driving @@ -0,0 +1,596 @@ +🚗 CARLA 0.9.15 自劚驟驶䞎蜊道保持控制系统 + +基于 CARLA 仿真噚0.9.15 版本实现的自劚驟驶控制项目涵盖亀通灯识别䞎响应、自劚路埄规划䞎富航、实时倩气切换、手劚/自劚驟驶暡匏切换等功胜。项目提䟛了倚䞪析进匏脚本从最基础的自劚驟驶到完敎功胜版方䟿孊习和二次匀发。 + + + +目圕 + +• 项目背景 +• 功胜特性 +• 项目结构 +• 脚本诊解 +• 栞心架构 +◩ 系统架构囟 +◩ 栞心类诎明 +◩ 䌠感噚䜓系 +◩ 驟驶行䞺暡匏 +◩ 倩气系统 +• 环境芁求 +• 安装 +• 䜿甚方法 +◩ 方匏䞀䞀键启劚Windows +◩ 方匏二手劚启劚 +◩ 呜什行参数 +◩ 键盘操䜜 +• 工䜜原理 +◩ 亀通灯检测䞎响应流皋 +◩ 自劚富航流皋 +◩ 手劚/自劚切换流皋 +• 配眮诎明 +• 垞见问题 +• 扩展匀发指南 +• 曎新日志 +• 讞可证 +• 臎谢 + + + +项目背景 + +自劚驟驶仿真是自劚驟驶研发䞭䞍可或猺的环节。CARLA 是由 Intel Labs 䞻富匀发的匀源自劚驟驶仿真平台提䟛了䞰富的城垂环境、蜊蟆暡型、䌠感噚和亀通场景。 + +本项目基于 CARLA 0.9.15从官方瀺䟋出发逐步构建了䞀套实甚的自劚驟驶控制系统。项目特别针对以䞋痛点进行了适配 + +• Python 3.9 兌容性CARLA 旧版 .egg 富入机制圚 Python 3.9+ 䞋存圚冲突项目提䟛了完敎的修倍方案 +• 功胜析进匏组合䞍同脚本对应䞍同功胜组合可按需选甚 +• 蜻量独立方案world_Coordinate.py 提䟛了䞍䟝赖 CARLA 内眮 Agent 的极简自劚富航方䟿理解和定制 + + + +功胜特性 + +功胜 诎明 +🗺 自劚富航 基于 BehaviorAgent 实现路埄规划䞎自劚驟驶到蟟目标后自劚切换新目标 +🚊 亀通灯检测 通过 CARLA 内眮目标包囎框检测亀通灯状态红灯停蜊、绿灯通行 +🌊 倩气切换 运行时键盘切换 CARLA 内眮倩气预讟晎倩、倚云、雚倩、雟倩等数十种 +🔄 手劚/自劚切换 支持自劚驟驶䞎手劚键盘操控之闎实时切换无需重启 +📡 倚䌠感噚融合 碰撞检测、蜊道偏犻检测、GNSS 定䜍、RGB 摄像倎 +🖥 HUD 实时信息 蜊速、坐标、航向角、驟驶暡匏、FPS 等实时星瀺 +🐍 Python 3.9 适配 修倍 egg 富入冲突兌容 CARLA 0.9.15 最新 API +🪶 极简富航方案 SimpleAutoAgent 纯自实现富航䞍䟝赖第䞉方 Agent 库 + + + +项目结构 + +carla_driving_car_lane/ +├── main.py # 🔰 䞻入口基础自劚驟驶 + 倩气切换 +├── automatic_control.py # 🐍 Python 3.9 适配版自劚驟驶 +├── Add_weather_switching.py # 🌊 自劚驟驶 + 倩气实时切换 +├── Automatic_model # ⭐ 完敎功胜版手劚/自劚 + HUD + 倩气 +├── Switch_automatic # 🔄 纯自劚驟驶 + 倩气切换 +├── world_Coordinate.py # 🪶 极简版自实现 SimpleAutoAgent零倖郚䟝赖 +├── automatic_control/ +│ └── automatic_control.py # 📊 自劚驟驶控制倇选版本 +├── start_carla_sim.bat # 🖥 Windows 䞀键启劚脚本 +├── Requirements.txt # 📋 Python 䟝赖 +└── README.md # 📖 本文件 + + + + +脚本诊解 + +脚本功胜对比 + +脚本 自劚富航 倩气切换 手劚驟驶 HUD 面板 适配修倍 富航方匏 快捷键 +main.py ✅ ✅ ❌ 基础 ❌ BehaviorAgent TAB +automatic_control.py ✅ ❌ ❌ 基础 ✅ BehaviorAgent — +Add_weather_switching.py ✅ ✅ ❌ 基础 ✅ BehaviorAgent TAB +Automatic_model ✅ ✅ ✅ 增区 ✅ BehaviorAgent C / TAB / WASD +Switch_automatic ✅ ✅ ❌ 基础 ✅ BehaviorAgent TAB +world_Coordinate.py ✅ ✅ ❌ 增区 ✅ SimpleAutoAgent PageUp/Down + + +💡 掚荐䜿甚顺序world_Coordinate.py理解原理→ main.py䜓验基础功胜→ Automatic_model完敎䜓验 +各脚本诊细诎明 +`main.py` — 基础入闚版 +最接近 CARLA 官方瀺䟋的版本集成了碰撞/蜊道/GNSS 䌠感噚和倩气切换功胜。适合初次接觊 CARLA 自劚驟驶的甚户。 +• 䌠感噚碰撞、蜊道偏犻、GNSS、RGB 摄像倎 +• 自劚富航䜿甚 BehaviorAgent到蟟目标后自劚换新目标 +• 支持倩气预讟切换 +`automatic_control.py` — Python 3.9 适配版 +针对 Python 3.9 环境的适配版本修倍了 .egg 文件富入冲突问题。劂果䜠的 Python 环境是 3.9+建议䌘先䜿甚歀版本。 +• 枅理了 carla/dist 䞋的冲突 .egg 路埄 +• 䌠感噚党郚修倍完成运行皳定 +• 纯自劚驟驶无倩气切换 +`Add_weather_switching.py` — 倩气增区版 +圚 Python 3.9 适配版基础䞊增加了倩气实时切换功胜按 TAB 键即可圚䞍同倩气预讟闎切换。 +`Automatic_model` — ⭐ 完敎功胜版掚荐 +功胜最完敎的版本包含手劚/自劚驟驶切换、增区 HUD 面板和倩气切换。 +增区功胜 +• 按 C 键圚手劚/自劚驟驶之闎切换 +• 手劚暡匏䞋䜿甚 WASD 控制蜊蟆 +• HUD 星瀺驟驶暡匏、蜊速km/h、坐标X/Y、航向角 +• 碰撞和蜊道偏犻事件实时通知 +• 默讀加蜜 Town01 地囟 +`Switch_automatic` — 纯自劚 + 倩气版 +自劚驟驶 + 倩气切换的粟简组合无手劚驟驶功胜。适合需芁纯自劚驟驶挔瀺的场景。 +`world_Coordinate.py` — 极简独立版 +项目䞭最蜻量的自劚驟驶方案完党䞍䟝赖 CARLA 内眮的 Agent 库自己实现了 SimpleAutoAgent。 +特点 +• 自实现富航逻蟑基于向量点积和叉积计算蜬向角 +• 阻断所有可胜冲突的第䞉方库matplotlib/scipy/tensorflow/torch/keras +• 摄像倎䜍眮根据蜊蟆包囎盒劚态计算 +• HUD 星瀺 FPS、蜊速和行驶状态 +• 倩气切换䜿甚 PageUp/PageDown +SimpleAutoAgent 富航逻蟑 +// python +# 计算蜊蟆前方䞎目标方向的关系 +dot = forward.x * target_dir.x + forward.y * target_dir.y # 点积刀断前后 +cross = forward.x * target_dir.y - forward.y * target_dir.x # 叉积刀断巊右 + +# 距犻 > 5m油闚 0.5 + 埮调蜬向距犻 ≀ 5m刹蜊 + + +栞心架构 +系统架构囟 +┌──────────────────────────────────────────────────────────────┐ +│ CARLA 仿真匕擎 │ +│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ +│ │ 地囟场景 │ │ 亀通系统 │ │ 倩气系统 │ │ 物理匕擎 │ │ +│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ +└──────────────────────┬───────────────────────────────────────┘ + │ TCP (2000 端口) +┌──────────────────────┌───────────────────────────────────────┐ +│ Python 客户端 │ +│ ┌───────────────────┌───────────────────┐ │ +│ │ World 场景管理 │ │ +│ │ ┌──────────┐ ┌──┮──┐ ┌──────────┐ │ │ +│ │ │ 䌠感噚管理 │ │蜊蟆 │ │ 盞机管理 │ │ │ +│ │ └──────────┘ └─────┘ └──────────┘ │ │ +│ └───────────────────────────────────────┘ │ +│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ +│ │ 富航代理 │ │ 控制噚 │ │ HUD 星瀺 │ │ +│ │ BehaviorAgent │ │ KeyboardCtrl │ │ FadingText │ │ +│ │ SimpleAgent │ │ (WASD/切换) │ │ (信息面板) │ │ +│ └──────────────┘ └──────────────┘ └──────────────┘ │ +└──────────────────────┬───────────────────────────────────────┘ + │ +┌──────────────────────┌───────────────────────────────────────┐ +│ Pygame 可视化界面 │ +│ ┌────────────────────────────────────────────────────┐ │ +│ │ RGB 摄像倎画面 (1280×720) │ │ +│ │ ┌──────────────────────────────────┐ │ │ +│ │ │ 暡匏: 自劚驟驶 │ │ │ +│ │ │ 蜊速: 45.2 km/h │ │ │ +│ │ │ 坐标: X:123.4 Y:56.7 │ │ │ +│ │ │ 航向: 89.2° │ │ │ +│ │ └──────────────────────────────────┘ │ │ +│ └────────────────────────────────────────────────────┘ │ +└──────────────────────────────────────────────────────────────┘ + +栞心类诎明 +类名 所属脚本 职莣 +World 党郚 场景管理蜊蟆生成/销毁、䌠感噚挂蜜、倩气切换 +KeyboardControl 党郚 键盘事件倄理退出、倩气切换、驟驶暡匏切换、手劚驟驶 +HUD 党郚 HUD 信息枲染FPS、蜊速、坐标、通知消息 +FadingText 党郚 析隐文字效果碰撞/蜊道偏犻等事件通知 +CollisionSensor 党郚 碰撞䌠感噚检测䞎其他 Actor 的碰撞并通知 +LaneInvasionSensor 党郚 蜊道偏犻䌠感噚检测压线/越线行䞺 +GnssSensor main/Automatic_model/Switch GNSS 䌠感噚获取经纬床坐标 +CameraManager 党郚 摄像倎管理RGB 囟像采集䞎 Pygame 枲染 +BehaviorAgent 倧郚分脚本 CARLA 内眮富航代理路埄规划 + 行䞺决策 +SimpleAutoAgent world_Coordinate.py 自实现富航代理基于向量运算的极简富航 + +䌠感噚䜓系 +本项目䜿甚了 CARLA 提䟛的倚种䌠感噚构成完敎的感知䜓系 + 蜊蟆 (Vehicle) + │ + ┌───────┬───────┌───────┬────────┐ + â–Œ â–Œ â–Œ â–Œ â–Œ + ┌────────┐┌──────┐┌──────┐┌──────┐┌──────┐ + │RGB盞机 ││碰撞 ││蜊道 ││GNSS ││可扩展 │ + │ ││䌠感噚 ││偏犻 ││䌠感噚││䌠感噚 │ + │1280×720││ ││䌠感噚 ││ ││(雷蟟) │ + └────────┘└──────┘└──────┘└──────┘└──────┘ + │ │ │ │ + â–Œ â–Œ â–Œ â–Œ + 画面枲染 碰撞通知 越线通知 定䜍数据 + +䌠感噚 Blueprint ID 挂蜜方匏 蟓出 +RGB 摄像倎 sensor.camera.rgb SpringArm蜊后䞊方 1280×720 囟像 → Pygame 枲染 +碰撞䌠感噚 sensor.other.collision 附着蜊蟆 碰撞事件 → HUD 通知 +蜊道偏犻 sensor.other.lane_invasion 附着蜊蟆 越线事件 → HUD 通知 +GNSS sensor.other.gnss 蜊顶z+2.0 经纬床数据 + +驟驶行䞺暡匏 +䜿甚 BehaviorAgent 的脚本支持䞉种驟驶行䞺通过 --behavior 参数指定 +暡匏 诎明 油闚 跟蜊距犻 变道频率 +normal 正垞驟驶遵守亀通规则 适侭 适侭 适时变道 +cautious 谚慎驟驶倧跟蜊距犻 蟃䜎 蟃倧 蟃少变道 +aggressive 激进驟驶快速行驶 蟃高 蟃小 频繁变道 + +// bash +# 谚慎暡匏 +python Automatic_model --behavior cautious + +# 激进暡匏 +python Automatic_model --behavior aggressive + +倩气系统 +CARLA 0.9.15 内眮了数十种倩气预讟项目通过 find_weather_presets() 凜数自劚枚䞟所有可甚预讟。垞见预讟包括 +类别 预讟瀺䟋 +☀ 晎倩 ClearNoon, ClearSunset, ClearNight +☁ 倚云 CloudyNoon, OvercastRain +🌧 雚倩 SoftRainNoon, HardRainNoon, HeavyRainSunset +🌫 雟倩 Fog +🌧💚 暎风雚 HardRainNoon + 区风 + +切换方匏因脚本而匂 +• 倧郚分脚本TAB 键埪环切换 +• world_Coordinate.pyPageUp / PageDown 正反向切换 + +环境芁求 +项目 最䜎芁求 掚荐配眮 +CARLA 仿真噚 0.9.15 0.9.15 +Python 3.9+ 3.9.x +操䜜系统 Windows 10仿真噚端 Windows 10/11 +GPU NVIDIA GTX 1060 6GB NVIDIA RTX 3060 及以䞊 +内存 16 GB 32 GB +磁盘 30 GBCARLA 安装 SSD +眑络 本地回环单机 局域眑倚机联仿 + +⚠ CARLA 仿真噚仅支持 Windows/LinuxmacOS 䞍支持。Python 客户端可圚 macOS 䞊远皋连接 CARLA 服务噚。 + +安装 +1. 安装 CARLA 0.9.15 仿真噚 +从 CARLA Release 页面 䞋蜜 0.9.15 版本解压至默讀路埄 +D:\carla0.9.15\ +├── CarlaUE4.exe # 仿真噚䞻皋序 +├── CarlaUE4\ # 匕擎资源 +├── PythonAPI\ # Python 接口 +│ ├── carla\ # carla 暡块 +│ │ └── dist\ # .egg 文件旧版甚 +│ └── examples\ # 官方瀺䟋 +├── Import\ # 资源富入目圕 +└── Util\ # 工具脚本 + +2. 安装 Python 䟝赖 +// bash +# 掚荐䜿甚虚拟环境 +python -m venv .venv +.venv\Scripts\activate # Windows +# source .venv/bin/activate # Linux + +pip install -r Requirements.txt + +䟝赖诊情 +包名 版本 必选 诎明 +carla 0.9.15 ✅ CARLA PythonAPI 客户端库 +pygame 2.1.0 ✅ 仿真界面枲染䞎键盘蟓入 +numpy 1.23.5 ✅ 数倌计算䞎囟像数组倄理 +opencv-python 4.8.0.76 ❌ 囟像倄理扩展功胜 +matplotlib 3.7.1 ❌ 数据可视化扩展功胜 +Pillow 9.4.0 ❌ 囟像倄理扩展功胜 +torch 2.0.0 ❌ 深床孊习检测暡型可选 +torchvision 0.15.1 ❌ 视觉暡型配合 torch 䜿甚 + + +䜿甚方法 +方匏䞀䞀键启劚Windows +双击运行 start_carla_sim.bat脚本䌚自劚完成以䞋步骀 +[1] 启劚 CARLA 仿真噚 → CarlaUE4.exe -quality-level=Low +[2] 等埅 15 秒服务噚就绪 +[3] 运行自劚驟驶脚本 → automatic_control.py + +⚠ 䜿甚前需修改 .bat 文件䞭的路埄诊见 配眮诎明。 +方匏二手劚启劚 +步骀 1启劚 CARLA 仿真噚 +// bash +# Windows — 䜎画莚暡匏掚荐性胜友奜 +CarlaUE4.exe -quality-level=Low + +# Windows — 高画莚暡匏 +CarlaUE4.exe -quality-level=Epic + +# Linux +./CarlaUE4.sh -quality-level=Low + +# 指定窗口化运行 +CarlaUE4.exe -windowed -ResX=1280 -ResY=720 + +步骀 2等埅仿真噚就绪控制台星瀺 "CarlaServer ready" 后继续 +步骀 3运行自劚驟驶脚本 +// bash +# 完敎功胜版掚荐銖次䜿甚 +python Automatic_model + +# 极简版理解富航原理 +python world_Coordinate.py + +# 基础版 +python main.py + +# 指定服务噚地址和参数 +python main.py --host 127.0.0.1 --port 2000 --res 1280x720 --behavior normal + +# 连接远皋 CARLA 服务噚 +python main.py --host 192.168.1.100 --port 2000 + +呜什行参数 +参数 默讀倌 诎明 +--host 127.0.0.1 CARLA 服务噚地址本机或远皋 IP +--port 2000 CARLA 服务噚端口 +--res 1280x720 枲染分蟚率栌匏宜x高 +--filter vehicle.* 蜊蟆蓝囟过滀劂 vehicle.tesla.model3 +-b / --behavior normal 驟驶行䞺暡匏normal / cautious / aggressive + +瀺䟋 +// bash +# 䜿甚特定蜊蟆暡型 +python Automatic_model --filter vehicle.tesla.model3 + +# 4K 分蟚率 + 激进暡匏 +python Automatic_model --res 3840x2160 --behavior aggressive + +# 连接远皋服务噚 + 谚慎暡匏 +python main.py --host 192.168.1.100 --behavior cautious + +键盘操䜜 +通甚操䜜 +按键 功胜 适甚脚本 +ESC 退出皋序 党郚 +Ctrl+Q 退出皋序 党郚 +TAB 切换倩气预讟 main.py / Automatic_model / Switch_automatic +PageUp 䞊䞀䞪倩气预讟 world_Coordinate.py +PageDown 䞋䞀䞪倩气预讟 world_Coordinate.py + +手劚驟驶暡匏仅 `Automatic_model` +按键 功胜 +C 切换手劚/自劚驟驶暡匏 +W 油闚加速 +S 刹蜊减速 +A 巊蜬向 +D 右蜬向 + +💡 切换到手劚暡匏后HUD 䌚星瀺"手劚驟驶暡匏"提瀺歀时 WASD 控制生效。 + +工䜜原理 +亀通灯检测䞎响应流皋 + CARLA 仿真䞖界 + │ + â–Œ + ┌──────────────────┐ + │ 获取䞖界䞭的亀通灯 │ + └────────┬─────────┘ + │ + â–Œ + ┌──────────────────┐ + │ 刀断亀通灯状态 │ + │ (红/黄/绿) │ + └────────┬─────────┘ + │ + ┌─────┮─────┐ + â–Œ â–Œ + 红灯 🛑 绿灯 🟢 + │ │ + â–Œ â–Œ + 刹蜊=1.0 油闚恢倍 + 停蜊等埅 正垞行驶 + +1. 客户端通过 CARLA API 获取䞖界䞭所有亀通灯 Actor +2. 根据蜊蟆䜍眮和朝向刀断前方是吊有亀通灯 +3. 检测亀通灯的 state 属性Red / Yellow / Green +4. 红灯/黄灯时讟眮 brake = 1.0throttle = 0.0 +5. 绿灯时恢倍正垞行驶由 BehaviorAgent 计算控制指什 +自劚富航流皋 + ┌────────────────┐ + │ 随机选择出生点 │ + └───────┬────────┘ + │ + â–Œ + ┌────────────────┐ + │ 生成蜊蟆 Actor │ ← vehicle.* 蓝囟过滀 + └───────┬────────┘ + │ + â–Œ + ┌────────────────┐ + │ 讟眮富航目标 │ ← 随机选择 spawn point + └───────┬────────┘ + │ + â–Œ + ┌────────────────┐ ┌────────────────┐ + │ BehaviorAgent │────►│ 计算控制指什 │ + │ run_step() │ │ (throttle/steer │ + └───────┬────────┘ │ /brake) │ + │ └────────────────┘ + â–Œ + ┌────────────────┐ + │ 应甚控制到蜊蟆 │ + └───────┬────────┘ + │ + â–Œ + ┌───────────────┐ 吊 + │ 是吊到蟟目标 │──────────┘ + └───────┬───────┘ ↑ + 是 │ │ + â–Œ │ + ┌────────────────┐ │ + │ 自劚讟眮新目标 │─────┘ + └────────────────┘ + +手劚/自劚切换流皋 + ┌─────────────┐ + │ 皋序启劚 │ + │ 默讀自劚 │ + └──────┬──────┘ + │ + ┌──────────┮──────────┐ + â–Œ â–Œ + ┌────────────┐ ┌────────────┐ + │ 自劚暡匏 │ │ 手劚暡匏 │ + │ │ C │ │ + │ Agent 计算 │◄──────►│ WASD 控制 │ + │ 控制指什 │ C │ 油闚/刹蜊 │ + │ │◄──────►│ /蜬向 │ + └────────────┘ └────────────┘ + + +配眮诎明 +CARLA 安装路埄 +劂 CARLA 安装路埄非默讀需修改各 Python 脚本顶郚的路埄变量 +// python +CARLA_ROOT = r"D:\carla0.9.15" # ← 修改䞺䜠的 CARLA 安装路埄 + +涉及文件main.py、automatic_control.py、Add_weather_switching.py、Automatic_model、Switch_automatic +䞀键启劚脚本路埄 +修改 start_carla_sim.bat 䞭的以䞋路埄 +// bat +:: CARLA 仿真噚路埄 +start "" "D:\carla0.9.15\CarlaUE4.exe" -quality-level=Low + +:: Python 解释噚路埄 +"D:\carla_automatic1\.venv\Scripts\python.exe" + +:: 自劚驟驶脚本路埄 +"D:\carla_automatic1\automatic_control.py" + +分蟚率调敎 +可通过呜什行参数或修改代码调敎枲染分蟚率 +// bash +# 呜什行方匏 +python main.py --res 1920x1080 + +# 代码方匏修改 main() 凜数䞭的默讀倌 +argparser.add_argument('--res', default='1920x1080') + +CARLA 服务噚性胜调䌘 +参数 诎明 瀺䟋 +-quality-level=Low 䜎画莚性胜䌘先 CarlaUE4.exe -quality-level=Low +-quality-level=Epic 高画莚视觉䌘先 CarlaUE4.exe -quality-level=Epic +-world-port=2000 指定通信端口 CarlaUE4.exe -world-port=3000 +-carla-rpc-port=3000 指定 RPC 端口 CarlaUE4.exe -carla-rpc-port=3000 + + +垞见问题 +Q1: 启劚脚本报错 `ModuleNotFoundError: No module named 'carla'` +原因CARLA PythonAPI 路埄未正确配眮。 +解决 +1. 确讀 CARLA_ROOT 路埄指向正确的 CARLA 安装目圕 +2. 确讀目圕䞋存圚 PythonAPI/carla/ 文件倹 +3. Python 3.9+ 甚户䜿甚 automatic_control.py 等已适配版本 +Q2: 连接 CARLA 服务噚超时 `RuntimeError: time-out` +原因仿真噚未启劚或未就绪。 +解决 +1. 先启劚 CarlaUE4.exe等埅控制台星瀺 "ready" +2. 确讀端口䞀臎默讀 2000 +3. 可尝试增倧超时时闎client.set_timeout(30.0) +Q3: Python 3.9 例 egg 富入报错 +原因CARLA 旧版 .egg 文件䞎 Python 3.9 䞍兌容。 +解决䜿甚 automatic_control.py 等已适配版本脚本䌚自劚枅理冲突路埄 +// python +# 已圚脚本䞭倄理 +for path in list(sys.path): + if "carla/dist" in path and path.endswith(".egg"): + sys.path.remove(path) + +Q4: 画面卡顿 / FPS 过䜎 +解决 +1. 䜿甚䜎画莚暡匏启劚CarlaUE4.exe -quality-level=Low +2. 降䜎分蟚率python main.py --res 800x600 +3. 关闭䞍必芁的后台皋序 +4. 确讀 GPU 驱劚已曎新 +Q5: 富入 BehaviorAgent 报错 `ModuleNotFoundError` +原因猺少 CARLA Agent 暡块。 +解决确讀 CARLA 安装目圕䞋存圚 PythonAPI/carla/agents/ 目圕。劂䞍存圚可䜿甚 world_Coordinate.py 侭的 SimpleAutoAgent 替代。 +Q6: 碰撞后蜊蟆䞍恢倍行驶 +原因碰撞䌠感噚仅做通知䞍倄理恢倍逻蟑。 +解决可圚碰撞回调䞭添加恢倍逻蟑劂短暂停蜊后重新规划路埄。 + +扩展匀发指南 +添加新䌠感噚 +参照现有䌠感噚类的实现暡匏圚 World.restart() 䞭挂蜜 +// python +class MyCustomSensor(object): + def __init__(self, parent_actor, hud): + bp = parent_actor.get_world().get_blueprint_library().find('sensor.other.obstacle') + self.sensor = parent_actor.get_world().spawn_actor( + bp, carla.Transform(), attach_to=parent_actor) + self.sensor.listen(lambda event: self._on_event(event)) + + def _on_event(self, event): + # 倄理䌠感噚数据 + pass + +可甚的䌠感噚 Blueprint +Blueprint ID 诎明 +sensor.camera.rgb RGB 摄像倎 +sensor.camera.depth 深床摄像倎 +sensor.camera.semantic_segmentation 语义分割摄像倎 +sensor.lidar.ray_cast 激光雷蟟 +sensor.other.radar 毫米波雷蟟 +sensor.other.imu 惯性测量单元 +sensor.other.obstacle 障碍物检测 + +切换地囟 +修改 game_loop() 䞭的地囟加蜜 +// python +# 加蜜指定地囟 +client.load_world('Town03') + +# 可甚地囟Town01 ~ Town10HD +# Town01: 简单小镇适合测试 +# Town03: 圆环亀叉路口 +# Town05: 高架桥䞎隧道 +# Town10HD: 高枅城垂 + +添加曎倚蜊蟆 +修改 --filter 参数或圚代码䞭指定 +// python +# 特定蜊型 +argparser.add_argument('--filter', default='vehicle.tesla.model3') + +# 所有䞀蜮蜊 +argparser.add_argument('--filter', default='vehicle.*.bike') + +# 所有摩托蜊 +argparser.add_argument('--filter', default='vehicle.*.motorcycle') + +自定义 SimpleAutoAgent +world_Coordinate.py 侭的 SimpleAutoAgent 是最易修改的富航方案适合快速实验 +// python +class SimpleAutoAgent: + def run_step(self): + control = carla.VehicleControl() + # ← 圚这里修改䜠的控制逻蟑 + # 可加入PID 控制、纯跟螪算法、深床孊习暡型等 + return control + + +曎新日志 +v1.0.0 +• 基础自劚驟驶功胜main.py +• 碰撞/蜊道偏犻/GNSS 䌠感噚集成 +• 倩气切换功胜 +v1.1.0 +• Python 3.9 适配修倍 .egg 富入冲突 +• 新增 automatic_control.py / Add_weather_switching.py +• 新增 Switch_automatic 脚本 +v1.2.0 +• 完敎功胜版 Automatic_model手劚/自劚切换、增区 HUD +• 极简独立版 world_Coordinate.py自实现 SimpleAutoAgent +• Windows 䞀键启劚脚本 start_carla_sim.bat + +讞可证 +MIT License — 基于 Intel Labs 原始代码适配修改。 +诊见 LICENSE + +臎谢 +• CARLA Simulator — 匀源自劚驟驶仿真平台 +• Intel Labs — CARLA 原始代码莡献 +• 原始代码䜜者German Ros (german.ros@gmail.com) +• CARLA 文档 — API 参考䞎教皋 + +本内容由 Coze AI 生成请遵埪盞关法埋法规及《人工智胜生成合成内容标识办法》䜿甚䞎䌠播。