Найти в Дзене
Владимир Столбин

«Создание системы навигации мобильного робота в городской среде»

Содержание 1 ОПИСАНИЕ ПРЕДЛАГАЕМОГО РЕШЕНИЯ 1.1 Теоретическая часть 1.1.1 Динамическая модель 1.2 Создание управляющего приложения на ПК 1.2.1 Инструменты для создания проекта оконной программы на языке С# 1.2.2 Программная часть 1.2.3 Подключение к мобильному Bluetooth-соединения роботу посредством COM порта(UART), использование 1.2.4 Настойка подключения COM-порта 1.2.5 Программа для управления роботом с использованием Bluetooth-соединения на Android 1.3 Аппаратное обеспеченье 1.3.1 Характеристики управлявшей платы- Микроконтроллер STM32f405RG 11 1.3.2 Характеристики Bluetooth-модуля HC-05 1.3.3 Работа с Bluetooth сигналом 1.4 Выводы ЗАКЛЮЧЕНИЕ СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ПРИЛОЖЕНИЯ 1 ОПИСАНИЕ ПРЕДЛАГАЕМОГО РЕШЕНИЯ 1.1 Теоретическая часть 1.1.1 Динамическая модель При прямолинейном движении и повороте на гусеничный мобильный робот действуют внешние силы, происхождение и характер которых различны. Сопротивление повороту слагается из различных по своей природе состав

Содержание

1 ОПИСАНИЕ ПРЕДЛАГАЕМОГО РЕШЕНИЯ

1.1 Теоретическая часть

1.1.1 Динамическая модель

1.2 Создание управляющего приложения на ПК

1.2.1 Инструменты для создания проекта оконной программы на языке С#

1.2.2 Программная часть

1.2.3 Подключение к мобильному Bluetooth-соединения роботу посредством COM порта(UART), использование

1.2.4 Настойка подключения COM-порта

1.2.5 Программа для управления роботом с использованием Bluetooth-соединения на Android

1.3 Аппаратное обеспеченье

1.3.1 Характеристики управлявшей платы- Микроконтроллер STM32f405RG

11 1.3.2 Характеристики Bluetooth-модуля HC-05

1.3.3 Работа с Bluetooth сигналом

1.4 Выводы

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЯ

1 ОПИСАНИЕ ПРЕДЛАГАЕМОГО РЕШЕНИЯ

1.1 Теоретическая часть

1.1.1 Динамическая модель

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

трения поверхности траков гусеницы по грунту при угловом перемещении опорной ветви гусеницы относительно полосы поворота;

суммарной реакции смятия, сдвига и среза грунта торцевыми и выступающими частями траков;

сопротивлением перемещению валика грунта, нагребающего гусеницами и катками.

Сила сопротивления повороту зависит от радиуса поворота, удельного давления на грунт и угловой скорости поворота.

Положение мобильного робота на плоскости поворота определяется радиусом поворота R и углами поворота. При повороте на месте или низкой скорости центробежная сила (сила инерции) равна нулю или небольшая. При повороте на высокой скорости центробежная сила является значительной и в связи с дополнительной силой бокового сопротивления описывается неровными треугольниками.

Центробежная сила = ̇2, где m – масса мобильного робота. Сила бокового сопротивления = 0,5 при равномерном распределении центробежной силы и при длине гусеницы равной. Боковое сопротивление создает момент сопротивления Мг, который противоположен направлению поворотного движения робота. Момент сопротивления повороту Мг можно вычислить путем интегрирования элементарного бокового сопротивления вдоль траектории движения:

где μl -коэффициент бокового сопротивления; -ускорение силы тяжести. Когда транспортное средство на месте или низкой скорости, центробежная сила, может быть незначительной, таким образом, что точки С и ось О совпадают, то момент сопротивления может быть вычислен

где

Тогда

-2

