SlideShare a Scribd company logo
Программирование Lego-роботов
   «Слушаем» датчики. Часть III




                  Нижний Новгород, 2012
Содержание

•   Принятие решений
•   Ветвление программы в NXT-G
•   Особенности блока ветвления
•   Коснулись или нет?
•   На сколько светло?
•   Какой цвет?
•   Ближе или дальше?
•   Сколько едем?
Принятие решений

• В ходе выполнения задания перед роботом может
  стоять выбор, в какое состояние ему перейти.
• Подобный выбор стоит перед богатырем на
  распутье.

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

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


                                    Включить
                                     моторы
       Узнать                        захвата
       какого
       цвета
        мяч
                                    Включить
                                   моторы для
                                    разворота
Принятие решений

• Также можно говорить о причинах и действиях,
  которые эти причины вызывают.

               Стало             Поднять
                тихо             занавес




                                  Подать
               Стало
                                 звуковой
               громко
                                  сигнал


              причины           действия
Ветвление программы в NXT-G

• В месте принятия решения происходит
  разветвление программы.
• В зависимости от решения, программа может пойти
  либо по одной, либо по другой ветке
• После выполнения
  действий внутри той
  или иной ветки,
  программа вновь
  возвращается в
  «основное русло».
Ветвление программы в NXT-G

         • Для того, чтобы обозначить место
           ветвления в программе, используется
           блок «Switch» (Переключить).
         • Блок может быть описан фразой «в
           зависимости от причины, переключиться
           в одну из двух веток программы»

• Блок располагается в
  основной (Common)
  палитре.
Ветвление программы в NXT-G

• Для принятия решения, в какую ветку программы
  переключаться может быть использована
  информация с различных датчиков:
Ветвление программы в NXT-G


• Вкладывая блоки принятия
  решения друг в друга, можно
  составить множественные
  разветвления.
Особенности блока ветления

• Каждый блок принятия решения может быть
  отображен в двух формах:
  В виде ветвления        В виде блока с вкладками
Особенности блока ветления

   В виде ветвления                   В виде блока с вкладками




                                   + занимает меньше места
                                   + может быть больше, чем две
+ удобно отображает ветвление         вкладки, больше вариантов
+ видно блоки программы в каждой      разветвления
    ветке                          + можно передавать данные
- занимает много места                (каналы данных) внутрь
- возможны только две ветки        - блоки программы скрыты во
                                      вкладках
Коснулись или нет?

• Ветвление может происходить после оценки
  состояния датчика касания:




• «Если датчик касания зажат, то выполнить блоки из
  верхней ветки, иначе (если отжат) выполнить блоки
  из нижней ветки»
Коснулись или нет?

• У датчика касания проверять можно состояния –
  зажат, отжат, нажат.
• Проверка на состояние «отжат» – инвертирует
  логику.




                            • «Если датчик касания отжат,
                              то выполнить блоки из
                              верхней ветки, иначе (если
                              нажат) выполнить блоки из
                              нижней ветки»
Коснулись или нет?

• Проверку на состояние «нажат» (зажат и сразу же
  отжат) можно интерпретировать как запрос на
  событие.
• «Случилось ли на датчике нажатие? Если ДА,
  выполнить блоки из верхней ветки. Если НЕТ,
  выполнить блоки из нижней ветки.»
                                 ДА


                                 НЕТ
Коснулись или нет?

• Пример




1. Проехать какую-то трассу
2. Проверить привезла ли тележка достаточно груза.
   2.1. Если груза достаточно (датчик зажат), вывести «смайлик»
   2.2. Если груза недостаточно, вывести недовольный сигнал
3. Возвращаться назад
Коснулись или нет?

• Задание 1.
  1. После включения блок должен проверить нажат ли
     датчик касания.
  2. В зависимости от того нажат или нет, воспроизвести
     фразу “Yes” или “No”
  3. После воспроизведения – остановить программу

                                          YES



                                          NO
Коснулись или нет?

• Задание 2. Управляемая машинка
  1. Датчик касания закреплен на длинном проводе
  2. Если датчик нажат – робот-тележка стоит, если отжат –
     едет




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

