Игры и Люди

… одетый только в халат из холщовой ткани, ходил в кабачки и к певичкам. Когда его спрашивали, почему он таков, он каждый раз открывал рот, засовывал туда кулак и не говорил. Император Лян-цзун призвал его и спросил: «Каков принцип Вашего Пути?» Гуйчжэнь ответил: «Одежда тонка — поэтому люблю вино, выпью вина и защищусь от холода, напишу картину — и расплачусь за вино. Кроме этого, ничего не умею». Лян-цзун не нашелся, что сказать…

От игрушек детства мы движемся к другим. Здесь — об этом.

Алхимия игры включает несколько ингредиентов.

Рецептура состоит из Миров, по которым можно путешествовать; не все из них достаточно хорошо населены. Дело — это Игрушка одного из миров.

Объединяя видимые и сокрытые элементы, Алхимия выступает и как самостоятельный Игрок.

Google+

Обработка потока с видеокамеры средствами ПЛИС/FPGA. OV7670 + Zedboard

В статье маркеры визуальной системы автоматической посадки БЛА была описана  обработка видео-данных реального времени для системы оптического типа — VBLS. Это была хоть и шустрая, сделанная на C++, но модель. Теперь, как было замечено в конце этой статьи, пришло время показать систему в боевом варианте, где обработка видеопотока параллелится в ПЛИС.

В данной системе для экспериментов я выбрал весьма удобную отладочную плату  Zedboard. Чип Zynq-7000 основан на SoC архитектуре ARM+FPGA, однако на этом этапе функционал ARM использовать не будем и ограничиваемся работой только с ПЛИС. В качестве камеры выступает популярный модуль OV7670 разрешением 640х480 (хвала Алиэкспрессу!). Почему такое скромное разрешение? А потому что в Zedboard ресурсы ограничены, в частности критичным для нас является размер встроенной быстродействующей памяти BRAM (не путать с DDR). Результирующее видео выводится на дисплей через разъем VGA платы.

В излагаемой конфигурации основной упор сделан на технические аспекты создания рабочей конфигурации, поскольку это занимает приличное время и опять таки: за деревьями не видно леса и требуются определенные усилия чтобы свести разрозненную информацию воедино. Да, и конечно чтобы это единое работало ) Поэтому сами алгоритмы распознавания будут дальше.

Теперь, пошли по порядку.

Инструментарий

Отладочная плата Zedboard. Конечно, это серьезный финансовый барьер для тех кто занимается разработкой в режиме хобби, но если вы собираетесь работать с ПЛИС то вам нужна эта плата. Она удобна, хорошо документирована, и к тому же на ней есть ARM, на котором вы будете дополнительно молотить то, что осталось от ПЛИС.

Micro-USB кабель. Он будет подключаться к разъему PROG платы и нужен для закачки логической матрицы.

По мере продвижения вперед ваш рабочий стол приобретет примерно такой вид.

ov7670, Zedboard, Zynq-7000, FPGA Xilinx, VHDL, PMOD, VGA, Video Processing, Visual Based Automatic Landing System, VBLS, Marker, Marker, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Внешние подключения системы: OV7670 + Zedboard

Среда разработки Vivado 2017.4. Качайте и устанавливайте ее бесплатный вариант — WebPack. Есть версии как для Linux так и для Windows; у меня стоит Linux версия. Среда весьма требовательная к ресурсам компа. Да, и сразу предупреждаю — «компиляция» исходного кода занимает приличное время (минуты). Это дисциплинирует и заставляет более требовательно относиться к своим исходникам — попросту нужно делать меньше ошибок. Для Vivado есть и более свежии версии, но у меня они пошли плохо — начались конфликты с кириллицей (кто бы мог подумать).

Для тех кто пользует Linux: поскольку среду разработки разворачивает скрипт установки, укажите место для Vivado как /opt/Xilinx, предварительно настроив права доступа на этот каталог.  Обновите правила udev для того, чтобы операционная система правильно определила кабель USB, подключенный к Zedboard. Для этого в каталоге

запустите соответствующие скрипты и обновите правила с помощью udevadm.

Камера OV7670. В поставке есть платы с чипом FIFO и без него. Нам он без надобности; наше описание расчитано на интерфейс камеры без этого буфера. Для подключения камеры к соединителям PMOD платы Zedboard я сделал переходную колодку. Можно обойтись и без пайки, просто соединив пины камеры с гнездами разъемов кабелями мама — папа. Только не делайте соединения слишком длинными — все таки работаем на частоте 25 МГц, длинный монтаж начнет звенеть.

ov7670, Zedboard, Zynq-7000, FPGA Xilinx, VHDL, PMOD, VGA, Video Processing, Visual Based Automatic Landing System, VBLS, Marker, Marker, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Переходная колодка для подключения камеры OV7670 к разъемам PMOD Zedboard

Дисплей с VGA входом и VGA кабель. Да, для того чтобы увидеть плоды своих трудов нам понадобится этот раритетный девайс, ничего не поделаешь. Будем формировать сигналы классического интерфейса VGA и выдавать их на разъем платы, который подключен к PL. И еще, потихоньку привыкаем к терминологии архитектуры Zynq: PL это программируемая логика (ПЛИС), PS это процессор (ARM).

Сразу отвечаю на вопрос продвинутых пользователей: это каким образом цифровая подсистема PL формирует сугубо аналоговые сигналы VGA? Если мы взглянем на схему платы, то увидим резистивные делители, подключенные к выходу VGA. Это фактически есть не что иное, как ЦАП, сделанный дешево и сердито. На каждый из сигналов цвета выделено 4 разряда, поэтому мы ограничены 16 градациями по каждому каналу. На самом деле, в этом проекте цвет нам не понадобится, поскольку будем работать с серым изображением.

Теперь переходим к следующему этапу — связываем все это вместе.

Подключение камеры OV7670 к плате Zedboard

Дальше, по ходу изложения, я поделюсь исходниками проекта. Но уже сейчас нам понадобится один файл — zedboard.xdc, в котором описаны внешние соединения, о которых должна знать PL.  Должна знать — потому что в этом файле осуществляется привязка по цепочке: контакт разъема PMOD платы — вывод PL — наименование соответствующего сигнала в коде VHDL. Функции этого файла, который в терминологии Xilinx именуется constraints файлом, горазо шире, но в нашем проекте мы используем этот необходимый минимум.

ov7670, Zedboard, Zynq-7000, FPGA Xilinx, VHDL, PMOD, VGA, Video Processing, Visual Based Automatic Landing System, VBLS, Marker, Marker, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Подключение камеры OV7670 к плате Zedboard

