在 CARLA 上训练强化学习模型教程
前言
本文的目标是在自动驾驶虚拟仿真环境 CARLA 上训练一个 强化学习(RL)的端到端(E2E)模型,并可以 CARLA 相关的驾驶类指标来评估该模型的性能。
技术选型:
- CARLA 版本:0.9.14
- 强化学习训练库:GitHub - raykr/CARLA-SB3-RL-Training-Environment
安装依赖
-
安装
CARLA 0.9.14
,参照 在Ubuntu上安装CARLA的过程。 -
配置 Carla 环境变量,在
~/.zshrc
中添加: -
创建
conda
环境: -
拉取项目并安装依赖:
原仓库 requirements.txt
安装时报错,请使用 fork 修改后的仓库地址: https://github.com/raykr/CARLA-SB3-RL-Training-Environment
requirements.txt
安装时报错,请使用 fork 修改后的仓库地址: https://github.com/raykr/CARLA-SB3-RL-Training-Environment训练模型
配置文件都在 config.py
中,有以下参数:
algorithm
: 要使用的 RL 算法。支持 Stable Baselines 3 中的所有算法。algoritm_params
: 算法的参数。有关更多信息,请参阅 Stable Baselines 3 文档。state
: 用作 state 的列表。例如,steer, throttle, speed, angle_next_waypoint, maneuver, waypoints, rgb_camera, seg_camera, end_wp_vector, end_wp_fixed, distance_goal
有关更多信息,请参阅 “carla_env/state_commons.py” 文件。vae_model
: 要使用的 VAE 模型。此 repo 包含两个预训练模型:vae_64
和vae_64_augmentation
。如果为None
,则不使用 VAE。action_smoothing
: 是否使用动作平滑。reward_fn
: 要使用的奖励函数。更多信息请参阅carla_env/reward_functions.py
文件。reward_params
: 奖励函数的参数。obs_res
: 观察的分辨率。建议使用(160, 80)
seed
: 要使用的随机种子。wrappers
: 要使用的包装器列表。目前已实现两个:HistoryWrapperObsDict
和FrameSkip
。有关更多信息,请参阅carla_env/wrappers.py
文件。
执行训练:
查看 tensorboard:
评估
如果要对训练完的模型进行评估,可以通过运行:
例如:
在运行 eval 时可能会遇到 swrast 报错,解决办法参照 解决 pygame 运行时找不到 swrast 和 GLIBCXX_3.4.30 的错误
结果展示
在 tensorboard 下训练日志目录下,会生成一个 eval
目录,里面会生成评测记录和导出的视频。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 天澄拾光!
评论
ArtalkGitalk