УСТРОЙСТВО УПРАВЛЕНИЯ АВТОНОМНЫМ РОБОТОМ
DEVICE FOR CONTROLLING AUTONOMOUS ROBOT

Изобретение относится к области робототехники, предназначено для управления автономным роботом. Устройство позволяет:
- организовать высокоскоростной прием предварительно подготовленной сенсорной информации от большого количества датчиков робота,
- оперативно построить геометрические модели объектов, образующих окружающее пространство робота, и текущую геометрическую модель самого робота,
- осуществить быстрый и подробный анализ окружающей обстановки,
- распознать объекты, интересующие робота,
- определить оптимальную траекторию движения всего робота и его отдельных частей,
- организовать согласованное управление сервоприводами робота для решения стратегической задачи, стоящей перед роботом.
Устройство имеет небольшие габариты и относительно небольшую стоимость.
Известно устройство управления адаптивным мобильным роботом [1], содержащее блок сенсорных датчиков, выходы которого соединены с входами блока формирования модели внешней среды, чьи выходы подключены к первым входам вычислительного блока, вторые входы которого связаны со вторыми выходами блока исполнительных устройств, а выходы подключены к входам m-стабильного триггера. В качестве вычислительного блока используется нейросеть, содержащая матрицу k·m ключевых элементов. Кроме того, в указанном аналоге имеется схема сравнения, блок задания движения, блок задания констант, блок регулирования, блок определения координат робота, блок датчиков внутренней информации.
Недостатками данного аналога являются: 1) плохая адаптация аналога к сложной и изменяющейся окружающей среде и к сложному и изменяющемуся внутреннему состоянию робота; 2) узкая область применения; 3) аппаратурная избыточность.
Первый недостаток объясняется применением нейросети в качестве основного вычислительного блока. В настоящее время эффективность работы нейросетей доказана только на примерах небольших нейросетей, предназначенных для решения простых, хорошо сформулированных задач [9], хотя даже здесь точность получаемых решений не может считаться приемлемой для использования подобных устройств в системах управления автономными роботами, предназначенными для выполнения ответственных видов работ (а таких видов работ большинство!). На наш взгляд, рассматриваемый аналог не может обеспечить высокую надежность функционирования автономного робота при выполнении сложных и ответственных видов работ вследствие его низкой адаптируемости к реальным условиям, из-за:
- низкой точности распознавания окружающих объектов;
- низкой точности отображения положения частей робота относительно окружающих его объектов;
- больших временных затрат, требующихся нейросети для ее самообучения,
- невозможности смоделировать в процессе обучения нейросети все возможные реальные варианты сочетаний состояния окружающей среды и внутреннего состояния робота.
Низкая приспособляемость аналога в сложной окружающей обстановке может привести к выработке неверных (катастрофических по своим последствиям) управляющих воздействий на сервоприводы робота.
Второй недостаток аналога вызван тем, что круг задач, решаемых с его помощью, ограничивается только узкой задачей перемещения всего робота в пространстве. В то же время задачи, стоящие перед автономными роботами, способными заменить человека в самых различных областях его деятельности, существенно шире и многообразнее. Их решение не может быть осуществлено без высокоскоростного оперативного управления большим числом многозвенных подвижных частей робота, без считывания и оперативной обработки данных, полученных от большого числа датчиков различного назначения, без подробного всестороннего анализа окружающей обстановки и внутреннего состояния робота, а также тех изменений, которые может внести (или уже внес) робот в окружающую среду в процессе своего функционирования.
Третий недостаток связан с тем, что в указанном аналоге каждый очередной этап цикла управления роботом (предварительная обработка сигналов, построение модели внешней среды, определение координат частей робота, вычисление траектории движения, вычисление значений управляющих воздействий, регулирование исполнительными механизмами) выполняется с применением своего специализированного электронно-вычислительного блока. Такая аппаратурная избыточность отрицательным образом сказывается на стоимости, габаритах и энергопотреблении аналога.
2
Наиболее близким к заявленному устройству (прототип) является устройство [6], предназначенное для программной обработки двухмерных и трехмерных изображений. Прототип состоит из блока управления (БУ) и блока обработки, хранения, ввода и визуализации изображений (БОХВИ). Блок управления включает в себя центральный управляющий процессор, память программ и данных, контроллеры внешних устройств. Блок БОХВИ состоит из однородной трехмерной матрицы А×А×А процессоров (где А=n, n≥2 - целое число), памяти изображений, коммутатора поворотов, узлов сжатия, коммутатора циклического переноса, буферной памяти, коммутатора 3D-сдвигов, коммутатора 2DX-сдвигов, коммутатора 2DY-сдвигов, узла определения объема, формирователя кода заполнения бинарного изображения (КЗБИ), узлов ввода фотоизображения, матриц тактильных датчиков, узла отображения, коммутатора слова.
В отличие от вышерассмотренного аналога обработка информации в прототипе представляет собой обычный последовательный алгоритмический процесс, когда поступившая в устройство информация обрабатывается последовательно команда за командой, процедура за процедурой. Такой традиционный подход позволяет глубже проанализировать внутреннее состояние робота и обстановку, его окружающую, дает возможность применить мощный арсенал уже известных математических методов, запросить (при необходимости) недостающую дополнительную информацию, а не просто довериться выводам, сделанным нейросистемой, обученной в подобных, но все же других условиях. Однако в отличие от большинства известных ЭВМ, работающих по этому принципу, в прототипе выполнение отдельных (наиболее часто используемых) операций и процедур над плоскими изображениями и пространственными сценами осуществляется с высокой степенью распараллеливания, когда функцию операндов выполняют не отдельные двоичные слова, а целые двумерные  или трехмерные (А×А×А) фрагменты бинарных изображений, что ускоряет процесс обработки информации, позволяет предложить новые способы обработки, не зависящие от геометрической сложности обрабатываемых сцен. Прототип позволяет:
- осуществлять высокоскоростной ввод и предварительную обработку сенсорной информации,
- распознать трехмерные объекты при различных углах наблюдения и освещения,
- быстро определить положение объектов относительно друг друга при любой геометрической форме этих объектов;
- быстро синтезировать двумерные и трехмерные модели объектов любой геометрической сложности,
- создавать двумерные и трехмерные навигационные карты маршрутов с различным разрешением, и др.
Недостатками прототипа являются:
1) низкая скорость управления большим числом сервоприводов и низкая скорость управления свойствами большого числа сенсорных датчиков;
2) резкое снижение производительности и надежности устройства с увеличением расстояния между процессорной матрицей А×А×А и сенсорными датчиками робота;
3) отсутствие средств для выполнения предварительной обработки информации непосредственно на месте съема сенсорной информации.
Первый недостаток объясняется отсутствием в прототипе аппаратно-программных средств, позволяющих использовать вычислительные мощности блока БОХВИ для скоростного управления большим числом сервоприводов и большим числом сенсорных датчиков робота. Управление в прототипе сервоприводами и датчиками можно организовать только через стандартный малопроизводительный интерфейс блока управления с участием центрального процессора и его внешнего интерфейса, последовательно управляя сначала одним сервоприводом (или группой датчиков), затем другим и т.д. (подобно тому, как управляет любой из известных персональных компьютеров своими внешними устройствами).
Второй недостаток прототипа вызван используемым способом подключения сенсорных датчиков к входам его процессорной матрицы А×А×А, когда каждый битовый информационный выход датчика подключен к отдельному входу процессорной матрицы. В результате рост числа датчиков, рост разрядности их выходных кодов, увеличение расстояния между датчиком и процессорной матрицей (например, в случае удлинения конечностей робота или увеличения площади его очувствленных участков) приведут к резкому росту числа и длин проводников, подключенных к входам процессорной матрицы А×А×А. При этом возрастут паразитные емкости входов матрицы А×А×А, снизится быстродействие и помехозащищенность всего устройства в целом, значительно возрастут габариты и масса робота, понизится его маневренность.
Третий недостаток прототипа связан с отсутствием средств для осуществления предварительной обработки информации непосредственно на месте установки датчиков. В результате информация, снимаемая с сенсорных датчиков, должна быть в полном объеме передана в вычислительные блоки (БОХВИ и БУ), удаленные от места съема сенсорной информации. Тем самым возрастает время передачи информации, возрастает нагрузка на вычислительные ресурсы прототипа, что увеличивает время реакции робота на внешние раздражители.
Целью изобретения является расширение функциональных возможностей устройства, повышение приспособляемости робототехнической системы к внешним условиям, повышение скорости, маневренности и надежности функционирования робота, уменьшение массы, габаритов и стоимости робототехнической системы.
3
3
3
2
2
Указанная цель достигается тем, что в каждом (i,j,k)-м процессоре матрицы А×А×А введен (i,j,k)-й двухвходовый ключ, информационный вход которого соединен с выходом (i,j,k)-го мультиплексора, управляющий вход соединен с выходом введенного двухтактного Т-триггера, а выход соединен с входом (i,j,k)-го узла локальной памяти, вход и выход которого совмещены и выполнены в виде одного проводника, в каждом (i,j,k)-м многовходовом мультиплексоре введен дополнительный информационный вход, соединенный с выходом первого регистра-триггера того процессора, чей квадратик 1×1 при повороте квадрата  отображается в квадратик 1×1 (i,j,k)-го процессора, в каждом (i,j,k)-м многовходовом мультиплексоре для каждого аппаратно-реализуемого дискретизирующего отображения, моделирующего преобразование f: R→R поворота пространства R на углы некратные 90° вокруг взаимно-ортогональных центральных осей куба А×А×А, расположенных параллельно его ребрам, введен дополнительный информационный вход, соединенный с выходом первого регистра-триггера того процессора матрицы А×А×А, чей соответствующий кубик 1×1×1 при моделировании указанного преобразования отображается в кубик 1×1×1, соответствующий (i,j,k)-му процессору, дополнительно введен формирователь синхросигналов, состоящий из генератора импульсов, двух двухвходовых схем И, счетчика адреса со схемой сброса адреса, постоянной памяти и дешифратора, выход генератора импульсов соединен с первым входом первой схемы И, выход которой соединен со счетным входом счетчика адреса, чьи информационные выходы соединены с адресными входами постоянной памяти, выход схемы сброса адреса соединен с входом сброса счетчика адреса, выходы постоянной памяти соединены с входами дешифратора формирователя синхросигналов, а также с входами дешифратора, входящего в состав введенной схемы дешифрации, содержащей дешифратор и пять двухвходовых схем И, информационные входы которых соединены с одноименными выходами данного дешифратора, а управляющие выходы соединены с выходом второго элемента И формирователя синхросигналов, инверсный вход которого соединен с выходом дешифратора формирователя сигналов, а прямой вход соединен с выходом первого разряда счетчика адреса, в программно-адресуемый регистр введен дополнительный триггер, прямой выход которого соединен со вторым входом первой схемы И формирователя (6) синхросигналов, инверсный выход соединен с входом запроса программного прерывания центрального управляющего процессора, а вход сброса соединен с выходом схемы сброса счетчика адреса формирователя синхросигналов, кроме того, для каждого i-го сервопривода робота введены i-й местный контроллер сервопривода и i-й центральный контроллер сервопривода, связанные между собой общей проводной связью i-го сервопривода, при этом местный контроллер сервопривода содержит сдвиговый регистр-приемник кода воздействия, параллельный регистр, сдвиговый регистр-передатчик кода результата, двухвходовый ключ, информационный вход которого соединен с информационным последовательным выходом регистра-передатчика кода результата, управляющий вход соединен с пятым выходом дешифратора, входящего в состав схемы дешифрации, а выход соединен с общей проводной связью i-го сервопривода, последовательный информационный вход сдвигового регистра-приемника кода воздействия соединен с общей проводной связью i-го сервопривода, управляющий вход соединен с выходом первой схемы И схемы дешифрации, а параллельные информационные выходы соединены с одноименными входами параллельного регистра, информационные выходы которого соединяются с одноименными информационными входами цифроаналогового преобразователя i-го узла сервопривода, параллельные информационные входы сдвигового регистра-передатчика кода результата соединяются с одноименными выходами датчика положения регулируемого органа i-го узла сервопривода, первый управляющий вход соединен с выходом четвертой схемы И схемы дешифрации, второй управляющий вход соединен с выходом пятой схемы И схемы дешифрации, центральный контроллер i-го сервопривода содержит сдвиговый регистр-приемопередатчик кода воздействия, сдвиговый регистр-приемопередатчик кода результата, два двухвходовых ключа, две двухвходовые схемы И, две двухвходовые схемы ИЛИ, при этом последовательный информационный вход регистра-приемопередатчика кода воздействия соединен с i-м информационным входом процессорной матрицы А×А×А, а его последовательный информационный выход соединен с информационным входом первого ключа, управляющий вход которого соединен с первым выходом дешифратора схемы дешифрации, а трехстабильный выход соединен с общей проводной связью i-го сервопривода, первый вход первой схемы И соединен с выходом введенного дешифратора адреса АПИ, а второй вход соединен с управляющим выходом блока управления, а выход соединен с первым входом первой схемы ИЛИ, второй вход которой соединен с выходом первой схемы И схемы дешифрации, а выход соединен с управляющим входом регистра-приемопередатчика кода воздействия, последовательный информационный вход регистра-приемопередатчика кода результата соединен с общей проводной связью i-го сервопривода, а его последовательный информационный выход соединен с информационным входом второго ключа, управляющий вход которого соединен с девятым выходом дешифратора КУВМ, а трехстабильный выход соединен с i-м информационным входом матрицы А×А×А процессоров, первый вход второй схемы И соединен с управляющим входом второго ключа, второй ее вход соединен со вторым входом первой схемы И, а выход соединен с первым входом второй схемы ИЛИ, второй вход которой соединен с выходом пятой схемы И схемы дешифрации, а выход соединен с управляющим входом регистра-приемопередатчика кода результата, каждая k-я группа пороговых датчиков робота выполнена в виде сенсорной матрицы А×А, состоящей из Асенсорных датчиков и А двухвходовых компараторов, первые входы которых соединены с выходами одноименных сенсорных датчиков, а вторые входы соединены между собой, в состав каждой сенсорной матрицы дополнительно введены А А-входовых схем ИЛИ и А (А+1)-входовых мультиплексоров, при этом n-й вход m-й А-входовой схемы ИЛИ соединен с выходом n-го компаратора m-й строки k-й группы пороговых датчиков, а выход соединен с (А+1)-м входом m-го (А+1)-входового мультиплексора, s-й информационный вход (где s=1…A) j-го (А+1)-входового мультиплексора соединен с выходом s-го компаратора j-го столбца k-й группы пороговых датчиков, введен местный контроллер k-й сенсорной матрицы (СМ) и центральный контроллер k-й СМ, связанные между собой общей проводной связью k-й СМ, при этом каждый местный контроллер содержит сдвиговый управляющий регистр, параллельные выходы которого соединены с информационными входами управляющего регистра, А-разрядный сдвиговый регистр данных, двухвходовый ключ, информационный вход которого соединен с информационным последовательным выходом регистра данных, управляющий вход соединен с пятым выходом дешифратора схемы дешифрации, а выход соединен с общей проводной связью k-й СМ, последовательный информационный вход сдвигового управляющего регистра соединен с общей проводной связью k-й СМ, а его управляющий вход соединен с выходом первой схемы И схемы дешифрации.
В отличие от прототипа заявленное устройство позволяет одновременно управлять большим числом сервоприводов робота и большим числом его сенсорных датчиков благодаря использованию для этих целей средств параллельной обработки информации, использующихся в прототипе только для обработки изображений. В отличие от прототипа производительность, надежность, габариты и масса устройства в значительно меньшей степени зависят от числа сенсорных датчиков и длины проводников, связывающих входы процессорной матрицы с выходами датчиков, за счет использования последовательного способа передачи информации между датчиками и блоком БОХВИ, поскольку основной процесс передачи информации между удаленной периферией (датчиками и сервоприводами) робота и его устройством управления осуществляется без участия процессорной матрицы А×А×А. Это позволяет удлинить связные кабели без снижения тактовой частоты управления матрицей А×А×А и тем самым расширить функциональные возможности робота (расширить рабочую зону, увеличить площадь и удаленность очувствленных участков, повысить маневренность). Кроме того, в отличие от прототипа заявленное устройство содержит средства предварительной обработки осязательной информации, проводимой непосредственно на месте установки сенсорных матриц без участия вычислительных средств прототипа, что позволяет передавать по линиям связи не всю информацию с датчиков в процессорную матрицу А×А×А, а только ее наиболее интересную часть, касающуюся возбужденных датчиков. При этом выполнение большинства вычислений, входящих в цикл управления роботом (обработка сигналов с датчиков, построение модели внешней среды, определение координат частей робота, вычисление траектории их движения, вычисление значений управляющих сигналов, регулирование сервоприводами) осуществляется с использованием одних и тех же вычислительные средств. Это удешевляет устройство, снижает его габариты и стоимость.
На фиг.1 изображена общая функциональная схема устройства. На фиг.2 показаны схема сенсорной матрицы и схемы ее центрального и местного контроллеров. На фиг.3 изображены схемы центральных и местных контроллеров для датчиков и сервоприводов. На фиг.4 показан состав отдельного процессора однородной процессорной матрицы А×А×А и временная диаграмма работы блока обработки, хранения, ввода и визуализации изображений (БОХВИ). Фиг.5 поясняет соответствие между процессорами матрицы А×А×А и кубиками-пикселями 1×1×1 куба А×А×А и показывает положение основных координатных осей. Фиг.6 иллюстрирует способ реализации в устройстве команд одношагового переноса и поворота на 90° плоских бинарных изображений . На фиг.7 показан способ построения сегментов сферической поверхности (ССП). На фиг.8 показан вариант аппаратно-реализуемого базиса дискретизирующих отображений, моделирующих пространственный поворот. Фиг.9 поясняет принцип моделирования поворота трехмерных бинарных составных изображений на угол, некратный 90°. Фиг.10,11 поясняют принцип моделирования поворота двумерных бинарных составных изображений на угол, некратный 90°. Фиг.12, 13 поясняют принцип расшивки и сшивания двухмерных и трехмерных составных изображений при моделировании поворотов содержимого этих изображений. Фиг.14 иллюстрирует реализацию программного сжатия бинарного изображения А×А×А относительно плоскости, параллельной грани этого изображения. На фиг.15 изображен один из возможных вариантов конструкции «скелета» автономного робота. На фиг.16 показаны варианты способа очувствления конечности робота с использованием сенсорных матриц (СМ). На фиг.17 изображена временная диаграмма работы формирователя сигналов. Фиг.18, 19 поясняют принцип определения текущего положения элементов конечности робота. Фиг.20 поясняет принцип построения текущей 3D-пиксельной модели тела робота и принцип анализа положения этой модели относительно элементов текущей 3D-пиксельной модели окружающей области. На фиг.21 изображены 2D-пиксельная модель тела робота-гуманоида и 3D-пиксельная модель тела кисти робота-гуманоида. На фиг.22 поясняется принцип обнаружения и ликвидации угрозы потери устойчивого равновесия у робота-гуманоида. Фиг.23 поясняет связь между 2D-пикселем на фотоизображении и 3D-пикселем фотографируемого пространства. На фиг.24 изображен вариант видеосистемы робота-гуманоида. На фиг.25 изображена обзорная сфера робота и ее обзорные секторы. На фиг.26 показана обзорная сцена робота и ее фрагменты. Фиг.27, 28 поясняют способ реализации сглаживания фотоизображения в устройстве. Фиг.29 иллюстрирует выполнение алгоритма Поджио для выявления корреспондирующих 3D-пикселей по стереоизображениям. Фиг.30, 31 поясняют способ построения содержимого обзорных сцен и обзорных секторов по найденным корреспондирующим 3D-пикселям. Фиг.32, 33, 34 иллюстрируют алгоритм распознавания трехмерного объекта на плоском фотоизображении. На фиг.35 изображен внешний вид устройства с процессорной матрицей 9×9×9 и вариант расположения его внутри робота-гуманоида. На фиг.36 изображен внутренний состав узла определения объема и формирователя кода заполнения бинарного изображения. На фиг.37 показана функциональная схема варианта узла ввода фотоизображения. На фиг.38 показан состав коммутатора слова и состав памяти изображений.
2
2
2
2
2
Устройство состоит из блока 1 управления; блока 2 обработки изображений, местных контроллеров 3 сервоприводов, местных контроллеров 4 сенсорных матриц, сенсорных матриц 5 формата А×А, формирователя 6 синхросигналов. Блок 1 включает в себя центральный управляющий процессор 7 с регистром 8 микрослова и программно-адресуемыми регистрами 9, 10, 11, 12, 13, 14, 15, 16, 17, память 18 программ и данных, контроллеры 19 внешних устройств 20, мультиплексор 21 адреса локальной памяти, элементы 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 И, триггер 32, элемент задержки 33. Связь блока 1 с внешними устройствами осуществляется посредством интерфейса 34. Блок 2 состоит из матрицы 35 процессоров 36, памяти 37 изображений, коммутатора 38 перемещения слоя, узла 39 определения объема, формирователя 40 кода заполнения бинарного изображения (КЗБИ), узлов 41 ввода фотоизображения, коммутатора 42 слова, центральных контроллеров 43 сервоприводов, центральных контроллеров 44 сенсорных матриц. Код управления входами матрицы 35 дешифрируется дешифратором 45. Каждый контроллер 3 соединен с регулируемым и регулирующим органами отдельного сервопривода 46 робота. Каждый контроллер 4 соединен с сенсорной матрицей 47 робота. Коммутатор 38 включает в себя первую матрицу 48 (А×А) и вторую матрицу 49 (А×А) одноразрядных узлов буферной памяти, коммутатор 50 поворота слоя A×A×1, матрицу 51 (А×А) ключей циклического переноса, матрицу 52 (А×А) ключей 3D-сдвига, матрицу 53 (А×А) ключей 2D-сдвига. Каждый процессор 36 состоит из локальной памяти 54, одноразрядного регистра 55 первого операнда, одноразрядного регистра 56 второго операнда, одноразрядного регистра 57 объема, ключа 58, мультиплексора 59, арифметико-логического узла, включающего в себя схему 60 И-НЕ и схему 61 И. Памятью 54 всех процессоров 36 управляют схема 62 ИЛИ и Т-триггер 63. Контроллер 3 содержит сдвиговый регистр 64 кода воздействия, сдвиговый регистр 65 кода результата, регистр 66 воздействия, ключ 67, цифроаналоговый преобразователь 68, аналого-цифровой преобразователь 69. Контроллер 4 содержит сдвиговый регистр 70 данных, сдвиговый управляющий регистр 71, управляющий регистр 72, ключ 73, цифроаналоговый преобразователь 74. Каждая сенсорная матрица 5 включает в себя А пороговых датчиков 75, А схем 76 ИЛИ, А мультиплексоров 77. Каждый пороговый датчик 75 состоит из собственно датчика 78 и компаратора 79. Контроллер 43 состоит из сдвигового регистра 80 кода воздействия, сдвигового регистра 81 кода результата, схем 82, 83 И, схем 84, 85 ИЛИ, ключей 86, 87, неполного дешифратора 88. Контроллер 44 состоит из сдвигового регистра 89 данных, сдвигового управляющего регистра 90, схем 91, 92 И, схем 93, 94 ИЛИ, ключей 95, 96, неполного дешифратора 97. Формирователь 6 включает в себя генератор 98, счетчик адреса 99, память 100, дешифратор 101, схемы 102, 103 И, внешние схемы 104 дешифрации. В состав регистра 17 входит разряд-триггер 105. Сервопривод 46 состоит из двигателя 106, червяка 107, червячного колеса с датчиком 108 углового положения колеса. Каждая схема 104 дешифрации состоит из дешифратора 109 и двухвходовых схем 110, 111, 112, 113, 114 И. Узел 39 определения объема состоит из полусумматоров 115 и многоразрядных сумматоров 116, 117. Формирователь 40 включает в себя А А-входовых схем 118 ИЛИ. Каждый узел 41 ввода фотоизображений состоит из матрицы 119 ПЗС-приборов 120, коммутаторов 121, аналого-цифровых преобразователей 122, мультиплексоров 123, ключей 124, двоичного счетчика 125, дешифратора 126, схем 127 И, 128 ИЛИ, схемы 129 управления ПЗС, неполного дешифратора 130. Коммутатор 42 состоит из А ключей 131. Память 37 состоит из А одноразрядных узлов 132 памяти произвольной выборки и А ключей 133.
Устройство работает следующим образом. В памяти 18 хранятся программы обработки. Каждая команда программы перед ее выполнением извлекается из памяти 18 и размещается в регистрах процессора 7, при этом адрес первого операнда размещается в регистре 14, адрес второго операнда - в регистре 15. Далее дешифрируется код операции извлеченной команды, после чего узлом микропрограммного управления процессора 7 вырабатываются сигналы микроопераций, необходимые для выполнения данной команды. Система команд заявленного устройства включает в себя арифметико-логические команды, команды условного и безусловного перехода, команды БОХВИ.
Назначение и способ выполнения всех арифметико-логических команд, команд условного и безусловного перехода полностью определяются выбранной конструкцией процессора 7, памяти 18, интерфейса 34, которые выполняются по одной из известных схем (в частности, за их основу могут быть взяты соответствующие узлы любого из известных персональных компьютеров). Каждой команде соответствует своя микропрограмма - набор микрокоманд, последовательное выполнение которых приводит к выполнению операции, заданной в команде. После дешифрации кода операции адрес начального микрослова команды записывается в регистр микроадреса процессора 7. По этому микроадресу из памяти микропрограмм процессора 7 извлекается управляющее микрослово и загружается в регистр 8. Это микрослово содержит управляющее поле, разряды которого используются для генерации сигналов требуемых микроопераций, а также поле следующего микроадреса и поле кода микроветвления. Поле следующего микроадреса содержит базовый микроадрес, который указывает на следующее микрослово при естественной последовательности выборки микрослов. Этот базовый микроадрес может быть модифицирован с целью микроветвления, поле кода микроветвления определяет, какие признаки необходимо проверить и использовать для модификации микроадреса. Часть управляющего поля микрослова образует поле управления БОХВИ, ответственное за выработку управляющих сигналов блока 2.
Обработка двухмерных и трехмерных изображений
Главной особенностью заявленного устройства является использование только пиксельных геометрических моделей на всех этапах обработки плоских изображений и трехмерных пространственных сцен, начиная с предварительной обработки вводимых изображений и заканчивая анализом и синтезом двухмерных и трехмерных геометрических моделей. Высокая скорость обработки достигается:
1) за счет применения специального аппарата т.н. дискретизирующих отображений [3, 4], которые моделируют выполнение геометрических преобразований поворота, переноса, сжатия над пиксельными геометрическими моделями;
2) благодаря глубокому распараллеливанию процесса выполнения теоретико-множественных операций, анализа объектов на пересекаемость, процедур вычисления площадей и объемов.
Отличительной особенностью устройства является возможность применения такого способа программной обработки сцен, когда роль элементарных операндов выполняют целые двухмерные и трехмерные изображения, содержащие внутри себя обрабатываемые геометрические объекты. Наряду с упрощением процесса программирования такой способ позволяет создавать программы, инвариантные по отношению к геометрической форме обрабатываемых объектов и их угловому положению в пространстве. Устройство позволяет существенно увеличить скорость и качество машинной обработки сцен за счет организации поэтапной обработки сцен с использованием сначала геометрических моделей объектов низкого разрешения, а затем - с использованием геометрических моделей большего разрешения.
3
Содержимое одноразрядных слов, хранящихся по одному и тому же адресу в А узлах локальной памяти 54 всех процессоров 36 матрицы 35, в зависимости от выполняемой команды интерпретируется устройством либо как трехмерное бинарное изображение А×А×А, либо как двухмерное бинарное изображение формата . Между кубиками-пикселями 1×1×1 куба-изображения А×А×А и процессорами 36 матрицы 35 существует взаимно-однозначное соответствие (фиг.5-а).
Описание команд управления БОХВИ целесообразно начать с определения ряда используемых терминов.
(n)
n
s
m
Определение 1. n-мерной сценой S формата F назовем некоторое семейство  (где I=1,2,3,…m ) точечных множеств E n-мерного евклидового пространства R, удовлетворяющее выражению:
(n)
(n)
(n)
(1)
(1)
(1)
1
(2)
(2)
(2)
2
(3)
(3)
(3)
3
m
m
где µ (E) - n-мерная мера n-мерного множества E (понятие n-мерной меры µ (Е) является естественным обобщением понятий: длины µ (Е) отрезка Е - для R; площади µ (Е) плоской фигуры E - для R; объема µ (Е) трехмерной фигуры E - для R) [10].
m
Определение 2. Множество E∈S назовем m-м объектом n-мерной сцены S.
m
m∈I
(n)
Определение 3. Сцену S={E} формата F, для которой одновременно справедливы выражения:
i
j
и (∀i,j∈I)[(i≠j)⇒(E∩E=⌀)]
s
s
s
s
(n)
(n)
(n)
назовем m-нарным (или m-уровневым) n-мерным изображением формата F. Каждое m-нарное изображение формата F может быть представлено m-значной функцией Ф, принимающей в каждой точке а∈F значение Ф(а), удовлетворяющее высказыванию:
m
m
m
m
(n)
(∀E∈S)(∀a∈E) (∀b∈F)[((Ф(а)=Ф(b))⇒(b∈E))∧((Ф(а)≠Ф(b))⇒(b∉E))]
n
(n)
n
ι
Разобьем пространство R на классы точечных множеств р ∈R (где ι∈L, L=1,2,…∞), для которых справедливы выражения:
ι
p
(n)
где ρ(а,b) - расстояние между точками а и b множества р , ξ - постоянная;
ι
р
(n)
n
(n)
n
Определение 4. Множества р ⊂R, одновременно удовлетворяющие всем перечисленным требованиям, назовем n-мерными пикселями р-пиксельного разбиения R, а ξ - постоянной этого разбиения.
ι
ι
k
(n)
(n)
Определение 5. Точечное множество и ∪ р , составленное из конечного множества пикселей р  (L∈L), назовем  объектом.
(n)
n
(n)
(n)
(n)
(n)
(n)
(n)
ι
E
E
E
ι
ι
ι
ι
1
Определение 6. р-дискретной моделью множества É⊂R назовем р-дискретный объект , составленный из всех пикселей р  (где ι∈L, L⊂L), для которых выполняется: (∀ι∈L)[µ(É∩p )/µ(p )≥δ], где δ - постоянная (0<δ≤1).
p
(n)
p
n
n
(n)
p
(2)
(3)
2
3
(2)
(3)
2
3
(2)
(3)
ι
ι
Определение 7. Вычислительную процедуру f по формированию р-дискретной модели f(É)⊂R множества f(É) из множества É, где f(É) - образ множества É⊂R при отображении f: É→f(É), назовем р-дискретизирующим отображением f, моделирующим отображение f: É→f(É) (или просто - дискретизирующим отображением). В заявленном устройстве все обрабатываемые трехмерные объекты представлены их р-дискретными и р-дискретными моделями. Используемые пиксельные разбиения пространств R и R - регулярные: роль пикселей р  выполняют квадратики 1×1, роль пикселей р  - кубики 1×1×1. Выполнение геометрических преобразований (к числу которых относятся преобразования поворота, переноса, сжатия) над точками пространств R и R, заменено выполнением р-дискретизирующих и р-дискретизирующих отображений (моделирующих указанные геометрические преобразования с заданной степенью точности) над одноцветным содержимым бинарных изображений.
(n)
p
(n)
n
n
1
Общий принцип построения р-дискретной модели f(Е) множества f(E) из объекта Е (где  - некоторый произвольный р-дискретный объект; а f - биективное отображение f: R→R) состоит в следующем. Исходный объект Е задан бинарным n-мерным изображением S некоторого формата , полностью покрывающего Е.
2
p
Результатом построения должно стать бинарное n-мерное изображение S некоторого формата , содержащее внутри себя объект f(E).
1
2
1
2
F
1
2
F
(n)
(n)
(n)
Пусть F =F =F, L=L=L. Поскольку S и S являются бинарными, они могут быть представлены следующими двухзначными функциями для ι∈L:
(n)
(n)
(n)
(n)
(n)
ι
ι
Построение р-дискретной модели образа f(E) предполагает определение меры µ(р ∩f(E)) для каждого р ⊂F. Из равенства  следует ,
отсюда . Так как
n
n
(n)
(n)
i
j
а f - биективное отображение f: R→R, то f(p )∩f(p )=⌀.
Таким образом из (3) и свойства аддитивности меры [10] вытекает:
1
i
ι
F
(n)
Используя введенную функцию Ф(p ), для i∈L⊂L, удовлетворяющих условию  можно записать
Из определения 6 следует:
2
ι
1
i
(n)
(n)
Выражения (5) и (6) определяют зависимость значения Ф(р ) от значений Ф(p ).
(n)
p
Несмотря на очевидный недостаток р-дискретизирующих отображений f (низкая точность моделирования произвольных преобразований f) они обладают тремя важнейшими достоинствами в случае их машинной реализации:
1) возможностью предельного распараллеливания процесса их выполнения (вплоть до битов описания модели):
2) отсутствием зависимости между временем выполнения преобразования и сложностью геометрической формы преобразуемого объекта:
(n)
p
p
(n)
(n)
ι
3) возможностью замены бесконечного спектра моделируемых геометрических преобразований f конечным спектром р-дискретизирующих отображений f, уменьшающимся вместе с уменьшением разрешения преобразуемой модели. Простейший способ распараллеливания f, непосредственно вытекающий из выражений (5) и (6), состоит в применении пары «многовходовый аналоговый сумматор - пороговый элемент» (вход ι-го порогового элемента соединен с выходом ι-го аналогового сумматора) для каждого пикселя p ⊂F. Каждый ι-й сумматор реализует выражение (5), каждый ι-й пороговый элемент - выражение (6).
ι
ι
ι
ι
i
ι
ι
(n)
(n)
(n)
(n)
(n)
(n)
Варьируя значением δ можно упростить данный способ аппаратной реализации р-дискретизирующего отображения путем замены аналоговых элементов на простейшие цифровые элементы. Действительно, если для выбранного значения δ высказывание (∀i∈L)[µ(p ∩f(p ))/µ(p )≥δ] истинно, нет необходимости вычислять (5), а достаточно реализовать булеву функцию «дизъюнкция»:
1
i
2
ι
(n)
(n)
где Ф(p ) и Ф(р ) выполняют уже роль булевых переменных (1 - истинно, 0 - ложно).
(n)
(n)
n
p
(n)
p
(n)
(n)
(n)
(n)
(n)
(n)
(n)
(n)
i
ι
i
ι
1
i
i
ι
1
i
2
ι
ι
ι
i
i
ι
Еще более упрощается аппаратная реализация дискретизирующих отображений в случае моделирования преобразований, называемых перемещениями (движениями или наложениями). К их числу относятся: параллельный перенос, поворот, различные виды симметрии. Для этих преобразований справедливо равенство µ(Е)=µ(f(E)), в связи с чем при регулярном пиксельном разбиении R должно соблюдаться (число пикселей, образующих Е, должно совпадать (в идеальном случае) с числом пикселей, образующих f(E)). А потому само р-дискретизирующее отображение f, моделирующее перемещение f, должно быть преимущественно взаимнооднозначным (т.е. один пиксель-прообраз p  должен отображаться, как правило, только в один пиксель-образ p ). Пусть S1 - преобразуемое бинарное изображение, представленное n-мерным множеством значений  хранящихся в одноразрядных двоичных аккумуляторах a; S2 - бинарное изображение, полученное в результате моделирования перемещения f над единичным содержимым S1 и представленное n-мерным множеством значений  хранящихся в одноразрядных двоичных аккумуляторах b. Аппаратная реализация процедуры формирования S2 из S1 с максимальной степенью параллелизации состоит в передаче значений Ф(p ) из аккумуляторов a в аккумуляторы b для передачи значений Ф(p )= Ф(p ) по индивидуальным линиям связи. При этом взаимнооднозначное соответствие между пикселем-образом р  (входом аккумулятора b) и пикселем-прообразом p  (выходом аккумулятора a) устанавливается индивидуально для каждого пикселя р  принудительным образом согласно следующими правилами:
ι
i
i
ι
ι
(n)
(n)
(n)
(n)
1) пиксель-прообраз для р  ищется только из числа p , образы f(p ) которых при данном перемещении f пересекают р (т.е. для которых i∈L);
ι
ι
i
(n)
(n)
(n)
(n)
1) наибольший приоритет для установления соответствия с р имеет пиксель , обладающий наибольшим значением меры µ(p ∩f(p )) из числа , для которых соответствия еще не было установлено;
ι
ι
i
ι
ι
(n)
(n)
(n)
n
3) пиксель р , для которого L≠⌀, обязательно должен иметь пиксель-прообраз p  (L=⌀, если все  пикселя р  расположены за пределами формата F);
ι
ι
(n)
(n)
4) если для всех  соответствие уже установлено, а для р  - еще нет, пикселю р  дается в соответствие один из пикселей  для которого в этом случае принцип взаимной однозначности нарушается.
i
i
В заявленном устройстве функцию аккумуляторов a выполняют регистры 55, функцию аккумуляторов b - одноразрядные узлы памяти 54.
В таблице 1 перечислены все команды БОХВИ и дано их описание. Часть управляющего поля микрослова образует поле управления БОХВИ, в это поле входят следующие группы двоичных разрядов:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+а1
+а2
+а3
НУ
ЗПИ
1 разр
4÷5 разр
1 разр
1 разр
1 разр
1 разр
1 разр
1 разр
1 разр
1 разр
1 разр
В отличие от прототипа в мнемоническом обозначении команд заявленного устройства используются только буквы латинского алфавита. Часть команд управления БОХВИ по своему функциональному назначению являются полными аналогами команд управления БОХВИ прототипа, а часть являются вновь введенными командами. Назначение разрядов поля управления БОХВИ полностью совпадает с назначением одноименных разрядов поля управления БОХВИ прототипа, однако поле кода микрооперации (КМО) заявленного устройства содержит больше разрядов из-за введения в систему команд дополнительных команд. Система команд управления БОХВИ, приведенная в табл.1, является обобщенной и функционально избыточной. Например:
- каждая команда типа SBT может быть реализована путем суперпозиции (последовательного выполнения) нескольких команд типа INE;
- каждая команда типа RAZ может быть реализована при помощи суперпозиции нескольких команд типа RAX и RAY;
и т.п.
Избыточность команд позволяет увеличить скорость обработки, однако при этом аппаратурные затраты на реализацию устройства возрастают. В зависимости от конкретного варианта реализации устройства часть команд, перечисленных в табл.1, может отсутствовать в системе команд конкретного варианта заявленного устройства.
Таблица 1
СИСТЕМА КОМАНД УПРАВЛЕНИЯ БОХВИ
№
Мнемоническое обозначение команды
Выполняемая операция
1
RAX (right angle)
Повернуть содержимое бинарного фрагмента А×А×А с адресом, хранящимся в регистре 14 адреса первого операнда, вокруг оси ОХ на 90°
2
RAX+
Повернуть содержимое бинарного фрагмента А×А×А с адресом, хранящимся в регистре 14 адреса первого операнда, вокруг оси ОХ на 90°, после выполнения поворота увеличить на 1 содержимое регистра адреса первого операнда
3
RAXA a2, a1
Содержимое бинарного фрагмента А×А×А с адресом a1 скопировать в фрагмент А×А×А с адресом a2 с поворотом содержимого фрагмента вокруг оси ОХ на 90°
4
RAY
Повернуть содержимое бинарного фрагмента А×А×А с адресом, хранящимся в регистре 14 адреса первого операнда, вокруг оси OY на 90°
5
RAY+
Повернуть содержимое бинарного фрагмента А×А×А с адресом, хранящимся в регистре адреса первого операнда, вокруг оси OY на 90°, после выполнения поворота увеличить на 1 содержимое регистра 14 адреса первого операнда
6
RAYA a2, a1
Содержимое бинарного фрагмента А×А×А с адресом a1 скопировать в фрагмент А×А×А с адресом a2 с поворотом содержимого фрагмента вокруг оси OY на 90°
7
RAZ
Повернуть содержимое бинарного фрагмента А×А×А с адресом, хранящимся в регистре 14 адреса первого операнда, вокруг оси OZ на 90°
8
RAZ+
Повернуть содержимое бинарного фрагмента А×А×А с адресом, хранящимся в регистре адреса первого операнда, вокруг оси OZ на 90°, после выполнения поворота увеличить на 1 содержимое регистра адреса первого операнда
9
RAZA a2, a1
Содержимое бинарного фрагмента А×А×А с адресом a1 скопировать в фрагмент А×А×А с адресом a2 с поворотом содержимого фрагмента вокруг оси OZ на 90°
10
PRA (plan right angle)
Повернуть содержимое бинарного фрагмента <img file="00000034.tif" he="6" wi="23" img-content="undefined" img-format="tif" /> с адресом, хранящимся в регистре адреса первого операнда, вокруг центра этого изображения на 90°
11
PRA+
Повернуть содержимое бинарного фрагмента <img file="00000035.tif" he="6" wi="23" img-content="undefined" img-format="tif" /> с адресом, хранящимся в регистре адреса первого операнда, вокруг центра этого изображения на 90°, после выполнения поворота увеличить на 1 содержимое регистра 14 адреса первого операнда
12
PRAA a2, a1
Содержимое бинарного фрагмента <img file="00000035.tif" he="6" wi="23" img-content="undefined" img-format="tif" /> с адресом a1 скопировать в фрагмент <img file="00000035.tif" he="6" wi="23" img-content="undefined" img-format="tif" /> с адресом a2 с поворотом содержимого фрагмента вокруг центра этого фрагмента на 90°
13
SH (shift)
Сдвинуть содержимое бинарного фрагмента А×А×А с адресом, хранящимся в регистре 14 адреса первого операнда, на 1 шаг в направлении Ох, состояние матрицы А×А входов iD взаимнооднозначно записать в первый слой А×А×1 сдвинутого фрагмента А×А×А, содержимое последнего слоя А×А×1 сдвигаемого фрагмента записать в буферную память 48
14
SHA a2, a1
Скопировать содержимое бинарного фрагмента А×А×А с адресом a1 в фрагмент a2 с одновременным сдвигом этого содержимого на 1 шаг в направлении Ох, состояние входов матрицы 35 записать в первый слой А×А×1 сдвинутого фрагмента А×А×А, содержимое последнего слоя А×А×1 сдвигаемого фрагмента записать в буферную память 48
15
SH+
Сдвинуть содержимое бинарного фрагмента А×А×А с адресом, хранящимся в регистре адреса первого операнда, на 1 шаг в направлении Ох, состояние матрицы А×А входов iD матрицы 35 взаимно-однозначно записать в первый слой А×А×1 сдвинутого фрагмента А×А×А, содержимое последнего слоя А×А×1 сдвигаемого фрагмента записать в буферную память 48, содержимое регистра 14 адреса первого операнда увеличить на 1
24
TRN+ (transfer)
Скопировать содержимое бинарного фрагмента А×А×А с адресом, хранящимся в регистре первого операнда, в фрагмент А×А×А с адресом, хранящимся в регистре второго операнда, после перемещения содержимое обоих регистров (14, 15) адреса увеличить на 1
25
TRNA a2, a1
Скопировать содержимое бинарного фрагмента А×А×А с адресом a1 в фрагмент А×А×А с адресом a2
26
TRNAV a2, a1
Скопировать содержимое бинарного фрагмента А×А×А с адресом a1 в фрагмент А×А×А с адресом a2, вычислить объем единичного содержимого копируемого фрагмента, определить код заполнения (КЗБИ) копируемого фрагмента.
27
INE
Выполнить теоретико-множественную операцию <img file="00000036.tif" he="6" wi="17" img-content="undefined" img-format="tif" /> (где A1 - множество единичных пикселей 1×1×1 бинарного фрагмента А×А×А, адрес которого находится в регистре 14 адреса первого операнда, A2 - множество единичных пикселей 1×1×1 фрагмента А×А×А, адрес которого находится в регистре 15 адреса второго операнда), результат операции записать по адресу второго операнда
28
INE+
Выполнить теоретико-множественную операцию <img file="00000037.tif" he="6" wi="17" img-content="undefined" img-format="tif" /> (где A1 - множество единичных пикселей 1×1×1 бинарного фрагмента А×А×А, адрес которого находится в регистре адреса первого операнда, A2 - множество единичных пикселей 1×1×1 фрагмента А×А×А, адрес которого находится в регистре адреса второго операнда), результат операции записать по адресу второго операнда, после записи результата содержимое обоих регистров адреса увеличить на 1
29
INEA a2, a1
Выполнить теоретико-множественную операцию <img file="00000037.tif" he="6" wi="17" img-content="undefined" img-format="tif" />, где A1 - множество единичных пикселей 1×1×1 фрагмента А×А×А с адресом a1, A2 - множество единичных пикселей 1×1×1 фрагмента А×А×А с адресом а2, результат записать по а2.
30
SBT (subtract)
Выполнить теоретико-множественную операцию «вычитание» <img file="00000038.tif" he="5" wi="17" img-content="undefined" img-format="tif" /> (где A1 - множество единичных пикселей 1×1×1 бинарного фрагмента А×А×А, адрес которого находится в регистре 14 адреса первого операнда, А2 - множество единичных пикселей 1×1×1 бинарного фрагмента А×А×А, адрес которого находится в регистре 15 адреса второго операнда), результат операции записать по адресу второго операнда
31
SBT+
Выполнить теоретико-множественную операцию «вычитание A1 из A2» <img file="00000039.tif" he="5" wi="17" img-content="undefined" img-format="tif" /> (где A1 - множество единичных пикселей 1×1×1 бинарного фрагмента А×А×А, адрес которого находится в регистре 14 адреса первого операнда, А2 - множество единичных пикселей 1×1×1 бинарного фрагмента А×А×А, адрес которого находится в регистре адреса 15 второго операнда), результат операции записать по адресу второго операнда, после записи результата содержимое регистров 14 и 15 увеличить на 1
32
SBTA a1, a2
Выполнить теоретико-множественную операцию <img file="00000039.tif" he="5" wi="17" img-content="undefined" img-format="tif" />, где A1 - множество единичных пикселей 1×1×1 бинарного фрагмента А×А×А с адресом a1, А2 - множество единичных пикселей 1×1×1 бинарного фрагмента А×А×А с адресом а2. Результат записать по а2.
33
NTE (note)
Записать состояние входов матрицы 35 в память 37 по адресу, хранящемуся в регистре 11, а также в первый слой А×А×1 матрицы 35 этого изображения с последующим сдвигом изображения на 1 шаг в направлении Ох. После записи увеличить содержимое регистра 11 на 1.
34
FTI
Начать ввод фотоизображения
35
BRFVC b1
Переход программы управляющего процессора 3 на команду, хранящуюся в памяти 18 по адресу b1, если флаг FV с выхода триггера 32 равен лог.0, если FV=1 - переход на следующую команду.
39
ANG1 (angle)
Содержимое фрагмента А×А×А с адресом, хранящимся в регистре 14 адреса первого операнда, перевести в угловое положение №1, получающееся в результате последовательного поворота сначала на угол α<sub>1</sub> вокруг оси OY, а затем на угол β<sub>1</sub> вокруг оси OX.
40
ANG2
Содержимое фрагмента А×А×А с адресом, хранящимся в регистре адреса первого операнда, перевести в угловое положение №2, получающееся в результате последовательного поворота сначала на угол α<sub>2</sub> вокруг оси OY, а затем на угол β<sub>2</sub> вокруг оси OX.
:
:
:
ANGw
Содержимое фрагмента А×А×А с адресом, хранящимся в регистре адреса первого операнда, перевести в угловое положение № w, получающееся в результате последовательного поворота сначала на угол α<sub>w</sub> вокруг оси OY, а затем на угол β<sub>w</sub> вокруг оси OX.
Команды управления БОХВИ выполняются следующим образом.
Микропрограмма команды RAX состоит из микрокоманды, в управляющем поле БОХВИ микрослова которой установлены биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00011
1
0
0
1
0
0
0
0
0
После расшифровки кода команды процессор 7 по тактовому импульсу С1 записывает микрослово команды RAX в регистр 8 микрослова. Код ADR с выходов мультиплексора 21 поступает на адресные входы памяти 54. Сигнал R/W=0, поступающий с инверсного выхода двухтактного Т-триггера 63 (фиг.1), переводит память 54 в режим чтения. В каждом процессоре 36 (фиг.4) информационный выход выбранной памяти 54 подключается к общему информационному входу регистров-триггеров 55, 56, 57. По переднему фронту синхросигнала С2 (фиг.1) сигнал CWR1 (фиг.4-б), поступающий с выхода подготовленной схемы 22 И, записывает содержимое памяти 54 в регистры 55 матрицы 35. Одновременно содержимое строки A×1×1 последнего (относительно Ох) слоя А×А×1 записывается в А разрядов программно-адресуемого регистра 16, что обеспечивает возможность передачи данных из блока 2 в блок 1. По заднему фронту С2 память 54 переводится в режим записи (R/W=1).
В каждом (i,j,k)-м процессоре 36 мультиплексор 59 (i,j,k) кодом КМО=00011 через подготовленный ключ 58 (i,j,k) подключает к информационному входу памяти 54(i,j,k) выход регистра 55 того процессора 36, чей соответствующий кубик-пиксель 1×1×1 при повороте куба А×А×А на 90° вокруг его центральной оси Ох (фиг.4, 5) отображается в (i,j,k)-й кубик-пиксель 1×1×1. По переднему фронту синхросигнала С3 (фиг.4-б) сигнал WR, поступающий с подготовленной схемы 28 И, записывает повернутое содержимое бинарного изображения А×А×А, хранящегося в регистрах 55, в локальную память 54 по адресу, хранящемуся в регистре 14.
Микропрограмма команды RAX+ состоит из микрокоманды, поле управления БОХВИ которой содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00011
1
0
0
1
1
0
0
0
0
Выполнение этой команды отличается от выполнения RAX только тем, что после записи повернутого изображения в локальную память 54 содержимое регистра 14 увеличивается на 1 по импульсу С4 посредством сигнала +1а1.
Микропрограмма команды RAXA а2, а1 состоит из нескольких микрокоманд, при этом выполнение первых микрокоманд связано с чтением из памяти 18 адреса а1 и адреса а2 с записью прочитанных значений в регистр 14 адреса первого операнда и в регистр 15 адреса второго операнда соответственно (способ организации такого чтения зависит от выбора одной из известных конструкций блока 1). После чтения адресов операндов выполняется микрослово, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00011
1
0
0
0
0
0
0
0
0
Запись в локальную память 54 повернутого изображения осуществляется посредством следующего микрослова, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
СКЗ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00011
0
1
0
0
1
0
0
0
0
0
Микропрограмма команды RAY состоит из микрокоманды:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
1
00100
1
0
0
1
0
0
0
0
0
Выполнение команды RAY отличается от выполнения команды RAX тем, что здесь мультиплексор 59 (i,j,k) подключает информационный вход памяти 54(i,j,k) к выходу регистра 55 того процессора 36, чей соответствующий кубик-пиксель 1×1×1 при повороте куба А×А×А на 90° вокруг его центральной оси Оу (фиг.5) отображается в (i,j,k)-й кубик-пиксель 1×1×1.
Микропрограмма команды RAY+ состоит из микрослова:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00100
1
0
0
1
1
0
0
0
0
Выполнение этой команды отличается от выполнения RAY только тем, что после записи повернутого изображения в локальную память 54 содержимое регистра 14 увеличивается на 1 по импульсу С4 посредством сигнала +1а1.
Микропрограмма команды RAYA а2, а1 начинается с чтения адресов а1, а2 (как в команде RAXA а2, а1). По окончании чтения выполняется микрослово, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00100
1
0
0
0
0
0
0
0
0
Запись в локальную память 54 осуществляется посредством следующей микрокоманды, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
1
00100
0
0
0
1
0
0
0
0
0
Микропрограмма команды RAZ состоит из микрослова, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00101
1
0
0
1
0
0
0
0
0
Выполнение команды RAZ отличается от выполнения команды RAX тем, что здесь мультиплексор 59 (i,j,k) подключает информационный вход памяти 54(i,j,k) к выходу регистра 55 того процессора 36, чей соответствующий кубик-пиксель 1×1×1 при повороте куба А×А×А на 90° вокруг его центральной оси Oz (фиг.4, 5) отображается в (i,j,k)-й кубик-пиксель 1×1×1.
Микропрограмма команды RAZ+ состоит из микрослова, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00101
1
0
0
1
1
0
0
0
0
Выполнение этой команды отличается от выполнения RAZ только тем, что после записи повернутого изображения в локальную память 54 содержимое регистра 14 увеличивается на 1 по импульсу С4 посредством сигнала +1а1.
Микропрограмма команды RAZA а2, а1 начинается с чтения адресов а1, а2 (как и в команде RAXA а2, а1). По окончании чтения выполняется микрослово, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00101
1
0
0
0
0
0
0
0
0
Запись изображения (результата поворота) в локальную память осуществляется посредством следующего микрослова, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
1
00101
0
0
0
1
0
0
0
0
0
Микропрограмма команды PRA состоит из микрокоманды, поле управления БОХВИ микрослова которой содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00111
1
0
0
1
0
0
0
0
0
п
п
Выполнение команды PRA отличается от выполнения команды RAX тем, что здесь мультиплексор 59 (i,j,k) подключает информационный вход памяти 54(i,j,k) к выходу регистра 55 того процессора 36, чей соответствующий квадратик-пиксель 1×1 при повороте квадрата  на 90° вокруг его центральной оси OY (фиг.6-а,в) отображается в (i,j,k)-й квадратик-пиксель 1×1.
Микропрограмма команды PRA+ состоит из микрокоманды, поле управления БОХВИ которой содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00111
1
0
0
1
1
0
0
0
0
Выполнение этой команды отличается от выполнения PRA только тем, что после записи повернутого изображения в локальную память 54 содержимое регистра 14 увеличивается на 1 по импульсу С4 посредством сигнала +1а1.
Микропрограмма команды PRAA а2, а1 состоит из нескольких микрокоманд, при этом выполнение первых микрокоманд связано с чтением из памяти 18 адреса а1 и адреса а2 с записью прочитанных значений в регистр 14 адреса первого операнда и в регистр 15 адреса второго операнда соответственно. После чтения адресов операндов выполняется микрослово, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00111
1
0
0
0
0
0
0
0
0
Запись в локальную память 54 осуществляется посредством следующего микрослова, поле управления БОХВИ которого содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
1
00111
0
1
0
1
0
0
0
0
0
Микропрограмма команды SH состоит из микрокоманды, поле управления БОХВИ микрослова которой содержит биты:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00110
1
0
0
1
0
0
0
0
0
После расшифровки кода команды SB центральный процессор 7 по тактовому импульсу С 1 записывает микрослово команды SH в регистр 8 микрослова. После этого мультиплексор 21 соединяет выходы регистра 14 адреса первого операнда с входами ADR процессорной матрицы 35. По переднему фронту импульса С2 посредством сигнала CWR1 происходит чтение содержимого каждой локальной памяти 54(i,j,k) (где 1≤i≤A, 1≤j≤A, 1<k≤А, фиг.5) с адресом ADR в регистр 55(i,j,k), данные из одноразрядной памяти 48 (j,k) записываются в память 49(j,k). В каждом процессоре 36(i,j,k) мультиплексор 59 (i,j,k) соединит вход памяти 54(i,j,k) с выходом триггера 55(i-1,j,k) процессора 36 (i-1,j,k), удаленного в матрице 35 на 1 шаг в (направлении -Ох, фиг.5) от процессора 36(i,j,k). С приходом С3 сигнал WR запишет сдвинутое изображение в локальную память 54 процессоров 36 по адресу ADR, a содержимое регистров 55 (A,j,k) последнего (А-го) слоя А×А×1 исходного изображения запишется в буферную память 48(j,k) коммутатора 38 (фиг.1). В зависимости от значения поля КУВМ (код управления входами матрицы) программно-адресуемого регистра 9, указывающего на источник данных для входов матрицы 35, выполнение команды SH сопровождается:
а) КУВМ=0000 - записью содержимого каждого регистра-триггера 55 (A,j,k) последнего (А-го) слоя А×А×1 исходного (не сдвинутого) изображения А×А×А в память 54 (1,j,k) первого слоя А×А×1 результирующего (сдвинутого) изображения А×А×А - циклический сдвиг;
б) КУВМ=0001 - записью состояния выходов одноразрядных узлов 49 (j,k) буферной памяти в узлы 54(1,j,k) результирующего изображения А×А×А;
п
п
в) КУВМ=0010 - записью содержимого регистров 55(A,j,k) (где 1≤k≤A, j - число некратное ) в узлы 54 (1,j+1,k), а содержимого узлов 49 (j,k) (где 1≤k≤A, , m=0,1,2,… ) в узлы 54 (1,j,k) для моделирования операций сдвига плоского изображения  на 1 шаг в направлении ОХ - фиг.6 (а,б,г);
г) КУВМ=0011 - записью состояния каждого (j,k)-го выхода коммутатора 50 послойного поворота в память 54 (1,j,k) результирующего изображения А×А×А;
д) КУВМ=0100 - записью состояния каждого (j,k)-го выхода узла 37 памяти изображений в соответствующий узел 54(1,j,k) результирующего изображения А×А×А;
е) КУВМ=0101 - записью состояния выхода каждого j-го разряда (где 1≤j≤A) программно-адресуемого регистра 10 в столбец узлов 54 (1,j,k), (где 1≤k≤A) результирующего изображения (посредством коммутатора 42);
2
1
ж) КУВМ=0110 - записью состояния А выходов узла 40 ввода фотоизображения в 1-й слой А×А×1 результирующего изображения А×А×А;
2
2
з) КУВМ=0111 - записью состояния А выходов узла 40 ввода фотоизображения в 1-й слой А×А×1 результирующего изображения А×А×А;
2
2
к) КУВМ=1000 - записью состояния выходов А центральных контроллеров 43 в А узлов 54(1,j,k);
2
2
л) КУВМ=1001 - записью состояния выходов А центральных контроллеров 44 в А узлов 54(1,j,k);
Микропрограмма команды SH+ состоит из микрокоманды, поле управления БОХВИ которой содержит биты:
УАЛ
КМО
СР1
СР2
СCМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00110
1
0
0
1
1
0
0
0
0
Выполнение команды SH+ отличается от выполнения команды SH тем, что после окончания сдвига сигнал +1а1 увеличивает содержимое регистра 14 на 1.
Выполнение команды SH а2, а1 отличается от выполнения команды SH1 только тем, что перед выполнением сдвига из памяти 18 извлекаются адрес а1 (в регистр 14) и адрес а2 (в регистр 15).
Микропрограмма команды TRN+ состоит из двух микрокоманд:
УАЛ
КМО
СР1
СР2
СCМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00000
1
0
0
1
0
0
0
0
0
и
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
1
00000
0
0
0
1
1
1
0
0
0
Первая микрокоманда читает исходное (копируемое) бинарное изображение А×А×А из локальной памяти 54 по адресу, хранящемуся в регистре 14, в регистры 55 процессоров 36. Вторая микрокоманда записывает прочитанное изображение в память 54 по адресу, хранящемуся в регистре 15. После копирования содержимое регистров 14 и 15 увеличивается на 1.
Микропрограмма команды TRN а2, а1 отличается от микропрограммы команды TRN+ только тем, что перед выполнением двух последних микрокоманд происходит чтение адресов а1, а2 из памяти 18 в регистры 14 и 15 соответственно.
3
Микропрограмма команды TRNV а2, а1 отличается от микропрограммы команды TRN а2, а1 тем, что предпоследнее микрослово имеет бит ССМ=1. В результате по переднему фронту С2 сигнал CWR3 устанавливает триггер-флаг 32 в лог. 1, записывает извлеченное содержимое локальной памяти 54 в одноразрядные регистры 57. После этого в узлах 39 и 40 начинается процесс формирования двух интегральных характеристик, отображающих геометрические особенности бинарного изображения А×А×А, хранящегося в А регистрах 57:
1) объема единичного содержимого бинарного изображения А×А×А (в узле 39);
2) кода заполнения бинарного изображения (КЗБИ) А×А×А (в узле 40).
Варианты конструкции сумматора 39 и формирователя 40 КЗБИ показаны на фиг.36. После окончания процесса формирования сигнал V (с выхода элемента 33 задержки) сбрасывает триггер 32 в лог. 0 (тем самым, сообщая процессору 7 о завершении процедуры формирования КЗБИ и кода значения объема) и записывает полученные коды в программно-адресуемые регистры 12 и 13.
Микропрограмма команды INE состоит из двух микрокоманд:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00001
1
0
0
0
0
0
0
0
0
и
УАЛ
КМО
СР1
CP2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
1
00001
1
0
0
1
0
0
0
0
0
При выполнении первой микрокоманды с приходом С2 читается первое изображение-операнд в регистры 55, а при выполнении второй микрокоманды по С2 читается второе изображение-операнд в регистры 56, затем С3 записывает изображение-результат выполненной теоретико-множественной операции (с выходов элементов 60 И-НЕ) в локальную память 54 по адресу второго операнда.
Микропрограмма команды INE+ отличается от INE тем, что после выполнения второй микрокоманды содержимое регистров 14, 15 увеличивается на 1.
Микропрограмма команды INE а2, а1 отличается от микропрограммы команды INE тем, что перед выполнением двух последних микрослов происходит чтение адресов а1, а2 из памяти 18 в регистры 14 и 15 соответственно.
Микропрограмма команды SBT отличается от команды INE кодом КМО=00010. В память 54 по адресу второго операнда записываются состояния выходов схем 61.
Микропрограмма команды SBT+ отличается от команды INE+ кодом КМО=00010.
Микропрограмма команды SBT а2, а1 отличается от команды INE а2, а1 кодом КМО=00010.
Микропрограмма команды NTE состоит из одной микрокоманды, поле управления БОХВИ которой содержит биты:
УАЛ
КМО
СР1
CP2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00110
1
0
0
0
0
0
1
0
1
2
При выполнении команды NTE с приходом СЗ состояние всех А входов матрицы 35 импульсом СЗП записывается в память 37 изображений по адресу АПИ, хранящемуся в программно-адресуемом регистре-счетчике 11. Одновременно сдвигается на шаг содержимое матрицы 35 по адресу, значение которого хранится в регистре 14. После записи содержимое регистра 11 сигналом +1а3 увеличивается на 1.
Команды типа ANG предназначены для высокоскоростного моделирования геометрических преобразований поворота трехмерных бинарных изображений на пространственные углы, некратные 90°.
Микропрограммы всех команд типа ANG состоят из одной микрокоманды, поле управления БОХВИ которой содержит биты:
УАЛ
КМО
CP1
CP2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
01000 (для АNG1) (00111+w - для ANGw)
1
0
0
1
0
0
0
0
0
w
w
По переднему фронту сигнала CWR1, поступающего с выхода подготовленной схемы 22 И, содержимое памяти 54(i,j,k) записывается в регистры 55(i,j,k) матрицы 35. По заднему фронту С2 память 54 переводится в режим записи (R/W=1). Каждый мультиплексор 59(i,j,k) кодом KMO=01000+w через подготовленный ключ 58(i,j,k) подключает к информационному входу памяти 54(i,j,k) выход регистра 55 (l,p,k) того процессора 36(l,p,k), чей кубик p(l,p,k) 1×1×1 куба А×А×А, повернутого на пространственный угол № w (характеризующийся значениями: (φ=0, θ=θ≠0, ψ=ψ≠0, где φ - угол собственного вращения, θ - угол нутации, ψ - угол прецессии) вокруг своего центра, отображается в кубик p(i,j,k). По переднему фронту синхросигнала С3 сигнал WR записывает бинарное изображение, хранящееся в регистрах 55, в узлы 54 по адресу, указанному в регистре 14.
баз
баз
Все дискретизирующие отображения, моделирующие повороты на углы, некратные 90° (команды ANG1÷ANGw, моделирующие пространственные повороты фрагментов А×А×А; команды типа SH (когда КУВМ=0011), моделирующие повороты слоев A×A×1), а также отображения, моделирующие повороты фрагментов А×А×А на углы, кратные 90° (команды типа RAX, RAY, RAZ), образуют функционально полный базис М дискретизирующих отображений (ДО), позволяющий с высокой скоростью промоделировать любой поворот бинарного изображения А×А×А вокруг центра этого изображения при помощи суперпозиции отображений, входящих в указанный базис. Значение w и состав отображений, входящих в конкретный М, в зависимости от производительности и стоимости устройства могут отличаться для различных вариантов заявленного устройства.
Выбор аппаратно-реализуемого базиса ДО поворота состоит в следующем. Свяжем с неподвижным изображением А×А×А неподвижную декартовую систему координат Oxyz, центр которой совпадает с центром неподвижного изображения, а оси параллельны ребрам формата этого изображения. С изображением А×А×А, произвольно вращающимся вокруг центра О, свяжем другую декартовую систему координат Ox'y'z' (фиг.5-в, фиг.7-б), оси которой параллельны ребрам формата вращаемого изображения и также проходят через центр О. Пусть i' - единичный вектор оси Ох'. Тогда при выполнении пространственных поворотов куба А×А×А вокруг центра О, характеризующихся произвольными значениями углов α и β, конец вектора i', восстановленного из центра О, будет перемещаться по поверхности сферы единичного радиуса (фиг.7-б).
Разобьем поверхность указанной сферы на 48 однотипных сегментов сферической поверхности (ССП). Для этого каждый участок поверхности сферы, отсекаемый отдельным октантом системы координат Oxyz, дополнительно рассечем еще на 6 однотипных ССП (фиг.7-а) тремя плоскостями, проходящими соответственно через оси Ox, Oy, Oz и расположенными под углом 45° к плоскостям Oxz, Oxy, Oxz соответственно. Полученные ССП имеют одинаковую площадь и переходят друг в друга при последовательном выполнении поворотов на 90° вокруг осей Ох, Oy, Oz (а также преобразований симметрии относительно плоскости Oxz).
баз
баз
Выберем один из 48 указанных ССП множество векторов i', чьи концы полностью покрывают данный ССП, соответствуют некоторому бесконечному множеству М' преобразований поворота. Это бесконечное множество М' поворотов моделируется в устройстве конечным множеством М (конечным спектром) дискретизирующих отображений (ДО). В устройстве для моделирования поворотов на углы, не являющиеся кратными 90°, аппаратно реализуются только ДО, входящие в указанное множество М (фиг.8). В простейшем варианте устройства («простейшем» по принципу реализации, а не по объему необходимых аппаратурных затрат) все ДО, образующие М, в полном составе входят в множество М дискретизирующих отображений, реализуемых в устройстве аппаратно (АДО). Однако множество М велико даже при небольшом разрешении А×А×А, что делает М в этом случае чрезвычайно большим, а данный вариант устройства трудно реализуемым на практике (хотя точность моделирования поворотов здесь достигается максимальной).
баз
баз
В заявленном устройстве только часть М входит в состав М. При этом с помощью АДО поворота первого типа (осуществляющих одновременный поворот всего содержимого бинарного изображения А×А×А) моделируются только наиболее часто используемые повороты в алгоритмах обработки, а с помощью АДО поворота второго типа (осуществляющих одновременный поворот содержимого только одного слоя А×А×1 бинарного изображения А×А×А) моделируются все остальные осевые повороты, входящие в М. На фиг.8(б) показан вариант формирования М. Здесь АДО поворота первого типа изображены в виде черных кружков на поверхности ССП, а АДО поворота второго типа - в виде светлых кружков на поверхности ССП. Представленные АДО поворота первого типа выбирались из условия равномерного распределения концов векторов i' (черных кружков) по поверхности ССП.
Разрешение реальных плоских и пространственных изображений многократно превышают разрешение процессорной матрицы 35 А×А×А . Поэтому поворот таких изображений (т.н. составных изображений) производится фрагментами (А×А×А или ) последовательно фрагмент за фрагментом. Как и в прототипе, перед поворотом выполняется расшивка исходного составного изображения (фиг.9-а,б; фиг.10) на отдельные фрагменты. Затем содержимое каждого фрагмента поворачивается вышеописанным способом (фиг.9-б; фиг.11-а), сдвигается (фиг.12, 13). Сдвинутые фрагменты повернутого расшитого составного изображения сшиваются в единое составное изображение (фиг.9, 10, 11, 12, 13). Каждый фрагмент сшитого изображения формируется путем объединения выделенных участков из ранее повернутых фрагментов расшитого изображения.
1
2
Работу узлов 41 ввода фотоизображений рассмотрим на примере варианта устройства с процессорной матрицей 35 формата 9×9×9. Световой поток, модулированный по освещенности, через оптическую систему (объективы, оптико-волоконный кабель) поступает на матрицу 119 из 27 ПЗС-приборов 120 (фиг.37). На каждый ПЗС-прибор 120 фокусируется свой участок 9×243 вводимого изображения 243×243. Каждый ПЗС-прибор 120 содержит 9 линеек фоточувствительных элементов по 243 элементов в каждой линейке. Каждая линейка имеет собственный регистр сдвига, поэтому с одного прибора 120 одновременно снимается 9 аналоговых сигналов. С 27 приборов 130 одновременно снимается 243 аналоговых сигнала, соответствующих горизонтальной строке вводимого изображения. ПЗС-приборы 120 объединены в группы по 3 прибора 120 в каждой группе, каждой группе приборов 120 соответствует 9 аналого-цифровых 8-разрядных преобразователей 122. Подключение выходов ПЗС-приборов 120 к входам АЦП-преобразователей 122 осуществляется с помощью коммутаторов 121. Подключение выходов АЦП-преобразователей 122 к входам процессорной матрицы 35 осуществляется с помощью мультиплексоров 123 и ключей 124. Управляет коммутаторами счетчик 125, при этом младшая часть счетчика (0…2 разряды) управляет коммутаторами 123, старшая часть счетчика (3, 4 разряды) управляет коммутаторами 121. Кроме того, третьим состоянием выходов ключей 124 управляет выход дешифратора 45 (У6 - для узла 41, У7 - для узла 41).
Перед вводом фотоизображения в регистре 11 устанавливается код АПИ=N0 и анализируется сигнал готовности (ГВВИ=1) узлов 41 к вводу фотоизображения. Если ГВВИ=1, ввод фотоизображения инициируется командой FTI, состоящей из микрокоманды:
УАЛ
КМО
СР1
СР2
ССМ
ЗЛП
+a1
+а2
+а3
НУ
ЗПИ
0
00110
1
0
0
0
0
0
0
1
0
С приходом С2 сигнал СНУ устанавливает ГВВИ=0, производит чтение ПЗС-линеек, после чего схема 129 сдвигает прочитанное содержимое на выход ПЗС-приборов 120. Если У6(У7)=1, сигналы с выходов коммутаторов 124 поступают на входы матрицы 35. Если ГВВИ=0, последующая команда NTE записывает (по переднему фронту WR) информацию с входов матрицы 35 в первый слой А×А×1 матрицы 35 по адресу, хранящемуся в регистре 14. По заднему фронту сигнала СЗП добавляется 1 в счетчик 125 и содержимое на выходах ключей 124 меняется. После передачи всего фотоизображения сигнал ГВВИ устанавливается в 1 и ввод фотоизображения прекращается.
Обработка двухмерных и трехмерных числовых матриц
3
3
Массив чисел, состоящий из А n-разрядных двоичных чисел, оперативно хранится в матрице 35 в виде n адресуемых бинарных изображений А×А×А. Каждое такое бинарное изображение состоит только из бит-разрядов (с одинаковым числовым весом) всех Адвоичных чисел данного массива. Поскольку каждый процессор матрицы А×А×А имеет собственное одноразрядное АЛУ с двумя одноразрядными регистрами (55, 56) операндов и одноразрядную локальную память (54) с произвольной выборкой, он в состоянии самостоятельно обрабатывать числовые данные с высокой степенью параллелизации. Продемонстрируем это на примере дифференцирования плоских изображений.
Дифференцирование плоских изображений включает в себя 2 основные процедуры:
- передачу значений яркости соседних пикселей (из памяти 54 соседних процессоров 36) в анализируемый процессор 36;
- выполнение операции суммирования над двоичными дополнительными кодами переданных значений.
i
i
При этом формирование кода суммы двух многоразрядных двоичных кодов осуществляется последовательно разряд за разрядом, начиная с младших разрядов. Вычисление значений суммы L и переноса P для каждого i-го разряда осуществляется по формулам:
i
i
i
i
i
i-1
P=x∧y∨(x⊕y)∧p;
i
i
i-1
i
i
i-1
xi
r1
r1
xi
r2
r2
i
i
где x, y - i-e разряды слагаемых, p - перенос из младшего (i-1) разряда в i-й разряд. Перед суммированием разряды x, y и перенос p размещаются в памяти 54 того процессора 36, где будет выполняться суммирование (фиг.27). Для этого в локальной памяти процессора выделяется четыре рабочие ячейки. Перенос данных из одного адреса локальной памяти в другой адрес (например, a→a) осуществляется при помощи команды TRNA a2, a1 (TRNA a, a), функция отрицания выполняется с помощью команды INEA a, a, функция запрета (например, y/x) выполняется с помощью команды SBTA а2, а1.
7
0
7
0
12
0
7
0
7
0
12
0
12
0
7
0
7
0
12
0
7
0
12
0
7
0
7
0
7
0
12
0
7
0
12
0
В локальной памяти 54 каждого процессора 36 перед дифференцированием резервируются участки для хранения: кода (х…х) яркости собственного пикселя; кода у…у яркости соседнего пикселя; кода L…L формируемого лапласиана. Пусть маска весов вычисляемого лапласиана имеет вид, представленный на фиг.27. Вычисление лапласиана начинается с умножения (путем многократного суммирования) кода х…х на коэффициент 24 (на этом этапе для хранения промежуточных слагаемых используется участок у…y). Затем формируется дополнительный код L…L отрицательного значения полученного произведения (инвертированием разрядов L…L и добавлением 1). Далее одношаговым 20-сдвигом код яркости ближайшего соседа передается в участок у…у, после чего производится суммирование кода у…у с кодом L…L (с учетом веса, равного 4). Таким же образом производится добавление кодов x…х остальных трех ближайших соседей в формируемую сумму L…L. Перед суммированием код яркости удаленного соседа сначала поразрядно переносится (2D-сдвигом) в участок у…у ближайшего соседа-процессора, а затем (поворотами на 90°, адресными переносами и 2D-сдвигом) в участок у…у процессора, расположенного в центре маски. По окончании переноса перенесенный код у…у суммируется с кодом L…L. Аналогичным образом производится добавление кодов x…х остальных трех удаленных соседей в формируемую сумму L…L. Описанная процедура дифференцирования осуществляется параллельно по всем процессорам матрицы А×А×А. Крайние процессоры матрицы А×А×А получают информацию о соседях из буферной памяти 49 (или памяти 37 изображений).
Управление автономным роботом
Заявленное устройство является лишь составным компонентом автономного робота, в которое не входят ни «скелет» робота, ни его двигатели, ни его редукторы. Разграничительная линия между заявленным устройством и остальной частью автономного робота проходит по сенсорным датчикам робота и датчикам его сервоприводов включительно. Сопряжение заявленного устройства с конкретной конструкцией робота состоит в определении:
- размерности процессорной матрицы, исходя из требований к вычислительной производительности робота и к его габаритным размерам;
- необходимого числа контроллеров 3, 4, исходя из числа устанавливаемых на роботе сенсорных матриц и сервоприводов;
- в согласовании масштабных коэффициентов показаний датчиков, АЦП и ЦАП.
Заявленное устройство может быть применено для управления автономными роботами любого назначения, построенными на базе различных кинематических схем (колесными, летающими, двуногими, шестиногими роботами и др.). Принципы использования заявленного устройства для управления автономным роботом поясним на примере управления роботом-гуманоидом (т.е. роботом, форма тела, характер движений и органы чувств которого имитируют форму тела, характер движений и органы чувств человека). Выбор робота-гуманоида в качестве демонстрационного объекта управления объясняется:
- наглядностью показа преимуществ заявленного устройства для управления сложной автономной робототехнической системой;
- универсальностью робота-гуманоида вследствие принципиальной возможности использования его для автоматизации большого числа видов человеческой деятельности;
- возможностью применения известной анатомической терминологии для описания отдельных узлов и деталей автономного робота.
Форма тела робота, способ перемещения робота и его частей в пространстве, размещение органов чувств на поверхности тела робота в значительной степени определяются выбранной кинематической схемой робота («скелетом робота»). Кинематическая схема робота-гуманоида представляет собой систему звеньев, шарнирно связанных между собой. Кинематические схемы автономных роботов, конструкция их сервоприводов могут быть весьма разнообразны. Для упрощения изложения принципы использования заявленного устройства продемонстрируем на примере управления роботом-гуманоидом, все шарниры («суставы») которого цилиндрические, а все сервоприводы имеют однотипную конструкцию, представляющую собой электрически управляемую червячную передачу, вал червяка которой жестко связан с валом электродвигателя. При этом входным параметром сервопривода будет значение тока электродвигателя, а выходным параметром - значение угла поворота червячного колеса. На фиг.4 показан вариант «скелета» робота-гуманоида, удовлетворяющий данным условиям.
В процессе своего функционирования робот решает некоторую поставленную перед ним стратегическую целевую задачу (СЦЗ). Под автономностью робота здесь понимается не способность робота вырабатывать саму СЦЗ, а способность робота самостоятельно находить пути решения уже поставленной ему СЦЗ в зависимости от текущего состояния окружающей обстановки и текущего внутреннего состояния робота. Примером такой СЦЗ может быть задача поиска трехмерного предмета заданной геометрической формы, заданной окраски и размеров в некоторой области пространства (сведения о геометрической форме которой и характере ее заполнения объектами априорно отсутствуют), захвата найденного предмета и переноса его в указанное место.
Прием сенсорной информации
Из характера СЦЗ, решаемых автономным роботом, вытекает, что процесс функционирования автономного робота невозможен без постоянного мониторинга внутреннего состояния робота и состояния окружающего пространства. При этом чем чаще производится такой мониторинг (т.е. опрос и анализ состояния датчиков), тем точнее машинные модели, синтезированные устройством управления, отображают реальное состояние самого робота и состояние области пространства, окружающей робота. Заявленное устройство позволяет значительно сократить период мониторинга всех датчиков робота благодаря распараллеливанию процесса передачи сенсорной информации и распараллеливанию процесса анализа этой информации при условии применения в роботе сенсорных датчиков следующего типа:
1) датчиков, имеющих цифровой двоичный выход (разрядностью не больше А) и входящих в состав регулируемых сервоприводов;
2) пороговых датчиков в составе сенсорных матриц А×А. К первому типу относятся датчики, ответственные за формирование кода результата регулирования сервоприводов (например, угла поворота червячного колеса редуктора). Второй тип датчиков введен в состав заявленного устройства специально для очувствления больших участков поверхностей робота и описывается ниже.
Полная сенсорная матрица (СМ) 5 состоит (фиг.2) из:
1) квадратной матрицы А×А пороговых датчиков (Di j) 75 (фиг.2), содержащей А строк и А столбцов;
2) А А-входовых схем 76 ИЛИ (по одной схеме 76 на одну строку СМ 5), каждый i-й вход (1≤i≤А) j-й схемы 76 ИЛИ (1≤j≤А) соединен с выходом компаратора 79i j.
3) А (А+1)-входовых мультиплексоров 77.
Каждый пороговый датчик (ПД) 75 включает в себя датчик 78 (Д) и двухвходовый компаратор 79, первый вход которого соединен с выходом датчика 78, а на второй вход подается уровень заданного порогового сигнала с ЦАП 74. Выходом ПД 75 является выход его компаратора 79, принимающий одно из двух логических состояний («0» - когда ПД не возбужден, «1» - когда ПД возбужден). Текущее состояние СМ 5 характеризуется состоянием (1, 0) выходов всех ее ПД 75 и может быть представлено в виде бинарного изображения А×А. Объем информации на выходе датчиков 78 всех СМ 5 робота может быть чрезвычайно большим, а скорость передачи данных от СМ в матрицу 35 А×А×А не может быть высокой из-за удаленности СМ 5 от матрицы 35 А×А×А и последовательного характера передачи. В то же время в целях обеспечения безопасности робота скорость обнаружения возбужденного датчика на «коже» робота и определение его координат должна быть высокой. Для преодоления этого противоречия в состав каждой СМ 5 введены средства предварительной местной обработки данных, а именно: компараторы 79 и А-входовые схемы 76 ИЛИ. Компаратор преобразует значение уровня выхода датчика 78 в информацию, отражающую только факт превышения (или непревышения) датчиком 78 заданного порога возбуждения. Каждая А-входовая схема 76 ИЛИ преобразует информацию о преодолении заданного порога возбуждения каждым датчиком 78 целой строки СМ 5 в информацию, отражающую только факт превышения хотя бы одним из этих датчиков этого порога, поэтому при наличии в j-й строке хотя бы одного «возбужденного» ПД (лог.1), на выходе j-й схемы 76 ИЛИ формируется «1». Двоичный код, снимаемый с выходов всех А схем 76 ИЛИ сенсорной матрицы, назовем кодом возбуждения сенсорной матрицы (КВСМ). Мультиплексоры 77 в зависимости от значения кода РВ, поступающего на их управляющие входы, подключают либо КВСМ, либо выходы ПД 75 одной из строк СМ 5. При полном отсутствии информации о состоянии СМ первым считывается КВСМ этой СМ. Если полученный КВСМ недостаточен для выработки решения о последующих действиях робота и требуется более подробная информация о характере возбуждения СМ, программно изменяются коды РВ этой СМ и при последующих сервопрерываниях передаются конкретные запрашиваемые возбужденные строки СМ. В результате появляется возможность передавать не весь массив данных от СМ, а только его наиболее интересную («возбужденную») часть. Плотность покрытия очувствленного участка (ОУ) датчиками, принадлежащими одной СМ (т.е. сенсорное разрешение ОУ), может быть различной. Например, на пальцах-схватах, выполняющих помимо функции механического захвата также и функции исследовательского зонда, плотность размещения датчиков СМ может значительно превышать плотность датчиков СМ на других частях «руки» (фиг.16). Если площадь ОУ не позволяет расположить все датчики СМ, «лишние» датчики 78 не устанавливаются, а выходы их соответствующих компараторов 79 принудительно соединяются с лог.0.
2
2
2
Обмен информацией между СМ 5 и процессорной матрицей 35 происходит следующим образом (фиг.2). Коды управления всеми А сенсорными матрицами 5 формируются в матрице 35 одновременно. Перед передачей их в сенсорные матрицы 5 на исполнение двоичные разряды кода управления для каждой отдельной СМ располагаются в памяти 54 (по некоторому адресу а1) соседних процессоров 36 матрицы 35 последовательно друг за другом в направлении Ох (от младших разрядов к старшим). Затем эти А кодов управления последовательно (разряд за разрядом) передаются в сдвиговые регистры 90 своих центральных контроллеров 44. Для этого устанавливается код КУВМ=0, выходы матрицы 35 соединяются с ее входами, в регистре 11 устанавливается соответствующий адрес АПИ (N1≤АПИ<N2), А раз выполняется команда NTE и импульсами «СЗП» (задний фронт) коды управления передаются из матрицы 35 в сдвиговые регистры 90. После заполнения всех регистров 90 и 80 информацией из матрицы 35 триггер 105 регистра 17 устанавливается в 1 и запускается формирователь 6. Блок 1 управления продолжает выполнять ранее прерванную программу. Импульсы генератора 98 формирователя 6 (фиг.3) проходят на счетный вход «+1» младшего разряда счетчика 99. С выхода 1-го разряда счетчика 99 снимаются тактовые импульсы ТИ. Память 100 представляет собой постоянное запоминающее устройство с произвольной выборкой для хранения двоичных слов. С 0-го по А-1 адрес в ней записан код U=U0=(000). Код U=U0 поступает на входы всех дешифрирующих схем 104. На импульсный вход схем 104 поступают импульсы Т с выхода схемы 103 И. Импульсы с выхода Т0 схемы 104 (фиг.2) поступают на сдвиговые управляющие регистры 90, 71. С приходом А импульсов Т0 коды управления СМ переместятся из регистров 90 в соответствующие регистры 71. Далее с выхода памяти 100 считывается код U=1, после чего с приходом импульса Т1 переданный код управления из регистра 71 запишется в управляющий регистр 72. Код управления СМ состоит из двух частей:
1) РВ - кода режима вывода данных;
2) УЧ - кода значения порога чувствительности СМ.
2
Код РВ поступает на управляющие входы мультиплексоров 77, код УЧ - на вход преобразователя 74, выход которого соединен со всеми компараторами 79 данной СМ 5. С приходом импульса ТЗ сигналы с выходов мультиплексоров 77 запишутся в регистр 70. После перехода в состояние U=U4=(100) импульсы Т4, повторяющиеся А раз, перенесут данные из местных контроллеров 4 в регистры 89 соответствующих контроллеров 44. После передачи последнего разряда сбрасываются счетчик 99 и триггер 105, в блок 1 управления подается запрос на прерывание (сервопрерывание). В случае разрешения этого прерывания производится запись содержимого регистров прерванной программы в стек блока 1, а управление передается вектору сервопрерывания. Программа сервопрерывания устанавливает КУВМ=9, в регистр 14 записывается адрес локальной памяти 54, куда будет производиться запись принятых данных. Затем А раз выполняется команда NTE, после чего данные из регистров 89 импульсами «СЗП» (задний фронт) переместятся в матрицу 35 А×А×А.
Управление сервоприводами робота
2
2
2
После анализа введенной сенсорной информации устройство (в соответствии с текущим этапом решения СЦЗ) принимает решение о действиях робота в следующий момент времени. Если это решение связано с необходимостью начать (или продолжить) механическое движение робота, в устройстве вырабатываются коды управляющих воздействий и передаются на исполнение в сервоприводы робота. Вариант конструкции сервопривода включает в себя: двигатель 106, редуктор (состоящий из червяка 107 и червячного колеса с датчиком 108 углового положения этого колеса), цифроаналоговый преобразователь 68, аналого-цифровой преобразователь 69. Регулирование сервоприводами осуществляется при помощи процессорной матрицы 35 во время специальных программных прерываний (сервопрерываний) блока 1 по запросу, поступающему из регистра 17. После выполнения сервопрерывания в матрице 35 А×А×А формируются коды воздействия (KB) для управления А сервоприводами робота (как сигнал рассогласования между заданным значением и фактическим значением). Перед передачей их на исполнение в сервоприводы разряды каждого А-разрядного KB располагаются в памяти 54 (по некоторому адресу а1) соседних процессоров 36 последовательно один за другим в направлении Ох матрицы 35 (от младших разрядов к старшим). Затем эти А кодов воздействия последовательно (разряд за разрядом) передаются в сдвиговые регистры 80 кода воздействия своих центральных контроллеров 43. Для этого устанавливается код КУВМ=0, выходы матрицы 35 соединяются с ее входами, устанавливается соответствующий адрес АПИ (N3≤АПИ<N4), А раз выполняется команда NTE, и импульсами «СЗП» (задний фронт) коды воздействия передаются из матрицы 35 в сдвиговые регистры 80, после чего триггер 105 регистра 17 устанавливается в 1, и запускается формирователь 6. Импульсы с выхода Т0 схемы 104 поступают на сдвиговые регистры 80 и 64. С приходом А импульсов Т0 коды воздействия переместятся из регистров 80 в регистры 64. По импульсу Т1 переданный код воздействия из регистра 64 запишется в регистр 60 и после цифроаналогового преобразования начнет воздействовать на двигатель сервопривода (U=U2). С переходом кода U в состояние U=U3 формируется импульс Т3, который записывает (параллельно по всем разрядам) текущие коды результата с выходов АЦП 69 в сдвиговые регистры 65 кода результата. После перехода в состояние U=U4=(100) импульсы Т4, повторяющиеся А раз, перенесут коды результата из регистров 65 в соответствующие регистры 81. После передачи последнего разряда счетчик 99 сбрасывается, сбрасывается и триггер 105, в блок 1 управления подается запрос на прерывание (сервопрерывание). В случае разрешения этого прерывания производится запись параметров и значений регистров прерванной программы в стек блока управления, управление передается вектору данного прерывания. Программа сервопрерывания устанавливает КУМВ=8, записывает адрес памяти 54, куда будет производиться запись полученных кодов результата, и выполняет А раз команду NTE, после чего коды результата из регистров 81 переписываются в матрицу 35 А×А×А (или в память 37). Далее происходит сравнение полученных значений кодов результата с их заданными значениями, вычисляется их разность и по полученным разностным сигналам формируются новые коды воздействия. Заданные и текущие коды результата (например, данные об угловом положении червячных колес) временно сохраняются для построения по ним текущей геометрической модели робота. Затем сформированные коды воздействия передаются в контроллеры 43 вышеописанным способом. Далее блок 1 управления запускает новый цикл формирователя 6 и продолжает выполнять ранее прерванную программу.
Управление конечностями робота
i
Из кинематической схемы робота-гуманоида выделим группы связанных звеньев, имеющих общее функциональное назначение («рука», «нога», «шея», «ступня», «спина» и т.п. - фиг.15). Шарниры в таких группах звеньев представляют собой анатомические аналоги суставов скелета человека (локтевой сустав, плечевой сустав и т.п.). Двигатели сервоприводов робота-гуманоида выполняют функцию мышц человека. Использование заявленного устройства для управления системой сервоприводов продемонстрируем на примере управления «рукой» робота-гуманоида, состоящей из следующих шарнирно-связанных звеньев (фиг.18): верхнего плеча (1-е звено «руки»), малого плеча (2-е звено), большого плеча (3-го звена), предплечья (4-е звено), запястья (5-е звено), пальца-схвата (6-е звено). Все шарниры между звеньями цилиндрические и оборудованы сервоприводами, ось червячного колеса сервопривода совпадает с осью шарнира. При этом 1-е звено шарнирно связано с «туловищем» робота (рамой приборного отсека), которое принимаем за неподвижное. Последнее звено (палец-схват) имеет только один межзвенный шарнир. На поверхности звеньев установлены осязательные датчики (динамометрические, температурные и другие), выполняющие функцию «кожи» конечности (фиг.16). С выхода каждого i-го сервопривода, ось червячного колеса которого совпадает с осью первого шарнира i-го звена, снимается код значения угла (α) поворота i-го звена относительно (i-1)-го звена.
Определение текущей геометрической формы скелета робота
i
i
i
i
Геометрическая форма скелета робота определяется угловым положением его шарнирно-связанных звеньев и длиной этих звеньев. Рассмотрим зависимость между данными, снимаемыми с выходов сервоприводов, и пространственным положением звеньев на примере одной конечности робота. Свяжем с условно неподвижным «туловищем» робота декартовую систему координат Oxyz, плоскость yOz которой перпендикулярна плоскости 1-го червячного колеса (фиг.18, 19), а ось Оу совпадает с осью вращения этого колеса. С каждым i-м звеном свяжем подвижную декартовую систему координат OXYZ так, чтобы:
1
2
3
4
5
6
i
i
i
i
i
i
1) при углах α=α=α=α=α=α=0 направляющие векторы осей OX, OY, OZ всех звеньев «руки» совпадали с направляющими векторами осей Ох, Оу, Oz соответственно (фиг.19-а);
i
i
i
i
2) оси вращения обоих шарниров i-го звена пересекались, были взаимно перпендикулярными и направленными вдоль осей OX, OY (фиг.19-б).
i
i
i
0
i
0
i
i
i
Пусть OK - прямая, вдоль которой пересекаются плоскости Оху и OXY. Направляющий вектор ОК для этой прямой находится из векторного произведения OK=k×k (где k - единичный направляющий вектор оси Oz; k - единичный направляющий вектор оси Oz).
i
i
i
i
i
i
1
2
i-1
i
i
i
i
i
Пространственное положение i-го звена относительно Oxyz характеризуется координатами точки O и угловым положением OXY относительно O. Поскольку расстояние L между шарнирами на каждом i-м звене есть величина постоянная, то пространственное положение звеньев конечности полностью определяются значениями углов α,α,…,α,α. В свою очередь, угловое положение OXY относительно O определяется тремя углами Эйлера:
i
i
i
1) углом φ собственного вращения (углом между ОК и осью OX);
i
2) углом ψ прецессии (углом между ОК и осью Ох);
i
i
0
3) углом нутации θ (углом между k и k).
0
0
0
0
i
i
i
i
i
0
i
i
i
1
2
i-1
i
i
i-1
Так как k, m известны (k={0,0,1}, m={1,0,0}), то для определения φ, ψ, θ необходимо вычислить координаты векторов k, m (где m, m - единичные направляющие векторы осей Ох и OX соответственно) по текущим значениям α, α,…α,α. Один из алгоритмов вычисления k состоит в следующем. Пусть ось вращения (i-1)-го звена (общая с i-м звеном) и вектор k расположены в плоскости, описываемой уравнением
i-1
i-1
i-1
i-1
A x+B у+C z+D=0
i-1
i-1
i-1
i-1
i-1
i-1
i-1
i
i-1
i-1
i-1
i-1
(A, B, C и координаты x,y,z вектора k известны). Тогда поворот i-го звена на угол α относительно (i-1)-го звена будет осуществляться параллельно плоскости (фиг.19-в), проходящей через точку О (0,0,0) перпендикулярно плоскости A x+B у+C z+D=0 и описываемой уравнением [11, стр.162 ]:
i
i-1
i-1
i-1
i-1
i
i-1
i-1
i-1
i-1
i
i-1
i-1
i-1
i-1
Следовательно, при повороте i-го звена координаты вектора-нормали плоскости вращения будут: A=Cy-Bz; B=Az-Cx; C=Bx-Ay
i
i
i
После поворота ось OZ займет новое положение, характеризующееся вектором k. При этом выполняются равенства:
i
i
i
i
i
0
0
(где x, у, z - координаты единичного вектора k). Решая совместно уравнения (8), (9), (10), найдем координаты вектора k. Если учесть, что k={0,0,1}, m={1,0,0}, то:
0
i
0
i
0
i
0
i
0
i
0
i
i
i
i
0
i
i
ОК={уz-zy, zx-хz, хy-уx}={-y, x, 0}; θ=arccos zz=arccos z;
i
0
i
0
i
i
ψ=arccos (уz-zy)=arcos (-y).
i
i
i
1
2
i-1
i
i
i
1
3
5
Координаты вектора m вычисляются аналогичным образом, но в отличие от k, положение m зависит не от всех межзвенных углов (αα,…α,α), а только от тех, при которых поворот осуществляется вокруг осей параллельных оси OY (для случая, изображенного на фиг.19-в, - это нечетные углы α, α, α…).
i
i
i
i
i
0
0
1
i
Алгоритм вычисления углов Эйлера для каждого звена «руки» состоит в последовательном вычислении k, m, φ, ψ, θ, начиная с 1-го звена (по известным параметрам k, m, α) и заканчивая последним звеном конечности. Указанный алгоритм реализуется в блоке 1 управления, для этого данные об углах α последовательно передаются из блока 2 в блок 1 посредством регистра 16.
Построение геометрической модели тела робота
В процессе функционирования робот должен контролировать положение своих частей тела относительно друг друга, а также относительно окружающих его предметов. В заявленном устройстве такой контроль осуществляется путем сравнения пространственного положения текущей геометрической модели тела робота (ГМТР) с пространственным положением текущей геометрической модели области, окружающей тело робота (ГМОО). Если ГМТР строится по данным, получаемым от внутренних датчиков (от датчиков сервоприводов; датчиков, имитирующих вестибулярный аппарат), и имеющемуся описанию геометрии отдельных частей робота, то ГМОО строится исключительно по данным, получаемым от внешних датчиков (видеодатчиков; датчиков, имитирующих осязание и т.п.). При этом части робота, видимые или осязаемые им, отражаются и в ГМТР, и в ГМОО, что может использоваться роботом для самотестирования отдельных агрегатов и функций робота.
i
i
i
i
i
i
i
Для построения ГМТР знаний о длине (L) шарнирно-связанных звеньев робота и их текущих углов Эйлера (φ, ψ, θ) недостаточно, поскольку эти параметры отражают текущую геометрию лишь «скелета» робота. Для того чтобы «скелет оброс мясом», необходимы дополнительные сведения о расположении поверхностных точек каждого i-го звена относительно OXY. Если геометрическая форма внешней поверхности звена неизменна, ее описание заносится в постоянную память устройства и используется в дальнейшем для построения текущих ГМТР. Принцип построения текущей ГМТР в виде одноцветного содержимого бинарного 3D-изображения из 3D-пиксельных моделей его частей тела (фиг.20-б) по текущей геометрической форме «скелета» робота (фиг.21-б) показан на фиг.21-в. От выбора разрешения ГМТР и ГМОО зависит не только точность геометрического моделирования объектов, но и значение максимально-допустимой скорости перемещения робота и его частей в пространстве. Стремление увеличить разрешение ГМТР и ГМОО может привести к такому увеличению времени построения ГМТР и ГМОО, когда эти синтезируемые модели просто не будут успевать за изменениями реальных (моделируемых) объектов, что приведет к несоответствию реального объекта с его машинной моделью и, в итоге, к потере управляемости роботом. В то же время выполнение роботом мелких высокоточных видов работ (например, ощупывание и захват мелких предметов пальцами-схватами и т.п.) невозможно без высокоточного моделирования быстро перемещающихся мелких частей, точность описания которых в ГМТР и ГМОО не может являться приемлемой. При выполнении таких видов работ устройство использует геометрическую модель части тела робота (ГМЧТР) и геометрическую модель области, окружающей часть тела робота (ГМЧОО), разрешение которых совпадает с разрешением ГМТР и ГМОО, но моделируемая область пространства у которых меньше, чем у ГМТР и ГМОО. На фиг.21-а изображен пример ГМЧТР, предназначенной для управления «пальцами» и «кистью руки» робота.
Построение геометрической модели области, окружающей робота
Робот, автономно перемещающийся в пространстве в реальном масштабе времени, во избежание столкновения с препятствиями должен быстро и правильно строить ГМОО (или ГМЧОО), выбирать траекторию своего движения, корректировать исходную ГМОО (или ГМЧТР) по данным, получаемым от сенсорных датчиков. Обычно построение ГМОО связывают с обработкой видеоинформации. Однако видеоинформация не может быть единственным, а главное надежным источником информации об окружающей обстановке для автономного адаптивного робота из-за:
- возможности построения неправильной ГМОО вследствие оптических эффектов (зеркального отражения, бликов, затенения, миражей, отсутствия освещения или, наоборот, слишком яркого освещения и т.п.),
- большого времени построения ГМОО по видеоизображениям;
- возможности отказа системы технического зрения.
Указанные факторы могут стать причиной непредсказуемых (а потому опасных) столкновений робота с препятствиями или привести к полной потере ориентации робота в окружающем пространстве. Более надежным источником информации об окружающем мире (хотя менее «дальнобойным» и информативным) является информация, поступающая от датчиков робота, действующих на нулевых (или очень малых) расстояниях до исследуемого объекта (назовем такие датчики «осязательными» или «тактильными»). К числу осязательных датчиков можно отнести динамометрические датчики (для исследования упругих свойств окружающей среды), температурные датчики (для исследования температурных полей), магнитные (для исследования магнитных полей). Сканируя («ощупывая») окружающее пространство системой таких датчиков, размещенных на управляемой конечности робота, автономный робот способен строить модели окружающих предметов, отличающиеся высокой степенью достоверности, и на основе этих моделей планировать маршрут своего дальнейшего продвижения, а также распознавать объекты даже при полном выходе из строя системы технического зрения робота. Метод ощупывания может применяться в качестве вспомогательного метода при самотестировании роботом своих различных систем (системы управления сервоприводами, системы ориентации, системы технического зрения и др.). Способность строить модель окружающих объектов средствами осязания, безусловно, поднимет живучесть автономного робота, расширит сферу его применения.
Определение координат возбужденных участков «кожи» конечности
д
д
д
i
i
i
i
i
i
Для выработки правильной ответной реакции робота на соприкосновение его тела с внешними предметами необходимо знать координаты точек соприкосновения. Если соприкасающийся участок тела робота очувствлен, вопрос об определении координат точки соприкосновения сводится к вопросу об определении координаты возбужденного тактильного датчика. Для определения текущих координат (х,у,z) тактильного датчика Д относительно Oxyz, жестко закрепленного на перемещающемся i-м звене конечности, помимо знаний о пространственном положении OXY относительно Oxyz необходимо иметь информацию о координатах этого датчика относительно OXY. Варианты размещения «кожных» датчиков СМ на «предплечье», «кисти» и губках «пальцев-схватов» показаны на фиг.16. Здесь наибольшее число датчиков расположено на губке «пальца-схвата» (две полные CM - фиг.5-б; и две неполные СМ - фиг.5-в), т.к. губки используются в качестве исследовательских зондов при обследовании геометрических, упругих, температурных и других свойств захватываемых объектов.
Использование заявленного устройства для построения ГМОО методом «ощупывания» продемонстрируем на примере исследования роботом сопротивляемости среды механическому перемещению одной из его конечностей. Такое сопротивление может быть выявлено двумя способами: 1) по неисполнению отдельными сервоприводами конечности команд перемещения; 2) по возбуждению динамометрических датчиков 78, установленных на внешней поверхности перемещаемой конечности. Первый способ позволяет быстро определить факт существования сопротивляемости и его значение. Однако координаты и геометрические параметры препятствия проще и точнее определить путем применения второго способа исследования. Отсюда вытекает следующий алгоритм сканирования окружающего пространства очувствленной конечностью:
1) по текущему положению конечности и имеющимся данным об еще неисследованных областях окружающего пространства выбирается начальная траектория перемещения конечности, которая позволила бы охватить наибольший участок этой неисследованной области;
2) конечность начинает перемещаться в соответствии с выбранной траекторией до момента либо ухудшения управляемости одного или нескольких сервоприводов перемещаемой конечности (это принимается за признак того, что конечность наткнулась на препятствие), либо возбуждения тактильных датчиков конечности;
3) при наличии сопротивления и отсутствии возбужденных тактильных датчиков делается вывод о том, что контакт с внешним объектом находится на неочувствленном участке звена конечности; выбирается локальная траектория перемещения конечности для выхода ближайшего очувствленного участка в зону предполагаемого контакта; конечность перемещается по этой новой траектории до положения, когда число компактно-размещенных возбужденных датчиков становится наибольшим;
4) имеющаяся модель ГМОО (фиг.20-а) обновляется с учетом новых полученных данных, после чего осуществляется переход к п.1.
5) указанные операции повторяются до полного исчезновения неисследованных областей.
Обеспечение устойчивости робота
Чтобы обеспечить безопасность робота, прием данных, безусловно влияющих на его безопасность, выполняется в первую очередь и в каждом цикле опроса датчиков, сопровождается немедленным проведением анализа введенных данных на угрозу безопасности. Это обеспечивает максимальный резерв времени (отсчитываемый с момента обнаружения угрозы) для оперативного реагирования на ситуации, угрожающие жизнедеятельности робота (например, незапланированное столкновение с внешним объектом, потеря устойчивости у двуногого робота и т.п.). В случае обнаружения угрозы своей безопасности робот прекращает прием информации, являющейся лишней для принятия решения о ликвидации обнаруженной угрозы, и входит в точку программы выхода из угрожающей ситуации. При отсутствии угроз прием и анализ сенсорных данных проводятся в полном объеме (штатно). В случае дефицита памяти (локальной памяти или памяти изображений) сразу после приема массива данных, достаточных для проведения анализа отдельной подсистемы робота (или фрагмента окружающей обстановки и др.), этот анализ выполняется, после чего дефицитная область памяти освобождается для приема других данных. Время выполнения такого анализа должно быть скоротечно во избежание катастрофических потерь входной информации. В случае если объем данных велик, а анализ ее требует больших затрат времени (например, ввод и обработка видеоизображений), то ввод и анализ такой входной информации выполняется за несколько циклов опроса.
Принцип использования заявленного устройства для выявления и ликвидации угрозы жизнедеятельности робота рассмотрим на примере выявления и ликвидации угрозы потери устойчивого равновесия. Один из способов контроля устойчивости робота состоит в размещении одиночных динамометрических датчиков по периметру ступней робота (между плоскостью жесткой ступни и плоскостью гибкой подошвы - фиг.22-г,д). Контроль устойчивости робота при стоянии на одной ноге заключается в периодической проверке соблюдения двух условий одноногой устойчивости:
1) сумма нагрузок на все датчики рабочей ступни должна равняться весу робота с полезной нагрузкой;
2) нагрузка на все датчики рабочей ступни должна быть одинакова (фиг.22-а). Соблюдение первого условия и невыполнение второго условия (фиг.22-б) означает, что центр тяжести робота еще находится над рабочей ступней, а значит устойчивость, хотя и сохраняется, но не является абсолютной, поэтому требуется корректировка положения его центра тяжести.
Направление, куда надо сместить центр тяжести робота для восстановления одноногой устойчивости, показано на фиг.22(е-н) для различных вариантов распределения нагрузки на датчики ступни (чем темнее окрашен датчик, тем больше он нагружен). После определения направления и величины корректирующего смещения выполняется перенос массы тех или иных частей робота (ног, рук, приборного отсека и др.), реализующий это корректирующее смещение (путем включения одних сервоприводов робота и отключения других). Невыполнение первого условия (фиг.22-в) означает, что устойчивость потеряна, и требуется экстренный переход либо на двуногую устойчивость, либо рабочая нога должна экстренно сменить точку опоры (выполнить прыжок). Траектория переноса второй (нерабочей) ноги робота на опору (для перехода на двуногую устойчивость) или траектория прыжка рабочей ноги вычисляются с учетом распределения нагрузки на датчики рабочей ступни, динамических и геометрических свойств движущихся частей робота и на основании существующих сведений об окружающей обстановке.
Устойчивое равновесие при стоянии робота на двух ногах достигается периодической проверкой соблюдения двух условий двуногой устойчивости:
1) общая нагрузка на все датчики обеих ступней должна равняться весу робота с полезной нагрузкой;
2) нагрузка на все датчики каждой ступни должна быть одинакова.
Соблюдение первого условия и невыполнение второго условия означает, что устойчивость сохраняется, но уже требуется корректировка положения центра тяжести робота. Направление смещения центра тяжести робота для восстановления двуногой устойчивости робота при различных вариантах распределения нагрузки на датчики ступней показаны на фиг.11(е-н).
Невыполнение первого условия означает, что
устойчивость уже потеряна, и требуется экстренная смена положений ног робота или переход к безопасному режиму падения. Перенос центра тяжести робота вычисляется с учетом
- распределения нагрузки на датчики ступней,
- кинематических и динамических характеристик перемещаемых частей робота,
- имеющихся сведений об окружающей обстановке, текущих координатах и
геометрической форме перемещаемых частей робота.
В процессе ходьбы осуществляется последовательный переход из одного устойчивого состояния в другое. Из вышеизложенного вытекает, что для обеспечения устойчивости робота-гуманоида при стоянии и ходьбе необходимо, чтобы его устройство управления было способно за десятые доли секунды выполнить цепочку из следующих действий:
1) принять информацию о нагрузке датчиков стоп;
2) идентифицировать характер ее распределения на обеих стопах, на основании чего выбрать направление переноса центра тяжести робота;
3) выбрать оптимальный способ реализации переноса центра тяжести с учетом знаний о текущем положении отдельных частей робота в пространстве, их текущей динамике, о положении и геометрической форме близлежащих объектов.
4) осуществить одновременный перенос нескольких массивных частей робота выбранным способом в выбранном направлении.
Число возможных вариантов распределения нагрузки на датчики стопы определяется числом датчиков на стопе и числом их возможных состояний, а следовательно, может быть чрезвычайно большим. В то же время все множество возможных неравномерных распределений можно разбить на небольшое число классов распределений (КР). На любое распределение, относящееся к одному КР, устройство управления будет реагировать одинаково, т.е. пытаться восстановить устойчивость робота одними и теми же аппаратно-программными средствами. Один из подходов к построению КР заключается в следующем. Точность полученных данных о нагруженности датчиков стопы огрубляется (например, от 256 состояний датчика переходят всего к 8 состояниям). По расположению самых нагруженных датчиков определяется направление корректирующего смещения, а по значению их нагрузки - значение импульса смещения. Так как теоретико-множественные операции, операция вычисления объема, операция формирования КЗБИ выполняются в заявленном устройстве с высокой степенью распараллеливания, то идентификация КР (а значит, выбор способа переноса центра тяжести) может быть выполнена за сотые доли секунды. Восстановление устойчивости может быть выполнено различными способами. Наиболее простой состоит в управлении сервоприводами голеностопных шарниров нагруженной ноги робота (фиг.22-г,д). Если возможности такого управления исчерпаны (углы поворота червячных колес голеностопных шарниров достигли предельных значений), восстановление устойчивости осуществляется смещением других массивных частей робота (корпуса, рук, головы и др.).
Построение трехмерной ГМОО по стереоизображениям
Видеодатчики являются наиболее информативным источником информации об окружающем пространстве. С выходов видеокамер заявленного устройства снимаются полутоновые видеоизображения, которые содержат в себе информацию о геометрии окружающих объектов и их положении в пространстве. Видеокамера осуществляет центральное проецирование окружающей трехмерной сцены на плоскость фотоизображения (картинную плоскость - фиг.23). При этом степень засвечивания каждого 2D-пикселя на этом фотоизображении определяется интенсивностью потока световых лучей, проходящих через этот пиксель. Поскольку 2D-пиксель - не точка, то по законам геометрической оптики световые потоки, способные засветить этот 2D-пиксель, могут исходить не от единственного точечного источника света, лежащего в плоскости наводки видеокамеры, а от целого множества точечных источников света, компактно размещенных в некоторой трехмерной односвязной замкнутой области, имеющей малые габаритные размеры. Размеры этой области изменяются вместе с изменением фокуса оптической системы (фиг.23-а,б). В первом приближении, указанная трехмерная область (3D-пиксель) может рассматриваться в качестве трехмерного прообраза этого 2D-пикселя при отображении ее на картинную плоскость видеокамеры. Если разбить все пространство сцены, окружающей робота, на элементарные непересекающиеся трехмерные области и окрасить их по принадлежности (непринадлежности) пустому или непустому пространству, то реальную сцену можно заменить ее дискретной моделью (т.е. 3D-изображением сцены). Таким образом задача построения трехмерной сцены по его видеоизображению может быть сведена к задаче построения 3D-изображения по его 2D-фотоизображению. Если расстояние от видеокамеры до сцены во много раз больше по сравнению с разбросом расстояний между объектами на сцене, становится несущественной разница между центральным и параллельным (ортогональным) проецированием ([8] стр.36), и 2D-пиксель на фотоизображении может рассматриваться как параллельная (ортогональная) проекция 3D-пикселя на картинную плоскость видеокамеры.
Вариант видеосистемы робота-гуманоида, управляемого с помощью заявленного устройства, состоит из двух одинаковых видеокамер, установленных на плоской платформе подвижной «головы» робота-гуманоида (фиг.24), оптические оси которых всегда расположены в одной плоскости параллельно плоскости платформы. Каждая из видеокамер с помощью своего азимутального сервопривода способна вращаться вокруг оси, расположенной перпендикулярно плоскости платформы (фиг.24-а). Фокусировка объектива каждой из видеокамер и его диафрагмирование производится с помощью соответственно фокусного и диафрагменного сервоприводов камеры, управляемых вышеописанным способом.
л
л
С точки зрения видеосистемы, пространство, окружающее робота, представляет собой обзорную сферу с центром, расположенным посередине между центрами объективов видеокамер (фиг.25). Радиус обзорной сферы равняется минимальному расстоянию, при котором бинокулярная диспаратность уже не обнаруживается (фиг.24-б). Перемещение платформы с камерами обеспечивают сервоприводы «шеи», «спины» и «ног» робота. Все пространство обзорной сферы делится на перекрываемые обзорные стереосекторы, центральные оси которых пересекаются в центре обзорной сферы. Каждый обзорный стереосектор (фиг.25-г) образован пересечением сектора обзора левой видеокамеры (фиг.25-в) с сектором обзора правой видеокамеры (фиг.25-б). В свою очередь, пространство обзорного стереосектора делится на обзорные сцены, центры которых лежат на центральной оси сектора. Применительно к объектам, расположенным внутри обзорной сцены, допускается замена центрального проецирования параллельным проецированием [8]. Размеры обзорной сцены и ее геометрическая форма определяются углами поворота видеокамер (α, α), на фиг.26-а горизонтальная проекция обзорной сцены изображена в виде «бабочки». Машинная модель обзорной сцены состоит из конечного целого числа одинаковых непересекающихся ромбовидных параллелепипедов (фрагментов ), покрывающих пространство обзорной сцены (фиг.26-б,в). Ребра ромбовидных оснований этих фрагментов параллельны оптическим осям левой и правой видеокамер.
Настройка видеосистемы и обработка стереопар
Перед фотосъемкой устройство управления роботом определяет направление фотосъемки, точку наводки и значение диафрагмы, после чего вырабатывает команды управления на соответствующие сервоприводы видеокамер. Сервоприводы настраивают видеосистему так, чтобы (фиг.13-в):
- направление оси стереосистемы совпало с выбранным направлением съемки,
i
- оптические оси видеокамер пересеклись в центре обзорной сцены (T),
i
- центр T обзорной сцены оказался в фокусе обеих видеокамер,
- режим диафрагмирования соответствовал заданному значению.
2
лев
прав
После настройки видеосистемы выполняется фотографирование окружающей сцены, и на ПЗС-матрицах левой и правой видеокамер формируется стереопара - два полутоновых фотоизображения формата . По командам от устройства управления эти фотоизображения друг за другом (построчно в оцифрованном виде) передаются в память изображений БОХВИ в виде bKA бинарных 2D-изображений формата А×А (где b - разрядность двоичного значения уровня зачерненности одного пикселя - фиг.28-б). Далее перенесенные изображения сглаживаются путем взвешенного усреднения уровня зачерненности каждого пикселя и уровней зачерненности его ближайших соседей [7] (при помощи команд типа INE, SBT). Веса и число соседей-пикселей определяется выбранным типом сглаживающего фильтра. В случае реализации низкочастотного фильтра число анализируемых пикселей-соседей больше (фиг.28-о), чем в случае реализации высокочастотного фильтра (фиг.28-в). При выполнении процедуры фильтрации каждому пикселю фрагмента  результирующего изображения соответствует свой процессор матрицы А×А×А (работающей в режиме плоской матрицы ), в котором и осуществляется вычисление взвешенного среднего для этого пикселя. Перенос данных об уровнях зачерненности соседних пикселей, хранящихся в локальной памяти соседних процессоров матрицы , в указанный процессор производится при помощи команд типа SH, RAX, RAY, RAZ (фиг.28 г-и). Затем сглаженное изображение подвергается процедуре вычисления лапласиана [7] (при помощи команд типа INE, SBT). Сглаживание и вычисление лапласиана могут быть совмещены в одной вычислительной процедуре РП-фильтрации [7]. На 2D-изображении , полученном в результате вычисления лапласиана, выделяются только те пиксели, которые, сами имея положительное (отрицательное) значение второй производной, соприкасаются с пикселями, имеющими отрицательное (положительное) значение второй производной. В результате такого выделения формируется двумерное бинарное изображение-стереограмма, в котором только выделенные пиксели (нулевые лапласиан-точки) имеют черный цвет. Два таких непустых составных бинарных изображения-стереограммы (И', И') формата , соответствующие левому и правому фотоизображениям, служат исходным материалом для построения по ним бинарного фрагмента  (фиг.28-а), содержащего только корреспондирующие нулевые лапласиан-точки обзорной сцены. Алгоритм построения такого фрагмента по исходным бинарным стереопарам описан в [7]. Фиг.29 иллюстрирует выполнение этого алгоритма при помощи заявленного устройства на примере бинарной стереопары, непосредственно взятой из [7]. Сначала строится бинарное 3D-изображение кубического формата  (фиг.29-г), зачерненными 3D-пикселями которого отмечены все пересечения, в которых обе видеокамеры видят черную точку (на фиг.29-б,в изображены промежуточные этапы построения). Затем строится бинарное 3D-изображение  (фиг.29-ж), зачерненными 3D-пикселями которого отмечены все пересечения, в которых обе видеокамеры видят белую точку (на фиг.29-д,е изображены промежуточные этапы построения). Затем эти два 3D-изображения объединяются в одно (фиг.29-з), являющееся исходным материалом для реализации алгоритма, описанного в [7, стр.67-69]. В результате выполнения указанного алгоритма получается искомое 3D-изображение (фиг.29-и), черные пиксели которого соответствуют корреспондирующим нулевым точкам. Если это бинарное 3D-изображение не пусто (фиг.30-а), его содержимое интерполируется (по корреспондирующим 3D-пикселям строятся дискретные модели самих поверхностей объектов [8]), поворачивается на 45° и сжимается (фиг.30-б,в,г) до получения необходимой ромбовидной формы фрагмента . На фиг.31 показан один из простейших способов решения задачи интерполяции с помощью заявленного устройства, когда выявленные корреспондирующие пиксели (фиг.31-а,б) сначала сдвигаются до выхода их за пределы фрагмента , затем строятся линии-траектории переноса (фиг.31-в), после чего пустые слои  заполняются содержимым соседних непустых слоев  в двух взаимно-ортогональных плоскостях (фиг.31 г-и). Более точно задача интерполяции решается путем анализа распределения уровня зачерненности в окрестностях вычисленных корреспондирующих точек [7, 8] на каждом моноизображении стереопары. Из полученных ромбовидных фрагментов «собирается» бинарное 3D-изображение обзорной сцены. Для сборки бинарного 3D-изображения обзорного стереосектора бинарные 3D-изображения сцен, входящих в этот стереосектор, сначала приводятся к единому масштабу, а затем собираются в единое 3D-изображение обзорного стереосектора (фиг.30-д,е). Содержимое нескольких обзорных стереосекторов могут быть объединены в одно общее 3D-изображение вплоть до построения 3D-изображения обзорной панорамы или 3D-изображения всей обзорной сферы. Описанная модель сцены, синтезированная по видеоданным, снятым из одной точки наблюдения, лишь частично отражает геометрию реальных объектов, входящих в наблюдаемую обзорную сцену. Эту геометрическую модель сцены можно уточнить путем наложения и пересечения вышеописанных бинарных 3D-изображений, полученных с разных точек видеонаблюдения сцены, или в сочетании с методом «ощупывания».
Распознавание трехмерных объектов
Вышеописанный пример СЦЗ робота содержит (в качестве своей подзадачи) задачу распознавания трехмерного объекта заданных размеров, формы и окраски на фотоизображении сцены, снятой видеокамерами робота. Один из способов решения указанной задачи с помощью заявленного устройства состоит в следующем:
1) по исходному полному геометрическому описанию (ПГОО) распознаваемого объекта синтезируются трехмерные и двумерные изображения-эталоны распознаваемого объекта для одного из возможных угловых положений этого объекта в пространстве;
2) плоские эталоны и предварительно обработанное видеоизображение сцены (одно из моноизображений стереопары) приводятся к единому масштабу;
3) плоский эталон накладывается на исследуемый участок видеоизображения и попиксельно сравнивается с ним;
4) в случае совпадения плоского эталона и исследуемого участка, найденный участок сравнивается с более сложным плоским эталоном распознаваемого объекта с той же угловой ориентацией, но содержащим в себе большее число признаков распознаваемого объекта. Этот процесс повторяется до совпадения исследуемого участка с самым сложным плоским эталоном распознаваемого объекта с той же угловой ориентацией;
5) в случае несовпадения с любым из плоских эталонов исследуемый участок видеоизображения исключается из последующего анализа со всеми другими эталонами, построенными для данной угловой ориентации объекта, и исследуемый участок заменяется на другой участок видеоизображения;
6) если исследуемые участки 2D-изображения исчерпаны, строятся новые трехмерные и двумерные изображения-эталоны распознаваемого объекта, но уже с другим угловым положением объекта в пространстве, после чего вышеописанный процесс распознавания повторяется;
7) если все угловые положения распознаваемого объекта (из числа возможных) исчерпаны, процедура распознавания с использованием плоских эталонов считается законченной.
Данный алгоритм использует все достоинства блока 2, входящего в состав заявленного устройства, а именно высокую скорость выполнения в нем локальных операций, операций поворота, изменения масштаба, теоретико-множественных операций, процедур определения площади, объема, КЗБИ за счет глубокого распараллеливания этих операций и процедур в устройстве. Время выполнения данного алгоритма конечно, поскольку спектр угловых положений 3D-пиксельной модели распознаваемого объекта конечен. При этом, чем ниже разрешение модели, тем меньшее число пространственных углов входит в этот спектр (но тем меньшее число геометрических признаков распознаваемого объекта содержится в модели). По этой причине в начале цикла распознавания используются плоские эталоны А×А, имеющие небольшое разрешение (а значит, небольшой спектр углов поворота распознаваемого объекта) и содержащие в себе небольшое число геометрических признаков распознаваемого объекта. Назначение этих эталонов - за минимальное время предельно сократить число участков фотоизображения и пространственных углов распознаваемого объекта, претендующих на более подробный анализ, не упустив ни одного из потенциальных участков-претендентов для такого анализа. Для повышения скорости просмотра видеоизображения вместо изображения-эталона А×А целесообразно использовать мультиплицированное изображение-эталон , полученное путем размножения А раз бинарного изображения-эталона А×А (фиг.33-ж). В процессе просмотра всего фотоизображения мультиплицированный эталон  остается неподвижным относительно матрицы 35 (работающей в режиме ), а видеоизображение пошагово сдвигается внутри матрицы 35 в направлении строк (или столбцов), обеспечивая поочередную сменяемость одного анализируемого участка фотоизображения другим. Если в результате сравнения хотя бы один из фрагментов А×А полностью совпадет с содержимым анализируемого участка видеоизображения, на изображении-результате сравнения этот фрагмент А×А окажется пустым, и блок управления сразу (по коду КЗБИ) определит факт такого совпадения (фиг.33-з) и определит положение указанного фрагмента А×А внутри процессорной матрицы 35 (а значит и на фотоизображении). Найденный участок подвергнется более тщательному анализу с использованием более сложных эталонов распознаваемого объекта с той же угловой ориентацией. Все используемые эталоны синтезируются из исходного полного геометрического описания распознаваемого объекта (ПГОО). До выполнения процедуры распознавания ПГОО хранится в сжатом упакованном виде частично в памяти 18, частично в памяти 37. Объем, форма представления, а также способ хранения ПГОО внутри заявленного устройства должны обеспечивать возможность высокоскоростного построения по этому описанию любого из используемых изображений-эталонов нужного разрешения и размерности (с учетом аппаратно-программных возможностей заявленного устройства). Если геометрия объекта описывается небольшим числом простых примитивов (отрезков, параллелепипедов и т.п., синтез которых не требует хранения бинарных фрагментов А×А в памяти изображений), построение всего эталона-изображения состоит в предварительном синтезе 3D-изображений отдельных трехмерных примитивов с заданной угловой ориентацией и последующей сборке из них (путем перемещения примитивов) 3D-изображения модели всего объекта. В этом случае ПГОО - это всего лишь программный код для синтеза примитивов и последующей сборки из них 3D-изображения всего распознаваемого объекта (с нужным разрешением и угловой ориентацией). Для объектов, описываемых примитивами сложной геометрической формы, в состав ПГОО может быть включено одно или несколько вспомогательных изображений А×А, с помощью которых синтезируются эти примитивы. И наконец, в случае объекта, совершенно неподдающегося описанию небольшим числом примитивов, ПГОО хранится в памяти 37 в виде самих бинарных 3D-изображений, разбитых на отдельно адресуемые фрагменты А×А×1. Если исследуемый участок моноизображения удовлетворяет всем признакам распознаваемого объекта, содержащимся во всех плоских эталонах, процедура распознавания может быть ужесточена проведением процедуры сравнения трехмерного изображения-эталона распознаваемого объекта (с найденной угловой ориентацей) с трехмерной моделью найденного участка сфотографированной сцены (при этом эта сравниваемая 3D-модель участка сцены формируется в результате обработки стереопары сцены одним из вышеописанных способов).
Принципы применения заявленного устройства для решения задачи распознавания проиллюстрируем на примере распознавания кружки, имеющей заданную форму, габариты и окраску. Угловая ориентация кружки на сцене может быть произвольной. Пусть форма тела кружки и рисунок-орнамент на ее внешней поверхности описываются ПГОО, в которое входят (фиг.32):
1) бинарное изображение И1 формата А×А, содержащее элементы-заготовки, ускоряющие процесс построения трехмерной геометрической модели кружки (фиг.32-а);
2) бинарное изображение И2 формата А×А, содержащее 2D-проекцию 3D-модели рисунка-орнамента («сердечко») на некоторую заданную плоскость (фиг.32-а);
3) программный код для сборки 3D-модели тела и рисунка-орнамента кружки по И1, И2.
Процесс построения изображений-эталонов включает следующие последовательно выполняемые операции:
1) из 2D-изображения И1 извлекаются отдельные элементы-заготовки (фиг.32-б,в), т.е. для каждого элемента-заготовки строится свое бинарное изображение формата А×А;
2) по извлеченным плоским элементам-заготовкам строятся мелкие трехмерные фрагменты дискретной модели тела кружки (фиг.32-г);
3) из мелких трехмерных фрагментов собираются крупные фрагменты дискретной 3D-модели тела кружки (фиг.32-д,е,ж);
4) из крупных трехмерных фрагментов собирается вся 3D-модель тела кружки (фиг.32-з,и);
5) строится 3D-модель рисунка-орнамента путем проецирования изображения И2 на внешнюю поверхность ранее построенной 3D-модели тела кружки (фиг.32-л);
6) полученные два бинарных 3D-изображения (3D-модель тела кружки и 3D-модель ее рисунка-орнамента), содержащие все геометрические признаки распознаваемой кружки, расшиваются (как описано в прототипе) на отдельные фрагменты А×А×А и в расшитом виде хранятся в течение всего периода распознавания кружки (фиг.32-м);
i
j
k
7) содержимое расшитых фрагментов 3D-моделей тела кружки и ее рисунка-орнамента сначала поворачивают (как описано в прототипе) на угол α вокруг центральных осей Ох этих фрагментов А×А×А, затем на угол β вокруг центральных осей Оу и на угол γ вокруг центральных осей Oz фрагментов А×А×А (фиг,32-н);
1
1
1
8) из повернутого содержимого фрагментов сшиваются 3D-модель тела кружки и 3D-модель ее рисунка-орнамента с (α, β, γ-угловой ориентацией (фиг.32-о);
i
j
k
9) по 3D-модели тела кружки с (α, β, γ)-угловой ориентацией и известному направлению освещения строится 3D-модель затененной поверхности кружки (направление освещения определяется либо с помощью специальных фотодатчиков, либо в результате анализа фотоснимка освещенного тела, геометрия и координаты которого роботу априорно известны, например пальца робота). Только 3D-пиксели, принадлежащие затененной поверхности кружки, имеют на этом бинарном 3D-изображении черный цвет (фиг.33-а) светлой стрелкой показано направление моделируемого освещения);
10) анализируя состояние соседних пикселей для каждого черного 3D-пикселя полученной 3D-модели затененной поверхности кружки, формируется бинарное 3D-изображение контура затененной поверхности кружки, все черные 3D-пиксели которого являются центрами кривизны затененной поверхности кружки, т.е. в которых значение кривизны превышает заданный порог (значение кривизны пикселя на SD-модели затененной поверхности кружки определяется путем анализа числа и расположения его ближайших соседних черных пикселей);
i
j
k
11) пошагово проецируя 3D-модель контура тени (КТН) на плоскость, имеющую изначально белый цвет, и пошагово вычитая из полученной проекции контура текущую проекцию 3D-модели тела кружки (предварительно сдвинутую на 1 шаг по направлению проецирования) на эту же плоскость, строится плоская проекция контура тени (ПКТНБ) кружки с (α, β, γ)-угловой ориентацией на белом фоне с удаленными невидимыми линиями и поверхностями (фиг.33-б);
i
j
k
12) действия п.11 повторяются, но с применением изначально черной плоскости проецирования, в результате строится проекция контура затененной поверхности (ПКТНЧ) кружки с (α, β, γ)-угловой ориентацией на черном фоне с удаленными невидимыми линиями и поверхностями (фиг.33-в);
14) путем выполнения теоретико-множественной операции РК=ПКТНБ ∩ ПКТНЧ формируется 2D-изображение РК, состоящее только из элементов контура, которые являются общими и для ПКТНБ, и для ПКТНЧ (фиг.33-г). Изложенный алгоритм распознавания содержит в себе операции проецирования одного объекта на другой. Общий принцип реализации в заявленном устройстве операции проецирования покажем на примере проецирования контура дискретной 3D-модели одного объекта (фиг.34-б, в, и, л) на поверхность дискретной 3D-модели другого объекта (фиг.34-а,ж,з). Такое проецирование заключается в многократном выполнении следующего цикла:
1) выполняется теоретико-множественная операция «вычитание множества Т из множества Р»: , где Р - бинарное позитивное 3D-изображение проекции, построенной на предыдущем цикле (изначально Р - множество пустое, т.е. «белое»), Т - бинарное позитивное 3D-изображение тела проецируемого объекта (в результате этой операции 3D-пиксели, являющиеся по местоположению общими как для проецируемой поверхности, так и для тела Т, окрашиваются в белый цвет, т.е рисунок-орнамент, построенный на предыдущем цикле, на этом участке проецируемой поверхности стирается);
2) выполняется теоретико-множественная операция Р=П ∩ K∪P, где К - бинарное позитивное 3D-изображение контура проецируемого объекта, П - бинарное позитивное 3D-изображение тела поверхности проецирования;
3) изображения К и Т сдвигаются на 1 шаг по направлению проецирования (фиг.34-г,д);
4) если Т не вышло за границы своего формата, выполняется переход к п.1, в противном случае - проецирование закончено.
По окончании проецирования черными будут только те пиксели поверхности проецирования, которые хотя бы раз пересекались с перемещаемым контуром объекта и в последующем не были стерты моделью тела объекта.
Высокая скорость выполнения в заявленном устройстве:
- ввода сенсорной информации;
- синтеза трехмерных моделей окружающих объектов и текущей модели самого робота,
- анализа пространственных сцен,
- управления датчиками и сервоприводами,
позволяют роботу, оборудованному данным устройством, легко ориентироваться в пространстве, оперативно сверять свое текущее положение на маршруте движения, строить собственные двумерные и трехмерные навигационные карты, выбирать наиболее оптимальные маршруты перемещения.
Таким образом, по сравнению с прототипом заявленное устройство позволяет расширить функциональные возможности устройства, повысить приспособляемость робототехнической системы к окружающей среде, увеличить скорость, надежность и маневренность, уменьшить массу и габариты. Быстродействие и небольшие габариты устройства дают возможность создать на его основе относительно недорогие очувствленные роботы с чрезвычайно высокой степенью автономности, что, в свою очередь, позволит автоматизировать сферы человеческой деятельности, в настоящее время не подлежащие автоматизации.
ИСТОЧНИКИ ИНФОРМАЦИИ
1. Патент на изобретение №2187832.
2. Авт. свид. СССР №1456955. Устройство для параллельной обработки трехмерных сцен.
3. Авт. свид. СССР №1612307. Устройство для параллельной обработки трехмерных сцен.
4. Авт. свид. СССР №1817108. Устройство обработки изображений.
5. Авт. свид. СССР №1817109. Устройство для параллельной обработки трехмерных сцен.
6. Патент на изобретение №2289161. Устройство обработки двухмерных и трехмерных изображений.
7. Поджио Т. Зрение человека и технические системы видения. Журнал «В мире науки». 1984, № 6, стр.58-69.
8. Хорн Б.К. Зрение роботов. М.: Мир, 1989.
9. Уитби Б. Искусственный интеллект: реальна ли Матрица. М.: ФАИР-ПРЕСС, 2004 (стр.98-103).
10. Колмогоров А.Н., Фомин С.В. Элементы теории функций и функционального анализа. - М.: Наука, 1981 г.
11. Выгодский М.Я. Справочник по высшей математике. М.: Наука, 1973 г.