Содержание

Введение

В данной работе представлен опыт разработки робо–руки на базе платы Arduino Deumilanove. Данное устройство было разработано с целью получения опыта в создании роботов–манипуляторов. Главной функцией робо–руки была имитация движения, которое выполняет оператор. Также в данной работе представлен опыт анализа и разработки локтевого сустава антропоморфного робота, а также управление суставом с помощью электромиографического датчика и датчика изгиба.

.

1. Робо–;рука. Общие положения

1.1 Назначение робо–;руки

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

 Рисунок 1 – Робо–рука имитирующая движение человека

Рисунок 1 – Робо–рука имитирующая движение человека

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

Главным недостатком такого устройства является сложность реализации и изготовления конструкции устройства, так как для создания робо–руки нужно иметь навыки программирования, уметь работать в 3–D редакторах, для создания 3–D модели, которую впоследствии, нужно напечатать или собрать. Данная модель создавалась в редакторе КОМПАС–3–D и печаталась на 3–D принтере. Ее конструкция не совсем прочна и малофункциональна. Для этого устройства выдвигалось всего пара основных требований – получить опыт в создании антропоморфных роботов, научиться управлять такими устроствами и, в частности, реализовать имитацию движения человека, т.е. оператора.

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

1.2 Недостатки робо–руки.

Главным недостатком такого устройства является сложность реализации и изготовления конструкции устройства, так как для создания робо–руки нужно иметь навыки программирования, уметь работать в 3–D редакторах, для создания 3–D модели, которую впоследствии, нужно напечатать или собрать. Данная модель создавалась в редакторе КОМПАС–3–D и печаталась на 3–D принтере. Ее конструкция не совсем прочна и малофункциональна. Для этого устройства выдвигалось всего пара основных требований – получить опыт в создании антропоморфных роботов, научиться управлять такими устройствами и, в частности, реализовать имитацию движения человека, т.е. оператора.

 Рисунок 2 – Робо–рука имитирующая движение человека

Рисунок 2 – Робо–рука имитирующая движение человека

Блок – схема работы программы.

Для того, чтобы понять, как работает программа управления робо–рукой составим блок – схему работы программы для большей наглядности, которая представлена на рисунке 3

 Рисунок 3 – Блок схема работы программы

Рисунок 3 – Блок схема работы программы

Фильтр.

При программировании робо–руки была выявлена одна проблема, которая связана с датчиками изгиба. Эти датчики оказались очень чувствительными, что в итоге вызвало дребезжание на концах пальцев. Для решения этой проблемы было найдено простое решение – программно реализовали фильтр, с помощью которого мы смогли избавиться от колебаний и дребезжания на конечностях пальцев. Реализовать фильтр оказалось не так уж и сложно. Переменные F1, F2, F3, F4 – значения сигнала на разных стадиях фильтрации.

float F; – обозначаем переменную;

float F1 = 0; – приравниваем переменную к нулю, для последующей фильтрации;

float F2 = 0; – приравниваем переменную к нулю, для последующей фильтрации;

float F3 = 0; – приравниваем переменную к нулю, для последующей фильтрации;

float F4 = 0; – приравниваем переменную к нулю, для последующей фильтрации;

F1 = analogA2; – приравниваем первую переменную к аналоговому сигналу поступающему с датчиков;

F=(F1+F2+F3+F4)/4; – процесс фильтрации;

F4=F3; – последовательная фильтрация сигнала;

F3=F2; –последовательная фильтрация сигнала;

F2=F1; – последовательная фильтрация сигнала.

Управление сервоприводами.

Сервопривод (следящий привод) – привод с управлением через отрицательную обратную связь, позволяющую точно управлять параметрами движения. Сервоприводом является любой тип механического привода (устройства, рабочего органа), имеющий в составе датчик (положения, скорости, усилия и т. п.) и блок управления приводом (электронную схему или механическую систему тяг), автоматически поддерживающий необходимые параметры на датчике (и, соответственно, на устройстве) согласно заданному внешнему значению (положению ручки управления или численному значению от других систем). В нашем случае используются серводвигатели модели SG90 фирмы Tower Pro(см. рис. 3.5).

 Рисунок 4 – Используемый в данном проекте сервопривод

