Содержание
- Введение
- 1. Актуальность темы
- 2. Цель и задачи исследования
- 3. Обзор исследований и разработок
- 4. Разработка перчатки
- 4.1. Выбор датчиков
- 4.2. Разработка конструкции для потенциометра
- 4.3. Сравнение результатов показаний потенциометра и датчика MPU6050
- 4.4. Микропроцессорная часть и среда разработки программы управления
- 4.5. Визуализация движений руки
- Выводы
- Список источников
Введение
В современном мире технологии развиваются огромными масштабами. Такое стремительное развитие открывает новые возможности для человечества. Бурно развивается и приобретает новое значение для общества сфера технологий, связанная с виртуальной реальностью. Виртуальная реальность является технически созданным миром, передаваемым человеку при помощи ощущений, таких как зрение, осязание, слух. Все это состоит из двух частей: программной и аппаратной. В последние года в аппаратной части наметился прорыв, то есть появились новые устройства, такие как VR‑шлем, перчатки и целые костюмы захвата движений. В данный момент большое распространение такие устройства имеют в игровой сфере. Но возможно применение и в более социально важных сферах. Хорошим примером является обучение молодых специалистов в медицинской сфере, особенно в хирургии. Использование перчаток захвата движений может сильно помочь в обучении интернов. Например, опытный хирург провел операцию в таких перчатках и все его движения рук записались. После этого, молодой специалист может попробовать повторить операцию и при допущении каких‑либо ошибок ему будет просигнализировано об этом. Естественно, ко всему этому необходимо специальное программное обеспечение. Также перчатки захвата движений могут применятся в сфере, связанной с инвалидами. Например, человек не может сам перемещаться по дому и для облегчения его жизни ему выдают перчатки и специальное роботизированное устройство, при помощи которого человек сможет выполнять определённые дела по дому (что‑то переместить, выкопать, убрать). А сами перчатки будут служить органом управления этим устройством, то есть при помощи различных жестов человек будет им управлять.
1. Актуальность темы
Актуальность темы заключается в том, что перчатки захвата движений являются очень полезным и прогрессивным изобретением. И не мало важной является задача изучить подходы к созданию данного устройства, а также к работе с датчиками, применяющимися в перчатке, обработке сигналов с датчиков и визуализации полученных данных и выборе микроконтроллера для управления всем устройством.
2. Цель и задачи исследования
Целью исследования является создание образца перчатки захвата движений с возможностью зарегистрировать и визуализировать полученные данные.
Основные задачи исследования:
- Анализ существующих типов конструкций перчаток.
- Анализ и выбор микроконтроллера для разрабатываемого устройства.
- Выбор датчиков для перчатки.
- Анализ и выбор фильтров для полученных данных.
- Создание 3D модели для визуализации.
3. Обзор исследований и разработок
CaptoGlove [1] является перчаткой (см.рис.1), которая имеет возможность точно распознавать широкий спектр движений и рук и пальцев. Все эти движения преобразуются в команды управления и могут передаваться на непосредственно подключенные устройства, такие как ПК, VR гарнитуры, умный дом, а также телефоны и планшеты на операционных системах iOS/Android. Данная перчатка имеет встроенный Bluetooth‑модуль, трехосевой гироскоп, акселерометр и магнитометр, барометр, 5 датчиков, способных воспринимать движение пальцев по оси изгиба, 1 датчик давления для кончика большого пальца, способный воспринимать давление от 100 г до 10 кг, а также предустановленный набор передовых алгоритмов для различных условий эксплуатации.
Hi5 VR Glove [2] – это перчатка (см.рис.2) в состав которой входят 9‑DOF IMU датчики для 5 пальцев и тыльной стороны ладони. Также в перчатке имеется вибрационная обратная связь. Перчатка является автономной и питается от аккумулятора, которого хватает на 7 часов использования. Передача данных осуществляется при помощи радио модуля, при этом задержка не превышает 5 мс. Дальность передачи составляет 5 м. В перчатке предусмотрено автоматическое переключение каналов, чтобы избежать радиочастотных помех.
AcceleGlove [3] является перчаткой (см.рис.3) произведенной фирмой AnthroTronix. Для распознавания движений в данной перчатке используются акселерометры. Акселерометры находятся чуть ниже каждого кончика пальца и на тыльной стороне руки. Когда рука пользователя движется, акселерометры могут обнаружить трехмерную ориентацию пальцев и ладони по отношению к земной гравитации. Измеренная с точностью до нескольких градусов, эта информация позволяет программам различать даже очень незначительные изменения положения рук. Акселерометры подают информацию о местоположении через легкие провода к печатной плате, которая находится на тыльной стороне руки. Когда пользователь делает жест, например, сжимает пальцы вместе или держит открытую ладонь наружу, плата передает данные на компьютер через USB‑кабель, подключенный на верхней части запястья перчатки. Перчатка также получает питание через шнур, избегая потребности в громоздком блоке батарей. AnthroTronix создала программное обеспечение для разработки, которое позволяет пользователям адаптировать перчатку к новым целям. Пользователь может создавать новые функции для перчатки, записывая жест и присваивая ему значение; программа может хранить сотни жестов. Чувствительность, с которой компьютер распознает жесты, может быть различной, поэтому он может распознавать неаккуратные, большие жесты для приложения, такого как детская образовательная программа, или очень точные жесты для робототехники. Система также может принимать данные от двух перчаток, надетых одновременно. Все раннее описаные перчатки имеет высокую стоимость. Поэтому стоит остро вопрос в создании более доступной версии.
Перчатки данного типа разрабатываются не только коммерческими компаниями, но и студентами и преподавателями технических вузов.
Перчатка [4] (см.рис.4), разработанная в Таллиннском техническом университете, обладает 23 степенями свободы. Основной целью проекта было разработать перчатку только с инерционными датчиками. В перчатке использовалось 16 датчиков MPU6050, по 3 на каждом пальце и ещё 1 на тыльной стороне ладони. В качестве микроконтроллера использовался STM32F413ZH. Передача данных осуществлялась по протоколу I2C с частотой 100 кГц. Так как все модули MPU6050 обладают одним и тем же адресом используется мультиплексор 74HC4067. При помощи данного мультиплексора имеется возможность распознавать датчики. Затем микроконтроллер передает данные на ПК при помощи протокола UART. Для обработки данных с датчиков использовался комплиментарный фильтр, который позволял нивелировать отдельные недостатки акселерометра и гироскопа. Также в данном проекте была создана 3D модель руки в программном обеспечении SolidWorks, и перенесена в Matlab Simulink для моделирования в реальном времени.
4. Разработка перчатки
4.1. Выбор датчиков
Основой для будущей информационной перчатки может служить любая тканевая перчатка, в меру своей доступности и низкой стоимости. Более важным является выбор датчика при помощи которого будут регистрироваться движения руки и пальцев. В качестве датчика могут использоваться следующие варианты:
- Тензорезистор;
- Инерционный измерительный блок (IMU);
- Датчик, работающий на лучевом эффекте;
- Потенциометр.
Тензорезистор – это резистор, сопротивление которого изменяется в зависимости от величины его деформации. Данное устройство можно использовать в качестве датчика изгиба, то есть его можно применять для отслеживания сгибания пальцев. Также тензорезистор обладает высокой точностью измерений и простой конструкцией. Но в меру его высокой стоимости он не применялся в проекте.
Датчик, работающий на лучевом эффекте, работает следующем образом: имеется трубка в которой на одном конце помещается светодиод, а на другом фоторезистор. Когда трубка имеет прямую форму сопротивление имеет минимальное значение. При сгибе трубки поток света уменьшается, вследствие чего возрастает сопротивление. Этот датчик также не использовался в проекте в виду то, что его необходимо собирать самостоятельно, а имеющиеся трубки являются тугими и при сгибе пальцев приносят дискомфорт.
Инерциальный измерительный блок представляет собой электронное устройство, которое измеряет и передает удельную силу тела, угловую скорость, а иногда и ориентацию тела в пространстве, используя комбинацию акселерометров, гироскопов и магнитометров. В проекте использовались модули MPU6050 [5] и MPU9250 [6]. MPU6050 является микро электромеханической системой (MEMS) в состав которой входит трехосевой акселерометр и трехосевой гироскоп. При помощи данных устройств определяется линейное ускорение и угловая скорость, что в свою очередь позволяет определить положение в пространстве. Также в модуле установлен цифровой процессор движения (DMP), который позволяет обрабатывать выходные данные акселерометра и гироскопа, тем самым уменьшить работу, выполняемую микроконтроллером, к которому подключен датчик. В общем, работа таких датчиков исходя из конструкции состоит в следующем: в неподвижном состоянии груз, который находится на подвесах остаётся в равновесии, и ёмкость на обкладках конденсаторов неизменна. Отклонение по какой‑либо оси ведёт к смещению подвешенного груза в сторону, что повлечёт за собой изменение расстояния между обкладками конденсатора, а следовательно, и ёмкости. Дальше полученные данные усиливаются, проходят через ряд фильтров и поступают на вход аналогово‑цифрового преобразователя (АЦП), который производит оцифровку данных, полученных из конденсаторов. После этого данные готовы к отправке по одному из интерфейсов передачи для дальнейшей обработки. Модуль может передавать данные при помощи протокола I2C. Модуль MPU9250 устроен таким же образом, как и MPU6050 за исключением того, что в первом установлен также трехосевой магнитометр. Предусматривалось два варианта размещения датчиков:
- 6 датчиков (по одному на каждом пальце и один на тыльной стороне ладони);
- 16 датчиков (на каждом пальце по 3 датчика, то есть на каждой фаланге, а также один на тыльной стороне ладони).
В первом варианте датчик располагался бы на кончике пальца и приходилось бы производить дополнительные расчеты для отображения движения всего пальца. Во втором случае для каждой степени свободы имелся бы свой датчик.
Также в проекте нашел применение и потенциометр. Но для его использования потребовалась разработка дополнительной конструкции.
4.2. Разработка конструкции для потенциометра
Конструкция необходима для того (см.рис.5), чтобы можно было бы оценить на какой угол сместилась одна фаланга пальца относительно другой. Смещение будет оцениваться перемещением ручки потенциометра. Конструкция была разработана при помощи программного обеспечения Fusion 360 [7] и распечатана на 3D принтере. Конструкция была распечатана из ABS+ пластика, при печати использовалось программное обеспечение Repetier Host [8]. Конструкция состоит из нескольких частей: крепление на смещающуюся фалангу пальца, 2 промежуточных звена и звено крепления на статичную фалангу. Единственный существенный недостаток заключается в том, что для того чтобы оценить движения всех пальцев потребуется довольно громоздкая конструкция.
4.3. Сравнение результатов показаний потенциометра и датчика MPU6050
Также было проведено исследование при помощи которого оценивалась точность показаний модуля MPU6050 и потенциометра. Потенциометр и датчик крепились к валу, серводвигателя, который изменял угол от 0 да 90 градусов. Для фильтрации показаний датчика использовался комплиментарный фильтр. Было снято три графика для оси X, Y, Z (см.рис. 6–8). На основании графиков был сделан вывод, что показания потенциометра точнее, и необходимо применение других фильтров для датчика, например: Маджвика, Махони или Калмана, а при применении оси Z необходимо и вовсе применение модуля MPU 9250.
4.4. Микропроцессорная часть и среда разработки программы управления
В качестве микроконтроллера, который обрабатывает и передает данные на ПК используется STM32F407VE [9]. Выбор данного микроконтроллера обусловлен следующими факторами: данный микроконтроллер имеет большую тактовую частоту, то есть скорость роботы, имеет дополнительный процессор для решения математических операций, что необходимо в данном проекте, также имеет большое количество пинов и имеет возможность программироваться при помощи библиотеки Waijung в пакете Matlab. Waijung библиотека, является Simulink библиотекой, которая может быть использована для легкой и автоматической генерации C кода из имитационных моделей MATLAB/Simulink для многих видов микроконтроллеров.
В настоящее время Waijung [10] был разработан специально для поддержки семейства STM32F4 микроконтроллеров (STM32F4 Target), которые являются Hi‑Performance & DSP MCU от STMicroelectronics.
Waijung Blockset поддерживает 32‑битные и 64‑битные операционные системы.
Библиотека Waijung обладает большим функционалом:
- Робота с цифровыми входами/выходами (позволяет работать с различными датчиками, управлять светодиодами);
- Робота с аналоговыми сигналами (позволяет регистрировать и передавать значения напряжения или тока);
- Работа с таймерами (позволяет при помощи ШИМ управлять двигателями, а также снимать значения с энкодера);
- Работа с интерфейсом UART (позволяет налаживать связь между микроконтроллером и ПК в режиме реального времени);
- Работа с интерфейсами I2C и SPI (позволяет работать с различными датчиками, например MPU6050 и MPU9250);
- Работа с SD картами (позволяет записывать данные на SD карту).
Ниже приведен пример программы (см.рис.9) с комплиментарным фильтром для датчика MPU6050 созданный при помощи библиотеки Waijung.
4.5. Визуализация движений руки
В пакете Matlab в приложении Simulink при помощи библиотеки Simscape Multibody разрабатывается и будущая 3D модель руки. Которая будет в реальном времени изменять свое положение в соответствии с перчаткой. Модель (см.рис.10) состоит из блоков Solid, Rigid Transform, Revolute Joint, Mechanism Configuration, World Frame. Блоки Mechanism Configuration и World Frame необходимы для работоспособности системы. В блоках Solid содержатся 3D модели: кости руки. Блок Rigid Transform служит для преобразования системы координат. В модели он был необходим для совмещения фаланг пальцев. Блок Revolute Joint необходим для того, чтобы задать вращение одной фаланги пальца относительно другой. Сигнал на вращение поступает с микроконтроллера, а он в свою очередь получает их с датчиков, находящихся на перчатке. Также с помощью этого блока можно вывести отработанное перемещение на графики. Ниже приведен пример, иллюстрирующий движение указательного пальца (см.рис.11).
Выводы
Необходимо провести анализ качества фильтрации выходных данных датчика при помощи фильтра Маджвика, Махони, Калмана. А также провести исследование относительно качества обработки данных цифровым процессором движения (DMP).
Список источников
- CaptoGlove [Электронный ресурс]. – Режим доступа: https://www.captoglove.com/.
- Hi5 VR Glove [Электронный ресурс]. – Режим доступа: https://hi5vrglove.com/.
- Ручной интерфейс: Перчатки AcceleGlove [Электронный ресурс]. – Режим доступа: https://www.popmech.ru/gadgets/9285-ruchnoy-interfeys-perchatki-acceleglove/.
- Motion tracking glove for augmented reality and virtual reality [Электронный ресурс]. – Режим доступа: https://www.degruyter.com/view/j/pjbr.2019.10.issue-1/pjbr-2019-0012/pjbr-2019-0012.xml.
- MPU6050 [Электронный ресурс]. – Режим доступа: https://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/.
- MPU9250 [Электронный ресурс]. – Режим доступа: https://www.invensense.com/products/motion-tracking/9-axis/mpu-9250/.
- Fusion 360 [Электронный ресурс]. – Режим доступа: https://www.autodesk.com/products/fusion-360/students-teachers-educators.
- Repetier Host [Электронный ресурс]. – Режим доступа: https://www.repetier.com/download-now/.
- STM32F407VE [Электронный ресурс]. – Режим доступа: https://www.st.com/en/microcontrollers-microprocessors/stm32f407ve.html.
- Waijung [Электронный ресурс]. – Режим доступа: http://waijung.aimagin.com/.