Управление манипуляционным роботом в среде CoppeliaSim с использованием стереокамеры и обучения с подкреплением DDPG.
Цель агента - приближение схвата к объекту определённого цвета, расположенного в рабочей зоне.
Для уменьшения количества входных признаков было решено предварительно извлекать из изображения параметры прямоугольника, обрамляющего целевой объект. Такое решение уменьшает привязанность к определённой камере и цели, предотвращает проблему с переносом программы на реальное устройство, где изображение значительно различается от моделируемого.
Для детектирования в каждой точке находится расстояние L1 между цветом в ней и искомым. Далее по заданному порогу составляется маска принадлежности точек объекту, что позволяет найти прямоугольник, обрамляющий область.
Перед непосредственным приближением к объекту происходит поиск сектора, из которого открывается вид на цель. Решение данной подзадачи предполагает сохранение промежуточных результатов и проще достигается императивно.
Таким образом, нейросеть производит планирование траектории по направлению к целевому объекту, находящемуся в зоне видимости. Вход нейронной сети - обобщённые координаты и параметры прямоугольной области, описывающей объект на изображении; выход - изменение координат.
Параметры нейросети настраиваются с помощью обучения с подкреплением по алгоритму DDPG (Deep Deterministic Policy Gradient). Алгоритм решает проблему непрерывности и многомерности действия агента.
Вычисляемая награда включает разницу потенциалов следующего и текущего состояний, а также штраф за длину перемещения. Предназначение штрафа в поощрении гладкой многоточечной траектории. Потенциал состояния вычисляется как взвешенная сумма площади прямоугольника, его смещения относительно центра изображения, а также средней дальности по карте глубины.
- Запустить симуляцию сцены Scene.ttt в CoppeliaSim
- Использовать ноутбук inference.ipynb
Необходимые библиотеки
- Tensorflow 2
- OpenCV
- Numpy
- Запустить симуляцию статической сцены StaticScene.ttt в CoppeliaSim. Использование статической модели робота в режиме синхронизации позволяет проводить обучение с максимальной скоростью.
- Открыть скрипт training.py и настроить параметры обучения. Рекомендуется установить количество шагов обучения steps >= 5000.
- Выполнить скрипт
Суммарная награда за эпизод
Оценка действий сети-актера Q