• Ветвление может происходить после оценки
  состояния датчика освещенности (или датчика
  цвета в режиме датчика освещенности):




• «Если светлее, то выполнить блоки из верхней
  ветки, иначе (если темнее) выполнить блоки из
  нижней ветки»
Насколько светло?

• Определение «светлее»/«темнее»
  выполняется путем сравнения с
  указанным значением.
• Если текущее показание больше заданного, то это
  расценивается как «светлее», иначе «темнее»
• Возможна смена знака на противоположный, что
  изменяет логику разветвления.
Насколько светло?

• Пример




1. Пока тележка двигается, проверять насколько светло вокруг
   1.1. Если светло, развернуть солнечные батареи и написать на экране
      об этом
   1.2. Если темно, то свернуть батареи, чтобы защитить их от пыли
Насколько светло?
• Задание 3. Азбука морзе
  1. Пока тележка едет по темной поверхности – издается
     звук, как только поверхность светлее – звук смолкает

               L        E        G             O

      Заранее неизвестно, сколько каждый звук продлится – неизвестно
      на сколько быстро тележка проедет по каждой «точке» и «тире».
      Поэтому звук начнет играться какое-то заранее долгое время, но
      при этом программа не будет ждать его завершения, а сразу
      перейдет к следующему блоку в программе.
      Тогда, при заезде на светлое поле, звук надо явно остановить.
Какой цвет?

• Ветвление может происходить после оценки
  состояния датчика цвета:




• «Если цвет синий, то выполнить блоки из верхней
  ветки, иначе (если любой другой) выполнить блоки
  из нижней ветки»
Какой цвет?

• Определять на соответствие за
  раз можно и один цвет и
  несколько.
• Проверку можно проинвертировать – проверять на
  совпадение цвета, которые находятся вне
  заданного диапазона: «любой цвет кроме красного»
  или «любой цвет кроме синего и зеленого»
Какой цвет?

• Пример
  • Двигатель вращает
    робота вокруг своей оси
  • Если датчик увидел
    красный цвет – играется
    нота ДО
  • Если датчик увидел синий
    цвет – играется нота РЕ
  • При любом другом цвете
    играется нота МИ
Какой цвет?

• Задание 4. Красный цвет – дороги нет
  1. Робот-тележка должен пересекать черные полоски –
     дорожки, при пересечении говорить «Black»
  2. Как только ему встретиться красная дорожка – он должен
     остановиться




  3. Задание нужно выполнить с использованием вложенных
     условий
  • Окончательно ли остановится робот на красной дорожке?

      Для того, чтобы остановить
      выполнение программы,
      используется блок «Stop»
Ближе или дальше?

• После сравнения текущего показания сенсора
  расстояния с заданным эталонным, программа
  также может разветвиться:




• «Если объект ближе, чем заданное расстояние, то выполнить блоки из
  верхней ветки, иначе (если дальше или точно на таком расстоянии)
  выполнить блоки из нижней ветки»
Ближе или дальше?

• При изменении знака в условии с меньше на
  больше меняется (инвертируется) смысл условия:
                                 «Если объект дальше, чем
                                 заданное расстояние, то
                                 выполнить блоки из
                                 верхней ветки, иначе (если
                                 ближе или точно на таком
                                 расстоянии) выполнить
                                 блоки из нижней ветки»
Ближе или дальше?

• Пример




1. Ехать, пока в стене не найдется расстояние глубже 5 см.
2. Проверить достаточно ли места для заезда робота.
   2.1. Если места недостаточно (на сенсоре маленькие значение)
      вывести сигнал тревоги
   2.2. Если груза достаточно, произвести заезд
Ближе или дальше?

• Задание 5a. Беспокойный любопытный робот
  1. Робот должен находиться все время на одном
     расстоянии от руки (или другого предмета) – 25 см.
  2. Если рука удаляется от робота, то робот придвигается к
     ней
  3. Если рука приближается к роботу, то робот отъезжает
     назад.
Ближе или дальше?

• Задание 5b. Опытный любопытный робот
  1. В предыдущем задании, робот никогда не был в
     состоянии покая – он, то ехал вперед, то двигался
     назад
  2. Нужно изменить программу так, чтобы робот был
     неподвижен при нахождении на определенном
     расстоянии




                    24 см.
                    26 см.
