СПОСОБ СБОРКИ ДЕМОНСТРАЦИОННОЙ АРЕНЫ (ВАРИАНТЫ), СИСТЕМА СБОРКИ ДЕМОНСТРАЦИОННОЙ АРЕНЫ, СПОСОБ ОПРЕДЕЛЕНИЯ ПОЛОЖЕНИЯ И ОРИЕНТАЦИИ УСТРОЙСТВА В ПРЕДЕЛАХ ОКРУЖАЮЩЕЙ СРЕДЫ, СИСТЕМА ДЕМОНСТРАЦИОННОЙ АРЕНЫ ДЛЯ ТРАНСПОРТНЫХ СРЕДСТВ, ДЕЙСТВУЮЩИХ В ДЕМОНСТРАЦИОННОМ ПРОСТРАНСТВЕ (ВАРИАНТЫ), СИСТЕМА ДЕМОНСТРАЦИОННОЙ АРЕНЫ (ВАРИАНТЫ)
METHOD FOR ASSEMBLY OF A DEMONSTRATION ARENA (OPTIONS), A SYSTEM OF ASSEMBLY OF A DEMONSTRATION ARENA, A WAY TO DETERMINE THE POSITION AND ORIENTATION OF THE DEVICE WITHIN THE ENVIRONMENT, A SYSTEM OF DEMONSTRATION ARENA FOR VEHICLES OPERATING IN THE DEMONSTRATION SPACE (OPTIONS), A SYSTEM OF DEMONSTRATION ARENA (OPTIONS)

