Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
научная работа 25-02-14.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.66 Mб
Скачать
      1. Реализация перемещения по линии.

До сих пор в статьях об алгоритмах, использующихся при движении вдоль линии, рассматривался такой способ, когда датчик освещенности как бы следил за левой или правой ее границей[ CITATION pro \l 1049 ]: чуть робот съедет на белую часть поля - регулятор возвращал робота на границу, начнет датчик перемещаться вглубь черной линии - регулятор выправлял его обратно. Средняя скорость такого перемещения не очень велика.

Рисунок 21. Движение с одним датчикам

Существуют примеры решения данной задачи с помощью 2 датчиков, которые дают более плавное движение[ CITATION Роб \l 1049 ].

Рисунок 22. Движение с 3 датчиками

В данном проекте для более ровного движения робота были использованы три датчика освещения. Центральный датчик постоянно находится на черной линии, 2 крайних на белом фоне для движения прямо. Если один из крайних датчиков показывает 0, то робот поворачивает в сторону датчика. Если все датчики показывают 0, то робот дошел до перекрестка, и он должен остановиться. Робот останавливается на каждом перекрестке, чтобы определить, куда двигаться далее. Если все датчики показывают 1, то робот вышел за линию, и робот будет пытаться искать линию, поворачивая на право.

Рисунок 23. Возможные положения датчиков относительно линии

Если центральный датчик находится на черной линии, а 2 крайних на белом фоне, то робот движется прямо.

Если один из крайних датчиков показывает 0, то робот немного поворачивает в сторону этого датчика.

Д

Рисунок 24. Позиционирование на перекрестке

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

Программный фрагмент на C#

case "000": _ezb.Movement.GoStop(); stop = true; break;

case "001": GoRight(); break;

case "010": _ezb.Movement.GoStop(); stop = true; break;

case "011": GoRight(); break;

case "100": GoLeft(); break;

case "101": GoForward(); break;

case "110": GoLeft(); break;

Расшифровка:

0 – датчик над черным фон, 1-над белым фоном.

      1. Создание плана передвижения робота

Создан план, по которому будет передвигаться робот по макету архива (рисунок 26).

Рисунок 25. Схема передвижения робота

      1. Обработка изображения камеры.

Р

Рисунок 26. Фото камеры

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

      1. Разработка программного обеспечения.

Программное обеспечение для управления роботом было написано на языке С# с использованием MS Visual Studio и SDK EZ-robot.

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

Рисунок 27. Форма "управления путями"

Для управления схвата создана форма «управление схватом». На этой форме задаются положения манипулятора. Из различных положений можно составить действия.

Рисунок 28. Форма "управление схватом"

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

Рисунок 29. Главная форма управления роботом

Для того чтобы отдать роботу команду принять на хранение, необходимо нажать на кнопку «принять на хранение».

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

Основной алгоритм действий робота представлен на рисунке 30.

Рисунок 30. Блок-схема принятия на хранение короба

Рисунок 31. Блок-схема выдачи короба

Структура базы данных представлена на рисунке 32

Рисунок 32. Структуры базы данных

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

Рисунок 33. Форма для тестовой настройки