Сколько едем?

• После сравнения текущего показания датчика
  поворота оси мотора (енкодер) с заданным
  эталонным, программа также может разветвиться:




• «Если мотор повернулся больше, чем заданное количество градусов, то
  выполнить блоки из верхней ветки, иначе (если дальше или точно на
  таком расстоянии) выполнить блоки из нижней ветки»
Сколько едем?

• Сравниваться могут как количество градусов, на
  которые повернулась ось мотора, так и количество
  оборотов:


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

  • По-умолчанию, показания датчика поворота накапливаются
    с момента старта робота. Т.е. можно в любой момент
    времени узнать, на какое расстояние робот уехал от зоны
    старта. Причем движение мотора вперед увеличивают это
    число, движение мотора назад уменьшает его.
  • Это поведение можно изменить, если в сбросить показания
    датчика - накопление будет происходить с момента, когда
    произошел сброс.
           Старт программы                             Сброс        Замера показаний



                             3 оборота
Поведение по-умолчанию,                  5 оборотов               Количество оборотов
Количество оборотов мотора                                        мотора после сброса
                                                      2 оборота
после старта
Сколько едем?

• Сброс датчика поворотов оси двигателя
  осуществляется специальным блоком:
Сколько едем?

• Пример




Еще один способ ехать по квадрату.
       Для измерения сколько проехал робот не обязательно собирать
       значения с датчиков обеих моторов. При движении прямо моторы
       проезжают одинаковое расстояние, поэтому использовать
       значения можно тоже только с одного из моторов.
Сколько едем?

• Задание 6. Умная парковка
  1. Датчик расстояния смотрит в сторону
  2. Робот должен найти пространство для парковки между
     двумя «автомобилями» и выполнить заезд в
     обнаруженное пространство. Если расстояние между
     «автомобилями» недостаточно для парковки – робот
     должен продолжить движение прямо, для поиска более
     подходящего места
                 1.5 оборота            0.6 оборотов




                               15 см.         ?? см.   15 см.
Принятие решений



 • Ваши вопросы?

More Related Content

More from Alexander Kolotov

Таблица соответствия робототехнических компетенций и возрастов
Таблица соответствия робототехнических компетенций и возрастовТаблица соответствия робототехнических компетенций и возрастов
Таблица соответствия робототехнических компетенций и возрастов
Alexander Kolotov
 
Опросный лист оценки знаний по соревновательной робототехнике
Опросный лист оценки знаний по соревновательной робототехникеОпросный лист оценки знаний по соревновательной робототехнике
Опросный лист оценки знаний по соревновательной робототехнике
Alexander Kolotov
 
Справка-обзор популярных робототехнических комплектов
Справка-обзор популярных робототехнических комплектовСправка-обзор популярных робототехнических комплектов
Справка-обзор популярных робототехнических комплектов
Alexander Kolotov
 
тропинка по лесу к голубому озеру
тропинка по лесу к голубому озерутропинка по лесу к голубому озеру
тропинка по лесу к голубому озеру
Alexander Kolotov
 
Робототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть IРобототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть I
Alexander Kolotov
 
Кружок по робототехнике. Занятие #3. Программируем экран и звуки
Кружок по робототехнике. Занятие #3. Программируем экран и звукиКружок по робототехнике. Занятие #3. Программируем экран и звуки
Кружок по робототехнике. Занятие #3. Программируем экран и звуки
Alexander Kolotov
 
Кружок по робототехнике. Занятие #2. Первый робот
Кружок по робототехнике. Занятие #2. Первый роботКружок по робототехнике. Занятие #2. Первый робот
Кружок по робототехнике. Занятие #2. Первый робот
Alexander Kolotov
 
Promo presentation for robotics cources
Promo presentation for robotics courcesPromo presentation for robotics cources
Promo presentation for robotics cources
Alexander Kolotov
 
Кружок по робототехнике. Занятие #1. Введение
Кружок по робототехнике. Занятие #1. Введение Кружок по робототехнике. Занятие #1. Введение
Кружок по робототехнике. Занятие #1. Введение
Alexander Kolotov
 
