Вернуть квадрокоптер качественый и бракованный в магазин – инструкция в 2023 году

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году Лодки

Методы поиска неисправностей в электронных схемах » сайт для электриков – статьи, советы, примеры, схемы

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

Основные способы поиска неполадки

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

1. Проверка работоспособности прибора. Не всегда случается так что устройство совсем «мёртвое», нужно проверить не включается прибор совсем, или включается и сразу выключается, или же не работают какие-то конкретные кнопки или функции.

Например, при ремонте LCD-мониторов встречается такая проблема как выход из строя подсветки. При этом монитор может либо не включатся совсем тогда его индикатор моргает, либо же индикатор указывает на включенное состояние, но изображения нет. В таком случае если посветить фонарём в экран можно увидеть, что изображение все-таки есть и монитор как бы работает, но он тёмный – и это только один из примеров, когда предварительная проверка упрощает диагностику.

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

Смотрите про коптеры:  Откройте для себя лучшие дроны Apex для любых приключений | Купить сейчас

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

Итак, обобщенным алгоритмом поиска неисправности является:

  • Осмотр платы;

  • Определение чрезмерного нагрева электронных компонентов платы;

  • Измерения и прозвонка мультиметром;

  • Использование осциллографа и других приборов;

  • Замена вышедшей из строя детали или блока.

Визуальный осмотр

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

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

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

После этого осматривают наличие следов нагрева или сажи на плате и поврежденные компоненты. Рассмотрим, как выглядят неисправные электронные компоненты. Например, корпуса неисправных транзисторов и сгоревших диодов разрывает или они трескаются.

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

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

Как определить сгоревшие конденсаторы? Они в основном пробивают «накоротко» между обкладками и, если стоят в силовой цепи – тогда повреждаются дорожки платы или корпус конденсатора. Если цепь была слаботочной – пробитый конденсатор просто закоротит её без видимых следов протекания больших токов. Реже трескаются корпуса конденсаторов.

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

С SMD-компонентами дело обстоит несколько сложнее. Часто их крайне сложно рассмотреть на предмет целостности. Есть один метод поиска короткого замыкания в плате с SMD – это термобумага, такая бумага используется в кассовой аппарате, поэтому можно использовать любой чек. Печать на ней происходит за счет нагрева. Значит, когда вы подадите питание на плату пробитая накоротко деталь, перегреется и отпечатается на бумаге. Методику поиска неисправности с помощью термобумагивы видите на видео:

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

Для определения короткого замыкания по нагреву в большинстве случаев вам понадобится лабораторный блок питания или другой источник питания с ограничением тока. Если вы проводите диагностику цепей 220В – можете воспользоваться контрольной лампой, если есть КЗ, то лампа загорится в полный накал. Фактически она выступит в роли токоограничивающего резистора. 

При визуальном осмотре важно определить состояние контактов всех разъёмных соединений. Они должны быть чистыми, без окислов с характерным медным или серебряным блеском. Если контакты не слишком сильно окислены – их можно почистить канцелярским ластиком или деревянной стороной спички.

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

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

Подведем итоги, узнайте 5 советов по внешней диагностике электроники:

1. Большинство неисправностей можно найти при внешнем осмотре;

2. Внимательно проверяйте качество пайки и наличие микротрещин;

3. Уделяйте особое внимание силовым цепям;

4. Вздутые электролитические конденсаторы в большинстве случаев являются как причиной полной неработоспособности, так и неработоспособности каких-то отдельных функций;

5. Не всегда внешне исправная деталь является таковой.

Измерения и прорзвонка цепей

Если внешний осмотр не принес результатов, то следует проводить ряд измерений. Если устройство не подаёт признаков жизни и:

  • У него сгорел предохранитель – то с помощью мультиметра прозваниваем цепь и находим на каком участке у нас короткое замыкание. Режим прозвони в большинстве мультиметров совмещен с режимом проверки диодов (на рисунке ниже);

  • Если предохранитель исправен – проверяем вольтметром приходит ли питающее напряжение на плату.

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

Важно:

Не включайте блок питания напрямую в сеть, если вы не уверены, что устранили все неполадки. Подключите последовательно лампочку накаливания, о которой мы упоминали в середине статьи.

Следующий шаг – проверка цепи питания, для этого включаем устройство и проверяем наличие выходных напряжений блока питания. Учтите, что бывают случаи, когда без нагрузки блок питания не включается. Тогда проверяем исправность блока питания, её начинают с проверки диодного моста, мы рассматривали этот процесс подробно в статье – Как проверить диодный мост

