Без темы
<<  WMS (Workload Management System) Writing a Visual Analysis  >>
World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ»
World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ»
Ворон Александр
Ворон Александр
Пару слов о WRO
Пару слов о WRO
WRO 2015
WRO 2015
Основная категория
Основная категория
Общие правила основной категории
Общие правила основной категории
WRO 2015 - Основная категория
WRO 2015 - Основная категория
Поиск сокровищ – Игровое поле
Поиск сокровищ – Игровое поле
Поиск сокровищ - Задание
Поиск сокровищ - Задание
Поиск сокровищ – Координатная система
Поиск сокровищ – Координатная система
Базовая конструкция робота
Базовая конструкция робота
Поиск сокровищ – Общий алгоритм
Поиск сокровищ – Общий алгоритм
1. Считать шифр карты – общий алгоритм
1. Считать шифр карты – общий алгоритм
1. Считать шифр карты
1. Считать шифр карты
1.1 Движение по линии
1.1 Движение по линии
1.2 Считывание шифра
1.2 Считывание шифра
2
2
1.2 Считывание шифра - алгоритм
1.2 Считывание шифра - алгоритм
1.2 Считывание шифра - алгоритм
1.2 Считывание шифра - алгоритм
1.2 Считывание шифра - алгоритм
1.2 Считывание шифра - алгоритм
Промежуточный результат №1
Промежуточный результат №1
2. Определение координат артефакта
2. Определение координат артефакта
2. Определение координат артефакта
2. Определение координат артефакта
2. Определение координат артефакта
2. Определение координат артефакта
Промежуточный результат №2
Промежуточный результат №2
3. Выезд на координатную сетку
3. Выезд на координатную сетку
3. Выезд на координатную сетку – 1 вариант
3. Выезд на координатную сетку – 1 вариант
3. Выезд на координатную сетку – 2 вариант
3. Выезд на координатную сетку – 2 вариант
3. Выезд на координатную сетку – 2 вариант
3. Выезд на координатную сетку – 2 вариант
Промежуточный результат №3
Промежуточный результат №3
4. Подъехать к 1-му артефакту
4. Подъехать к 1-му артефакту
4. Подъехать к 1-му артефакту
4. Подъехать к 1-му артефакту
4.1. Поворот налево
4.1. Поворот налево
4.2. Подъезд к нужной строке/столбцу
4.2. Подъезд к нужной строке/столбцу
4.2. Подъезд к нужной строке/столбцу
4.2. Подъезд к нужной строке/столбцу
4.2. Подъезд к нужной строке/столбцу
4.2. Подъезд к нужной строке/столбцу
4.2. Подъезд к нужной строке/столбцу
4.2. Подъезд к нужной строке/столбцу
4.3. Подъезд к артефакту
4.3. Подъезд к артефакту
4. Подъехать к 1-му артефакту
4. Подъехать к 1-му артефакту
Промежуточный результат №4
Промежуточный результат №4
5. Определение координат следующего артефакта
5. Определение координат следующего артефакта
5. Определение координат следующего артефакта
5. Определение координат следующего артефакта
5.1. Определение цвета артефакта
5.1. Определение цвета артефакта
5.2. Определение цвета плитки под артефактом
5.2. Определение цвета плитки под артефактом
5.2. Определение цвета плитки под артефактом
5.2. Определение цвета плитки под артефактом
5.3. Определение координат следующего артефакта
5.3. Определение координат следующего артефакта
Промежуточный результат №5
Промежуточный результат №5
6. Захват артефакта
6. Захват артефакта
Промежуточный результат №6
Промежуточный результат №6
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
7. Определение зоны следующего артефакта
Промежуточный результат №7
Промежуточный результат №7
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
8. Навигация до зоны следующего артефакта
Промежуточный результат №8
Промежуточный результат №8
ХХ
ХХ
ХХ
ХХ
ХХ
ХХ
ХХ
ХХ
ХХ
ХХ
Вопросы
Вопросы

Презентация на тему: «World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ»». Автор: Google. Файл: «World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ».pptx». Размер zip-архива: 2540 КБ.

World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ»

содержание презентации «World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ».pptx»
СлайдТекст
1 World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ»

World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ»

Александр Ворон voron.alexander@gmail.com

2 Ворон Александр

Ворон Александр

Давайте знакомиться!

Нижний Новгород 4 года с LEGO-роботами Победы на Intel ISEF, Робофест Участие в финалах World Robot Olympiad, Google Moonbots Судья Мирового этапа World Robot Olympiad http://nnxt.blogspot.com – самый полезный ресурс на русском языке по LEGO-роботам

