单智能体carla强化学习实战工程介绍
这个deepmdp的目的,就是解决Carla_DRL中,sac等算法不加vae直接输入原始图像无法训练出很好的拟合效果的问题,所以加了一个deepmdp+sac算法的工程,这个工程可以用来跑顶会论文的baseline。单进程的RL的训练版本之一,目前主要包括三个场景,点到点导航,鬼探头,急刹车,其他场景都可以自行创建。目前Carla_DRL有三个版本,v3.0是最新的,点进去可以看到代码,下载或者
有三个工程:
Ray_Carla: 因为有的论文用多进程训练强化学习,包括ray分布式框架等,这里直接放了一个ray框架的示例代码,是用sac算法搭建的,obs没用图像,是数值状态向量值(速度那些)。目前可以不用研究这个工程。
Ray_Carla只有v1.0一个更新版本,当然,后续更新可能会增加v2.0,v3.0…,依此类推。但是目前这个工程不维护,因为暂时也不需要分布式训练,数据量都不大。
Carla_DRL: 单进程的RL的训练版本之一,目前主要包括三个场景,点到点导航,鬼探头,急刹车,其他场景都可以自行创建。算法包括:PPO和DQN,这里只有PPO用了视觉图像(用的语义分割图像),直角训练效果还算可以(b站视频可见),但是此种方法需要先训练vae编码器,只用cnn网络处理图像是训不出来的。而vae编码器有个问题,就是出现均值方差为None。另外,这个工程博主只测试过两个场景,一个是PPO的直角转弯,另外一个是DDQN的直线导航。 其他场景的搭建和实验需要自己学习掌握基础后去调,包括动作空间,奖励函数等等,不想自己学习去开拓的同学别购买。
目前Carla_DRL有几个版本,当然是使用最新的,点进去可以看到代码,下载或者git clone,当然,后续更新可能会增加v4.0,v5.0…,依此类推。
Carla_Deepmdp_RL: 单进程的RL的训练版本之一,是目前一直更新的工程,做论文也在这个工程上进行。该工程主要包括多个场景,比如高速公路和鬼探头(可以看b站视频),其他场景都可以自行创建。这个deepmdp的目的,就是解决Carla_DRL中,sac等算法不加vae直接输入原始图像无法训练出很好的拟合效果的问题,所以加了一个deepmdp+sac算法的工程,这个工程可以用来跑顶会论文的baseline。目前该工程集合了sac,ddpg,td3,ddqn和ppo算法。另外,这个工程博主只测试了不同算法在高速公路导航线的效果,其他场景包括鬼探头或者在自主车周围放很多车的场景的很多算法还没测试,不想自己学习去开拓的同学建议别购买,毕竟基础代码没办法同时满足所有人的需求。

Carla_Deepmdp_RL有几个版本,当然,后续更新可能会增加v2.0,v3.0…,依此类推。用最新的版本,旧版本只是用来记录。
教程:
b站合集单智能体深度强化学习Carla实战入门教程视频
https://space.bilibili.com/300556577/lists/5454091?type=season
小白如何入手实战:
每个人的学习方法可能不一样,这是个人建议,因为实战涉及到很多工程经验,这经验不仅仅是用在DRL的Carla,还可以用在各自工程项目,所以说,需要结合工程本身而不仅仅是RL本身去学习,以下是建议的学习顺序:
- 学习了解python开发工具的使用,pycharm或vscode,具体教程网上一大把,自己搜,不然有些人连pycharm或vscode怎么加载python解释器都不知道。
- 学习conda的使用,这个也很简单,网上也一堆教程,conda的好处就是可以同时存在多个python版本,方便管理环境。
- 学习Carla的安装,和搭环境跑起来examples里面的示例脚本,比如manual_control.py,这个教程网上其实也有,当然我之前也录过视频,我的视频链接在某抖,就搜这几节的视频,虽然将的Carla版本不一样,但是操作基本一致,只是有些API不一样。

4.如果没有RL理论基础,可以先看Carla_DRL工程里面的深度强化学习DRL-个人经验总结.md这个文档,有些人老喜欢不仔细先看文档,吐槽一下,虽然有时候我也是。主要是了解一下基本的DRL概念为主,比如马尔可夫链,GAE,Q和V,Actor-Critic等。
5.开始跑工程,根据readme和搭建环境讲解视频搭建环境训练代码,当然小白就算跟着教程也会搞不懂一些东西,或者报错。所以要有耐心,有问题群里交流。
6.在跑工程的过程中要思考,积累经验,自主解决一些报错。有些人学了好久,连一个找不到库的报错都看不懂,这种实在是有点夸张了。希望大家是能在这里变强的,至少在这个领域变强,而不是照猫画虎。这样毕业也不是很大难事了。
7.搭建环境跑起来demo之后,就可以慢慢理解代码。在B站集合里面发了很多代码理解的答疑视频,里面有讲解代码流程和解答学员问题的,大家都仔细一个一个看,里面应该都解答了很多小白学习的疑惑,就是可能是答疑形式,所以视频内容两个工程是混着来。
8.边跑工程边从代码层面理解各自DRL算法,包括SAC,PPO等等。这个就是最后进阶了。
总结:
1.后续应该会在Carla_Deepmdp_RL这个工程上加算法,一般SAC的训练step需要10w步。
2.目前,跑ppo,dqn在Carla_DRL工程,跑sac(后续可能更新的ddpg,td3等)在Carla_Deepmdp_RL工程。一般不是做RL理论创新,而是下游任务,只需要选其中一种RL算法即可,不用每种都比较。需要在一个场景跑很多种RL算法的谨慎购买。
更多推荐

所有评论(0)