Занятие №16:

Итоговый проект

 Проект highway-env

Данный проект представляет из себя набор сред для автономного вождения и принятия тактических решений.


https://highway-env.readthedocs.io/en/latest/installation.html#

https://github.com/eleurent/highway-env

 Среда 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