當前位置:
首頁 > 知識 > SpaceX Falcon 9 Box2D 回收降落動作模擬器

SpaceX Falcon 9 Box2D 回收降落動作模擬器

這是一款 SpaceX Falcon 9 第一級火箭的垂直火箭著陸模擬器,該模擬器用 Python 3.5 開發並且在 OpenAI Gym 環境中編寫。該模擬器採用的是 Box2D 物理引擎,環境和 Lunar Lander 類似。以下為演示動畫:

https://www.youtube.com/watch?v=4_igzo4qNmQ

Github

https://github.com/arex18/rocket-lander

OpenAI Gym Environment

https://gym.openai.com/docs/

Lunar Lander:

https://gym.openai.com/envs/LunarLander-v2/

此代碼可用於:

模擬 PID 控制

模擬 DDPG 控制

模擬 MPC 控制

也可以用於(非通常用法):

模擬進化策略演算法(ES)

函數逼近 Q-learning(FA Q-Learning)

線性二次型調節器(LQR)

該項目主要貢獻了模擬環境,其他的控制腳本在參考和文件中。

模擬代碼在environments下。


快速開始

下載該庫,然後用 pip 安裝

前提

以下是運行該庫所需的軟體列表,Windows 用戶請前往[Windows Python 擴展庫](Python 擴展包的非官方 Windows 二進位文件)列表來安裝 cvxpy 和其他任何失敗的 pip 安裝。

tensorflow

matplotlib

gym

numpy

Box2D

logging

pyglet

cvxpy

abc

concurrent

python pipinstallPATH_TO_YOUR_DOWNLOADED_LIBRARY (endinginwhl)

檢查功能

運行 main_simulation.py 並檢查模擬是否開始,一個顯示火箭的窗口應該彈出。如果從終端運行,只需:

pythonmain_simulation.py


問題定義

介紹

這個小型項目的重點在於將經典控制方法與 AI 演算法進行比較和對比,以應用於連續控制問題。 這與動作空間離散的 lunar lander 不同。離散動作空間示例:

lunar_lander_horizontal_thrusters= {-1, -0.5,,0.5,1}

lunar_lander_vertical_thruster= {,0.5,1}

連續動作空間示例:

lunar_lander_left_thruster= [,1] (negated in code)

lunar_lander_right_thruster= [,1]

lunar_lander_vertical_thruster= [,1]

然而,大多數現實生活問題都存在於連續狀態和連續行動空間中。狀態和動作域都可以離散化,但在實際應用中會有各種限制。

所以該模擬器的目的就是為了實現連續空間的模擬。PID,MPC,ES 和 DDPG演算法進行比較之後,DDPG 表現出了令人印象深刻的結果。DDPG 解決了 Q-learning 離散動作空間的限制。雖然有些複雜,但 DDPG 獲得最高效率和最佳總體控制。

模擬狀態和動作

在代碼中,狀態被定義為:

State= [x_pos, y_pos, x_vel, y_vel, lateral_angle, angular_velocity]

Actions= Fe, Fs,$psi$

Fe = Main Engine (vertical thruster) [0, 1]

Fs = Side Nitrogen Thrusters [-1, 1]

Psi = Nozzle angle [-NOZZLE_LIMIT, NOZZLE_LIMIT]

所有的模擬設置,限制,多邊形,雲,海等都在 constants.py 文件中被定義為常量。

控制器

控制器的代碼存放於 control_and_ai 下,DDPG 有獨立的包。作者在設計原型和訓練模型時寫了一些非結構化的腳本,所以庫中有些未經測試的混亂代碼,在此作者表示歉意。另外,一些訓練好的模型存放在不同的目錄下。

從Python入門-如何成為AI工程師

BAT資深演算法工程師獨家研發課程

最貼近生活與工作的好玩實操項目

班級管理助學搭配專業的助教答疑

學以致用拿offer,學完即推薦就業

新人福利

關注 AI 研習社(okweiwu),回復1領取

【超過 1000G 神經網路 / AI / 大數據資料】

基於 Unity/OpenAI Gym/PyTorch/TF 的深度強化學習研究框架

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

7 個開發者應該知道的機器學習相關 Github 項目
論機器學習的可重複性危機

TAG:AI研習社 |