Автономный робот-газонокосилка

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

Запрос

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

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

Решение

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

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

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

Устройство выполнено на базе микроконтроллера STM32F4 и работает под управлением RTOS. Робот оборудован множеством периферийных устройств, в числе которых Wi-Fi, GPS, GSM, камера, инерциальный измерительный блок, радио-модуль NRF24L01 и ЖК-дисплей.

Разработка прошивки

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

Разработка встроенного ПО

Система автономной навигации, использующая компьютерное зрение на основе OpenCV, позволяет роботу обнаруживать и распознавать препятствия.
      Процесс сборки прототипа специалистами KEDR Solutions
      Сборка прототипа

      Функционал робота-газонокосилки

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

      • Мониторинг состояния. Если кто-то попытается украсть робота, машина подаст сигнал тревоги по Wi-Fi или 3G. Кроме того, робот отправит оповещение, если его нож за что-то зацепится или застрянет.
      • Обнаружение объектов. Робот оснащен датчиком приближения, что позволяет ему обнаруживать объекты и людей. При обнаружении человека в зоне работы робот выключается.
      • Огибание препятствий. Робот огибает встречающиеся в саду препятствия. Если один из его сенсоров обнаруживает помеху, робот немедленно останавливается и поворачивается в другом направлении.
      • Визуальная одометрия. Робот может распознавать поверхность, на которой он работает. С помощью алгоритмов компьютерного зрения он распознает траву и ее цвет.
      • Система позиционирования. Мы разработали фильтр Калмана для системы, состоящей из множества датчиков: акселерометра, гироскопа, магнитометра и GPS, которые используются для определения местоположения машины.
      • Магнитный ключ. В чрезвычайной ситуации робота можно отключить с помощью магнитного ключа.
      Использованные технологии
      • В проекте использовался микроконтроллер серии STM32F4 с ядром Cortex-M4.
      • Прошивка была разработана на базе FreeRTOS.
      • Для разработки прошивки мы использовали Microsoft Visual Studio с плагином Visual GDB.
      • В проекте использовалась однокристальная камера с DVP-шиной.
      • Устройство может подключаться к облаку (серверу) по Wi-Fi или 3G.
      • Первая версия оснащена жидкокристаллическим сенсорным экраном, на котором отображается пользовательский интерфейс, и радио-модулем NRF24L01, который позволяет устройству связываться с зарядной базой.
      • Для точного позиционирования робот использует GPS, акселерометр, гироскоп, компас (магнитометр) и алгоритмы компьютерного зрения.
      • Для создания принципиальной схемы и проектирования печатной платы использовался Altium Designer.
      • Прошивка написана на C/C++.

      Итоги

      КЕДР Solutions смогла поставить проект на прочный технический фундамент и в то же время снизить стоимость разработки. Команда спроектировала аппаратную часть, создала прототип, написала прошивку и испытала устройство.

      Итогом разработки стало полностью готовое аппаратное обеспечение для автономного робота-газонокосилки, не требующего надзора. С помощью алгоритмов и датчиков – камеры, акселерометра и гироскопа – робот сканирует и наносит на карту область, где он будет работать. Кроме того, он оборудован схемой зарядки LiFePO4 аккумуляторов, а также модулем Wi-Fi и 3G.

      Чтобы установить зону работ, нужно лишь пройтись по газону с роботом на руках, и он запомнит границы участка. После этого робот сможет стричь газон круглые сутки семь дней в неделю. Когда у него закончится заряд, он сам отправится к зарядной базе, а после вернется к работе.
      КЕДР Solutions выполняет свои обещания. Больше всего меня впечатлила их гибкость. Они могут взять на себя полный цикл разработки – от проектирования аналоговых схем до создания сложных цифровых схем и программного обеспечения.
      Генеральный директор компании-заказчика