Вы находитесь на странице: 1из 13

Тема #0: Общие сведения

Предисловие

Все те занятия, что буду псвящены мобильной робототехнике, будут условно разделены на
два блока: теоретический и практический. Нет, мы не будем сначала слушать теорию, а потом
реализовывать её на практике - практиковаться в симуляторе мы будем на протяжении всего
занятия. А вот задания, которые придётся выполнять, будут разделены на:
 теоретические, где нужно прочитать учебный материал и разобраться в нём, выполнить
все задания, а главное – адекватно ответить на вопросы в тесте Kahoot;
 практические, где нужно на основании изученной теории построить в онлайн-симуляторе
Open Roberta Lab соответствующие программы, и проверить, как ведёт себя робот,
выполняя их.
Такое разделение носит условный характер, для лучшего усвоения материала придётся
перепрыгивать с теории на практику и с практики на теорию, так что не бойся
экспериментировать!

Рекомендуемая структура занятия

 Кратко знакомимся с новым и самым сложным, внимательно слушая то, что скажет
преподаватель, не стесняемся задавать вопросы;
 Внимательно читаем файл с теорией и выполняем все задания в нём; Обычно в файле с
теорией рассматриваются вопросы алгоритмов, необходимых операторов для их
построения, и приводятся примеры программ. Кроме того даются задания на создание
программ с учётом ваших знаний из курсов Lego, которые обязательно нужно выполнить;
 Переходим в онлайн-симулятор Open Roberta Lab и создаём в нём все те же программы,
проверяя как будет вести себя робот;
 Показываем преподавателю свои результаты и обсуждаем их, получаем заработанные
честным трудом оценки;
 Выполняем дополнительные практические задания в симуляторе, полученные от
преподавателя;
 Получаем и обсуждаем домашнее задание;

Как заменить настоящих роботов

Для того, чтобы писать программы и тестировать роботов совсем необязательно иметь
собранную конструкцию, можно обойтись симулятором - специальной программой,
имитирующей действия робота. В симуляторе робот обладает всеми теми же наборами датчиков
и моторов, способен двигаться также как в реальности. Конечно, в каждом симуляторе есть свои
ограничения, но тем интереснее в них работать, ведь ты не только решаешь поставленную перед
тобой задачу изучения роботов, но и изучаешь сам симулятор, как удобный (а иногда и не очень)
инструмент для настоящего робототехника.
1
Для успешного освоения части курса, относящегося к мобильной робототехнике тебе
понадобится симулятор:

Open Roberta Lab - онлайн-симулятор, в котором есть полноценный виртуальный


мобильный робот, оснащённый всеми необходимыми нам моторами и датчиками; Самое
главное, что этот робот может двигаться в реальном времени по большому количеству
разнообразных трасс, взаимодействуя с препятствиями и показывая состояния своих
датчиков. Доступен этот замечательный симулятор по ссылке https://lab.open-roberta.org и
мы очень подробно будем разбираться как с его помощью реализовывать сложные
алгоритмы, используемые мобильными роботами. Пусть тебя не пугает то, что графический
язык программирования в симуляторе Open Roberta Lab внешне отличается от привычных
(оно и не должно пугать, ведь в дистанционных курсах Lego вы уже использовали этот
симулятор и составляли программы на его графическом языке). Изучив теорию и поняв как
строятся алгоритмы, ты сможешь реализовать их совершенно спокойно как с помощью
одного языка, так и с помощью другого, становясь профессионалом!

ТВОЯ ПЕРВАЯ ЗАДАЧА: Открыть онлайн симулятор Open Roberta Lab, перейдя по ссылке
https://lab.open-roberta.org и произвести первоначальные настройки симулятора.

Подсказки к решению второй задачи:

На странице приветствия необходимо отыскать ту систему, работу с которой ты будешь


симулировать, а именно EV3 - ведь это и есть наш любимый Lego:

Далее следует выбрать любую систему, для которой НЕ указано “Beta”, а нарисованный
робот на нужной тебе системе не позволит ошибиться:

2
После этого откроется главное окно симулятора:

Проверь ещё раз, правильно ли ты выбрал систему для симуляции: в левом верхнем углу
должно быть указано “EV3”:

Крайняя правя пиктограмма (планета) открывает доступ к списку поддерживаемых языков.


Можешь также изменить язык интерфейса на тот, который лучше всего знаешь - это поможет
быстрее разобраться с симулятором:

3
Поздравляем! Ты сделал все основные настройки и теперь можно начинать
изучать симулятор и программировать роботов. Как именно? Разберёмся в
следующей теме!

4
Тема #1: Алгоритмы и блок-схемы