Рисунок 4 – Используемый в данном проекте сервопривод

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

Servo myservo8; – обозначаем определенным именем серводвигатель в программе;

myservo8.attach(8); – указываем пин, к которому подключен управляющий провод сервопривода;

delay(k); – задаем задержку длительностью k; //большой

Z1=analogRead(A0)*2; – задаем значение начальному сигналу, приходящему с датчика;

Z=(Z1+Z2+Z3+Z4)/4; – фильтруем сигнал, который в последствии пойдет на сервопривод;

Z3=Z2; – приравниваем текущее значение к предыдущему для последующей фильтрации;

Z2=Z1; – приравниваем текущее значение к предыдущему для последующей фильтрации;

myservo8.write(map(Z, 0, 1023, 180, 10)); – устанавливаем угол поворота серводвигателя после фильтрации.

Описание алгоритма.

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

float analogA2 = analogRead(A2)*2; – эта строка программы, которая отвечает за считывание величины напряжения с указанного аналогового выхода.

sensorValue = analogRead(analogInPin)*3 ; –сигнал с датчика;

Следующим шагом идет фильтрация сигнала и отфильтрованный сигнал подается на сервопривод. Процесс фильтрации и передачи сигнала описан выше.

Отладка программы.

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

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

D1 = analogRead(A1)*1.9 – коэффициент 1,9 – масштабирует сигнал. Этот коэффициент разный для каждого пальца, так как изготовленные датчики не совсем точные

Рука антропоморфного робота.

В новой работе происходит создание руки антропоморфного работа. В отличии от прошлого устройства, данное будет иметь не только кистевой сустав, но и локтевой и предплечье. На данный момент основной задачей является изучение строения руки человека и создание ее аналога с помощью современных технологий. Строение руки человека довольно сложное, что усложняет создание ее аналога. Разработка такого устройства является довольно значим вкладом как в науку, так и в жизнь человека. Большая часть протезов изготавливаются за рубежом, что повышает их стоимость, которая и так довольно велика. На данный момент существует несколько видов протезов руки, а именно: косметические и функциональные. Основной функцией косметических протезов является воссоздание внешнего вида человеческой руки. В то же время функциональный протез не имеет такого же красивого внешнего вида как косметический, но он обеспечивает несколько основных функций, таких как хват. Функциональные протезы также делятся на рабочие, тяговые и миоэлектрические. Самая высокая стоимость у миоэлектрических (бионических), так как они являются наиболее современными. Но не все антропоморфные роботы используются в качестве протезов. Они получили большое применение в областях, где необходимо чтобы управление каким–то технологическим процессом выполнялось оператором дистанционно, например, в агрессивных средах, космосе или просто в труднодоступных для человека местах.

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

Электромиографический датчик.

Электромиографический датчик– это датчик, который снимает электромиограмму с мышц оператора. Чаще всего информация снимается с помощью трех электродов, которые располагаются на руке оператора. Кроме трех электродов в состав датчика входит специальный драйвер, который распознает получаемый сигнал, обрабатывает его и передает на программную плату.

 Рисунок 5 – Электромиографический датчик.

Рисунок 5 – Электромиографический датчик.

Но эту полученную с датчика информацию требуется повторно обработать и передать на привод, для осуществления какого–то действия, движения. Процесс снятия информации с помощью этого датчика довольно сложный. Электроды нужно установить таким образом, чтобы один из них находился на средине измеряемой мышцы, второй – на ее конце и третий – на участке руки, на котором нет мышцы, т.е. на кости локтевого сустава. Информация, снятая с помощью этого датчика также может быть неточной, поэтому требуется применять кучу действий для обработки сигнала, такие как отсекания шумов. Требуется обрабатывать как ложный, так и полезный сигнал и уметь их отличать. Данный датчик снимает информацию не только о локтевом и плечевом суставе, но и кисти. Каждое движение – это разные импульсы. При настройке данного датчика требуется научиться отличать сигналы, которые приходят на плату. Пример подключения датчика к плате и самой руке оператора можно увидеть на рисунке ниже(рис.). На появление шумов и неточностей при снятии сигнала с помощью этого датчика так же влияет некоторое количество факторов, которые тоже нужно учитывать, а именно: при установке датчиков на руку оператора требуется прочистить спиртом или каким–то другим схожим по своим химическим свойствам веществом как участки наложения на кожу электродов, так и сами электроды в точке приложения. Если пренебречь этим, то снимаемых сигнал может как появиться с большим количеством шумов, так и не появиться вообще.

 Рисунок 6 – Подключение электоромиографического датчика.

