Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Точное EMG-управление роботизированной рукой: интеграция с InMoov и руководство по сборке

Компоненты и материалы

Компонент Количество Примечание
Устройство uECG 3 Регистрация EMG-сигналов (3 канала)
Рука InMoov 1 Открытый 3D-печатный протез
Arduino Nano R3 1 Управление сервоприводами
Драйвер PWM PCA9685 (16 каналов, Adafruit) 1 I2C-управление сервоприводами
Модуль nRF24L01+ 1 Приём данных от uECG по радио

О проекте

Наша команда давно работает с роботизированными руками. Долгое время пытались создать надёжный протез, но для этого проекта используем проверенный открытый проект InMoov. Сборка руки подробно описана на сайте проекта — она сложная, поэтому здесь фокус на системе управления, которая полностью нова. Также рекомендую посмотреть эволюцию этой технологии в следующем проекте: 8-канальный EMG с LED-индикацией.

1. Обработка сигналов

Управление основано на ЭМГ — электрической активности мышц. EMG-сигнал снимается тремя устройствами uECG (хотя они позиционируются как ECG-мониторы, их АЦП позволяет регистрировать любые биосигналы, включая EMG). В специальном режиме uECG передаёт 32-биновый спектр и усреднённое значение «мышечного окна» (средняя спектральная интенсивность 75–440 Гц). Спектрограммы выглядят так: частота по вертикали (0–488 Гц, шаг ~15 Гц), время по горизонтали (~10 сек), интенсивность — цветом (синий — низко, зелёный — средне, жёлтый/красный — высоко).

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

Для разделения («размешивания») сигналов использована формула:

S0 = V0² / ((V1 × a0 + b0) × (V2 × c0 + d0))

где S0 — оценка для канала 0, V0, V1, V2 — сырые значения каналов, a, b, c, d — коэффициенты, подобранные вручную (a, c: 0.3–2.0; b, d: 15–20; требуют индивидуальной настройки под размещение датчиков). Аналогично считаются S1 и S2. После этого графики становятся чётко разделёнными — каждый жест даёт пик на своём канале, что позволяет легко преобразовать в движения сервоприводов по пороговому принципу.

2. Схема подключения

Схема простая: нужен только nRF24, PCA9685 (или аналогичный I2C PWM-контроллер) и мощный 5В источник питания (минимум 5А для одновременного движения всех сервоприводов).

Список соединений:

3. Размещение EMG-датчиков

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

Может показаться контрпрятным, но сигнал большого пальца лучше виден на противоположной стороне предплечья. Все датчики размещены ближе к локтю (мышцы имеют основную массу там, но точное местоположение индивидуально — нужно проверять).

4. Программный код

Перед запуском нужно узнать уникальные ID своих uECG-устройств (раскомментировать строку 101 и включать устройства по одному) и записать их в массив unit_ids (строка 37).

Код (emg_hand_control2.ino) включает:

Важно: uECG должно быть переключено в «raw data mode» (длинное нажатие кнопки), по умолчанию оно работает в BLE-режиме, несовместимом с nRF24.

5. Результаты

После ~2 часов экспериментов достигнута довольно надёжная работа (видео показывает типичный случай). Система распознаёт только сжатые/раскрытые пальцы и не все 5 по отдельности — только 3 мышечные группы: большой палец, указательный+средний вместе, безымянный+мизинец вместе. «ИИ» занимает 3 строки кода и использует одно значение на канал. Анализ 32-биновых спектрограмм на ПК/смартфоне даст гораздо больше возможностей. Использовано только 3 канала EMG — с большим числом каналов можно распознавать сложные паттерны. Проект даёт отправную точку для заинтересованных — управление рукой далеко не единственное применение.

Исходный код

Полный скетч emg_hand_control2.ino в разделе Code.

Схемы

Файл схемы для Fritzing: nrf24_hand_control_5jcEeCP8a3.fzz

Производственный процесс

  1. Противозачаточные таблетки: история, польза, риски и производство
  2. Создание беспроводного робототехнического автомобиля с ИК-сенсорами
  3. Trinamic и Maxim Integrated выпускают референс-дизайн для ускорения end-of-arm tooling в промышленной робототехнике
  4. Система управления температурой на базе LM35 с микроконтроллером AT89S52
  5. ИИ-управляемые фотонные чипы формируют широкополосный свет для умной оптики
  6. Оптимизация роботизированной автоматизации с передовым ПО для симуляции роботов 3DG
  7. Автоматическое управление модельной железной дорогой на Arduino — DIY-контроллер поезда
  8. Универсальный Android-пульт на Arduino, 1Sheeld и ИК-управлении
  9. Удаленное IoT-управление самодельной манипулятором
  10. Студенты строят передовиую роботизированную систему сортировки мусора на базе B&R