๋ฏธ๋ ์ฐฉ์ง ์๋ฎฌ๋ ์ดํฐ (Mini Landing Environment)
์ถ์ง๊ธฐ 3๊ฐ(์ผ์ชฝ ยท ๊ฐ์ด๋ฐ ยท ์ค๋ฅธ์ชฝ)๋ฅผ ์ ์ดํ์ฌ ์ฐฉ์ง๋์ ์์ ํ๊ฒ ์ฐฉ๋ฅ์ํค๋ ๊ฒฝ๋ Gymnasium ๊ฐํํ์ต ํ๊ฒฝ์ ๋๋ค. LunarLander์ ํต์ฌ ๋ฌผ๋ฆฌ ๊ท์น์ ์ต์ํํ์ฌ ๊ตฌํ๋์์ต๋๋ค.
ํน์ง
- ๋์ ๊ณต๊ฐ (Action Space):
Discrete(4)0: ๋๊ธฐ (์ฌ๊ธฐ)1: ์ผ์ชฝ ์ถ์ง๊ธฐ ์ ํ (์ค๋ฅธ์ชฝ์ผ๋ก ํ์ ํ ํฌ)2: ๊ฐ์ด๋ฐ ์ฃผ ์ถ์ง๊ธฐ ์ ํ (์์น ๊ฐ์)3: ์ค๋ฅธ์ชฝ ์ถ์ง๊ธฐ ์ ํ (์ผ์ชฝ์ผ๋ก ํ์ ํ ํฌ)
- ์ํ ๊ณต๊ฐ (Observation Space):
Box(-inf, inf, (6,), float32)- ์ ๊ทํ๋
[x, y, vx, vy, theta, angular_velocity]
- ์ ๊ทํ๋
- ๋ชจ๋ ์ง์:
๊ธฐ๋ณธ: ์ผ๋ฐ ์ฐฉ๋ฅ ํ๋ จ๋ก๋์คํฐ: ์ด๊ธฐ ๊ฐ๋๊ฐ 180๋(๋ค์งํ ์ํ)๋ก ์์ํ์ฌ ๋ฌ๊ธฐ ํ์ ๋ฐ ๋ณต๊ตฌ ํ๋ จ ๊ฐ๋ฅ
์ค์น ๋ฐ ์ฌ์ฉ๋ฒ
pip install gymnasium numpy
from landing_env import ์ฐฉ์ง, LandingEnv
# ํ๊ฒฝ ์์ฑ
env = ์ฐฉ์ง(๋ชจ๋='๊ธฐ๋ณธ')
obs, info = env.reset()
terminated = False
truncated = False
while not (terminated or truncated):
action = env.action_space.sample() # ํ๋ ์ํ๋ง
obs, reward, terminated, truncated, info = env.step(action)
print("๊ฒฐ๊ณผ:", info.get('๊ฒฐ๊ณผ'))