Программирование робототехнических устройств

Материал из Поле цифровой дидактики

Snap robots1.jpg

Магистранты Категория:ПБД211М

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

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

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

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

  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, Роббо Отто

Видеоигры

 Description
ARQuestПирату нужно исследовать остров, искать сундук с сокровищами и открыть его, минуя все препятствия на пути.
Ai dungeonAI Dungeon — бесплатная однопользовательская и многопользовательская текстовая приключенческая игра, использующая искусственный интеллект для создания игрового контента.
  • 100px-Ai_dung_game.jpg
AlgebraceДинамичная и увлекательная игра для детей, позволяющая практиковать арифметические или алгебраические задачи. Ученик выбирают тему и играет. Требуется выбрать полосу с правильным ответом, чтобы набрать очки и перейти на следующий уровень, поскольку он становится все более и более сложным.
AutoThinkingИгроку нужно съесть весь сыр, не будучи пойманным мышкой.
Bina's AdventureУвлекательная игра для детей, позволяющая научиться визуализировать и распознавать линейные, квадратичные, тригонометрические и экспоненциальные функции с помощью графика.
Breaking Out The BatsЭта игра о нескольких летучих мышах, пытающихся выбраться из пещеры, чтобы скрыться от злого ученого. В этой игре вы почувствуете себя летучими мышами и попытаетесь найти способы, используя различные звуки и сигналы. Игра учит различным аспектам звука.
Bucket and TilesИнтерактивная игра с перетаскиванием. Ученики могут выбрать сортировку чисел или животных в соответствии с их характеристиками с определенным количеством баллов, присвоенным каждой категории. Учащиеся должны тщательно отнести предмет к правильной категории корзины с наибольшим количеством очков, чтобы получить наивысший балл в игре.
Ceebot 4Игра содержит несколько режимов игры: миссии с единой сюжетной линией, упражнения, бои, свободная игра, игра на своей карте (в версии 1.8). Для прохождения режима кампании, состоящей из 36-и заданий (в патчах были добавлены несколько новых миссий) на 9-и планетах, навыки программирования необязательны, программы сбора ресурсов или охраны базы предоставляются уже готовыми к запуску и помещёнными в личные меню роботов. После успешного прохождения каждой миссии или нескольких провалов этой миссии становится доступна пошаговая подсказка к прохождению. Роботами можно управлять вручную с помощью клавиш клавиатуры и мыши или джойстика.
Cell GameУченик узнает о различных клеточных органеллах и визуализирует их. Игрок это микробот, исправляющий повреждения клеточных органелл внутри клетки.
Code-The-MimeИгрокам нужно модифицировать динамическую 3D-модель человека в игровой среде программирования MaLT2
CodeMonkeyИгроку нужно управлять животными, которые собирают фрукты
CodyColorИгрокам нужно двигать робота Roby к цели по шахматной доске.
Dragon Age (серия видеоигр)это серия компьютерных ролевых игр жанра фэнтези, разработанная канадской студией BioWare и изданная американской компанией Electronic Arts. Первая игра серии Dragon Age: Origins была выпущена в ноябре 2009 года. В 2010 году было выпущено глобальное дополнение Dragon Age: Origins – Awakening. Сиквел с подзаголовком Dragon Age II был выпущен в марте 2011 года . Последняя на данный момент часть серии Dragon Age: Inquisition была выпущена в ноябре 2014 года. Помимо игр, серия включает в себя несколько книг, комиксов, полнометражный мультфильм, сериал и многое другое.
Dragon ArchitectИгроки пишут код для управления драконом, который строит 3D-структуры в кубическом мире
Eat the PiДинамичная игра для детей, которая учит визуализировать проценты, градусы, радианы и тригонометрические функции с помощью круговой диаграммы. Требуется разрезать пирог, когда он достигнет отображаемого значения. Пирог становится меньше каждый раз, когда игрок подает неправильное количество пирога, пока в конце концов он не исчезнет.
ElemencheryУченик в роли рыцаря, в сказочном лесу, выполняет задания, путешествует по миру игры, узнает об углах и молекулах (и их использовании).
Fight The VirusВ игре речь идет о защите мирных жителей от заражения вирусами от инфицированных персонажей, не забывая при этом и о собственной жизни. Игрок должен использовать список инвентаря и ограниченное количество больничных коек для защиты мирных жителей. Несколько уроков в этой игре о вирусах, их симптомах, профилактических мерах и уходе.
Fishing and BaitЭта игра о рыбалке и изучении различных видов фигур. Моряк в открытом море при помощи различных видов фигур пытается поймать как можно больше рыбы. За успешные действия он получает очки.
FolditФолдит — многопользовательская игра онлайн-головоломка о фолдинге белка. Игра является частью исследовательского проекта и разработана в Вашингтонском университете. Предмет игры — наилучшим образом свернуть структуру выбранных протеинов; лучшие пользовательские решения анализируются учёными, которые могут с их помощью найти решение реальных научных проблем, связанных с поиском вакцин и биологическими инновациями.
Freddi FishФредди Фиш - это серия детских приключенческих игр наведи и щелкни от Humongous Entertainment . Сериал начался в 1994 году. Фредди Фиш - желтая рыбка, которая берет на себя детективные расследования на протяжении всей серии. Ее лучший друг, зеленая рыбка по имени Лютер, сопровождает ее во всех ее приключениях
FroggerЛягушка перемещается вверх по экрану и её задача подняться на следующий уровень. При этом она пытается избежать столкновений с машинами на дороге и переплыть реку, перепрыгивая с бревна на бревно
Green CityЭта игра о балансе экономики и загрязнения в городе. Через нее ученик получает знания о том, как важно улучшать и сохранять экологическую среду при этом балансирую в экономическом плане.
KodableИгрокам нужно спасти семью персонажей на враждебной планете, проведя их через череду лабиринтов.
LightbotИгрок управляет роботом, который должен пройти по плиткам определенного цвета, чтобы дойти до цели.
Magnet GameИгра посвящена различным концепциям магнита, в которой игрок управляет большим магнитным шаром и путешествует по магнитному миру.
Mario BrosДвухмерный платформер. Цель игры — уничтожить всех врагов появляющихся на уровне. Марио и Луиджи могут двигаться влево и вправо, а также прыгать. Главный способ атаковать врагов — подпрыгивать, ударяя снизу поднятой рукой платформу, по которой в этот момент движется противник
MathamazingИгра, которая учит учащихся вращать/переворачивать и решать головоломки. При вращении части головоломки справа, создается путь, по которому мышь сможет перемещаться по лабиринту, чтобы она могла добраться до своего дома. Требуется собрать весь сыр на доске головоломки, чтобы получить наибольшее количество очков.
MathsandMothsПростая и веселая игра для детей, позволяющая практиковать арифметику, алгебру или и то, и другое. Ученик выбирают предмет и выбирают уровень сложности в зависимости от того, что им удобно. Требуется ловить мотыльков и набирай очки, решая математическую задачу до того, как они исчезнут.
MinecraftMinecraft (от англ. mine — «шахта; добывать» + craft — «ремесло; создавать») — компьютерная инди-игра в жанре песочницы, созданная шведским программистом Маркусом Перссоном и выпущенная его студией Mojang AB. В
Minecraft Hour of CodeФантастика, реальные и нереальные миры.
MiniColonГлавный герой оказался в ловушке на острове. Чтобы выбраться с острова, персонаж должен собрать фрукты и припасы. Главный герой - морковка, и во время игрового процесса она все время движется вперед. Игрок управляет движением морковки, чтобы достичь цели каждого уровня.
My Make Believe CastleИгровой мир, где дети (5 - 7 лет) при помощи иконок управляют поведением принцесс, рыцарей и драконов
Pac-ManPac-Man (с англ. — «Па́кман») — аркадная видеоигра, разработанная японской компанией Namco.
Penguin GoИгрокам нужно проводить пингвинов по разной местности, чтобы достичь цели уровня.
Pic2ProgrammИгроки управляют аватаром, которому нужно пройти лабиринт.
Plants vs. ZombiesВ Plants vs. Zombies игрок берёт на себя роль домовладельца, чей дом регулярно подвергается нападениям зомби с расположенного напротив кладбища. Чтобы защитить дом от зомби, игроку нужно сажать растения, которые наносят урон или иным образом причиняют вред наступающим врагам. По ходу уровня игрок собирает единицы «солнца», обладание определённым количеством которых позволяет посадить то или иное растение. Зомби приближаются к дому по нескольким параллельным линиям, проходящим по лужайке возле дома, вследствие чего игроку требуется сажать растения на всех этих линиях. Если хоть один зомби добирается до конца своей линии, уровень считается проигранным.
PletoraФантастический сеттинг, игрокам нужно решать задачи и открывать новые миры.
Program Your RobotИгрокам нужно перемещать робота, включать свет и собирать предметы, переходя к различным уровням игры.
Rapid RouterИгрок управляет грузовым фургоном на дороге, чтобы добраться до пункта назначения и завершить доставку.
Resident EvilResident Evil (с англ. — «Обитель зла») известная в Японии как Biohazard (яп. バイオハザード Байохадза:до) — медиафраншиза компании Capcom, основанная на серии видеоигр. Большинство игр серии принадлежат к жанру survival horror, но при этом как различные ответвления, так и некоторые основные игры могут принадлежать к другим жанрам, таким как шутер от третьего лица и рельсовый шутер. Помимо видеоигр, медиафраншиза состоит из кинофильмов (серия «Обитель зла»), анимационных фильмов, телесериалов, комиксов и прочей медиапродукции.
RoboTICВ игре используется метафора дорог и дорожных знаков.
SCoolШаттл с командой терпит крушение в космосе, и игрокам нужно исследовать эту враждебную планету, преодолевать препятствия и искать диски, чтобы научиться программировать.
SimAntSimAnt: The Electronic Ant Colony — компьютерная игра-симулятор, созданная студией Maxis и выпущенная в 1991 году. Является третьей игрой серии Sim после SimCity и SimEarth. Игра получила премию от ассоциации программного обеспечения Codie award как лучший симулятор года. Игра создавалась при сотрудничестве Эдварда Уилсона — известного биолога, изучавшего социальное поведение муравьёв в колониях. Игра была выпущена для IBM PC, Commodore Amiga, Apple Macintosh и Super Nintendo Entertainment System.
SimCityВ SimCity у игрока обычно нет определённой цели, по достижении которой игра заканчивается. Играющий управляет городом, выступая в роли мэра. Ему предоставляется возможность собирать налоги, строить городские здания и прокладывать дороги. Конечно, в руках мэра далеко не все аспекты жизни города — он не может, например, приказывать, где строить частные здания, а может только планировать территорию, разделяя её на коммерческие, жилые и промышленные зоны. Эти зоны впоследствии застраиваются жителями города. В случае, если привлекательность данной зоны в глазах городских жителей низка (причиной чего могут быть высокие налоги в данной сфере или недостаточное развитие других городских зон), она не будет застраиваться. В январе 2008 года код оригинальной SimCity был открыт и теперь распространяется под лицензией GPLv3. Права на имя «SimCity» принадлежат Electronic Arts, поэтому открытый проект был переименован в Micropolis.
Simple MachineИгра с прагматичным подходом к использованию простых машин. Нужно собирать простейшие механизмы, тем самым продвигаться дальше по игровому миру, получать очки за успешное продвижение.
SimsThe Sims — однопользовательская видеоигра в жанре симулятора жизни, первая по счёту из серии The Sims, разработанная командой разработчиков Maxis под руководством геймдизайнера Уилла Райта и изданная компанией Electronic Arts. Игра создавалась при сотрудничестве Эдварда Уилсона — известного биолога, изучавшего социальное поведение муравьёв в колониях. Игра была выпущена для IBM PC, Commodore Amiga, Apple Macintosh и Super Nintendo Entertainment System. Когда игрок впервые играет в The Sims в рамках обучающей программы, он должен управлять семьёй молодожёнов — Ньюби (англ. Newbie), которая только переехала в город и должна освоиться в нём. Действие игры происходит в городке, где проживают пять семей.
SnakeИгра предполагает, что игрок управляет змеей, совершая движения на игровом поле. После поедания объектов, представляющих собой образовательные элементы, открываются уроки и тесты, интегрированные в игровой процесс.
Space ExplorerПутешествие по всей нашей вселенной, интересные факты о небесных телах и нашей планете Земля в космическом исследователе. Требуется состыковать свой корабль с разными спутниками в космосе, регулируя тягу и угол взлета, изучая эффекты гравитации, оказываемые на корабль различными объектами в космосе.
TAPASPlayИгровой процесс построен вокруг алхимии, то есть (вымышленного) процесса превращения металлов: игроки выступают в роли алхимиков, кующих мечи и щиты из трех разных металлов.
Tower DefenseЭта игра учит понятиям силы и ускорения. Нужно остановить врагов используя формулы и знания, полученные на уроках в школе. Если игрок будет делать это не верно, то его замок будет разрушен.
… следующие результаты