После того как вы убедились в исправности диодного моста следует проверить приходит ли напряжение на ШИМ контроллер. Если нет, то искать, обрыв на плате, если приходит, то методика его проверки изображена на видео ниже: 

Также следует по блокам проверить источник питания. Об этом вы можете почитать в статье о ремонте блоков питания для светодиодных лент

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

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

Заключение

Ремонт электроники – это не только знания принципа работы элементов, но и интуиция, опыт и удача. Главное помнить при ремонте о технике безопасности – не следует трогать плату источников питания, если на неё подано напряжение. Разряжайте фильтрующие конденсаторы блоков питания, поскольку на их выводах может быть напряжение до 300 вольт. А также при диагностике цепей с интегральными микросхемами – лучше сразу ищите техническую документацию к ним, её можно найти по запросу «datasheet название микросхемы».

Смотрите также: Уроки ремонта бытовой техники на видео

Алексей Бартош

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

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году

Задача

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

  1. Строить карту препятствий
  2. Определять положение квадрокоптера относительно траектории и препятствий
  3. Корректировать траекторию с учетом облета препятствий
  4. Рассчитывать управляющие сигналы – реализовать контроллер

Технической базой является Parrot AR.Drone. AR.Drone снабжен следующими интересующими нас устройствами:

  1. Фронтальная камера: 640х360, 30 fps, диагональный угол обзора 92 градуса
  2. Нижняя камера: используется встроенным автопилотом для компенсации ветра и дрифта вообще
  3. Ультразвуковой датчик высоты: работает в пределах 0.25 – 3 м
  4. ИНС (акселерометр гироскоп магнетометр) барометр: все датчики интегрированы в единую систему при помощи (видимо) sensor fusion

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году

Кроме того, на основе показаний ИНС и нижней камеры формируется единая одометрия.

Итак, для построения карты окружения при помощи штатных средств AR.Drone мы можем использовать по большому счету только фронтальную камеру. Это непосредственно приводит нас к задаче монокулярного зрения, а именно к монокулярному SLAM.

Large Scale Direct SLAM

Можно смело сказать, что SLAM при помощи единственной камеры – писк современных технологий. Такие алгоритмы, появившиеся в последние несколько лет, можно пересчитать по пальцам руки неосторожного фрезеровщика – это ORB SLAM, LSD (Large Scale Direct) SLAM (и его предшественник SVO (Semi-direct Visual Odometry)), PTAM (Parallel Tracking And Mapping). Еще меньше алгоритмов, строящих более-менее плотные (semi-dense) карты окружения. Из наиболее продвинутых алгоритмов такие карты выдает лишь LSD SLAM:

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году

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

Для стабильной и эффективной работы алгоритма (эти требования применимы к любому алгоритму монокулярного SLAM) необходимо следующее:

  1. Максимально более точная калибровка камеры и последующая ректификация изображения. Точность калибровки и ректификации, а также используемой модели искажений напрямую влияет на качество получаемых карт.
  2. Широкий угол обзора камеры. Для более-менее надежной работы нужны камеры с FOV более 80-90 градусов.
  3. Достаточное количество кадров секунду. При FOV в 90 градусов количество кадров в секунду не должно быть меньше 30 (лучше – больше).
  4. Движения камеры не должны содержать повороты без переноса. Такое движение ломает алгоритм.

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

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

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

Для оценки масштаба мы использовали данные о перемещениях по вертикальной оси, полученных из двух источников: от алгоритма LSD SLAM и альтиметра AR.Drone. Отношение этих значений и есть масштаб карты и локализации монокулярной системы. Для устранения случайных возмущений полученное значение масштаба мы отфильтровали фильтром низких частот.

Обход препятствий и корректировка траектории

LSD SLAM хранит карту окружения в виде графа ключевых кадров с привязанными к ним частичными картами глубины. Объединяя все узлы графа, получаем карту известной части окружения в виде облака точек. Однако это еще не карта препятствий! Чтобы получить плотную (dense) карту препятствий, мы воспользовались библиотекой Octomap, строящей карту препятствий в виде октодерева на основе облака точек.

Для проверки столкновений и корректировки траектории мы использовали стек библиотек FCL (Flexible Collision Library) OMPL (Open Motion Planning Library). После обновления карты запускается проверка столкновения траектории с препятствиями, в случае обнаружения столкновений сегмент траектории пересчитывается планировщиком (мы использовали BIT*, но здесь могут быть варианты).

