Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017) — различия между версиями

Материал из 0x1.tv

 
== Видео ==
{{vimeoembed|201654588|800|450}}
{{youtubelink|kED4pmWRw9E}}{{letscomment}}
== Слайды ==

Текущая версия на 06:21, 20 октября 2025

Аннотация

Докладчик
Евгений Синельников.jpg
Евгений Синельников

Современные робототехнические конструкторы требуют специальные средства разработки.

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

В данном докладе представлен анализ возможностей и ограничений средств разработки для программирования роботов на примере подготовки олимпиадных задач и участия в олимпиадах по робототехнике.

Видео

on youtube

Слайды

Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017).pdf

Тезисы

Задачи образовательной робототехники

Ответ на вопрос: «Что такое робот?» — с точки зрения содержания и методики преподавания, можно свести к двум вариантам:

  • Робот — это автономное, программируемое, программно-аппаратное решение с набором датчиков и исполнительных механизмов;
  • Робот — это управляемый набор программно-аппаратных компонент, осуществляющий различные производственные и иные операции.

В первом случае основной упор делается на разработку и программирование автономной робототехнической модели, например, для решения олимпиадных задач, во втором — на подробное изучение функциональных возможностей отдельных программно-аппаратных компонент, представленное в иностранных образовательных заведениях, как STEM-направление[1].

Программно-аппаратные средства

Данный доклад посвящён разбору возможностей и ограничений средств разработки для программирования роботов в рамках первого подхода. При этом одну из важнейших функций играет поддержка средой разработки возможности программирования той или иной робототехнической платформы через различные проводные и беспроводные интерфейсы. Стандартом де-факто, в качестве такой платформы в задачах олимпиадного робототехнического программирования, на текущий момент является конструктор Lego Mindstorms EV3[2]. В качестве свободной, недорогой альтернативы ему представлены различные решения на базе платформы Arduino[3], которая включает в себя открытую аппаратную платформу для различных типов микроконтроллеров и среду разработки, позволяющую выполнять прошивку этих микроконтроллеров через стандартный USB-интерфейс.

В силу открытости платформы Arduino крупные компании самостоятельно реализуют для неё поддержку своих отладочных плат — Edisson[4] от Intel, LaunchPad[5] от Texas Instruments, ESP8266[6] от Espressif и др. Кроме того, для большинства недорогих датчиков и исполнительных механизмов, как правило, доступно множество примеров исходного кода.

Таким образом, одной из основных свободных альтернатив, в качестве аппаратной базы для образовательной робототехники, является именно платформа Arduino. Тем не менее, реальное применение Arduino, в качестве замены для весьма дорогостоящих Lego Mindstorms, в задачах образовательной и олимпиадной робототехники до сих пор не осуществлено, в силу следующих причин:

  • основной язык программирования для Arduino — C++;
  • целостная сборка готового решения на базе доступных примеров зачастую требует реализации элементов операционной системы реального времени;
  • различные аппаратные средства требуют подключения и монтажа электронных компонент через различные аппаратные интерфейсы (I2C, UART, SPI), а также реализацию протоколов для проводных и беспроводных интерфейсов (Ethernet, Wifi, Bluetooth и др.);
  • отсутствуют и требуют дополнительного программирования кнопки управления, модуль визуального отображения и вывода звука;
  • требуется отдельное подключение исполнительных механизмов через специальные силовые драйверы с повышенным напряжением, а также подключение и программирование энкодеров.

С одной стороны, такой минимализм позволяет максимально подробно изучить дополнительные модули, аппаратные интерфейсы и спецификации на протоколы, а также низкоуровневое программирование с использованием портов ввода-вывода, прерываний, аналого-цифровых преобразователей и таймеров. Но это актуально, скорее, в рамках демонстрации выполнения операций, осуществляемых роботом. Готовое автономное решение для олимпиадного соревнования в обозримые сроки силами школьников подготовить таким образом довольно сложно.

Средства разработки

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

При этом, например, в Mindstorm, где все аппаратные модули заранее реализованы, за программную часть управления аппаратными средствами отвечает операционная система на базе Linux, базовая прошивка, включающая специализированную виртуальную машину и генератор байткода для этой виртуальной машины, реализованный в рамках проприетарной графической среды разработки, работающей под MacOS и Windows (есть вариант запустить с помощью Wine).

