Распознавание маяков типа "Q-Code"

Материал из roboforum.ru Wiki
Версия от 19:20, 12 января 2008; =DeaD= (обсуждение | вклад) (Кодирование информации в визуальном маяке)
Перейти к: навигация, поиск

Внешний вид визуального маяка и кодирование информации в нём

Визуальный маяк "Q-Code",
размещенный на стене комнаты.

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


Из оставшихся 25-4-2=19 клеток еще 4 мы будем использовать под контрольную сумму, чтобы гарантировать качество распознавания. Итого под информацию у нас остается 15 бит, то есть мы можем изготовить 32768 различных таких маяков. Этого достаточно, чтобы обклеить ими изнутри крупное здание, и скорее всего не одно.

Здесь можно взять шаблоны для маяков, подготовленные в формате Microsoft Word:

  • <<Скачать шаблон для формата А4>>;
  • <<Скачать шаблон для формата А5>>;

Кодирование информации в визуальном маяке

Размещение битов информации
и контрольной суммы.

Корректной принимается ориентация маяка, при которой "маркер поворота" находится в левом нижнем углу, а прилегающая к нему черная клетка справа от него.

В этом случае биты полезной информации (номера маяка) размещается в свободных ячейках слева направо, сверху вниз. В оставшихся четырех битах находится контрольная сумма. Расположение битов информации и контрольной суммы на маяке также приведено на рисунке справа.

Информация с маяка проверяется на корректность по следующему алгоритму:

  1. К 15 битам информации справа приписать 4 бита контрольной суммы и еще один бит равный 0, получится 20 бит данных;
  2. Эти 20 бит данных разбиваются на 5 групп по 4 бита;
  3. Получившиеся группы по 4 бита накладываются друг на друга по XOR;
  4. Если в результате этого наложения получилось 1101, тогда информация считается корректной, иначе нет.

Распознавание визуального маяка на экране и чтение информации с него

Определение расстояния до визуального маяка