利用OpenAI Gym建立一个简单的自动驾驶模拟器

(长按识别上方二维码,报名第29届IEEE IV大会 )

如何建立一个简单的自动驾驶汽车模拟器?本文作者蒙特利尔大学专注于编译器设计 Maxime Chevalier 博士,在OpenAI Gym环境中开发了自己的自动驾驶模拟器,并用于Duckietown小黄鸭开源项目中,代码和教程都已公布。


利用OpenAI Gym建立一个简单的自动驾驶模拟器_第1张图片 Maxime Chevalier

蒙特利尔大学博士

专注于编译器设计


作为我的新工作的一部分,我一直在和Liam Paull教授一起为Duckietown构建模拟器。这是在麻省理工学院,苏黎世联邦理工学院,蒙特利尔大学和其他机构教授的一门大学课程,学生们通过构建自己的小型模型来了解自动驾驶汽车和机器人技术,可以在微型Duckietown环境中驾驶,完成转弯,十字路口,交通标志和其他移动车辆。


利用OpenAI Gym建立一个简单的自动驾驶模拟器_第2张图片

Duckietown


是的,Logo是一个握着方向盘的小黄鸭,Duckietown项目是开源的项目,他们的资料和代码都在网上可以查到。


Duckietown开发者手册:(微信后台回复:Duckietown下载Duckietown开发者手册)


Duckietown项目Github地址:

https://github.com/duckietown


到目前为止,该课程一直专注于使用计算机视觉和PID控制器来驱动机器人的传统自动驾驶方法。然而,学生和教授对使用深度学习(特别是强化学习)越来越感兴趣。由于强化学习需要大量的数据,因此在模拟环境中比使用物理机器人更加实际。这是构建模拟器的主要动机之一。


我构建的模拟器是基于OpenAI Gym环境,它可以轻松用于强化学习。它是用纯Python编写的,使用OpenGL(pyglet)生成图形。我选择Python是因为这是深度学习最常用的语言之一,我希望学生能够轻松修改模拟器。模拟器支持许多形式的域随机化:它随机地改变颜色,摄像机角度和视野等等。这个特性旨在帮助神经网络学习处理变化,以便在模拟工作中,训练不错的网络,而且在现实世界中也能有不错的表现。




因为Duckietown基本上属于一个二维的玩具世界,我设计了一个YAML地图格式,可以轻松手动编辑以创建自定义的新环境。我也对物理学做了一些简化的假设(代理人基本上沿着2D平面移动)。


在这个模拟器上工作时,我也在尝试sim-to-real transfer,也就是说,让模拟培训的算法在真实机器人上测试。这是一项正在进行的工作,我们正在检验这项工作的可靠性。下面的视频展示了一些测试的结果:



该项目github地址:

https://github.com/duckietown/gym-duckietown


你可能感兴趣的:(自动驾驶)