Мобильный робот E-puck

undefined

Моби́льный ро́бот E-puck — небольшой мобильный робот, предназначенный для обучения и научных исследований[1][2]. Оригинальная версия была разработана Франческо Мондада и Михаэлем Бонани в Швейцарской федеральной политехнической школе Лозанны в 2004 году, но в настоящее время снята с производства[3]. Актуальной моделью является E-puck 2, выпущенная в январе 2018 года[1]. E-puck — это проект с открытым аппаратным обеспечением и открытым исходным кодом, который производится и продаётся несколькими компаниями.

Хотя E-puck был создан для образовательных целей, его низкая цена и большой набор датчиков делают его привлекательным объектом для исследовательских работ. E-puck использовался в коллективной робототехнике, эволюционной робототехнике и роботическом искусстве.

История разработки и версии

Первое поколение робота, E-puck, было разработано в Швейцарской высшей технической школе Лозанны (EPFL). Впоследствии производство этой версии было прекращено[4]. За время выпуска робот прошёл несколько аппаратных ревизий (HWRev 1.1, 1.2, 1.3), в ходе которых изменялись модели камеры, Bluetooth-модуля и акселерометра[5].

В январе 2018 года в результате совместной работы EPFL и компании GCtronic была выпущена значительно обновлённая версия — E-puck 2. Новая модель сохранила прежний форм-фактор и механическую конструкцию для совместимости с аксессуарами предыдущего поколения, но получила существенные аппаратные улучшения[6]. Ключевыми отличиями E-puck 2 стали более производительный 32-битный процессор, увеличенный объём оперативной и флеш-памяти, а также расширенные коммуникационные возможности, включающие Wi-Fi, Bluetooth Low Energy (BLE) и прямое подключение по USB[7]. Робот был оснащён новыми датчиками, в том числе фронтальным датчиком времени пролёта (ToF) для измерения расстояния и улучшенным инерциальным измерительным блоком (IMU) с магнитометром[8]. Кроме того, появилась возможность зарядки аккумулятора через USB-порт[7].

С момента выпуска в 2018 году новые аппаратные ревизии самого робота E-puck 2 не выпускались, однако платформа получала регулярные обновления программного обеспечения и прошивок[9][10]. Основные программные усовершенствования включали:

  • Июль 2018: Реализована поддержка связи по Wi-Fi[9].
  • Декабрь 2019: Добавлена функция локальной связи между роботами с использованием инфракрасных датчиков для исследований в области роевого интеллекта[9].
  • Декабрь 2023: Выпущен обновлённый образ системы с поддержкой ROS 2[9].
  • Январь 2025: Обновлена прошивка радиомодуля для обеспечения совместимости с macOS 15[8].

Характеристики

E-puck (первое поколение)

Технические характеристики E-puck (HWRev 1.3)
Характеристика Значение
Микроконтроллер 16-битный dsPIC30F6014A с ядром DSP
Тактовая частота /
Производительность
60 МГц (осциллятор), 15 MIPS[11]
Память 8 КБ ОЗУ, 144 КБ флеш-памяти
Датчики 8 × ИК-датчиков приближения и освещённости
1 × цветная камера VGA
1 × 3D-акселерометр
3 × всенаправленных микрофона
1 × ИК-приёмник для пульта ДУ
Исполнительные устройства 8 × красных светодиодов по периметру
1 × мощный красный светодиод спереди
1 × зелёная подсветка корпуса
1 × динамик
Связь RS-232, Bluetooth
Аккумулятор Li-Ion, 5 Вт·ч (около 3 часов автономной работы)

Процессор робота, dsPIC30F6014A, работает от осциллятора с частотой 60 МГц. Поскольку архитектура данного процессора требует 4 такта на выполнение одной инструкции, его фактическая производительность составляет 15 MIPS[11].

E-puck 2

Технические характеристики E-puck 2
Характеристика Значение
Микроконтроллер 32-битный STM32F407 с FPU и ядром DSP
Тактовая частота /
Производительность
168 МГц, 210 DMIPS
Память 192 КБ ОЗУ, 1024 КБ флеш-памяти
Датчики 8 × ИК-датчиков приближения и освещённости
1 × цветная камера VGA
1 × фронтальный датчик времени пролёта (ToF) с дальностью до 2 м
1 × 9-осевой IMU (3D-акселерометр, 3D-гироскоп, 3D-магнитометр)
4 × всенаправленных микрофона
1 × ИК-приёмник для пульта ДУ
Исполнительные устройства 4 × красных светодиода и 4 × RGB-светодиода по периметру
1 × мощный красный светодиод спереди
1 × зелёная подсветка корпуса
1 × динамик
Связь Wi-Fi, Bluetooth 2.0, BLE, USB
Аккумулятор Li-Ion, 1,8 А·ч (около 3 часов автономной работы), зарядка через USB
Максимальная скорость 15,4 см/с