Поскольку я заговорил об исходниках, здесь будет уместно сообщить откуда я их взял ) За основу проекта использован этот VHDL код, однако имейте в виду что там есть ошибки как в самом коде, так и в распиновке PMOD разъемов платы Zedboard; кроме того я переделал этот проект с цветного на черно-белый. Можно сказать лишил его всех красок бытия ) Также я включил в состав исходников dummy модуль, в котором будут жить разные алгоритмы обработки изображения в реальном времени. Пока все что он делает — просто передает полученные байты изображения модулю VGA. А пока этот компонент живет в комфортном окружении, которое понадобится в будущем: блок памяти BRAM на входе и блок на выходе. Все в соответствии с правилами модульного программирования, выделение интерфейсов и изоляция модуля от остальных.

Итак, возвращаемся к подключению камеры. Для удобства я сделал табличку, в котором свел вместе пины камеры, коннекторов PMOD платы и данные из constraints file zedboard.xdc.

ov7670, Zedboard, Zynq-7000, FPGA Xilinx, VHDL, PMOD, VGA, Video Processing, Visual Based Automatic Landing System, VBLS, Marker, Marker, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Ваша задача — соединить пины камеры из первого столбца таблицы с гнездами разъема PMOD платы Zedboard второго столбца таблицы. О том каким выводам ПЛИС Zynq-7000 соответствуют эти сигналы, знаем только мы и руководство Zedboard Hardware Guide. VHDL коду все равно — он оперирует названиями сигналов из правого столбца таблицы, а привязывает эти сигналы к выводам Zynq-7000 файл zedboard.xdc. Таким образом все сходится.

Раз мы уже занялись подключением камеры OV7670, быстро пробежимся по ее выводам. RESET и PWDN — сброс и включение камеры. Управление камерой обеспечивает последовательный интерфейс SIOC/SIOD, аналогичный I2C. В камере находится тьма регистров, которые нужно правильно установить — главная причина того что я не разработал код с нуля а взял за основу существующий. Впрочем, это меня не спасло — все равно пришлось вникать в мануал устройства. Если вам придется заняться тем же самым, имейте в виду что зарезервированные регистры и биты также нужно устанавливать определенным образом, и тайна великая сия есть.

Камеру можно синхронизировать внешним сигналом XCLK (мы так и делаем, формируя его в коде), тогда все что она выдает идет синхронно с ее выходом PCLK. А идут с нее байты видеоданных по шине D в сопровождении импульса кадровой синхронизации VSYNC, по которому мы сбрасываем в ноль счетчики и адреса, и еще строб наличия данных строки HREF, по которому мы разрешаем считывание данных.

Вот собственно и все. Для чего нужны пины 3v3 и GND вы наверное догадались сами.

Теперь самое время объявить хорошую новость для тех, у кого нет платы Zedboard, камеры и дисплея. Вы можете сразу начинать экспериментировать с VHDL, поскольку в Vivado есть режим симуляции. Единственное что вам понадобится дополнительно — включить в симуляцию testbench файл tb_top.vhdl, который имитирует данные с камеры. Вы можете написать свой testbench с тем чтобы посмотреть временные диаграммы как всего проекта, так и одного отдельного модуля.

Запуск Vivado, создание проекта, прошивка ПЛИС

Создайте новый RTL проект, добавьте VHDL файлы и constraints файл zedboard.xdc (ссылки в следующем разделе). Не забудьте указать в настройках проекта, что вы используете Zedboard: это важно. Добавьте также в симуляцию файл tb_top.vhdl. В результате иерархия компонентов должна выглядеть примерно таким образом:

ov7670, Zedboard, Zynq-7000, Vivado, FPGA Xilinx, VHDL, PMOD, VGA, Video Processing, Visual Based Automatic Landing System, VBLS, Marker, Marker, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Иерархия исходных текстов проекта

Кстати, справа Vivado показывает нам сколько ресурсов мы заняли у ПЛИС (эти данные появятся после компиляции проекта). Видно, что мы хорошо поимели память BRAM: ее осталось всего 20%. Логических блоков LUT было использовано всего ничего — всего лишь 1%.

Обратите внимание на компоненты обозначенные квадратиками: это «библиотечные» IP блоки, специфичные для Zedboard, которые мы используем в проекте. Их мы находим в меню «IP Catalog» и настраиваем. Вам нужно немного поработать: создать три компонента из IP блоков, а именно Clock wizard и два блока памяти BRAM. Каким образом компоненты встраиваются в проект, видно из файла ov7670_top.vhd, который играет роль кросс — платы для остальных модулей, то есть является топовым модулем иерархии.

Даю настройки IP блоков, отличные от настроек по умолчанию (до двоеточия я указал название вкладки, в которой нужно изменить параметр):

Блоки BRAM конфигурации Simple Dual Ram имеют одинаковую «глубину» равную 307200 (640х480) и различаются только размером шины данных: в первом случае это 8 бит, соответствующие размерности данных с камеры, во втором — 4 бита, в котором кодируются все цветовые каналы VGA.

После того как вы вписали исходники в проект и подготовили IP блоки, нужно пройти этапы «компиляции». Первый из этих этапов — Synthesis, на котором ваша схема будет связана вместе и для нее будут подобраны элементарные кирпичики FPGA — Slices and LUTs. Здесь вас ждут типичные ошибки синтаксиса (которые можно выловить раньше — редактор указывает на них сразу) и например ошибки несовпадения разрядности, когда к 8-пиновому разъему вы пытаетесь прикрутить 16-пиновый. На втором этапе Implementation будет предпринята попытка втиснуть плоды вашего творчества в ПЛИС. Если оно не помещается, Vivado скажет, какие именно ресурсы вы превысили. Следующий этап — Generation Bitstream, когда будет создаваться двоичный образ матрицы PL. Как ни странно, на этом этапе тоже могут возникнуть ошибки. Не расслабляйтесь!

И наконец если все прошло благополучно, открывайте Hardware Manager и если вы не напутали с подключением Zedboard по usb, получите возможность программирования платы. Для этого ее перемычки должны стоять именно так, как у меня на фото.

Файлы проекта

Пробежимся по модулям.

debounce.vhd это антидребезговая схема, которая запускается от кнопки платы и формирует сброс камеры. В принципе такой же сброс будет обеспечен в момент включения платы — но мало ли что. В процессе сброса на камеру отсылаются установки ее регистров. Поддержка последовательного интерфейса с камерой обеспечивает модуль i2_sender.vhd, хранение и логику формирования регистровых посылок — модуль ov7670_registers.vhd. В последний я внес соответствующие изменения, чтобы камера формировала последовательность YUV вместо RGB, чтобы получить градации серого Y.

