Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

Кружок по робототехнике. Занятие #8. Решение задач Slide 1 Кружок по робототехнике. Занятие #8. Решение задач Slide 2 Кружок по робототехнике. Занятие #8. Решение задач Slide 3 Кружок по робототехнике. Занятие #8. Решение задач Slide 4 Кружок по робототехнике. Занятие #8. Решение задач Slide 5 Кружок по робототехнике. Занятие #8. Решение задач Slide 6 Кружок по робототехнике. Занятие #8. Решение задач Slide 7 Кружок по робототехнике. Занятие #8. Решение задач Slide 8 Кружок по робототехнике. Занятие #8. Решение задач Slide 9 Кружок по робототехнике. Занятие #8. Решение задач Slide 10 Кружок по робототехнике. Занятие #8. Решение задач Slide 11 Кружок по робототехнике. Занятие #8. Решение задач Slide 12 Кружок по робототехнике. Занятие #8. Решение задач Slide 13 Кружок по робототехнике. Занятие #8. Решение задач Slide 14 Кружок по робототехнике. Занятие #8. Решение задач Slide 15 Кружок по робототехнике. Занятие #8. Решение задач Slide 16 Кружок по робототехнике. Занятие #8. Решение задач Slide 17 Кружок по робототехнике. Занятие #8. Решение задач Slide 18 Кружок по робототехнике. Занятие #8. Решение задач Slide 19 Кружок по робототехнике. Занятие #8. Решение задач Slide 20 Кружок по робототехнике. Занятие #8. Решение задач Slide 21 Кружок по робототехнике. Занятие #8. Решение задач Slide 22 Кружок по робототехнике. Занятие #8. Решение задач Slide 23 Кружок по робототехнике. Занятие #8. Решение задач Slide 24 Кружок по робототехнике. Занятие #8. Решение задач Slide 25 Кружок по робототехнике. Занятие #8. Решение задач Slide 26 Кружок по робототехнике. Занятие #8. Решение задач Slide 27 Кружок по робототехнике. Занятие #8. Решение задач Slide 28 Кружок по робототехнике. Занятие #8. Решение задач Slide 29 Кружок по робототехнике. Занятие #8. Решение задач Slide 30 Кружок по робототехнике. Занятие #8. Решение задач Slide 31 Кружок по робототехнике. Занятие #8. Решение задач Slide 32 Кружок по робототехнике. Занятие #8. Решение задач Slide 33 Кружок по робототехнике. Занятие #8. Решение задач Slide 34 Кружок по робототехнике. Занятие #8. Решение задач Slide 35
Upcoming SlideShare
Кружок по робототехнике. Занятие #7. Решение задач
Next

14 Likes

Share

Кружок по робототехнике. Занятие #8. Решение задач

