РАЗРАБОТКА МОДЕЛЕЙ И АЛГОРИТМОВ УПРАВЛЕНИЯ ШАГАЮЩЕГО РОБОТА НА ОСНОВЕ МИКРОКОНТРОЛЛЕРА ARDUINO MEGA2560
Аннотация и ключевые слова
Аннотация (русский):
Предоставлено практическое применение Arduino Mega2560 с реализацией системы управления робота с шестью ногами. Проведен анализ предметной области, сделан вывод о важности использования такого подхода к созданию исполнительных механизмов. Рассмотрены аналоги, представленные на рынке роботов разных производителей. Определены основные константы шагающего робота, влияющие на его позиционирование, а также ключевые координаты всех конечностей. Представлена система с различными функциональными блоками. Разработаны алгоритмы работы автоматической программы управления перемещением робота: основной алгоритм функционирования робота, определяющий ключевые моменты по позиционированию. Алгоритм перемещения основных исполнительных механизмов, расписывающий последовательность поступательных движений конечностей с учетом всех заданных параметров. В этом алгоритме рассматриваются и анализируются методы вычисления длины шагов и вычисления амплитуд. Также предложен алгоритм обратной кинематики, используемый для вычисления углов сервоприводов в сегментах конечностей на основе целевых координат кончика ноги. Предложенный алгоритм позволяет получить точные значения углов поворота сервоприводов. Разработанные алгоритмы программно реализованы в виде системы управления гексапода на основе микроконтроллера в среде Arduino IDE с использованием языка C++.

Ключевые слова:
система управления, шагающий робот, сервопривод, алгоритмы походки, алгоритмы кинематики, Arduino Mega2560, гексапод
Текст
Текст (PDF): Читать Скачать

Введение

 

В современных условиях информационных технологий, где автоматизация и роботизация являются важными направлениями, создание алгоритмов перемещения различных объектов является ключевым направлением, а благодаря использованию микроконтроллера Arduino Mega2560 автоматизация процессов становится более доступной и воспроизводимой [1, 2]. Одним из таких механизмов перемещения может оказаться механизм типа шагающий робот, имитирующий перемещение паука.

 

Материалы, модели, эксперименты и методы

 

На первых этапах для разработки системы управления шагающего робота необходимо проанализировать рынок подобных товаров. Первым из похожих решений является робот PhantomX Hexapod MK-III от Trossen Robotics на базе Arduino Mega2560 [3, 4]. Внешний вид робота продемонстрирован на рис. 1.

В данном роботе предусмотрены иерархические уровни управления: высокоуровневые алгоритмы планируют движение, а низкоуровневые реализуют команды.

В качестве второго аналога рассмотрим Hexapod Robot 2DOF PTZ 18DOF на базе Raspberry Pi 4B. Робот продемонстрирован на рис. 2.

 

PhantomX AX Metal Hexapod Mark III Kit(Full Kit With AX-12A Servos)

Изображение выглядит как игрушка, робот

Автоматически созданное описание

Рис. 1. PhantomX Hexapod MK-III от Trossen Robotics

Fig. 1. PhantomX Hexapod MK-III from Trossen Robotics

Рис. 2. Hexapod Robot 2DOF PTZ 18DOF от PLSUP

Fig. 2. Hexapod Robot 2DOF PTZ 18DOF From PLSUP

 

Данный робот имеет 18 степеней свободы для передвижения, в том числе для перемещения по сложным поверхностям [5, 6].

Для написания алгоритмов перемещения сначала необходимо определить основные константы (исполнительные механизмы): длина бедра, колена и голени, а также углы смещения между осями сервоприводов. Для получения этих данных используются разнообразные инструменты. В рамках данной разработки использовался инструмент «Inspect» в программе «Autodesk Fusion», который после выбора объекта демонстрирует параметры или зависимости между несколькими объектами [7, 8].

 После получения постоянных параметров необходимо исследовать параметры корпуса, которые будут являться домашними координатами крайних точек конечностей: координаты конца каждой конечности в координатной плоскости, нулевую точку вращения которой является ось вращения корпусного сервопривода, оси абсцисс и ординат параллельные поперечной и продольной осям корпуса, а также координаты оси вращения каждого сервопривода относительно центра корпуса.

Впоследствии после получения ключевой информации создается система с функциональными блоками:

  1. инициализация начальных значений;
  2. получение и обработка команд пользователя;
  3. вычисление новых координат;
  4. вычисление и применение углов поворота сервоприводов.