Синхронную работу этих двух модулей обеспечивает кросс-плата нижнего уровня — модуль ov7670_controller.vhd.

Когда камера запустится и начнет работать, про все эти модули можно забыть — в обработке они участие не принимают.

Теперь вернемся к началу цепочки. Прием байтовой последовательности с камеры — задача модуля ov7670_capture.vhd. Синхронизация его работы с разверткой камеры выполняется с помощью сигналов VSYNC, HREF. Поскольку во входном потоке каждый второй байт кодирует цвет, эти байты отбрасываются и в первый блок памяти записываются только значения интенсивности Y. Таким образом, после каждого кадра в BRAM содержится байтовая картинка grayscale размером 640х480 байт.

Блоки памяти, сохраняя промежуточную информацию, также обеспечивают выравнивание работы модулей по скорости.

Модуль — заглушка cv_core.vhd читает первый блок BRAM и заполняет этими же данными второй блок, оставляя от исходных байтов только старшие четыре разряда — больше VGA не позволяет. Вот тут для вас самый простор заместить ленивую заглушку своим алгоритмом: фильтр подавления шумов Гаусса, выделение контуров, распознавания по шаблону и все что душа пожелает. Мы же в этой статье как договорились делаем упор на технику реализации, поэтому пойдем дальше.

Собственно, осталось всего ничего — модуль vga.vhd читает второй блок BRAM, устанавливает прочитанными 4 битами все каналы цветности и выдает результат на разъем VGA. В результате мы видим что снимает камера на дисплее, в черно — белом варианте.

Скачать все исходники разом можно здесь.

На ролике видно, как все это работает вживую. Главный персонаж — моя кружка, освещение — комнатное. Базовую конфигурацию мы создали, следующий шаг — обработка изображения.

До встречи в эфире!

Маркеры визуальной системы автоматической посадки БЛА

Визуальная автоматическая посадка БЛА может выполняться не только по характерным точкам местности, но и по специально подготовленным и известным изображениям — маркерам. Собственно сама стандартная разметка ВПП состоит из таких маркеров, только исторически они предназначались не для обработки компьютером, а для человека — пилота. Поэтому нет ничего удивительного в том, что искусственный интеллект дрона потребует учесть его интересы и установить те маркеры, с которыми ему удобнее работать )

Visual Based Automatic Landing System, VBLS, Marker, Marker, UAV, Drone, Автоматическая посадка БПЛА, runway, DinaPrim 2700

Стандартизированная разметка ВПП. Маркеры обозначают тип полосы, точку касания и отклонение от этой точки

Из рисунка видно — создатели разметки ВПП позаботились о том, чтобы четко были видны торцы полосы, причем они выполнены в виде вытянутых в сторону борта линий, чтобы обеспечить хорошее различение под низкими углами места — тот же принцип, что и в разметке пешеходного перехода. Возможно, для системы визуального зрения автоматической посадки VBLS этот набор маркеров не является оптимальным. Поэтому я поработал с разными классами изображений, характеристики которых такие как спектральные и корреляционные функции, инвариантность к изменению системы координат и возможности различения на фоне местности могут быть использованы для обнаружения и определения относительного положения маркера.

Регулярные маркеры

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

Visual Based Automatic Landing System, VBLS, Marker, Chessboard, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Регулярный маркер: шахматная доска

Visual Based Automatic Landing System, VBLS, Marker, Pseudorandom Marker, UAV, Drone, Автоматическая посадка БПЛА, Маркер

Псевдошумовой маркер

Шахматная доска — простейший из таких маркеров. Ее преимущество в том, что это сугубо техногенное изображение хорошо различимо на фоне природного ландшафта. Как и всякая функция с выраженным периодом, спектральные характеристики этого маркера не очень хороши, поскольку имеют высокий уровень боковых лепестков. С этой точки зрения лучше выглядит псевдошумовой маркер. Он имеет лучший вид автокорреляционной функции и поэтому обеспечивает лучшее различение. Кроме этого, псевдошумовых маркеров можно создать несколько с разными двумерными псевдослучайными последовательностями, что позволяет отличать их друг от друга на сцене.

Еще один 1D псевдошумовой маркер, который может нести функцию опознавания торцов полосы, является изображением производным от М-последовательности. Эти последовательности имеют отличные автокорреляционные характеристики и поэтому используются в радиолокации для модуляции запросных импульсов.

Visual Based Automatic Landing System, VBLS, Marker, Maximum length sequence, M-sequence, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Псевдошумовой маркер: М-последовательность

Регулярная структура этих маркеров имеет один недостаток: при крене БЛА корреляционные характеристики существенно ухудшаются. Этот минус компенсируется размещением камеры на стабилизированном подвесе. Более существенный недостаток — изменение размера изображения в зависимости от дальности.

Фрактальные маркеры

Весьма интересными для изучения являются фрактальные изображения.

Visual Based Automatic Landing System, VBLS, Marker, Pythagoras tree, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Фрактальный маркер: дерево Пифагора

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

Так, в известном фрактальном изображении — дереве Пифагора один и тот же базовый элемент, состоящий из двух квадратов, углами поставленных на третий, воспроизводится с дискретом 45 градусов. При моделировании использовались восемь опорных изображений, соответствующих всем возможным углам поворота. Алгоритм показал устойчивость обнаружения в широком диапазоне дальностей.

Visual Based Automatic Landing System, VBLS, Marker, Pythagoras tree, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Фрактальный маркер: обдуваемое дерево Пифагора

С убыванием размеров обнаруженных  базовых элементов растет их количество, что примерно поддерживает на одинаковом уровне отношение сигнал/шум.

Другой фрактал — это модификация дерева, известная как обдуваемое дерево Пифагора. В данном варианте количество градаций углов поворота больше чем 8, соответственно больше отчетов дальности, которые может позволить себе алгоритм.

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

Кольцевой маркер

Visual Based Automatic Landing System, VBLS, Marker, Marker, UAV, Drone, Автоматическая посадка БПЛА, DinaPrim 2700

Маркер: концентрические окружности

Поскольку объем ограничен, я не стал приводить данные по моделированию для всех описанных маркеров. Мне по ряду причин нравится кольцевой маркер, состоящий из концентрических окружностей. Его полезные свойства — инвариантность к крену и частичная инвариантность к изменению дальности. Частичная — потому что переход окружности одного радиуса в другую окружность будет происходить только в определенном, периодическом диапазоне дальностей.

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

На рисунке показан простейший маркер. На самом деле, в силу различных причин, есть смысл делать переменный радиус и толщину колец. Это приводит нас к другой задаче — поиска оптимальной конфигурации маркера, которую предстоит исследовать более детально.