Контроллер

Контроллер оказался в итоге довольно простым, на основе ПИД-регулятора. Этого оказалось достаточно для следования по траектории. Единственное, что пришлось добавить – ограничение скорости поворота камеры для сохранения стабильности SLAM.

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году

Платформа и общая схема решения

В качестве платформы всего решения мы использовали ROS. Платформа предлагает всю необходимую инфраструктуру для быстрой разработки параллельно работающих компонент (узлов в терминологии ROS), коммуникаций между ними, мониторинга, динамической настройки, отличный симулятор Gazebo и многое другое, облегчающее разработку серьезных робототехнических решений. Хотя стабильность отдельных компонент системы все же оставляет желать лучшего, и использовать её в продакшне ответственного проекта пока не стоит.

Общая схема решения получилась примерно такой:

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году

Выводы

Бочка меда:

Ложка дегтя:

Ссылки:

Страница LSD SLAM на сайте разработчиков: vision.in.tum.de/research/vslam/lsdslam
Open Motion Planning Library: ompl.kavrakilab.org
Flexible Collision Library: github.com/flexible-collision-library/fcl
Octomap: octomap.github.io

Ошибка: «недостаточно силы/esc» и «максимальная достигнутая нагрузка»

Ошибка DJI Mavic: Power Load Reched и Not Enough Force/ESC error или Недостаточно Force/ESC предупреждение или ошибка о максимальной мощности нагрузки может быть довольно опасной.

Mavic Mini может даже сбросить высоту и даже разбиться. Во многих случаях дрон будет падать и восстанавливать свою позицию. Однако если вы летите очень близко от земли, Mavic может резко упасть. Это довольно страшно и вам повезет если ваш дрон не окажется поврежден.

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

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

Предупреждение заключается в том, что дрон не получает достаточного питания и на электронных контроллерах (ESC) генерируется сообщение об ошибке.

Это сообщение указывает на проблему с ESC (электронными регуляторами скорости) и двигателями.

Проблемы с питанием могут также указывать на неисправный аккумулятор. Тем не менее от DJI по этому поводу не получилось узнать ничего определенного.

Эта проблема может быть исправлена ​​различными способами.

Рассмотрим на примере DJI Mavic Mini.

Максимальное сопротивление ветру — это проблема возникающая из-за того что квадрокоптер летает при ветре, превышающем 28,8 км/ч, что является максимальной скоростью ветра для дрона.

28,8 км/ч — это уровень 4 по шкале Бофорта, что означает умеренный ветер. Многие из этих предупреждений недостаточной силы/ESC происходят на приличной высоте. Несмотря на то, что на земле может быть спокойно, на высоте может быть ветер который может стать серьезной помехой для полета.

Читайте: Как летать на квадрокоптере при сильном ветре: Советы

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

Очень быстрый подъем в P-режиме.  Возникает ли проблема при быстром подъеме. Если это так, то это потому, что во время полета вверх дрон сталкивается с высоким сопротивлением и контроллер полета обнаруживает это выдавая всплывающее сообщение ESC о недостаточной мощности.

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

Читайте: На какую максимальную высоту может подняться квадрокоптер?

Защита винтов может вызывать проблему — Снимите защитные кожухи винтов, если они прикреплены. Некоторые пилоты решили эту проблему сняв защитные винты.

Читайте: Может ли квадрокоптер долететь до космоса и прилететь обратно?

Неисправные пропеллеры. Многие дроны Mavic Mini, получившие предупреждение «Недостаточно силы / ESC» и «Достигнута максимальная мощность нагрузки» были исправлены простой заменой пропеллеров. На рынке представлено много разных пропеллеров Mavic Mini.

Изучите пропеллеры. Даже если вы не видите какой-либо ошибки, идите вперед и измените их. Они могут быть небольшим дефектом одного или нескольких пропеллеров, что даже не заметно на глаз. Эта проблема была исправлена ​​для многих владельцев путем перехода на новый комплект пропеллеров.

Некоторые пилоты замечали что лопасть пропеллера слегка трется о дрон. Поэтому, когда Mavic Mini выключен, раскрутите винты и посмотрите, происходит ли это.

Кроме того DJI рекомендует заменять полный набор а не только 1 пропел.

Неисправная батарея — Если у вас есть запасные батареи замените и посмотрите, появляется ли предупреждение Not Enough Force или Not Enough Power / ESC. Если ошибка пропадет то это может указывать на проблемы с аккумулятором.