См. Video games (dataset) - внешний датасет с играми

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

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

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

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

 Description of problem
Генерировать новых агентов120px-Create_netlogo.png
Агент порождает поток других агентов - например, в экологических моделях рождение используется для создания потомков, в играх из пистолета вылетают пули, которые он порождает, в историях Scratch капли дождя клонируются и падают из тучи на землю.
Накапливать энергиюАгент живёт в среде, перемещается, выполняет задания и накапливает энергию или собирает очки
Перевозить другого агента на себеТранспортировка представляет собой ситуацию, когда один агент перевозит на себе другого агента. Например, черепаха в Frogger несёт лягушку, пересекая реку. В экологических симуляциях процесс транспортировки можно использовать, например, для перевозки пыльцы пчёлами.
Перемещаться случайным образомАгент или агенты перемещаются по экрану случайным образом - стандартная для многих игр и симуляций ситуация, которую надо уметь воспроизводить - термиты, птицы и рыбы при формировании стай изначально перемещаются случайным образом.
Поглощать агентов120px-Delete_starlogo.png
  • Поглощение: обратный генерации процесс, когда агент не порождает, а поглощает других агентов. Например, земля поглощает падающие с неба капли воды, хищник съедает жертву, с которой он встречается.
Подчиняться клавишам клавиатурыРеагировать на клавиши клавиатуры Движение клавиатуры: нажатия кнопок клавиатуры управляют движением агента. И здесь могут быть паттерны типа Прыгать - как писал Пейперт в этой статье писал про Марио и как воспроизвести поведение Марио
Поиск восхождением к вершинеПоиск восхождением к вершине - алгоритм поиска в компьютерных науках, когда агент просматривает значения переменных на ближайших полях и на поле с максимальным значением переменной. Использование алгоритма поиск восхождением к вершине можно наблюдать в таких играх как Sims или Pac-Man, когда призраки преследуют Pacman, следуя наивысшему значению запаха Pac-man, который распространяется по всему полю см. http://ccl.northwestern.edu/netlogo/models/Pac-Man
Превращаться в другого агентаПревращение - один агент превращается в другого агента. Возможный вариант - агент одной породы превращается в агента другой породы.
Преследовать другого агентаОдин агент преследует другого агента - поворачивается в его сторону или поворачивается в том же направлении, куда движется другой агент
РаспространятьсяДиффузия: паттерн распространения, когда вы можете распространять определённое количество агента на других агентов, расположенных по близости за счёт процесса диффузии. Например, в модели муравьёв в NetLogo муравьи выделяют вещества феромоны, которые диффундируют на ближайшие поля игрового поля.
Сталкиваться120px-Collision_starlogo.png
  • Паттерн определяет поведение агентов в случае их физического столкновения с другими агентами. Например, столкновение пули с мишенью. В игре Frogger, если грузовик сталкивается с лягушкой, лягушку нужно «раздавить»
  • ТащитьТащить - паттерн "тащить" противоположен по значению паттерну толкать - агент может тащить за собой другого агента или агентов. Например, поезд тащит за собой вагоны, лошадь тащит за собой сани, буксир тащит за собой баржи или плот.
    ТолкатьПаттерн "толкать" — это паттерн, который мы видим во многих играх. Агент должен толкать ящики или мешки с золотом. Когда игрок толкает коробку или мешок, эти объекты движутся в том направлении (вверх, вниз, вправо или влево), в котором их толкнули.

    Проектирование управления роботами при помощи 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, схемы, тексты, код)
    1. Роботы - 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, Роббо Отто ;
    2. Видеоигры - Видеоигры;
    3. Языки программирования Category:Язык программирования,
    4. Паттерны поведения исполнителей - Генерировать новых агентов, Накапливать энергию, Перевозить другого агента на себе, Перемещаться случайным образом, Поглощать агентов, Подчиняться клавишам клавиатуры, Поиск восхождением к вершине, Превращаться в другого агента, Преследовать другого агента, Распространяться, Сталкиваться, Тащить, Толкать
    Использовать диаграммы UML при планировании проектов программирования роботов Проектирование управления при помощи UML диаграмм Подготовить собственные диаграммы, представляющие процесс управления роботами Пример - Категория:Diagrams - Flowchart
    Использовать текстовые и визуальные блоки управления роботами при создании методических материалов Использование расширений, позволяющих использовать код и встраивать проекты EmbedScratch, ScratchBlocks4, SyntaxHighlight, Snap! Project Embed Подготовить статью с использованием текстового или визуального кода программ, управляющих роботами Пример статьи Basic
    Использовать готовые датасеты для обучения роботов и собирать данные, порождаемые роботами и симуляторами роботов Роботы и данные Использовать готовые датасеты и собирать данные с искусственного поля Роботы и данные - Category:Dataset - Video games (dataset)