Для кольцевого маркера моделирование выполнялось в реальном времени: это как раз тот случай, когда я изменил Питону и написал приложения на C++. Кстати, раз мы коснулись быстродействия, следует отметить один существенный момент: каким бы хорошим не был алгоритм распознавания изображений, он ничего не стоит если он не будет работать на реальном железе в реальном масштабе времени. Еще один аспект, связанный с аппаратной платформой которая будет использоваться: скорее всего, без аппаратного препроцессора на ПЛИС вам не обойтись. А это значит, что алгоритм распознавания должен хорошо распараллеливаться.

Моделирование VBLS для кольцевого маркера

Как работает система. Маркер напечатан на обычном листе формата А4. Разрешение камеры всего 640х480, что даже лучше, поскольку с HD алгоритм будет работать гораздо эффективнее. Вывод приложения идет в три окна.

Самое большое, расположенное вверху это изображение сцены с однобитным квантованием, фактически это цветное изображение камеры, преобразованное в черно-белое с определенным порогом. Самое интересное окно расположено внизу слева. Это аккумулятор алгоритма, который накапливает данные о предпологаемом положении маркера в двумерной системе координат. Шаг сетки аккумулятора меньше, чем у сцены, поэтому оно меньше по размеру. Видно, что максимальное накопленное число аккумулятора соответствует наибольшей яркости в его фрейме, что определяет предполагаемые координаты маркера. По этим координатам в основном окне отрисовывается зеленый кружок. Как правило, он попадает в центр маркера почти на всем протяжении клипа )

Еще одно интересное окно — это гистограмма, составленная из распределения радиусов предполагаемого маркера. Пики гистограммы соответствуют каждому радиусу концентрических окружностей.

Клип демонстрирует, что центр маркера определяется с достаточно большой погрешностью. Но от этой части алгоритма высокая точность не требуется — требуется быстродействие. Зная небольшой фрагмент, в котором находится центр маркера — ROI, Region of Interest, будет работать точный алгоритм, основанный на анализе точек окружности. Поскольку размер поля изображения существенно снижается, производительность такой обработки не будет ухудшена.

Соображения производительности были на первом месте, по этому был сделан выбор в пользу C++. Кроме этого, в критичных местах я не использовал библиотеки OpenCV, поскольку опять таки следующий этап — параллелить операции и переносить их на FPGA. Вместо стандартных библиотек писал свои, в частности процедуру FHT, Fast Hough Transform, результат работы которой видно на аккумуляторе.

Каким быть военному радиопеленгатору

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

Мой рассказ — об отечественном военном аэродромном пеленгаторе. Именно аэродромном, поскольку АРП другого назначения, в том числе для радиоразведки, поиска и спасения находятся за рамками моего повествования. Да и тема аэродромной радиопеленгации для меня самая близкая, в которой я работаю с 1983 года.

Аэродромный радиопеленгатор для военных

Для чего военным аэродромный радиопеленгатор? Во первых, как одно из средств опознавания цели при использовании в составе радиолокационного комплекса — РЛК. И хотя опознавание может выполняться с помощью ответчика вторичного канала РЛК, пеленгационное опознавание, как и в гражданской авиации, обладает несомненным преимуществом — диспетчер однозначно ассоциирует отметку цели с бортом, с  которым он ведет радиопереговоры. В качестве РЛК могут выступать как первичные радиолокаторы, так и комплексы радиолокационной системы посадки, например РСП-10. И пусть вас не смущает упоминание этого мастодонта времен 60-х. В нашем повествовании будет достаточно антикварной старины, которая до сих пор здравствует, работает и самое неожиданное — закупается )

Второй вариант использования — автономный, в качестве обычного аэродромного пеленгатора. Включая в свой состав средства связи, такой АРП будет самодостаточным средством для привода и посадки (визуальной, конечно) самолета на аэродром. Эта самодостаточность АРП, вкупе с его относительной простотой, является исключительной для быстрого развертывания временных аэродромов или подготовки постоянных аэродромов для прибытия своих сил, пока его обитатели об этом не подозревают )

Проследим историю развития отечественных военных аэродромных АРП во взаимосвязи с историей развития технологий. Ведь очевидно, что с появлением очередных технологических новинок возникает потребность в разработке все более совершенного радиопеленгатора.

История отечественных военных аэродромных АРП: отражение технологий

АРП-11, радиопеленгатор, DF, Direction Finder

АРП-11. 8-вибраторная антенна пеленгатора расположена на крыше. Рядом — диско-конусная антенна связи

Начнем с ныне здравствующего АРП-11, входящего в состав РСП-10. Пеленгатор имеет 8-вибраторную кольцевую антенную решетку с центральным вибратором. Принцип пеленгования — амплитудный: два противоположных вибратора вместе с центральным образуют диаграмму направленности в виде кардиоиды, которая крутится за счет переключения кольцевых вибраторов. Благодаря направленным свойствам кардиоиды формируется огибающая принимаемого сигнала, которая зависит от направления прихода. Так извлекается пеленг.

Конечно, такая схема гораздо лучше, чем более древняя 4-вибраторная антенна Эдкока, но она также несет на себе родовые травмы амплитудной пеленгации: невозможность держать приемлемую форму диаграммы во всем диапазоне частот 100 — 400 МГц и низкая устойчивость к переотражениям от местных предметов. Плюс низкая технологичность изготовления антенны, сложность регулировки да и эффективность вибраторов в широком диапазоне тоже оставляет желать лучшего. Поэтому среднеквадратическая погрешность пеленгования 2° (что совсем неплохо для малобазовой антенны), максимальная — 4°, дальность действия на высоте 1000м — 80км.

На самом деле, точности лучше 2° для задач привода и опознавания и не нужно.

АРП-11 входит в состав радиолокационной системы посадки РСП-10 которая была разработана в 1960-х. Это невероятно, но ламповый локатор до сих пор пользуется спросом, и этому есть две причины. Первая — то что было разработано в наше время на замену, по своим параметрам как ни странно получилось хуже чем РСП-10. Плюс военные не испытывают желания платить за новый локатор полмиллиарда рублей. Вторая причина: в армию с тех пор не поступило никаких новых радиотехнических средств для посадки самолетов. Разработка современной микроволновой системы посадки MLS, которую вело АО «НИИ Сапфир», закончилась полуобразцом — полумакетом, который так и не прошел испытания. Пока выполнялась ОКР, Сапфир плавно разваливался и пришел к концу 2017 года с «впечатляющими» результатами со знаком минус: выручка за год 90 тысяч рублей (это не опечатка: тысяч, а не миллионов), состав сотрудников — 7 человек. Среди них есть даже один инженер. Знакомая картина, не правда ли? Тем более странно, что некогда процветающее предприятие было колыбелью для московского АО «Азимут», которое открестилось от своей альма-матер, предварительно облегчив последнюю от имеющихся ресурсов.