Полет в режиме S или P — предупреждение появляется только в режиме S или P. Это один из вопросов, который всегда задает служба поддержки DJI и может указывать на то где по их мнению существует проблема. Если это происходит только в одном из режимов это может указывать на проблему с программным обеспечением, а не с оборудованием. Выполните обновление программы.

Обновите приложение DJI Fly — убедитесь, что у вас установлена ​​последняя версия приложения DJI Fly. Как правило с новой прошивкой многие ошибки в программном обеспечении устраняются.

Понижение/обновление прошивки — предупреждение Not Enough Force/ESC неоднократно исправлялось, сначала понижая версию прошивки а затем обновляя ее снова.

Вы можете понизить версию прошивки с помощью приложения DJI Assistant 2 на своем компьютере. Если это устраняет проблему то проблема изначально была в поврежденной прошивке.

Проверка микросхем мультиметром

Иной пример абсолютно аналогичной неисправности можно найти в ноутбуках.

Например, на платах ноутбуков достаточно случайно закоротить USB порт (или статическим электричеством), и тут же может выйти из строя хаб (группа микросхем). И это 100% короткое замыкание. И при этом визуально микросхема будет без каких-либо повреждений. Тем не менее, таких микросхемы можно легко проверить на исправность мультиметром.

В качестве примере рассмотрим проверку микросхемы в DIP корпусе.
Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
У каждой микросхемы есть питание. И как правило именно оно и выходит из строя, если микросхема не выполняет своих функций.Ниже приведен пример распиновки микросхемы-таймера NE555.
Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
У каждой микросхемы есть питание. И как правило именно оно и выходит из строя, если микросхема не выполняет своих функций.Ниже приведен пример распиновки микросхемы-таймера NE555.
Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году

У этой микросхемы (как и у любой другой) есть питание. Питание обозначается Vcc (грубо говоря плюс) и GND (минус). При помощи мультиметра можно проверить целостность питания, как будто проверяем обычный диод на исправность.

В примере ниже мультиметром будет проверяться другая микросхема, но суть одна и та же.

Переключаем мультиметр в режим прозвонки.
Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Режим прозвонки обычно показывают в виде УГО диода со знаком излучения звука.
Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Режим прозвонки обычно показывают в виде УГО диода со знаком излучения звука.
Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году

И теперь достаточно прозвонить Vcc и GND (питание) микросхемы.
Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Как и диод, она не должна показывать нули при прямой прозвонке (плюсовой щуп мультиметра к плюсу (Vcc) микросхемы, минусовой щуп мультиметра к минусу (GDD)).Так и при обратной.
Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Как и диод, она не должна показывать нули при прямой прозвонке (плюсовой щуп мультиметра к плюсу (Vcc) микросхемы, минусовой щуп мультиметра к минусу (GDD)).Так и при обратной.
Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году

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

Однако диагностировать те же ноутбуки на исправности видеочипа или хаба достаточно просто, если знать их рабочие сопротивления и состояния. И там влияние компонентов не толь велико. Все зависит от платы.

Тест. телескопы – телескопы задание 1


Подборка по базе: Итоговое задание по антитеррору.docx, Практ. задание соц.психология.docx, Итоговый тест.docx, Индивидуальные практическое задание 1.docx, 3. Обязательное задание для выполнения(1).pdf, Практическое задание.docx, философия задание 1.doc, ВПР 7 класс 1-е задание.docx, Байдавлетов А.Ш. ПЗ-279. Тест. (1).docx, Практическое задание 2 Биннатов Р.docx


Телескопы

Задание 1

Вопрос:

Телескопы применяют для того, чтобы

Изображение:

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Выберите несколько из 4 вариантов ответа:

1) собрать как можно больше света, идущего от изучаемого объекта

2) получить возможность изучать мелкие детали изучаемого объекта

3) смотреть на звёзды

4) пригласить девушку на романтическое свидание
Задание 2

Вопрос:

Простейший телескоп имеет

Изображение:

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Укажите истинность или ложность вариантов ответа:

ИСТИННО Окуляр

ЛОЖНО Фотоаппарат

ИСТИННО Объектив

ЛОЖНО Тренога

ЛОЖНО Полочка для аксессуаров

ИСТИННО Искатель
Задание 3

Вопрос:

Кто из учёных первым создал телескоп?

Изображение:

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Выберите один из 4 вариантов ответа:

1) И. Ньютон

2) Г. Галилей

3) И. Кеплер

4) И. Липперсгей
Задание 4

Вопрос:

Прибор, с помощью которого можно наблюдать отдалённые объекты путём сбора электромагнитного излучения.
Составьте слово из букв:

ЕКСПТОЛЕ -> _____телескоп_____________________________________

Задание 5

Вопрос:

Сопоставьте.

Изображение:

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Укажите соответствие для всех 4 вариантов ответа:

1) Радиотелескоп

2) Антенны с заполненной апертурой

3) Антенна с незаполненной (открытой) апертурой

4) Рефлектор

5) Рефрактор
_3_ Несколько радиотелескопов, объединённых в одну систему и используемые для изучения одного и того же объекта.

_1_ Астрономический инструмент для приёма собственного радиоизлучения небесных объектов и исследования их характеристик.

_2_ Телескопы, которые похожи на зеркала оптических телескопов и являются наиболее простыми и привычными в использовании.

_1_ К какому типу телескопов принадлежит Космический аппарат «Спектр-Р» проекта “Радиоастрон”?
Задание 6

Вопрос:

Укажите правильный порядок определений телескопов:

1. Рефлектор

2. Рефрактор

3. Зеркально-линзовый

Изображение:

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Укажите порядок следования всех 3 вариантов ответа:

_2_ оптический телескоп, в котором для собирания света используется система линз

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

_1_ оптический телескоп, использующий в качестве светособирающего элемента зеркало.
Задание 7

Вопрос:

Крупнейший телескоп в мире с 1975 по 1993 год, располагавшийся в России.
Выберите один из 4 вариантов ответа:

1) Большой южноафриканский телескоп

2) Телескоп “Левиафан”

3) Большой телескоп азимутальный

4) Европейский чрезвычайно большой телескоп
Задание 8

Вопрос:

Укажите типы существующих телескопов.
Выберите несколько из 5 вариантов ответа:

1) Космический

2) Оптико-волоконный

3) Рефлектор

4) Рефрактор

5) Зеркально-линзовый
Задание 9

Вопрос:

Астрономический инструмент для приёма собственного радиоизлучения небесных объектов и исследования их характеристик.
Составьте слово из букв:

ПИООЕСЛКДРАЕТ -> _________радиотелескоп______________________________

Задание 10

Вопрос:

Сопоставьте:

Изображение:

Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году
Укажите соответствие для всех 4 вариантов ответа:

1) Разрешающая способность

2) Проницающая сила

3) 1,75”

4) 2”

5) 2.75”
_1_ Вернуть квадрокоптер качественый и бракованный в магазин - инструкция в 2023 году

_1_ Наименьший угол между такими двумя близкими звёздами, когда они уже видны как две, а не сливаются зрительно в одну.

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

_3_ Разрешающая способность телескопа, диаметр объектива которого равен 80 мм, равна

Устройство фреймворка

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

После тестов локально на компьютере, на котором была установлена и развернута среда для работы с MMDetection, аналогично YOLOv4, сборка была перенесена внутрь NVidia Docker контейнера.

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

Наш конфигурационный файл для обучения на данных с трубами для 9 классов дефектов:
# Обучения на 9 классах без масок