3 Пару слов о WRO

Пару слов о WRO

В России – Международные состязания роботов (МСР) Включают в себя соревнования в 4 категориях: Основная категория Творческая категория Студенческая категория Футбол роботов

4 WRO 2015

WRO 2015

Российский этап – г. Казань (26 – 28 июня) Мировой этап – Катар, г. Доха (6 – 8 ноября) Официальный сайт WRO 2015: http://www.wro2015.org Перевод правил на сайте МСР: http://robolymp.ru/rules

5 Основная категория

Основная категория

Команды должны сконструировать и запрограммировать робота для решения конкретной задачи 3 возрастных группы: младшая группа (до 13 лет) средняя группа (13-15 лет) старшая группа (16-19 лет) Задачи во всех возрастных группах разные

6 Общие правила основной категории

Общие правила основной категории

Общие правила применяются ко всем возрастным категориям Робот должен быть построен только из LEGO Размер робота ограничен: 250 * 250 * 250 мм 1 EV3 / NXT блок У EV3 можно использовать 4 мотора Разрешены все датчики NXT / EV3 (в т.ч. EV3 гироскоп) Bluetooth и Wi-Fi отключены

7 WRO 2015 - Основная категория

WRO 2015 - Основная категория

Младшая группа – Ловля жемчуга Средняя группа – Поиск сокровищ Старшая группа – Восхождение на горы

8 Поиск сокровищ – Игровое поле

Поиск сокровищ – Игровое поле

9 Поиск сокровищ - Задание

Поиск сокровищ - Задание

Робот должен: собрать 5 артефактов отвезти артефакты на базу не перемещать опасные артефакты

10 Поиск сокровищ – Координатная система

Поиск сокровищ – Координатная система

Координатная система:

Цвет строк

Цвет столбцов

Координаты первого артефакта

11 Базовая конструкция робота

Базовая конструкция робота

Робот «5 minute bot» с небольшими дополнениями:

12 Поиск сокровищ – Общий алгоритм

Поиск сокровищ – Общий алгоритм

Пример решения: http://youtu.be/4uALSzXZN-U

13 1. Считать шифр карты – общий алгоритм

1. Считать шифр карты – общий алгоритм

Движение по линии Считывание шифра координаты 1-го артефакта цвета столбцов цвета строк Выезд на координатную сетку

14 1. Считать шифр карты

1. Считать шифр карты

1.1 Движение по линии 1.2 Считывание шифра 1.2.1 координаты 1-го артефакта 1.2.2 цвета столбцов 1.2.3 цвета строк

15 1.1 Движение по линии

1.1 Движение по линии

Универсальный алгоритм для всей задачи Пропорциональный регулятор с 1 датчиком

16 1.2 Считывание шифра

1.2 Считывание шифра

Решим промежуточную задачу – робот едет вдоль линии и говорит цвета плиток 3 блока – движение по линии, определение цвета, произнесение цвета Есть ли ложные срабатывания?

17 2

2

1

1.2 Считывание шифра

Какой цвет «видит» датчик цвета в 1 и 2 случаях? Иногда для верного определения цвета плитки нужно попасть на ее центр плитки

18 1.2 Считывание шифра - алгоритм

1.2 Считывание шифра - алгоритм

Едем по линии Ожидаем белый цвет Ожидаем не белый цвет Проезжаем X градусов, чтобы попасть на центр плитки Определяем цвет плитки

19 1.2 Считывание шифра - алгоритм

1.2 Считывание шифра - алгоритм

Движение по линии и считывание цветов плиток – в разных потоках

20 1.2 Считывание шифра - алгоритм

1.2 Считывание шифра - алгоритм

Теперь надо сохранить цвета плиток в переменные: В EV3 удобно использовать массивы:

21 Промежуточный результат №1

Промежуточный результат №1

Робот считывает цвета плиток, проговаривает их и записывает в переменные (или массивы) после считывания шифра робот останавливается

22 2. Определение координат артефакта

2. Определение координат артефакта

Мы знаем цвет строки / столбца, где находится артефакт, но не знаем их порядковые номера Задача: написать 2 блока: «определение индекса строки» входной аргумент: цвет строки, выходной – номер строки «определение индекса столбца» входной аргумент: цвет столбца, выходной – номер столбца

23 2. Определение координат артефакта

2. Определение координат артефакта

Пример блока «определение индекса строки»:

24 2. Определение координат артефакта

2. Определение координат артефакта

Пример блока EV3: Итеративно сравниваем цвет каждой строки с цветом 1-го артефакта. Если обнаружено равенство цветов – выходим из цикла

