Математика для программиста

Автор темы demetrius2003 
ОбъявленияПоследний пост
ОбъявлениеРаботодателям и кадровым агентствам: Размещение вакансий и рекламы в форуме26.03.2008 03:07
ОбъявлениеРекомендации по использованию теха в нашем форуме15.04.2017 21:40
ОбъявлениеПравила и принципы форума «Высшая математика»28.10.2009 15:17
25.02.2019 20:52
..
Цитата
zklb (Дмитрий)

вы с кем разговариваете?

С ТС. А вы?..
25.02.2019 21:52
хм
Цитата
alexo2
Цитата
zklb (Дмитрий)

вы с кем разговариваете?

С ТС. А вы?..

странно спрашивать, если я вам вопрос и задавал. интересно, как ваша неуместная бахвальба и сыпанье аббревиатурами поможет ТС разобраться в вышке?
25.02.2019 23:11
...
Цитата
zklb (Дмитрий)
Цитата
alexo2
Цитата
zklb (Дмитрий)

вы с кем разговариваете?

С ТС. А вы?..

странно спрашивать, если я вам вопрос и задавал. интересно, как ваша неуместная бахвальба и сыпанье аббревиатурами поможет ТС разобраться в вышке?
Хочу сказать, что ничего сложного нет, было бы желание.
Естественно, если он действительно шарит как программер.
Я ещё видео выложу, как большой управляет маленьким коптером. Пока не сняли. Погода нелётная...
Кстати, о криптографии, - как уже говорил ранее, если для большого коптера мы сами создавали прошивку полетного контроллера, то мелкий (syma, сантиметров 20 по максимальному размеру) был уже в сборе - штатный, китайский. И, как и положено, - с вытравленными даже надписями на микрухах, с "невыдергиваемыми" прошивками.smile
Но, у него имеется видеокамера (хоть и "хиленькая", но все же.) Управление - либо с пульта радио, либо со смартфона по wi-fi. Видеопоток - также на смартфон.
Родилась идея - поуправлять мелким коптером мозгами крупного прямо в полете. Вначале удалось взломать wi-fi стационарно (благо, оказался старенький алгоритм шифрования WEP). Затем, "для чистоты эксперимента" - перехват управления прямо в полете именно мозгами большого коптера и подчинение командам уже с большого коптера (на такой взлом и перехват управления - порядка 70 секунд времени, несколько тысяч сеансов "рукопожатия"smile). Обратная связь - видеопоток с камеры мелкого, перехваченный на большой...
Так что далеко не Боги горшки обжигают..smile



