Технологии XXI века. Современный цифровой склад
Проектирование промышленного склада с программным комплексом по автоматическому учету груза, роботами, фасовочным центром и современным интерфейсом. Принцип действия энкодера. Алгоритм ПИД-контроллера. Навигация мобильного робота на основе одометрии.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 27.04.2016 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
· скорость и ускорение движения
· эффективность (низкое энергопотребление)
· точность позиционирования
· гибкость и робастность при различных условиях
Робот с дифференциальным приводом имеет два мотора, по одному на каждое колесо. Изменение направления движения достигается за счет разных скоростей (отсюда и название -- дифференциальный).
Для прямолинейного движения колеса должны вращаться с одинаковыми скоростями (рис.3.1).
Для того, чтобы робот развернулся на месте, необходимо установить скорости одинаковыми по модулю, но направленными противоположно (рис.3.2) Другие комбинации скоростей приводят к движению по дуге (рис.3.3).
Рис. 3.1 Прямолинейное движение с использованием дифференциального шасси
Рис. 3.2 Разворот дифференциального шасси
Рис. 3.3 Движение по дуге
Исходные данные:
-2x dc-мотора (модель: RC370SP-2001)
-два оптических энкодера
-микроконтроллер ATmega328 с двумя аппаратными прерываниями
Начальная позиция робота приведена на рисунке 3.4. Как можно заметить, робот движется по дуге. Хотя моторы RC370SP-2001 из одной партии, они имеют разные сопротивления обмоток (6.8 Oм правый мотор, 7.7 Ом левый мотор). На выходе мы получили разные напряжения (рис.3.6) а так же разные значения энкодеров (рис.3.7). Все это привело к движению по дуге (рис.3.5).
Рисунок 3.4. Начальная позиция робота без использования ПИД-регулятора
Рисунок 3.5. Конечная позиция робота без использования ПИД-регулятора
Рисунок 3.6. Диаграммы напряжений
Рисунок 3.7. График значений экодеров. Матлаб
Для того, чтобы решить данную проблему, была применена технология ПИД контроля за оборотами правого и левого колеса.
3.2 Алгоритм ПИД-контроллера
Пропорционально-интегрально-дифференцирующий (ПИД) контроллер -- устройство в управляющем контуре с обратной связью. Используется в системах автоматического управления для формирования управляющего сигнала с целью получения необходимых точности и качества переходного процесса. ПИД-регулятор формирует управляющий сигнал, являющийся суммой трёх слагаемых, первое из которых пропорционально разности входного сигнала и сигнала обратной связи (сигнал рассогласования), второе -- интеграл сигнала рассогласования, третье -- производная сигнала рассогласования.
Назначение ПИД-регулятора -- в поддержании заданного значения x0 некоторой величины x с помощью изменения другой величины u. Значение x0 называется заданным значением, а разность e = (x0 ? x) -- невязкой (или ошибкой [регулирования], в технике), рассогласованием или отклонением величины от заданной.
Выходной сигнал регулятора u определяется тремя слагаемыми:
В программной реализации для оптимизации расчетов переходят к рекуррентной формуле:
Система управления с обратной связью с участием ПИД-регулятора. Система управляет величиной y(t), т.е. выводит величину y(t) на заданное извне значение u(t). На вход ПИД-регулятора подаётся ошибка e(t), выход ПИД-регулятора является управляющим воздействием для некоторого процесса (для объекта управления), управляющего величиной y(t) рисунок (3.8).
Рисунок 3.8. Графическое отображение алгоритма ПИД-регулятора
Для того, чтобы добиться прямолинейного движения данного робота, реализуем алгоритм ПИД-контроллера, коэффициенты которого подберет практическим методом, анализируя данные в режиме реального времени, используя программный комплекс «Матлаб».
Листинг ПИД-контроллера приведен ниже:
int preverrorl;
int preverrorr;
int Ierrorl=0;
int Ierrorr=0;
int lev_enc = 0;
int pra_enc = 0;
int setpoint = 143;
unsigned long timep, time,etime,time2;
#define mot_ena 10
#define mot_enb 9
#define mot_in1 8
#define mot_in2 7
#define mot_in3 6
#define mot_in4 5
void setup() {
Serial.begin(9600);
pinMode(3, INPUT);
pinMode(2, INPUT);
attachInterrupt(0, ENC_LEV, CHANGE);
attachInterrupt(1, ENC_PRA, CHANGE);
timep = micros();
pinMode(mot_in1, OUTPUT);
pinMode(mot_in2, OUTPUT);
pinMode(mot_ena, OUTPUT);
pinMode(mot_in3, OUTPUT);
pinMode(mot_in4, OUTPUT);
pinMode(mot_enb, OUTPUT);
}
void doPID(void)
{
int errorl;
int errorr;
int derrorl;
int derrorr;
intcl;
intcr;
intKP = 1; // Пропорциональный коэффициент
floatKD = 3; // Дифференциальный коэффициент
floatKI = 0.6; // Интегральный коэффициент
errorl = setpoint - lev_enc;
errorr = setpoint - pra_enc;
Serial.print("errorl: ");
Serial.println(errorl);
Serial.print("errorr: ");
Serial.println(errorr);
lev_enc = 0;
pra_enc = 0;
derrorl = (errorl - preverrorl);
derrorr = (errorr - preverrorr);
cl = ((KP*errorl) + (KD*derrorl) + (KI*Ierrorl));
cr = ((KP*errorr) + (KD*derrorr) + (KI*Ierrorr));
if((skor_lev + cl) > 255)
skor_lev = 255;
else
skor_lev = skor_lev + cl;
if((skor_pra + cr) > 255)
skor_pra = 255;
else
skor_pra = skor_pra + cr;
preverrorl = errorl;
preverrorr = errorr;
Ierrorl = Ierrorl + errorl;
Ierrorr = Ierrorr + errorr;
}
void loop() {
time = micros();
time2 = micros();
etime=time-timep;
if(etime>100000)
{
Serial.print("Lev: ");
Serial.println(lev_enc);
Serial.print("Pra: ");
Serial.println(pra_enc);
timep=time;
doPID();
}
// прямолинейное движение
// левый мотор вперед
if(time2<10000000){
digitalWrite(mot_in1, HIGH);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, skor_lev);
// правыймоторвперед
digitalWrite(mot_in3, HIGH);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, skor_pra);
}
if(time2>11000000){
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, HIGH);
analogWrite(mot_ena, skor_lev);
// правыймоторвперед
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, HIGH);
analogWrite(mot_enb, skor_pra);
}
}
void ENC_LEV () {
lev_enc++;
}
void ENC_PRA () {
pra_enc++;
}
Изменяя коэффициенты ПИД-регулятора, находим закономерности в графиках, которые построены в результате практических испытаний в программе Матлаб.
3.3 Верификация алгоритма ПИД-контроллера
1 тест (рис.3.9.1):
Исходные данные:
-2x dc-мотора (модель: RC370SP-2001)
-два оптических энкодера
-микроконтроллер ATmega328 с двумя аппаратными прерываниями
- KP = 1; // Пропорциональный коэффициент
- KD = 0; // Дифференциальный коэффициент
- KI = 0; // Интегральный коэффициент
Вывод: Значения энкодеров уравнялись за 10 миллисекунд, присутствуют помехи на одном из колес, что отрицательным образом влиять на точность движения.
2 тест (рис.3.9.2):
Исходные данные:
-2x dc-мотора (модель: RC370SP-2001)
-два оптических энкодера
-микроконтроллер ATmega328 с двумя аппаратными прерываниями
- KP = 2; // Пропорциональный коэффициент
- KD = 0; // Дифференциальный коэффициент
- KI = 0; // Интегральный коэффициент
Вывод: С увеличением пропорциональной составляющей уравнения, возросли начальные затухающие колебания системы. Начиная с 30 миллисекунды, система стабилизируется. Помехи значительно меньше, чем с KP=1;
3 тест (рис.3.9.3):
Исходные данные:
-2x dc-мотора (модель: RC370SP-2001)
-два оптических энкодера
-микроконтроллер ATmega328 с двумя аппаратными прерываниями
- KP = 0.3; // Пропорциональный коэффициент
- KD = 3; // Дифференциальный коэффициент
- KI = 0; // Интегральный коэффициент
Вывод: Система стабильна. Колебаний нет. Помехи уменьшились, в сравнении с KP=1;
4 тест (рис.3.9.4):
Исходные данные:
-2x dc-мотора (модель: RC370SP-2001)
-два оптических энкодера
-микроконтроллер ATmega328 с двумя аппаратными прерываниями
- KP = 1; // Пропорциональный коэффициент
- KD = 1; // Дифференциальный коэффициент
- KI = 0; // Интегральный коэффициент
Вывод: Присутствует разовое резкое колебание на 10 миллисекунде, вначале движения робота. Система стабильная, но на начальном этапе движения робота наблюдаются рывки. Помех практически нет.
5 тест (рис.3.9.5):
Исходные данные:
-2x dc-мотора (модель: RC370SP-2001)
Рисунок. 3.9.1. График значений экодеров. Матлаб.
Рисунок 3.9.2. График значений экодеров. Матлаб
Рисунок 3.9.3. График значений экодеров. Матлаб.
Рисунок 3.9.4. График значений экодеров. Матлаб.
Рисунок 3.9.5. График значений экодеров. Матлаб.
-два оптических энкодера
-микроконтроллер ATmega328 с двумя аппаратными прерываниями
- KP = 1; // Пропорциональный коэффициент
- KD = 3; // Дифференциальный коэффициент
- KI = 0; // Интегральный коэффициент
Вывод: Система крайне нестабильна вначале. Один мотор резко набирает скорость, другой - уменьшает. Все это приводит к неравномерному старту обоих двигателей, вызванной разным сопротивлением обмоток цепей. Помех нет. Колебания затухающие.
В результате практических испытаний, было принято решение использовать следующие коэффициенты ПИД-контроллера для прямолинейного движения роботас дифференциальным шасси:
- KP = 0.3; // Пропорциональный коэффициент
- KD = 3; // Дифференциальный коэффициент
- KI = 0; // Интегральный коэффициент
С помощью технологии MotionCaptute были получены данные с результатом использования ПИД-регулятора в данными коэффициентами (рисунок 3.9.6 и рисунок 3.9.7);
Рисунок 3.9.6. Начальная позиция робота с использованием ПИД-регулятора
Рисунок 3.9.7. Конечная позиция робота с использованием ПИД-регулятора
4. Выбор программного и аппаратного обеспечения
4.1 Выбор программного инструментария
4.1.1 Требования к инструментарию
Инструментарий, необходимый для реализации дипломной работы, можно разделить на две части - среда разработки серверной части программного обеспечения и среда разработки прошивки для микроконтроллера робота.
Операционная система была выбрана от компании MicrosoftсемействаWindows 8.1, среда разработки серверного приложения - VisualStudio 13 версии, среда разработки прошивки для робота - CooCoxcoIDE. База данных - PostgreSQL.
Microsoft Visual Studio -- продвигаемая линейка продуктов от компании Microsoft, включающая в себя среду разработки программного обеспечения и ряд других инструментальных средств. Данная среда разработки позволяют разрабатывать не только консольные приложения, но и приложения с графическим интерфейсом, в том числе с фирменной технологией Windows Forms. Переченьподдерживаемыхплатформ: Windows, Windows Mobile, Windows CE, Silverlight, .NET Framework, Xbox, Windows Phone .NET Compact Framework.
В составе Visual Studio есть встроенный редактор исходного кода с поддержкой технологии IntelliSense, который позволяет быстро, удобно редактировать код. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Другие инструменты включают в себя редактор форм который нужен для создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как, например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования) или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).
PostgreSQL (произносится «Пост-Грес-Кью-Эль») -- свободная объектно-реляционная система управления базами данных (СУБД). Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, Mac OS X, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.
4.1.2 Выбор дополнительных программных средств для отладки работы систем робота
Тестирование и отладка алгоритма ПИД-регулятора и нахождение его коэффициентов производились в режиме реального времени в среде Matrix Laboratory. Выбор обусловлен удобством интерфейса и возможностью работы с внешними устройствами, такими как микроконтроллеры. Ниже приведено краткое описание.
MATLAB (сокращение от англ. «Matrix Laboratory») -- пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете. MATLAB используют более 1 000 000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux, Mac OS, Solaris и Microsoft Windows.
MATLAB предоставляет пользователю большое количество (несколько сотен) функций для анализа данных, покрывающие практически все области математики, в частности:
· Матрицы и линейная алгебра -- алгебра матриц, линейные уравнения, собственные значения и вектора, сингулярности, факторизация матриц и другие.
· Многочлены и интерполяция -- корни многочленов, операции над многочленами и их дифференцирование, интерполяция и экстраполяция кривых и другие.
· Математическая статистика и анализ данных -- статистические функции, статистическая регрессия, цифровая фильтрация, быстрое преобразование Фурье и другие.
· Обработка данных -- набор специальных функций, включая построение графиков, оптимизацию, поиск нулей, численное интегрирование (в квадратурах) и другие.
· Дифференциальные уравнения -- решение дифференциальных и дифференциально-алгебраических уравнений, дифференциальных уравнений с запаздыванием, уравнений с ограничениями, уравнений в частных производных и другие.
· Разреженные матрицы -- специальный класс данных пакета MATLAB, использующийся в специализированных приложениях.
· Целочисленная арифметика -- выполнение операций целочисленной арифметики в среде MATLAB.
MATLAB предоставляет удобные средства для разработки алгоритмов, включая высокоуровневые с использованием концепций объектно-ориентированного программирования. В нём имеются все необходимые средства интегрированной среды разработки, включая отладчик и профайлер. Функции для работы с целыми типами данных облегчают создание алгоритмов для микроконтроллеров и других приложений, где это необходимо.
В составе пакета MATLAB имеется большое количество функций для построения графиков, в том числе трёхмерных, визуального анализа данных и создания анимированных роликов.
Встроенная среда разработки позволяет создавать графические интерфейсы пользователя с различными элементами управления, такими как кнопки, поля ввода и другими.
Интерфейс для последовательного порта пакета MATLAB обеспечивает прямой доступ к периферийным устройствам, таким как модемы, принтеры и научное оборудование, подключающееся к компьютеру через последовательный порт (COM-порт). Интерфейс работает путём создания объекта специального класса для последовательного порта. Имеющиеся методы этого класса позволяют считывать и записывать данные в последовательный порт, использовать события и обработчики событий, а также записывать информацию на диск компьютера в режиме реального времени. Это бывает необходимо при проведении экспериментов, симуляции систем реального времени и для других приложений.
Для визуализации движения робота и анализа кривых была применена система MotionCapture, в программе AdobePremierPro.
Adobe Premiere Pro - профессиональная программа, которая позволяет выполнять захват, обработку видеопотока в реальном времени.
Для разработки и проектирования корпуса, деталей и механизмов робота, была применена программа AutoCAD компании AutoDesk. Были получены рабочие 3D модели и чертежи, по которым производилось изготовление деталей и их конечная сборка.
4.1.3 Выбор аппаратного обеспечения
Основным вычислительным процессором служит IntelCorei7 4790k. На нем установлена серверная часть, написанная на языке c#, которая содержит в себе базу данных, диспетчерский центр и драйвера управления роботом. Робот оборудован двумя моторами постоянного тока, рассчитанные на 12 вольт рабочего напряжения (модель: RC370SP-2001). На каждом валу этих моторов установлена система энкодеров, которые считывают данные и отправляют их на дальнейшую обработку в микроконтроллер. Центром обработки информации робота является микроконтроллер ATmega328, визуальная распиновка приведена на рисунке 4.1.
Рисунок 4.1. Графическая распиновка микроконтроллера ATmega328
Характеристики данного мк:
o Тактовая частота: 0 - 20 МГц
o Объём Flash-памяти: 32 кб
o Объём SRAM-памяти: 2 кб
o Объём EEPROM-памяти: 1 кб
o Напряжение питания: 1,8 - 5,5 В
o Потребляемый ток в режиме работы: 0,2 мА (1 МГц, 1,8 В)
o Потребляемый ток в режиме сна: 0,75 мкА (1 МГц, 1,8 В)
o Количество таймеров/счётчиков: 2 восьмибитных, 1 шестнадцатибитный
o Общее количество портов: 23
o Количество ШИМ (PWM) выходов: 6
o Количество каналов АЦП (аналоговые входы): 6
o Количество аппаратных USART (Serial): 1
o Количество аппаратных SPI: 1 Master/Slave
o Количество аппаратных IІC/SPI: 1
o Разрешение АЦП: 10 бит
Подъемник робота-погрузчика приводится в движения с помощью шагового двигателя, который управляется драйвером а4988, показанный на рис 4.2.
Рисунок 4.2.Драйвер шагового двигателя вида а4988
Для навигации по складу применяется гибридная схема с использованием датчиков линий и данных с одометрии. Для коммуникации с диспетчерской склада применятся радиосвязь с технологией Wi-Fi на частоте 800 Мгц, что позволяет управлять роботом в пределах 30 км, а дублирующие репиторы способны увеличить расстояние связи до 100 км. Робот оборудован двумя моторами типа RC370SP-2001, на них установлены планетарные редукторы с передаточным соотношением 1 : 32. На каждом валу редуктора установлены энкодеры. На каждом двигателе установлена помехоподавляющая схема, что позволяет снизить помехи в цепи, а так же положительно сказывается на точности позиционирования робота. Питается система от Li-Ion батареек типа 18650 компании Samsung номинальным рабочим напряжением в 3.7 Вольт. Выбор такого вида аккумулятора обусловлен быстрой зарядкой до 90% (порядка 20 минут), отсутствием эффекта «памяти», относительно большим циклом полного разряда-заряда (1500 раз), это почти 7 лет службы при активном использовании батареек. Аккумуляторный блок оборудован защитой от короткого замыкания, переплюсовки, перезаряда, переразряда. Блок имеет защиту по превышению тока - 7.5 А на канал, время срабатывания которого составляет 20 мс.
5. Проектирование алгоритмов и интерфейсов
5.1 Общая диаграмма работы алгоритма движения робота
Диаграмма деятельности алгоритма робота склад представлена на рис. 5.1. Данный алгоритм является ключевым элементом всей системы. На его основе построена универсальная гибридная система навигации робота, которая использует одометрию и получает данные с множества датчиков, чтобы узнать текущее положение робота в пространстве. На данный момент эта система рассчитывалась на модель двухколесного робота с дифференциальным приводом, однако очевидно, что можно использовать эту систему на абсолютно любом типе техники. Достаточно оборудовать ее недорогими датчиками и настроить параметры прошивки блока управления двигателями и исполнительными механизмами.
Параметры робота, задаются в самой прошивке блока управления. Разрабатываемая прошивка содержит в себе информацию как о роботе (электрические и механические параметры), так и данные о складе - длина и ширина полок, расстояния между ними. Серверная система написана на языке c#, обладающая модульной конструкцией, что позволяет добавлять или удалять новые функции в считанные мгновения. Таким образом, обеспечивается гибкость системы - параметры можно менять в зависимости от конфигураций складов и типов рабочей техники.
Если определить маршрут движения как последовательность опорных пунктов (подцелей) движения, включающую исходное и конечное (целевое) положения робота, то задача прокладки маршрута включает формирование некоторого множества подцелей и последующий выбор такого его подмножества, которое оптимизирует движение робота.
При получении команды на выдачу или приема того или иного товара, серверная часть посылает команды роботу, двигаться в том или ином направлении для достижения конечной цели. Связь между сервером и роботом двухсторонняя - при достижении заданной цели, робот посылает подтверждение о выполнении поставленной задачи серверу, сервер принимает подтверждение и отправляет следующую команду на исполнение.
Оператор также может управлять роботом вручную, корректируя его движение в пространстве, используя либо клавиатуру, либо мышь. Информация о передвижениях, а так все параметры робота и его окружении могут быть сохранены во внешний файл. Данная функция нужна для отладки работы системы и приспособления ее работы на объекте заказчика.
Откалиброванная система навигации роботом обладает высокой точностью, погрешность которой, измеряется в миллиметрах, удобством ввода в эксплуатацию, универсальностью, низкой стоимостью и высокой практичностью.
Рисунок 5.1. Диаграмма деятельности алгоритма
5.2 Общая схема промышленного склада и внедрение гибридной навигационной системы на основе одометрии
Чтобы добраться от пункта А в пункт Б, мобильному роботу нужна знать:
А) окружающую среду:
l Полностью наблюдаемая / Частично наблюдаемая
l Детерминированная / Стохастическая
l Эпизодическая / Последовательная
l Одноагентная / Многоагентная
Б) Относительное текущее положение;
В) Какие датчики используются для навигации:
l Ультразвуковые дальномеры
l Лазерно-измерительные приборы
l GPS/ ГЛОНАСС
l Wi-Fi
l Оптотроны (датчики линии)
l Камеры с OpenCV библиотекой
Г) габариты шасси с корпусом;
Д) Тип привода;
Общая схема промышленного склада приведена на рисунке 5.2.. Данный склад для систем навигации представляет из себя частично наблюдаемую, детерминированную, последовательную и многоагентную среду.
Рисунок 5.2. Общая схема склада
Для точного позиционирования было принято решение использовать линии - главные дороги, по которым роботы могли двигаться, не мешая передвижению людей на складе. Данная технология хорошо зарекомендовала себя на крупных промышленных заводах по выпуску автомашин, где специальные платформы большой грузоподъемности перевозили крупно-узловые сборочные детали (рисунок 5.3).
Рисунок 5.3 - Фотография современного промышленного робота: промышленная платформа, которая двигается от пункта А в пункт Б используя черную линию для навигации на заводе Bentley.
Еще одним весовым плюсом данной технологии является легкая инсталляция и универсальность - можно проложить навигационные линии практически в любом складе, где есть коридоры (рис.5.4).
Одометрия в тандеме с ПИД-регулятором позволяет роботу двигаться за пределами линий, чтобы осуществлять погрузку, отгрузку грузов на заданные полки, где линий нет. Таким образом, чтобы оборудовать любой склад данной разрабатываемой дипломной автономной системой и внедрить в нее систему навигации, достаточно покрасить пол ровной черной и белой краской, что делает данную систему простой, надежной и быстрой в установке.
Рисунок 5.4 - Фотография современного промышленного склада: линия состоит из двух цветов - белого и черного.
5.3 Математическая и физическая модель робота
Была описана математическая модель робота с использованием дифференциального шасси. Исходя из обзора 1.2 на странице 10, было принято решение использовать эту модель шасси. Все плюсы и минусы были рассмотрены раннее.
5.3.1 Уравнения, описывающие положение колес робота
Движение робота с дифференциальным шасси зависит от скорости левого и правого колеса. При различных оборотах колес робот начинает двигаться по окружности с центром в точке, описываемой радиус-вектором Rc. Радиус поворота - длина вектора Rr. Графически, такая модель представлена на рисунке 5.5.
Параметры робота:
Dr - диаметр колеса
Рисунок 5.5. Графическое представление движении робота
l - расстояние между колесами
щ1- угловая скорость левого колеса
щ2- угловая скорость правого колеса
ц - угол, определяющий ориентацию робота
Сначала найдем ?ц. Длина дуги, по которой проехало правое колесо:
Зная длину дуги, нетрудно вычислить ?ц, поделив полученное выражение на длину окружности, по которой вращается колесо.
где |Rr(t)| + l/2 - радиус вращения правого колеса.
Аналогичным образом?ц определяется для левого колеса, необходимо лишь изменить радиус вращения:
Из выражений для ?ц можно выразить |Rr|, приравняв правые части:
Подставив полученное выражение для |Rr| в любое из выражений для ?ц и произведя упрощение, получаем конечное выражения для ?ц:
Для задания начального положения робота необходимо ввести два радиус-вектора P01и P02, определяющие положения колес. Очевидно, что разность этих векторов дает координаты центра робота.
Так же есть необходимость введения матрицы поворота двумерного вектора на угол цT(ц):
Поскольку время ?tмало, можно рассматривать перемещение робота как движениепо дуге с постоянным радиусом |Rr|. Центр дуги задается радиус-вектором Rр. В этом случае выполняется равенство:
Из данного равенства можно выразить ?Rr(t):
На данном этапе необходимо сделать подстановку |Rr| и ?ц, а так же произвести упрощение выражения с учетом малости ?ц (sin(?ц) = ?ц, cos(?ц) =1). После этого можно разложить выражение для вектора ?Rr(t) по компонентам х и у и представить его в дифференциальной форме:
5.3.2 Уравнения, описывающие работу двигателей
В модели используются два уравнения, которые связывают количество оборотов и токи в обмотках двигателей.
Двигатель представляет собой электрическую цепь с общим сопротивлением R, в которой есть катушка с индуктивностью L. Напряжение в цепи U(t) меняется в зависимости от показаний энкодеров, с помощью технологии ШИМ-модуляции.
Двигатели приводят колеса робота в движение, задавая их скорость вращения. Поскольку робот обладает массой Mr, у робота есть инерция.
Исходя из описания, работа двигателей описывается с помощью следующей системы уравнений:
где k1, k2- коэффициенты, определяемые экспериментальным путем.
5.3.3 Общая система уравнений, описывающая движение робота
Выше приведены выводы четырех уравнений, которые при объединении в систему позволяют описать движение робота.
Вектор перемещения центра робота ?Rr(t) необходимо раскладывать по двум координатам. Работа двух двигателей описывается с помощью четырех уравнений - по два на токи и на обороты колес. Поэтому общее количество уравнений в модели семь:
5.4 Чертежи робота-погрузчика
Корпус, шасси, ребра жесткости были изготовлены из материала ПВХ толщиной 10мм. Поливинилхлорид (ПВХ.) -- бесцветная, прозрачная пластмасса, термопластичный полимер винилхлорида. Отличается химической стойкостью к щелочам, минеральным маслам, многим кислотам и растворителям. Не горит на воздухе. Данные детали были изготовлены согласно чертежам 5.1, 5.2, 5.3.
Чертеж 5.1 - Корпус робота погрузчика. Масштаб 1:4. Вид сверху, боковой вид.
Чертеж 5.2 - Ребро жесткости робота погрузчика. Масштаб 1:4. Вид сверху, боковой вид.
Чертеж 5.3 - Шасси робота погрузчика. Масштаб 1:4. Вид сверху, боковой вид.
5.5 Схемотехника робота-погрузчика
В данном разделе представлены все схемы узлов управления роботом-погрузчиком.
Сердцем робота является микроконтроллер ATmega328, подключенного к драйверу двигателей l298n, который взаимодействует с мк по средствам ШИМ-контроллера (рис. 5.6).
Рисунок 5.6- Схемотехника узловых агрегатов робота-погрузчика на примере драйвера двигателя L298N.
Для данного драйвера двигателей, были выделены два цифровых порта с поддержкой ШИМ, для того, чтобы контролировать скоростью движения моторами. Четыре цифровых порта было выделено для задания направления движения обоих двигателей. Для управления погрузочной системой, состоящей из шагового двигателя и датчика, были использованы драйверы типа а4988, схемотехника которых приведена на рисунке 5.7. Для детектирования линии, был применен массив из датчиков (рис.5.8.). Для одометрии были задействованы схемы двух энкодеров (рис. 5.9). Финальная версия робота-погрузчика изображена на рисунке 5.10 и рисунке 5.11.
Рисунок 5.7- Схемотехника узловых агрегатов робота-погрузчика на примере драйвера двигателя a4988.
Рисунок 5.8- Схемотехника узловых агрегатов робота-погрузчика на примере датчиков линий.
Рисунок 5.9- Схемотехника узловых агрегатов робота-погрузчика на примере энкодеров.
Рисунок 5.10- Изображение робота-погрузчика без защитного чехла
Рисунок 5.11 - Изображение робота-погрузчика с защитным чехлом
5.6 Интерфейс управления серверной части автономного склада
Интерфейс серверной части выполнен в современном дизайне FlatUI, который сочетает в себе максимальную информативность, минимализм и яркие тона. Работа оператора с автономным комплексом «склад» начинается с главного меню, которое изображено на рисунке 5.12.
Рисунок 5.12. Изображение главного меню.
На главном меню расположены три кнопки «Приход товара», «Расход товара» и кнопка «Выход». Сверху расположена информативная строка, дата и время, текущий день недели. Когда нужно зарегистрировать товар, оператору следует нажать на кнопку «Приход товара» и он попадет в следующее окно приложения (рис. 5.13.).
На данном окне находятся четыре кнопки: «сканировать», «главное меню», «добавить товар» и «корзина».
Для того, чтобы зарегистрировать товар в базе данных, оператору нужно положить товар со специальным чипом на разработанную платформу прихода товара и нажать кнопку «сканировать». Информация о товаре выведется в левом углу окна приложения. С помощью кнопки «Добавить товар», оператор подтверждает правильность отсканированной информации и добавляет товар в базу данных склада. Кнопкой «корзина», оператор может удалять неправильные записи в базе данных. Кнопка «главное меню» возвращает оператора в главное меню приложения.
Рисунок 5.13- Изображение окна «Приход товара».
Если оператору нужно получить товар со склада, то ему следует нажать на кнопку «Расход товара», который изображен на рисунке 5.14. В данном окне, оператор по заданному артиклю товара, может совершить поиск товара по базе данных, и если товар имеется в наличии, проверить срок годности и нажать на кнопку «Выдать товар».
Рисунок 5.14- Изображение окна «Расход товара».
Данное окно показывает количество доступных товаров по заданному артиклю, номера ячеек, где расположены данные товары в системе и сроки годности. После того, как оператор нажал на кнопку «Выдать товар», серверная часть посылает задание роботу, координируя его движения в режиме реального времени. Робот, двигаясь по линиям, постоянно поддерживает двухстороннюю связь с сервером и при достижении цели немедленно сообщает серверу, для получения следующего задания.
Выход из программы обеспечивается нажатием кнопки Выход, которая расположена на главном меню.
Заключение
Результатом дипломной работы является создание полностью автономной системы «склад», которая решает ряд немаловажных существующих проблем с работой современных складов. Была разработана гибридная навигационная система, которая позволяет роботу двигаться по складу с точностью до нескольких миллиметров, обладающая низкой стоимостью и универсальностью. Был разработан автоматизированный регистрационный пункт с использованием технологии NFC, что позволяет оператору мгновенно регистрировать товар в базе данных.
Низкая стоимость данных чипов и относительно большая память позволяют хранить в ней практически любую информацию о продукте, начиная производителя, кончая сроков годности и требований к хранению. Серверная часть, написанная на языке с#, обладает модульной конструкцией, что позволяет легко корректировать работу склада, внося новые возможности и функции. Был разработан робот-погрузчик, наделенный 13-тью датчиками для точного позиционирования в пространстве. Был построен мини-склад со стеллажами, навигационными линиями для верификации алгоритмов и их наглядной демонстрации работы.
Список литературы
1. Саймон Хайкин Нейронные сети: полный курс. 2-е исправленное издание, 2006
2. сборник докладов Пятьдесят девятой Международной студенческой научно-технической конференции ГУАП, С-Пб, 2006
3. Дэвид Формайс, Жан ПонсКомпьютерное зрение. Современный подход, 2004
4. Уильям Прэтт Цифровая обработка изображений, 1982
5. Крылов В.И., Бобков В.В., Монастрырский П.И. Вычислительные методы высшей математики, 1975
6. Игнатьев М.Б. Основные положения по дипломному проектированию для специальностей 2201, 2204, 2016 / М.Б. Игнатьев, О.В. Мишура, А.В. Гордеев, Л.Г. Ахутина и др.: Санкт-Петербургский государственный университет аэрокосмического приборостроения. 1999, 45 с.
7. Прогнозирование элементов бизнес-плана проектов: методические указания к выполнению дипломного проекта / под ред. д.э.н. проф. В.Б. Сироткина; Санкт-Петербургский государственный университет аэрокосмического приборостроения. 2002, 63 с.
8. Безопасность жизнедеятельности, промышленная и экологическая безопасность: методические указания к выполнению дипломного проекта / под ред. к.т.н. доц. А.И. Панферова; Санкт-Петербургский государственный университет аэрокосмического приборостроения. 2001, 34 с.
Размещено на Allbest.ru
...Подобные документы
История возникновения и развития современной робототехники, применение технологий искусственного интеллекта. Разработка структурной схемы системы навигации мобильного робота, коррекция траектории его движения, методы управления локальными перемещениями.
дипломная работа [1,1 M], добавлен 18.05.2011Описание и технические характеристики объекта управления. Описание алгоритма функционирования промышленного робота. Описание цифровых характеристик габаритов и зоны действия. Определение используемых ресурсов и параметров инициализации микроконтроллера.
курсовая работа [685,9 K], добавлен 02.02.2016Обзор схемы конструкции автоматизированного мобильного робота. Выбор компонентов конструкции. Общая классификация роботов; виды двигателей. Выбор типа микроконтроллера. Осуществление программирования на основе расчётов по математической модели робота.
курсовая работа [1,2 M], добавлен 20.05.2015Использование в микропроцессорных системах цифрового способа представления информации. Помехоустойчивость устройств. Принципиальная схема на микроконтроллере для управления роботом. Устройство и принцип действия робота. Области действия фотодатчиков.
курсовая работа [693,7 K], добавлен 31.01.2015Выбор промышленного робота. Проектирование структурной, функциональной и принципиальной электрической схемы системы управления робототехническим комплексом (РТК). Расчет и выбор элементов электрической схемы. Экономический расчет от внедрения РТК.
дипломная работа [2,2 M], добавлен 22.08.2013Назначение, технические характеристики промышленного робота МП20. Режимы работы робота и кинематическая схема. Приводные электродвигатели. Элементы электроавтоматики. Алгоритм управления следящим цифроаналоговым приводом. Интерфейс станочной магистрали.
курсовая работа [1,7 M], добавлен 15.04.2013Описание предметной области. Концептуальное проектирование базы данных. Разработка базы данных оптового склада. Требования, предъявляемые к аппаратному и программному обеспечению Borland Delphi 7.0 и MySQL. Работа с базой данных оптового склада.
курсовая работа [705,8 K], добавлен 18.06.2015Основания для выбора контроллера, который подключается по IDE-шине к устройству CD-ROM. Принцип действия устройства, описание структурной и принципиальной схемы. Выбор элементной базы. Алгоритм работы устройства, разработка программного обеспечения.
курсовая работа [136,0 K], добавлен 23.12.2012Автоматизация расчёта параметров сетей трубопроводов по годам на основе прогнозных показателей добычи и закачки с применением программного продукта Pipesim и технологии OpenLink, Microsoft Excel. Определение плановой себестоимости и эффективности.
дипломная работа [4,1 M], добавлен 25.05.2012Технология формирования исходной матрицы числовой экономико-математической модели на основе заданной информации. Алгоритм решения задачи программным комплексом на примере использования Excel. Процедура возврата результатов решения в электронную таблицу.
методичка [38,4 K], добавлен 05.07.2010Проектирование схемы сбора информации со ста двадцати восьми датчиков на основе микроконтроллера. Разработка листинга программы для контроллера, обрабатывающей поступающие данные с накоплением их во Flash-памяти с учетом точного времени и текущей даты.
курсовая работа [891,8 K], добавлен 24.12.2012Описание разработанной подсистемы автоматизации, алгоритм ее работы. Структуры базы данных и составных частей подсистемы. Затраты на разработку программного продукта и эффект от внедрения подсистемы. Руководство по работе с программным комплексом.
дипломная работа [3,0 M], добавлен 02.02.2009Цифровой автомобиль будущего - направление развития интеллекта бортовой электроники. Демонстрация мобильного концепта-ПК, интегрированного во внедорожник Land Rover. Автомобильные мобильные телефоны, системы навигации и самодиагностики автомобиля.
реферат [535,7 K], добавлен 17.12.2010Отпуск товара со склада предприятия, его основные этапы и предъявляемые требования, нормативная документация. Проектирование схемы отпуска товара со склада с помощью методологий структурного анализа. Построение контекстной диаграммы и декомпозиции IDEF0.
контрольная работа [633,4 K], добавлен 24.05.2010Проектирование приложения для базы данных "Оптовый склад" средней сложности с типовым пользовательским интерфейсом. Изучение особенностей ведения учета поставщиков, покупателей, продаж, движения товара на складе. Выборка, удаление таблиц из базы данных.
курсовая работа [424,1 K], добавлен 03.11.2014Общий принцип работы аналого-цифровых преобразователей (АЦП). Принцип работы интерфейса USB. Функциональная и электрическая схемы АЦП с интерфейсом USB. Описание и принцип работы устройства ввода аналоговой информации, технические характеристики.
дипломная работа [725,6 K], добавлен 16.01.2009Автоматизация учета и управления, использование тиражных программных продуктов системы "1С: Предприятие". OLE - технология управления и обмена информацией между программным интерфейсом другими приложениями. Установка среды разработки, совместимой с 1С.
курсовая работа [558,9 K], добавлен 20.03.2013Средства индикации, сигнализации, подключения. Датчики и исполнительные органы. Краткая характеристика технических средств и технологии отладки аппаратной и программной сред контроллера. Распределение адресного пространства. Алгоритм работы устройства.
курсовая работа [870,4 K], добавлен 16.01.2015Теоретические и практические аспекты реализации и внедрения Captcha. Разработка методов повышения стойкости теста к автоматическому распознаванию. Алгоритмы генерации изображений. Морфинг шрифтов как новый метод искажения. Правила внесения искажений.
дипломная работа [4,0 M], добавлен 13.10.2017Классификация колесных наземных мобильных роботов. Обзор приводов мобильных платформ. Особенности стабилизации скорости мобильной платформы Rover 5 с дифференциальным приводом. Разработка алгоритмов управления на основе микроконтроллера Arduino.
курсовая работа [1,3 M], добавлен 04.05.2017