Skip to content

Управление манипуляционным роботом в среде CoppeliaSim с использованием стереокамеры и обучения с подкреплением DDPG

Notifications You must be signed in to change notification settings

Hazuwall/VisionBasedControl

Repository files navigation

Vision-based control

Управление манипуляционным роботом в среде CoppeliaSim с использованием стереокамеры и обучения с подкреплением DDPG.

Scene

Алгоритм

Цель агента - приближение схвата к объекту определённого цвета, расположенного в рабочей зоне.
Для уменьшения количества входных признаков было решено предварительно извлекать из изображения параметры прямоугольника, обрамляющего целевой объект. Такое решение уменьшает привязанность к определённой камере и цели, предотвращает проблему с переносом программы на реальное устройство, где изображение значительно различается от моделируемого.
Для детектирования в каждой точке находится расстояние L1 между цветом в ней и искомым. Далее по заданному порогу составляется маска принадлежности точек объекту, что позволяет найти прямоугольник, обрамляющий область.

Detection

Перед непосредственным приближением к объекту происходит поиск сектора, из которого открывается вид на цель. Решение данной подзадачи предполагает сохранение промежуточных результатов и проще достигается императивно.
Таким образом, нейросеть производит планирование траектории по направлению к целевому объекту, находящемуся в зоне видимости. Вход нейронной сети - обобщённые координаты и параметры прямоугольной области, описывающей объект на изображении; выход - изменение координат.
Параметры нейросети настраиваются с помощью обучения с подкреплением по алгоритму DDPG (Deep Deterministic Policy Gradient). Алгоритм решает проблему непрерывности и многомерности действия агента.
Вычисляемая награда включает разницу потенциалов следующего и текущего состояний, а также штраф за длину перемещения. Предназначение штрафа в поощрении гладкой многоточечной траектории. Потенциал состояния вычисляется как взвешенная сумма площади прямоугольника, его смещения относительно центра изображения, а также средней дальности по карте глубины.

Использование

  1. Запустить симуляцию сцены Scene.ttt в CoppeliaSim
  2. Использовать ноутбук inference.ipynb

Необходимые библиотеки

  • Tensorflow 2
  • OpenCV
  • Numpy

Обучение

  1. Запустить симуляцию статической сцены StaticScene.ttt в CoppeliaSim. Использование статической модели робота в режиме синхронизации позволяет проводить обучение с максимальной скоростью.
  2. Открыть скрипт training.py и настроить параметры обучения. Рекомендуется установить количество шагов обучения steps >= 5000.
  3. Выполнить скрипт

Графики процесса обучения

Суммарная награда за эпизод

Reward

Оценка действий сети-актера Q

Q-metric

About

Управление манипуляционным роботом в среде CoppeliaSim с использованием стереокамеры и обучения с подкреплением DDPG

Topics

Resources

Stars

Watchers

Forks