Редактировалось 2 раз(а). Последний 26.02.2019 00:32.
03.03.2019 17:19
Администраторов тут, видимо, нет...
Ещё используем минитепловизор (матрица 8х8). Баночка с водой имитирует разогретый движокsmile.
На двух картинках - вид с камеры (чередующийся для наладки с предобработанным цветовым фильтром на желтую метку кадром) и вид с тепловизора. Дополнительный фактор для распознавания.
Кстати, для интерполяции в более-менее "нормальную" тепловую картинку (а не 8х8) пришлось применить фильтр Ланцоша...
https://www.youtube.com/watch?v=kUKDmtVScmk
16.03.2019 10:03
Администраторов по-прежнему нет...
Примерно год назад игрались с плисинами (FPGA).
Цель была - предобработка видеопотока от одной из камер дрона простенькой, но пригодной для этих целей OV7670, а именно, - перевод в черно-белое изображение и выделение границ объектов. Далее, обработанный таким образом поток должен был передаваться в следующие алгоритмы уже верхнего уровня. Вся прелесть использования ПЛИС именно практически в он-лайне (для наших целей - с частотой не менее 20 кадров в секунду). Без их использования пришлось бы напрягать мозги основных вычислителей на эти, вроде бы, "не сильно сложные" но все равно ресурсно-затратные алгоритмы. В принципе, и чисто программно, OpenCV с этой задачей неплохо справляется, но грузит ядра вычислителя более чем наполовину...
Использовали алтеровские FPGA Cyclone IV (с максимальной частотой, обеспечиваемой двумя делителями 200 МГц, на 6200 элементов - предварительные расчеты показали, что таких характеристик должно хватить на поставленную выше задачу).
Для отладки нужен был вывод результатов на монитор (которого в дроне не будет по понятным причинам). Пришлось изучить интерфейс камеры по даташиту, - оказался довольно простым, - в двух байтах передается информация о цвете каждого пиксела в несколько урезанном виде RGB565 - самый "полный" из всех возможных режимов, т.е., как "запхнуть" инфо о цветности в два байта (16 бит)? - решено просто - красный и синий урезаны до 5 бит, зеленый - до 6. Ну, ещё, конечно, стробы горизонтальной, вертикальной развертки и клок самого кадра. Собственно, и всё..smile. Затем - найти схему, изучить VGA-интерфейс и "на коленке" быстренько из имевшихся резюков, даже не паяя, а просто скручивая, "изобразить" резисторный делитель для VGA. Получилось куча проводов (интерфейс VGA - то аналоговый..) Ну, и, конечно, "подучить" сам язык для плисок Verilog и среду для программирования алтеровских чипов Quartus.
Тогда ещё не писали видео, поэтому запилю коллаж из трех фоток - собственно наладочная плата с чипом плисины с камерой и "собранным"smile делителем, схема самой резисторной сборки "наколенного" исполнения для VGAsmile и непосредственно результат...
https://a.radikal.ru/a21/1903/11/73c46d8781a5.jpg
Это был период, когда мы не хотели использовать нейросети, а "бодяжить" распознавание "своими силами" и в основном алгоритмами с четкой логикой. Однако, в итоге, залезли в такие "дебри", что поняли - без "нечетких" алгоритмов не обойтисьsmile
Так в итоге и пришли к "стандартным" нейросетевым пакетам, благо, примерно в тот же период гугл открыл коды для своего tensorflow.
Однако, первые же эксперименты на встраиваемых одноплатниках (микрокомпьютерах с показателями - 4 ядра по 1,6 ГГц, 1 ГБ оперативки) показали, что даже задача простого категорирования объектов решается неприемлемо долго - один кадр в секунду, и при этом грузит ядра почти на 100%. Нам нужно было, как минимум, в десять раз быстрее...
Тут как никогда кстати оказался выпуск относительно бюджетного решения для встраиваемых систем ускорителя нейросетей от интел..smile
Насколько я понимаю, все что он делает - это очень быстро работает с матрицами - умножение и сложение (собственно, в этом плане похож на видеокарту), однако обеспечивает 100 Гфлопс при потреблении менее 1 Вт. При прохождении слоев сверточной сети именно операции с матрицами (наложение ядер(фильтров) самое ресурсозатратное "мероприятие"..
Кстати, ДАРПА для новейших истребителей F35 объявила тендер на систему распознавания целей, там, в частности, есть интересное требование, которое мы "почти" покрываемsmile - удельная производительность. Им необходимо 25-50 Гфлопс/Вт. У нас сейчас - 20...biggrin



Редактировалось 1 раз(а). Последний 16.03.2019 10:30.
17.03.2019 07:23
Администраторов по-прежнему нет...
Немного о "нижнем" уровне - полетном контроллере.
Сейчас у нас две разновидности - на базе arduino due и stm32f103.
В принципе, по функционалу они равнозначны и с большим запасом соответствуют решаемым задачам - получение и обработка данных с датчиков (барометр-высотомер, акселерометр-гироскоп - 2 шт. и 2 независимых канала для надежности, магнитометр-компас, gps), управление двигателями коптера посредством ШИМ-регуляторов, выполнение внешних команд по радиосигналу (в управляемом режиме) или от системы управления верхнего уровня (в автономном режиме).
Прошивки для обоих контроллеров созданы "по мотивам" на базе адаптации довольно известной multiwii.
При этом для ардуинки использовалась её собственная среда разработки (такой себе урезанный с++), для stm - eclipse и тоже с++.
Отладочное и настроечное ПО - multiwiiWinGUI, на гитхабе есть его исходники. Его пришлось адаптировать в MS VisualStudio на c#. Его, кстати, видно на видео об отрыве винтов. Тогда для наладки связь была ещё по последовательному интерфейсу (а не по каналу радио).
Ещё один коллаж - как мы искали место в коде (для дуе), в котором непосредственно выдаются команды посредством ШИМ на регули движков. Там, собственно, должно быть понятно - непосредственно само настроечное ПО (WinGUI), место в коде, где произведена подмена вычисляемых значений на константное (наше) и соответственно, то что увидели на входах регуляторов ШИМ посредством логического анализатора - заданную ширину импульсов:
https://c.radikal.ru/c24/1903/97/24e0908969ea.jpg



Редактировалось 2 раз(а). Последний 17.03.2019 07:42.
17.03.2019 15:13
Администраторов по-прежнему нет...
А это - подключение GPS - приемника (для любителей повычислять координаты - перед тем как плеваться в консоль, прога применяет смещениеbiggrin)
https://www.youtube.com/watch?v=fdC_D2eXbtA
17.03.2019 15:59
Администраторов по-прежнему нет...
интересноbiggrin



Редактировалось 9 раз(а). Последний 18.03.2019 18:55.
24.03.2019 18:15
мысли
Цитата
alexo2
Кстати, ДАРПА для новейших истребителей F35 объявила тендер на систему распознавания целей, там, в частности, есть интересное требование, которое мы "почти" покрываемsmile - удельная производительность. Им необходимо 25-50 Гфлопс/Вт. У нас сейчас - 20...biggrin
я учился немного на сау, так вот скажу вам, что гфлопсы годятся для продаж, но не для оборонки, лучшие компьютеры в самолётах авм(аналоговые вычислительные машины), они самые быстрые, т.е. сузьте круг решаемых задач до достаточных, раскидайте на схемы, спаяйте и никаких гфлопсов,цпу и архитектур афони нейманова ;) программизм вредно влияет на генофонд человечества biggrin



