
Занятие №16:
Итоговый проект

Проект highway-env
Данный проект представляет из себя набор сред для автономного вождения и принятия тактических решений.
https://highway-env.readthedocs.io/en/latest/installation.html#

Среда highway
В этой задаче транспортное средство движется по многополосной автомагистрали, заполненной другими транспортными средствами. Задача агента - набрать большую скорость, избегая столкновений с соседними транспортными средствами. Также вознаграждается движение по правой стороне дороги.


Среда merge
В этой задаче транспортное средство трогается с главной автомагистрали, но вскоре приближается к транспортной развязке с приближающимися транспортными средствами на съезде. Цель агента - поддерживать высокую скорость, освобождая место для транспортных средств, чтобы они могли безопасно слиться с потоком.


Среда roundabout
В этой задаче транспортное средство приближается к кольцевой развязке с другими движущимися транспортными средствами. Он будет следовать своему запланированному маршруту, но должен обрабатывать смену полосы движения, чтобы как можно быстрее объехать круговую развязку, избегая столкновений.


Среда parking
В этой задаче транспортное средство должно припарковаться на заданном парковочном месте.


Среда intersection
В этой задаче транспортное средство должно без происшествий пересечь перекресток с плотным движением.

Настройка своей среды
import pprint
env = gym.make("highway-v0")
pprint.pprint(env.config)Настройка своей среды
{'action': {'type': 'DiscreteMetaAction'},
'centering_position': [0.3, 0.5],
'collision_reward': -1,
'controlled_vehicles': 1,
'duration': 40,
'ego_spacing': 2,
'high_speed_reward': 0.4,
'initial_lane_id': None,
'lane_change_reward': 0,
'lanes_count': 4,
'manual_control': False,
'observation': {'type': 'Kinematics'},
'offroad_terminal': False,
'offscreen_rendering': True,
'other_vehicles_type': 'highway_env.vehicle.behavior.IDMVehicle',
'policy_frequency': 1,
'real_time_rendering': False,
'render_agent': True,
'reward_speed_range': [20, 30],
'right_lane_reward': 0.1,
'scaling': 5.5,
'screen_height': 150,
'screen_width': 600,
'show_trajectories': False,
'simulation_frequency': 15,
'vehicles_count': 50,
'vehicles_density': 1}Настройка своей среды
env.config["lanes_count"] = 6
env.config["scaling"] = 4.0
env.reset()
plt.imshow(env.render(mode="rgb_array"))
plt.show()
Пример
import gym
import highway_env
from stable_baselines3 import DQN
env = gym.make("highway-fast-v0")
model = DQN('MlpPolicy', env,
policy_kwargs=dict(net_arch=[256, 256]),
learning_rate=5e-4,
buffer_size=15000,
learning_starts=200,
batch_size=32,
gamma=0.8,
train_freq=1,
gradient_steps=1,
target_update_interval=50,
verbose=1,
tensorboard_log="highway_dqn/")
model.learn(int(2e4))
model.save("highway_dqn/model")
model = DQN.load("highway_dqn/model")
while True:
done = False
obs = env.reset()
while not done:
action, _states = model.predict(obs, deterministic=True)
obs, reward, done, info = env.step(action)
env.render()Пример


Задача
Используя любой алгоритм обучения с подкреплением запрограммируйте одну из сред для автономного вождения автомобиля и принятия тактических решений. Вы можете создать свою собственную среду для обучения агента.

Спасибо за понимание!
Занятие 16. Итоговый проект
By Astro Group
Занятие 16. Итоговый проект
- 70