Программирование робототехнических устройств: различия между версиями

Материал из Поле цифровой дидактики
Строка 46: Строка 46:
==== Паттерны поведения исполнителей ====
==== Паттерны поведения исполнителей ====


{{#ask: [[Category:HowTo]] }}
{{#ask: [[Category:HowTo]] | format=ol }}


=== Проектирование управления при помощи UML диаграмм ===
=== Проектирование управления при помощи UML диаграмм ===

Версия 17:18, 5 декабря 2022

Snap robots1.jpg

Цель, задачи и результаты освоения дисциплины

  • Целью освоения дисциплины является формирование у студентов понимания поля взаимодействия людей, роботов и языков программирования

В результате освоения дисциплины слушатель должен:

Знать (представлять)

  1. разнообразие робототехнических систем
  2. разнообразие языков программирования, которые используются для управления роботами
  3. многообразие имитационных сред для управления виртуальными роботами
  4. принципы проектирования программ управления робототехническими системами
  5. разнообразие данных, которые используются для обучения роботами и разнообразие данных, которые порождают роботы

Уметь

  1. использовать понятия, связанные с робототехникой и программированием робототехнических устройств
  2. использовать, обсуждать и видоизменять материалы, связанные с образовательными роботами, языками программирования, видеоиграми и паттернами поведения программируемых агентов
  3. использовать диаграммы UML при планировании проектов программирования роботов
  4. использовать текстовые и визуальные блоки управления роботами при создании методических материалов
  5. использовать готовые датасеты для обучения роботов и собирать данные, порождаемые роботами и симуляторами роботов

Владеть

  • приёмами коллективного создания, редактирования и использования методических материалов, связанных с программированием роботов
  • методами сбора и анализа данных на поле программирования робототехнических систем

Содержание разделов дисциплины:

Ключевые понятия программирования роботов

Статьи, которые есть в категории понятия, могут быть дополнены и расширены за счёт возможностей расширений (EmbedScratch, ScratchBlocks4, SyntaxHighlight, Snap! Project Embed) добавляем код, встраивать проекты, добавляем новые понятия в область знаний Робототехника

 Description
EM-алгоритмEM-алгоритм (англ. Expectation-maximization (EM) algorithm) — алгоритм, используемый в математической статистике для нахождения оценок максимального правдоподобия параметров вероятностных моделей, в случае, когда модель зависит от некоторых скрытых переменных. Каждая итерация алгоритма состоит из двух шагов. На E-шаге (expectation) вычисляется ожидаемое значение функции правдоподобия, при этом скрытые переменные рассматриваются как наблюдаемые. На M-шаге (maximization) вычисляется оценка максимального правдоподобия, таким образом увеличивается ожидаемое правдоподобие, вычисляемое на E-шаге. Затем это значение используется для E-шага на следующей итерации. Алгоритм выполняется до сходимости.
HTTPHTTP является основой обмена данными для Всемирной паутины. Это независимый от языка программирования протокол, предназначенный для обмена документами (также называемыми ресурсами) между приложениями через интернет. Протокол HTTP используется широким спектром приложений, наиболее известными из которых являются веб-браузеры.
Human-AI teamsИскусственные товарищи по команде
Inquiry based learningИсследовательское обучение или обучение через открытия — педагогический подход, разработанный в 1960-х годах как ответ на традиционные формы обучения, в которых требовалось запоминания информации из учебных материалов. Философия «обучения через открытие» происходит из конструктивистских теорий обучения, таких, как работы Пиаже, Дьюи, Выготского и Паулу Фрейре
SLAMSLAM (англ. simultaneous localization and mapping — одновременная локализация и построение карты) — метод, используемый в мобильных автономных средствах для построения карты в неизвестном пространстве или для обновления карты в заранее известном пространстве с одновременным контролем текущего местоположения и пройденного пути. Популярные методы приближённого решения данной задачи — фильтр частиц и расширенный фильтр Кальмана. Некоторые реализации метода используются в беспилотных автомобилях, летательных аппаратах, автономных подводных аппаратах, планетоходах, и даже внутри человеческого тела.
АгентАгенты - это автономные объекты, которые могут самостоятельно реагировать на внешние события и выбирать соответствующие действия. Это - некто или нечто, выполняющий инструкции. В информатике - сущность, которая расположена в некоторой среде и способна в этой среде к автономным целенаправленным действиям.
АдаптацияАдапта́ция (лат. adapto «приспособляю») — приспособление строения и функций организма, его органов и клеток к условиям внешней среды. Процессы адаптации направлены на сохранение гомеостаза.
  • Адаптация в кибернетике — процесс накопления и использования информации в системе, направленный на достижение определённого, обычно оптимального в некотором смысле, состояния или динамики (поведения) системы при начальной неопределённости и изменяющихся внешних условий, изменений окружающей среды. При адаптации могут изменяться параметры и структура системы, алгоритм её функционирования, управляющие воздействия и т. п.
АлгоритмАлгоритм — конечная совокупность точно заданных правил решения некоторого класса задач или набор инструкций, описывающих порядок действий исполнителя для решения определённой задачи. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Независимые инструкции могут выполняться в произвольном порядке, параллельно, если это позволяют используемые исполнители. Aлгоритм (algorithm) — это любая корректно определенная вычислительная процедура, на вход (input) которой подается некоторая величина или набор величин, и результатом выполнения которой является выходная (output) величина или набор значений. Таким образом, алгоритм представляет собой последовательность вычислительных шагов, преобразующих входные величины в выходные.
Diagrams_bed5db8cee4f071de30328edd77489b1.png
База данныхБазы данных — это набор информации, которая хранится упорядоченно в электронном виде. В базе могут храниться данные о людях, товарах, заказах и о многом другом. Многие базы данных изначально представляют собой небольшой список в текстовом редакторе или электронной таблице. По мере увеличения объема данных в списке постепенно появляются несоответствия и излишняя информация. Информация, отображенная в виде списка, становится непонятной. Кроме того, ограничены способы, с помощью которых можно искать и отображать подмножества данных. Как только начинают появляться эти проблемы, мы рекомендуем перенести всю информацию в базу данных, созданную в системе управления базами данных (СУБД), такой как Access.
ВремяВре́мя — форма протекания физических и психических процессов, условие возможности изменения. Одно из основных понятий философии и физики, мера длительности существования всех объектов, характеристика последовательной смены их состояний в процессах и самих процессов, изменения и развития, а также одна из координат единого пространства-времени, представления о котором развиваются в теории относительности.

В философии — это необратимое течение (протекающее лишь в одном направлении — из прошлого, через настоящее в будущее).

В метрологии — физическая величина, одна из семи основных величин Международной системы величин (англ. International System of Quantities, фр. Système International de grandeurs, ISQ), а единица измерения времени «секунда» — одна из семи основных единиц в Международной системе единиц (СИ) (фр. Le Système International d’Unités, SI, англ. International System of Units, SI).
Двигательмашина, устройство, преобразующее какой-либо вид энергии в механическую работу. Термин мотор заимствован в первой половине XIX века из немецкого языка(нем. Motor — «двигатель», от лат. mōtor — «приводящий в движение») и преимущественно им называют электрические двигатели и двигатели внутреннего сгорания.

Двигатели подразделяют на первичные и вторичные. К первичным относят непосредственно преобразующие природные энергетические ресурсы в механическую работу, а ко вторичным — преобразующие энергию, выработанную или накопленную другими источниками.

К первичным двигателям (ПД) относятся ветряное колесо, использующее силу ветра, водяное колесо и гиревой механизм — их приводит в действие сила гравитации (падающая вода и сила притяжения), тепловые двигатели — в них химическая энергия топлива или ядерная энергия преобразуются в другие виды энергии. Ко вторичным двигателям (ВД) относятся электрические, пневматические и гидравлические двигатели.
Образовательная робототехникаРобот обычно используется как инструмент, платформа, которую можно использовать для практических исследований, решения проблем, исследовательского обучения, проб и ошибок. Учащиеся могут сотрудничать в группе в рамках проекта или конкретного запроса, используя робота для обоснования абстрактных концепций. Например, концепцию вращения можно изучить через движение робота. В других случаях робот может использоваться больше как коллега, например, в форме знающего коллеги, который помогает студенту, сокурсника или компаньона или даже коллеги, нуждающегося в помощи. В последнем случае учащийся становится учителем для робота-сверстника, а в первом робот-сверстник косвенно принимает на себя роль учителя.
Озеро данныхData lake — это огромное хранилище, которое принимает любые файлы всех форматов. Источник данных тоже не имеет никакого значения. Озеро данных может принимать данные из продуктовых каталогов, банковских программ, датчиков или умных устройств.
ПоискПо́иск — в широком смысле — стремление добиться чего-либо, найти что-либо и/или кого-либо; действия субъекта, направленные на получение нового или утерянного (забытого): новой информации (поиск информации), данных, сведений, знаний, разведку, открытие закономерностей; действия по раскрытию (осознанию) скрытых содержаний, недостающих для целостного состояния (в этом смысле поиск есть действие по восстановлению целостности).
ПрепятствиеПрепятствие можно определить как объект, сравнимый по величине с животным, чреватый возможностью столкновения и даже травмы.
ПроцедураПроцедура - (функция) часть программы, которую после однократного описания можно многократно вызвать по имени из последующих частей программы для выполнения определенных действий. Создание процедуры - пример того, как используется абстракция - новые блоки могут в дальнейшем объединяться между собой
РоботРобот (robot) — приводной механизм, программируемый по двум и более осям, имеющий некоторую степень автономности, движущийся внутри своей рабочей среды и выполняющий задачи по предназначению.
РобототехникаРобототе́хника (от робот и техника; англ. robotics) — прикладная наука, занимающаяся разработкой автоматизированных технических систем
Сервоприводэто электромеханический привод, который через внутреннюю обратную связь, устанавливает точное положение вала механизма в зависимости от внешних управляющих сигналов.
Теорема БайесаТеорема Байеса (или формула Байеса) — одна из основных теорем элементарной теории вероятностей, которая позволяет определить вероятность события при условии, что произошло другое статистически взаимозависимое с ним событие. Другими словами, по формуле Байеса можно уточнить вероятность какого-либо события, взяв в расчёт как ранее известную информацию, так и данные новых наблюдений. Формула Байеса может быть выведена из основных аксиом теории вероятностей, в частности из условной вероятности. Особенность теоремы Байеса заключается в том, что для её практического применения требуется большое количество расчётов, вычислений, поэтому байесовские оценки стали активно использовать только после революции в компьютерных и сетевых технологиях. На сегодняшний день активно применяется в машинном обучении и технологиях искусственного интеллекта.
ФункцияФункция в программировании, или подпрограмма — фрагмент программного кода, к которому можно обратиться из другого места программы. В большинстве случаев с функцией связывается идентификатор, но многие языки допускают и безымянные функции. С именем функции неразрывно связан адрес первой инструкции (оператора), входящей в функцию, которой передаётся управление при обращении к функции. После выполнения функции управление возвращается обратно в адрес возврата — точку программы, где данная функция была вызвана.
Шаговый двигательШаговый двигатель представляет собой электрическую машину, предназначенную для преобразования электрической энергии сети в механическую энергию. Конструктивно состоит из обмоток статора и магнитомягкого или магнитотвердого ротора. Отличительной особенностью шагового двигателя является дискретное вращение, при котором заданному числу импульсов соответствует определенное число совершаемых шагов. Наибольшее применение такие устройства получили в станках с ЧПУ, робототехнике, устройствах хранения и считывания информации.

Роботы, языки, игры и паттерны поведения агентов

Роботы

Arduino, Codey Rocky, Ergo Jr, Finch Robot, Hummingbird, LEGO Boost, LEGO Mindstorms EV3, LEGO WeDo, Lego Mindstorms, Lego Spike Prime, Robbo, Tinkercad, Trinket рисуем дом, VEX Robotics, Роббо Отто

Видеоигры

Видеоигры

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

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

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

 Environment
ArduinoScratch
Snap!
XOD
C++
Codey RockyScratch
Python
Ergo JrSnap!
Finch RobotScratch
Snap!
HummingbirdSnap!
Java
Python
MakeCode
LEGO BoostScratch
LEGO Mindstorms EV3Scratch
Python
Виртуальная среда TRIK Studio
LEGO WeDoScratch
Lego MindstormsScratch
Python
Lego Spike PrimeScratch
Python
RobboScratch
Python
TinkercadJavaScript
Web
VEX RoboticsScratch
Python
Robot Mesh Studio
PROS
RobotC
VexCode
Роббо ОттоScratch

Паттерны поведения исполнителей

  1. Генерировать новых агентов
  2. Накапливать энергию
  3. Перевозить другого агента на себе
  4. Перемещаться случайным образом
  5. Поглощать агентов
  6. Подчиняться клавишам клавиатуры
  7. Поиск восхождением к вершине
  8. Превращаться в другого агента
  9. Преследовать другого агента
  10. Распространяться
  11. Сталкиваться
  12. Тащить
  13. Толкать

Проектирование управления при помощи UML диаграмм

Роботы и данные

Литература

Educational Robotics and Tangible Devices for Promoting Computational Thinking - Файл:Frobt-08-713416.pdf

Видеоматериалы

Ссылки на сообщества

Критерии оценки по дисциплине

Образовательный результат Тема Задание Пример
Представлять разнообразие робототехнических систем, уметь использовать понятия, связанные с робототехникой и программированием робототехнических устройств Ключевые понятия программирования роботов Принять участие в обсуждении понятий, связанных с темой Робототехника, предложить и добавить понятия в эту область знаний - Category:Понятие EM-алгоритм, HTTP, Human-AI teams, Inquiry based learning, SLAM, Агент, Адаптация, Алгоритм, База данных, Время, Двигатель, Образовательная робототехника, Озеро данных, Поиск, Препятствие, Процедура, Робот, Робототехника, Сервопривод, Теорема Байеса, Функция, Шаговый двигатель
использовать, обсуждать и видоизменять материалы, связанные с образовательными роботами, языками программирования, видеоиграми и паттернами поведения программируемых агентов Роботы, языки, игры и паттерны поведения агентов Дополнить и поправить существующие статьи (изображения, ссылки на YouTube, схемы, тексты, код) роботы - Arduino, Codey Rocky, Ergo Jr, Finch Robot, Hummingbird, LEGO Boost, LEGO Mindstorms EV3, LEGO WeDo, Lego Mindstorms, Lego Spike Prime, Robbo, Tinkercad, Trinket рисуем дом, VEX Robotics, Роббо Отто ; видеоигры - Видеоигры; языки программирования Category:Язык программирования, паттерны поведения исполнителей - Генерировать новых агентов, Накапливать энергию, Перевозить другого агента на себе, Перемещаться случайным образом, Поглощать агентов, Подчиняться клавишам клавиатуры, Поиск восхождением к вершине, Превращаться в другого агента, Преследовать другого агента, Распространяться, Сталкиваться, Тащить, Толкать
Использовать диаграммы UML при планировании проектов программирования роботов Проектирование управления при помощи UML диаграмм Подготовить собственные диаграммы, представляющие процесс управления роботами Пример - Категория:Diagrams
Использовать текстовые и визуальные блоки управления роботами при создании методических материалов Использование расширений, позволяющих использовать код и встраивать проекты EmbedScratch, ScratchBlocks4, SyntaxHighlight, Snap! Project Embed Подготовить статью с использованием текстового или визуального кода программ, управляющих роботами Пример статьи
Использовать готовые датасеты для обучения роботов и собирать данные, порождаемые роботами и симуляторами роботов Роботы и данные Использовать готовые и собирать данные с искусственного поля Роботы и данные - Category:Dataset