Мобильный робот E-puck
Моби́льный ро́бот 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].
Характеристики
| Характеристика | Значение |
|---|---|
| Микроконтроллер | 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].
| Характеристика | Значение |
|---|---|
| Микроконтроллер | 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.
- Датчики поверхности (Ground Sensor Module) — три инфракрасных датчика на дне для слежения за линией или обнаружения края поверхности (например, стола)[12].
- Всенаправленная камера (Omnivision Extension) — модуль с камерой для детекции света и цвета, совместимый с платой Pi-Puck[16].
- Дополнительные датчики расстояния — на робота могут устанавливаться дополнительные ToF-сенсоры для построения карты окружения.
- Плата с тремя линейными камерами («fly-vision turret»).
- Приёмопередатчик ZigBee.
- Магнитные колёса.
- Кольцо из многоцветных светодиодов (Colour LED Communication Turret) для визуальной коммуникации.
- Считыватель SD-карт.
Программирование
Программное обеспечение для первого поколения робота E-puck в настоящее время не поддерживается, так как производитель присвоил этой версии статус «окончания жизненного цикла» (EOL). Программные библиотеки, такие как репозиторий «e-puck-library» на GitHub, не обновлялись в течение многих лет[17]. Современные инструменты разработки и симуляторы, например Webots, ориентированы на актуальную модель E-puck 2, хотя и могут сохранять возможность симуляции первого поколения. Ещё в 2006 году разработчики не рекомендовали начинать новые проекты с использованием первой версии робота из-за её быстрого устаревания.
Программирование для 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.