Поэтому АРП-11 в составе РСП-10 все также изготавливается по имеющимся заказам, правда полноценным изготовлением это сложно назвать. В основном это ремонт и разукомплектование разнообразных ЗИПов, хотя судя по объему контрактов можно было провести полноценную модернизацию, уменьшив объем железа в аппаратной раз так в пять. Однако, это история уже другого разваливающегося предприятия, на которой мы не будем останавливаться.

От АРП «Пихта-3,4» к АРП «Комар-2»

Бум интегральных микросхем совпал с ОКР, которая выполнялась в АО «НИИ Сапфир» в 1980-х годах. Я пользуюсь этим последним названием, поскольку контора несколько раз меняла наименования. ОКР «Пихта» предусматривала создание унифицированного ряда АРП для гражданского и военного применения, с числом одновременных каналов пеленгования от 2 до 18. Этот пеленгатор содержал уже фазовую антенную систему с 16 вибраторами, с радиусом решетки 1.6м. Примечательно, что с особенностями для военной версии решили вообще не заморачиваться — в нее вошли точно такие же блоки и антенна, как и в гражданской. Пихта-3, как АРП на колесной базе ГАЗ-66, дополнительно содержал систему жизнеобеспечения, а Пихта-4, предусматривающая контейнерный вариант, представляла из себя авиационный контейнер, содержащий те же блоки, забитые в тесное пространство контейнера.

Для военной антенны сделали единственное исключение — ее лучи складывались, чтобы ее можно было упаковать в ГАЗ-66 (про зеленый цвет я молчу). Во время смотра военной техники в Борисполе (внимание: это был еще Советский Союз!) наш конструктор с трудом, чертыхаясь, извлекал из задней двери это чудо дизайнерского искусства. Конечно, такая большая антенна военным вообще была не нужна. Но что поделаешь — унификация!

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

Инженерные решения АРП на то время были достаточно продвинутыми, в ногу со временем. Конечно, своего радиоприемника в АРП не было — использовалась радиостанция Р-863. В тракте обработки находился синхронный фильтр с квадратурным разложением, сделанный уже наполовину цифровым способом. По линии связи передавались не напряжения север-юг, запад-восток, как в АРП предыдущих поколений, а формировался многочастотный код. Индикаторы пеленга из электромеханических стали полностью цифровыми. Параллельно быстро начали появляться процессорные технологии, поэтому Пихта как-то быстро начала устаревать. В то время я уже был главным конструктором нового пеленгатора с процессорной обработкой, о чем подробно рассказал в статье «АРП Платан: радиопеленгатор с FreeBSD».

АРП, РП, DF, Direction Finder, Комар-2, Komar-2

Блок АРП «Комар-2»

Следующей вехой были два пеленгатора, которые по сути были практически одинаковыми: АРП «Комар-2» и «Радиан-90». Первый входил в состав военного РЛК, который разрабатывала Tesla Pardubice, второй — в состав военного локатора «Радиан-90» разработки челябинского НИИИТ. Поскольку я уже писал про АРП Комар-2, подробности опустим. Замечу лишь, что точно также опытные образцы АРП «Комар-2» такими и остались — серию военные не заказывали, что в принципе понятно: 90-е годы, Тесла Пардубице ушла вместе с Чехией под крыло НАТО, да и сам НИИИТ с локатором «Радиан-90» был не в лучшей форме. Технически, это был весьма продвинутый АРП, с обработкой на встраиваемой микро-ЭВМ пока еще советского производства, и имеющий складную фазовую 8-вибраторную антенну. Это был мой первый проект военного аэродромного АРП, в котором я был главным конструктором.

Платан-В?

Периодически МО РФ предпринимало попытки запустить целый аэродромный комплекс навигации, связи и посадки, с разработкой современных наземных средств. На излете 80-х годов таковой была ОКР «Мельхиор», где предусматривалась разработка стационарных, мобильных и высокомобильных комплесов данного назначения. Соответственно в ходе ОКР «Мельхиор» предусматривалось создание АРП-С, АРП-М и АРП-ВМ. «Мельхиор» во второй своей реинкарнации снова возник относительно недавно как ОКР «Рейс — 2000» с аналогичным названием «Разработка автоматизированной системы управления полетами, навигации, посадки, связи для военных аэродромов». Что самое интересное, название ОКР всплывает на первых местах в поисковой выдаче не на сайтах заказчиков и исполнителей, а в материалах арбитражных судов, отражая тяжбу МО с исполнителями в ходе выполнения ОКР  🙂 Точно также, в составе комплекса требовалась разработка радиопеленгатора.

Было бы странно, если Азимут не попробовал вписаться в этот проект. Однако, потеря специалистов и последующее скольжение вниз от R&D фирмы до производственно-строительной компании сыграло свою роль: поддерживать на плаву серийные изделия еще можно, но разработать новый АРП — уже нет. Была сделана попытка слепить АРП из тех узлов Платана, которые идут в серии, и тут в полной мере проявили себя просчеты в построении радиоприемного тракта, про которые я написал в статье АРП DF-2000: что пошло не так с этим радиопеленгатором. В условиях жесткой помеховой обстановки, которая сопутствует размещению АРП на военных позициях, приемник прямого усиления просто затыкался. Разработкой широкополосной антенны 100 — 400 МГц занимались уже непрофессионалы, и в результате военные заказчики зарубили этот проект, наспех состыкованный из узлов, разработанных еще в 2000-х.

Штрих к нынешним возможностям завода АО «Азимут»: как-то позвонил инженер, который сопровождает серию АРП DF-2000 (по факту не инженер а product manager). Возникла проблема на пеленгационной позиции в Ростове: АРП дает большую ошибку, зависящую от азимута воздушного судна. До того как сделать звонок мне они конечно попытались решить проблему своими силами, как то: меняя радиоприемники, блок обработки и даже источники питания  😈 Дело дошло до того, что они решили что на аппаратную действует помеха и заэкранировали радиоприемный тракт  🙂 (хотя он и на самом деле очень чувствителен к помехам). В общем, действовали так, как действует горе-автослесарь, который меняет все запчасти по кругу, пока авто не заработает. Между тем, эта неисправность очень характерна, и ее причина — отказ одного из вибраторов антенной системы. Зависимость величины ошибки от угла прихода сигнала объясняется тем, что неправильная фаза отказавшего вибратора занимает разное место в фазовой огибающей. Интересно то, что мне сразу не поверили, но когда провели тесты антенной системы — так оно и оказалось, и ростовская позиция заработала нормально.