Редактировалось 7 раз(а). Последний 24.03.2019 18:31.
20.04.2019 10:14
..
Немного о "малозаметности".
Коль скоро дрон задумывался как "несколько специфического" применения, то надо было подумать и о технологиях стелс.
Как известно, стелс - комплекс мер. Но, кое-что оттуда удалось перенять и нам.
Например, - исследование собственного излучения, как идентифицирующего фактора для дальнего обнаружения.
Тесты на оборудовании для испытания на ЭМС (электромагнитную совместимость - есть такое оборудование на работе) показали, что самый мощный спектр - на частотах от сотни Гц до 1 кГц - излучают силовые провода на движки и сами движки на разных скоростях вращения. То и понятно, - там токи - несколько десятков ампер. Хотя в эту же примерно полосу попадает и ещё одно излучение с частотой около 300 Гц. Оно, хоть и меньше по мощности примерно на 4-ре Дб, но очень четкое - с выключенными движками спектр практически в виде одной линии на картинке. Это несколько озадачило - что это может быть? Потом поняли - это частота программного цикла полетного контроллераsmile.
"Погружение" в теорию волнsmile показало, что локация таких источников сверхдлинных волн (с длиной волны более 300 км) сильно затратное мероприятие, таким образом, в наших условиях им можно пренебречь.
Следующими по мощности являются частоты излучения кварцев оборудования - 32 МГц и 56 МГц. Однако, на расстоянии 10 м даже чувствительное испытательное оборудование их перестает улавливать. Есть и ещё какие-то частоты в МГц-овом диапазоне (например, шина CAN-интерфейса дает что-то около 10 МГц), но они вообще сильно маломощные.
Делаем вывод - собственное излучение не влияет на малозаметность для нашего применения.
Далее - задачка посложнее - противодействие различным радарам, специализирующимся именно по малоразмерным целям.
Они работают на ГГц-овых частотах, что понятно, - длина волны должна быть сопоставима с размерами отражающих частей объекта. В нашем случае, - это максимум несколько сантиметров. Вот и эти радары работают преимущественно в сантиметровом диапазоне.
Опять же "покурив" теориюsmile, нашли один интересный способ стелс - технологии - применение покрытия из оферриченного каучука. Если упрощенно, - то в некую основу (каучук или просто резина) добавляют частички железа, таким образом, чтобы объемно они были распределены по некой толщине. Толщина, размеры частиц, их плотность распределения и форма являются "секретными" сущностями, зависящими от длины волны, против которых производится защита. Вобщем, вместо того, чтобы "тупо" отразить волну, покрытие превращает его энергию в тепло.
Если с толщиной покрытия все более-менее понятно (она должна быть не менее одной четверти от длины волны), то с остальным пришлось экспериментировать - в жидкую резину замешивали железные опилкиsmile в разных пропорциях, разных размеров и формы.
После доброго десятка экспериментов, секреты оказались "секретами полишинеля" и удалось для частот 25 - 76ГГц снизить заметность в несколько раз. По крайней мере, устойчивое засечение дрона ранее было на расстоянии около километра (там почему-то зависит ещё от высоты полета), после "обертывания" в подготовленную "одежку" - стал засекаться на расстоянии не более пары сотен метров. Это вполне удовлетворительно - подлетев на такое расстояние, дрон будет в состоянии выполнить свою задачу. Но общий вес, при этом, увеличился почти на 300 грамм.
Кстати, понятно, почему это не используется (вернее, используется, но в гораздо более сложном и дорогом варианте) в реальных больших ЛА - размеры отражающих частей там метры (а то и десятки метров). Понятно, что "городить" покрытие толщиной от метра никто не будетbiggrin.
Ещё из нерешенных пока задач - тепловой след (засекается "средненьким" тепловизором на расстоянии 500-600 м), и звук с частотой работы движков (примерно такое же расстояние засечки).
Идеи, как это снизить есть. Будем экспериментировать..
Ну, и, конечно, пиксельная раскраска - куда ж без неё!..biggrin