На основании собранной информации был предложен общий алгоритм работы программы, который реализует основное управление в стандартной процедуре «void loop()». Данный алгоритм выполняется циклически с небольшим интервалом времени [9, 10]. Алгоритм работы функции «loop()» представлен на рис. 3.

 

Рис. 3. Алгоритм функции «loop()»

Fig. 3. The algorithm of the «loop()» function

В разработанном проекте циклическая функция управления выполняется каждые 20 миллисекунд, что обеспечивает частоту обновления системы 50 раз в секунду. Каждый вызов функции проверяет разницу между интервалами [11]. Также при каждом вызове функции идет проверка подключения к контроллеру, после чего идет проверка нажатия кнопок, которые устанавливают режим ходьбы или действия робота. В самом конце алгоритма идет вычисление новых координат и углов поворота сервоприводов для каждой конечности.

Далее, после получения команды на движение выполняется алгоритм походки, который подразумевает под собой перемещение трех ног вперед [12]. При этом остальные три ноги остаются неподвижными, служат опорой. Алгоритм работы функции перемещения «triple_gait()» представлен на рис. 4.

 

Изображение выглядит как текст, снимок экрана, Шрифт, дизайн

Автоматически созданное описание

Рис. 4. Алгоритм функции «triple_gait()»

Fig. 4. Algorithm of the «triple_gait()» function

 

Первый режим позиционирования ног – движение, при котором нога поднимается по синусоидальной траектории в направлении движения, а затем опускается. Второй режим – опора, при котором нога движется так, чтобы конец конечности остался на прежнем месте. Счётчик этапов увеличивается на один при каждом вызове функции, это необходимо для отслеживания прогресса движения. Значение счетчика определяет продолжительность каждого шага.

В функциях походок используются такие функции, как вычисление длины шага «compute_strides()» и вычисление амплитуд «compute_amplitudes()».

Метод вычисления длины шагов определяет длины основываясь на значении, которое передал контроллер. Далее происходит вычисление тригонометрических функций для вращения по оси Z. Последний этап – установка продолжительности движения от выбранной скорости ходьбы.

Метод вычисления амплитуд рассчитывает расстояние от центра туловища до крайней точки ноги. Затем вычисляется текущее значение смещения по осям X и Y, вызванное наклоном корпуса, так как робот может вращаться вокруг оси Z, что приводит к смещению целевых координат для каждой ноги. Далее следуют вычисления амплитуд движения по осям X и Y и их ограничение с целью предотвращения столкновения конечностей. Заключительным этапом является вычисление амплитуды движения по оси Z. Она вычисляется как произведение коэффициента высоты шага и максимальной длины шага по осям X, Y.

Столь же важным алгоритмом является инверсная кинематика, которая используется для вычисления углов сервоприводов в сегментах конечностей на основе целевых координат кончика ноги [13].

Входными параметрами метода «leg_InverseKinematics» являются номер ноги от 0 до 5 и координаты целевой точки по осям X, Y, Z. Выходными – три значения углов сервоприводов конечности от бедра до голени.

Метод «void InverseKinematicsForLeg(int leg_number, float X, float Y, float Z)» вызывается для каждой конечности отдельно, чтобы рассчитать углы поворота сервоприводов бедра, колена и голени. Алгоритм работы метода продемонстрирован на рис. 5.

 

Изображение выглядит как текст, снимок экрана, Шрифт, дизайн

Автоматически созданное описание

Рис. 5. Алгоритм функции «InverseKinematicsForLeg»

Fig. 5. Algorithm of the «InverseKinematicsForLeg» function

 

Данный алгоритм позволяет получить точные значения углов поворота сервоприводов независимо от того какой режим работы или походки выбран.

Программная реализация алгоритмов выполнена в среде Arduino IDE с использованием языка C++. Основная структура программы включает глобальные массивы для хранения координат конечностей, углов сервоприводов и параметров походки. Ключевые функции системы организованы модульно: функция «triple_gait()» управляет алгоритмами походки, «InverseKinematicsForLeg()» реализует вычисления обратной кинематики, а вспомогательные функции «compute_strides()» и «compute_amplitudes()» обеспечивают расчет параметров движения. Для работы с приводами используется библиотека «Servo.h». Программный код был оптимизирован для выполнения в реальном времени с учетом ограниченных вычислительных ресурсов микроконтроллера «Arduino Mega 2560».