L^2: LEGO и Linux
L^2: LEGO и LinuxL^2: LEGO и Linux
L^2: LEGO и Linux
Alexander Kolotov
 
Игрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботовИгрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботов
Alexander Kolotov
 

More from Alexander Kolotov (11)

Таблица соответствия робототехнических компетенций и возрастов
Таблица соответствия робототехнических компетенций и возрастовТаблица соответствия робототехнических компетенций и возрастов
Таблица соответствия робототехнических компетенций и возрастов
 
Опросный лист оценки знаний по соревновательной робототехнике
Опросный лист оценки знаний по соревновательной робототехникеОпросный лист оценки знаний по соревновательной робототехнике
Опросный лист оценки знаний по соревновательной робототехнике
 
Справка-обзор популярных робототехнических комплектов
Справка-обзор популярных робототехнических комплектовСправка-обзор популярных робототехнических комплектов
Справка-обзор популярных робототехнических комплектов
 
тропинка по лесу к голубому озеру
тропинка по лесу к голубому озерутропинка по лесу к голубому озеру
тропинка по лесу к голубому озеру
 
Робототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть IРобототехника с Not eXactly C. Часть I
Робототехника с Not eXactly C. Часть I
 
Кружок по робототехнике. Занятие #3. Программируем экран и звуки
Кружок по робототехнике. Занятие #3. Программируем экран и звукиКружок по робототехнике. Занятие #3. Программируем экран и звуки
Кружок по робототехнике. Занятие #3. Программируем экран и звуки
 
Кружок по робототехнике. Занятие #2. Первый робот
Кружок по робототехнике. Занятие #2. Первый роботКружок по робототехнике. Занятие #2. Первый робот
Кружок по робототехнике. Занятие #2. Первый робот
 
Promo presentation for robotics cources
Promo presentation for robotics courcesPromo presentation for robotics cources
Promo presentation for robotics cources
 
Кружок по робототехнике. Занятие #1. Введение
Кружок по робототехнике. Занятие #1. Введение Кружок по робототехнике. Занятие #1. Введение
Кружок по робототехнике. Занятие #1. Введение
 
L^2: LEGO и Linux
L^2: LEGO и LinuxL^2: LEGO и Linux
L^2: LEGO и Linux
 
Игрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботовИгрушки на вырост. Программируем Lego-роботов
Игрушки на вырост. Программируем Lego-роботов
 