где Н - высота центра тяжести, - момент инерции относительно вертикаль- ной оси Z, Мс - момент относительно центра масс, ro,i − продольные силы сопротивления, μr - коэффициент продольного сопротивления; α - угол скольжения, l - коэффициент бокового сопротивления, W - вес робота[1]

Рисунок 1 Динамическая модель движения
Рисунок 1 Динамическая модель движения

1.2 Создание управляющего приложения на ПК

1.2.1 Инструменты для создания проекта оконной программы на языке С#

Программа нам понадобится для управления движением робота на гусеничном шасси.

Концепция операционной системы Windows состоит в том, что программа взаимодействует с пользователем в интерактивном режиме. Это реализуется с помощью графических интерфейсов. Под графическим интерфейсом пользователя (Graphical User Interface - GUI) подразумевается тип экранного представления, при

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

Рисунок 2 Интерфейс MS Visual Studio
Рисунок 2 Интерфейс MS Visual Studio

Windows имеет набор стандартно выглядящих элементов управления и отлаженный механизм работы с ними. Но часто возникает нужда добавить необходимый несуществующий элемент управления или просто изменить внешний вид элемента. Многие программы используют свой графический интерфейс пользователя для придания большей привлекательности со стороны пользователей. Каждый разработчик пытается вложить в программу что-то свое, необычное, не похожее на остальных. Конечно, функциональность играет основную роль, но удобный и красивый интерфейс не менее важен и проблема это довольно серьезная. Microsoft Visual Studio предоставляет разработчику приложения широкие возможности быстрого и качественного проектирования графического интерфейса пользователя - различных окон, кнопок, меню и т.д. На Рисунке 2 показан интерфейс Microsoft Visual Studio[2].

Виджет-примитив графического интерфейса пользователя, имеющий стандартный вид и выполняющий стандартные действия.

Рисунок 3 – Панель инструментов Windows Forms
Рисунок 3 – Панель инструментов Windows Forms

Окно разработки Приложения Windows Form (см. Рисунок 3) предлагает пользователю "перетаскивать" необходимые ему элементы в окна разрабатываемого проекта. Все элементы сгруппированы по назначению. Следующие группы виджетов можно выделить как основные и наиболее часто используемые:

"Стандартные элементы управления" - содержит такие привычные формы, как "Кнопка", "Метка", "Список", "Изображение", "Радиокнопка", "Текстовое поле" и прочие. На основе этих базовых элементов составляется большая часть интерфейса, поскольку именно в их действиях сосредоточена большая часть функционала интерфейса. Рисунок 3 Панель инструментов WindowsForm.

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

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

расположенному на окне, а также координата расположения на окне и размер виджета.

Программа должна обладать следующими функциями:

Возможность подключаться к определенному COM-порту, номер которого задается пользователем, а также отключаться от данного COM-порту.

Возможность управления:

движения вперед

движения назад

поворот влево (вправо) на 300

остановка

движения вперед и влево (вправо)

движения назад и влево (вправо)

Рисунок 4 – внешний вид приложения
Рисунок 4 – внешний вид приложения

1.2.2 Программная часть

Windows API — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows корпорации «Майкрософт». Является самым прямым способом взаимодействия приложений с Windows. Win32 - самая популярная версия Windows API.

Для создания различных приложений и проектов с помощью языка С# достаточно создать приложение Windows Forms, по умолчанию предоставляющее доступ ко всем функциям системы.

Библиотека Windows Forms была разработана как часть .NET Framework для упрощения разработки компонентов графического интерфейса пользователя.

Windows Forms построена на основе устаревающего Windows API и представляет собой, по сути, обертку низкоуровневых компонентов Windows.

Windows Forms предоставляет возможность разработки кроссплатформенного графического пользовательского интерфейса. Однако, Windows Forms фактически является лишь оберткой Windows API-компонентов, и ряд её методов осуществляют прямой доступ к Win32 функциям обратного вызова, которые недоступны на других платформах. Также при разработке приложения используются следующие пространства имен:

System.Windows.Forms - пространство имен содержит классы для создания приложений Windows, пользующихся преимуществами полного пользовательского интерфейса, предоставляемых в операционной системе

Microsoft Windows.

System.ComponentModel - предоставляет функциональные возможности, необходимые для узлов.

System.Collections - представляет строго типизированный список объектов, доступных по индексу. Поддерживает методы для поиска по списку, выполнения сортировки и других операций со списками.

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

System.IO – обеспечивает доступ к устройствам ввода вывода[2].

1.2.3 Подключение к мобильному Bluetooth-соединения роботу посредством COM порта(UART), использование

Передача данных между компьютером и устройством происходит с помощью канала Bluetooth. Для обеспечения такого способа передачи данных программе необходим доступ к COM-порту компьютера.

COM-порт - последовательный порт - интерфейc, которым оснащен компьютер. Порт называется последовательным, так как информация через него передается по одному биту, последовательно бит за битом. Данный порт, в сравнении с другими "последовательными" технологиями, обладает отличительной особенностью: в нем отсутствует какое-либо временное требование между 2 байтами. Временные требования существуют только между битами одного байта. Кроме того, в данной технологии нет такого понятия, как "пакет". Другие

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

При добавлении устройства Bluetooth к компьютеру создаются входной и выходной COM-порты. Входной COM-порт позволяет устройству подключаться к программе на компьютере, а выходной COM-порт - программе на компьютере к устройству.

технологии Bluetooth используются передатчики небольшого радиуса действия. Бывают двух типов: встроенные непосредственно в устройство, внешние

— подключаемые через РС-карту или USB-порт. Для Bluetooth нет необходимости прямой видимости приемника.

1.2.4 Настойка подключения COM-порта

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

Для того что бы создать соединение через последовательный порт достаточно создать экземпляр класс SerialPort определенный в пространстве имен System.IO.Ports

у заданного экземпляра вызвать метод Open(). Параметрами функции является: имя файла(порта).

Для настройки параметров порта достаточно обращаться к свойствам объекта

SerialPort. В нашем слачае необходимо изменить параметры:

Baud Rate = 38 400 – скорость передачи в бодах.

Data bits = 8 кол битов.

StopBits = 1 последний бит последовательности.

Для завершения работы порта необходимо вызвать метод Close().

1.2.5 Программа для управления роботом с использованием Bluetooth-соединения на Android

После создания программы управления роботом на ПК было принято решение создания аналогичной программы на Android. Для решения этой задачи было использовано приложение Bluttoth Electronics.Данное приложение представляет собой конструктор. С его помощью можно создавать графические модели управления проектов с использованием Bluetooth.

Рисунок 5 – приложения Bluttoth Electronics
Рисунок 5 – приложения Bluttoth Electronics
Рисунок 6 – приложения на Bluttoth Electronics для управления роботом. Приложение на Android работает по тому же алгоритму что программа на ПК.
Рисунок 6 – приложения на Bluttoth Electronics для управления роботом. Приложение на Android работает по тому же алгоритму что программа на ПК.

1.3 Аппаратное обеспеченье Микроконтроллер STM32f405RG работает в связке с Bluetooth-модулем HC-05

1.3.1 Характеристики управлявшей платы- Микроконтроллер STM32f405RG

Внутренний 16 MHz RC (точность 1% )

Генератор 32 кГц для RTC с калибровкой

Внутренний 32 кГц RC с калибровкой

12

Режимы сна, остановки и ожидания

До 1 Мбайт флэш-памяти

До 192 + 4 Кбайт SRAM, включая 64 Кбайт оперативной памяти данных CCM (Core coupled memory)

