понедельник, 31 января 2011 г.

Робот для состязаний: определить цвет и размер одним сенсором

Задача робота-сортировщика - размещение набора различных предметов в заранее определенных местах, основываясь на различных свойствах предметов, над которыми проводится операция сортировки.Раньше уже рассматривалась одна модель робота-сортировщика, который использовал только один мотор. Но он сортировал предметы только по цвету.
А что если для сортировки необходимо использовать еще какие-нибудь характеристики предметов, например, их размер?

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

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

Сразу хочется сказать, что в данной заметке, просто рассматривается методика определения цвета и размера одним сенсором. Она не освещает, как сконструировать робота-сортировщика, использующего данную методику.

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

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

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



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



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



Если проанализировать данную таблицу, то можно вывести следующие закономерности:
  1. Размер кубика однозначно определяется освещенностью измеренной без включенных светодиодов сенсора. Можно сказать, что если сенсор вернул больше 28, то кубик - маленький, если меньше, то кубик - большой
  2. Для красных кубиков (больших и маленьких) справедливо высказвание, что освещенность в красном свете больше освещенностей как в синем свете, так и в зеленом: (R > G) and (R > B)
  3. Синие кубики можно определить, если сравнить освещенность в синем свете с освещенностью в зеленом, при условии, что освещенность в зеленом свете больше освещенности в красном: (B > G) and (G > R)
  4. При анализе зеленых кубиков, освещенность в зеленом свете опять больше освещенности в красном, но в тоже время больше освещенности в синем: (G > B) and (G > R)
Иначе говоря, сделав четыре измерения кубика под сенсором, программа сможет определить его размер и цвет, произведя довольно простые сравнения измеренных величин.

Целиком итоговая программа для данной лабораторной установки, а равно для данных условий окружающей освещенности будет следующая:

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

3 комментария:

  1. тут вы используете цветовой сенсор. а что делать если на сенсоре освещенности зеленый и синий кубик показывает значение освещенности одинаковое?

    ОтветитьУдалить
  2. Здравствуйте. Где вы берете различные установки для опытов или делаете их сам? Если вы делаете их сам, то напишите, пожалуйста, в каком 3d конструкторе.

    ОтветитьУдалить
    Ответы
    1. я знаю один редактор LDRAW (http://www.ldraw.org сайт на английском, но вы можете его перевести, или вот ещё http://yandex.ru/yandsearch?text=ldraw&lr=36 )

      Удалить

Related Posts Plugin for WordPress, Blogger...