25 Промежуточный результат №2

Промежуточный результат №2

Робот считывает цвета плиток, проговаривает их и записывает в переменные (или массивы) после считывания шифра робот останавливается робот выводит координаты 1 артефакта на экран

26 3. Выезд на координатную сетку

3. Выезд на координатную сетку

Оптимальный алгоритм выезда зависит от конструкции робота Предложенный робот имеет широкую колесную базу, поэтому были выделены 2 варианта: 1 артефакт находится на 1 строке 1 артефакт находится на 2 - 4 строке

27 3. Выезд на координатную сетку – 1 вариант

3. Выезд на координатную сетку – 1 вариант

1 артефакт находится на 1 строке

Алгоритм: поворачивать левым колесом, пока датчик не увидит светлый, темный и снова светлый участки

28 3. Выезд на координатную сетку – 2 вариант

3. Выезд на координатную сетку – 2 вариант

1 артефакт находится на 2 - 4 строке

Алгоритм: проехать немного вперед по линии поворачивать левым колесом, пока датчик не окажется в «зеленой» зоне продолжать поворачивать, пока датчик не видит темный и светлый участки

29 3. Выезд на координатную сетку – 2 вариант

3. Выезд на координатную сетку – 2 вариант

1 артефакт находится на 2 - 4 строке Пример блока:

Проехать немного вперед по линии

Продолжение поворота до темной и светлой зон

Поворот до зеленой зоны

30 Промежуточный результат №3

Промежуточный результат №3

Робот считывает цвета плиток, проговаривает их и записывает в переменные (или массивы) после считывания шифра робот останавливается робот выводит координаты 1 артефакта на экран робот выезжает на координатную сетку если артефакт стоит на 1 строке – робот выезжает на 1 строку если артефакт стоит на 2-4 строке – робот выезжает на нулевой столбец

31 4. Подъехать к 1-му артефакту

4. Подъехать к 1-му артефакту

Алгоритмы подъезда к 1 артефакту и всем остальным будут отличаться Рассмотрим алгоритм подъезда к 1-му артефакту: если артефакт на 1 строке – робот находится на нужной строке, осталось подъехать к нужному столбцу если артефакт стоит на 2-4 строке – робот находится на нулевом столбце, надо подъехать к нужной строке, повернуть налево и подъехать к нужному столбцу

32 4. Подъехать к 1-му артефакту

4. Подъехать к 1-му артефакту

Выделим основные подзадачи: поворот налево подъезд к нужной строке подъезд к нужному столбцу подъезд к артефакту Решим каждую из них отдельно.

33 4.1. Поворот налево

4.1. Поворот налево

Реализация зависит от конструкции робота (расположения датчиков и пр.). Пример алгоритма: Запуск правого мотора Ожидание темной зоны Ожидание светлой зоны Ожидание темной зоны

34 4.2. Подъезд к нужной строке/столбцу

4.2. Подъезд к нужной строке/столбцу

В общем случае, 1 и 3 задачи одинаковы: езда вдоль линии и остановка на n-ном перекрестке подъезд к нужной строке подъезд к нужному столбцу

35 4.2. Подъезд к нужной строке/столбцу

4.2. Подъезд к нужной строке/столбцу

Можно реализовать программу в 2 потока: движение по линии (для него блок уже готов) для того, чтобы робот не «дергался» / съезжал при пересечении перекрестка нужно предусмотреть это состояние (проезд перекрестка) определение и подсчет перекрестков потребуется дополнительный датчик цвета или света

36 4.2. Подъезд к нужной строке/столбцу

4.2. Подъезд к нужной строке/столбцу

Пример реализации 1-го потока:

Остановка после проезда n-го перекрестка

Проверка флага

Проезд перекрестка

Движение по линии

37 4.2. Подъезд к нужной строке/столбцу

4.2. Подъезд к нужной строке/столбцу

Пример реализации 2-го потока:

Выход из цикла после проезда последнего перекрестка

Установка флага «перекресток обнаружен» + инкремент счетчика перекрестков

Ожидание перекрестка

38 4.3. Подъезд к артефакту

4.3. Подъезд к артефакту

Нужен 3-ий датчик цвета для обнаружения артефакта Блок «подъезд к артефакту» - движение по линии до обнаружения артефакта датчиком цвета:

39 4. Подъехать к 1-му артефакту

4. Подъехать к 1-му артефакту

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

40 Промежуточный результат №4

Промежуточный результат №4