Гибкий статический регулятор памяти, SRAM, PSRAM, nor и NAND 1.3.2 Характеристики Bluetooth-модуля HC-05 Диапазон частот радиосвязи 2,4–2,48 ГГц Адаптивное переключение канала Мощность передачи 0,25–2,5 мВт Чувствительность –80 dBм Дальность связи 10 м Предельная скорость обмена данными 115200 бод Питание напряжение, В номинальное 3,3 диапазон 3,1–3,6 ток, мА установление связи 30–40 передача 8 Температура хранения –40…85 С Рабочий диапазон температур –25…75 С Размеры 27 x 13 x 2,2 мм

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

1.3.3 Работа с Bluetooth сигналом

Для удаленного управления роботом мы использовали bluetooth модуль CZ-HC-05. Данный модуль подключался к микроконтроллеру STM32f405RG. Далее контроллер обрабатывает полученные от bluetooth модуля данные. И в зависимости от них посылает определённые управлявшие сигналы на драйверы двигателей, которые в свою очередь управляют скоростью и направлением вращения двигателей шасси робота.

Микроконтроллер обрабатывает полученные от bluetooth модуля данные по следующему алгоритму:

Рисунок 6 Алгоритм работы робота
Рисунок 6 Алгоритм работы робота

1.4 Выводы

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

Использование бесплатного программного обеспечения Microsoft Visual Studio позволяет использовать мощные средства создания приложений для ПК. Операционная система Windows имеет базовый набор элементов управления, но это не означает, что запрещено добавлять свои элементы. С помощью данных средств разработки было создано приложения для ПК, позволяющее управлять мобильный роботом по средствам канала связи Bluetooth. Данное приложение позволяет выполнять различные операции, находясь на удаленном расстоянии от робота.

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

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

Исследование работоспособности

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

1. Движение прямо в переднем и заднем направлением;

2. Движение по окружности по часовой стрелке и против;

3. Движение вправо и влево;

4. Остановка

5. Экстреная остановка в слуае сбоя приема передачи данных

В процессе тестирования были отработаны и доработаны алгоритмы движения

робота. Данный робот успешно справился со всеми контрольными тестами.

ЗАКЛЮЧЕНИЕ

В процессе работы были изучены принципы движения гусеничного робота. Была создана система телеметрии робота через Bluetooth. Было реализовано два способа управления роботом через ПК и через мобильное устройство на Android. Следующим этапом работы над данным проектом является создание системы навигации мобильного робота в городской среде. Для решения этой проблемы робот будет оборудован датчиками линии, определения цвета и дальномерами.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. «Управление движением гусеничных мобильных роботов в недетермированных условиях» Амин Нихад Мохаммед. (НПИ) имени М.И Платова Диссертация на соискание ученой степени кандидата технических наук [Научная статья]

2. Книга «Полный справочник по С#» Шилдт Герберт 2004 год.

3. https://appagg.com/android/tools/bluetooth-electronics-16216322.html?hl=ru

ПРИЛОЖЕНИЯ

Методы для взаимодействия с контроллером

Соединение по Bluetooth

private void Connect_Click(object sender, EventArgs e)

{

if (_serialPort.IsOpen == true)

{

_serialPort.Close();

button1.Text = "Connect";

}

else

{

// serial init

_serialPort.PortName = textBox1.Text;

_serialPort.BaudRate = 38400;

_serialPort.Parity = Parity.None;

_serialPort.DataBits = 8;

_serialPort.StopBits = StopBits.One;

_serialPort.Handshake = Handshake.None;

_serialPort.ReadTimeout = 10;

_serialPort.WriteTimeout = SerialPort.InfiniteTimeout; _serialPort.Open();

Connect.Text = "Disconnect";

}

}

Код для отправки

private void startup_Click(object sender, EventArgs e)

{

_serialPort.Write(_startUp1, 0, _startUp1.Length); _serialPort.Write(_startUp2, 0, _startUp2.Length);

}

Кодировка команд для управлявшей платы

Вперед- 1

Влево- 2

Вправо- 3

Назад-4

Стоп- 5

Назад-Влево- 6

Назад-Вправо-7

Вперед-Вправо- 8

Вперед-Влево- 9