Соревновония Lego роботов 2.Соревновония Lego роботов 1.

Измерение цвета шара в старшей группе WRO

Аватар пользователя Овсянников Алексей Юрьевич

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

Эта теория требовала проверки, чем я и занимался в последнее время.

Сразу оговорюсь, что были созданы скорее "лабораторные условия" - специальное крепление датчика, устанавливавшее его неподвижно. На реальном, движущемся роботе, с неизбежными ошибками и раскачиваниями датчика, результаты могут отличаться.

Для проверки использовался датчик HiTehcnic Color Senser v 2, так как он поддерживается обеими разрешенными средами программирования: NXT-G и RoboLab.

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

Первым делом, определимся с возможными вариантаи расположения шаров относительно датчика: "перепад" по высоте шариков - до 3 сантиметров (30 миллиметров), разница в расстоянии от края поля - до 3 сантиметров (30 миллиметров).

Для проверки теории была создана следующая система крепления датчика:

Она позволяет "нацелить" датчик на шарики со стороны края "острова", причем на очень низкой высоте. Подобное может быть в случае, если робот будет перемещаться вокруг "острова" и станет проверять шарики, расположенные на его областях высотой 6 сантиметров над уровнем поля:

Проверялись шарики, расположенные на расстоянии 3 и 6 сантиметров от края "острова". Во всех случаях датчик уверенно фиксировал правильные цвета: 2 для синего шара и 9 для красного (напомню, что датчки HiTehcnic Color Sensor опредлеляет до 18 цветов, обозначая их различными числами).

 

  

Далее система крепления датчика была модифицирована:

Подобным образом датчик может "смотреть" на шарики со стороны края "острова", причем шарики должны быть расположены в низких его частях (высотой 3 сантиматра над уровнем поля):

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

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

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

Как видно из фотографий, роботу необходимо быть очень точным. Так как предполагается, что робот едет вокруг острова, то ему логично было бы выравниваться по стенке "острова", чтобы не удалять и не поворачивать датчик от шариков.

Стоит так же учесть, что робот должен либо очень точно останавливаться перед шариком (для проверки его цвета) - если робот немного не додет или проедет дальше, то возникнут ошибки в показаниях. Еще один вариант - роботу необходимо ехать на медленной скорости вдоль "острова" в ожидании красного цвета, а при его обнаружении выполнять действия по захвату шарика. Именно на медленной скорости, потому что полоса гарантированного обнаружения цвета узкая, а так как шарики стоят плотно, то при их захвате можно зацепить стоящие по соседству.

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

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

И снова во всех случаях датчик правильно определил все цвета.

Из всех ранее рассмотренных случаев, наиболее точного расположения датчика над шаром требовал следующий случай: датчик "смотрит" на шар сверху, с расстояния более 3 сантиметров, шар расположен далеко от края "острова".

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

Напоследок снова повторю: проверка была "лабораторной", на реальном роботе может не сработать или работать с ошибками. Целью всей этой затеи была проверка следующей теории: возможно ли создать такой неподвижный подвес датчика, который бы определял цвета шариков на ВСЕХ возможных позициях. Ответ однозначный - можно. Конкретная реализация остается за Вами!