Реферат по темі випускної роботи
Зміст
- Введення
- 1. Актуальність теми
- 2. Мета і завдання дослідження, плановані результати
- 3. Введення в ROS
- 4. Концепції ROS
- 5. Обчислювальний граф ROS
- 6. Основні поняття роботів з диференціальним приводом
- 7. Програмування робототехніки з Arduino і ROS
- 8. Raspberry Pi
- Висновки
- Список джерел
введення
За останніми даними, сьогодні в світі працюють 1,8 мільйонів самих різних роботів – промислових, домашніх, роботів–іграшок. При цьому найбільша кількість роботів використовується в Південній Кореї, друге місце зайняв Сінгапур, третє-Японія, далі США, Китай. А в Росії роботів всього близько 0,25% світового ринку, що вкрай мало[1].
Робототехніка – прикладна наука, що займається розробкою автоматизованих технічних систем.
Робототехніка спирається на такі дисципліни як Електроніка, Механіка, програмування. Виділяють будівельну, промислову, побутову, авіаційну, військову, космічну робототехніку. При створенні робототехніки потрібно керуватися правилами, дружнє ставлення до людини має бути головним у програмуванні роботів[2].
1. Актуальність теми
на даний момент наземні мобільні роботи – маніпулятори є дуже затребуваними в різних сферах діяльності. Будучи, по суті, приймачами електричної енергії вони дозволяють проводити різноманітні види робіт в небезпечних або важкодоступних для людини місцях. При цьому маніпулятори є найважливішими частинами подібних мобільних платформ.
2. Мета і завдання дослідження
Метою роботи є побудова мобільного робота з диференціальним приводом. У роботі буде використаний Мікроконтролер Arduino UNO, а так само мікрокомп'ютер Raspberri Pi 3 B+.
3. Введення в ROS. Загальні відомості
ROS – це програмна платформа, призначення якої-написання програмного забезпечення робота. Основна мета ROS – створення і використання робототехнічного програмного забезпечення по всьому світу. ROS складається з набору інструментів, бібліотек і програмних пакетів, що спрощують завдання створення програмного забезпечення робота.
ROS – це метаопераційна система з відкритим вихідним кодом, розроблена для робота. Вона надає всі необхідні для даної операційної системи служби, включаючи апаратні засоби візуалізації, низькорівневе управління пристроєм, реалізацію функціональності для загального використання, передачу повідомлень між процесами і пакетами управління. Вона також надає інструменти та бібліотеки для отримання, побудови, написання та виконання коду на декількох комп'ютерах. Основні функції, які забезпечує ROS:
- інтерфейс передачі повідомлень . Це базова функція ROS, що дозволяє організувати міжпроцесну взаємодію. Використовуючи цю функцію, ROS може обмінюватися даними між пов'язаними системами.
- апаратна універсальність .ROS має певний ступінь універсальності, що дозволяє розробникам створювати роботизовані програми. Вони можуть бути використані з будь-яким пристроєм. Розробники повинні лише подбати про належне апаратне забезпечення робота;
- керування пакетами. Вузли ROS організовані в пакети і називаються пакетами ROS. Вони складаються з вихідних кодів, конфігураційних файлів типу
build
(будувати
) і т. д. ми спочатку розробляємо пакет, збираємо його і встановлюємо. У ROS передбачена система збірки, яка допомагає створювати ці пакети. Управління пакетами робить розвиток ROS більш впорядкованим і організованим; - додаткові бібліотеки . У структуру ROS вбудовано кілька додаткових бібліотек, розроблених сторонніми організаціями, таких як Open–CV, PCL, OpenNI та ін. дані бібліотеки допомагають зробити ROS універсальною метаопераційною системою;
- управління низькорівневими пристроями . У всіх роботах присутні пристрої низького рівня, наприклад пристрої введення/виведення, контролери послідовних портів і ін. управління такими пристроями теж здійснюється за допомогою ROS;
- розподілені обчислення. Обсяг обчислень, які будуть потрібні для обробки потоку даних від численних датчиків, дуже високий. Використовуючи ROS, ми можемо легко розподілити їх у групі обчислювальних вузлів. Це дозволить рівномірно розподілити обчислювач ні потужності, і дані будуть оброблятися швидше, ніж на одиночному комп'ютері;
- багаторазове використання коду. Основною метою ROS є багаторазове використання коду, що сприяє розвитку науково-дослідної спільноти по всьому світу. Виконувані файли ROS називаються вузлами. Вони згруповані в єдиний об'єкт, званий пакетом ROS. Група пакетів – стек. Стеки можуть бути розділені і розподілені;
- незалежність від мови . В ROS можна програмувати за допомогою таких популярних мов, як Python, C++ і Lisp. Вузли можуть бути написані на будь-якому з цих мов, і обмін даними між такими вузлами через ROS не викличе ніяких проблем;
- простота тестування. ROS має вбудований модуль інтеграційного тестування, який називається rostest і призначений для тестування пакетів ROS;
- масштабування. ROS після деякої модифікації може виконувати складні обчислення в роботах;
- вільний і відкритий вихідний код. Вихідний код ROS відкритий і абсолютно вільний у використанні. Основна частина ROS ліцензована BSD і може бути повторно використана в комерційних і закритих продуктах джерела.
ROS – комбінація з потоку даних (передачі повідомлень), інструментів, можливостей і екосистеми[3]. У ROS вбудовані потужні інструменти для її налагодження та візуалізації. Робот, оснащений ROS, має такі можливості, як навігація, визначення місцезнаходження, складання карти, маніпуляції і т.д. вони допомагають створити потужні додатки для роботів. Наведене нижче зображення показує рівняння ROS:
4. Концепції ROS
ROS складається з трьох основних рівнів, таких як:
- файлова система ROS;
- обчислювальний граф ROS;
- спільнота ROS.
Основне завдання файлової системи ROS – організація файлів на диску. Основні терміни файлової системи ROS:
- Пакети . Пакети ROS є основною одиницею в рамках програмного фреймворку ROS. Пакет ROS може містити виконувані файли, ROS –бібліотеки, що належать програмному забезпеченню сторонніх виробників, конфігураційні файли і т. д. пакети ROS можна використовувати повторно і спільно;
- Опис пакета . В описі пакетів (пакет .XML – файлу) можна знайти всю деталізацію пакетів, включаючи ім'я, опис, ліцензію і залежності;
- Типи повідомлень (msg) . Всі повідомлення зберігаються в окремій папці, в файлах з розширенням .msg. ROS –повідомлення – це структуровані дані, що проходять через ROS;
- Типи служб (SRV) . Описи служб зберігаються в папці SRV з розширенням .srv. SRV – файли визначають запит і відповідь для структури даних в сервісі ROS.
5. Обчислювальний граф ROS
Обчислювальний граф ROS – це однорангова мережа систем ROS, призначення якою – обробка всіх даних . Основними поняттями обчислювальної графіки ROS є вузли, майстер ROS, сервер параметрів, повідомлення і служби.
- Вузли – це обчислювальні процеси в ROS. Кожен вузол виконує обробку певних даних. Наприклад, один вузол обробляє дані з лазерного сканера, інший публікує ці дані і т.д. вузол ROS створюється за допомогою клієнтської бібліотеки ROS (наприклад, roscpp і rospy). Більш детально ми познайомимося з цими бібліотеками під час створення зразка вузла.
- Майстер ROS . Майстер ROS діє як служба імен у графі обчислень ROS. Він зберігає теми та реєстраційну інформацію служб для вузлів ROS. Вузли спілкуються з майстром, повідомляючи свої реєстраційні дані. Ці вузли, спілкуючись з майстром, отримують інформацію про інші зареєстровані вузли і відповідно встановлюють з ними з'єднання[4]. Майстер також виконує зворотний виклик цих вузлів при зміні реєстраційної інформації, що дозволяє вузлам динамічно створити з'єднання при запуску нових вузлів. Вузли підключаються безпосередньо до інших вузлів. Майстер, як і DNS – сервер, забезпечує тільки пошук інформації. Вузли, що підписуються на тему, запитують з'єднання від вузлів, що публікують цю тему, і дозволяють встановити зв'язки за узгодженим протоколом підключення. Найбільш поширений протокол, який використовується в ROS, називається TCPROS. Він використовує стандартний протокол TCP / IP–сокетів.
- Сервер параметрів . Статичні дані ROS зберігаються в загальнодоступному місці – на сервері даних, від якого вузли і отримують доступ до цих даних. Ми можемо встановити обсяг сервера даних і визначити його як приватний або громадський, щоб обмежити доступ до сервера одним вузлом або дозволити доступ всім вузлам.
- Теми ROS . Вузли обмінюються даними у вигляді повідомлень через систему транспортування в ROS з конкретною назвою теми. Тема – це ім'я, яке використовується для ідентифікації змісту повідомлення. Вузол, зацікавлений у певному виді даних, буде підписуватися на відповідну тему. В цілому видавець і абонент не знають про існування один одного. Ідея в тому, щоб відокремити виробництво інформації від її споживання. Логічно можна думати про тему як про шину строго типізованих повідомлень. Кожна шина має ім'я, і будь-хто може підключатися до неї для відправки або отримання повідомлень до тих пір, поки вони мають правильний тип.
- Повідомлення. Вузли взаємодіють один з одним за допомогою повідомлень. Повідомлення ROS складається з примітивних типів даних, таких як цілі числа, плаваючі точки, логічні значення (
true
–істина
абоfalse
–брехня
). Повідомлення ROS передаються через тему ROS. Тема може отримувати або посилати один тип повідомлення Тільки один раз. Ми можемо створити власне визначення повідомлення і передати його через тему. - Служби . Вище було показано, що переслати / отримати повідомлення з використанням тем ROS – це дуже простий метод спілкування між вузлами. Цей спосіб комунікації (
один до багатьох
–one–to–many
) дозволяє підписуватися на одну тему будь-якій кількості вузлів. У деяких випадках може здійснюватися часткова взаємодія, зазвичай застосовується в розподілених системах. Використовуючи певне повідомлення, можна послати запит в інший вузол, що надає потрібну послугу. Вузол, який надіслав запит іншому вузлу, зобов'язаний очікувати результат обробки даного запиту.
На наступному малюнку показано взаємодію між майстром, темами, службами і вузлами:
На наведеній вище схемі показано зв'язок, що здійснюється за допомогою майстра ROS (ROS Master) і двох вузлів ROS: вузла 1 (Node 1) і вузла 2 (Node 2). Перш ніж почати обмін даними між цими двома вузлами, необхідно запустити майстер ROS. Master ROS є посередником, що дозволяє встановити зв'язок і обмінюватися інформацією між вузлами. Наприклад, вузол 1 (Node 1) хоче опублікувати тему/xyz з типом повідомлення abc. Для цього він звертається до ROS Master і повідомляє, що збирається опублікувати тему / xyz з повідомленням виду abc і поділитися нею з іншими вузлами. А інший вузол, наприклад Вузол 2 (Node 2), бажає підписатися на цю тему/xyz з типом повідомлення abc. Майстер повідомляє вузлу 2, який вузол опублікував запитувану інформацію, і виділяє порт для зв'язку цих двох вузлів безпосередньо, минаючи майстер ROS. Таким чином, як уже згадувалося раніше, Master ROS являє собою DNS – сервер, що забезпечує пошук запитуваної вузлами інформації. Раніше вже згадувалося, що в ROS застосовується протокол зв'язку TCPROS[5], що використовує для зв'язку в основному сокети TCP/IP.
6. Основні поняття роботів з диференціальним приводом
Проектований робот буде оснащений двома провідними колесами, які ми встановимо на протилежних сторонах шасі. Управляти напрямком руху буде реалізовано за допомогою різниці швидкості обертання ведучих коліс. Наприклад, якщо швидкість обертання правого колеса буде менше, ніж швидкість обертання лівого, робот буде повертати вправо, і навпаки, якщо праве колесо буде обертатися швидше лівого, робот буде повертати вліво[6].
Найбільш важлива частина мобільного робота – це система управління. За допомогою неї робот орієнтується і переміщається в просторі. Однією з найпростіших і рентабельних систем управління є система диференціального приводу. Диференціальний привід складається з двох незалежних один від одного ведучих коліс, встановлених на загальній осі. Кожне провідне колесо приводиться в рух окремим двигуном. Диференціальний привід – це неголономна система, яка має обмеження в зміні положення робота. Прикладом неголономної системи є автомобіль, оскільки він не може змінити положення без зміни пози. Таким чином, маючи три ступені свободи (3d), автомобіль за допомогою газу, гальма і рульового управління може використовувати тільки два ступені свободи (2D).
7. Програмування робототехніки з Arduino і ROS
Роботична операційна система ROS є досить потужною платформою для створення роботичних систем, яка включає все необхідне для розробки своїх проектів від найпростіших програмних компонентів, званих вузлами, і протоколу обміну даними до середовища симулювання реальної роботичної платформи Gazebo. В основному ROS використовується в зв'язці з такими мікроконтролерами, як Raspberry Pi і Blackbone, які володіють великими обчислювальними можливостями і власною операційною системою. Arduino є популярною платою для прототипування, що отримало широке поширення в зв'язку з виниклим не так давно поняттям Розумний будинок і яка явлется ідеальною стартовою точкою для новачків в області мікроелектроніки і робототехніки.
В даний момент існує не так багато інформації про використання роботичної операційної системи ROS в зв'язці з мікроконтролером Arduino. В основному це зарубіжні інтернет ресурси і книги. Для використання ROS з платою Arduino існує офіційна бібліотека в ROS-rosserial_arduino. Ця бібліотека дозволяє публікувати повідомлення в Теми і підписуватися на повідомлення з конкретних тем. Також він дозволяє використовувати ros:: Time і TF і публікувати дані TF трансформації. Так як в даній роботі Arduino буде виконувати лише функцію управління двигунами, то слід слід розглянути мікрокомп'ютер Raspberry Pi, на якому буде встановлена ROS, і який буде виконувати всі інші завдання.
8. Raspberry Pi
Raspberry Pi – це маленький, розміром з кредитну карту, комп'ютер вартістю близько 25 доларів за базову модель і 35 – за більш просунуту. Raspberry Pi заснований на процесорі з архітектурою ARM11 і частотою в 700 МГц. В останніх версіях прошивки офіційно дозволили розганяти процесор до 1000 МГц, що забезпечує досягнення прийнятної продуктивності при низькому енергоспоживанні. Raspberry Pi по суті являє собою повноцінний системний блок, за допомогою якого можна навчати роботі з комп'ютером, відтворювати відео, програмувати, користуватися Інтернетом, слухати музику[7]. Одна з головних і привабливих особливостей Raspberry Pi – наявність на платі апаратних портів введення/виведення GPIO (General Purpose Input/Output, входи/виходи загального призначення), що відкриває перспективи використання його в робототехнічних проектах.
Raspberry Pi працює в основному на операційних системах, заснованих на ядрі Linux. Це є перевагою, так як ROS розробляється якраз бля Linux–подібних систем.
Висновки
в ході виконання роботи була розроблена конструкція мобільного робота з диференціальним приводом.
в роботі була розглянута кінематика диференціального приводу з урахуванням рухомої платформи.
була зібрана механічна модель робота, для якої, на базі мікроконтролера Arduino UNO і мікрокомп'ютера Raspberry Pi 3b+ була розроблена система управління за допомогою операційної системи ROS. В результаті досліджень отримані практичні навички і знання в області розробки системи для спільного управління декількома приводами.
при написанні даного реферату магістерська робота ще не завершена. Остаточне завершення: Червень 2021 року. Повний текст роботи і матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.
Список джерел
- Москвичев А. А., Кварталов А. Р., Устинов Б. В.Захватные устройства промышленных роботов и манипуляторов.-М.:Форум, Инфра-М, 2015. — 176 c.
- Sam Cubero Industrial Robotics. Theory, Modelling and Control / Pro Literatur Verlag, 2006. – 964 pp.
- Lorenzo Sciavicco, Bruno Siciliano Modelling and Control of Robot Manipulators / CreateSpace Independent Publishing Platform, 2001. — 371 pp.
- Matt Lombard Mastering SolidWorks / Sybex, 2018. — 1248 pp.
- David Planchard Official Certified SOLIDWORKS Professional (CSWP) Certification Guide / SDC Publicaations, 2017. — 192pp.
- MatLab. Руководство для начинающих. Основные матричные операции [Електронный ресурс]. — Режим доступу: https://rcs.chemometri...
- SimMechanics: Matlab как средство моделирования робототехнических систем [Електронный ресурс]. — Режим доступу: http://trudymai.ru...
- Фу К., Гонсалес Р., Ли К. Робототехника.-М.: Мир, 1989. — 624 с.
- Анучин А.С. Системы управления электроприводов: учебник для вузов. — М.: Издательский дом МЭИ, 2015. — 373 с.
- MBED OS. APIs [Електронный ресурс]. — Режим доступу: https://os.mbed...