Рассматривая прошлую тему, мы выполнили установку и предварительную настройку


нужного программного обеспечения для того, чтоб никакие технические трудности не отвлекали
тебя от освоения мобильной робототехники.
Самое время приступить к программированию робота. “Какого?” - спросишь ты, ведь мы на
дистанционке. Это не беда, будем программировать робота в онлайн-симуляторе https://lab.open-
roberta.org, который научились предварительно настраивать выше. Уже забыл о чём идёт речь?
Быстренько посмотри «Тема #0: Общие сведения» и возвращайся.

Алгоритмы

Прежде чем приступать к составлению программ, нужно понять: какая именно перед
роботом стоит задача, и каким образом ему следует её решать. Причём сделать это нужно не «в
общем» формализованным образом, а виде последовательности конкретных, простых действий.
И тут у тебя могут возникнуть трудности, которые легко продемонстрировать на примере.
Представь, что тебе необходимо перейти дорогу. Ты сделаешь это, не задумываясь, не отделяя
одно движение от другого, интуитивно и успешно. Именно потому, что когда-то тебе рассказали и
показали, как необходимо преодолевать проезжую часть, и ты многократно это проделывал на
практике. Если же необходимо описать процесс перехода улицы по частям, то выглядеть это будет
примерно так:
1. дойти до края дороги;
2. узнать, движутся ли по ней машины слева от тебя в твою сторону;
3. если движутся – стоять на месте;
4. если машин слева нет, двигаться перпендикулярно проезжей части до середины дороги;
5. остановиться если дошел до середины дороги или продолжить движение, если не дошел;
6. дойдя до середины, посмотреть нет ли справа приближающихся к тебе машин;
7. если есть – стоять на месте;
8. если нет – двигаться к краю дороги.
Смотри, получилось целых восемь действий, которые ты выполняешь, не задумываясь, а
роботу каждое из этих действий нужно задать с помощью специальных команд. И это только
основные действия, но могут быть и какие-то дополнительные, например перед тобой внезапно
оказывается автомобиль, и нужно моментально остановиться. Твой мозг автоматически
анализирует множество происходящих вокруг событий, «рассчитывает» реакции для каждого
конкретного случая и помнит об основной цели – в нашем примере это переход дороги.

По умолчанию робот ничего подобного делать не умеет – любое действие робота


должно быть задано в алгоритме его работы, запрограммировано. Запомни это!

Робот в своих действиях повинуется заданному ему программой алгоритму, и чем


подробнее данная последовательность действий – алгоритм будет, тем более точно робот
выполнит поставленную задачу.
5
Обрати внимание, что описание алгоритма в виде текста не позволят наглядно
продемонстрировать все взаимосвязи между его отдельными действиями, чем сложнее алгоритм
– тем сложнее и запутаннее его текстовое описание.

Блок-Схемы

Для компактной, а главное максимально наглядной демонстрации алгоритмов используют


блок-схемы – графические представления алгоритмов, представляющие собой наборы
специальных графических объектов и связей между ними.
Любая блок-схема состоит из блоков, которые выполняют раз- личные функции (ввод и
вывод, начало и конец, вызов функции и т. д.).
Существует несколько основных видов блоков:

Правильно объединяя эти и другие блоки между собой, можно наглядно, быстро и просто
продемонстрировать любой, даже с самым сложным текстовым описанием, алгоритм.

Составление блок-схем – процесс творческий, требующий определённую практику и очень


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

ЗАДАЧА 1.1: Составить алгоритм процесса перехода улицы

Качественную блок-схему будем, конечно же, чертить онлайн. Для этого перейди на сайт
https://app.creately.com/, и зарегистрируйся там, введя имя, адрес своей почты и придумав
пароль. После регистрации откроется браузер проектов, где нужно нажать «Add Document»:

6
А теперь выбери «FlowChart», и нажми «Maybe later» чтоб закрыть обучалку и скорее
перейти к составлению блок-схем:

После этих несложных манипуляций откроется окно редактора блок-схем, в котором слева
от рабочего поля доступны отдельные элементы. Они добавляются на рабочее поле простым
перетаскиванием:

Соединить между собой два элементов можно, используя инструмент «line», вызываемый
соответствующей пиктограммой в левом верхнем углу редактора:

7
Этой теории будет достаточно для того, чтоб составить свою первую блок-схему. Поспеши,
ведь преподаватель будет очень рад твоим успехам!

На этом изучение теории алгоритмов и блок-схем закончим, ведь пора


переходить к проверке полученных знаний на практике – пора заставить робота
двигаться!