model = dict(
    type='CascadeRCNN',
    pretrained='torchvision://resnet50',
    backbone=dict(
        type='DetectoRS_ResNet',
        depth=50,
        num_stages=4,
        out_indices=(0, 1, 2, 3),
        frozen_stages=1,
        norm_cfg=dict(type='BN', requires_grad=True),
        norm_eval=True,
        style='pytorch',
        conv_cfg=dict(type='ConvAWS'),
        sac=dict(type='SAC', use_deform=True),
        stage_with_sac=(False, True, True, True),
        output_img=True),
    neck=dict(
        type='RFP',
        in_channels=[256, 512, 1024, 2048],
        out_channels=256,
        num_outs=5,
        rfp_steps=2,
        aspp_out_channels=64,
        aspp_dilations=(1, 3, 6, 1),
        rfp_backbone=dict(
            rfp_inplanes=256,
            type='DetectoRS_ResNet',
            depth=50,
            num_stages=4,
            out_indices=(0, 1, 2, 3),
            frozen_stages=1,
            norm_cfg=dict(type='BN', requires_grad=True),
            norm_eval=True,
            conv_cfg=dict(type='ConvAWS'),
            sac=dict(type='SAC', use_deform=True),
            stage_with_sac=(False, True, True, True),
            pretrained='torchvision://resnet50',
            style='pytorch')),
    rpn_head=dict(
        type='RPNHead',
        in_channels=256,
        feat_channels=256,
        anchor_generator=dict(
            type='AnchorGenerator',
            scales=[8],
            ratios=[0.5, 1.0, 2.0],
            strides=[4, 8, 16, 32, 64]),
        bbox_coder=dict(
            type='DeltaXYWHBBoxCoder',
            target_means=[0.0, 0.0, 0.0, 0.0],
            target_stds=[1.0, 1.0, 1.0, 1.0]),
        loss_cls=dict(
            type='CrossEntropyLoss', use_sigmoid=True, loss_weight=1.0),
        loss_bbox=dict(
            type='SmoothL1Loss', beta=0.1111111111111111, loss_weight=1.0)),
    roi_head=dict(
        type='CascadeRoIHead',
        num_stages=3,
        stage_loss_weights=[1, 0.5, 0.25],
        bbox_roi_extractor=dict(
            type='SingleRoIExtractor',
            roi_layer=dict(type='RoIAlign', out_size=7, sample_num=0),
            out_channels=256,
            featmap_strides=[4, 8, 16, 32]),
        bbox_head=[
            dict(
                type='Shared2FCBBoxHead',
                in_channels=256,
                fc_out_channels=1024,
                roi_feat_size=7,
                num_classes=9,
                bbox_coder=dict(
                    type='DeltaXYWHBBoxCoder',
                    target_means=[0.0, 0.0, 0.0, 0.0],
                    target_stds=[0.1, 0.1, 0.2, 0.2]),
                reg_class_agnostic=True,
                loss_cls=dict(
                    type='CrossEntropyLoss',
                    use_sigmoid=False,
                    loss_weight=1.0),
                loss_bbox=dict(type='SmoothL1Loss', beta=1.0,
                               loss_weight=1.0)),
            dict(
                type='Shared2FCBBoxHead',
                in_channels=256,
                fc_out_channels=1024,
                roi_feat_size=7,
                num_classes=9,
                bbox_coder=dict(
                    type='DeltaXYWHBBoxCoder',
                    target_means=[0.0, 0.0, 0.0, 0.0],
                    target_stds=[0.05, 0.05, 0.1, 0.1]),
                reg_class_agnostic=True,
                loss_cls=dict(
                    type='CrossEntropyLoss',
                    use_sigmoid=False,
                    loss_weight=1.0),
                loss_bbox=dict(type='SmoothL1Loss', beta=1.0,
                               loss_weight=1.0)),
            dict(
                type='Shared2FCBBoxHead',
                in_channels=256,
                fc_out_channels=1024,
                roi_feat_size=7,
                num_classes=9,
                bbox_coder=dict(
                    type='DeltaXYWHBBoxCoder',
                    target_means=[0.0, 0.0, 0.0, 0.0],
                    target_stds=[0.033, 0.033, 0.067, 0.067]),
                reg_class_agnostic=True,
                loss_cls=dict(
                    type='CrossEntropyLoss',
                    use_sigmoid=False,
                    loss_weight=1.0),
                loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0))
        ],
        train_cfg=[
            dict(
                assigner=dict(
                    type='MaxIoUAssigner',
                    pos_iou_thr=0.5,
                    neg_iou_thr=0.5,
                    min_pos_iou=0.5,
                    match_low_quality=False,
                    ignore_iof_thr=-1),
                sampler=dict(
                    type='RandomSampler',
                    num=512,
                    pos_fraction=0.25,
                    neg_pos_ub=-1,
                    add_gt_as_proposals=True),
                pos_weight=-1,
                debug=False),
            dict(
                assigner=dict(
                    type='MaxIoUAssigner',
                    pos_iou_thr=0.6,
                    neg_iou_thr=0.6,
                    min_pos_iou=0.6,
                    match_low_quality=False,
                    ignore_iof_thr=-1),
                sampler=dict(
                    type='RandomSampler',
                    num=512,
                    pos_fraction=0.25,
                    neg_pos_ub=-1,
                    add_gt_as_proposals=True),
                pos_weight=-1,
                debug=False),
            dict(
                assigner=dict(
                    type='MaxIoUAssigner',
                    pos_iou_thr=0.7,
                    neg_iou_thr=0.7,
                    min_pos_iou=0.7,
                    match_low_quality=False,
                    ignore_iof_thr=-1),
                sampler=dict(
                    type='RandomSampler',
                    num=512,
                    pos_fraction=0.25,
                    neg_pos_ub=-1,
                    add_gt_as_proposals=True),
                pos_weight=-1,
                debug=False)
        ],
        test_cfg=dict(
            score_thr=0.05, nms=dict(type='nms', iou_thr=0.5),
            max_per_img=100)))
