Українська   English
ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

По последним данным, сегодня в мире работают 1,8 миллионов самых различных роботов – промышленных, домашних, роботов–игрушек. При этом самое большое количество роботов используется в Южной Кореи, второе место занял Сингапур, третье – Япония, далее США, Китай. А в России роботов всего около 0,25% мирового рынка, что крайне мало[1].

Робототехника – прикладная наука, занимающаяся разработкой автоматизированных технических систем.

Робототехника опирается на такие дисциплины как электроника, механика, программирование. Выделяют строительную, промышленную, бытовую, авиационную, военную, космическую робототехнику. При создании робототехники нужно руководствоваться правилами, дружественное отношение к человеку должно быть главным в программировании роботов[2].

1. Актуальность темы

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

2. Цель и задачи исследования

Целью работы является построение мобильного робота с дифференциальным приводом. В работе будет использован микроконтроллер Arduino UNO, а так же микрокомпьютер Raspberri Pi 3 B+.

Мобильный робот с дифференциальным приводом

Рисунок 2.1 — Пример робота с дифференциальным приводом

3. Введение в ROS. Общие сведения

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

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

ROS – комбинация из потока данных (передачи сообщений), инструментов, возможностей и экосистемы[3]. В ROS встроены мощные инструменты для ее отладки и визуализации. Робот, оснащенный ROS, обладает такими возможностями, как навигация, определение местонахождения, составление карты, манипуляции и т. д. Они помогают создать мощные приложения для роботов. Приведенное ниже изображение показывает уравнение ROS:

Уравнение ROS

Рисунок 3.1 — Уравнение ROS

4. Концепции ROS

ROS состоит из трех основных уровней, таких как:

  1. Файловая система ROS;
  2. Вычислительный граф ROS;
  3. Сообщество ROS.

Основная задача файловой системы ROS – организация файлов на диске. Основные термины файловой системы ROS:.

5. Вычислительный граф ROS

Вычислительный граф ROS – это одноранговая cеть систем ROS, назначение которой – обработка всех данных. Основными понятиями вычислительной графики ROS являются узлы, Мастер ROS, сервер параметров, сообщения и службы.

Вычислительный граф ROS, отображающий связь элементов в сети

Рисунок 5.1 — Вычислительный граф ROS, отображающий связь элементов в сети

На следующем рисунке показано взаимодействие между мастером, темами, службами и узлами:

Связь между узлами ROS и мастером ROS

Рисунок 5.2 — Связь между узлами ROS и мастером ROS

На приведенной выше схеме показана связь, осуществляемая с помощью Мастера 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).

Пример робота с дифференциальным приводом

Рисунок 6.1 — Пример робота с дифференциальным приводом

7. Программирование робототехники с Arduino и ROS

Роботическая операционная система ROS является довольно мощной платформой для создания роботических систем, которая включает все необходимое для разработки своих проектов от простейших программных компонентов, называемых узлами, и протокола обмена данными до среды симулирования реальной роботической платформы Gazebo. В основном ROS используется в связке с такими микроконтролерами, как RaspberryPi и Blackbone, которые обладают большими вычислительными возможностями и собственной операционной системой. Arduino является популярной платой для прототипирования, получившее широкое распространение в связи с возникшим не так давно понятием умный дом и которая явлется идеальной стартовой точкой для новичков в области микроэлектроники и робототехники.

Внешний вид Arduino UNO

Рисунок 7.1 — Внешний вид Arduino UNO

В данный момент существует не так много информации об использовании роботической операционной системы ROS в связке с микроконтроллером Arduino. В основном это зарубежные интернет ресурсы и книги. Для использования ROS с платой Arduino существует официальная библиотека в ROS — rosserial_arduino. Эта библиотека позволяет публиковать сообщения в темы и подписываться на сообщения из конкретных тем. Также он позволяет использовать ros::Time и TF и публиковать данные tf трансформации. Так как в данной работе Arduino будет выполнять лишь функцию управления двигателями, то следует следует рассмотреть микрокомпьютер Raspberri Pi, на котором будет установлена ROS, и который будет выполнять все остальные задачи.

8. Raspberry Pi

Raspberry Pi – это маленький, размером с кредитную карту, компьютер стоимостью порядка 25 долларов за базовую модель и 35 – за более продвинутую. Raspberry Pi основан на процессоре с архитектурой ARM11 и частотой в 700 МГц. В последних версиях прошивки официально разрешили разгонять процессор до 1000 МГц, что обеспечивает достижение приемлемой производительности при низком энергопотреблении. Raspberry Pi по сути представляет собой полноценный системный блок, с помощью которого можно обучать работе с компьютером, воспроизводить видео, программировать, пользоваться Интернетом, слушать музыку[7]. Одна из главных и привлекательных особенностей Raspberry Pi – наличие на плате аппаратных портов ввода/вывода GPIO (General Purpose Input/Output, входы/выходы общего назначения), что открывает перспективы использования его в робототехнических проектах.

Распиновка разъемов GPIO, DSI, CSI, 3.5 аудио/видео, I2S, тестовых точек в RaspberryPi

Рисунок 7.2 — Распиновка разъемов GPIO, DSI, CSI, 3.5 аудио/видео, I2S, тестовых точек в RaspberryPi

Raspberry Pi работает в основном на операционных системах, основанных на ядре Linux. Это является преимуществом, так как ROS разрабатывается как раз бля Linux–подобных систем.

Выводы

В ходе выполнения работы была разработана конструкция мобильного робота с дифференциальным приводом.

В работе была рассмотрена кинематика дифференциального привода с учетом подвижной платформы.

Была собрана механическая модель робота, для которой, на базе микроконтроллера Arduino UNO и микрокомпьютера Raspberry Pi 3B+ была разработана система управления при помощи операционной системы ROS. В результате исследований получены практические навыки и знания в области разработки системы для совместного управления несколькими приводами.

При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: июнь 2021 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

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

  1. Макаров И.М. Робототехника: История и перспективы – М.: МАИ, 2017. – 238 с.
  2. Шадрин П. Роботы будущего – М.: Махаон, 2014. – 130 с.
  3. А.А.Антонов. Архитектура ROS. –М.: ВГТУ, 2014 – 39 с.
  4. Джозеф Л. Изучение робототехники с использованием Python / пер. с анг. А. В. Корягина. – М.: ДМК Пресс, 2019. – 250 с.: ил.
  5. ROS. TCPROS. Official Ducumentation [Электронный ресурс]. – Режим доступа: http://wiki.ros.org/ros/tcpros
  6. Программирование робототехники с Arduino и ROS [Электронный ресурс]. – Режим доступа: : https://habr.com/ru/post/249401/
  7. Петин В. А. Микрокомпьютеры Raspberry Pi. Практическое руководство. — СПб.:БХВ–Петербург, 2015. —240 с.: ил. — (Электроника)