Кстати, перед уходом из конторы я завещал оставшимся сделать контроль антенной системы в реальном времени и показал, как его реализовать. Такая система контроля была в АРП «Комар-2». Однако, план по направлениям модернизации АРП «Платан» так и остался на бумаге.

Таким образом, военная пеленгационная эволюция сделала причудливую петлю и вернулась к древнему АРП-11. После того, как мы поговорим о технологических барьерах, с которыми связана разработка нового военного АРП, в конце этой статьи я поделюсь своими заключениями относительно того, почему в нынешней системе взаимоотношений военный заказчик — исполнитель мало шансов на достижение конечного результата даже в том случае, когда эти барьеры будут преодолены.

Военный аэродромный радиопеленгатор — технологические барьеры

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

  • мобильная широкополосная антенная система диапазона 100 — 400 МГц, обладающая приемлемой фазовой неидентичностью вибраторов в рабочем диапазоне;
  • радиоприемное устройство (РПУ), обладающее высокими характеристиками электромагнитной совместимости (ЭМС), устойчивое к воздействию помех местного электромагнитного окружения;
  • тракт обработки сигнала, выполненный с учетом ограничений по применению комплектующих.

Антенная система

Очевидно, что в пеленгаторе должна использоваться фазовая антенная система (АС). Она обладает свойством дискретности, то есть ее составные узлы могут быть отрегулированы порознь, что гарантирует работу антенны в сборе. В отличие от фазовой антенны, характеристики амплитудной (такая как в АРП-11) достигаются только совместно, что ведет за собой сложности в достижении требуемых параметров в процессе регулировки.

Поскольку к военному аэродромному АРП не предъявляются высокие требования по точности, с одной стороны, и требуется высокая мобильность — с другой, антенна может быть малогабаритной и как вариант — складной. Стандартные требования по времени развертывания АРП (из которого львиную долю занимает развертывание АС) — 30 минут личным составом из 2-х человек. Эта логика ведет нас к возможному варианту реализации 8-ми вибраторной антенне диаметром около 1.5м. Уменьшение базы АС, помимо увеличения ошибок, связанных с переотражениями, ведет к другому неприятному эффекту — возрастает роль фазовой неидентичности вибраторов. И если разброс по фазе более чем 5° для большой 16-вибраторной антенны не является критичным, то для малогабаритной антенны это становится преимущественным фактором. При этом, ухудшение точности идет сразу с двух сторон: с одной стороны, уменьшается база и как следствие амплитуда фазовой девиации полезного сигнала относительно фазовой ошибки вибраторов, с другой — уменьшается количество вибраторов, что снижает возможности по подавлению самой фазовой ошибки. В результате увеличивается инструментальная погрешность собственно антенной системы.

Таким образом, мы приходим к необходимости разработки эффективного вибратора на диапазон 100 — 150, 220 — 400 МГц. При этом лишний участок 150 — 220 МГц в существующих реализациях приходится обслуживать «бесплатно». Некий «усредненный» вибратор, покрывающий весь диапазон, будет работать плохо по следующим причинам:

  • несоответствие фиксированной электрической длины изменяющейся в 4 раза частоте;
  • наличием резонансных частот, в которых резко ухудшается фазовая диаграмма АС;
  • высокий КСВ, снижающий чувствительность и как следствие дальность пеленгования;
  • плохое согласование вибратора с фидерным трактом, что приводит к проблемам приема на подключаемые кабели и как следствие искажение фазовой диаграммы.

Решение задачи разработки эффективного вибратора может выполняться в двух направлениях.

1. Двухдиапазонный вибратор. Физически он будет состоять из двух компонент, каждая из которых рассчитана на свой поддиапазон. Остается открытым вопрос электрического согласования такой системы и какими фазовыми характеристиками она будет обладать.

2. Вибратор с переменной электрической длиной, зависящей от того в каком из поддиапазонов: 100-150МГц или 220-400МГц принимается сигнал. Решение подобного типа использует компания Rohde&Scwarz.

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

Радиоприемное устройство

Для сложной помеховой обстановки совершенно не годится цифровое РПУ, выполненное по чистой схеме SDR. Почему — об этом подробно в вышеупомянутой статье АРП DF-2000: что пошло не так с этим радиопеленгатором. Военный аэродромный АРП требует применения приемника, выполненного по супергетеродинной схеме, с хорошим преселектором и эффективной АРУ. Причем это не будет классическое связное РПУ, потому что в радиотракте необходимо обеспечить прохождение двух сигналов: информационного с коммутируемого кольцевого вибратора и опорного с центрального вибратора. В соответствии с этим, появляются следующие альтернативы.

1. Классическая реализация с SSB (однополосным модулятором) в антенном тракте. Замечу, что поскольку в АРП «Платан» сейчас используется не специализированный пеленгационный, а стандартный приемник из АППЦ, однополосный модулятор там по прежнему присутствует. Недостатки этого метода известны: потери на SSB и неоправданное расширение полосы пропускания РПУ, связанное с необходимостью пропуска двух разнесенных частот. Есть еще один, не столь очевидный минус: ограничение по масштабированию, когда может понадобиться пеленгование ЧМ и ППРЧ сигналов. В этом случае низкое значение частоты обработки (такое как 4200Гц в АРП «Тополь» или 5550ГЦ в АРП «Пихта») ставит крест на дополнительном функционале.

2. Интересная реализация двухканального радиоприемного тракта, выполненная следующим образом:

Direction Finder, DF, АРП, радиопеленгатор, АРП "Пихта-2С", двухканальный радиоприемник

Двухканальный радиоприемник АРП «Пихта-2С»

Такую реализацию я заложил в судовой АРП «Пихта-2С». Впервые в этом радиопеленгаторе было применено специализированное РПУ своей разработки. Поскольку судовые радиостанции работают в диапазоне 100-180 МГц и используют частотную модуляцию, вариант SSB не мог быть использован. В этом РПУ за счет разнесенных по частоте гетеродинов формируется несущий и опорный сигнал стабильной частоты, в результате чего ЧМ которая присутствует во входном сигнале полностью подавляется. Остается только информация о фазовой модуляции, вызванной коммутацией вибраторов антенной системы.

3. Раздельные РПУ для центрального и кольцевого канала, связанные общим синтезатором. Особенности такого построения — это девиация выходной частоты РПУ, связанная с изменением частоты входного сигнала. Другими словами, выходная частота РПУ по центральному и кольцевому каналу не является стабильной, что предъявляет дополнительные требования к тракту обработки сигнала, и в частности исключает прямое использование преобразования Фурье (FFT).