Робот считывает цвета плиток, проговаривает их и записывает в переменные (или массивы) после считывания шифра робот останавливается робот выводит координаты 1 артефакта на экран робот выезжает на координатную сетку робот подъезжает к 1 артефакту

41 5. Определение координат следующего артефакта

5. Определение координат следующего артефакта

Координаты каждого следующего артефакта закодированы: цвет текущего артефакта = цвет строки следующего артефакта цвет плитки под текущим артефактом = цвет столбца следующего артефакта

42 5. Определение координат следующего артефакта

5. Определение координат следующего артефакта

Выделим подзадачи: определение цвета артефакта определение цвета плитки под артефактом определение координат следующего артефакта

43 5.1. Определение цвета артефакта

5.1. Определение цвета артефакта

Можно определить цвет артефакта после остановки перед ним:

Определение цвета артефакта

Подъезд к артефакту

44 5.2. Определение цвета плитки под артефактом

5.2. Определение цвета плитки под артефактом

Можно определить цвет плитки под артефактом с помощью датчика цвета, который считывал шифр. Для этого необходимо сдвинуть артефакт: вплотную подъехать к артефакту повернуть так, чтобы датчик цвета оказался над плиткой

45 5.2. Определение цвета плитки под артефактом

5.2. Определение цвета плитки под артефактом

Объединим программы определения цвета артефакта и плитки под ним:

Определение цвета артефакта

Сдвиг артефакта

Определение цвета плитки под артефактом

46 5.3. Определение координат следующего артефакта

5.3. Определение координат следующего артефакта

Задача определения координат артефакта по известным цветам строки и столбца была решена во 2 разделе. Используем блоки «определить индекс строки» и «определить индекс столбца», созданные во 2 разделе

47 Промежуточный результат №5

Промежуточный результат №5

Робот считывает цвета плиток, проговаривает их и записывает в переменные (или массивы) после считывания шифра робот останавливается робот выводит координаты 1 артефакта на экран робот выезжает на координатную сетку робот подъезжает к 1 артефакту робот определяет и выводит координаты следующего артефакта на экран

48 6. Захват артефакта

6. Захват артефакта

Конструкторская задача Возможный вариант механизма захвата:

49 Промежуточный результат №6

Промежуточный результат №6

Робот считывает цвета плиток, проговаривает их и записывает в переменные (или массивы) после считывания шифра робот останавливается робот выводит координаты 1 артефакта на экран робот выезжает на координатную сетку робот подъезжает к 1 артефакту робот выводит координаты следующего артефакта на экран робот захватывает 1 артефакт

50 7. Определение зоны следующего артефакта

7. Определение зоны следующего артефакта

Координаты следующего артефакта определены, но как до него доехать? Можно выделить 9 возможных зон:

0

6

3

2

8

5

1

7

4

51 7. Определение зоны следующего артефакта

7. Определение зоны следующего артефакта

Зоны определяются в зависимости от значений Cx_delta и Rx_delta: Cx_delta = Cx – Cx_new Rx_delta = Rx – Rx_new

Cx_delta

Rx_delta

0

> 0

> 0

1

> 0

< 0

2

> 0

= 0

3

< 0

> 0

4

< 0

< 0

5

< 0

= 0

6

= 0

> 0

7

= 0

< 0

8

= 0

= 0

52 7. Определение зоны следующего артефакта

7. Определение зоны следующего артефакта

Закодируем значения Cx_delta: 0 (> 0), 3 (< 0), 6 (= 0) Закодируем значения Rx_delta: 0 (> 0), 1 (< 0), 2 (= 0) Номер зоны = код Cx_delta + код Rx_delta

Cx_delta

Rx_delta

0

> 0 (0)

> 0 (0)

1

> 0 (0)

< 0 (1)

2

> 0 (0)

= 0 (2)

3

< 0 (3)

> 0 (0)

4

< 0 (3)

< 0 (1)

5

< 0 (3)

= 0 (2)

6

= 0 (6)

> 0 (0)

7

= 0 (6)

< 0 (1)

8

= 0 (6)

= 0 (2)

53 7. Определение зоны следующего артефакта

7. Определение зоны следующего артефакта

Вычисление кода Cx_delta (1 ветка блока switch):

Если cx_delta < 0: сохраняем значение 3 в индекс зоны

Вычисление cx_delta

54 7. Определение зоны следующего артефакта

7. Определение зоны следующего артефакта

Вычисление кода Cx_delta (2 ветка блока switch): Если Cx_delta > 0 – ничего не сохраняем (индекс зоны был предварительно обнулен)

Если cx_delta = 0: сохраняем значение 6 в индекс зоны