Кружок по робототехнике. Занятие #6. Ветвления

  • 1. Программирование Lego-роботов «Слушаем» датчики. Часть III Нижний Новгород, 2012
  • 2. Содержание • Принятие решений • Ветвление программы в NXT-G • Особенности блока ветвления • Коснулись или нет? • На сколько светло? • Какой цвет? • Ближе или дальше? • Сколько едем?
  • 3. Принятие решений • В ходе выполнения задания перед роботом может стоять выбор, в какое состояние ему перейти. • Подобный выбор стоит перед богатырем на распутье. • Выбор может зависеть от показаний на сенсорах и датчиках, внутренних часов робота или от информации полученной от других роботов.
  • 4. Принятие решений • Например, робот, обнаружив красный мяч, должен отнести его в корзину, а синий оставить на месте. Включить моторы Узнать захвата какого цвета мяч Включить моторы для разворота
  • 5. Принятие решений • Также можно говорить о причинах и действиях, которые эти причины вызывают. Стало Поднять тихо занавес Подать Стало звуковой громко сигнал причины действия
  • 6. Ветвление программы в NXT-G • В месте принятия решения происходит разветвление программы. • В зависимости от решения, программа может пойти либо по одной, либо по другой ветке • После выполнения действий внутри той или иной ветки, программа вновь возвращается в «основное русло».
  • 7. Ветвление программы в NXT-G • Для того, чтобы обозначить место ветвления в программе, используется блок «Switch» (Переключить). • Блок может быть описан фразой «в зависимости от причины, переключиться в одну из двух веток программы» • Блок располагается в основной (Common) палитре.
  • 8. Ветвление программы в NXT-G • Для принятия решения, в какую ветку программы переключаться может быть использована информация с различных датчиков:
  • 9. Ветвление программы в NXT-G • Вкладывая блоки принятия решения друг в друга, можно составить множественные разветвления.
  • 10. Особенности блока ветления • Каждый блок принятия решения может быть отображен в двух формах: В виде ветвления В виде блока с вкладками
  • 11. Особенности блока ветления В виде ветвления В виде блока с вкладками + занимает меньше места + может быть больше, чем две + удобно отображает ветвление вкладки, больше вариантов + видно блоки программы в каждой разветвления ветке + можно передавать данные - занимает много места (каналы данных) внутрь - возможны только две ветки - блоки программы скрыты во вкладках
  • 12. Коснулись или нет? • Ветвление может происходить после оценки состояния датчика касания: • «Если датчик касания зажат, то выполнить блоки из верхней ветки, иначе (если отжат) выполнить блоки из нижней ветки»
  • 13. Коснулись или нет? • У датчика касания проверять можно состояния – зажат, отжат, нажат. • Проверка на состояние «отжат» – инвертирует логику. • «Если датчик касания отжат, то выполнить блоки из верхней ветки, иначе (если нажат) выполнить блоки из нижней ветки»
  • 14. Коснулись или нет? • Проверку на состояние «нажат» (зажат и сразу же отжат) можно интерпретировать как запрос на событие. • «Случилось ли на датчике нажатие? Если ДА, выполнить блоки из верхней ветки. Если НЕТ, выполнить блоки из нижней ветки.» ДА НЕТ
  • 15. Коснулись или нет? • Пример 1. Проехать какую-то трассу 2. Проверить привезла ли тележка достаточно груза. 2.1. Если груза достаточно (датчик зажат), вывести «смайлик» 2.2. Если груза недостаточно, вывести недовольный сигнал 3. Возвращаться назад
  • 16. Коснулись или нет? • Задание 1. 1. После включения блок должен проверить нажат ли датчик касания. 2. В зависимости от того нажат или нет, воспроизвести фразу “Yes” или “No” 3. После воспроизведения – остановить программу YES NO
  • 17. Коснулись или нет? • Задание 2. Управляемая машинка 1. Датчик касания закреплен на длинном проводе 2. Если датчик нажат – робот-тележка стоит, если отжат – едет 3. Измените, программу так, чтобы при нажатом датчике робот вращался вокруг своей оси, а при отжатом – двигался вперед.
  • 18. Насколько светло? • Ветвление может происходить после оценки состояния датчика освещенности (или датчика цвета в режиме датчика освещенности): • «Если светлее, то выполнить блоки из верхней ветки, иначе (если темнее) выполнить блоки из нижней ветки»
  • 19. Насколько светло? • Определение «светлее»/«темнее» выполняется путем сравнения с указанным значением. • Если текущее показание больше заданного, то это расценивается как «светлее», иначе «темнее» • Возможна смена знака на противоположный, что изменяет логику разветвления.
  • 20. Насколько светло? • Пример 1. Пока тележка двигается, проверять насколько светло вокруг 1.1. Если светло, развернуть солнечные батареи и написать на экране об этом 1.2. Если темно, то свернуть батареи, чтобы защитить их от пыли
  • 21. Насколько светло? • Задание 3. Азбука морзе 1. Пока тележка едет по темной поверхности – издается звук, как только поверхность светлее – звук смолкает L E G O Заранее неизвестно, сколько каждый звук продлится – неизвестно на сколько быстро тележка проедет по каждой «точке» и «тире». Поэтому звук начнет играться какое-то заранее долгое время, но при этом программа не будет ждать его завершения, а сразу перейдет к следующему блоку в программе. Тогда, при заезде на светлое поле, звук надо явно остановить.
  • 22. Какой цвет? • Ветвление может происходить после оценки состояния датчика цвета: • «Если цвет синий, то выполнить блоки из верхней ветки, иначе (если любой другой) выполнить блоки из нижней ветки»
  • 23. Какой цвет? • Определять на соответствие за раз можно и один цвет и несколько. • Проверку можно проинвертировать – проверять на совпадение цвета, которые находятся вне заданного диапазона: «любой цвет кроме красного» или «любой цвет кроме синего и зеленого»
  • 24. Какой цвет? • Пример • Двигатель вращает робота вокруг своей оси • Если датчик увидел красный цвет – играется нота ДО • Если датчик увидел синий цвет – играется нота РЕ • При любом другом цвете играется нота МИ
  • 25. Какой цвет? • Задание 4. Красный цвет – дороги нет 1. Робот-тележка должен пересекать черные полоски – дорожки, при пересечении говорить «Black» 2. Как только ему встретиться красная дорожка – он должен остановиться 3. Задание нужно выполнить с использованием вложенных условий • Окончательно ли остановится робот на красной дорожке? Для того, чтобы остановить выполнение программы, используется блок «Stop»
  • 26. Ближе или дальше? • После сравнения текущего показания сенсора расстояния с заданным эталонным, программа также может разветвиться: • «Если объект ближе, чем заданное расстояние, то выполнить блоки из верхней ветки, иначе (если дальше или точно на таком расстоянии) выполнить блоки из нижней ветки»
  • 27. Ближе или дальше? • При изменении знака в условии с меньше на больше меняется (инвертируется) смысл условия: «Если объект дальше, чем заданное расстояние, то выполнить блоки из верхней ветки, иначе (если ближе или точно на таком расстоянии) выполнить блоки из нижней ветки»
  • 28. Ближе или дальше? • Пример 1. Ехать, пока в стене не найдется расстояние глубже 5 см. 2. Проверить достаточно ли места для заезда робота. 2.1. Если места недостаточно (на сенсоре маленькие значение) вывести сигнал тревоги 2.2. Если груза достаточно, произвести заезд
  • 29. Ближе или дальше? • Задание 5a. Беспокойный любопытный робот 1. Робот должен находиться все время на одном расстоянии от руки (или другого предмета) – 25 см. 2. Если рука удаляется от робота, то робот придвигается к ней 3. Если рука приближается к роботу, то робот отъезжает назад.
  • 30. Ближе или дальше? • Задание 5b. Опытный любопытный робот 1. В предыдущем задании, робот никогда не был в состоянии покая – он, то ехал вперед, то двигался назад 2. Нужно изменить программу так, чтобы робот был неподвижен при нахождении на определенном расстоянии 24 см. 26 см.
  • 31. Сколько едем? • После сравнения текущего показания датчика поворота оси мотора (енкодер) с заданным эталонным, программа также может разветвиться: • «Если мотор повернулся больше, чем заданное количество градусов, то выполнить блоки из верхней ветки, иначе (если дальше или точно на таком расстоянии) выполнить блоки из нижней ветки»
  • 32. Сколько едем? • Сравниваться могут как количество градусов, на которые повернулась ось мотора, так и количество оборотов: • Также при сравнении может учитываться направление движения. • Аналогично работе с другими датчиками, изменение знака сравнения инвертирует логику поведения
  • 33. Сколько едем? • По-умолчанию, показания датчика поворота накапливаются с момента старта робота. Т.е. можно в любой момент времени узнать, на какое расстояние робот уехал от зоны старта. Причем движение мотора вперед увеличивают это число, движение мотора назад уменьшает его. • Это поведение можно изменить, если в сбросить показания датчика - накопление будет происходить с момента, когда произошел сброс. Старт программы Сброс Замера показаний 3 оборота Поведение по-умолчанию, 5 оборотов Количество оборотов Количество оборотов мотора мотора после сброса 2 оборота после старта
  • 34. Сколько едем? • Сброс датчика поворотов оси двигателя осуществляется специальным блоком:
  • 35. Сколько едем? • Пример Еще один способ ехать по квадрату. Для измерения сколько проехал робот не обязательно собирать значения с датчиков обеих моторов. При движении прямо моторы проезжают одинаковое расстояние, поэтому использовать значения можно тоже только с одного из моторов.
  • 36. Сколько едем? • Задание 6. Умная парковка 1. Датчик расстояния смотрит в сторону 2. Робот должен найти пространство для парковки между двумя «автомобилями» и выполнить заезд в обнаруженное пространство. Если расстояние между «автомобилями» недостаточно для парковки – робот должен продолжить движение прямо, для поиска более подходящего места 1.5 оборота 0.6 оборотов 15 см. ?? см. 15 см.
  • 37. Принятие решений • Ваши вопросы?