train_cfg = dict(
    rpn=dict(
        assigner=dict(
            type='MaxIoUAssigner',
            pos_iou_thr=0.7,
            neg_iou_thr=0.3,
            min_pos_iou=0.3,
            match_low_quality=True,
            ignore_iof_thr=-1),
        sampler=dict(
            type='RandomSampler',
            num=256,
            pos_fraction=0.5,
            neg_pos_ub=-1,
            add_gt_as_proposals=False),
        allowed_border=0,
        pos_weight=-1,
        debug=False),
    rpn_proposal=dict(
        nms_across_levels=False,
        nms_pre=2000,
        nms_post=2000,
        max_num=2000,
        nms_thr=0.7,
        min_bbox_size=0),
    rcnn=[
        dict(
            assigner=dict(
                type='MaxIoUAssigner',
                pos_iou_thr=0.5,
                neg_iou_thr=0.5,
                min_pos_iou=0.5,
                match_low_quality=False,
                ignore_iof_thr=-1),
            sampler=dict(
                type='RandomSampler',
                num=512,
                pos_fraction=0.25,
                neg_pos_ub=-1,
                add_gt_as_proposals=True),
            pos_weight=-1,
            debug=False),
        dict(
            assigner=dict(
                type='MaxIoUAssigner',
                pos_iou_thr=0.6,
                neg_iou_thr=0.6,
                min_pos_iou=0.6,
                match_low_quality=False,
                ignore_iof_thr=-1),
            sampler=dict(
                type='RandomSampler',
                num=512,
                pos_fraction=0.25,
                neg_pos_ub=-1,
                add_gt_as_proposals=True),
            pos_weight=-1,
            debug=False),
        dict(
            assigner=dict(
                type='MaxIoUAssigner',
                pos_iou_thr=0.7,
                neg_iou_thr=0.7,
                min_pos_iou=0.7,
                match_low_quality=False,
                ignore_iof_thr=-1),
            sampler=dict(
                type='RandomSampler',
                num=512,
                pos_fraction=0.25,
                neg_pos_ub=-1,
                add_gt_as_proposals=True),
            pos_weight=-1,
            debug=False)
    ])
test_cfg = dict(
    rpn=dict(
        nms_across_levels=False,
        nms_pre=1000,
        nms_post=1000,
        max_num=1000,
        nms_thr=0.7,
        min_bbox_size=0),
    rcnn=dict(
        score_thr=0.05, nms=dict(type='nms', iou_thr=0.5), max_per_img=100))
dataset_type = 'CocoDataset'
data_root = 'data/coco/'
classes = ('ПРМУ_поперечная трещина на изгибе', 'ПРМУ_выход трубы из ряда',
           'ПРМУ_Крип', 'ПРМУ_свищи', 'ПРМУ_разрыв трубы',
           'ПРМУ_поперечная трещина в околошовной зоне',
           'ПРМУ_трещина в основном металле', 'ПРМУ_продольные трещины',
           'ПРМУ_Цвета побежалости')
img_norm_cfg = dict(
    mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True)