P.S. - ТС-у - вот как надо работать, а не сопли на кулак мотать..biggrin



Редактировалось 1 раз(а). Последний 20.04.2019 10:16.
20.04.2019 17:52
Добавлю перца..
Кстати, на некоторых профильных форумах некоторые, видимо, диванные аналитики ("специализды") рассказывали, что способ оферриченного каучука если и даст эффект, - то очень небольшой - порядка нескольких процентов. Хотел бы я глянуть на их реальные рожи...biggrin
22.04.2019 03:12
сопли-кулак
Цитата
alexo2
P.S. - ТС-у - вот как надо работать, а не сопли на кулак мотать..biggrin
я не знаю кто такой ТС, но я как инженер долго мотал сопли на кулак, потому, что не мог найти топливо, способное донести до следующей звезды массу звёздолёта, разогнать до 1/3 скорости света тело, теперь же ясно всё и прозрачно: антиматерия, антиводород, а не анамезон как у ефремова, на таком топливе вполне можно доковылять до веги(как в романе)! дело за инженерами-технологами, теперь я знаю, что моя мечта осуществима! если человечество не погрязнет в свиньячих финансовых разборках, а дружно возьмётся за космос, то межзвёздные перелёты - дело ближайщих ста лет!!!
https://www.youtube.com/watch?v=dk7p66pWyZs



Редактировалось 1 раз(а). Последний 22.04.2019 03:16.
Извините, только зарегистрированные пользователи могут публиковать сообщения в этом форуме.

Кликните здесь, чтобы войти