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

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

Maxime Chevalier

蒙特利尔大学博士

专注于编译器设计

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

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

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

  1. 利用训练数据建立一个简单的分类器

    利用训练数据建立一个简单的分类器 在机器学习领域中,分类指的是利用数据的特性将其分成若干类型的过程.分类器则可以是实现分类功能的任意算法,最简单的分类器就是简单的数字函数.在真实世界中,分类器可以是非 ...

  2. python追踪屏幕的移动目标_利用树莓派和Python建立一个简单、便宜的移动目标探测器...

    今天我们将讨论如何建立一个简单.便宜的移动目标探测器. 这项研究的目的是确定在一个便宜的移动设备上的对象检测模型是否可以用于现实世界的任务. 作为一个移动平台,我们使用的是树莓派3B.树莓派是一款售价 ...

  3. bat 删除文件_利用电脑文本文档建立一个简单方便的删除文件的小程序

    删除文不需要的文件或者资料,是日常工作中必定会遇到了. 各种的杀毒软件或者防护软件都具备删除文件的功能,例如360.腾讯电脑管家.这些操作起来其实也不是太麻烦! 不过呢!今天来和大家分享一个更简单的方 ...

  4. 机器人坐标系建立_如何在30分钟内建立一个简单的搜索机器人

    机器人坐标系建立 by Quinn Langille 奎因·兰吉尔(Quinn Langille) 如何在30分钟内建立一个简单的搜索机器人 (How to Build A Simple Search ...

  5. 使用html 语言建立一个简单的网页,如何用记事本建立简单的网页(1).doc

    第九章 网页制作 实验一 用记事本建立简单的HTML文件 [实验目的] 学会用HTML语言建立一个简单的网页. [实验内容] 建立一个网页,布局自定,包括自我介绍.图片.自己的电子信箱地址等,要求在标 ...

  6. 如何利用laragon框架制作一个简单的应用?

    如何利用laragon框架制作一个简单的应用? 一.搭建环境 1. 安装Laragon 1.1 打开安装包用的语言 选择自己习惯用的语言 1.2 选择安装地址 1.3 选择Next,开始install ...

  7. Matlab中如何使用appdesigner设计工具建立一个简单的界面

    Matlab中如何使用appdesigner设计工具建立一个简单的界面(数据的输入.处理和保存) 以使用不同算法处理图像的功能为例 建立一个新的空白界面,matlab中输入appdesigner,打开 ...

  8. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  9. 阿里微服务专家自己手写Spring Boot 实现一个简单的自动配置模块

    为了更好的理解 Spring Boot 的 自动配置和工作原理,我们自己来实现一个简单的自动配置模块. 假设,现在项目需要一个功能,需要自动记录项目发布者的相关信息,我们如何通过 Spring Boo ...

最新文章

  1. 开放应用模型操作指南(一)| 云服务一键接入 OAM 体系
  2. 现在就开始使用AngularJS的三个重要原因
  3. docker-ce私有仓库搭建
  4. 使用简介EntityFramework6.0
  5. double小数点后最多几位_基金理财买入后,不断亏损,是最多本金亏光,还是会出现负值...
  6. 如何将Eclipse中的开源项目使用到Android Studio中
  7. 底层原理_自动装箱与拆箱底层原理
  8. kafka消费者源码解析
  9. 麒麟990 5G获外媒好评:华为Mate30系列有望引领5G时代新体验
  10. SDN/NFV若干问题
  11. 《Spring Data实战》——2.2 定义查询方法
  12. JSONObject简单测试使用
  13. jQuery -- 光阴似箭(三):jQuery 操作 HTML 元素和属性
  14. 围棋AI kataGo下载
  15. Python图像处理之图片文字识别(OCR)
  16. 中国城市生活节奏排行榜
  17. uni-app animation动画
  18. 用MATLAB分析电能质量,基于matlab仿真的电能质量研究.doc
  19. android-柱状图、折线图、x轴、y轴绘制以及实例代码
  20. Windows10抽风系列:一、卡顿、字体显示丢失

热门文章

  1. 安装生物序列去冗余软件cd-hit
  2. 推荐 3 个快速开发平台 项目经验又有着落了
  3. 录音怎么转成文字?教你3个录音转文字方法,简单高效
  4. 无穷小在袁萌脑海中的第一次闪光
  5. thinkphp6框架middleware中间件的定义和使用方法示例
  6. tensorboard已经安装却用不了?!
  7. 为什么要学习C语言?
  8. Python:实现获取daily horoscope每日星座运势算法(附完整源码)
  9. 一级缓存和二级缓存的理解
  10. 一种低成本的西门子PLC网关实现采集S7系列西门子PLC数据