Разработка программного обеспечения для управления манипулятором робота на основе нейронных сетей
На текущий момент основной задачей является доставка манипулятора из текущего положения в пространстве в желаемое. Текущее и желаемое положения манипулятора определяются с помощью контрольных меток, которые видит бортовое ПО своим модулем распознавания объектов. Движения манипулятора просчитывает нейронная сеть и передает сигналы на управление приводами манипулятора.
При достижении цели, манипулятор ожидает следующей цели, при появлении запускается алгоритм перемещения манипулятора.В ходе выполнения работы был собран прототип робота, состоящий из гусениц, на которые установлены: манипулятор с тремя степенями свободы, захватывающим устройством на конце манипулятора, на котором закреплена контрольная метка в виде оранжевого шарика.
Для управления манипулятором прототипа было реализовано главное ПО, которое берет на себя роль оператора манипулятором. Такое сложно ПО состоит из нескольких независимых модулей, которые в совокупности обеспечивают работу всего робота. А именно: модуль компьютерного зрения, система управлением робота на основе ИНС, компьютерные модели манипулятора, интерфейс взаимодействия между главным ПО и бортовым ПО.
Предварительное обучение и проверку ИНС позволили сделать созданные компьютерные модели манипулятора, которые отличаются изменением координат X, Y, Z. А именно, первая реализация основана на изменении координат в трехмерной декартовой системе координат, а вторая на изменении координат в сферической системе координат.
Для работы самого манипулятора было создано бортовое ПО, обеспечивающее принятие и исполнение команд для манипулятора.
Чтобы связать главное ПО и бортовое ПО был реализован модуль с интерфейсом взаимодействия в виде отправки сообщений по последовательному порту на Arduino.
А также исходный код проекта лежит в открытом репозитории github.При реализации проекта были использованы различные технологии.
Так при реализации главного ПО на языке программирования Java были использованы библиотеки DeepLearning4J, OpenCV, arduino и JSerialComm, сборка проекта проводилась с помощью Gradle.
Реализация бортового ПО на языке программирования С++ требовала использования библиотеки Servo.
Проект разрабатывался с помощью системы контроля версий git и расположен в открытом репозитории GitHub.В ходе выполнения работы был собран прототип робота, состоящий из гусениц, на которые установлены: манипулятор с тремя степенями свободы, захватывающим устройством на конце манипулятора, на котором закреплена контрольная метка в виде оранжевого шарика.
Для управления манипулятором прототипа было реализовано главное ПО, которое берет на себя роль оператора манипулятором. Такое сложно ПО состоит из нескольких независимых модулей, которые в совокупности обеспечивают работу всего робота. А именно: модуль компьютерного зрения, система управлением робота на основе ИНС, компьютерные модели манипулятора, интерфейс взаимодействия между главным ПО и бортовым ПО.
Предварительное обучение и проверку ИНС позволили сделать созданные компьютерные модели манипулятора, которые отличаются изменением координат X, Y, Z. А именно, первая реализация основана на изменении координат в трехмерной декартовой системе координат, а вторая на изменении координат в сферической системе координат.
Для работы самого манипулятора было создано бортовое ПО, обеспечивающее принятие и исполнение команд для манипулятора.
Чтобы связать главное ПО и бортовое ПО был реализован модуль с интерфейсом взаимодействия в виде отправки сообщений по последовательному порту на Arduino.На текущий момент основной задачей является доставка манипулятора из текущего положения в пространстве в желаемое. Текущее и желаемое положения манипулятора определяются с помощью контрольных меток, которые видит бортовое ПО своим модулем распознавания объектов. Движения манипулятора просчитывает нейронная сеть и передает сигналы на управление приводами манипулятора.