train_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(type='LoadAnnotations', with_bbox=True),
    dict(type='Resize', img_scale=(1280, 720), keep_ratio=True),
    dict(type='RandomFlip', flip_ratio=0.5),
    dict(
        type='Normalize',
        mean=[123.675, 116.28, 103.53],
        std=[58.395, 57.12, 57.375],
        to_rgb=True),
    dict(type='Pad', size_divisor=32),
    dict(type='DefaultFormatBundle'),
    dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])
]
test_pipeline = [
    dict(type='LoadImageFromFile'),
    dict(
        type='MultiScaleFlipAug',
        img_scale=(1280, 720),
        flip=False,
        transforms=[
            dict(type='Resize', keep_ratio=True),
            dict(type='RandomFlip'),
            dict(
                type='Normalize',
                mean=[123.675, 116.28, 103.53],
                std=[58.395, 57.12, 57.375],
                to_rgb=True),
            dict(type='Pad', size_divisor=32),
            dict(type='ImageToTensor', keys=['img']),
            dict(type='Collect', keys=['img'])
        ])
]
data = dict(
    samples_per_gpu=2,
    workers_per_gpu=1,
    train=dict(
        type='CocoDataset',
        classes=('ПРМУ_поперечная трещина на изгибе',
                 'ПРМУ_выход трубы из ряда', 'ПРМУ_Крип', 'ПРМУ_свищи',
                 'ПРМУ_разрыв трубы',
                 'ПРМУ_поперечная трещина в околошовной зоне',
                 'ПРМУ_трещина в основном металле', 'ПРМУ_продольные трещины',
                 'ПРМУ_Цвета побежалости'),
        ann_file='data/coco/annotations/instances_train.json',
        img_prefix='data/coco/train/',
        pipeline=[
            dict(type='LoadImageFromFile'),
            dict(type='LoadAnnotations', with_bbox=True),
            dict(type='Resize', img_scale=(1280, 720), keep_ratio=True),
            dict(type='RandomFlip', flip_ratio=0.5),
            dict(
                type='Normalize',
                mean=[123.675, 116.28, 103.53],
                std=[58.395, 57.12, 57.375],
                to_rgb=True),
            dict(type='Pad', size_divisor=32),
            dict(type='DefaultFormatBundle'),
            dict(type='Collect', keys=['img', 'gt_bboxes', 'gt_labels'])
        ]),
    val=dict(
        type='CocoDataset',
        classes=('ПРМУ_поперечная трещина на изгибе',
                 'ПРМУ_выход трубы из ряда', 'ПРМУ_Крип', 'ПРМУ_свищи',
                 'ПРМУ_разрыв трубы',
                 'ПРМУ_поперечная трещина в околошовной зоне',
                 'ПРМУ_трещина в основном металле', 'ПРМУ_продольные трещины',
                 'ПРМУ_Цвета побежалости'),
        ann_file='data/coco/annotations/instances_val.json',
        img_prefix='data/coco/val/',
        pipeline=[
            dict(type='LoadImageFromFile'),
            dict(
                type='MultiScaleFlipAug',
                img_scale=(1280, 720),
                flip=False,
                transforms=[
                    dict(type='Resize', keep_ratio=True),
                    dict(type='RandomFlip'),
                    dict(
                        type='Normalize',
                        mean=[123.675, 116.28, 103.53],
                        std=[58.395, 57.12, 57.375],
                        to_rgb=True),
                    dict(type='Pad', size_divisor=32),
                    dict(type='ImageToTensor', keys=['img']),
                    dict(type='Collect', keys=['img'])
                ])
        ]),
    test=dict(
        type='CocoDataset',
        classes=('ПРМУ_поперечная трещина на изгибе',
                 'ПРМУ_выход трубы из ряда', 'ПРМУ_Крип', 'ПРМУ_свищи',
                 'ПРМУ_разрыв трубы',
                 'ПРМУ_поперечная трещина в околошовной зоне',
                 'ПРМУ_трещина в основном металле', 'ПРМУ_продольные трещины',
                 'ПРМУ_Цвета побежалости'),
        ann_file='data/coco/annotations/instances_val.json',
        img_prefix='data/coco/val/',
        pipeline=[
            dict(type='LoadImageFromFile'),
            dict(
                type='MultiScaleFlipAug',
                img_scale=(1280, 720),
                flip=False,
                transforms=[
                    dict(type='Resize', keep_ratio=True),
                    dict(type='RandomFlip'),
                    dict(
                        type='Normalize',
                        mean=[123.675, 116.28, 103.53],
                        std=[58.395, 57.12, 57.375],
                        to_rgb=True),
                    dict(type='Pad', size_divisor=32),
                    dict(type='ImageToTensor', keys=['img']),
                    dict(type='Collect', keys=['img'])
                ])
        ]))
evaluation = dict(interval=1, metric='bbox')
optimizer = dict(type='SGD', lr=0.0001, momentum=0.9, weight_decay=0.0001)
optimizer_config = dict(grad_clip=None, type='OptimizerHook')
lr_config = dict(
    policy='step',
    warmup=None,
    warmup_iters=500,
    warmup_ratio=0.001,
    step=[8, 11],
    type='StepLrUpdaterHook')
total_epochs = 12
checkpoint_config = dict(interval=-1, type='CheckpointHook')
log_config = dict(
    interval=10,
    hooks=[dict(type='TextLoggerHook'),
           dict(type='TensorboardLoggerHook')])
dist_params = dict(backend='nccl')
log_level = 'INFO'
load_from = './checkpoints/detectors_cascade_rcnn_r50_1x_coco-32a10ba0.pth'
resume_from = None
workflow = [('train', 1)]
work_dir = './logs'
seed = 0
gpu_ids = range(0, 1)

Оцените статью
Радиокоптер.ру
Добавить комментарий