О проекте Duckietown
Участники проекта
Руководитель
О проекте
Duckietown — это исследовательский проект MIT, направленный на разработку и изучение алгоритмов управления автономными автомобилями. Проект можно разделить на две части:
1) Duckiebot — бот-машинка, управляемая бортовой RaspberryPi.
2) Собственно, Duckietown — городок, используемый в качестве тестового полигона для Duckiebot.
Машинки ездят по городу, соблюдая правила движения и избегая столкновений с попадающимися на пути объектами. Мы задались целью воспроизвести этот проект на базе CSC.
Сборка Duckiebot
Сначала у нас были лишь две вещи:
— Документация от авторов (в процессе написания).
— Одна RaspberryPi 1.
Согласно авторскому списку требований, RPi должна быть версии 2. И мы заказали именно её, а на время доставки решили попробовать настроить RPi 1. В течение двух недель мы пытались заставить её работать, и у нас даже были некоторые успехи на этом поприще, но в конце концов мы узнали, что эта RPi вообще не считается работающей, о чём предыдущий её пользователь честно нацарапал на LAN-порту. В итоге, когда наконец пришла RPi 2, мы уже довольно хорошо изучили проблематику установки ПО на RPi и представляли, какие варианты действий у нас есть, помимо тех, что описаны авторами Duckietown.
Но медленная доставка не была такой уж серьёзной неприятностью. Куда хуже было, если компонент вообще отсутствовал в продаже. В частности, так было с Adafruit DC & Stepper Motor HAT for Raspberry Pi, который мы заменили на Arduino. Для этого пришлось переработать код модуля, отвечающего за вращение колёс, переведя его на работу с драйвером для Arduino.
Сборка Duckietown
Как было показано на фото выше, городок для ботов представляет собой множество размеченных дорог, с возможностью установки светофоров и знаков. Базируется всё это на спортивных матах для тренажёров (или на «мягком спортивном полу», по-разному называется). Полоски делаются из любой цветной ленты. Мы взяли обычную цветную изоленту и столкнулись с неприятной особенностью — в процессе разматывания она немного растягивается и после наклеивания пытается скукожиться обратно. Но, несмотря на это, городок мы собрали. Для начала была изготовлена пробная версия города.
Всё вместе
И наконец, наша версия проекта Duckietown в деле.
Изображение, получаемое с камеры — единственный источник информации о мире для бота. Никаких ИК-портов, GPS и прочего — только анализ изображения.
Процесс распознавания линий
На обоих видео заметно, что бот то и дело заезжает за линии, странно ведёт себя на поворотах и игнорирует стоп-линию. Со временем некоторые проблемы были исправлены.
Финальное поведение бота
Заключение
В данный момент бот неидеален, но у нас ещё всё впереди! Тем более, что проект сейчас преподаётся как курс CSC и у нас есть шанс привлечь новых людей. Если же говорить о проекте Duckietown в целом, то его наработки вполне могут быть применены в реальных устройствах в ближайшей перспективе. Тем более, что тема автономно-управляемых автомобилей на слуху, и некоторые производители уже тестируют прототипы таких машин.