Основные термины
Дактиль (русская дактильная азбука) — вспомогательная система русского жестового языка, в которой каждому жесту одной руки соответствует буква русского языка
Dactyl (the russian manual alphabet) is used for fingerspelling in Russian sign language.
Антропоморфный – человекообразный, уподобленный человеку
Anthropomorphic – described or thought of as being like human beings in appearance, behavior, etc.
Человеко-компьютерное взаимодействие — полидисциплинарное научное направление, существующее и развивающееся в целях совершенствования методов разработки, оценки и внедрения интерактивных компьютерных систем, предназначенных для использования человеком, а также в целях исследования различных аспектов этого использования
Human-computer interaction (HCI) researches the design and use of computer technology, focusing on the interfaces between people (users) and computers.
Жестомимический интерфейс – интерфейс взаимодействия посредствам жестов и мимики.
Interface with computers using gestures of the human body, typically hand movements, and facial expression
Введение
Робототехника играет важную роль в новой промышленной революции. Роботизация производства и внедрение аддитивных технологий набирают большую популярность. Данные процессы дополняют друг друга, так как внедрение 3D-печати существенно снижает затраты и объем работ. Робототехника становится двигателем любой индустрии, поскольку она способствует как НИОКР, так и производству изделий точной механики, электротехники, электроники, оптики, композитных материалов и т. д. [1]
Развитие робототехники уже сегодня позволяет решать различные социальные проблемы, такие как уход за престарелыми людьми, снижение человеческих потерь в военных конфликтах и на транспорте. Также большое распространение робототехника получила в медицине. Существуют разные категории роботов, используемые в медицине: роботы-ассистенты, различные хирургические системы, роботизированные протезы, но самыми распространенными являются роботы-манекены, имитирующие человека. Такие роботы, как правило, отличаются особенностями конструкций и функциональными характеристиками. Тем самым, создание антропоморфных моделей роботов является актуальной и важной задачей.
Так как магистерская программа направлена на создание жестомимического интерфейса, то была поставлена задача создания антропоморфной модели руки для исполнения дактильных жестов. Исследования и разработки работы могут быть применены в инновационных системах коммуникативного взаимодействия в человекомашинной среде с использованием жестов, таких, как: системы сурдоперевода, системы обучения антропоморфных роботов, жестомимический интерфейс в компьютерных играх, жестомимический интерфейс для реализации систем управления, Web-сервис с возможностью документирования разговора и речи глухих. [2]
Разработка робототехнической модели левой руки антропоморфного аватара
Для создания робототехнической модели руки был выбран прототип для доработки: проект «InMoov». InMoov является роботом-гуманоидом с открытым исходным кодом, построенный из 3D печатных пластиковых компонентов тела, и контролируется микроконтроллером Arduino. Проект очень популярен по всему миру и дорабатывается с большим темпом.
1. Печать деталей
Печать деталей производилась на 3d принтере Picaso 3D Designer. Picaso 3D Designer – персональный 3D принтер нового поколения, созданный компанией PICASO 3D, первым производителем устройств для 3D печати в России. Для сокращения количества деталей и экономии пластика, несколько деталей необходимо было объединять в единые модели. Например, количество деталей для кисти сократилось с 54 до 40. В качестве материала использовался АBS-пластик. Модели из ABS сохраняют прочность при нагреве до 90 °С. Данный вид пластика применяется при создании концептуальных и презентационные моделей.
2. Подготовка деталей к сборке
Перед началом сборки необходимо было очистить детали наждаком, ножом и кусачками. Острые края, отверстия для вставки других деталей стачивались наждаком; издержки печати, лишний пластик удалялся кусачками и тоже приводился к гладкому виду. Необходимые дырки для протягивания лески и соединения различных деталей высверливались самостоятельно. Для этого использовались сверла диаметрами 2мм и 3мм, в зависимости от размеров самой детали. Также во всех деталях ладони были проделаны условные верхние и нижнее отверстия для лески.
3. Сборка и протягивание лески
Сборка макета началась со сборки пальцев руки. Происходила сборка уже зачищенных и подготовленных деталей. Там, где было необходимо, детали подвергались дополнительной обработке: дополнительно зачищались, смазывались места стыковки подвижных частей, и т. п. Перед присоединением пальцев к самой ладони, необходимо провести леску. Рекомендуемый диаметр лески не должен быть меньше 0.17мм. Протягивание лески начинается с кончиков пальцев. Леска проходит через палец по его верхним отверстиям, далее через верхнюю часть ладони до запястья, там через специальные отверстия и до предплечья, где будут находится сервоприводы. Далее леска меняет вектор движения, её необходимо провести в обратную сторону через нижние отверстия до кончика пальца, где их закрепляют. Данный шаги повторяются для всех пальцев. После того, как леска проведена, начинается крепление отдельных частей модели. Крепление в основном проводится с помощью клея для пластика и специальных заклёпок или болтов. Также после крепления и сборки полной модели необходимо очистить остатки клея и прочие неровности.
Рис. 1. Процесс сборки робототехнической модели
4. Тестирование физических свойств руки
Происходила проверка устойчивости лески. Поочередно, для каждого пальца, натягивалась леска, фиксировались пальцы в важных для дальнейшей работы положениях (палец согнутый, палец полностью прямой, палец наполовину согнут). Там, где было необходимо, для уменьшения трения лески, пластик подвергался дополнительной обработке: расширялись отверстия или места, где проходила леска.
5. Подготовка аппаратной части
Для проекта потребовались: контроллер Arduino Uno R3, макетная плата, провода-джамперы (папа-папа), провода-джамперы (папа-мама), сервоприводы FT5519M(5 штук), 16-канальный 12-битный ШИМ Серво контроллер PCA9685, батарейный отсек(5 AA), аккумуляторы NiMH AA(5шт).
Сначала было осуществлено ознакомление с драйвером сервоприводов PCA9685. Далее с помощью Arduino и PCA9685 каждый сервопривод подключался к драйверу и «вручную» калибровался: путем экспериментов подбирался корректный диапазон длин импульсов для крайних положений вала. После этого была собрана схема с одновременным подключением нескольких сервоприводов и протестирована ее работоспособность.
6. Сборка аппаратной части
На каждый сервопривод крепились пластиковые качельки, в крайние положения качелек вкручивались по одному винту. На винты крепилась и фиксировалась леска так, чтобы при вращении сервопривода в одну сторону (по часовой стрелке), леска натягивалась в одну сторону, при вращении в другую сторону (против часовой стрелки), леска натягивалась соответственно – в другую. Далее сервоприводы крепились в заранее обозначенных местах, в предплечье руки, при этом леска натягивалась таким образом, чтобы крайние положения вала сервопривода соответствовали крайним положениям пальца (согнут или прямой). Далее сервоприводы подключались по той же схеме, как и в предыдущем пункте. Сервоприводы подключались к драйверу PCA9685, драйвер в свою очередь подключался к контроллеру Arduino с помощью четырех проводов-джамперов. Также на драйвер подавалось дополнительное питание с батарейного отсека с 5 аккумуляторами NiMH типа AA.
Рис. 2. Схема подключений
7. Реализация программной части
Была разработана программа (скетч) в среде Arduino IDE для управления положениями пяти сервоприводов (пять пальцев руки). Программа состоит из двух основных функций: setup() и loop(). В функции setup() задается скорость передачи данных по последовательному порту в бит/с (в нашем случае 9600 бит/с) и частота PWM сигнала для управления драйвером сервоприводов. Функция loop() выполняется непрерывно(циклично). Данная функция получает команды от пользователя, поступающие с последовательного порта, и, в зависимости от полученной команды, выполняет определенный жест. Для этого по каждому каналу передается ШИМ сигнал для изменения положения вала сервопривода и задается время исполнения. Номер канала драйвера обозначает номер подключенного сервопривода. [3]
В демонстрационной версии программы представлено несколько дактильных жестов.
Язык программирования устройств Ардуино является стандартным C++ (используется компилятор AVR-GCC) со следующими особенностями:
-
Программы сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.
-
Обязательную в C++ функцию main() препроцессор Ардуино создает сам, вставляя туда необходимые «черновые» действия.
-
Программист должен написать две обязательные для Ардуино функции setup() и loop(). Первая вызывается однократно при старте, вторая выполняется в цикле.
-
В текст программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Ардуино в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать.
-
Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.
-
Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск возникновения проблем.
Заключение
Задача создания систем человеко-компьютерного взаимодействия имеет огромную популярность на сегодняшний день. В результате выполнения проекта по магистерской программе был создан действующий макет роботизированной руки. Данный макет позволил сформировать основное направление дальнейших разработок, состоящее в создании комплекса программного обеспечения поддержки жестового коммуникативного взаимодействия, а также требования к программам управления мелкой моторикой роботизированной руки в процессе исполнения дактильных жестов.
Рис. 3. Действующий макет роботизированной руки
Библиографический список
- К чему приведет развитие робототехники в ближайшие 10 лет. Сайт Московского государственного технического университета имени Н. Э. Баумана: http://www.mstu.edu.ru/press/news/21-11-2014/robots.shtml
- Современная робототехника в России: реалии и перспективы. Политематический сетевой электронный научный журнал Кубанского государственного аграрного университета: http://cyberleninka.ru/journal/n/politematicheskiy-setevoy-elektronnyy-nauchnyy-zhurnal-kubanskogo-gosudarstvennogo-agrarnogo-universiteta
- Материалы по программированию Arduino. http://arduino.ru