This slide deck is used on the eight lesson for kids who started robotics courses for the first year. It describes basic approaches to prepare robot to simple competitions.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Кружок по робототехнике. Занятие #8. Решение задач

  1. 1. Программирование Lego-роботов Решение задач. Часть II Нижний Новгород, 2012
  2. 2. Содержание • Движение вдоль линии, огибая препятствия • Цикл с выходом по условию • Движение вдоль линии сложной траектории • Использование собственных блоков
  3. 3. Огибание препятствий Задание При движении вдоль линии робот должен обнаружить препятствия на своем пути и обходить их, возвращась снова на линию
  4. 4. Огибание препятствий Анализ задачи • Задачу можно разбить на несколько под-задач: • Ехать вдоль черной линии пока датчик расстояния не обнаружит препятствие, на такой дистанции, которая бы не мешала роботу вдальнейшем выполнять его объезд. • Выполнить объезд препятствия и вернуться на линию. Движение вдоль линии Объезд препятствия и возвращение на линию
  5. 5. Огибание препятствий Программа (начало) • Напишите программу, в соовтетствии с которой робот двигался бы вдоль черной линии до тех пор, пока перед ним не возникнет препятствие, после чего останавливается. • Как обнаружить препятствие во время движения и остановить движение робота, но не программы (ведь в последствии робот должен выполнить объезд препятствия)? • Какой алгоритм будет использоваться для движения вдоль линии?
  6. 6. Цикл с выходом по условию Довольно часто, не нужно повторять действия в программе бесконечно. Так или иначе цикл должен быть завершен при наступлении какого- то события. • Остановиться при пересечении третьей линии 1 2 3 4 5 • Двигаться вдоль линии пока не появиться препятствие Движение вдоль линии
  7. 7. Цикл с выходом по условию В NXT-G существует способ задать условие выхода для цикла Условием выхода может быть: • Достижение определенного количества повторений • Событие от датчика • Ограничение выполнения по времени • Результат вычисления внешнего логического условия
  8. 8. Огибание препятствий Предыдущий алгоритм, который использовался для движения вдоль линии, подразумевал чередование операций ожидания Ожидание появления светлого участка поля Ожидание появления темного участка поля Может оказаться так, что условие выхода из цикла не сработает, поскольку программа будет находиться в одном из состояний ожидания. Т.е. робот может оказаться ближе заданной дистанции до препятствия.
  9. 9. Огибание препятствий Робот должен был заметить препятствие во время этого поворота В действительности, оно будет обнаружено только после этой операции ожидания Алгоритм должен иметь возможность обнаружить препятствие в любой момент. Это легче всего сделать, если от блоков ожидания перейти к блокам ветвления.
  10. 10. Огибание препятствий Если нахожусь на светлом, то выполнять поворот вправо >50 50% <50 Если нахожусь на темном, то выполнять поворот влево • Пока робот находиться на светлой части, в каждой итерации цикла выполняется верхняя часть ветвления. • Как только робот попадает в темную область, в каждой итерации цикла выполняются действия из нижней ветки. • Помимо этого, в каждой итерации цикла проверяется не случилось ли условие выхода из цикла.
  11. 11. Огибание препятствий Программа (продолжение) • Напишите программу только для огибания препятствия, подразумевая, что робот уже стоит перед ним. После огибания препятствия робот должен вернуться на черную линию. • Траектория огибания может состоять из нескольких действий или из одного плавного поворота. • Как убедиться, что робот вернулся на линию? • Как убедиться, что робот сможет продолжить движение по линии после огибания препятствия?
  12. 12. Огибание препятствий Очевидно, что для обнаружения линии после огибания препятствия, нужно использовать датчик освещенности.
  13. 13. Огибание препятствий Дальнейшие действия зависят от того, какую границу линии робот использует для движения. 1. Датчик сейчас на темном, 1 2 поворачивать одним колесом до светлого. 2. Датчик – на светлом, продолжать поворот до темного. 3. Если робот должен двигаться по правой 3 4 границе – останавливаемся, иначе продолжаем поворот до светлого. 4. Датчик - на левой границе.
  14. 14. Огибание препятствий Из-за погрешностей, в одном и том же месте датчик может показывать значения отличающиеся друг от друга на 1-2% при нескольких последовательных измерениях. В итоге, при использовании одного и того же порога срабатывания для определения «стало темно» и «стало светло», робот может вести себя непредсказуемо. • Например, если в алгоритме из предыдущего слайда, на первом шаге датчик покажет 49%, а затем 51%, то робот будет считать, что он уже на шаге два, в то время как физически расположен все еще на левой границе линии.
  15. 15. Огибание препятствий Для избегания ложных срабатываний, пороги определения «стало светлее» и «стало темнее» сдвигают на 4-10%. граница линии темная область светлая область 45% 50% 55% • Двигаться, пока не станет меньше 45% (окажемся точно на темном) • Двигаться, пока не станет больше 55% (окажемся точно на светлом)
  16. 16. Огибание препятствий Программа (финал) • Объедините две предыдущие программы в одну. Движение вдоль линии Движение вдоль линии Объезд препятствия и возвращение на линию • Предусмотрите возможность реагирования на несколько (до четырех) препятствий.
  17. 17. Сложная траектория Задание На трассе, выполненной в виде черной линии с перекрестками, робот должен следовать заранее заданному маршруту. СТАРТ ФИНИШ
  18. 18. Сложная траектория Анализ задачи • Для решения задачи робот должен уметь определять перекрестки и, в зависимости от плана передвижения, должен: a) Проезжать перекрестки мимо b) Выполнять правый поворот на перекрестке c) Выполнять левый поворот на перекрестке • Конструкция робота будет содержать как минимум два датчика освещенности: • Датчик для движения вдоль линии • Датчик для обнаружения перекрестков
  19. 19. Сложная траектория Программа (тренировка) • Напишите программу, в соовтетствии с которой робот считал пересеченные темные линии и остановился бы на третьей линии. 1 2 3 4 5 • Используйте блоки ожидания для решения задач • Последовательность из каких блоков используется для пересечения линии? Будет ли достаточно только блоков «движение» и «ждать пока не станет темно»?
  20. 20. Сложная траектория Программа (начало) • Напишите программу, после запуска которой робот двигался бы вдоль линии и остановился после третьего перекрестка. 1 2 3 4 5 • Для движения до перекрестка используйте такой же подход, что и из предыдущего задания «двигаться до возникновения препятствия» • Должен ли робот продолжать двигаться вдоль линии для того, чтобы проехать перекресток?
  21. 21. Использование собственных блоков • Очевидно, что движение вдоль линии в цикле «движение до перекрестка» будет тем же самым, что и в цикле «проезд перекрестка» • В NXT-G есть возможность объединять часть программы в индивидуальный блок с тем, чтобы: • Использовать его в программе каждый раз, вместо группы блоков, которые в него входят. • Экономить место в программе, как при ее графическом представлении, так и после компиляции.
  22. 22. Использование собственных блоков • Создание собственного блока • Выделите группу блоков в программе • Выберите пункт меню «Make A New My Block»
  23. 23. Использование собственных блоков • Создание собственного блока (продолжение) • Задайте название нового блока (русские названия не поддерживаются)
  24. 24. Использование собственных блоков • Создание собственного блока (продолжение) • Составьте изображение для нового блока
  25. 25. Использование собственных блоков • Создание собственного блока (продолжение) • Новый блок подставляется вместо выбранного участка в программе
  26. 26. Использование собственных блоков • Поскольку, содержимое следующего цикла аналогично содержимому нового блока, то оно может быть замещено. • Созданные блоки находятся в палитре инструментов «Custom» • Финальный вид двух циклов.
  27. 27. Использование собственных блоков • Двойной щелчок по блоку в программе, приведет к переходу в содержимое блока. • Если, например, изменить содержимое блока (увеличить скорость, усложнить алгоритм), то измениться поведение и в первом и во втором цикле. После изменения собственного блока не забывайте сохранить его и загрузить осно вную программу (не содержимое блока) на блок заново – иначе изменения не подхватятся.
  28. 28. Использование собственных блоков • Каждый цикл имеет свое предназначение: «ехать до перекрестка», «проехать перекресток». • Для удобства, можно для каждого из них составить отдельный блок. • Вся программа движения до конкретного перекрестка будет представлять чередование этих двух блоков. • Или даже эта пара блоков может быть объединена в один блок, что еще более сократит программу.
  29. 29. Сложная траектория Программа (продолжение) • Напишите программу, выполняющую поворот налево, после первого перекрестка. • Какой датчик будет использоваться для определения достаточно ли робот уже повернулся или нет? • С какой стороны от линии должен оказаться датчик после выполнения поворота?
  30. 30. Сложная траектория Можно сравнить два способа поворота: С помощью датчика поворота двигателя - енкодера С помощью датчиков (по градусам или оборотам) освещенности + Просто программировать + При правильном - Низкая уверенность, что программировании, после после поворота робот будет поворота, датчик всегда расположен правильно будет находиться с нужной относительно линии стороны линии. - Более сложная реализация
  31. 31. Сложная траектория Нужно, чтобы датчик, отвечающий за движение вдоль линии, оказался с нужной стороны от нее после поворота. Поэтому навигация с использованием именно этого датчика наиболее надежена во время выполнения поворота. В данном примере, прежде чем начать непосредственно поворот, нужно убедиться, что датчик точно расположен на светлой части поля, через предварительный поворот «до светлого».
  32. 32. Сложная траектория Какой поворот выбрать: одним или двумя моторами, сколько переходов «светлое-темное» и в какой последовательности надо сделать, зависит от того, как расположены датчики относительно линии и друг друга.
  33. 33. Сложная траектория Программа (продолжение) • Напишите программу, выполняющую поворот направо, после первого перекрестка. • Изменится ли количество блоков ожидания «до светлого»/«до черного» или их количество при этом повороте, если его сравнивать с левым?
  34. 34. Сложная траектория Программа (финал) • На основе созданных программ поворота создайте собственные блоки. • Из полученных блоков «Движение до перекрестка», «Проезд перекрестка», «Левый поворот» и «Правый поворот» составьте программу для решения задачи. СТАРТ ФИНИШ После выполнения задания, самостоятельно измените маршрут и составьте новую программу из этих 4 блоков.
  35. 35. Решение задач • Ваши вопросы?
  • sheyenkoirina

    May. 5, 2017
  • ssuser641be8

    Nov. 2, 2016
  • Kolesntein_Iogan

    Oct. 26, 2016
  • ssuserf83236

    Sep. 25, 2016
  • woodyavr

    May. 17, 2016
  • Elena_Podlesnykh

    Dec. 2, 2015
  • mounsergey

    Nov. 5, 2015
  • Madina8602

    May. 6, 2015
  • uliastepanova

    Jan. 29, 2015
  • SKoshelev

    Jan. 13, 2015
  • mirabell-t

    Nov. 13, 2014
  • klementevvova

    Apr. 15, 2014
  • stepanenkoo

    Mar. 24, 2014
  • zuev

    Jun. 12, 2013

This slide deck is used on the eight lesson for kids who started robotics courses for the first year. It describes basic approaches to prepare robot to simple competitions.

Views

Total views

13,553

On Slideshare

0

From embeds

0

Number of embeds

3,048

Actions

Downloads

0

Shares

0

Comments

0

Likes

14

×