Введение 5
1 Разработка алгоритма движения беспилотного объекта 7
1.1 Проектирование алгоритма движения беспилотного объекта 7
1.2 Цветовой фильтр 10
1.3 Алгоритм поиска контуров на изображении 12
1.4 Требования, предъявляемые к беспилотному объекту 15
2 Программная реализация алгоритма движения беспилотного объекта .... 16
2.1 Описание используемых инструментов 16
2.2 Калибровка цветового фильтра 17
2.3 Принцип работы основной программы 18
3 Тестирование разработанной программы 32
3.1 Тестирование разработанной программы для моделирования
алгоритма движения беспилотного объекта 32
3.2 Анализ результатов тестирования 37
Заключение 40
Список используемой литературы 41
Приложение А Листинг программы для калибровки цветового фильтра 43
Приложение Б Листинг программы для моделирования разработанного алгоритма движения беспилотного объекта 44
Технический прогресс никогда не стоит на месте. И робототехника также стремительно развивается. Роботы уже занимают значительную часть в жизни общества. Их применяют во многих сферах: начиная от бытовых дел (робот-пылесос) и заканчивая различными производствами, где основную работу выполняет сам робот, а человек лишь контролирует процесс исполнения.
В России уже продолжительный период времени наблюдается тенденция полной автоматизации технологического процесса, однако вопрос о том, когда она завершится, будет открыт ещё много лет. Производства стараются частично или полностью автоматизировать те процессы, которые не требуют долгосрочных затрат.
Одним из примеров таких процессов является логистика внутри складских помещений. Производства оборудуют склады специальными автоматизированными погрузчиками и тележками, которые позволят заменить человека в цепочки процесса логистики.
Вопрос обеспечения возможности навигации внутри помещения является индивидуальным для каждого автоматизированного устройства. В одних случаях требуется специальным образом подготовить помещение при помощи разметки на полу, а в других требуется установить специальные метки на стенах и полках.
Актуальность бакалаврской работы обусловлена поиском такого программного обеспечения, которое позволит сократить затраты на внедрение автоматизированных и беспилотных объектов.
Цель данной работы - разработка алгоритма, который позволяет перемещаться беспилотному объекту по разметке заранее определённого маршрута.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Проанализировать способы нахождения контуров различных объектов на изображении;
2. Выделить требования, предъявляемые к беспилотному объекту и его программному обеспечению;
3. Разработать алгоритм движения;
4. Выполнить программную реализацию алгоритма;
5. Провести тестирование разработанного алгоритма;
6. Сформировать вывод о полученных результатах.
В первом разделе произведён анализ уже существующих алгоритмов движения беспилотных объектов на примере роботов, специализирующихся на перемещении грузов в складских помещениях. На основе полученных данных выработаны требования, предъявляемые как к беспилотному объекту, так и к программному обеспечению. На основе этих требований был разработан алгоритм движения беспилотного объекта.
Во втором разделе описана программная реализация двух программ, которые необходимы для работы и демонстрации разработанного алгоритма. Первая программа осуществляет калибровку цветового фильтра, значения, полученные в этой программе, необходимы для корректной работы второй программы. Вторая программа реализует разработанный алгоритм, а также его визуализирует при помощи графического интерфейса.
В третьем разделе выполнено тестирование разработанного программного обеспечения и проанализировано его быстродействие.
Разработанный алгоритм позволит упростить процесс автоматизации на предприятии, так как алгоритму требуется только наличие камеры, которую зафиксировали на определённой высоте и линия маршрута, по которой должен двигаться беспилотный объект. Наличие различных дорогостоящих датчиков (например, ультразвуковые датчики для определения расстояния) не требуются.
В ходе выполнения выпускной квалификационной работы был разработан алгоритм движения беспилотного объекта, который позволяет перемещаться по линии маршрута на полу, при этом линия может быть любого цвета. Также были разработаны две программы. Первая программа реализует калибровку цветового фильтра. Цветовой фильтр необходим для того, чтобы настроить работу алгоритма на определённый цвет линии маршрута. Полученные данные с программы калибровки необходимо использовать во второй программе. Вторая программа реализует непосредственно сам алгоритм движения и визуализирует его при помощи кроссплатформенного графического интерфейса, предоставляемого библиотекой PyGame.
В процессе выполнения были проанализированы существующие решения беспилотных роботов-погрузчиков в сфере складской логистики, которые предоставляют как отечественные производители, так и зарубежные. Проанализировав полученные данные, были выработаны требования, предъявляемые к беспилотному объекту и его программному обеспечению: беспилотный объект должен быть оборудован камерой с разрешением матрицы не менее 640х480 пикселей, камера должна быть зафиксирована на определённой высоте от пола, а высота не должна меняться в процессе движения; также беспилотный объект должен иметь возможность выполнять код для языка Python версии 3.8 с установленными пакетами pygame, opencv- python, cv2 и numpy.
Разработанный алгоритм позволит уменьшить затраты на внедрение беспилотных объектов, задача которых заключается в перемещении по заранее определённому маршруту, благодаря требованию к наличию только зафиксированной камеры. Такие беспилотные объекты будут значительно дешевле по сравнению с другими аналогами, которым необходимо наличие различных датчиков (например, ультразвуковых).
1. Вордерман, К. Программирование на Python. / К. Вордерман, К. Стили, К. Квигли. - М.: Манн, Иванов и Фербер, 2017. - 346 c
2. Различные цветовые модели и их использование [Электронный
ресурс]. - URL:
ййр://1ш.зрЬз1и.ги/Различные_цветовые_модели_и_их_использование
3. Саммерфилд, М. Программирование на Python 3. Подробное руководство / М. Саммерфилд. - М.: Символ, 2016. - 608 с.
4. Синтез цвета // Фотокинотехника: Энциклопедия / Гл. ред. Е. А.
Иофис. — М.: Советская энциклопедия, 1981. — 447 с.ОрепСУ на python: цветовой фильтр [Электронный ресурс] - URL:
https://robotclass.ru/tutorials/opencv-color-range-filter/
5. События клавиатуры. Урок 4 курса «Pygame. Введение в разработку
игр на Python» [Электронный ресурс]. - URL:
https://younglinux.info/pygame/key
6. Уэйкерли Дж. Ф. Проектирование цифровых устройств, том 2. — М.: Постмаркет, 2002. С. 620—621.
7. Фильтр цвета с OpenCV [Электронный ресурс]. - URL: http://espressocode.top/filter-color-with-opencv/
8. Ян Эрик Солем Программирование компьютерного зрения на языке Python. / пер. с англ. Слинкин А. А. - М.: ДМК Пресс, 2016. - 312 с.
9. Canyon CNS-CWC6N. Technical specification [Электронный ресурс].
- URL: https://canyon.eu/wp-content/uploads/RS12807_CNS-CWC6N-_EN.pdf
10. Drawing graphics primitives - Pygame tutorial 2019 documentation
[Электронный ресурс]. - URL:
https://pygame.readthedocs.io/en/latest/2_draw/draw.html
11. Joseph Howse. OpenCV Computer Vision with Python. - UK: Livery Place, 2013. - 122 p. - ISBN 978-1-78216-392-3
12. OpenCV на python: цветовой фильтр [Электронный ресурс] - URL: https://robotclass.ru/tutorials/opencv-color-range-filter/
13. OpenCV: Contour Approximation Modes [Электронный ресурс]. -
URL: https: //docs. opencv.org/master/d3/dc0/group imgproc shape. html
14. OpenCV: Retrieval Modes [Электронный ресурс]. - URL:
https: //docs.opencv.org/master/d3/dc0/group imgproc shape .html#ga819779b9
857cc2f8601e6526a3a5bc71
15. PyGame documentation [Электронный ресурс]. - URL: https://www.pygame.org/docs/
16. Pygame Mouse Click and Detection - CodersLegacy [Электронный ресурс]. - URL: https://coderslegacy.com/python/pygame-mouse-click/
17. Raspberry Pi 4 Model B specification [Электронный ресурс]. - URL: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/
18. Samyak Datta. Learning OpenCV 3 Application Development. - UK: Livery Place, 2016. - 305 p. - ISBN 978-1-78439-145-4
19. Suzuki, S. and Abe, K., Topological Structural Analysis of Digitized Binary Images by Border Following. CVGIP 30 1, pp 32-46 (1985)
20. Teh, C.H. and Chin, R.T., On the Detection of Dominant Points on Digital Curve. PAMI 11 8, pp 859-872 (1989)