Для физической реализации данных алгоритмов необходимо загрузить программное обеспечение в плату микроконтроллера Arduino, используя инструментарий среды разработки Arduino IDE через последовательный порт.

 

Заключение

 

В ходе работы была предложена и реализована система управления гексапода на основе микроконтроллера Arduino Mega2560. Алгоритмы управления обеспечивают стабильное управление движением робота. Программное обеспечение было успешно загружено и проверено в работе.

Разработанная система может быт использована в качестве базы для дальнейших исследований в области робототехники. Наиболее перспективными направлениями развития являются: интеграция системы компьютерного зрения для автономной навигации, реализация адаптивных алгоритмов походки и внедрение системы обратной связи с датчиками давления для повышения устойчивости. Дополнительно планируется разработка беспроводного управления и создание модульной архитектуры для масштабирования системы на роботов с различной конфигурацией конечностей. Полученные результаты могут найти применение в создании поисково-спасательных роботов, систем мониторинга труднодоступных территорий и образовательных робототехнических комплексов.

Список литературы

1. Ma X. Additive technologies in amber produc-tion: comparative analysis of properties and quality of products // Экономика: вчера, сегодня, завтра. – 2021. – Vol. 11, No. 11-1. – P. 70-77.

2. Аддитивные технологии: техника исполнения и материалы // Управление качеством. – 2017. – № 10. – С. 66-68.

3. Кузьменко А., Филиппов Р., Филиппова Л. The formation of ergonomic thinking when designing com-plex information systems in the conditions of socio-technogenic development of the world // Hybrid Methods of Modeling and Optimization in Complex Systems (HMMOCS-II-2023): Proc. of the II Intern. Workshop (Krasnoyarsk, 28-30 Nov. 2023). – Vol. 59. – Krasno-yarsk: EDP Sciences, 2024. – P. 2001.

4. Ковальчук А.К. Выбор кинематической структуры и исследование динамики древовидного исполнительного механизма робота-краба // Известия высших учебных заведений. Машиностроение. – 2013. – № 7. – С. 73-79.

5. Игнатьев С.В., Беглецов А.А., Тихонов В.Б. Средства автоматизации системы управления техническим диагностированием радиоэлектронной аппаратуры // Программные продукты и системы. – 2013. – № 1. – С. 24.

6. Ильичева В.В., Светличный В.В. Информационная система автоматизации управления процессом экипировки транспортного средства с применением интеллектуальных технологий // Информатизация и связь. – 2024. – № 3. – С. 69-78.

7. Крахмалев О.Н. Математическое моделирование динамики манипуляционных роботов // В мире научных открытий. – 2012. – № 8-1(32). – С. 51-59.

8. Сабанова Б.К., Иванова И.В. Расчет параметров алгоритма движения ног для шестиногого робота-паука // Вестник КГПИ. – 2020. – № 2(58). – С. 126-133.

9. Пономарев А.Н., Казанцева Л.В. Машинное зрение: актуальность и применение // Научно-технический вестник Поволжья. – 2021. – № 4. – С. 100-102.

10. Филиппов Р.А., Филиппова Л.Б., Леонов Ю.А. Применение микроконтроллера arduino mega 2560 для автоматизации работы микроскопа LEICA DM IRM // Автоматизация и моделирование в проектировании и управлении: сб. науч. ст. Всерос. конф. (Брянск, 19 мая 2021 г.). – Брянск: БГТУ, 2021. – С. 210-213.

11. Разработка математической модели информационной системы для инвентаризации и мониторинга программного и аппаратного обеспечения на основе методов нечеткой логики / Р.А. Филиппов, Л.Б. Филиппова, А.В. Аверченков [и др.] // Качество. Инновации. Образование. – 2018. – № 7(158). – С. 105-112.

12. Development of an information and analytical system for modeling the demographic situation in the Russian Federation / D.R. Kalugin, Yu.A. Leonov, R.A. Filippov, L. B. Filippova // III International Workshop on Modeling, Information Processing and Computing (MIP: Compu-ting-2021), Krasnoyarsk, 28 мая 2021 года. Vol. 2899. – Krasno-yarsk, Russia: CEUR-WS, 2021. – P. 133-140.

13. Программно-аппаратный комплекс автоматизации изготовления корпусных деталей на основе управления статистической настройкой инструмента / В.И. Аверченков, А.В. Аверченков, Р.А. Филиппов [и др.] // Известия Тульского государственного университета. Технические науки. – 2017. – № 8-1. – С. 178-185.

Войти или Создать
* Забыли пароль?