Робототехнический комплекс для отработки пультовой аппаратуры
О проекте коротко
Цель проекта – разработка робототехнического комплекса для отработки пультовой аппаратуры систем управления изделиями ракетно-космической техники в соответствии с техническим заданием. В результате работы создан робототехнический комплекс (РТК). В его состав входит робот-манипулятор, программное обеспечение (ПО) для запуска РТК и программное обеспечение для управления РТК. По итогам работы проведены испытания разработанного РТК и подписан акт о внедрении РТК в опытную эксплуатацию на комплексах отработки аппаратуры и программ.
Во время выполнения работы использовались инструменты: система ROS (Robot Operating System) версии Melodic, фреймворк MoveIt для расчета движений робота и визуализации траекторий движений, библиотека для расчета обратной кинематики OMPL (Open Motion Planning Library), фреймворки Micronaut и Angular для пользовательского интерфейса, база данных MySQL для хранения информации. На роботе используются шаговые двигатели NEMA17 с редуктором 1:5,18. Они подключены к плате расширения RAMPS 1.4, которая установлена на Arduino Mega. Для работы с двигателями применяются драйверы A4988. Для управления рабочим органом (поворот, разжимание схвата) предназначены сервоприводы TowerPro MG90S.
Программирование велось на языках: C++, Groovy, TypeScript.
Год реализации проекта: 2021.
О проекте подробно
Важный этап контроля качества разработки систем управления ракетно-космической техники – проведение мероприятий по отработке продукции с целью выявления ошибок в программном обеспечении и аппаратуре на ранних стадиях создания. Чем раньше в жизненном цикле будут обнаружены просчеты, тем дешевле обойдется их исправление и тем проще и быстрее эти неисправности можно будет устранить.
Рабочий процесс устроен так. Инженер группы отработки вручную запускает режим (т.е. запускает программу, которая при обращении к ней выдает сигнал как будто нажатие нужной кнопки произошло), вносит в процесс имитации неисправности (т.е. будто бы нужная кнопка не сработала или сработала неправильно) и контролирует поведение ПО на отрицательных ветвях (т.е. если есть отказ в какой-то части оборудования, то должен сработать альтернативный маршрут).
Основная часть рутинных операций оператора автоматизирована. Однако комплекс отработки аппаратуры и программ проверяет только программную часть. А устройства ввода, с которыми напрямую должен взаимодействовать оператор, не задействованы – то есть процесс отработки не завершен.
Для полной автоматизации процесса отработки необходимо разработать робототехнический комплекс, который будет воспроизводить работу оператора: выполнять действия человека (нажатие кнопок на механической и сенсорной клавиатуре, поворот ключа) по заранее прописанным сценариям.
Задачи, которые были решены с внедрением РТК в повседневную работу:
- высвобождение трудовых ресурсов для решения более приоритетных задач;
- отработка оборудования во внерабочее время;
- сокращение количества ошибок в отработке по причине человеческого фактора;
- увеличение количества проведенных испытаний и своевременное закрытие заказов на отработку.

Результат проекта
Разработанный РТК состоит из трех частей:
- механической конструкции робота-манипулятора;
- ПЭВМ для запуска окружения, которое необходимо для работы с РТК;
- ПО для управления роботом.
Основные требования и их анализ
Основные требования в области проблем можно представить в виде списка:
- пользователь должен иметь возможность запустить робота;
- пользователь должен иметь возможность указать координаты клавиш для нажатия роботом;
- пользователь должен иметь возможность задать параметры задержки после выполнения нажатия роботом на клавишу;
- пользователь должен иметь возможность остановить робота в любой момент;
- пользователь должен иметь возможность просматривать историю движений робота;
- пользователь должен иметь возможность сохранять координаты положений робота для формирования файлов запуска;
- пользователь должен иметь возможность задавать настройки робота;
- пользователь должен иметь возможность просматривать историю запусков робота;
- пользователь должен иметь возможность просматривать статистику по успешным и неудачным запускам;
- пользователь должен иметь возможность запускать робота из начального положения;
- пользователь должен иметь возможность оставить робота работать во внерабочее время;
- пользователь должен иметь возможность не указывать задержки между нажатиями.
Основные требования в области решений:
- система должна предоставлять возможность запускать робота из пользовательского интерфейса и из командной строки;
- система должна запускать робота по переданным координатам;
- система должна предоставлять возможность формировать файл запуска;
- система должна предусматривать останов по кнопке;
- система должна предоставлять возможность сохранения пользовательских настроек;
- система по нажатию кнопки пользователем должна запомнить координаты и дать возможность пользователю сохранить результат;
- система должна записывать полную историю запусков робота;
- после выполнения серии команд робот должен принимать исходное положение;
- система должна предоставлять пользователю возможность отрабатывать позиции в режиме 24/7;
- система должна производить нажатие клавиш со скоростью, соответствующей скорости профессионального оператора (250-400 символов в минуту при использовании метода десятипальцевой печати, т.е. 25-40 символов в минуту для робота).
Перечень подсистем, их назначение и основные характеристики:
- подсистема робота; назначение подсистемы – выполнение операций в соответствии с отправленными пользователем командами.
- подсистема создания окружения; назначение подсистемы – обеспечение среды, в которой будет работать робот.
- подсистема визуализации; назначение подсистемы – визуализировать работу робота, создать симуляцию реального мира.
- подсистема взаимодействия; назначение подсистемы – создание среды для взаимодействия с роботом.
- подсистема логирования; назначение подсистемы – запись истории взаимодействия с роботом.
- подсистема тестирования; назначение подсистемы – проверка отдельных узлов на работоспособность и соответствие требованиям.
Для реализации аппаратной части планируется использовать плату Arduino, шаговые двигатели и/или сервоприводы. Окружение будет развернуто на стационарном компьютере или микрокомпьютере. Каркас робота-манипулятора предполагается сделать самостоятельно на основе выложенной в свободный доступ CAD-модели (модели, созданной с помощью систем автоматизированного проектирования, таких как SolidWorks, Fusion 360). Если во время поиска подходящей модели станет понятно, что целесообразнее будет купить готовую конструкцию, то будет выбран этот вариант.
Программное обеспечение, которое предполагается создать для робота, будет разделено на 3 части:
- ПО, которое будет управлять всей системой и в котором будут проводиться все сложные вычисления (будет написано на C++ под ROS);
- ПО, которое будет взаимодействовать с ROS и управлять двигателями (скетч под Arduino);
- ПО для пользовательского интерфейса (серверная часть будет написана на Micronaut и клиентская – на Angular).
Главные задачи, которые стоят перед системой:
- управлением движением робота в трех плоскостях (x, y, z);
- останов робота во время выполнения сценария;
- возврат робота в исходную позицию;
- возможность выдержать паузу после нажатия на кнопку (размер паузы для каждого нажатия может быть свой);
- управление