Всего у данного пайплайна такие основные шаги:
- Работа планировщика: ему задается одна из spatial задач (которые есть в mapspatial/benchmarks/spatial/blocks/), он ее выполняет ее и сохраняет все шаги отдельно в tasks_jsons/task{task_num}/planner_steps/
- Далее запускается utils/planner_parser.py, который парсит шаги планировщика и переделывает их в таски для rl агента, объединяет некоторые шаги, изменяемые координаты которых находятся в определенном окне, и потом сохраняет эти новые таски в tasks_jsons/task{task_num}/planner_steps_parsed/
- После этого запускается rl агент, который выполняет отдельно каждый распаршенный шаг в окне, а потом сохраняет ту стратегию, которую он выучил, в txt файлики в папку tasks_jsons/task{task_num}/'rl_agent_steps/
- Затем из шагов rl агента достаются те шаги, которые содержат действия pick-up или put down, и сохраняются в tasks_jsons/task{task_num}/manipulator_sits_raw/situations.json
- На последнем шаге запускается DQN-агент, который находит наилучшие последовательности движений манипулятора и сохраняет их в tasks_jsons/task{task_num}/manipulator_sits_solved/
Клонировать репозиторий и запустить train.py (в методе main() устанавливаются параметры запуска в переменной parameters).
- Numpy
- Matplotlib
- Gym
- mapcore from glebkiselev [map-core]
- mapspatial from glebkiselev [map-spatial]