Stabilize above the pad
LunarLander-v3The trajectory data could not be loaded.
Principles
- Key quantities
- vertical velocity \(v_y\), angular velocity \(\omega\), horizontal velocity \(v_x\)
- Approach speed
- \(v^*(e,a)=\operatorname{sgn}(e)\min\big(\sqrt{2a|e|},\,|e|/\tau\big)\): fast when far, slowing down on arrival
- Target tilt
- \(\tilde\theta=\theta_l\operatorname{clip}\big((v_x-v^*(-x',a_x))/0.5,\,-1,\,1\big)\), the lean the remaining \(v_x\) still needs
| Principle | When | Reference |
|---|---|---|
| Return to the height | always | \(v_y\to v^*(h_{\text{target}}-h',\,a_y)\) |
| Return to the centre | always | \(v_x\to v^*(-x',\,a_x)\) |
| Lean as needed | always | \(\omega\to\operatorname{sgn}(\tilde\theta-\theta')\sqrt{2a_\omega|\tilde\theta-\theta'|}\) |
Primes mark the next state with the engines off; \(h\) is the height above the pad and \(h_{\text{target}}\) the target height, 7 m.
Sample efficiency
Within 33,767 environment steps
- Success criterion
- all 20 evaluation episodes stay between the flags within 0.5 m of \(h_{\text{target}}\) for their last 5 s
- Converges in
- 15 updates
Train it yourself
$ pip install -r requirements.txt
$ python lunar_lander_stabilize.py