Расширения

Возможности E-puck могут быть расширены с помощью плат расширения, которые устанавливаются на коннектор в верхней части робота. Благодаря сохранению форм-фактора и конструкции, E-puck 2 обеспечивает полную обратную совместимость с аксессуарами, разработанными для первого поколения робота[12].

Для роботов доступны следующие основные модули:

  • Pi-Puck — плата расширения для интеграции с одноплатным компьютером Raspberry Pi (версий Zero W или Zero 2 W)[13][14]. Модуль значительно увеличивает вычислительную мощность, позволяя запускать полноценные операционные системы, такие как Raspbian, и использовать программные экосистемы, включая ROS.
    • В мае 2024 года для Pi-Puck был представлен дополнительный компонент — монохромный OLED-дисплей с диагональю 0,91 дюйма и разрешением 128x32 пикселя для вывода служебной информации[15].
  • Датчики поверхности (Ground Sensor Module) — три инфракрасных датчика на дне для слежения за линией или обнаружения края поверхности (например, стола)[12].
  • Всенаправленная камера (Omnivision Extension) — модуль с камерой для детекции света и цвета, совместимый с платой Pi-Puck[16].
  • Дополнительные датчики расстояния — на робота могут устанавливаться дополнительные ToF-сенсоры для построения карты окружения.
  • Плата с тремя линейными камерами («fly-vision turret»).
  • Приёмопередатчик ZigBee.
  • Магнитные колёса.
  • Кольцо из многоцветных светодиодов (Colour LED Communication Turret) для визуальной коммуникации.
  • Считыватель SD-карт.

Программирование

Программирование E-puck (первое поколение)

Программное обеспечение для первого поколения робота E-puck в настоящее время не поддерживается, так как производитель присвоил этой версии статус «окончания жизненного цикла» (EOL). Программные библиотеки, такие как репозиторий «e-puck-library» на GitHub, не обновлялись в течение многих лет[17]. Современные инструменты разработки и симуляторы, например Webots, ориентированы на актуальную модель E-puck 2, хотя и могут сохранять возможность симуляции первого поколения. Ещё в 2006 году разработчики не рекомендовали начинать новые проекты с использованием первой версии робота из-за её быстрого устаревания.

Программирование E-puck 2

Программирование для E-puck 2 делится на два основных уровня: встроенное (низкоуровневое программирование основного микроконтроллера) и удалённое (управление роботом с персонального компьютера). Для разработки доступно несколько сред, языков программирования и способов связи[18].

Среды разработки и симуляторы

  • Webots — основная и официально поддерживаемая среда 3D-моделирования роботов. Webots позволяет создавать виртуальные миры, симулировать физику робота, работу его датчиков и исполнительных механизмов, а также осуществлять удалённое управление физическим роботом по Wi-Fi или Bluetooth[18][19].
  • ROS — для E-puck 2 доступны драйверы под ROS и ROS 2[18]. ROS является мета-операционной системой для создания сложных систем управления и обеспечивает практически бесшовный переход от симуляции к работе с реальным роботом[20].
  • MATLAB — интеграция осуществляется через фреймворк ePic2, который позволяет управлять роботом и получать данные с его сенсоров для анализа в среде MATLAB как через графический интерфейс, так и с помощью командных M-файлов[21].
  • Eclipse IDE — используется для низкоуровневой разработки на языке C/C++ для основного микроконтроллера робота[22].
  • Другие симуляторы — модели робота также доступны в симуляторах ARGoS (специализируется на роевой робототехнике) и CoppeliaSim (ранее V-REP)[23].

Языки программирования

  • C/C++ — основной язык для встроенной разработки для микроконтроллера STM32F4 в среде Eclipse с использованием операционной системы реального времени ChibiOS[22]. Также существуют библиотеки на C++ для удалённого управления роботом и написания узлов (nodes) для ROS[18][24].
  • Python — широко используется для высокоуровневого управления роботом, в основном через фреймворк ROS. Существуют готовые скрипты для управления по Wi-Fi[18][24].
  • MATLAB — управляющие алгоритмы могут быть написаны в виде стандартных M-файлов с использованием фреймворка ePic[21].

Способы связи Взаимодействие между компьютером и физическим роботом E-puck 2 осуществляется по нескольким каналам: USB (для зарядки, программирования и отладки микроконтроллера), Bluetooth и BLE (для удалённого управления с ПК)[18], а также Wi-Fi (для удалённого управления и получения данных, например, потокового видео с камеры)[18].

Примечания

Ссылки

  • Страница E-puck на сайте Mobots (англ.). mobots.epfl.ch. EPFL. Дата обращения: 20 июня 2024.

Категории