8
Тема #2: Простейшие алгоритмы движения

Выше мы разобрались с тем, что такое алгоритмы и для чего они нужны. Мы выяснили, что
алгоритм – это подробная последовательность действий. Алгоритм выполняется роботом для
решения нужной нам задачи. При этом наиболее наглядно представлять алгоритм не в виде
текста, а в виде блок-схем. Блок-схема позволяет увидеть не только отдельные части алгоритма,
но связи между ними.
Вооружившись этими знаниями, пора программировать роботов!

Не забывай, что для каждого задания мы будем составлять программу в онлайн-


симуляторе Open Roberta Lab, где будем тестировать робота, настраивать программу и
делать всё, чтоб решить разнообразные задачи.

Программы линейных алгоритмов движения в симуляторе

Робот, которого будем программировать, представляет собой трёхколёсную подвижную


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

ЗАДАЧА 2.1: Открой ссылку https://le-www-live-s.legocdn.com/sc/media/lessons/mindstorms-


ev3/building-instructions/ev3-rem-driving-base-79bebfc16bd491186ea9c9069842155e.pdf и
просмотри инструкцию по сборке робота. Обрати внимание на то, к каким портам главного
блока подключены моторы – это важно!
Кроме того посмотри и подумай – зачем нужен металлический шарик в конструкции нашего
робота?

Теперь, когда конструкция робота стала понятной, пора переходить в симулятор и начинать
в нём работать.

ЗАДАЧА 2.2: Открой онлайн симулятор Open Roberta Lab, перейдя по ссылке https://lab.open-
roberta.org и произведи первоначальные настройки симулятора.

После того как основные настройки симулятора произведены (о том, как это делать –
написано выше!), можно приступить к настройкам самого робота, ведь его моторы должны быть
подключены к правильным портам!
Для того чтоб настроить параметры робота нужно перейти в его конфигурацию:

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

Где же будет ездить наш робот? По специальным трассам, где же ещё! Доступ к трассам и
запуску программ открывается нажатием кнопки «SIM» в правой части экрана:

Над трассой расположены кнопки симуляции и навигации:

ЗАДАЧА 2.3: Самостоятельно разберись и запомни назначение каждой кнопки симуляции!

После того как разберёшься с навигацией, нужно выбрать самую пустую трассу, на которой
будешь производить первые испытания:

10
Для того, чтоб заставить робота двигаться, тебе понадобятся блоки со вкладки «действие»:

ЗАДАЧА 2.4: Научить робота двигаться вперёд-назад и поворачиваться вправо-влево.

В качестве небольшой помощи при решении этой простой задачи ниже приведен вид
программы движения вперёд и результат её симуляции. Также ты можешь заметить, что робот
прочерчивает пройденный путь, что позволяет отследить его траекторию движения – это удобно.

Скорее всего, тебе не составило особого труда составить программы к задаче 2.3 и
убедиться, что автономное управление роботом не составляет особого труда. Теперь можно
решить задачи посложнее – заставить робота двигаться по разным траекториям.

ЗАДАЧА 2.5 (тренировочная): Научи робота двигаться по треугольнику и квадрату.

11
Решить задачу 2.5 можно, комбинируя блоки «ЕХАТЬ» и «ПОВОРОТ» в правильной
последовательности и правильно настраивая параметры в этих блоках.

Траектория движения робота будет менять свою форму, если ты будешь корректировать
три параметра «скорость», «расстояние» и «градус». Результат выполнения задачи 2.6 может
выглядеть следующим образом:

Ну а программы, которые привели к этому результату, есть у преподавателя. Если ты не


справишься с их составлением самостоятельно, то попроси о помощи. Повтори полученные
программы и разберись в них!

ЗАДАЧА 2.6 (дополнительная): в редакторе блок-схем https://app.creately.com/ составить


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

Чтоб решить эту задачу, нужно вспомнить всё то, что изучалось в теме «Тема #1:
Алгоритмы и блок-схемы».

ЗАДАЧА 2.7 (на оценку!): Научи робота двигаться так, чтобы его траектория представляла собой
слово «ШАГ».

12
Для решения этой задачи тебе понадобятся те же самые блоки и их правильные
комбинации. Не пытайся решить задачу сразу целиком, вместо этого разбей её на части: пускай
робот сначала рисует по одной букве. Так ты сможешь исправить все ошибки и неточности. После
этого достаточно будет последовательно объединить три программы в одну и получить
правильный результат!

На этом изучение простых алгоритмов движения законченно, и в


следующий раз мы займёмся оптимизацией, вспомним что такое циклы и
поработаем с условиями.

13

Вам также может понравиться