Ссылка на родственные заявки
[01] Для настоящего изобретения испрашивается приоритет по заявке US16856230, поданной 23.04.2020, и заявке US16856256, поданной 23.04.2020, для которых установлен приоритет по предварительной заявке US62837797, поданной 24.04.2019. Все эти заявки полностью включены в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
[02] Настоящее изобретение относится к демонстрационным аренам для роботов и системам определения местоположения на основе паттернов, воспринимаемых датчиками изображения.
Уровень техники
[03] Различные роботы, в том числе автоматизированные транспортные средства и другие самоходные устройства, предназначены для выполнения различных функций или действий, часто в конкретной рабочей области или на демонстрационной арене. Такие функции могут включать в себя, помимо прочего, производственные задачи, сервисные задачи и состязания. При демонстрациях часто желательно или необходимо, чтобы роботы находились в различных положениях на демонстрационной арене либо перемещались в эти положения или даже имели возможность отслеживания самих себя, чтобы определять и использовать свое положение на таких демонстрационных аренах. Некоторые такие системы определения положения известны, но требуют совершенствования в скорости, простоте, экономии вычислительных ресурсов и универсальности.
[04] Вышеупомянутые примеры из уровня техники и связанные с ними недостатки представляют собой иллюстрацию и не являются исключительными. Другие недостатки решений из уровня техники и другие примеры уровня техники должны быть понятными специалистам в данной области техники после ознакомления с описанием и изучения чертежей.
Раскрытие изобретения
[05] Приведенные ниже варианты осуществления изобретения и их аспекты описаны и проиллюстрированы системами, конструкциями, способами и реализациями, которые следует рассматривать как примеры и иллюстрации, не ограничивающие объема изобретения. В различных вариантах осуществления и реализациях изобретения один или несколько недостатков уменьшены или устранены, а другие варианты осуществления направлены на иные улучшения и полезные результаты.
[06] В одном варианте осуществления системы демонстрационной арены для транспортных средств, действующих в демонстрационном пространстве, система демонстрационной арены содержит кодовую полосу, имеющую начальный край и заранее заданную длину до конечного края, содержащую заранее заданное количество интервалов, расположенных от начального края до конечного края, при этом кодовая полоса может быть установлена в начальном положении рядом с демонстрационным пространством и может занимать заранее заданное количество интервалов рядом с демонстрационным пространством.
[07] В другом варианте осуществления кодовая полоса содержит центральную линию кода и может быть установлена рядом с демонстрационным пространством таким образом, что образует базовую плоскость над демонстрационной поверхностью, при этом последовательность кодовых меток в кодовой полосе содержит неповторяющуюся последовательность блоков с регулярными интервалами вдоль центральной линии кода.
[08] В другом варианте осуществления неповторяющаяся последовательность блоков содержит темные блоки, перемежающиеся со светлыми блоками.
[09] В другом варианте осуществления некоторые из темных и светлых блоков расположены выше центральной линии кода, а некоторые другие из темных и светлых блоков расположены ниже центральной линии кода.
[010] В еще одном варианте осуществления любой интервал, содержащий темный блок выше центральной линии кода, содержит светлый блок ниже центральной линии кода, а любой интервал, содержащий светлый блок выше центральной линии кода, содержит темный блок ниже центральной линии кода, так что переходы светлых блоков в темные блоки выше центральной линии кода совпадают с переходами темных блоков в светлые блоки ниже центральной линии кода, а переходы темных блоков в светлые блоки выше центральной линии кода совпадают с переходами светлых блоков в темные блоки ниже центральной линии кода, при этом совпадения углов темных блоков выше центральной линии кода с углами темных блоков ниже центральной линии кода образуют характерные точки на центральной линии кода.
[011] В другом варианте осуществления устройство позиционирования, расположенное в демонстрационном пространстве, содержит цифровую камеру для получения изображения, содержащего одну или несколько частей последовательности меток, при этом цифровая камера содержит систему объектива для фокусировки изображения в датчике изображения, а система объектива имеет оптический центр.
[012] В другом варианте осуществления процессор запрограммирован для сравнения изображения, полученного с помощью цифровой камеры, с последовательностью меток в памяти с целью идентификации одной или нескольких частей последовательности меток на изображении и формирования сигналов, указывающих на положение и ориентацию устройства позиционирования в демонстрационном пространстве.
[013] В другом варианте осуществления устройство позиционирования может быть установлено на транспортном средстве таким образом, что оптический центр расположен в базовой плоскости.
[014] В другом варианте осуществления процессор запрограммирован для идентификации центральной линии кода по характерным точкам, образованным совпадениями углов темных блоков выше центральной линии кода с углами темных блоков ниже центральной линии кода, образующими характерные точки на центральной линии кода.
[015] В другом варианте осуществления процессор запрограммирован для идентификации местоположения характерных точек на изображении как соответствующего местоположения таких характерных точек на кодовой полосе и, таким образом, местоположения таких характерных точек по периметру арены по отношению к начальному положению, путем определения местоположения соответствующих характерных точек в последовательности меток и конкретных местоположений вокруг арены в памяти.
[016] В другом варианте осуществления демонстрационная поверхность имеет форму многоугольника, а демонстрационное пространство окружено стенами, пересекающимися в углах, при этом начальное положение представляет собой один из углов.
[017] В еще одном варианте осуществления система демонстрационной арены содержит (1) кодовую полосу, расположенную по меньшей мере вокруг части периметра пространства арены над демонстрационной поверхностью и содержащую последовательность кодовых меток, начинающихся в начальном положении, при этом части последовательности меток в любом конкретном положении рядом с пространством арены относительно начального положения уникальны для такого конкретного положения; (2) устройство позиционирования, расположенное на арене, содержащее цифровую камеру для получения изображения, включая одну или несколько частей последовательности меток; и (3) процессор, запрограммированный для формирования сигналов, указывающих на положение и ориентацию устройства позиционирования на арене, на основе части или нескольких частей последовательности меток на изображении.
[018] В другом варианте осуществления способ сборки демонстрационной арены включает в себя размещение кодовой полосы по меньшей мере частично вокруг демонстрационной арены или на ней, при этом кодовая полоса имеет начальный край и конечный край с длиной кода между начальным краем и конечным краем, размещение кодовой полосы по меньшей мере частично вокруг демонстрационной арены или на ней включает в себя размещение начального края в начальном положении относительно демонстрационной арены, имеющем конкретное местоположение относительно демонстрационной арены, кодовая полоса содержит множество характерных точек по длине кода между начальным краем и конечным краем, а каждая характерная точка находится на заранее заданном расстоянии от начального края, так что каждая из характерных точек по длине кода находится на соответствующем заранее заданном расстоянии от начального положения.
[019] В другом варианте осуществления способ включает в себя сборку множества стен вокруг демонстрационного пространства с пересечением их во множестве углов, назначение одного из углов начальным положением и монтаж кодовой полосы на стенах с начальным краем кодовой полосы, расположенным в углу, назначенном начальным положением, при этом каждая из характерных точек в кодовой полосе расположена на соответствующем заранее заданном расстоянии от угла, назначенного начальным положением.
[020] В другом варианте осуществления способ включает в себя сборку множества стен на демонстрационной поверхности и монтаж кодовой полосы на стенах таким образом, что центральная линия кода на кодовой полосе находится на постоянной высоте над демонстрационной поверхностью.
Краткое описание чертежей
[021] Приложенные чертежи, включенные в данное описание и составляющие его часть, иллюстрируют некоторые, но не единственные и не исключительные, примеры осуществления и/или признаки. Предполагается, что описанные здесь варианты осуществления и чертежи следует рассматривать как иллюстративные, а не ограничивающие. Чертежи содержат следующее.
[022] На фиг. 1 представлен изометрический вид иллюстративной демонстрационной арены для роботов со схематическим изображением иллюстративного устройства позиционирования, установленного на роботе.
[023] На фиг. 2 представлен схематический вид сбоку иллюстративного устройства позиционирования по фиг. 1.
[024] На фиг. 3 представлен увеличенный вид части иллюстративной кодовой полосы по фиг. 1.
[025] На фиг. 4 представлен схематический вид сверху иллюстративной демонстрационной арены для роботов по фиг. 1, изображающий иллюстративную систему координат и локальные координаты с иллюстративными схемами элементов позиционирования.
[026] На фиг. 5 представлена логическая схема иллюстративного процесса, реализуемого устройством позиционирования для определения местоположения оптического центра в устройстве позиционирования на демонстрационной арене по фиг. 1.
[027] На фиг. 6 приведено схематическое представление иллюстративного изображения части иллюстративной кодовой полосы, зафиксированной системой объектива в устройстве позиционирования по фиг. 1.
[028] На фиг. 7 приведено схематическое представление иллюстративной карты характерных точек в кодовой полосе, созданной путем свертки иллюстративного изображения по фиг. 6 с ядром выявления признаков.
[029] На фиг. 8 приведено схематическое представление иллюстративного ядра для использования в свертке, формирующей иллюстративную карту характерных точек по фиг. 7.
[030] На фиг. 9 приведено схематическое представление иллюстративного изображения по фиг. 6 с нанесенной на него линией, совпадающей с центральной линией кодовой полосы, содержащее схематическое представление иллюстративного процесса фильтрации с нулевым средним, используемого для обнаружения кода на иллюстративном изображении.
[031] На фиг. 10 представлен увеличенный схематический вид аппроксимирующей линии и перпендикулярной линии в масштабе пикселей.
[032] На фиг. 11 представлено изображение иллюстративного сигнала, определяемого по иллюстративной кодовой полосе с использованием процесса фильтрации с нулевым средним.
[033] На фиг. 12 приведен вид сбоку для представления параметров по фиг. 4, когда камера устройства позиционирования наклонена вниз, а кодовая полоса все еще видна в верхней части поля зрения.
[034] На фиг. 13 приведено концептуальное представление наклона и поворота камеры, изображающее параметры, относящиеся к компенсации и к точному определению положения.
[035] На фиг. 14 приведена схема, иллюстрирующая искажение объектива и радиальное представление, используемое для корректировки такого искажения.
[036] На фиг. 15 представлен схематический вид сверху иллюстративной демонстрационной арены для роботов по фиг. 1 с несколькими роботами, оснащенными устройствами позиционирования, и с иллюстративным неподвижным объектом на демонстрационной арене.
Осуществление изобретения
[037] Иллюстративная демонстрационная арена 10 для роботов или других транспортных средств показана на фиг. 1 с иллюстративным устройством 12 позиционирования, установленным на транспортном средстве, например, на роботе 14, расположенном на демонстрационной арене 10. Кодовая полоса 16 располагается по меньшей мере частично по периметру демонстрационного пространства 17 над демонстрационной поверхностью 18. Транспортное средство 14 может быть автоматизированным, самоходным или другим транспортным средством либо устройством, которое может двигаться или быть перемещаемым по различным траекториям на демонстрационной поверхности 18 в различные положения в пределах демонстрационной арены 10. Для целей данного описания термины «транспортное средство» и «робот» используются взаимозаменяемо для удобства описания всей системы или способа, поскольку конкретный вид транспортного средства 14, на котором может быть установлено устройство 12 позиционирования, не является ограничивающим изобретение признаком. В качестве примера, но не ограничения, иллюстративное транспортное средство 14, схематически изображенное на фиг. 1, может быть состязательным роботом, задачей которого может быть выполнение различных предписанных действий, маневров или достижение различных целей в пределах демонстрационной арены 10. Устройство 12 позиционирования, установленное на роботе 14, выдает роботу 14 сигналы, указывающие на положение и ориентацию устройства позиционирования в произвольный момент времени или на изменение положения и ориентации в режиме реального времени. Сигналы положения могут использоваться роботом 14 любым способом, который требуется разработчику или оператору робота для выполнения действий или для достижения целей. Робот 14 показан для облегчения пояснений полезности демонстрационной арены 10 и устройства 12 позиционирования, но при этом сам робот 14 и конкретное программирование робота 14 для использования сигналов положения, выдаваемых устройством 12 позиционирования, не являются частью настоящего изобретения. Соответственно, устройство 12 позиционирования схематически показано как установленное на роботе 14 с электрическим кабелем 20 передачи данных для передачи таких сигналов положения роботу 14. Тем не менее, такие сигналы могут передаваться от устройства 12 позиционирования роботу 14 по беспроводной связи, любым другим удобным способом или в другом формате, известном в данной области техники, например, с применением частотно-модулированного электромагнитного излучения, инфракрасного излучения, звука и т.п.
[038] Несмотря на то, что иллюстративная демонстрационная арена 10 для роботов изображена на фиг. 1 как квадратная арена, она может иметь другую форму, например, прямоугольную, многоугольную, круглую, овальную и т.д. Кроме того, иллюстративные элементы, такие как длина и высота сторон или стен вокруг демонстрационной арены 10, площадь демонстрационной поверхности 18, размеры робота 14 и устройства 12 позиционирования и т.п., показаны без соблюдения масштаба или пропорций размеров по отношению друг к другу из-за ограничений бумажного листа, но принципы должны быть понятны специалистам в данной области техники после ознакомления с приведенными ниже пояснениями, касающихся этих элементов. В качестве иллюстративного примера, прямоугольная демонстрационная арена 10 может иметь стены 22, 24, 26, 28, каждая из которых имеет длину двенадцать футов (3,66 м) и высоту двенадцать дюймов (0,3 м). Кодовая полоса 16 показана на фиг. 1 как проходящая от своего начального края 29, расположенного в заранее заданном начальном положении 30 (иногда называемом начальным положением 30 в этом описании) по периметру демонстрационной арены 10, например, от определенного угла 31 демонстрационной арены 10 по периметру демонстрационной арены 10 до конечного края 33 кодовой полосы 16 - назад в начальное положение 30. Тем не менее, кодовая полоса 16 может проходить лишь по части или нескольким частям периметра или она может проходить через демонстрационное пространство либо вокруг (или частично вокруг) объекта в демонстрационном пространстве, если же кодовая полоса 16 имеет известное начальное положение по отношению к демонстрационной арене 10 и по меньшей мере часть кодовой полосы 16 может быть зафиксирована на изображении устройством 12 позиционирования. Другими словами, кодовая полоса 16 расположена каким-либо образом рядом с демонстрационным пространством или ее начальное положение может быть в известном местоположении по отношению к демонстрационному пространству на демонстрационной арене, при этом устройство 12 позиционирования в демонстрационном пространстве может фиксировать изображение по меньшей мере части кодовой полосы 16, содержащей достаточное количество характерных точек, что позволяет устройству 12 позиционирования определять местоположение устройства 12 позиционирования в демонстрационном пространстве. Точное местоположение каждой характерной точки 60 (фиг. 3, 4, 6 и 7) кодовой полосы 16 известно из структуры кода. Другими словами, из структуры кода известно точное расстояние каждой характерной точки 60 от начального края 29 кодовой полосы 16. Следовательно, благодаря монтажу или размещению кодовой полосы 16 на стенах 22, 24, 26, 28 с начальным краем 29 кодовой полосы 16 точно в назначенном начальном положении 30, например, в назначенном углу 31 иллюстративной квадратной демонстрационной арены 10, показанной на фиг. 1, известно точное расстояние каждой характерной точки 60 кодовой полосы 16 от назначенного угла 31 демонстрационной арены 10. Соответственно, известно точное местоположение каждой характерной точки 60 кодовой полосы 16 относительно назначенного угла 31.
[039] В данном примере кодовая полоса 16 может быть нанесена на стены 22, 24, 26, 28 любым удобным способом. Например, код может быть напечатан на любом подходящем материале 32 подложки, в том числе, он может быть нанесен с использованием любых известных процессов печати и расходных материалов на материале 32, таком как бумага, пластик, древесина или другой материал, и сделан пригодным для установки на стенах 22, 24, 26, 28. В одном примере материал подложки 32 может содержать самоклеящуюся заднюю поверхность, которая может быть использована для приклеивания материала 32 подложки кодовой полосы 16 к стенам 22, 24, 26, 28. Иллюстративный материал 32 подложки может иметь кодовую полосу, напечатанную или иным образом нанесенную на переднюю (видимую) поверхность материала 32 подложки, расположенную до верхнего края 34 материала 32 подложки, так что монтаж материала 32 подложки на стенах 22, 24, 26, 28 с верхним краем 34 материала 32 подложки вровень с верхними краями 42, 44, 46, 48 стен 22, 24, 26, 28, параллельными демонстрационной поверхности 18, представляет собой удобный способ монтажа кодовой полосы 16 параллельно демонстрационной поверхности 18 на постоянной высоте над демонстрационной поверхностью 18. Кодовая полоса 16 может быть выполнена шелкографией, лазерной гравировкой, напечатана, окрашена или сформирована любым другим способом. Это позволяет удобно и легко собирать несколько демонстрационных арен 10 для роботов одинаковой формы и размеров, например, демонстрационных арен в разных местах для состязаний роботов со стандартизированными правилами состязаний, характеристиками и возможностями, как более подробно описано ниже. Например, множество одинаковых кодовых полос 16 можно с легкостью изготавливать и устанавливать на различных демонстрационных аренах 10, размеры и форма которых соответствуют размерам и форме, для которых разработаны такие кодовые полосы 16. Например, состязания роботов могут проводиться в различных городах по всему миру и роботы, оснащенные устройством позиционирования 12, могут выступать и состязаться без калибровки на любом из таких состязаний, где используются демонстрационные арены, имеющие одинаковые размеры и оснащенные одинаковыми копиями таких кодовых полос 16. В качестве другого примера, «зонтичный» спонсор или организатор состязаний по робототехнике, в частности, фонд Robotics Education and Competition Foundation, может установить определенную форму и размер демонстрационной арены 10 для состязаний по робототехнике, проводимых под его эгидой, и такой спонсор или организатор может напечатать или иначе произвести множество копий кодовой полосы 16 с точными размерами, соответствующими заданной форме и размеру демонстрационной арены 10. Местный организатор местных состязаний по робототехнике, например начальная школа, средняя школа, колледж или клуб, желающий провести местные состязания по робототехнике согласно правилам, задачам и другим требованиям «зонтичного» спонсора или организатора, может просто построить местную демонстрационную арену для роботов 10 с формой и размерами, установленными «зонтичным» спонсором или организатором, а «зонтичный» спонсор или организатор может предоставить кодовую полосу 16 местному организатору для ее монтажа определенным образом на демонстрационной арене 10 местного организатора. Кодовая полоса 16 может быть выполнена единой или может состоять из нескольких частей, например, по одной части для монтажа на каждой из четырех стен 22, 24, 26, 28 иллюстративной квадратной демонстрационной арены 10 по фиг. 1. Независимо от количества частей, кодовая последовательность проходит от начального положения 30 по меньшей мере на некотором расстоянии от демонстрационного пространства 17, которое по меньшей мере частично может находиться (но не обязательно) по периметру демонстрационной арены 10. В иллюстративной демонстрационной арене 10, показанной на фиг. 1, кодовая последовательность проходит от начального положения 30 по всему периметру демонстрационного пространства 17 и возвращается в начальное положение 30. Соответственно, большое количество, например, сотни точно расположенных характерных точек 60 могут быть легко позиционированы и смонтированы пользователем с минимальными инструкциями и без необходимости измерения позиции каждой характерной точки вокруг демонстрационного пространства 17. В иллюстративной квадратной демонстрационной арене 10, описанной выше, местному организатору необходимо лишь смонтировать кодовую полосу 16 вокруг демонстрационной арены 10 так, чтобы ее начальный край 30 располагался в углу 31 демонстрационной арены 10, после чего точное местоположение каждой характерной точки 60 кодовой полосы 16 относительно угла 31 на местной демонстрационной арене 10 будет однозначно известно без необходимости в дальнейших измерениях или выравнивании, что справедливо и для любой другой локальной, региональной или мировой демонстрационной арены 10, построенной и оборудованной таким же образом. Соответственно, роботы, оснащенные устройством 12 позиционирования, как описано выше, и запрограммированные для действий на такой локальной демонстрационной арене 10, могут выступать на всех других демонстрационных аренах 10, построенных и оборудованных аналогичным образом, без перепрограммирования их средств позиционирования. В другом варианте осуществления кодовая полоса 16 также может быть сформирована из сегментов уникальных кодов, индивидуально расположенных, например, для выравнивания таких сегментов по различным заранее заданным элементами выравнивания на стенах или других поверхностях, к которым они прикреплены. Такая компоновка позволяет упростить изготовление или установку кодовых полос 16 на множестве реплик демонстрационной арены 16 и при этом обеспечить точное расположение кодовой полосы 16 на каждой такой демонстрационной арене 16 для использования устройством 12 позиционирования, как описано здесь.
[040] Иллюстративная кодовая полоса 16 показана на фиг. 1, а увеличенный вид части иллюстративной кодовой полосы 16 показан на фиг. 3. Иллюстративная кодовая полоса 16 содержит заранее заданную последовательность кодовых меток 50, начинающуюся в начальном положении 30, продолжающуюся вдоль центральной линии 52 кода по периметру демонстрационной арены 10 и оканчивающуюся снова в начальном положении 30. Фрагменты последовательности меток 50 в конкретном положении вокруг демонстрационной арены 16 уникальны для такого положения. Последовательность кодовых меток 50 содержит неповторяющуюся последовательность темных блоков 54, 56 и светлых блоков 55, 57 с интервалами 58 вдоль центральной линии 52 кода, так что интервалы 58 и блоки 54, 55, 56, 57 расположены от начального положения 30 по периметру демонстрационной арены 10 и назад в начальное положение 30. В иллюстративной кодовой полосе 16 интервалы 58 расположены равномерно, то есть имеют одинаковую ширину, но в некоторых вариантах реализации они могут иметь разную ширину. Некоторые из блоков, например, темные блоки 54 и светлые блоки 55, находятся выше центральной линии 52 кода, а некоторые из блоков, например, темные блоки 56 и светлые блоки 57, находятся ниже центральной линии 52 кода. Темные блоки 54, 56 в иллюстративной кодовой полосе 16, показанной на фиг. 1 и 3, изображены как черные блоки, а светлые блоки 55, 57 в иллюстративной кодовой полосе 16 изображены как белые блоки. Такие черные блоки 54, 56 и белые блоки 55, 57 удобно создавать, просто печатая черные блоки 54, 56 на материале 32 белой подложки, в результате чего белые блоки 55, 57 оказываются в интервалах 58 между черными блоками 54, 56. Тем не менее, темные блоки 54, 56 и светлые блоки 55, 57 могут быть контрастных цветов, паттернов или других видов. Соответственно, для целей настоящего описания термины «темные блоки» и «светлые блоки» включают в себя контрастные цвета, паттерны и другие реализации, независимо от интенсивности, при условии, что они отличаются друг от друга. Например, красные и синие блоки могут иметь одинаковую интенсивность, но различаться с помощью подходящей фильтрации или других процессов. Кроме того, например, черные блоки и белые блоки считаются, соответственно, темными блоками и светлыми блоками. Также, как показано на примере иллюстративной кодовой полосы 16, некоторые из темных блоков 54, 56 расположены в смежных интервалах 58, что фактически расширяет такие смежные темные блоки 54, 56 до двух соседних интервалов и создает видимость темного блока двойной длины. Подобным образом, некоторые из светлых блоков 55, 57 расположены в соседних интервалах 58, что также фактически расширяет такие соседние светлые блоки 55, 57 до двух соседних интервалов и создает видимость светлого блока двойной длины. Такие темные блоки 54, 56 и светлые блоки 55, 57 поддаются обнаружению.
[041] В иллюстративной кодовой полосе 16, показанной на фиг. 1 и 3, любой интервал 58, содержащий темный блок 54 выше центральной линии 52 кода, содержит светлый блок 57 ниже центральной линии 52 кода, а любой интервал 58, содержащий светлый блок 55 выше центральной линии 52 кода, содержит темный блок 56 ниже центральной линии 52 кода, так что переходы светлых блоков 55 в темные блоки 54 выше центральной линии 52 кода совпадают с переходами темных блоков 56 в светлые блоки 57 ниже центральной линии 52 кода, а переходы темных блоков 54 в светлые блоки 55 выше центральной линии 52 кода совпадают с переходами светлых блоков 57 в темные блоки 56 ниже центральной линии 52 кода. Соответственно, совпадения углов темных блоков 54 выше центральной линии 52 кода с углами темных блоков 56 ниже центральной линии 52 кода образуют на центральной линии 52 кода характерные точки 60, которые поддаются обнаружению.
[042] Иллюстративная кодовая полоса 16, изображенная на фиг. 1 и 3 и описанная выше, может быть построена из псевдослучайной последовательности максимальной длины из темных блоков 54, 56 и светлых блоков 55, 57, которая по длине проходит от начального положения 30 по периметру демонстрационной арены 10 и назад в начальное положение 30, как описано выше. Специалистам в данной области должно быть понятно, что последовательности максимальной длины представляют собой самые большие кодовые последовательности, которые могут быть построены без повторения в наименьшем скользящем окне. Специалистам в данной области известны способы формирования таких кодовых последовательностей максимальной длины, например, регистры сдвига с линейной обратной связью (конфигурация Галуа) или регистры сдвига с линейной обратной связью (конфигурация Фибоначчи). Для формирования требуемых кодовых последовательностей со многими возможными максимальными длинами может использоваться программа MathWorks™ MATLAB. Например, кодовая полоса 16 может быть построена из псевдослучайной последовательности максимальной длины с манчестерским кодом из черных (темных) блоков 54, 56 и белых (светлых) блоков, которая по длине проходит от начального положения 30 по периметру демонстрационной арены 10 и назад в начальное положение 30. Специалистам в данной области техники должно быть понятно, что в манчестерском коде кодируется каждый бит некодированной битовой последовательности как два бита манчестерского кода этой некодированной последовательности. Удобным примером служит манчестерский код последовательности максимальной длины 255. Если некодированная последовательность содержит 255 битов, то манчестерский код этой некодированной последовательности содержит 510 битов - ровно в два раза больше, чем некодированная битовая последовательность. В частности, в манчестерском коде каждый старший бит некодированной последовательности заменяется старшим битом, за которым следует младший бит в битовой последовательности манчестерского кода. В манчестерском коде каждый младший бит некодированной битовой последовательности заменяется младшим битом, за которым следует старший бит в битовой последовательности манчестерского кода. В иллюстративной кодовой полосе 16 битовая последовательность, сформированная 8-битным сдвиговым регистром с линейной обратной связью (Linear Feedback Shift Register, LFSR) как псевдослучайная битовая последовательность максимальной длины с длиной 255, кодируется манчестерским кодом, чтобы в результате получить последовательность битов длиной 510 битов с манчестерским кодом, при этом окно 59 (фиг. 3) шириной в пятнадцать (15) последовательных интервалов 58 может скользить по возможным положениям по всей длине кодовой полосы 16, включая переход через начальное положение 30, при этом 15-интервальная кодовая последовательность не повторяется ни в одном месте демонстрационной арены 10.
[043] Тем не менее, следует отметить, что такие последовательности не обязательно должны быть последовательностями максимальной длины. Необходимо лишь, чтобы последовательность не повторялась в минимальном скользящем окне. Если последовательность не является последовательностью максимальной длины, то необходимо использовать скользящее окно, содержащее большее количество интервалов 58, для гарантии того, что в скользящее окно не попадет какой-либо повторяющийся паттерн в любом месте демонстрационной арены 16. Другими словами, использование последовательности не максимальной длины означает, что датчик 64 изображения должен фиксировать больше смежных неперекрывающихся битов, чтобы устройство 12 формирования изображения могло однозначно определять свое положение. Таким образом, в отличие от случая использования последовательности максимальной длины, описанной выше, при использовании последовательности не максимальной длины требуется, чтобы датчик 64 изображения фиксировал более чем 15-интервальную кодовую последовательность.
[044] Иллюстративная кодовая полоса 16 с последовательностью максимальной длины дополнительно кодируется таким образом, что каждый интервал 58 содержит черный блок 54 выше центральной линии 52 кода и белый блок 57 ниже центральной линии 52 кода для указания старшего бита последовательности c манчестерским кодированием кодовой полосы 16, или белый блок 55 выше центральной линии 52 и черный блок 56 ниже центральной линии 52 для указания младшего бита последовательности c манчестерским кодированием кодовой полосы 16. Такая компоновка позволяет декодировать кодовую полосу 16 или фрагменты кодовой полосы 16 с помощью фильтра с нулевым средним, как более подробно описано ниже. При заранее заданном неповторяющемся коде кодовой полосы 16, смонтированной по периметру демонстрационной арены 10, как показано на фиг. 1 и описано выше, точное местоположение в трех измерениях каждой характерной точки 60 кодовой полосы 16 известно из ее структуры, причем существуют сотни таких характерных точек 60 в точно известных местах по периметру демонстрационной арены 10. Как указано выше, эти характерные точки 60 могут быть выявлены.
F
F
F
[045] Как показано на фиг. 1 и 2, иллюстративное устройство 12 позиционирования содержит цифровую камеру с системой 62 объектива для фокусировки изображения по меньшей мере части кодовой полосы 16 в датчике 64 изображения. Система 62 объектива может быть любой из множества обычных систем объектива цифровых камер для обеспечения соответствующей фокусировки и масштабирования изображения в датчике 64 изображения, которые хорошо известны специалистам в области цифровых камер, включая, например, одиночную линзу или сочетание линз. Система 62 объектива камеры имеет эффективный оптический центр 66 для проецирования и фокусировки изображения в датчике 64 изображения. Эффективный оптический центр 66 представляет собой точку вблизи системы 62 объектива, в которой расположена виртуальная точка наилучшей аппроксимации функции изображения системы 62 объектива в датчике 64 изображения. Другими словами, оптический центр 66 представляет собой точку, через которую проходят все лучи от изображаемых объектов до их соответствующих изображений, проецируемых в датчике 64 изображения системой 62 объектива, как должно быть понятно специалистам в области цифровых камер. При этом оптическая ось 68 системы 62 объектива проходит через оптический центр 66 перпендикулярно плоскости датчика 64 изображения. Фокусное расстояние  представляет собой расстояние от оптического центра 66 до датчика 64 изображения. Угол 70 обзора задается фокусным расстоянием  системы 62 объектива и размерами датчика 64 изображения. Количество интервалов 58 кодовой полосы 16, фиксируемых датчиком 64 изображения для конкретного поля (угла) 70 обзора, изменяется в зависимости от расстояния от оптического центра 66 до той части кодовой полосы 16, которая отображается в датчике 64 изображения. Более широкое поле (угол) 70 обзора желательно для отображения достаточного количества кодовых меток 50, чтобы устройство 12 позиционирования могло установить точное положение оптического центра 66 на демонстрационной арене 16, даже когда робот 14 и устройство 12 позиционирования находятся вблизи кодовой полосы 16. При этом для точной идентификации кодовых блоков 54, 55, 56, 57 и характерных точек 60 в процессе декодирования также желательно, чтобы изображение кодовой полосы 16, зафиксированное датчиком 64 изображения, имело как можно больше пикселей в кодовом блоке 54, 55, 56, 57, даже когда робот 14 и устройство 12 позиционирования расположены на большом расстоянии от кодовой полосы 16. Соответственно, структура фокусного расстояния  и размер датчика 64 изображения для желаемого поля 70 обзора может представлять собой технический компромисс между обеспечением достаточно широкого поля 70 обзора, обеспечивающего при перемещении робота 14 и устройства позиционирования 12 в положение, достаточно близкое к кодовой полосе 16, захват минимального количества кодовых меток 50 и характерных точек 60, достаточного для определения устройством позиционирования положения оптического центра 66 на демонстрационной арене 10 при таких близких расстояниях, но при этом достаточно узкого поля 70 обзора для датчика 64 изображения, обеспечивающего захват достаточного количества пикселей в кодовом блоке 54, 55, 56, 57 при перемещении робота 14 и устройства 12 позиционирования в положение на демонстрационной арене 10, достаточно далекое от кодовой полосы 16, позволяя устройству 12 позиционирования определять положение оптического центра 66 на демонстрационной арене 10 при таких дальних расстояниях.
[046] Иллюстративное устройство 12 позиционирования содержит цифровой процессор 74, например, центральный процессор (CPU, Central Processing Unit), для определения положений оптического центра 66 устройства 12 позиционирования на основе изображений фрагментов кодовой полосы 16, как более подробно описано далее, и выдает сигналы, указывающие на такие положения. В целом, использование терминов «положение» и «местоположение» по отношению к оптическому центру 66 относится к пространственному положению и к угловой ориентации оптического центра 66, если контекст не указывает на иное. Если устройство 12 позиционирования установлено на роботе 14, например, как схематически показано на фиг. 1, определение любого конкретного местоположения оптического центра 66 на демонстрационной арене 10 может быть соотнесено с конкретными местоположениями робота 14 или элементов робота 14 на демонстрационной арене 10 на основе известных размеров робота 14 и положения оптического центра 66 на роботе 14. Выходные сигналы, формируемые процессором 74 и указывающие на местоположение оптического центра 66, передаются процессором 74 роботу 14 по электрическому кабелю 20 передачи данных или с помощью других средств и могут использоваться любым способом, предусмотренным конструкцией или определяемым роботом 14 для применения при выполнении действий, маневров или заданий.
h
h
h
h
h
[047] Кодовая полоса 16 предпочтительно монтируется так, что центральная линия 52 кода находится на одинаковой высоте  над демонстрационной поверхностью 18 по всему периметру демонстрационной арены 10, как схематически показано на фиг. 1. Как указано выше, выравнивание верхнего края 34 материала 32 подложки и, соответственно, верхней части кодовой полосы 16 с верхними краями 42, 44, 46, 48 стен 22, 24, 26, 28 облегчает такой монтаж кодовой полосы 16 с центральной линией 52 кода на одинаковой высоте  над демонстрационной поверхностью 18. Таким образом, центральная линия 52 кода вокруг демонстрационной арены 10 образует плоскость (обозначенную схематически пунктирными линиями 76) на высоте  над всей демонстрационной поверхностью 18 демонстрационной арены 10. Устройство 12 позиционирования находится на демонстрационной арене 10, причем оптический центр 66 и оптическая ось 68 предпочтительно, но не обязательно, расположены в плоскости 76, то есть также на высоте  над демонстрационной поверхностью. Соответственно, производитель робота 14, желающий использовать иллюстративное устройство 12 позиционирования с роботом 14, может установить устройство 12 позиционирования на роботе 14 в таком положении на роботе 14, что оптический центр 66 находится на высоте  над демонстрационной поверхностью 18, как показано на фиг. 1. В таком положении оптическая ось 68 камеры в устройстве 12 позиционирования расположена в плоскости 76 и, таким образом, характерные точки 60 на полученном изображении 104 всегда лежат на прямой линии.
x
y
x
y
x
y
z
h
z
x
y
z
x
y
z
z
x
y
x
y
s
s
s
E
s
s
x
y
E
x
y
E
x
y
E
x
y
[048] Как показано на фиг. 4, система координат, например, декартова система 78 координат, связана с демонстрационной ареной 10. Начало 80 (0,0) системы 78 координат расположено в центре демонстрационной арены 10 с положительной осью 82  справа и положительной осью 84  впереди (т.е. положительная ось 82  находится справа в плоскости бумаги, а положительная ось 84  сверху в плоскости бумаги). Оптический центр 66 устройства 12 позиционирования расположен в некотором месте (, ) на демонстрационной арене 10, ограниченной кодовой полосой 16, как описано выше. Местоположение оптического центра 66 также имеет значение () по вертикали, но оптический центр 66 всегда находится в плоскости 76 на высоте  над демонстрационной поверхностью 18, как описано выше, поэтому значение () по вертикали неизменно и им можно пренебречь. Кроме того, всегда существуют три угла, связанные с положением оптического центра 66, то есть угол по компасу или рыскание (ϕ), положительный или отрицательный тангаж (θ) и крен (ψ). Соответственно, полное описание местоположения оптического центра 66 содержит три пространственных размера и три угловые ориентации (, , , ϕ, θ, ψ). Тем не менее, для простоты и во избежание ненужного повторения конкретные значения местоположения (, , , ϕ, θ, ψ) используются по мере необходимости для конкретных вычислений или шагов. В данном примере, если пренебречь значением () по вертикали, как описано выше, фактическое положение (, , ϕ, θ, ψ) оптического центра 66 на демонстрационной арене 10 (представленное на фиг. 4 как ) определяется устройством 12 позиционирования посредством процесса, который начинается с фиксации изображения датчиком 62 изображения (фиг. 2) части кодовой полосы 16, содержащей больше некоторого минимального количества характерных точек 60, как более подробно описано ниже (и как упоминалось выше в описании скользящего окна 59 на фиг. 3), а затем выполняется первичное прогнозирование или предположение в отношении местоположения (, ) оптического центра 66 и начальной угловой ориентации (ϕ, θ, ψ) оптической оси 68, из которого следует первичное прогнозирование или предположение относительно значений ′ на виртуальном экране 92, причем такое прогнозирование или предположение предусматривает, что соответствующие лучи 86, 88, 90 из соответствующих характерных точек 60 (например,  на фиг. 4) проходят через виртуальный экран 92. Затем измеряются фактические значения  в соответствующих точках 85, 87, 89 на виртуальном экране 92, при этом соответствующие лучи 86, 88, 90 из соответствующих характерных точек 60 (например,  на фиг. 4) проходят через виртуальный экран 92. Эти фактические значения  соответствуют пикселям на изображении, зафиксированном датчиком 62 изображения. После вычисления метрики  ошибки, указывающей на различия между прогнозными значениями ′ и измеренными значениями , делается новый прогноз местоположения (, ) оптического центра 66 и угловой ориентации (ϕ, θ, ψ) оптической оси 68 на основе градиента метрики  ошибки. Иными словами, выполняется новое предположение относительно координат (, , ϕ, θ, ψ) оптического центра 66 и оптической оси 68 и процесс повторяется итеративно до тех пор, пока метрика  ошибки не снизится до заранее заданного удовлетворительного или приемлемого значения. Последнее местоположение и угловые координаты (, , ϕ, θ, ψ), приводящие к удовлетворительному или приемлемому значению метрики  ошибки, выдаются устройством 12 позиционирования в качестве точного представления фактического местоположения и угловой ориентации устройства 12 позиционирования на демонстрационной арене 10 в этот момент. Естественно, этот процесс может быстро и многократно повторяться устройством 12 позиционирования, чтобы выдавать такие координаты положения и угловые координаты (, , ϕ, θ, ψ) по существу в режиме реального времени при перемещении устройства 12 позиционирования в пространстве демонстрационной арены 10, например, с помощью робота 14, на котором может быть установлено это устройство 12 позиционирования.
x
y
[049] Как показано на фиг. 5 и других фигурах, иллюстративный процесс определения местоположения и ориентации (, , ϕ, θ, ψ) оптического центра 66 устройства 12 позиционирования начинается с точки 100. На шаге 102 устройство 12 позиционирования фиксирует изображение части кодовой полосы 16, на которую направлена оптическая ось 68 (фиг. 1-3), а следовательно, также и датчик 64 изображения. Пример такой части кодовой полосы 16 показан на фиг. 3, а в примере захвата изображения, показанном на фиг. 4, характерные точки 60 (например, ) образуют лучи 86, 88, 90 к оптическому центру 66, проходящие через виртуальный экран 92 в соответствующих точках 85, 87, 89, что соответствует фиксации света пикселей датчиком 64 изображения. Пересечения лучей 86, 88, 90 с виртуальным экраном 92 описывают ожидаемое положение пикселей характерных точек 60 (например, ) в зафиксированном изображении. Преобразования, описывающие такое отображение лучей в положение пикселей, известны специалистам в данной области техники, а один их пример более подробно описан ниже.
x
у
[050] Как описано выше, при заранее заданном неповторяющемся коде кодовой полосы 16, смонтированной по периметру демонстрационной арены 10, как показано на фиг. 1 и описано выше, точное местоположение в трех измерениях каждой характерной точки 60 на кодовой полосе 16 известно из ее структуры и содержится в памяти, связанной с процессором 74. При этом существуют сотни таких точек 60 в точно известных местах по периметру демонстрационной арены 10. Используемая здесь одна иллюстративная кодовая полоса 16 для описанной выше иллюстративной арены 10 размером 12×12 футов (3,68×3,68 м), содержит пятьсот десять (510) интервалов 58 равной длины, начиная, например, с угла 30 (фиг. 1). В данном примере имеется четыре стены 22, 24, 26, 28 длиной по 12 футов, следовательно, общая длина кодовой полосы 16 составляет сорок восемь (48) футов или пятьсот семьдесят шесть (576) дюймов (14,63 м). Соответственно, при общей длине, составляющей пятьсот десять (510) интервалов 58, каждый интервал 58 составляет 576/510 = 1,129 дюйма (28,68 мм). Так же, как указано выше, заранее заданная последовательность блоков 54, 56 в иллюстративной кодовой полосе 16 кодирована манчестерским кодом для создания серии равноотстоящих кодовых битов, соответствующих равноотстоящим интервалам 58. Иллюстративная кодовая полоса 16, показанная на фиг. 1 и 3, кодирует каждый бит либо как интервал белого по черному, либо как интервал черного по белому. Как также описано выше, переходы белых блоков 55 в черные блоки 54 выше центральной линии 52 кода совпадают с переходами черных блоков 56 в белые блоки 57 ниже центральной линии 52 кода, а переходы черных блоков 54 в белые блоки 55 выше центральной линии 52 кода совпадают с переходами белых блоков 57 в черные блоки 56 ниже центральной линии 52 кода. Соответственно, совпадения углов черных блоков 54 выше центральной линии 52 кода с углами черных блоков 56 ниже центральной линии 52 кода образуют на центральной линии 52 кода характерные обнаружимые точки 60. Поскольку некоторые из черных блоков 54 примыкают друг к другу и некоторые из белых блоков 56 также примыкают друг к другу, существует меньшее количество переходов белых блоков 55 в черные блоки 54 и наоборот, расположенных выше и ниже центральной линии 52 кода, чем количество имеющихся интервалов 58. Соответственно, количество идентифицируемых характерных точек 60 оказывается меньшим пятисот десяти (510) интервалов 58, но все же есть сотни таких идентифицируемых характерных точек 60 кодовой полосы 16 в точно расположенных и точно известных местах (, ) вокруг демонстрационной арены 10.
h
x
y
[051] На шаге 102 фиксации изображения на фиг. 5 изображение 104, зафиксированное устройством 12 позиционирования, содержит часть 106 кодовой полосы 16, как показано, например, на фиг. 6. Затем на шаге 108 обнаружения характерных точек характерные точки 60 в части 106 кодовой полосы 16 обнаруживаются процессором 74, как схематически показано на фиг. 7. Для сокращения вычислений без ухудшения производительности в устройстве 12 позиционирования может быть использован датчик 64 монохромного изображения. В примере шага 108 обнаружения характерных точек свертка изображения 104 с использованием ядра 110 обнаружения признаков, показанного на фиг. 8, дает в результате карту 112 признаков с рядом откликов для характерных точек 60 в виде по существу линейного паттерна, как показано на фиг. 7. На шаге 114 регрессии для линии наилучшего соответствия определяется, что линия 116 наилучшим образом представляет положения откликов для характерных точек 60, как показано на фиг. 9. Линия 116 наилучшего соответствия соответствует центральной линии 52 кода кодовой полосы 16, показанной на фиг. 1 и фиг. 2. Линия 116 наилучшего соответствия используется на шаге 118 извлечения сигнала для управления процессом фильтрации с нулевым средним, описанным ниже, с целью декодирования части 106 кодовой полосы 16, зафиксированной на изображении 104. Для повышения надежности и уменьшения вычислительной нагрузки кодовая полоса 16 монтируется так, чтобы центральная линия 52 кода была копланарна на всем протяжении демонстрационной арены 10, как описано выше и показано на фиг. 1. Кроме того, устройство 12 позиционирования устанавливается на роботе 14 таким образом, чтобы оптический центр 66 оставался в плоскости 76 на высоте  над демонстрационной поверхностью 18, как также описано выше и показано на фиг. 1. Таким образом, независимо от положения (, ) и ориентации (ϕ, θ, ψ), центральная линия 52 кода преобразуется в линии 116 наилучшего соответствия (фиг. 9) даже по углам 30, в которых конец одной части кодовой полосы 16 на одной стене демонстрационной арены 10 встречается с началом другой части кодовой полосы 16.
[052] Процесс фильтрации с нулевым средним на шаге 118 извлечения сигнала по фиг. 5 проиллюстрирован на фиг. 9 и фиг. 10. Пиксели вдоль линии 120, перпендикулярной линии 116 наилучшего соответствия, обрабатываются для формирования обнаруживаемого сигнала 123, пример которого показан на фиг. 11. В иллюстративном процессе фильтрации с нулевым средним, показанном на фиг. 10, значения интенсивности пикселей в верхней части 124 перпендикулярной линии 120, расположенных над линией 116 наилучшего соответствия, добавляются к сумме, а значения интенсивности пикселей в нижней части 126 перпендикулярной линии 120, расположенных под линией 116 наилучшего соответствия, вычитаются из суммы. Иными словами, для положения перпендикулярной линии 120, показанного на фиг. 9, амплитуда каждого пикселя, фиксируемого датчиком 64 изображения в верхней части 124 перпендикулярной линии 120 над линией 116 наилучшего соответствия, умножается на +1, а амплитуда каждого пикселя, фиксируемого датчиком 64 изображения в нижней части 126 перпендикулярной линии 120 под линией 116 наилучшего соответствия, умножается на -1 и добавляется к сумме. Эта сумма вычисляется многократно, по одному разу для каждого положения перпендикулярной линии 120, то есть по одному разу для каждого перпендикулярного столбца пикселей в той части 106 изображения 104, которая пересекает линию 116 наилучшего соответствия. Соответственно, фильтр дает нулевой отклик для любой однородной области, т.е. он исключает среднее значение для этой области. Он чувствителен лишь к областям, в которых средняя яркость над линией наилучшего соответствия 116 отличается от средней яркости под линией наилучшего соответствия 116. Число перпендикулярных линий 120, т.е. вертикальных столбцов пикселей на интервале 58 (фиг. 3) (для каждого блока 54, 55, 56, 57) резко изменяется в зависимости от того, насколько далеко система 62 объектива устройства 12 позиционирования отстоит от кодовой полосы 16 (фиг. 1). Если система 62 объектива расположена очень близко к кодовой полосе 16, может быть множество (например, десятки) перпендикулярных линий 120 (фиг. 9), суммируемых в интервале 58. Если же система 62 объектива находится далеко от кодовой полосы 16, например, у одной стены демонстрационной арены 10 и направлена на противоположную стену, то может быть лишь несколько, возможно, даже меньше двух вертикальных линий 120, суммируемых в интервале 58.
x
y
[053] В результате этих операций фильтрации с нулевым средним формируется обнаруживаемый сигнал 123, как показано, например, на фиг. 11. Манчестерский код, присутствующий в обнаруживаемом сигнале 123, декодируется на шаге 128 декодирования и поиска паттерна, показанном  на фиг. 5, с использованием любого из множества методов декодирования, известных специалистам в данной области техники, для выявления кодированного потока 130 битов псевдослучайной последовательности части 106 кодовой полосы 16 в зафиксированном изображении 104. В данном примере черный блок 54 над белым блоком 57 кодируется как 1, а белый блок 55 над черным блоком 56 кодируется как 0. Существует минимальное количество непрерывных неперекрывающихся интервалов 58, которые должны быть зафиксированы на изображении 104, чтобы процессор 74 устройства 12 формирования изображения мог определить, какую часть кода он воспринимает, в зависимости от количества кодированных битов в наименьшем кластере или последовательности битов в кодированном потоке битов, нигде не повторяющихся в кодированной полосе 16, т.е. уникальных в кодированном потоке битов. В данной иллюстративной кодовой полосе 16 в виде псевдослучайной последовательности максимальной длины с длиной 255, созданной с использованием 8-битового сдвигового регистра с линейной обратной связью и с последующим манчестерским кодированием для получения последовательности битов длиной 510 бит, как описано выше, зафиксированное изображение 104 должно содержать по меньшей мере пятнадцать (15) непрерывных неперекрывающихся интервалов (например, 16,9 дюйма), чтобы обеспечивать возможность определения того, какую часть кода оно отображает, поскольку последовательности из пятнадцати (15) и более битов нигде не повторяются в потоке битов. Соответственно, фрагмент кода позволяет выявить точную часть кода, зафиксированную на изображении 104. Кроме того, память, связанная с процессором 74, содержит последовательность битов для всей кодовой полосы 16. Когда определенная часть кода идентифицирована на шаге 128 декодирования и поиска паттерна, эта часть кода связывается с известными координатами (, ), соответствующими характерным точкам 60 в этой части кода, как указано на шаге 132 привязки к известным координатам на фиг. 5. На поиск изображения 106 кодовой полосы в зафиксированном изображении 104 затрачивается сравнительно небольшое время вычисления, а после формирования обнаруживаемого сигнала 123 вычисление положения сводится к одномерной задаче относительно низкой сложности вместо задачи вычисления в двумерном пространстве изображения.
x
y
x
y
s
x
y
x
y
x
y
x
y
s
s
d
d
d
d
s
E
s
s
E
x
y
s
s
s
s
s
x
y
s
[054] После того, как на шаге 132 определены известные координаты (, ), соответствующие характерным точкам 60, эти координаты (, ) преобразуются в линейные координаты ′ на шаге 134 на фиг. 5 с применением процесса преобразования, иногда называемого перспективным преобразованием и хорошо известного специалистам в области компьютерной графики. В одном из примеров такого преобразования устройство позиционирования 12 на фиг. 1 отображает часть кодовой полосы 16, содержащую характерные точки 60 (например, ), лучше всего показанные на фиг. 4, и идентифицирует точку  по информации о кодовой полосе 16, хранящейся в памяти, связанной с процессором 74, как описано выше. Следовательно, из этой информации в памяти о характерной точке 60 известно фактическое местоположение (, ) точки . При этом процессор 74 вычисляет точку 85, в которой луч 86 из точки  проходит через виртуальный экран 92, на основе предположения или оценки местоположения (, , ϕ, θ, ψ) для оптического центра 66, обозначенного точкой  на фиг. 4. При таком известном местоположении (, ) точки  и таком предполагаемом или оцениваемом местоположении (, , ϕ, θ, ψ) точки  расстояние 94 в направлении вперед можно определить по следующей формуле: глубина в направлении вперед  где оператор «•» означает скалярное произведение, а  - направленный вперед вектор, совпадающий с оптической осью 68. Кроме того, расстояние 96 по перпендикуляру можно определить по следующей формуле: расстояние по перпендикуляру  где оператор «•» означает скалярное произведение, а  - вектор 185, перпендикулярный направленному вперед вектору  Расстояние ′ для прогнозируемой точки 85, в которой луч 86 из точки  проходит через виртуальный экран 92, на основе фактического положения точки  и этого допущения или оценки положения точки , можно определить по следующей формуле: ′ =  *(расстояние по перпендикуляру)/(глубина в направлении вперед), где  - расстояние между оптическим центром 66 и виртуальным экраном 92, причем точки 85, 87, 89 пересечения лучей 84, 86, 88 масштабируются в пиксели датчика изображения 64 изображения с соответствующим заранее заданным расстоянием  до виртуального экрана. Расстояние  до виртуального экрана является параметром, специфичным для данной конструкции, оно рассчитывается один раз на заводе и впоследствии считается одинаковым для каждого устройства, имеющего такую конструкцию. В описанном выше примере с учетом иллюстративного положения и ориентации устройства 12 позиционирования, показанного на фиг. 4, расстояние по перпендикуляру будет отрицательным (-) числом, а точка, расположенная в направлении направленного вперед вектора 68, будет иметь нулевое (0) расстояние по перпендикуляру. Аналогичные вычисления могут быть выполнены для других характерных точек 60, идентифицированных в зафиксированной части кодовой полосы 16, например, точек и  на фиг. 4. Как упомянуто выше, измеряются фактические расстояния  для точек 85, 87, 89 пересечения, а метрика  ошибки, указывающая на различия между прогнозируемыми значениями ′ и измеренными значениями , вычисляется на шаге 136 на фиг. 5. Этот процесс повторяется каждый раз с новым предполагаемым положением, пока метрика  ошибки не станет достаточно малой на шаге 138 на фиг. 5, чтобы предполагаемое местоположение и угловая ориентация (, , ϕ, θ, ψ) оптического центра 66, дающие такие прогнозируемые значения ′, достаточно точно определяли фактическое местоположение оптического центра 66 на демонстрационной арене 10, т.е. считались стабильными. Как указано выше, первичное предположение о местоположении оптического центра 66 на демонстрационной арене 10 может быть произвольным или оно может быть основано на некоторой оценке. Один пример оценки для начального местоположения может быть выполнен процессором 74 путем выбора характерной точки 60 на изображении 104, имеющей наибольшее отрицательное значение , характерной точки 60 на изображении 104, имеющей наибольшее положительное значение , и характерной точки 60 на изображении 104, ближайшей к середине, то есть имеющей наименьшее абсолютное значение . Используя измеренные значения , процессор способен аналитически вычислять начальную оценку местоположения (, ) для оптического центра 66 и способен вычислять начальную оценку ориентации (ϕ, θ, ψ), используя ближайшее к середине расстояние . Как упомянутая оценка положения, так и упомянутые оценочные вычисления углов основаны на аналитических решениях, которые могут быть получены специалистами в данной области техники.
x
y
z
[055] В то же время кодовый сигнал 123, извлеченный на шаге 118 на фиг. 5, корректируется для любого тангажа, крена или искажения объектива на шаге 140. Кроме того, на шаге 142 обнаружения признака перехода через ноль определяется переход через ноль обнаруживаемого сигнала 123. Переход через ноль обнаруживаемого сигнала 123 соответствует характерным точкам 60 кодовой полосы 16, для которых известны точные местоположения в трех измерениях (, , ), заранее заданные конструкцией и структурой кодовой полосы 16, а также ее монтажом на демонстрационной арене 10, как описано выше. На фиг. 12 показан пример параметров с фиг. 4, когда камера в устройстве 12 позиционирования наклонена вниз, но при этом кодовая полоса 16 все еще видна в верхней части поля обзора, а угол крена (ϕ) равен нулю для простоты объяснения. На фиг. 13 приведено концептуальное представление тангажа и крена камеры, изображающее параметры, относящиеся к компенсации и точному поиску положения. На фиг. 14 проиллюстрировано вносимое объективом искажение и радиальное представление, используемое для корректировки такого искажения. Иллюстративный процесс для установления точного местоположения оптического центра 66 системы 62 объектива устройства 12 позиционирования на демонстрационной арене 10 основан, как описано выше, на точном измерении характерных точек 60 на полученном изображении. В данном иллюстративном процессе для повышения точности при отображении характерных точек 60 используется измерение с субпиксельной точностью. Таким образом, при обнаружении изменения знака между соседними элементами  и  обнаруживаемого сигнала 123, субпиксельная оценка выполняется с использованием линейной интерполяции:
s
i
где  представляет собой интерполяцию с плавающей запятой целочисленного индекса  матрицы 122 обнаружения, описывающей субпиксельную оценку перехода через ноль.
d
d'
s
k
[056] Мгновенный или длительный тангаж камеры в устройстве 12 позиционирования вверх или вниз вызывает изменение видимого расстояния  до экрана визуального наблюдения (см. фиг. 4) как расстояния , что приводит к масштабированию параметра  расстояния, который корректируется с применением коэффициента :
s
p
[057] Вдобавок к ориентации с ненулевым тангажом, камера может иметь или испытывать ненулевой крен. Такой крен производит эффект поворота линии 116 наилучшего соответствия на соответствующем изображении 104 (фиг. 6). Этот крен также производит эффект смещения видимого местоположения точки, связанной с параметром  = 0, вдоль линии 116 наилучшего соответствия. Смещение  наклона по фиг. 13 находится как
s
[058] С помощью этих двух корректировок переходы через ноль обнаруживаемого сигнала 123 отображаются на параметр  как
x
где  - координата пикселя перехода через ноль с плавающей запятой, определенная в системе координат на фиг. 14.
[059] Дальнейшее повышение точности может обеспечиваться с применением коррекции объектива, аппроксимированной следующим образом:
где
как определено на фиг. 14. Соответственно, переходы через ноль характерных точек 60 обнаруживаются на шаге 142 (обнаружение признака перехода через ноль) на фиг. 5 как
s
[060] Затем отображение параметра ′ вычисляется на шаге преобразования в линейные координаты 134 на фиг. 5 как
В этих выражениях
E
[061] Поскольку, как отмечено выше, точное местоположение характерных точек 60 кода известно и поскольку эти характерные точки 60 однозначное соответствуют переходам через ноль обнаруживаемого сигнала 123, а идеальное отображение этих характерных точек 60 в координатах виртуального экрана 92 также известно, ошибка  на шаге вычисления ошибки 136 на фиг. 5 определяется как
E
E
E
r
i
[062] Вычисленная ошибка  на шаге 136 на фиг. 5 отслеживается на шаге 138 (проверка стабильности), для определения того, перестала ли ошибка  уменьшаться, что указывает на нахождение наилучшего положения. Если на шаге 138 определено, что ошибка  еще не уменьшилась до оптимального значения, процесс переходит к шагу, предполагающему новое положение 144 на фиг. 5, в котором может быть вычислено новое пробное положение, например, на основе методов Ньютона-Рафсона или дихотомического деления. Используя метод Ньютона-Рафсона, известный специалистам в данной области, остаточное значение сначала определяется как
C
i
и  определяется как
Якобиан может быть вычислен как
так что градиент функции ошибок в свернутом виде равен
[063] Затем шаг в методе Ньютона определяется как
при этом гессиан аппроксимируется как
E
z
h
Таким образом, новая предлагаемая позиция  предполагается на шаге предположения нового положения 144 на фиг. 5 и это предположение используется в качестве пробного варианта нового положения на шаге преобразования в линейные координаты 134 на фиг. 5. Повторение продолжается до тех пор, пока ошибка  не станет стабильной на шаге 138 на фиг. 5, после чего местоположение и ориентация оптического центра 66 на демонстрационной арене 10 считается последним предположенным положением  после шага предположения нового положения 144, как показано на фиг. 5. Как описано выше, значением () по вертикали можно пренебречь, поскольку оптический центр 66 всегда находится в плоскости 76 на высоте  (фиг. 1), а рыскание (ϕ) входит в уравнения, например, в приведенное выше уравнение (8), как  Тангаж (θ) и крен (ψ) определяются после завершения итерационного цикла как
и  .
[064] Эти вычисления не слишком сложны с учетом мощности даже обычных недорогих процессоров, имеющихся на рынке, так что частота обновления, превышающая десять (10) обновлений в секунду достигается легко.
[065] Таким образом, изображение 104, полученное датчиком 64 изображения, соответствует одному и только одному конкретному положению и ориентации оптического центра 66. Следовательно, каждое такое положение и ориентация оптического центра 66 соответствует уникальному и предсказуемому местоположению характерных точек 60 на виртуальном изображении 92. По сути, это процесс предположения для определения положения и ориентации оптического центра 66 путем предположения и последующего сравнения прогнозируемого изображения с фактически измеренным изображением. Соответственно, процессор 74 предполагает множество положений оптического центра 66 до тех пор, пока не сможет самостоятельно воссоздать изображение, совпадающее с изображением, полученным датчиком 64.
x
y
E
s
s
s
s
s
s
s
[066] На практике этот процесс не предусматривает вычислений для сопоставления изображений, вместо этого выполняется преобразование информации из изображений в одномерные массивы. Это выполняется путем преобразования изображения 104, зафиксированного датчиком 64 изображения, в одномерный набор характерных точек 60, идентифицируемых по их одномерному расстоянию вдоль центральной линии 52 кодовой полосы 16. Процессор 74 также идентифицирует каждую характерную точку 60, так что координаты (, ) каждой характерной точки 60 известны. Такая идентификация обеспечивает сравнение ошибки  метрики, используемой для процесса предположения, с измеренными одномерными списками вместо сравнения измеренного изображения 104 с самостоятельно сформированным виртуальным изображением, что было бы намного более затратным с точки зрения вычислений. Имея виртуальное пробное положение и ориентацию оптического центра 66, просто определить, какие оптические элементы 60 могут быть видны и где именно они могут располагаться на изображении и, следовательно, можно сформировать одномерный список виртуальных положений  характерных точек 60 вдоль виртуальной центральной линии. Поскольку измеренное изображение 104 от датчика изображения 64 преобразовано в одномерный список расстояний  и виртуальный одномерный список расстояний ′ может прогнозироваться для любого пробного положения оптического центра 66, процесс может повторяться путем проб множества положений и ориентаций до тех пор, пока самостоятельно сформированный одномерный список положений ′ характерной точки 60 не совпадет с одномерными расстояниями , полученными от датчика изображения 64. Наконец, цикл сходится к положению, в котором квадрат разности (′ - ) между одномерными списками минимален.
[067] Как показано на фиг. 15, множество устройств 12 позиционирования, например, установленных на нескольких роботах 14, движущихся независимо друг от друга, может действовать одновременно на одной и той же демонстрационной арене 10, как показано, например, на фиг. 15. Каждое из устройств 12 позиционирования может определять точное местоположение своего оптического центра 66 в режиме реального времени, как описано выше, и формировать сигналы положения для таких местоположений для их использования роботом 14, на котором установлено такое устройство 12 позиционирования. В зависимости от угла 70 обзора системы 62 объектива, каждая камера каждого устройства 12 позиционирования обычно может фиксировать часть кодовой полосы 16 в своем поле обзора с достаточным количеством характерных точек 60 (фиг. 4) для определения местоположения своего оптического центра 66, даже если другие подвижные роботы 14 или случайные объекты 96 закрывают части кодовой полосы 16 от этой камеры. В одном примере добавление одного или нескольких дополнительных устройств 12′ позиционирования, установленных на роботе 14 и ориентированных в другом направлении, например, повернутых на 180 градусов относительно первого устройства 12 позиционирования, позволяет дополнительно снижать вероятность полного перекрытия кодовой полосы 16 для такого робота 14. Кроме того, расширение поля 70 обзора позволяет снизить вероятность полного перекрытия кодовой полосы в поле 70 обзора. Тем не менее, как указано выше, такое расширение поля зрения 70 может уменьшать количество выборок сигнала 123 на интервал 58 до неприемлемого значения, когда устройство 12 позиционирования находится вдали от кодовой полосы 16.
[068] Устройство 12 позиционирования также может быть использовано для дополнительного анализа изображения, например, с целью избегания объекта 14, 96, определения местоположения объекта 14, 96 и т.п. Оборудование, необходимое для обработки изображений 104 от датчика изображения 64 и определения местоположения, как описано выше, обеспечивает возможность выполнения дополнительного анализа изображения. Например, изображение 104 от датчика 64 изображения сначала может быть обработано для определения местоположения оптического центра 66, как описано выше, а затем изображение 104 может быть дополнительно обработано для определения присутствия других объектов 14, 96 с целью определения наличия таких объектов или препятствий.
[069] Соответственно, возможно использование всех подходящих комбинаций, частичных комбинаций, модификаций и эквивалентов, которые попадают в объем изобретения, определяемый его признаками. Используемые здесь выражения «содержать», «содержит», «содержащий», «включать», «включая» и «включает» относящиеся к признакам, предназначены для указания на наличие этих признаков, частей изобретения, элементов или шагов, но не исключают наличия или добавления одного или нескольких других элементов, частей изобретения, элементов, шагов или их групп. Кроме того, термины, относящиеся к направлению, такие как «вверх», «вниз», «на», «вне», «над», «под», «вверху», «внизу» и т.п. могут относиться и иногда действительно относятся к ориентации элементов и признаков, как показано на чертежах, и не означают требований к какой-либо конкретной физической ориентации или каких-либо ограничений ориентации устройства или элемента при его фактическом использовании, если иное не указано в описании.