怎么使用Python实现自动驾驶系统


本篇内容介绍了“怎么使用Python实现自动驾驶系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! gym是用于开发和比较强化学习算法的工具包,在python中安装gym库和其中子场景都较为简便。安装gym:安装自动驾驶模块,这里使用 Edouard Leurent 发布在 github 上的包 highway-env:其中包含6个场景:高速公路——“highway-v0”汇入——“merge-v0”环岛——“roundabout-v0”泊车——“parking-v0”十字路口——“intersection-v0”赛车道——“racetrack-v0”安装好后即可在代码中进行实验(以高速公路场景为例):运行后会在模拟器中生成如下场景:env类有很多参数可以配置,具体可以参考原文档。(1)statehighway-env包中没有定义传感器,车辆所有的state (observations)免费云主机域名 都从底层代码读取,节省了许多前期的工作量。根据文档介绍,state (ovservations) 有三种输出方式:Kinematics,Grayscale Image和Occupancy grid。Kinematics输出V*F的矩阵,V代表需要观测的车辆数量(包括ego vehicle本身),F代表需要统计的特征数量。例:数据生成时会默认归一化,取值范围:[100, 100, 20, 20],也可以设置ego vehicle以外的车辆属性是地图的绝对坐标还是对ego vehicle的相对坐标。在定义环境时需要对特征的参数进行设定:Grayscale Image生成一张W*H的灰度图像,W代表图像宽度,H代表图像高度Occupancy grid生成一个WHF的三维矩阵,用W*H的表格表示ego vehicle周围的车辆情况,每个格子包含F个特征。(2) actionhighway-env包中的action分为连续和离散两种。连续型action可以直接定义throttle和steering angle的值,离散型包含5个meta actions:(3) rewardhighway-env包中除了泊车场景外都采用同一个reward function:这个function只能在其源码中更改,在外层只能调整权重。(泊车场景的reward function原文档里有)DQN网络,我采用第一种state表示方式——Kinematics进行示范。由于state数据量较小(5辆车*7个特征),可以不考虑使用CNN,直接把二维数据的size[5,7]转成[1,35]即可,模型的输入就是35,输出是离散action数量,共5个。各个部分都完成之后就可以组合在一起训练模型了,流程和用CARLA差不多,就不细说了。初始化环境(DQN的类加进去就行了):训练模型:我在代码中添加了一些画图的函数,在运行过程中就可以掌握一些关键的指标,每训练40次统计一次平均值。平均碰撞发生率:epoch平均时长(s):平均reward:可以看出平均碰撞发生率会随训练次数增多逐渐降低,每个epoch持续的时间会逐渐延长(如果发生碰撞epoch会立刻结束)“怎么使用Python实现自动驾驶系统”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!

相关推荐: .Net怎么部署Docker-v指令

这篇“.Net怎么部署Docker-v指令”文章的知识点大部分人都不太理解,所以小编给大家总结免费云主机域名了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“.Net怎么部署Docker-v指令”文章…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/05 15:00
下一篇 07/05 15:00

相关推荐