Рисунок 6 – Подключение электоромиографического датчика.

Программируемая плата.

Для обработки этой информации и передачи ее на привод будет использоваться плата STM32F4DISCOFERY[10]. Выбор пал на данную плату, так как она имеет более широкий функционал и технические характеристики, если сравнивать с платой, которая использовалась в предыдущем проекте, а именно Arduino Deumilanove.

Данная плата также имеет еще огромное количество характеристик, приведем основные их них:

* 32–битный ARM–микроконтроллер STM32F407VGT6 семейства Cortex–M4 (Частота: до 168 МГц. Память программ (Flash): 1 МБайт. ОЗУ (RAM): 196 Кбайт. Возможность отладки по JTAG или SWD).

* Отладчик и программатор ST–Link/V2 для отладки и прошивки микроконтроллера STM32F407VGT6 размещен на самой плате STM32F4DISCOVERY и есть возможность переключать его на программирование и отладку других плат и контролллеров. через выведеный разъём SWD и перемычки.

* Выводы для подачи внешнего питания +5V и возможность запитки других устройств от +5V и +3V.

* Кнопка сброса (RESET) микроконтроллера STM32F407VGT6.

* Четыре светодиода и одна кнопка, доступные для программирования

Строение руки человека.

Для того чтобы понять, как устроена рука человека рассмотрим строение руки. Для данного устройства интерес вызывает именно предплечье и кисть. Предплечье состоит из локтевой и лучевой кости. Данные, которые снимаются с помощью электромиографического датчика, снимаются с мышцы, расположенной на передней части лучевой кости. Первые 2 электрода располагаются на мышце под названием M. biceps brachii(на русском называется двуглавая мышца плеча)(рисунок 7)

 Рисунок 7 – Мышцы руки человека (вид спереди).

Рисунок 7 – Мышцы руки человека (вид спереди).

В свою очередь третий электрод располагается на тыльной стороне руки между m. anconeus(локтевая мышца) и olecranon(локтевой отросток).Этот участок можно увидеть на рисунке ниже(рисунок 8)[11].

 Рисунок 8 – Мышцы руки человека (вид сбоку).

Рисунок 8 – Мышцы руки человека (вид сбоку).

Используемый двигатель для локтевого сустава.

В данном проекте для осуществления движения локтевого сустава будет использоваться двигатель Namiki 22CL–3501PG. Выбор пал на этот двигатель, так как он имеет довольно невысокую стоимость и может обеспечить хорошие характеристики работы. Namiki 22CL–3501PG – это двигатель постоянного тока со встроенным энкодером.

Даташит данного двигателя:

* Brand: Namiki Coreless Motor (Japan)

* Model: 22CL–3501PG

* Operating Voltage: 12VDC

* Rated power: 15W

* Stall torque: 16.5kg*cm

* Continuous torque: 5kg*cm

* Diameter: 22mm

* Shaft length: 19mm (with 90–degree double–cut)

* Length: 65mm (includes encoder gear box)

* Stall current: 1.8A

* Reduction ratio: 80:1 (metal planetary reduction gear)

* Output speed: 120 RPM@12VDC

* Weight: 140g

Крепеж для двигателя локтевого сустава.

На данный момент спроектирована 3–D модель для крепления данного двигателя и воссоздана с помощью 3–D принтера, расположенного на кафедре. Для печати используется обычный ABS пластик.

Рисунок 9 – Спроектированная часть крепления двигателя.

Рисунок 9 – Спроектированная часть крепления двигателя.

Данная конструкция позволяет осуществлять поворот локтевого сустава на 180 градусов, что является довольно важным аспектом в управлении.