В качестве альтернативы для программирования Mindstorm существует ряд дополнительных свободных проектов, загружаемых с внешней SD-карты…

  • EV3Dev[7] — сборка на базе Debian (не имеет среды разработки, позволяет использовать любые языки программирования, доступные в прошивке, при подключении через SSH — shell, python, C/C++, NodeJS и др.);
  • LejOS — на базе Java (имеет плагин для среды Eclipse);
  • MonoBrick — на базе .Net/Mono (имеет плагин для среды Xamarin Studio);

Кроме несовместимых с базовой прошивкой свободных альтернатив существует проприетарный набор продуктов RobotC, который самостоятельно генерирует байткод для виртуальной машины из базовой прошивки, поддерживает дополнительные платформы, в частности Arduino, а также предоставляет трёхмерную среду-эмулятор для отладки программ.

Подобное решение представлено в свободной, кроссплатформенной, графической среде разработки TrikStudio (первичное название qreal). Данная среда поддерживает как собственную платформу TRIK, так и платформу Mindstorm. При этом поддержка платформы Arduino отсутствует, но имеется встроенная двухмерная среда-эмулятор для отладки программ.

Одним из перспективных вариантов реализации универсальной графической среды разработки является следующее поколение программной платформы ScratchX (или Scratch 2.0), выполненное на базе web-технологий (также доступная в offline-режиме через технологию Adobe Air). В этой программной платформе поддержка различных аппаратных платформ реализована в виде плагинов для браузера Chrome. К сожалению, на текущий момент поддержка Linux в этом решении отсутствует.

При этом для платформы Arduino имеется брошенный, не развивающийся, но пока работоспособный проект графического расширения Ardublock, выполненный в виде Java-плагина, реализованного на базе OpenBlocks в виде таких же блоков, как в проекте Scratch. На текущий момент это наиболее простое доступное средство графического программирования для Arduino.

Кроме десктопных решений для платформы Arduino реализован ряд web-эмуляторов с поддержкой различного оборудования. Наиболее популярным среди них является набор 123D/circuits.io от Autodesk. С недавнего времени в рамках проекта Arduino реализовано собственное web-решение Arduino Create[8] с возможностью прошивки контроллеров через плагин для браузера.

Возможности и ограничения в олимпиадных задачах

Практика подготовки к решению олимпиадных задач по робототехнике даёт ряд противоречивых ограничений — сложность освоения среды разработки (включая язык программирования) и необходимость реализации нетривиальных алгоритмов (включая работу со структурами данных). В первом случае графическая среда разработки помогает снизить порог вхождения, во втором — существенно замедляет или вовсе не позволяет достаточно выразительно реализовывать алгоритмы.

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

В связи с этим возможности платформы Arduino выглядят достаточно перспективно в случае генерации настроек и базового кода на основе шаблонов. Особенно для средств разработки и симуляции, доступных в виде web-решений. Тем не менее, актуальность генерации кода на основе визуальных шаблонов, диаграмм и блок-схем сохраняется для олимпиадных и образовательных задач по робототехнике. Отсутствие же таких средств резко снижает возможности платформы Arduino по сравнению с платформой Mindstorm.

На текущий момент существует целый ряд возможностей и вариантов реализовать двухступенчатую схему программирования (как в графическом, так и в текстовом виде) в рамках платформы Arduino. Возможно, реализацию такого решения имеет смысл выполнить в виде web-приложения.

Примечания и отзывы

  1. U.S. Department of Education, Science, Technology, Engineering and Math: Education for Global Leadership, 2015, ed.gov
  2. Л. Ю. Овсяницкая, Д. Н. Овсяницкий, А. Д. Овсяницкий, Курс программирования робота EV3 в среде Lego Mindstorms EV3 / М.: Издательство «Перо», 2016.
  3. Arduino, Getting Started with Arduino and Genuino products, 2016, arduino.cc
  4. Stephanie Moyerman, Getting Started with Intel Edison Sensors, Actuators, Bluetooth, and Wi-Fi on the Tiny Atom-Powered Linux Module / Maker Media, Inc, 2015.
  5. Texas Instruments, Getting Started with Energia, 2016, energia.nu
  6. Neil Kolban, Kolban's Book on the ESP32 & ESP8266 / Leanpub, 2016.
  7. Ralph Hempel and David Lechner, Getting Started with ev3dev, 2016, ev3dev.org
  8. Alice Pintus, Sneak peek on the new, web-based Arduino Create, 2015, blog.arduino.cc
Анализ свободных средств разработки для образовательной робототехники (Евгений Синельников, OSEDUCONF-2017)!.jpg

Plays:44   Comments:0