Вычисление cx_delta

55 7. Определение зоны следующего артефакта

7. Определение зоны следующего артефакта

Вычисление кода Rx_delta (1 ветка блока switch):

Если rx_delta < 0: прибавляем 1 к номеру зоны

Вычисление rx_delta

56 7. Определение зоны следующего артефакта

7. Определение зоны следующего артефакта

Вычисление кода Rx_delta (2 ветка блока switch):

Если rx_delta = 0: прибавляем 2 к номеру зоны

Вычисление rx_delta

57 Промежуточный результат №7

Промежуточный результат №7

Робот считывает цвета плиток, проговаривает их и записывает в переменные (или массивы) после считывания шифра робот останавливается робот выводит координаты 1 артефакта на экран робот выезжает на координатную сетку робот подъезжает к 1 артефакту робот выводит координаты следующего артефакта на экран робот захватывает 1 артефакт робот выводит номер зоны следующего артефакта

58 8. Навигация до зоны следующего артефакта

8. Навигация до зоны следующего артефакта

Рассмотрим навигацию до зоны 1: повернуть вниз проехать (abs(Rx_delta)) перекрестков повернуть направо проехать (Cx_delta – 1) перекрестков подъехать к артефакту и забрать его

Навигация до зон 0, 3, 4 будет аналогичной

1

59 8. Навигация до зоны следующего артефакта

8. Навигация до зоны следующего артефакта

Рассмотрим навигацию до зоны 1 : повернуть вниз А какое текущее положение робота? Если направлен налево – надо поворачивать налево Если направлен направо – надо поворачивать направо

Если направлен вверх – надо развернуться Если направлен вниз – не надо никуда поворачивать

1

60 8. Навигация до зоны следующего артефакта

8. Навигация до зоны следующего артефакта

В зависимости от положения робота, необходимо выполнять разные повороты Нужно запомнить направление робота: 0 – вправо 1 – вниз 2 – влево 3 – вверх Переменную с направлением робота необходимо обновлять во время каждого поворота / разворота

3

0

2

1

61 8. Навигация до зоны следующего артефакта

8. Навигация до зоны следующего артефакта

Кроме обычных блоков «поворот направо», «поворот налево» можно создать блоки «поворот в положение 1», «поворот в положение 2», … Тогда действие «повернуть вниз» будет выполняться блоком «поворот в положение 2»

62 8. Навигация до зоны следующего артефакта

8. Навигация до зоны следующего артефакта

Проехать (abs(rx_delta)) перекрестков

63 8. Навигация до зоны следующего артефакта

8. Навигация до зоны следующего артефакта

Повернуть направо алгоритм поворота был разобран в разделе 4.1 проехать (cx_delta – 1) перекрестков алгоритм подсчета перекрестков был разобран в разделе 4.2 подъехать к артефакту и забрать его алгоритмы были рассмотрены в разделах 4.3 и 5

64 Промежуточный результат №8

Промежуточный результат №8

Робот считывает шифр карты робот выводит координаты 1 артефакта на экран робот выезжает на координатную сетку робот подъезжает к 1 артефакту робот выводит координаты следующего артефакта на экран робот захватывает 1 артефакт робот выводит номер зоны следующего артефакта робот едет к следующему артефакту

65 ХХ

ХХ

Объезд опасных артефактов

Проезд перекрестка в прямом направлении

66 ХХ

ХХ

Объезд опасных артефактов

Проезд перекрестка с поворотом направо

67 ХХ

ХХ

Объезд опасных артефактов

Проезд перекрестка с поворотом налево

68 ХХ

ХХ

Объезд опасных артефактов

В теории все понятно, а что изменять в программе? блок «проезд Х перекрестков» должен проверять наличие опасного артефакта перед собой, и, если он был обнаружен, объехать его в прямом направлении

69 ХХ

ХХ

Объезд опасных артефактов

Если опасный артефакт был обнаружен на последнем перекрестке (перед которым надо остановиться), то можно повернуть направо / налево или объехать его в прямом направлении Тип поворота можно задать отдельным входным параметром блока; выходной параметр может обозначать факт маневра на последнем перекрестке

70 Вопросы

Вопросы

Александр Ворон voron.alexander@gmail.com

«World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ»»
http://900igr.net/prezentacija/informatika/world-robot-olympiad-wro-2015-analiz-zadanija-poisk-sokrovisch-171315.html
cсылка на страницу
Урок

Информатика

130 тем
Слайды
900igr.net > Презентации по информатике > Без темы > World Robot Olympiad (WRO) 2015 Анализ задания «Поиск сокровищ»