Based on openai.com's LunarLander gym, the
is an increased challenge for reinforcement learning.
As NASA did with Perseverance, the lander this time has to be dropped of by a SkyCrane like EDLS - a rocket propelled crane platform that carries its payload to the surface, to set it down safely and then leave the area.
Challenges:
-
The state object is larger (lander and platform data)
- SkyCrane Data
- x, #0 -100%...100%
- y, #1 -100%...100%
- velocity.x, #2
- velocity.y, # 3
- skycrane.angle, #4
- angularVelocity, #5
- Lander Data
- legs[0].ground_contact , #6
- legs[1].ground_contact, #7
- x , #8
- y , #9
- velocity.x, #10
- velocity.y, #11
- lander.angle, #12
- lander.angularVelocity, #13
- tether_connected, #14
- SkyCrane Data
-
Phsyics are more demanding: The lander is an inert mass on a pendulum tether
-
More actions
- 0 No operation
- 1 Fire left engine
- 2 Fire both engines
- 3 Fire right engine
- 4 release tether
You need to get Box2d running on your envirnment. Easy on Linux, a challenge on Windows, and ah, duh, don't know about MacOS.
And you need open.ai Gym with pip install gym
and tensorflow if you want to run the prepared reinforcement model.
Either clone the whole repository, or just copy
-
mars_lander_environment.py
This is the gym-derived and gym-compatible environment -
mars_lander This is a prepared agent implementation to learn to land safely on Mars. You might of course implement your own. This Agent is based on fakemonk1's Lunar Lander, all kudos go to her/him.