Для устойчивости к помехам РПУ АРП должен иметь возможность точной перестройки относительно узкополосного преселектора и иметь внеполосную АРУ.

Тракт обработки сигнала

Этот компонент наиболее чувствителен к требованию по использованию отечественных комплектующих. Номенклатура встраиваемых вычислительных средств, выпускаемых отечественной промышленностью, серьезно ограничена. За бортом сразу оказываются производительные ARM и DSP процессоры, а также матрицы FPGA. Максимально, на что можно расчитывать — отечественные аналоги контроллеров (MCU)  STM32. Это отбрасывает нас во времена разработки АРП «Комар-2», когда операцию вычисления арктангенса приходилось выполнять численным методом, по причине отсутствия операций с плавающей точкой. Конечно, прибавка в скорости на порядок не помешает, но тесные рамки аппаратной архитектуры все равно будут сказываться. Пожалуй единственное преимущество MCU — это время начало работы, которое можно характеризовать одной фразой: начинает работать сразу. В отличие от встраиваемых платформ на базе Linux, где ждать загрузки операционной системы нужно ждать несколько десятков секунд.

На одной из ARM конференций, организованных Texas Instruments, один из докладчиков рассказывал как они обходили это ограничение. Заказчику демонстрировался включенная LED панель системы в то время как она продолжала свою загрузку. Не самый жестокий трюк для надувательства военпреда )

И само собой, тракт обработки может содержать следующие модули, которые расширяют функциональность АРП:

  • Защита от перемодуляции входного сигнала. То что в ТТЗ написан максимальный коэффициент амплитудной модуляции 80%, ничего не значит. Часто с борта идет перемодуляция с пропаданием сигнала. Радиопеленгатор в этом случае должен сохранять стабильное пеленгования без срыва обработки.
  • Подавление вертолетного эффекта. При работе радиостанции с вертолета возникает паразитная фазовая модуляция, связанная с переотражением передаваемой несущей от лопастей вращающегося вертолетного винта. Тракт обработки обнаруживает наличие дополнительных компонент во входном сигнале, связанных с вертолетным эффектом и подавляет их с помощью включения специальной фильтрации. Вертолетный эффект не изменяет характеристики радиосвязи и влияет только на пеленгацию, из-за фазового принципа АРП.
  • Обнаружение выхода из строя вибратора. В классическом пеленгаторе выход из строя вибратора ведет к прекращению работоспособности АРП. В данном случае процессор с помощью демодулятора определяет вышедший из строя вибратор и исключает его из обработки, дополняя пропущенные значения интерполяционным алгоритмом. За счет некоторого увеличения погрешности пеленгования работоспособность АРП сохраняется до замены неисправного вибратора.
  • Адаптивное сокращение времени пеленгования. Для бортов, не находящихся на предельной дальности, АРП может выдать отсчет пеленга заданной точности не используя всю длительность пеленгуемого сигнала 0,5с. Для подобных сигналов пеленг может выдаваться с ускоренным темпом с периодом 0,2с.
  • Поиск по частоте. АРП может работать в режиме быстрого поиска сигнала по 10 предопределенным частотам. В зависимости от настройки, пеленгатор может остаться на частотном канале на котором был обнаружен сигнал, или продолжить сканирование с записью пеленга в журнал.
  • Оценка дальности и угла места. АРП может оценивать и выдавать косвенную приближенную оценку этих двух параметров. Это особенно полезно, когда радиопеленгатор используется в паре с радиолокатором для опознавания целей. В этом случае оператору проще ориентироватся на индикаторе обстановки;
  • Оценка целостности сигнала. Данная опция повышает устойчивость к помехам РЭБ. АРП позволяет определить направление на источник помехи вне зависимости от используемого вида модуляции.

В настоящий момент, разработаны прототипы этих компонентов АРП. Как только мы выберем самые успешные реализации, сборка образца военного аэродромного АРП не за горами  🙂

Военный аэродромный радиопеленгатор — административные барьеры

Прочитал сегодня очередные новости. ПАО «Звезда» сорвало поставку дизелей для 19-ти малых ракетных кораблей. Самое интересное заключается в том, что еще до подписания контракта было известно, что эта фирма не в состоянии выпускать более одного двигателя в год, что не помешало ей освоить все полученные авансы (ну а что, банкротить же нас не будут). Другой пример — АО «НИИ Сапфир», у которого в прошлом разработки радиопеленгаторов и систем посадки MLS. Сейчас в этой фирме среднесписочная численность персонала — 7 человек, из которых всего один инженер.

Интересная получается картинка. Некогда знаменитые оборонные предприятия, включая упомянутые выше, которые по факту своего рождения получили целый иконостас лицензий на разработку, производство и ремонт военной техники, по прежнему могут заключать контракты с Минобороны. Это несмотря на то что выполнить эти контракты они не в состоянии: выполнять просто некому, все квалифицированные инженеры давно уже занялись более доходным занятием (зато есть генеральный директор с печатью, который может надувать щеки и слать договоры на подписание). С другой стороны, коллективам которые могут вести квалифицированную разработку, доступ к военным заказам закрыт. Я конечно не имею в виду эти же самые дизели, стволы для пушек и гусеничные катки — пусть этим занимаются заводы, на которых еще стоят станки марки ДиП («догоним и перегоним»), а то и довоенные немецкие. Современные же вооружения критически зависят от средств связи, навигации и радиолокации, и это как раз та область, в которой привязанность к старым технологиям только мешает. И в эту область можно было запустить просто огромное число специалистов, которые могли просто перебить традиционные предприятия по части достигнутых результатов.

Посмотрим в сторону наших потенциальных противников, этих акул империализма — как они расправляются с малым бизнесом на потребительском рынке (как нам твердят постоянно), а уж о государственных контрактах наверное и смысла нет говорить? Ан нет, вот например в США работают программы SBIR/STTR, которые позволяют маленьким компаниям участвовать на равных в военных разработках. Программа стартанула в 1992 году и будет продолжаться по крайней мере до 2022 года. По американским правилам, каждое федеральное агенство с бюджетом более 100 млн. долл. должно выделять определенный процент для контрактов и грантов для малого бизнеса. Что касается американского Министерства Обороны, ежегодно для целей разработки малому бизнесу выделяется бюджет в 1 млрд. долларов, причем около половины этого бюджета идет малым предприятиям в которых работает менее 25 человек и треть — в которых работает менее 10 (если вас интересуют пикантные подробности, то пятую часть гарантированно отдают меньшинствам и фирмам которые возглавляют женщины). По статистике, каждый год примерно четверть компаний малого бизнеса выигрывает тендер в первый раз. Какой нереальный разрыв между подходами к малому предпринимательству в США и у нас! Все разговоры о защите отечественного малого бизнеса это просто пустые слова по сравнению с реальными американскими бюджетами, которые говорят сами за себя.

