1. 程式人生 > >利用OpenAI Gym建立一個簡單的自動駕駛模擬器

利用OpenAI Gym建立一個簡單的自動駕駛模擬器

(長按識別上方二維碼,報名第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