Рисунок 10 – Воссозданная часть крепления двигателя локтевого сустава.

Рисунок 10 – Воссозданная часть крепления двигателя локтевого сустава.

Аналогичный способ управления.

Управление локтевым суставом также возможно с помощью датчика изгиба (Flex sensor). Принцип работы датчика довольно прост. Он основан на фоторезисторе и сверхъярком светодиоде, которые находятся на разных концах силиконовой трубки. Свет поступает на фоторезистор по этой трубке и в зависимости от потока света, приходящего на фоторезистор, он меняет свое сопротивление на выходе. Сигнал, поступающий с датчиков, приходит на программную плату, обрабатывается и подается на сервопривод, которые в свою очередь начинают движение и приводят пальцы робо–руки в движение. Данный датчик очень чувствительный, поэтому для того, чтобы использовать его в проекте требуется реализовать фильтрацию сигнала. Есть два способа реализации этой задачи: программная и аппаратная. Самый простой способ – программная реализация. Так как в прошлой работе уже использовались эти датчики, то также можно использовать уже готовые программно реализованные фильтры.

3D модель части биоэлектрического протеза

Рисунок 11 – 3D модель части крепепления для двигателя локтевого сустава
(анимация: 10   кадров, 7   циклов повторения, 220   килобайт)

Выводы

  1. В данной работе была представлена разработанная робо-рука имитирующая движения, которые выполняются оператором с сенсорной перчаткой.
  2. Данное устройство используется как прототип для создания антропоморфных роботов, а также систем удаленного управления в труднодоступных местах, протезов.
  3. В данной работе исследована тема создания электромеханических протезов, разработана и реализована локтевая часть устройства бионической руки. Исследуемая конструкция была модернизирована и воссоздана[10]. Было проанализированно строение руки человека, а также способы управления локтевым суставом руки антропоморфного робота.

Список источников

  1. Программирование Ардуино [Электронный ресурс] : Справочник языка Ардуино, Украина, [2003]. URL: http://arduino.ua/... (дата обращения: 30.11.2016).
  2. Программирование Arduino –; библиотека Servo [Электронный ресурс]: сайт создания роботов , 29 мая 2010. URL : http://robocraft.ru/...(дата обращения: 30.11.2016).
  3. Роботизированная рука с использованием Arduino [Электронный ресурс]: блог сайта Arduino, США, 24 июня 2014. URL : https://blog.arduino.cc/... (дата обращения: 01.12.2016).
  4. Использование датчика Flex [Электронный ресурс]: Проект сайта sparkfun.com, США. URL : https://learn.sparkfun.com/... (дата обращения: 20.11.2016).
  5. Гринь В.В., Басалыгин Е.В., Розкаряка П.И. Разработка аппаратной части Робо–;руки на базе платы Arduino / Международная научно–;практическая конференция ИННОВАЦИОНЫЕ ПЕРСПЕКТИВЫ ДОНБАССА // Перспективы развития электротехнических, электромеханических и энергосберегающих систем, 2017. –; 230–;233с., [Электронный ресурс]. Режим доступа: http://ipd.donntu.ru
  6. Определение сервопривода [Электронный ресурс] . Режим доступа: http://dic.academic.ru/...
  7. Рука и предплечье [Электронный ресурс]: Проект сайта inmoov.fr, США. URL : http://inmoov.fr/... (дата обращения 16.01.2017).
  8. Виды протезов рук [Электронный ресурс]. Режим доступа: : http://motorica.org/... (дата обращения 14.04.2018).
  9. Бионический протез руки [Электронный ресурс]. Режим доступа: : http://mech.spbstu.ru/... (дата обращения 14.04.2018).
  10. Разработка и анализ функционального протеза руки с нейрофизиологической системой управления [Электронный ресурс]. Режим доступа: : https://boomstarter.ru/... (дата обращения 14.04.2018).
  11. Строение руки человека [Электронный ресурс]. Режим доступа: : https://www.eurolab.ua/... (дата обращения 14.04.2018).
  12. Строение руки человека [Электронный ресурс]. Режим доступа: : http://firsthand.ru/... (дата обращения 14.04.2018). .