Положения этих программ настолько интересны, что я остановлюсь на этом немного подробнее.

Программа SBIR/STTR для участия малого бизнеса в военных разработках в США

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

Этап I носит название «осуществимость проекта» и включает в себя только научные, технические и коммерческие предпосылки для предлагаемых идей и решений — нечто вроде НИР. Этот этап оплачивается в относительно небольшом размере. На этапе II выделяются деньги на разработку прототипа, который должен подтвердить достижение целей этапа I — это больше соответствует нашей гостовской стадии эскизно-технического проекта. На этапе III выполняется коммерциализация проекта — привлечение инвесторов для доведения проекта до стадии производства и поставки. Очевидно, что инвестора найти гораздо проще, если у вас есть работающий прототип.

Организаторы программ подчеркивают цели, для чего это было придумано. Каждая строчка здесь буквально кричит: почему это не делается у нас?!

Цели программ (в скобках мои комментарии):

  • стимулировать технологические инициативы в частном секторе (малый бизнес это не только торговля мобильными телефонами и стрижка собачек, но и современный уровень техники — американское государство об этом заботится!);
  • использовать возможности малого бизнеса для в разработках федерального правительства;
  • поощрять участие фирм, неблагополучных в экономическом плане (надо же, за государственный счет лузерам помогают);
  • обеспечить сотрудничество между малым бизнесом и исследовательскими институтами (что очень важно, поскольку последние располагают большим массивом информации по перспективным направлениям, уже достигнутым результатам и наиболее актуальным задачам);
  • сократить разрыв между исследованиями и внедрением на рынке (это звучит чисто по-американски).

Подчеркну особенность каждой из двух программ:

SBIR
Своими силами должен быть выполнен объем в 2/3 от всей разработки на I этапе и 1/2 на втором.

STTR
Работа выполняется в партнерстве с исследовательскими институтами в пропорции:

  • 40% получает малый бизнес;
  • 30% работ выполняют НИИ.

Быть военному пеленгатору или не быть?

Последнее время ознаменовалось странной активностью вокруг этой темы  🙂 Появляются разные люди — от директоров заводов до посредников, которые предлагают сделать АРП. Причем, все они действуют по разному: одни пытаются получить подлинники АРП-11 и начать клепать это старье — а что, Минобороны платит. Другие подозревают нас в том что мы прячем под подушкой чертежи нового военного радиопеленгатора и предлагают их выкупить (за смешную сумму). К слову, готовой КД у нас нет, но разработки которые можно в КД быстро превратить есть. Третьи размахивают флагом, говорят о судьбах Родины и предлагают дружно напрячься и сделать радиопеленгатор забесплатно и своими силами, а Родина конечно потом не забудет, все поймет и простит.

Их всех объединяет только одно: эти люди потерялись в прошлом времени, когда можно было платить инженерам что-то типа 17 тысяч рублей в месяц и одновременно получать сотни миллионов рублей на поставках в МО. Их очень сильно ломает, когда называют реальную стоимость проекта. Они уходят, делают круг — ищут специалистов, не находят их и возвращаются. С каждым возвращением у них потихоньку меняется представление об окружающем мире. Не знаю, меняется ли это представление у самого Минобороны — похоже, там еще не сложилась картинка что все не очень хорошо. Или наоборот — достаточно хороших нарисованных картинок и мультиков, ведь мы живем в век пиара — без него никуда.

В общем, сильно похоже на то, как говорят ИТ-шники: деньги на новый мерс есть, на новый сервер нет. На этом и завершим наше эссе  🙂

STM32: добавляем Ethernet

В предыдущей статье я рассказывал о том, как хорошо работать с микроконтроллерами STM32 без операционной системы. Однако может наступить момент, когда вам понадобится наладить взаимодействие с вашим МК по сети. Например, что-нибудь типа умного дома или передача отладочной и диагностической информации на web страницу. Наличие Ethernet интерфейса — это конечно сильный аргумент для того, чтобы

Читать дальше

STM32: жизнь без операционной системы

Возможно, вы очень хотели заняться чем-нибудь, что связано с чипами, прошивками, возможно даже использовать новые знания для домашних поделок — мало ли вещей, которые можно автоматизировать, начиная от контроллера солнечной батареи и заканчивая автоматом запуска бензоагрегата? При этом, не сильно погружаясь в особенности операционных систем Linux / Windows и не используя сильно избыточные платы, такие

Читать дальше

ARM + DSP. Распределяем память

В процессе переноса алгоритма распознавания маркеров на OMAP платформу я обнаружил, что начисто забыл каким образом высчитывается память, которая распределяется между ARM и DSP. Восстанавливая крупицы ценной информации, которые щедро разбросаны по разным мануалам и форумам Texas Instruments, я решил зафиксировать с таким трудом добытые и упакованные в некоторое подобие осмысленной системы данные.

Мы будем

Читать дальше

Препарируем Blockchain

Блокчейн используется не только в криптовалютах, а также в тех областях где нужно сопровождать доказанную последовательность определенных событий или состояний. Об этом буквально и говорит само слово blockchain: цепочка блоков. Таким образом, с системной точки зрения мы имеем блоки и связи между ними. Наша задача — препарировать блок таким образом, чтобы установить наличие данной связи

Читать дальше

Google Contacts API и авторизация OAuth2

Когда в адресной книге Google набирается несколько тысяч клиентов, становится тяжеловато ворочать этим объемным списком. Импорт/экспорт в странички Excel становится неудобным; кроме того появляются CRM-подобные приложения, в которых хотелось бы интегрировать самые разные базы данных, в том числе и контакты Google. Значит, пришло время доступиться к нашим контактам через консольные приложения, используя Google Contacts API.

Читать дальше

Согласованный фильтр 2D: поиск соответствия в изображении

Согласованную фильтрацию можно рассматривать как во временной, так и в частотной области.

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

Еще

Читать дальше

Алгоритм MUSIC: MUltiple SIgnal Classification в оценке спектра

Вот мы наконец и добрались до этого метода. Литературы по этой технике — целая куча, но как обычно смысл ускользает. Само описание MUSIC достаточно простое: это поиск экстремума произведения двух матриц. Однако что происходит внутри этих матриц — с этим нам предстоит разобраться.

Эту тему довольно сложно понять с нуля, не имея относительно прочной опоры

Читать дальше