Русский
Русский
English
Статистика
Реклама

Gps

Синхронизация времени без интернета

23.06.2020 14:06:23 | Автор: admin


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

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

Радиовещание на коротких волнах


В Соединенных Штатах Америки NIST передает точное время и частоту по 2.5, 5, 10, 15 и 20 МГц радиоволнам со станции WWVH в Форт-Коллинсе, штат Колорадо, и на частотах 2.5, 5, 10 и 15 МГц со станции WWVH в Кауаи, штат Гавайи. Временной код передается через 60-секундный интервал на скорости 1 б/с. с использованием широтно импульсной модуляции на поднесущей 100 Гц.

Национальный исследовательский совет (NRC) Канады осуществляет распространение временной и частотной информации на 3.33, 7.85 и 14.67 МГц со станции CHU в Оттаве, провинция Онтарио.

image
Формат вещания WWVH

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

Текущий стандарт NTPv4 включает в себя аудио драйверы для WWV, WWVH и CHU.

Радиовещание на длинных волнах


NIST также передает точное время и частоту по длинным радиоволнам на волне 60 kHz из Боулдера в штате Колорадо. Есть и другие станции передачи сигналов точного времени на длинных волнах.
Позывные и локация Частота (kHz) Мощность (kW)
WWVB Форт-Коллинс, Колорадо, США 60 50
DCF77 Mainflingen, Germany 77.5 30
MSF Rugby, United Kingdom 60> 50
HBG Prangins, Switzerland 75 20
JJY Fukushima, Japan 40 50
JJY Saga, Japan 60 50
Низкочастотные Станции Стандартного Времени

Временной код передается через 60-секундный интервал на скорости 1 б/с, точно так же, как на коротковолновых станциях. Форматы передачи данных тоже сходны для обоих стандартов. Распространение сигнала происходит через нижние слои ионосферы, которые относительно стабильны и имеют предсказуемые суточные колебания высоты. Благодаря этой предсказуемости физической среды точность повышается до 50 s.

image
Формат вещания WWVB

Геостационарный эксплуатационный спутник наблюдения за окружающей средой


В США NIST также передает данные о точном времени и частоте примерно на 468 МГц с геостационарных эксплуатационных спутников окружающей среды (GOES). Временной код чередуется с сообщениями, используемыми для опроса удаленных датчиков. Он состоит из 60 BCD полубайтов, передаваемых с интервалом в 30 с. Информация временного кода аналогична наземным службам.

Системы глобального позиционирования


Министерство обороны США использует GPS для точной навигации на суше, на море и в воздухе. Эта система обеспечивает 24-часовой охват земного шара с помощью группировки спутников на 12-часовых орбитах, наклоненных под углом 55.

Первоначальная группировка из 24 спутников была расширена до 31 спутника в неоднородной конфигурации, так что по крайней мере 6 спутников всегда находятся в поле зрения, а 8 или более спутников находятся в поле зрения в большей части света.

Услуги, подобные GPS, эксплуатируются или планируются другими странами. Российский ГЛОНАСС работает уже с десяток лет, если считать со 2 сентября 2010 года, когда общее количество спутников было доведено до 26 группировка была полностью развёрнута для полного покрытия Земли.

image
Спутники GPS вокруг земного шара.

Спутниковая система навигации Европейского Союза называется Галилео. Ожидалось, что Галилео начнет работать в 20142016 годах, когда на орбиту будут выведены все 30 запланированных спутников Но на 2018 год спутниковая группировка Галилео так и не достигла необходимого количества аппаратов.

Есть еще китайский Бэйдооу, что в переводе означает кит. Группировка в составе 16 спутников была запущена в коммерческую эксплуатацию 27 декабря 2012, в качестве региональной система позиционирования. Планируется, что на полную мощность система выйдет к 2020 году. Как раз сегодня, на Хабре вышла статья, про успешный запуск спутника этой системы.

Математика определения координат по СРНС


Как GPS/Глонасс навигатор на вашем смартфоне определяет местоположение с такой точностью с помощью системы радионавигационной связи (СРНС)? Чтобы понять принцип расчетов нужно вспомнить стереометрию и алгебру в пределах старших классов средней, или физмат школы.

Каждый спутник сообщает приемнику точное время. На спутнике установлены атомные часы и поэтому им можно верить. Зная скорость света нетрудно определить радиус сферы на поверхности которой находится спутник. Это же сфера соприкасаясь с Землей образует круг, на котором находится GPS / Глонасс приемник.

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

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

image
Определение местоположения с помощью спутниковой группировки.

Нетрудно заметить, что в этой идеализированной картине есть много нюансов, от которых зависит точность расчетов. Время на приёмнике, пожалуй самый очевидный источник погрешностей. Для того, чтобы все заработало как надо время GPS / Глонасс приёмника должны быть синхронизированы со временем спутника. Без этого погрешность составила бы 100 тыс. км.

Из формулы скорости, времени и расстояния S = v*t получаем базовое уравнение для передачи сигнала СРНС. Расстояние до спутника равно произведению скорости света на разницу времени на спутнике и приёмнике.

$S = с*(t_{сп} - t_{пр})$



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

Для более ясного математического обоснования необходимости четырех спутников построим систему уравнений.

$R_{i} = (x - X_{i})^{2} + (y - Y_{i})^{2} + (z - Z_{i})^{2} + t$



Для определения четырех неизвестных x, y, z, и t необходимо, чтобы число наблюдений равнялось или было больше, чем число неизвестных. Это необходимое, но недостаточное условие. Если матрица нормальных уравнений окажется вырожденной у системы уравнений не будет решения.

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

$t_{сп}=\frac{t_{пр}}{\sqrt{1-(\frac{v}{c})^2}}$



Если считать, что спутник движется по орбите со скоростью 14 тыс. км./ч., то получаем замедление времени около 7 с (микросекунд). С другой стороны действуют релятивистские эффекты Общей Теории Относительности.

Дело вот в чем, спутники на орбитах находятся на большом расстоянии от Земли, где кривизна пространственно-временного континуума меньше, чем на земной поверхности из-за массы Земли. Согласно ОТО ход часов, расположенных ближе к массивному объекту, будет казаться медленнее, чем тех, что находятся дальше от него.

$t_{сп} = t_{пр}*\sqrt{1-\frac{2GM}{rc^2}}$


  • G гравитационная постоянная;
  • M масса объекта, в данном случае Земли;
  • r расстояние от цента Земли до спутника;
  • c скорость света.

Вычисление по этой формуле даёт замедление времени 45 с на спутнике. Итого -7с +45с = 38с баланс эффектов СТО и ОТО.

В прикладных задачах определения местоположения с помощью СРНС следует также принять во внимание ионосферные и тропосферные задержки. Помимо того, корректировки 46 ns связаны c эксцентричностью 0.02 орбиты спутников GPS.

Возможность получать сигналы одновременно более чем с четырех спутников GPS / ГЛОНАСС позволяет еще больше увеличить точность определения координат приёмника. Это достигается за счет того, что навигатор решает систему их четырех уравнений с четырьмя неизвестными $C^k_m$ число раз и берет среднее значение, повышая точность итоговой оценки согласно законам математической статистики.

Как настроить NTP сервер Startum 1 по спутниковой связи


Для настройки высококачественного сервера времени необходимо всего лишь GPSD, NTP и GPS-приёмник, с выходом 1PPS (один импульс в секунду).

1. Установите gpsd и ntpd, либо gpsd и chronyd. Версия gpsd должна быть 3.20

(1:1109)$ sudo emerge -av gpsd chronyLocal copy of remote index is up-to-date and will be used.Calculating dependencies... done![binary  N     ] net-misc/pps-tools-0.0.20120407::gentoo  31 KiB[binary  N     ] net-misc/chrony-3.5-r2::gentoo  USE="adns caps cmdmon ipv6 ntp phc readline refclock rtc seccomp (-html) -libedit -pps (-selinux)" 246 KiB[binary  N     ] sci-geosciences/gpsd-3.17-r3:0/23::gentoo  USE="X bluetooth cxx dbus ipv6 ncurses python shm sockets udev usb -debug -latency-timing -ntp -qt5 -static -test" GPSD_PROTOCOLS="aivdm ashtech earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 navcom ntrip oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tnt tripmate tsip ublox -fury -geostar -nmea0183 -nmea2000 -passthrough" PYTHON_TARGETS="python2_7" 999 KiBTotal: 3 packages (3 new, 3 binaries), Size of downloads: 1275 KiBWould you like to merge these packages? [Yes/No]

2. Подключите GPS-приёмник с поддержкой PPS к последовательному RS232 или USB порту.

Обычный дешевый GPS-приемник не подойдет; возможно, придется немного побегать, чтобы найти подходящий.

3. Убедитесь, что устройство действительно выдаёт PPS, для этого проверьте порт утилитой gpsmon.

4. Откройте файл /etc/conf.d/gpsd и отредактируйте следующую строку.

Заменить

GPSD_OPTIONS=""

так, чтобы стало

GPSD_OPTIONS="-n"

Это изменение требуется для того, чтобы gpsd при старте сразу же начинал поиск источников СРНС.

5. Запустите, или перезапустите gpsd.

(1:110)$ sudo /etc/init.d/gpsd start(1:111)$ sudo /etc/init.d/gpsd restart

Для дистрибутивов с systemd, используйте соответствующую команду systemctl.

6. Проверьте консольный вывод команды cgps.

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


Вывод консольной команды cgps.

7. Настало время отредактировать файл /etc/ntp.conf.

# GPS Serial data reference (NTP0)server 127.127.28.0fudge 127.127.28.0 time1 0.9999 refid GPS# GPS PPS reference (NTP1)server 127.127.28.1 preferfudge 127.127.28.1 refid PPS

Верхняя запись NTP0 указывает на универсальный источник времени, доступный почти на всех устройствах GPS. Нижняя запись NTP1 определяет гораздо более точный PPS источник.

8. Перезапустить ntpd.

(1:112)$ sudo /etc/init.d/ntpd restart

Для дистрибутивов с systemd, используйте команду systemctl.
$ sudo systemctl restart ntp

Использованные материалы





Подробнее..

Сверхточный Raspberry PI Stratum 1 NTP сервер

07.07.2020 12:09:02 | Автор: admin
В этой статье я расскажу, как собрать Stratum 1 NTP сервер на Raspberry PI для синхронизации времени за скромную сумму и навсегда забыть о проблемах, связанных с не совпадающим временем на всех ваших устройствах. А самое главное, он будет давать результат на два порядка точнее, чем обычный сервер.

В предыдущей статье, посвященной синхронизации времени по радио и СРНС (системы радионавигационной связи), я не успел рассказать про выбор приёмника GPS / ГЛОНАСС с выходом PPS. Между тем от этого зависит точность приёма сигнала, величина может составить от одной миллисекунды до нескольких микросекунд и зачастую это имеет решающее значение.

Для самого точного приема сигнала времени нужен приёмник GPS / ГЛОНАСС с выходом PPS. Дело однако в том, что на российском рынке не просто раздобыть устройство с такими характеристиками по доступной цене. Много таких моделей давно уже перестали выпускать, а в заброшенных интернет магазинах с версткой 1990-х остались лишь их описания с предложением подписаться на уведомление при поступлении товара.


Полный список протестированного GPS оборудования можно найти на GitLab ресурсе NTPSec. Не трудно заметить, что незначительное число представленных в списке устройств имеют отметку 3-4 звезды и опцию PPS. Таким образом, в шорт-лист попадают следующие приёмники.

  • Garmin GPS-18, не USB *** (приблизительная цена 10 тыс. р.)
  • GlobalSat MR-350P ****
  • Jackson Labs FireFly-II ***
  • Magellan Thales AC12 ***
  • Motorola Oncore GT+ ***
  • Navisys GR601-W ****
  • SkyTraq SKG16B ****
  • Trimble Lassen IQ ***
  • u-blox ANTARIS LEA-4T ***
  • u-blox EVK 6H ****
  • u-blox LEA SQ ****

4* Отличная производительность: gpsd распознает приёмник быстро и надежно, а отчеты сформировано полностью и правильно.

3* Хорошая производительность: gpsd с незначительными проблемами или задержкой распознаёт устройства, но отчеты сформировано полностью и правильно.

Если вас не пугает цена этих моделей, а также нет большого желания возиться с железками, можете не читать дальше. Приемник, подключенный к серверу по USB, или RS232 интерфейсу обеспечит гораздо большую точность определения времени, чем NTP сервер, работающий по tcp/ip. Но если путь самурая вам не чужд, тогда давайте собирать свой Raspberry PI NTP сервер с GPS синхронизацией времени.

Собираем Raspberry PI


Итак: берем следующие компоненты для нашего микро сервера.

  1. Плата Raspberry Pi 4 Model B, 4 GiB ОЗУ (6200 руб.);
  2. Корпус, например такой (890 руб.);
  3. Micro SD карта на 32 GiB, можно и 16 GiB; (540 руб.)
  4. GPS модуль на чипе u-blox NEO-M8 (1700 руб. с антенной);
  5. GPS антенна на 15 dB;
  6. Паяльник.

Вообще-то, u-blox NEO-M8 оснащен UART интерфейсом, но для PPS выхода необходимо припаять pin-3 на GPS модуле к соответствующему GPIO коннектору на плате Raspberri Pi. Модуль швейцарской компании завоевал популярность у специалистов и это не случайно, характеристики говорят сами за себя.

  • Поддерживаемые СРНС: BeiDou, Galileo, GNSS; GPS/QZSS, GLONASS;
  • Напряжение питания: 2.7...3.6 В;
  • Интерфейсы: UART, USB, SPI, DDC, I2C;
  • Поддерживаемые протоколы: NMEA 0.183 version 4.0, UBX (binary), RTCM 2.3;
  • Чувствительность при обнаружении: -167 дБм;
  • Чувствительность при слежении: -160 дБм;
  • Время холодного старта: 26 с;
  • Время горячего старта: 1.5 с;
  • Потребляемая мощность: 35 мВт;
  • Рабочая температура: -40...+85 С;
  • Размеры: 16х12.2х2.4 мм

В такой конфигурации с новейшим оборудованием примерная общая цена Raspberry PI в собранном виде составит 9330 руб. Можно сэкономить, купив Raspberry PI 3, или четверку с 2 GiB ОЗУ. Можно еще сэкономить на GPS чипе, u-blox NEO-6M с антенной стоит около 650 руб. Тогда цена NTP сервера упадет до 5500 руб.


GPS/Глонасс модуль UBLOX NEO 8M

Может возникнуть вопрос, для чего нужны все эти капиталовложения и какую точность обеспечивает тот, или иной способ синхронизации времени. Небольшая сводная табличка для справки.
Источник сигнала времени Погрешность
GPS с атомными часами 50 nSec
KPPS 1 Sec
PPS 5 Sec
Интерфейс USB 1.1 1 mSec
Интерфейс USB 2.0 100 Sec (100000 nSec)
NTP по сети ~30 mSec

Kernel PPS (KPPS) отличается от PPS тем, что использует функцию ядра Linux / Unix для точной временной отметки изменения состояния в строке PPS. Обычный же PPS реализован в user-space. Если ядро Linux поддерживает KPPS через API RFC 2783, gpsd воспользуется им для увеличения точности.

Во многих дистрибутивах Linux имеется пакет pps-tools, который обеспечивает поддержку KPPS и устанавливает timepps.h заголовочный файл. Обязательно установите этот пакет.

(1:1146)$ sudo emerge -av pps-toolsLocal copy of remote index is up-to-date and will be used.These are the packages that would be merged, in order:Calculating dependencies... done![binary   R    ] net-misc/pps-tools-0.0.20120407::gentoo  0 KiBTotal: 1 package (1 reinstall, 1 binary), Size of downloads: 0 KiBWould you like to merge these packages? [Yes/No] 

Таким образом, подключив GPS приёмник с PPS выходом по USB мы получаем 300-кратное повышение точности синхронизации времени. Чтение с чипа GPS на плате в режиме KPPS даёт прирост точности еще на два порядка.

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


Raspberry Pi GPS/RTC Expansion Board

Таких плат мало, и стоят они дорого. Разницу в цене вполне окупит приобретение паяльника и трудозатраты.

Установка ОС


Существует Raspberry PI OS, а. k. a. Raspbian, можно просто пойти по ссылке, скачать свежую версию и установить её. Многие так и делают, но давайте вспомним, что Raspberry PI 4 поддерживает 64-битную операционную систему, в то время как Raspberry PI OS пока имеет лишь 32-битные модификации Debian Linux для архитектуры Arm.

Существует такая точка зрения, что на 64-битная ОС неоправдана на Raspberry PI 4, так как нет возможности обеспечить прирост производительности из-за особенностей архитектуры и сборки. Мне эта точка зрения представляется сомнительной, об этом уже писали на Хабре 64-битная ОС быстрее.

Существует порт Debian Linux для архитектуры arm64, однако дистрибутив Убунту для Raspberry PI имеет внятную страницу и инструкцию. На странице находим дополнительное подтверждение тому, что лучше выбрать 64-битную ОС.



Инвентарь для установки:

  • Raspberry Pi 4;
  • USB-C кабель питания для Pi 4;
  • Micro SD карта с установочным образом Убунту;
  • Монитор с выходом HDMI;
  • Кабель MicroHDMI;
  • USB клавиатура.

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

sudo dd if=/path/to/ubuntu-core-arm64.iso of=/dev/mmcblk0 status=progress

Точное название устройства видно в выводе dmesg при обнаружении нового устройства.

PM: Adding info for No Bus:179:0device: 'mmcblk0': device_addPM: Adding info for No Bus:mmcblk0

Вставив Micro SD карту, подключив HDMI-монитор, USB-клавиатуру, и кабель питания загружаетесь в Ubuntu Server на Raspberry Pi. Имя пользователя и пароль по умолчанию ubuntu.

Настройка NTP сервера


  1. Если Raspberry PI включен в консольном режиме (headless), то для начала необходимо определить IP адрес устройства. С рабочей станции наберите следующую команду.

    (1:1151)$ arp -na | grep -i "dc:a6:32"
    

    Ели же Pi подключен к HDMI монитору и USB клавиатуре, пропустите шаги 1-2 и переходите сразу к установке пакетов.
  2. Подключитесь по ssh

    (1:1152)$ ssh ubuntu@<Raspberry Pis IP address>
    
  3. Установите необходимые пакеты.

    user@server ~$ sudo apt-get install aptitudeuser@server ~$ sudo aptitude install wpasupplicant gpsd chrony
    
  4. Настройте Wi-Fi соединение с помощью wpasupplicant.
  5. В Linux UART0 интерфейс Pi представлен файлом устройства /dev/ttyAMA0. Для того чтобы освободить UART0 интерфейс для GPS приёмника нужно поменять параметры загрузки ядра Linux. Необходимо отключить console=ttyAMA0,115200, заменив на console=tty1. Для этого в файле /etc/default/grub надо поменять GRUB_CMDLINE_LINUX_DEFAULT. Если существует файл, /boot/config.txt, в нем также можно задать те же опции.

    Raspberry Pi 4 имеет 6 UART-ов
    Название Тип Устройство Назначение
    UART0 PLO11 /dev/ttyAMA0 вторичный (Bluetooth)
    UART1 mini UART /dev/ttyS0 основной
    UART2 PLO11
    UART3 PLO11
    UART4 PLO11
    UART4 PLO11
    По умолчанию UART2-5 выключены.

    Как видно из названия, UART0 полноценный серийный порт и он имеет более высокую производительность, чем обрезанный UART1, он же mini UART. Поэтому будет не лишним перевести Bluetooth на UART1 с тем, чтобы основной поток данных шел через UART0. Для этого в /etc/default/grub, или /boot/config.txt ставим enable_uart=1.
  6. В файле /etc/defaults/gpsd следует выставить.

    DEVICES="/dev/ttyAMA0 /dev/pps0"GPSD_OPTIONS="-n"USBAUTO="false"
    
  7. Запустите, или перезапустите gpsd.

    user@server ~$ sudo /etc/init.d/gpsd startuser@server ~$ sudo /etc/init.d/gpsd restart
    
  8. Проверка работы модуля GPS.

    user@server ~$ cat /dev/ttyAMA0user@server ~$ cgps -suser@server ~$ ppstest /dev/pps0
    
  9. Отредактируем файл /etc/ntp.conf.

    Все строки, содержащие сетевые публичные Stratum 1, 2 NTP сервера (такие, как pool [0-9].subdomain.pool.ntp.org) следует закомментировать, чтобы использовать лишь GPS/PPS источники данных.

    # GPS Serial data reference (NTP0)server 127.127.28.0 minpoll 4fudge 127.127.28.0 flag1 1 time1 0.9999 refid GPS #flag1 - PPS on
    

    # GPS PPS reference (NTP1)server 127.127.22.0 minpoll 4fudge 127.127.22.0 flag3 1 refid PPS #flag3 - enable KPPS API
    

    Верхняя запись NTP0 указывает на универсальный источник времени, доступный почти на всех устройствах GPS. Нижняя запись NTP1 определяет гораздо более точный PPS источник.
  10. Перезапустите ntpd

    user@server ~$ sudo /etc/init.d/ntpd restart
    

Использованные материалы



Подробнее..

Перевод Создаем собственный GPS-Трекер на технологии LoRa

07.11.2020 18:20:02 | Автор: admin


В этой статье вы узнаете, как создать собственный GPS-трекер с помощью микроконтроллеров Pycom LoPy, а также научитесь настраивать одноканальный LoRa Nano-Gateway.
Здесь я изложу ключевые этапы со всеми необходимыми ссылками.

Если вас интересуют подробное руководство и пояснения, то можете посмотреть видео запись моего выступления на технологическом подкасте IBM Developer Europe Crowdcast.

Начнем с общей схемы архитектуры, на которой показаны все компоненты, участвующие в процессе настройки трекера.

Узел LoPy служит в качестве GPS-устройства, отправляющего данные на LoRa Nano-Gateway.

Сам шлюз LoRa подключен к TheThingsNetwork по WiFi.

В конечном итоге мы получим Node-RED, выполняющийся в IBM Cloud, который будет принимать MQTT сообщения от TheThingsNetwork, сохранять их в базе данных Cloudant и отображать точки GPS-данных на карте.

Оборудование:


1 LoPy в качестве узла LoRa + антенна (868MHz/915MHz) + аккумулятор 3.7V LiPo;
Последовательный GPS-модуль 1 uBlox NMEA с антенной;
1 LoPy в качестве LoRa Nano-Gateway + антенна (868MHz/915MHz);
2 платы расширения Pycom.

Ссылки на используемое оборудование здесь: pycom.io/products/hardware

Программная часть:


Для программирования микроконтроллеров LoPy мы будем использовать Pymakr плагин для редакторов Atom и VS Code.

LoPy от Pycom.io это мульти-сетевой аппаратный модуль на базе микроконтроллера ESP32. Большинство из используемых в нем функций и библиотек собраны на MicroPython.

1. Настройка LoRaWAN Nano Gateway и подключение к TheThingsNetwork


Исходный код для LoRaWAN Nano-Gateway ждет вас здесь.

Распакуйте скачанный файл, после чего найдите каталог lorawan-nano-gateway в директории examples.

Все подробности по настройке Nano-Gateway изложены в следующей ссылке.

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

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

2. Настройка LoRa-узла с GPS-трекером


Приступаем к работе с The Things Network:
core-electronics.com.au/tutorials/pycom/getting-started-on-the-things-network-tutorial.html

Следуйте инструкциям TheThingsNetwork для регистрации и активации вашего устройства LoPy.

Есть два способа активации LoPy: либо через OTAA (активация по воздуху), либо ABP (активация путем персонализации). Первый вариант считается предпочтительным, если вы используете несколько устройств, но не подойдет для работы с LoRa Nano-Gateway.

Следующий образец кода использует активацию ABP и после установки LoRa-соединения отправляет 10 байт в виде 10 отдельных пакетов.

1 from network import LoRa2 import binascii3 import struct4 lora = LoRa(mode=LoRa.LORAWAN)5 dev_addr = struct.unpack(">l", binascii.unhexlify('XXXXXXX'))[0]6 nwk_swkey = binascii.unhexlify('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')7 app_swkey = binascii.unhexlify('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')8 # удаляем все каналы кроме предустановленных9 for i in range(3, 16):10       lora.remove_channel(i)11 # настраиваем 3 предустановленных канала на одну частоту12 lora.add_channel(0, frequency=config.LORA_FREQUENCY, dr_min=0, dr_max=5)13 lora.add_channel(1, frequency=config.LORA_FREQUENCY, dr_min=0, dr_max=5)14 lora.add_channel(2, frequency=config.LORA_FREQUENCY, dr_min=0, dr_max=5)15 # подключаемся к сети с помощью ABP 16 lora.join(activation=LoRa.ABP, auth=(dev_addr, nwk_swkey, app_swkey))17 # создаем сокет LoRa18 s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)19 # устанавливаем скорость обмена данными LoRaWAN20 s.setsockopt(socket.SOL_LORA, socket.SO_DR, config.LORA_NODE_DR)21 # делаем сокет неблокирующимся22 s.setblocking(False)23 for i in range (10):24    pkt = b'PKT #' + bytes([i])25    print('Sending:', pkt)26    s.send(pkt)27    time.sleep(4)28    rx, port = s.recvfrom(256)29    if rx:30        print('Received: {}, on port: {}'.format(rx, port))31    time.sleep(6)

Теперь узел LoRa настроен, и мы должны увидеть поступающие пакеты как через консоль Nano-Gateway, так и в консоли TheThingsNetwork.

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

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

Это, конечно, здорово, но все полученные нами данные в байтах. Как же их перевести в доступный для использования формат? Конечно же декодировать.

Направляйтесь в консоль TheThingsNetwork и выберите ваше приложение, в котором перейдите во вкладку Payload Formats и определите декодер, не забыв также сохранить его.

1 function Decoder(bytes, port) { 2   console.log(bytes)3   return {4       GPSCoordinates: String.fromCharCode.apply(null, bytes)5   };6 }

Теперь, когда наш GPS-трекер подключен через LoRaWAN, перейдем к самому интересному, а именно настроим сохранение в БД и начнем показывать данные на карте.

Этот процесс я привык реализовывать в среде IBM Cloud при помощи Node-RED.
Здесь можно быстро и легко зарегистрировать бесплатный Lite-аккаунт.

По умолчанию потоки Node-RED сохраняются в БД Cloudant, поэтому можно без проблем использовать эту же БД для сохранения наших GPS-данных.

Образец потока Node-RED находится здесь.

GPS-данные через MQTT собираются с TheThingsNetwork и сохраняются в Cloudant.

Для получения этих данных вам потребуется создать/сгенерировать новый ключ доступа. Снова направляйтесь в консоль TheThingsNetwork и выберите свое приложение, перейдите во вкладку settings и найдите среди прочих настроек access keys. Сгенерированный ключ будет находиться в нижней части страницы окна просмотра приложения.

Более подробное о взаимодействии MQTT с TheThingsNetwork рассказано здесь.

Заключение


Эта статья поможет вам лучше ознакомиться с основами использования Интернета Вещей (IoT) при помощи LoRa-соединения.

Если вам не терпится увидеть все это в действии, то еще раз напомню про свое выступление на технологическом подкасте IBM Developer Europe Crowdcast.

В этом видео я также показываю, как подключить LoRa GPS-трекер к публичному бельгийскому провайдеру этой технологии Proximus.

А какие еще, на ваш взгляд, есть варианты применения LoRa для Интернета Вещей?



Подробнее..

Как молодой девушке уехать на Яндекс.Такси в лес и пропасть без вести

05.02.2021 16:09:35 | Автор: admin

Любой человек может оказаться в неприятной ситуации когда он едет ночью, в лес, в багажнике... Предусмотрительные граждане пытаются избежать подобных инцидентов выбирая сервисы такси известных брендов, которые декларируют безопасность поездки, контроль за водителями и даже вешают в приложении огромную кнопку "БЕЗОПАСНОСТЬ" которую надо жать в случае если что-то пошло не так.

Но помогает ли эта кнопка? Давайте проверим на практике.

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

Требуется: добраться из частного сектора на окраине в центр, путь пролегает мимо промзон, лесопарков.

Решение (казалось бы очевидное): берём смартфон с сервисом ЯндексGO у супруга, заказываем ЯндексТакси, садимся и едем. Счастливый супруг тем временем наблюдает онлайн, как машина везёт пассажира по адресу...

Ой, никто уже никого никуда не везёт.

"Вы приехали" сообщает приложение. "Как всё прошло?"
"Стоимость поездки изменилась, заказ завершён не в указанной ранее точке." - вот тут наступает некоторая, так скажем, паника. Особенно на фоне новостей про онанистов из сервиса такси. Звонок супруге (не дословно):

  • "Ты где?! Уже приехала?"

  • "Нет, ещё еду."

  • "Странно, мне показывает что поездка завершилась досрочно... Что за окном? Уже город?"

  • "Нет, поля." (путь вполне может пролегать мимо лесополосы, полей, промзоны)

  • "Ок, как приедешь - позвони сразу. Что-то странное твориться, будь осторожна."

  • "Хорошо."

Что делать?

По логике - надо узнать где машина, причём быстро. На смартфоне - только маршрут который машина проехала до "отключения" поездки. А далее - перекрёсток, там можно свернуть или в сторону города (лес, поля вокруг) или в лес и поля подальше от города.


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


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

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


И вот тут приходит осознание, что если водитель решил вывезти вас в лес, то кнопка "Безопасность" не поможет когда водитель попросту нажал "Завершить поездку".
Только ваш труп в холодном зимнем лесу получит через пару часов от службы поддержки сообщение, что водитель плохо поступил и его отключат от сервиса если он сделает ещё пару раз так же.

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


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

Подробнее..

Серебряная пуля для кремлевского демона

27.02.2021 08:11:18 | Автор: admin

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


Это интересное пространственная обработка сигналов с антенных решеток. В обычной, особенно любительской, практике радиосвязи и радионавигации такое все еще редко встречается. Виной тому дополнительные кратные затраты на количество радио-трактов. Но иногда это вполне допустимо. Например, в мобильной связи. Здесь широко применяется пространственная обработка, MIMO. Даже в обычной точке доступа WiFi она уже есть давно.


Хотя в любительской радиотехнике все еще мало примеров использования пространственной обработки, она начинает завоевывать свое место. Этому способствует снижение цен на платы SDR с 2x2 MIMO, такие как LimeSDR или XTRX. Существуют даже относительно недорогие решения и для Massive MIMO.


В практике спутниковой радионавигации антенные решетки встречаются еще реже. Наверное, это происходит из-за узости области знаний, но не только. Немаловажным фактором остается сложность схем обработки. Сигналы спутников GPS, ГЛОНАСС и других имеют на поверхности Земли столь малую мощность, что даже неискушенный нарушитель легко создает помеху, в миллионы раз превышающую эту мощность. Что уж говорить про государственных нарушителей, за которыми мне пришлось гоняться несколько лет назад. Вся Москва не даст соврать. Кремлевские демоны!


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


image


Делаем синхронную запись сигнала с четырех антенн с подоконника. При этом с выхода LimeSDR излучаем гармоническую помеху на центральной частоте GPS L1 1575.42МГц. Спектр сигнала получается такой:


image


Для построения спектра мы используем программу на Matlab, полученную от prof. Dennis Akos и слегка модифицированную для работы с 16-битным комплексным сигналом. Здесь лежит архив с исходниками.


Кроме спектра, программа выводит более подробные параметры сигнала: гистограмма и график во времени.


image
image


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


image


Как видно, "спектр" сигналов GPS L1 C/A-code равномерный, без всплесков. Это значит, что сигналы спутников не обнаружены. Проверяем так четыре файла (с каждой антенны) ничего.


Теперь ударим легкой математикой по радио-электронной преступности. Возьмем такой простой код на Matlab:


% clean upclear;close all;clc;% read data from 4 filesfileNames = ['c:\work\aj\habr1\dump2\Dump_15_channel_0.int16';...             'c:\work\aj\habr1\dump2\Dump_15_channel_1.int16';...             'c:\work\aj\habr1\dump2\Dump_15_channel_2.int16';...             'c:\work\aj\habr1\dump2\Dump_15_channel_3.int16'];countFiles = size(fileNames,1);countInSamples = 5000000;dataArr = zeros(countFiles, countInSamples);fID = 0;for i = 1:countFiles    fID = fopen(fileNames(i,:));    if (fID == -1)        fprintf('This file does not exist: %s\n', fileNames(i,:));        return;    else        data = fread(fID, countInSamples, 'int16');        dataArr(i,:) = data;        fclose(fID);    endendcountInSamples% create I/Q arraydataArrIQ = zeros(countFiles, countInSamples/2);for i = 1:countFiles    k = 1;    for j = 1:2:countInSamples        dataArrIQ(i, k) = complex(dataArr(i, j), dataArr(i, j + 1));        k = k + 1;    endend20*log10(mean(abs(dataArrIQ),2))res = (diag(diag(inv(corrcoef(dataArrIQ'))).^(-1)) / corrcoef(dataArrIQ')) * dataArrIQ;20*log10(mean(abs(res),2))% write the result into 4 filesfor i = 1:countFiles    out = zeros(1, countInSamples);    for j = 1:(countInSamples/2)        out(2*j-1) = real(res(i,j));        out(2*j) = imag(res(i,j));    end    fID = fopen(strcat('out',num2str(i),'.int16'),'w');    fwrite(fID, out, 'int16');    fclose(fID);end

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


image


По спектру мы видим, что помеха не пропала совсем, но уменьшилась по уровню примерно на 30 дБ. Почему же она не упала ниже? Следующий график даёт нам разгадку.


image


Статистика отсчетов на выходе компенсатора похожа на статистику шума. График спектра получен с помощью преобразования Фурье, которое "обнажает" гармонические составляющие смеси помехи и шума. А в широкой полосе маленькие остатки помех "тонут" в шуме. Ниже шума подавить помеху у нас не получилось. Физика. Хотя во временной области гармоника остается видимой.


image


Итак, помеха уменьшилась на 30 дБ. Что же теперь покажет нам коррелятор? Сможет ли он найти сигнал?


image


Вуаля! Сигнал найден! Приемник обнаружил спутник в номером 1. Уровень корреляции не очень, но давайте дадим приемнику немного поработать и посмотрим на результаты.


image


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


Благодаря Матлабу вся математика заключена в одной строчке кода:


res = (diag(diag(inv(corrcoef(dataArrIQ'))).^(-1)) / corrcoef(dataArrIQ')) * dataArrIQ;

В более читаемом виде код будет таким:


cm = corrcoef(dataArrIQ');cc = diag(diag(inv(cm)).^(-1));res = (cc / cm) * dataArrIQ;

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


$\left(\begin{array}{c} y_1 \\ \vdots \\ \vdots \\ y_N \end{array}\right) = \left(\begin{array}{cccc} R_{11}^{-1} &0 &\ldots &0 \\ 0 &R_{22}^{-1} &\ldots &0 \\ \vdots &\vdots &\ddots &\vdots \\ 0 &0 &\ldots &R_{NN}^{-1} \end{array}\right) R \left(\begin{array}{c} x_1 \\ \vdots \\ \vdots \\ x_N \end{array}\right)$


Вот такой простой математикой можно вытащить GPS-приемник из пасти демона и получить вполне хороший SNR.


image


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


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


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


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


Большое спасибо за участие в подготовке этой статьи и кода в ней нашему математику-программисту vtsarik!

Подробнее..

Подавление спутниковой навигации на Кремлевской набережной незаконно

28.02.2021 20:13:53 | Автор: admin
Чтобы не пытаться вместить этот довольно длинный текст в комментарий, я создал отдельную статью. Заранее прошу прощения у юристов, я сам технарь, но легкомысленные комментарии к моей статье Серебряная пуля для кремлевского демона вынудили меня заняться не своим делом и полезть в законы. Я прошу провести экспертизу моих юридических изысканий.

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

Я нашел Федеральный закон от 14 февраля 2009 г. N 22-ФЗ О навигационной деятельности. Вы все без труда найдете ссылку на его текст. Приведу здесь некоторый выдержки.

Статья 1. Сфера действия настоящего Федерального закона

1. Настоящий Федеральный закон устанавливает правовые основы осуществления навигационной деятельности и направлен на создание условий для удовлетворения потребностей в средствах навигации и услугах в сфере навигационной деятельности.

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

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

Определения пропускаем, сами откроете и прочитаете. Но чего мы там не знаем? Все понятно, далее.

Статья 3. Субъекты правовых отношений в сфере навигационной деятельности

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

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

Статьи с четвертой по седьмую можете прочитать, но к нашему разговору они, по моему мнению, не относятся.

Статьи восемь и девять для нас самые главные.

Статья 8. Участие физических и юридических лиц в навигационной деятельности

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

Статья 9. Условия предоставления навигационных сигналов с открытым доступом

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

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

Указанный выше перечень утвержден Постановлением Правительства РФ от 5 июля 2001 г. N 508 Об утверждении перечня закрытых административно-территориальных образований и расположенных на их территориях населенных пунктов. С изменениями и дополнениями от:
16 апреля 2007 г., 16 июля 2009 г., 16 апреля 2015 г., 18 августа, 23 декабря 2016 г., 14 февраля, 19 апреля 2017 г., 18 апреля, 29 августа 2019 г., 16 февраля 2021 г. указанный перечень содержит:

image
image
image

Москвы в перечне нет. Прошу специалистов указать мне на ошибки в этой моей юридической инсинуации.

Весь материал я подготовил сам, ни один юрист не пострадал. Заранее спасибо!
Подробнее..

Из песочницы Как высчитать ключи перехода от лобой системы координат к WGS с сантиметровой точностью?

03.10.2020 18:20:42 | Автор: admin
Для кого этот пост картографы, геодезисты, генпланисты, строители и т.д.

Коллеги, привет!

Решаемая проблема получение 100% достоверных параметров для пересчета координат, например в привычные картографические градусы (WGS84). Коллеги уже поняли про что я, а любопытным поясню дело в том, что гуляющие по интернету приложения и алгоритмы с параметрами пересчета координат например из выписки ЕГРН на вашу дачу в координаты для GPS приемника, в подавляющем большинстве будут лаптем по карте. Для поиска объекта размером с дом, это не будет проблемой, а вот для инженерной затеи, уже слабовата точность. К примеру мы хотим обозначить границы на местности с сантиметровой точностью, найти трубу под землей или кабель, запустить безпилотник по картам с плоскими координатами, чертить чертеж в плоских координатах с картографической онлайн основой из интернета и многое другое, что требует субметровой точности.

Почему точные координаты становятся не точными


Плоские метровые координаты, знакомые нам из сведений о нашей недвижимости или с проектов и чертежей очень точны локально, но для привязки их к земному шару одной математики мало. Дело в том, что математическая модель плоской, метровой системы координат из документов, сначала была реализована на местности в виде геодезических пунктов, с точностью тех технологий, какие были на тот момент (в РФ большая часть систем координат развита в советское время и действуют по сей день). И уже потом от этих геодезических пунктах первого класса, создавались другие, от тех еще другие, от них всех производные секретные системы координат такие как СК63 с разворотами и искажениями координатной сетки, дабы врага запутать. При каждом таком преобразовании допускались искажения, незначительные, но нарастают они не линейно относительно количества преобразований, а намного прогрессивнее. В итоге большая часть координатных сеток сейчас похожа на чуть помятую и стянутую с одного краю простыню. Именно по этому 99% геокалькуляторов не спасут Вас от помятой простыни координатной сетки. Есть несколько геодезических сервисов для пересчета координат, платных, могу предположить, что там люди считают не по теоретическим параметрам системы координат, а обладают всеми параметрами помятой простыни. В большей части РФ надо рассчитывать параметры системы координат для небольших территорий, радиус этих территорий часто не превышает 15км. При таких небольших территориях искажения координатной сетки часто не превышает сантиметра, система координат очень точно лежит на земном шаре. Если Ваш интерес вылезает за 20-30км пространства, то необходимо несколько локальных параметров перехода рассчитывать на меньшие территории, дробить систему координат на более мелкие подзоны.

Изобретаем велосипед?


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

image

Расскажу кратко как это работает


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

Веб форма высчитывает параметры системы координат и выводит на экран в двух популярных и применимых в 99% ГИС системах форматах proj строка и WKT.

Тут немного рассказов про те самые параметры и немного терминологии


Много непонятных букв
Геоцентрическая система координат, это система где есть три пространственные координатные оси проходящие через центр земли. Координаты в такой системе имеют вид x,y,z или привычные нам широта и долгота измеряемые градусами угла от нулевой точки через землю lat long h. При этом высота h отсчитывается не от центра земли как в первом случае, а от эллипсоида, сферы, геоида (упрощённой модели поверхности земли).

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

Местная система координат (МСК) как правило прямоугольная система координат, обслуживающая небольшую локальныю территорию. Часто распостраняется на территорию района или города, где её искажения не критичны для точности строительства, кадастра и т.д.

Параметры системы координат состоят из нескольких отдельных параметров, опишем каждый из них. Возьмём строку параметров PROJ4 (MapInfp, ArcGIS и т. д. Так же используют эти параметры, только структура записи иная): +proj=omerc +lat_0=59.8338730825 +lonc=33 +alpha=-0.0001 +gamma=-1.771957267229058 +k=0.9996584453038837 +x_0=2365031.423134961 +y_0=426397.2888527482 +ellps=krass

Модель земного шара (+ellps=krass) в нашем случае это эллипсоид Красовского. Под этим названием эллипсоида скрывается параметры примерного описания земного шара: направление координатных осей и углы между осями, диаметр, сжатие на полюсах и т. д. Выбрать необходимый эллипсоид можно опытным путём либо зная основываясь на какой системы координат родилась интересующая вас МСК. На территории РФ, большая часть МСК выходцы из СК42 с эллипсоидом Красовского.

Проекция земного шара на плоскость (+proj=omerc) метод с помощью которого прямоугольные координаты проецируются за круглую землю. Самый распространённый алгоритм это апельсиновые дольки, если порезать апельсин по долькам, отделить от долек шкурки.

Расправленную шкурку положить на лист в клетку и получится проекция Меркатора. Бывают разные проекции с разными направлениями и размерами долек, бывают цилиндрические проекции, это когда апельсин превращают в цилиндр и раскатывают кожуру на плоскость, конические и т. д. Выбрать необходимую можно опытным путём либо зная основываясь на какой системы координат родилась интересующая вас МСК. На территории РФ, большая часть МСК выходцы из СК42 с проекцией Меркатора. Для точных локальных параметров МСК на малых территориях рекомендуем применять косую проекцию Меркатора (omerc).

Центр проекции в градусах (+lat_0=59.8338730825 +lonc=33) это то место, где расправленная шкурка апельсина меньше меньше всего растягивается для достижения плоскости (обычно серединка шкурки дольки), место с наименьшими искажениями. Грубо говоря место где плоский лист МСК прикасается к шарику нашей планеты. Часто для центральной точки выбирают точку центра района геодезических работ.

Развороты (+alpha=-0.0001 +gamma=-1.771957267229058) разворот осей координат МСК относительно меридиана.

Масштабный коэффициент (+k=0.9996584453038837), в идеале должен быть единицей. Показывает, на сколько реальное расстояние отличается от координатного. С помощью масштаба можно сразу прикинуть, как увеличивается искажение размеров при отдалении от центральной точки МСК.

Координаты центра проекции в метрах (+x_0=2365031.423134961 +y_0=426397.2888527482), можно рассматривать как значение смещения начала отсчёта координат в плоской МСК.

За основу взяты опенсорсные пакеты

  • proj4 для геодезических трансформаций
  • Leaflet для отображения информации на карте
  • geophp для расчета территории действия параметров с сантиметровой точностью (на момент написании статьи не реализовано)

Исходный код веб формы доступен с лицензией AGPL в открытом репозитории.

Обсуждение веб формы тутачки.
Подробнее..

Перевод Как выбрать подходящий модуль спутникового позиционирования для своего проекта

28.08.2020 18:19:00 | Автор: admin


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

Все одинаковые, но совершенно разные


Работа с GPS может внушать некоторые опасения, но благодаря усилиям промышленности и отдельных энтузиастов в наше время эта задача оказывается удивительно простой. Большинство имеющихся на рынке модулей будут работать одинаково. Чаще всего они передают данные по стандартному последовательному интерфейсу, обычно на скорости 9600 бод; также бывают интерфейсы I2C и SPI. Сами сообщения также стандартизированы они выдаются в формате NMEA-0183. Если вы хотите сами обрабатывать данные, по этому стандарту полно документации. Однако если вы очень торопитесь, для многих платформ с микроконтроллером можно найти готовый код, который всё сделает за вас. Такие проекты, как NeoGPS, Adafruit GPS и minmea примут входящий поток последовательных данных и выдадут все географические данные, которые вам только могли понадобиться. Так что же GPS это просто GPS?



В зависимости от области применения, от вашего GPS-модуля вам могут потребоваться разные вещи. Передвигающиеся с большой скоростью платформы, автопилот которых полагается на GPS, будут лучше работать с большой частотой обновления данных. Пассивные трекеры вполне удовлетворятся обновлениями не чаще раза в секунду. Требования к точности тоже бывают разные некоторым приложениям требуется сантиметровое разрешение. Также существуют особые возможности, помогающие в пограничных ситуациях, типа расчёта местоположения исходя из проделанного пути (навигационного счисления) или приёмников, способных работать с несколькими навигационными системами одновременно (GPS, ГЛОНАСС, Бэйдоу и т.п.). Чёткое понимание требований к прибору и бюджета главное в деле правильного выбора подходящего оборудования.

Мне просто нужно знать, где он!


Если вам необходима точность порядка нескольких метров и нечастое обновление местоположения, вам подойдёт простейший модуль GPS. Их стоимость может быть меньше $20, и они могут предложить частоту обновления 1-5 Гц и небольшое количество дополнительных свойств. Для многих проектов этого будет достаточно для определения местоположения человека, робота или транспортного средства. Также с такой частотой могут работать и простейшие автопилоты. Потребляют такие модули обычно менее 50 мА, а общаются по последовательному порту.

В эту группу попадают устройства на базе GP-20U7, а также уже устаревшего uBlox NEO-6M. Это дешёвый и простой способ недорого собрать ваш первый проект с GPS.

Мне нужен постоянный сигнал!


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


Качественная антенна с отдельным заземлением может значительно улучшить качество приёма

Точное определение местоположение требует получения хорошего сигнала от нескольких спутников поэтому, чем больше выбор, тем легче этого достичь. Большая вероятность увидеть достаточно много спутников будет у модулей, способных распознавать различные навигационные системы. У нас есть китайская Бэйдоу, европейская Галилео, российская ГЛОНАСС и если взять модуль, способный принимать дополнительный сигналы, у него будет огромное преимущество при работе в застроенной части города с ограниченным обзором неба.

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

Все эти возможности увеличивают вероятность успешного определения местоположения, но и стоят денег. Модули XA1110 и ublox NEO-M8U стоят от $50 до $100. Но за такие деньги зато они часто предлагают дополнительные интерфейсы типа USB-serial и I2C, а также высокую частоту обновления.

Мне нужны быстрые обновления!


Если вы собираете нечто, движущееся с большой скоростью, 5 Гц вам может показаться мало. Более частое обновление у модулей бывает от 10 Гц до 25 Гц, благодаря чему ваш быстро движущийся проект сможет куда лучше ориентироваться в пространстве. Конечно, если вы строите крылатую ракету, то вы вряд ли будете закупаться в Sparkfun а в противном случае развлекайтесь! Эти устройства обычно обмениваются данными на больших скоростях по последовательному порту или I2C, чтобы чаще обновлять местоположение.



Модули с такими возможностями всё равно бывают относительно недорогими, от $20 до $100. Для своих высокоскоростных проектов ищите модули типа SAM-M9N или BN-880Q.

Мне нужна сантиметровая точность!


Для некоторых случаев точность прежде всего. Если вы управляете комбайном, и не хотите, чтобы он протаранил ограду, то метровая точность вас не устроит. В данном случае лучше всего использовать приёмники с технологией Real Time Kinematics (RTK). Они объединяют полученный со спутника сигнал с локальными данными коррекции, полученными с базовой станции, в идеале находящейся не далее 10 км от их местоположения.


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

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

За точность приходится расплачиваться сложностью и деньгами. GPS-модули с поддержкой RTK идут уже по $200-$300 за штуку. Среди них NEO-M8P и ZED-F9P. Также требуется прикупить базовую станцию, если в вашей местности нет публичной. Данные нужно будет заводить в модуль либо по интернету, либо по радиосвязи. Не забудьте учесть эти требования при разработке!

Заключение


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

Перевод Разбираем мини-глушилку GPS

30.09.2020 14:10:05 | Автор: admin


Если достаточно долго прочёсывать eBay в поисках интересных электронных устройств, которые можно было бы раскурочить, вам обязательно начнут рекомендовать всякие сомнительные гаджеты. Так я недавно наткнулся на эти небольшие GPS-глушилки, подключаемые напрямую в гнездо прикуривателя автомобиля. В США с доставкой их можно купить не дороже $10, и такое устройство показалось мне идеально подходящим для того, чтобы вскрыть его во имя науки.

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

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

А теперь меня слышно?


Хотя высота орбит спутников GPS, 20 200 км, не такая большая, как у спутников связи, находящихся на геосинхронной орбите, они всё же находятся достаточно далеко от нас. Учитывая такое огромное расстояние и принимая во внимание размер антенны на большинстве устройств для работы с GPS, неудивительно, что принимаемый от них сигнал оказывается очень слабым. Настолько, что обычно он оказывается слабее шума. Только очень хитрые алгоритмы и немного магии позволяют вашему телефону услышать этот шёпот звёзд, и превратить его в что-то, напоминающее полезную информацию.


Найти в принимаемом радиоприёмником RTL-SDR сигнале GPS всё равно, что иголку в стоге сена

Именно такая хрупкость этого сигнала делает возможным создание подобных недорогих глушилок. Чтобы подавить такой сигнал, многого не надо. Учтите, что данное устройство не пытается имитировать спутник GPS оно просто передаёт в эфир достаточно громкого мусора, чтобы нельзя было услышать реальные спутники.

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


После включения глушилки сигнал становится иголкой в стоге иголок

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

Предан старым другом


Теперь, когда мы на несколько минут нарушили федеральный закон, включив это устройство (серьёзно, не покупайте его), и подтвердили, что эта тварь действительно выполняет рекламные обещания, остаётся только вскрыть его и посмотреть, как оно работает. Я не ожидал увидеть внутри многого за те $8, что были потрачены на покупку, однако всё равно очень интересно увидеть, насколько легко можно причинить столько вреда.


Много лет таймер 555 терял свою популярность из-за Arduino, и теперь связался с плохой компанией

С одной стороны платы видны два основных компонента регулятор 78M05, понижающий 12 В автомобиля до 5 В, и старый друг хакеров, таймер NE555. Жаль, что эту легендарную ИС, икону в истории электроники, ныне можно увидеть, только расковыряв нелегальную глушилку но что есть, то есть.

И всё же, если вам нужно глушилку не просто АМ-радио, одного таймера будет маловато. Перевернём плату, и посмотрим на реального плохиша.

Консервированная радиомагия




Явно звездой нашего шоу является компонент с маркировкой 13BA A041. Но что это? Спецификацию для этой конкретной модели я не нашёл, но наш подопытный это микроволновый генератор, управляемый напряжением (ГУН). Верхняя крышка это металлическая защита, и если немного над ней поработать, мы сможем заглянуть внутрь, и узреть невероятный массив компонентов, впихнутый на площадку в 97 мм.



По сути, здесь происходит следующее: управляющий контакт ГУН (отмечен на отпечатке, как VC) соединён с выходом таймера 555 с другой стороны платы. Сигнал, идущий от таймера, модулирует выходной сигнал ГУН, что и образует частоту нашего шума, располагающуюся в районе частоты GPS 1575 МГц.



Осциллограф, подсоединённый к контакту VC, показывает нам пилообразный сигнал на 133 КГц, который выдаёт 555-й таймер. Если подстроить этот сигнал, можно будет, в принципе, поменять частоту, на которой работает глушилка, но не имея спецификаций для этого ГУН, сложно сказать, насколько сильно можно изменять его частоту. Поскольку это, вероятно, был самый дешёвый компонент из доступных думаю, не сильно.

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

Неприятный сюрприз


Я допускал, что эта микро глушилка GPS просто не будет работать, или будет работать так плохо, что мало на что будет влиять. Однако вопреки всем традициям, дешёвое иностранное устройство, купленное на eBay, превзошло все мои ожидания.

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

Использование LoRa для интеграции кота в IoT

09.05.2021 16:23:04 | Автор: admin
Duivendrecht, вид на ферму и церковьDuivendrecht, вид на ферму и церковь

Я всегда мечтал жить в деревне - чтобы зелень и птички щебетали летом - но недалеко от города и выбора удобств. И наконец мечта сбылась - я поселился в доме с садом, в местечке Дёйвендрехт, тихой деревне, которая ближе к центру Амстердама чем половина собственных его районов.

А в дом с садом просто необходимы коты.

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

Поэтому через некоторое время у нас появился Барсик, по паспорту Эскобар.

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

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

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

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

Протестированы были устройства Invoxia, Findster, Tractive и некоторые другие. Invoxia это сеть SigFox, Tractive и прочие - GPRS с симкой, Findster - собственное радио.

  • Симочные все требуют денег, минимум 5 евро в месяц абонемент. При этом видимо используются какие-то дешёвые IoT симки с 2G connectivity. Задержки сигналов 1-2 минуты.

  • На SigFox возлагались надежды - но сеть теряет сигналы как-то уж очень часто, локации приходят в перемешанном порядке. Качество фикса позиции ужасное.

  • Findster - хороший фикс и реалтайм отслеживание. Производитель рекламирует радиус 900 метров в городе, реально 100+ метров - трекинг теряется. Его я использовал дольше всего - пока Барсик вокруг дома уже всё не изучил, ему не стало скучно и он отправился в более дальние экспедиции.

  • Жизнь батарейки - реалтайм GNSS трекинг выжирает часа за 2-3 батарейку у всех трекеров.

LoRa и The Things Network

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

  • LoRa использует EU 868MHz нелицензированные частоты, которые доступны и в РФ.

  • LoRa использует chirp модуляцию, изначально придуманную для военных целей, которая позволяет энерго-эффективную радио коммуникацию в отсутствии прямой видимости.

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

  • Устройства LoRa не стоят индустриальных денег

Стандартных решений для трекеров с LoRa сетью на рынке не было - и нет - но почему бы и не сделать собственное?

Gateway и антенна


Нидерландская компания The Things Network предлагает TTN Indoor gateway за 70 евро. Установка и конфигурация (gateway передаёт через wifi на сеть TTN всё, что ловит на радио сам) была завершена за 10 минут.

TTN консоль сделана с любовью, всё понятно и удобно.TTN консоль сделана с любовью, всё понятно и удобно.

Единственная проблема - gateway содержит внутреннюю напечатанную антенну, которая не обеспечивает связи вне дома.

Решение проблемы - подключить внешнюю антенну. Благо дом свой, можно лезть на крышу и ставить что угодно.

Aurel GP 868 антенна на крышеAurel GP 868 антенна на крыше

Решение по частям

  • заказать внешнюю антенну с ground plane диаграммой (например Aurel GP 868, EUR 40,-)

  • заказать IPEX кабель-адаптер (для Aurel был нужен IPEX-to-BNC-female, EUR 3,-)

  • вскрыть корпус gateway, отсоединить IPEX кабель от печатной планы и воткнуть свой кабель внешней антенны

Наверное можно было сделать аккуратнее, но и так работает.Наверное можно было сделать аккуратнее, но и так работает.

После такого хака я увидел на гейтвее трафик с нескольких LoRa устройств поблизости. Это колхозный принцип организации TTN - каждый любитель, типа меня, с гейтвеем ловит и передаёт трафик от всех устройств, активированных в TTN. В сутки где-то 100 тысяч сообщений, но каждое меньше 100 байт, поэтому +10 мегабайт в сутки на фоне всего остального незаметно, от слова вообще.

В результате получается бесплатная (и без SLA) колхозная сеть. Покрытие не 100% и даже не близко, но сам факт, почему бы и нет?

Бесплатное покрытие TTN в АмстердамеБесплатное покрытие TTN в Амстердаме

С антенной как есть - покрытие порядка 1 км радиус, планирую поднять антенну на 6 метров, посмотрю насколько увеличится радиус. Фанаты устанавливают рекорды LoRa связи в несколько сотен километров.

На рынке LoRa трекеров есть несколько устройств, но единственное устройство можно было использовать в качестве кото-трекера. Это BroWAN Object Locator, которые делает тайваньская фирма Browan. Кроме этих сенсоров, они делают ещё десятки других LoRa устройств, от CO2 до протечек воды. Очень милые ребята, хорошая техническая поддержка.

Другие сенсоры были либо слишком тяжёлые (для авто или мотоциклов), либо с батарейкой, которая не перезаряжается, либо не позволяли сконфигурировать себя под TTN.

BroWAN tabBroWAN tab

Вес 28 граммов, батарейка 540mAh, которой хватает на передачу позиции раз в минуту в течение 8 часов, или дольше, если реже.

Но если бы я был котом, мне бы с такой блямбой на шее бегать было бы неудобно. К тому же кот носил Findster и теперь носит два BroWAN tab - TTN с моей антенной и KPN, который тестируется.

Поэтому я купил шлейку для прогулок котов, отрезал всё лишнее и пришил как умел два кармашка, получился такой типа жилетик-разгрузка.

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

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

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

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

Ещё Барсик таскает в одном из кармашков маленькую круглую таблетку Tile- она не умеет в GNSS и из радио всего лишь Bluetooth. Но зато она умеет громко пиликать, когда ты от неё в 10 метрах или ближе (в рекламе 30-40, но с 10 точно берёт). Это позволяло мне находить жилетик в 6 случаях, когда кот его сбрасывал и гулял дальше голый.

Эскобар в боевом облаченииЭскобар в боевом облачении

Программное обеспечение

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

Кот начинает гулять, трекер активируется акселерометром и начинает посылать позиции раз в минуту. Пакеты ловятся каким-то gateway (иногда несколькими) и пересылаются в сеть TTN.

Каждый пакет это примерно 50 байт, содержит заголовки, метаданные, локация и напряжение батарейки.

Приложение в консоли TTNПриложение в консоли TTN

Gateway добавляет свою информацию, в частности отношение сигнал/шум и посылает всё в сеть TTN. В консоли TTN каждое устройство (device) конфигурируется как честь приложения (application) - группа устройств, парсер входящих пакетов + дальнейшие интеграции - MQTT, HTTP и прочие.

Конфигурация устройстваКонфигурация устройства

В TTN application можно добавить функцию-парсер для преобразования байтов из устройства в структуру типа JSON. Для BroWAN трекеров код выглядит так:

function Decoder(bytes, port) {    var params = {        "bytes": bytes    };    bytes = bytes.slice(bytes.length-11);      if ((bytes[0] & 0x8) === 0) {        params.gnss_fix = true;      } else {        params.gnss_fix = false;      }      // Mask off enf of temp byte, RFU      temp = bytes[2] & 0x7f;      acc = bytes[10] >> 5;      acc = Math.pow(2, parseInt(acc) + 2);      // Mask off end of accuracy byte, so lon doesn't get affected      bytes[10] &= 0x1f;      if ((bytes[10] & (1 << 4)) !== 0) {        bytes[10] |= 0xe0;      }      // Mask off end of lat byte, RFU      bytes[6] &= 0x0f;      lat = bytes[6] << 24 | bytes[5] << 16 | bytes[4] << 8  | bytes[3];      lon = bytes[10] << 24 | bytes[9] << 16 | bytes[8] << 8  | bytes[7];      battery = bytes[1];      capacity = battery >> 4;      voltage = battery & 0x0f;      params.latitude = lat/1000000;      params.longitude = lon/1000000;      params.accuracy = acc;      params.temperature = temp - 32;      params.capacity = (capacity / 15) * 100;      params.voltage = (25 + voltage)/10;      params.port=port;      return params;}view rawttn-browan hosted with  by GitHub

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

Приложение состоит из Scala/Akka сервиса, фронтенда на голом TypeScript, Azure DevOps CI и Kubernetes дескриптора.

Полный код доступен в https://github.com/jacum/catracker.

Сегодня был дождь и Барсик не ходил далекоСегодня был дождь и Барсик не ходил далеко

Интерфейс минималистичный но вполне MVP - показывает проценты батарейки, позицию кота и время с апдейта последней позиции, если прошло больше двух минут. Скриншот сделан после 1 часа и 53 того, как кот пришёл домой - трекер не посылает событий, если акселерометр не показывает движения.

Большое спасибо TTN за надёжное и недорогое оборудование, и добротную консоль, и BroWAN за лучшие LoRa трекеты.

И конечно же коту Барсику за ежедневные усилия по тестированию решения.

Мяу!Мяу!

Оригинал (моей же) статьи

Подробнее..

Перевод Военные испытания GPS в США угрожают безопасности полётов

15.02.2021 12:06:03 | Автор: admin

Военные испытания, глушащие и подменяющие сигналы GPS это бомба замедленного действия




В один из дней мая прошлого года ранним утром коммерческий самолёт подлетал к международному аэропорту Эль-Пасо в Западном Техасе. Внезапно на приборной панели появилось предупреждение: потеряно местоположение по GPS. Пилот связался с центром управления полётами авиалинии, и ему сообщили, что на стрельбище Уайт-Сэндс на юге Нью-Мексико военные в ходе испытаний вмешиваются в работу GPS. Тогда мы поняли, что дело было не в GPS-устройствах на борту, писал пилот позже.

Из-за сильного ветра пилот промахнулся мимо взлётно-посадочной полосы, и пошёл на второй заход. Нам пришлось заходить на 4-ю полосу ещё до наступления рассвета, не имея доступа к приборам вертикального наведения, писал пилот. На 4-й полосе был высокий риск столкновения с землёй в управляемом полёте из-за её уклона.

Риск столкновения с землёй в управляемом полёте понятен из самого названия этого термина. Пилот даже раздумывал, не уйти ли в аэропорт Альбукерка, расположенный в 370 км, но в итоге решился, и сел на 4-ю полосу, руководствуясь только визуальными ориентирами. Посадка прошла успешно, однако позже пилот описал свои ощущения в системе Aviation Safety Reporting System (ASRS, система отчётов по воздушной безопасности) от НАСА. На этом форуме пилоты могут анонимно делиться впечатлениями о рискованных ситуациях и давать советы по безопасности.

И это далеко не самое страшное сообщение с форума, связанное с глушением GPS-сигналов. В августе 2018 года пассажирский самолёт в Айдахо в условиях задымлённость сообщил о помехах в GPS-сигнале, связанных с военными испытаниями. Ему удалось избежать столкновения с горой в последний момент только благодаря вмешательству авиадиспетчера. Диспетчеры и пилоты считают, что их оборудование работает, как должно, однако на самом деле оно ведёт их прямо в горный склон такая ситуация может привести к человеческим жертвам, писал диспетчер. Если бы мы этого не заметили, все пассажиры и пилоты самолёта погибли бы. Без сомнений.

За последние восемь лет на форуме ASRS зафиксировано почти 90 случаев, описывающих помехи сигнала GPS в США. Большая часть из них произошли в 2019-2020 годах. А сейчас у редакции появились новые свидетельства того, что нарушение работы GPS, влияющее на коммерческие полёты, происходит гораздо чаще, чем описывается в базе ASRS. Недавно раскрытые данные от Федерального управления гражданской авиации США (FAA) за несколько месяцев 2017 и 2018 годов рассказывают о сотнях случаях потери приёма GPS-сигнала самолётами, оказавшимися вблизи мест проведения военных испытаний. За один только день в марте 2018 года пилоты 21 самолёта сообщили о проблемах с приёмом GPS авиадиспетчерам аэропортов близ Лос-Анджелеса. Среди них были вертолёт скорой помощи, несколько частных самолётов, и десяток коммерческих реактивных самолётов. Часть из них смогла продолжить нормальный полёт, другим потребовалось помощь авиадиспетчеров. Пилоты пяти самолётов сообщили о том, что машина сделала неожиданный поворот или уходит с курса. Вероятно, по всей стране ежегодно происходят сотни, а возможно и тысячи подобных случаев, каждый из которых потенциально может обернуться катастрофой. И подавляющее большинство таких случаев можно связать с американскими военными, которые сегодня регулярно, чуть ли не ежедневно глушат GPS-сигналы на больших территориях.

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

В ранние дни авиации пилоты днём ориентировались по картам дорог, а ночами по кострам и прожекторам. К моменту начала Второй мировой войны уже достаточно популярными стали радиомаяки. С конца 1940-х наземные станции начали вещание всенаправленных VHF-сигналов, по которым могли ориентироваться самолёты, а системы более ближнего действия показывали пилотам безопасные траектории посадки. На пике популярности в 2000-м году в США было более тысячи навигационных станций с VHF-сигналом. Однако там, где станции стояли редко, пилотам приходилось летать зигзагами, от одной станции до другой, а принимаемый сигнал могли ослаблять холмы и здания.

Всё изменилось с развитием глобальных систем навигации, впервые разработанных военными США в 1960-х. Когда в середине 1990-х появилась гражданская версия этой технологии, система глобального позиционирования (Global Positioning System, GPS), самолёты смогли ориентироваться по спутникам и перемещаться от одной точки к другой по прямым. Также данные по местоположению и высоте с GPS были достаточно точными для того, чтобы самолёты могли садиться по ним.

FAA находится в процессе внедрения системы NextGen, которая должна сделать полёты более безопасными и эффективными, полностью переключившись с наземной навигации по радиомаякам и прочему на спутниковую. Параллельно с этим агентство лет десять назад начало отключать станции VHF-навигации. Сеть наземной поддержки полётов в США уже скоро сократится до минимума из 600 резервных наземных станций.

Из-за того, что пилоты всё больше полагаются на GPS, это меняет практики полётов и их привычки. GPS-приёмники становятся всё дешевле, меньше и функциональнее, в связи с чем их всё чаще используют и интегрируют. В большинстве самолётов сегодня используется автоматическое зависимое наблюдение-вещание АЗН-В. Работающие по этой технологии транспондеры используют GPS для подсчёта и трансляции своей высоты, курса и скорости. Пилоты частных самолётов используют цифровые карты на планшетных компьютерах. Данные, полученные от GPS, лежат в основе автопилотов и полётных компьютеров. Теоретически пилоты и сейчас должны иметь возможность ориентироваться, летать и приземляться без GPS, используя существующие радиосистемы и визуальные ориентиры. На коммерческих самолётах есть целый ряд резервных технологий. Но поскольку GPS так широко распространён и надёжен, пилотам грозит опасность забыть эти ручные технологии.

Когда в июне 2019 года пассажирский реактивный самолёт внезапно потерял сигнал GPS над Солт-Лейк-Сити, пилот достаточно сильно запутался, как писал он потом в отчёте для ASRS. Сказать, что мне недоставало навыков ориентирования по необработанным данным, будет преуменьшением! Я никогда не делал этого в Airbus и не помню, чтобы вообще занимался этим за последние 25 лет.

Не виню пилотов за то, что они так подсели на GPS, говорит Тодд. И. Хамфрис, директор Радионавигационной лаборатории техасского университета в Остине. Когда что-то хорошо работает 99,99% времени, люди не очень бдительно готовятся к той 0,01% времени, когда оно откажет.

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

В декабре 2012 года авиадиспетчер заметил, что направляющийся на запад пассажирский самолёт, находящийся близ Рино, Невада, на 16 км отклонился от курса. Диспетчер убедился, что виновником происшествия были военные, глушившие GPS, и передал пилоту новое направление. Позднее он отмечал: Если бы пилот заметил, что он ушёл с курса, до того, как это сделал я, и провёл бы корректировку, самолёт из-за этого повернулся бы в обратном направлении, на восток.

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

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

Другие системы глобального позиционирования ГЛОНАСС в России, BeiDou в Китае и Galileo в Европе используют немного другие частоты, но обладают схожими уязвимостями, в зависимости от того, кто именно проводит атаку. В Китае были случаи, когда загадочные атаки смогли направить корабли с GPS-приёмниками по ложному курсу, не повлияв при этом на суда с приёмниками BeiDou. Сигналы GPS регулярно глушат на востоке Средиземноморья, в Норвегии и Финляндии, а система Galileo при этом работает без сбоев.

Для проверки того, как войска ведут себя в отсутствии сигнала GPS, Пентагон использует удалённые военные базы, по большей части на западе страны. Предполагается, что параллельно военные разрабатывают собственные системы для ведения электронных боёв, а также контрмеры. Точно известен, по меньшей мере, один случай испытания системы подмены GPS-сигнала в США, во время которого, как говорят, были приняты все меры для того, чтобы не повлиять на гражданские самолёты.

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

Специально для пилотов военные распространяют Notices to Airmen (NOTAM, уведомления для лётчиков), в которых предупреждают пилотов о планирующихся испытаниях. Во многих из этих уведомлений упоминаются территории размером в сотни тысяч квадратных километров. Бывают уведомления о том, что работа GPS будет нарушена, к примеру, над всем штатом Техас, или даже над всем юго-западом США. Подобное уведомление не означает, что работа GPS будет полностью парализована над всей упомянутой территорией только то, что GPS кое-где на этой территории может работать нестабильно. И подобная неопределённость сама создаёт проблемы.

В 2017 году FAA дала указания некоммерческой Радиотехнической комиссии по аэронавтике (RTCA) изучить, как намеренное наведение помех на GPS влияет на гражданские самолёты. В следующем году комиссия выпустила отчёт, где описала, что количество военных испытаний, связанных с работой GPS, почти утроилось в 2012 по 2017. Неудивительно, что количество отзывов о безопасности ASRS, связанных с глушением сигнала GPS, также возросло. За один 2019 год было упомянуто 38 подобных случаев почти в 10 раз больше, чем в 2018.


Распределение проблем с GPS по видам воздушных судов с февраля по июль 2017:
коммерческие самолёты
частные воздушные суда
малые коммерческие реактивные самолёты
коммерческие грузовые воздушные суда
неопределённый тип
вертолёты скорой помощи
воздушные шары
воздушная служба спасения животных


В редакцию IEEE Spectrum попали новые, ранее не публиковавшиеся материалы от FAA. Судя по ним, сообщения с ASRS это только верхушка айсберга. В этих данных содержатся отчёты пилотов о нарушении работы GPS в центре управления воздушным трафиком Лос-Анджелеса одном из 22 центров управления США. Работающие там авиадиспетчеры контролируют воздушный трафик над центральной и южной Калифорнией, северной Невадой, юго-западной Ютой, западной Аризоной и частью Тихого океана. Во всех этих областях идут активные военные испытания.

В данных упоминается 173 случая полной потери сигнала GPS или его прерывистой работы за период в 6 месяцев 2017 года и ещё 60 случаев, происшедших в начале 2018. Деталей указано меньше, чем в базе ASRS, однако там есть случаи ухода воздушных судов с курса, случайного входа в военное воздушное пространство, потери возможности маневрировать, и возможности ориентироваться при приближении к другому воздушному судну. Многим пилотам потребовалась помощь авиадиспетчеров для продолжения полёта. В перечень судов, испытывавших проблемы, попали самолёт службы спасения животных, воздушный шар, медицинские суда и множество частных и пассажирских реактивных самолётов.

В некоторых случаях потеря GPS стала чрезвычайным происшествием. Пилоты пяти судов, включая рейс компании Southwest Airlines из Лас-Вегаса в Чикаго, отправили сигнал аварийного останова запрос военным на немедленное прекращение глушение сигнала, передаваемый через диспетчерскую. Представители ассоциации пилотов и владельцев воздушных судов говорят, что такой запрос пилот должен использовать только в случаях, представляющих реальную опасность для полёта.

Конечно, множество случаев, описанных в данных FAA, не были катастрофичными. К примеру, в начале марта 2017 года Джим Йодер управлял реактивным самолётом Cessna, принадлежащим предпринимателю и космическому туристу Деннису Тито, совершая перелёт из Лас-Вегаса в Палм-Спрингс, Калифорния. В какой-то момент оба имевшихся на борту устройства для работы с GPS перестали нормально функционировать. Это был единственный случай, когда у меня отключился GPS, и это было довольно интересно, поскольку я особенно об этом не задумывался, рассказал нам Йодер. Я спросил авиадиспетчеров, что происходит, но они, по-видимому, не знали. Однако мы не потеряли возможность ориентироваться, и даже, по-моему, с курса не сбились.

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

Мы называем эти уведомления ''Цыплёнок Цыпа'' [персонаж сказки, которому показалось, что ему на голову упало небо / прим. пер.], говорит Рун Дьюк, бывший одним из членов комиссии RTCA. Нам говорят, что на больших территориях небо упадёт на землю, и это звучит нереалистично. Горы и всякие другие препятствия не дадут помехам сигналу GPS распространиться на 500 морских миль [926 км] от того места, где стоит оборудование, нарушающее его работу.

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

У такой ненадёжной системы есть последствия. В 2014 году пассажирскому самолёту на подлёте к Эль-Пасо пришлось отменить посадку из-за потери сигнала GPS. Впервые за мою карьеру лётчика я испытал на себе и даже вообще услышал о глушении сигналов GPS, писал на форуме ASRS пилот. Хотя военные и выпускали уведомление, меня эта ситуация все равно застала врасплох, поскольку мы не ожидали полностью потерять все сигналы GPS. Хорошо, что погода была хорошей, или ситуация могла бы превратиться в серьёзную.

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

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

Стоит отметить, что до выхода отчёта FAA рекомендовало пилотам сообщать об аномальном поведении GPS только тогда, когда им понадобилась помощь диспетчеров. Было трудно набрать нужные данные, поскольку мы не одобряли подачу отчётов, говорит Дьюк. Из-за этого FAA считала, что большой проблемы с этим нет.

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

Новые тенденции лишь усугубляют эту проблему. Проект NextGen ускоряет переход коммерческих самолётов на спутниковую навигацию. Автономные летательные аппараты, дроны и воздушные такси, ещё сильнее будут опираться на ненадёжные плечи GPS.

Внедрение любого нового воздушного судна несёт с собой новые вызовы для системы. К примеру, Embraer EMB-505 Phenom 300 встал в строй в 2009 году, и с тех пор стал самым продаваемым лёгким реактивным самолётом в мире. В 2016 году FAA предупредила, что в случае ненадёжного сигнала GPS или полного его отсутствия Phenom 300 рискует начать колебания типа "голландский шаг". Это сложная комбинация из рыскания, изменения крена и тангажа, которая может привести к потере управляемости. FAA порекомендовала пилотам Phenom 300 избегать областей, в которых есть помехи для сигнала GPS. Компания Embraer объявила, что исправила эту проблему в 2017-м.

Чем активнее используется GPS, тем больше ею интересуются военные. С течением времени потребность военных в испытании технологий создания помех GPS растёт, говорит Дьюк. В 2019 она опять возросла, в частности из-за активизации разработок технологии противодействия беспилотникам. Теперь они мешают работе GPS в таких местах, где раньше такого не было к примеру, в Мичигане, в Висконсине, в обеих Дакотах. Это добавляет реализма в испытания.

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

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

Однако в отчёте для конгресса в апреле 2020 года министерство внутренней безопасности США, отвечающее за координацию этих задач, писало: МВБ рекомендует возложить ответственность за решение проблем, связанных с временным отключением сервиса GPS, на отдельных пользователей, а не на федеральное правительство. Проще говоря, проблема помех GPS никуда не денется.

В сентябре 2019 года пилот небольшого реактивного самолёта столкнулся с активным подавлением спутникового сигнала во время рейса на Нью-Мексико. Посредством связи он слышал, что соседние с ним воздушные суда также испытывали эту проблему, и некоторым пришлось снизить высоту из соображений безопасности. Поскольку FAA избавляется от наземных станций, страхующих нас по радиосвязи, мы начинаем зависеть от ненадёжной навигационной системы, написал пилот после приземления. Подобные помехи критически важной GPS-навигации, возникающие чрезвычайно часто, представляют значительную угрозу безопасности полётов. Эти помехи нужно прекращать.

Возвращаясь домой, этот же пилот вновь столкнулся с глушением сигнала GPS.
Подробнее..

Снежная слепота беспилотных авто

02.06.2021 10:16:01 | Автор: admin


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

Основа исследования


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

Однако, если убрать из нашего образного уравнения переменную пешеход, то все равно останется много потенциально опасных факторов. Погода является одним из них. Очевидно, что в плохую погоду (ливень или снежная буря) видимость может снизиться настолько, что порой приходится просто остановиться, ибо ехать нереально. Зрение автомобилей, конечно, сложно сравнить со зрением человека, но их датчики страдают от снижения видимости не меньше нас. С другой стороны у машин есть более широкий арсенал этих датчиков: камеры, радары диапазона миллиметровых волн (MMW), система глобального позиционирования (GPS), гиростабилизатор (IMU), система обнаружение и определение дальности с помощью света (LIDAR) и даже ультразвуковые системы. Несмотря на это многообразие органов чувств, автономные машины все еще слепы во время плохой погоды.

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

При семантической сегментации вместо обнаружения объекта на изображении каждый пиксель классифицируется индивидуально и присваивается классу, который пиксель представляет лучше всего. Другими словами, семантическая сегментация это классификация на уровне пикселей. Классическая семантическая сегментация сверточная нейронная сеть (CNN от convolutional neural network) состоит из кодирующей и декодирующей сетей.

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

Двумя ключевыми компонентами в декодирующих сетях являются так называемые слой MaxUnpooling и слой свертки Transpose. Слой MaxUnpooling (аналог слоя MaxPooling операция пулинга с функцией максимума) необходим для снижения размерности обрабатываемых данных.


Пример операции MaxPooling.

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

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

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

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

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

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

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

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


Таблица преимуществ и недостатков датчиков, используемых в беспилотных авто.

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

Сбор данных


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

Для проведения дальнейших работ, включающих расчеты, моделирование и тестирование, необходимо было много данных. Чем больше, тем лучше, говорят сами ученые, и это вполне логично, когда речь идет о работе различных датчиков (камеры, LiDAR и Radar). Среди множества уже существующих наборов данных был выбран DENSE, которые охватывает большую часть необходимых для исследования нюансов.

DENSE также является проектом, нацеленным на решение проблем нахождения пути в суровых погодных условиях. Ученые, работавшие над DENSE, проехали порядка 10000 км по Северной Европе, записывая данные с нескольких камер, нескольких LiDAR, радаров, GPS, IMU, датчиков дорожного трения и тепловизионных камер. Набор полученных данных состоит из 12000 выборок, которые можно разбить на более мелкие подгруппы, описывающие конкретные условия: день+снег, ночь+туман, день+ясно и т.д.

Однако для правильной работы модели необходимо было провести коррекцию данных из DENSE. Исходные изображения камеры в наборе данных имеют размер 1920 х 1024 пикселей, их уменьшили до 480 х 256 для более быстрого обучения и тестирования модели.

Данные LiDAR хранятся в формате массива NumPy, который нужно было преобразовать в изображения, масштабировать (до 480 x 256) и нормализовать.

Данные радара хранятся в файлах JSON, по одному файлу для каждого кадра. Каждый файл содержит словарь обнаруженных объектов и несколько значений для каждого объекта, включая x-координаты, y-координаты, расстояние, скорость и т.д. Такая система координат параллельна плоскости автомобиля. Чтобы преобразовать ее в вертикальную плоскость, нужно учитывать только y-координату.


Изображение 1: проецирование y-координаты на плоскость изображения (слева) и обработанный кадр радара (справа).

Полученные изображения подвергались масштабированию (до 480 x 256) и нормализации.

Разработка CNN модели



Изображение 2: архитектура разработанной CNN модели.

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

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

Данные LiDAR не столь массивны, как данные от камер, потому его поток состоит из трех блоков. Точно так же поток Radar меньше, чем поток LiDAR, потому состоит всего из двух блоков.

Выходные данные от всех потоков изменяются и объединяются в одномерный вектор, который подключен к сети из трех скрытых слоев с ReLU активацией. Затем данные преобразуются в двумерный массив, который передается в сеть декодирования, состоящую из четырех последовательных этапов MaxUnpooling и транспонированной свертки для повышения дискретизации данных до размера ввода (480x256).

Результаты обучения/тестирования CNN модели


Обучение и тестирование проводились на Google Colab с использованием GPU. Подмножество данных, размеченных вручную, состояло из 1000 выборок данных камеры, LiDAR и радара 800 для обучения и 200 для тестирования.


Изображение 3: потери в обучающих выборках во время фазы обучения.

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


Изображение 4: точность в тестовых выборках во время фазы тестирования.

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

Однако этот показатель не является идеальным. В некоторых случаях определенный класс недостаточно представлен в выборке, от чего точность пикселей будет значительно выше (чем на самом деле) из-за того, что не хватает пикселей для тестирования модели для определенного класса. Посему было решено дополнительно использовать MIoU среднее отношение области пересечения к области объединения.


Визуально представление IoU.

Подобно точности пикселей, точность по IoU вычисляется для каждого кадра, а конечный показатель точности это среднее от этих значений. Однако MIoU рассчитывается для каждого класса отдельно.


Таблица значений точности.


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

На изображении выше показаны четыре выбранных кадра движения по снегу с камеры, LiDAR, радара, наземных данных и выходных данных модели. Из этих изображений очевидно, что модель может очертить общую окружность области, в которой транспортное средство может безопасно двигаться. Модель при этом игнорирует какие-либо линии и края, которые в противном случае можно было бы интерпретировать как края проезжей части. Модель также показывает хорошие результаты в условиях пониженной видимость (например, во время тумана).

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

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

Эпилог


Отношение к беспилотным автомобилям неоднозначное. С одной стороны, робомобиль нивелирует такие риски, как человеческий фактор: нетрезвый водитель, лихачество, безответственное отношение к ПДД, малый опыт вождения и т.д. Другими словами, робот не ведет себя как человек. Это хорошо, так ведь? И да, и нет. Во многом автономные транспортные средства превосходят водителей из плоти и крови, но далеко не во всем. Плохая погода тому яркий пример. Человеку, конечно, непросто ехать во время снежной бури, но для беспилотных авто это было практически нереально.

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

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

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

Немного рекламы


Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас, оформив заказ или порекомендовав знакомым, облачные VPS для разработчиков от $4.99, уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps от $19 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

Dell R730xd в 2 раза дешевле в дата-центре Maincubes Tier IV в Амстердаме? Только у нас 2 х Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ от $199 в Нидерландах! Dell R420 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB от $99! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?
Подробнее..

Успешный запуск. 45-й с начала года. 17-й от США. Навигационный спутник GPS Block III на Falcon 9 от SpaceX

04.07.2020 10:23:10 | Автор: admin
Вячеслав Ермолин, 30 июня 2020 г.



Миссия:
Запуск навигационного спутника GPS Block III для американских военных. Третий спутник нового поколения. Запуск на Falcon 9 (многоразовый вариант) от SpaceX. Спутник успешно выведен на переходную орбиту. Первая ступень успешно возвратилась, створки обтекателя выловлены из воды.



Девиз:
Всегда и везде

Время и место старта:
30 июня 2020 года 20:10 UTC. Космический стартовый комплекс-40,
Космический центр им. Кеннеди, Флорида


Ракета-носитель:
Falcon 9 (Block 5). Серийный номер B1060.1. Первый полет. Частично многоразовая двухступенчатая ракета-носитель. Тяжелого (одноразовый вариант) или среднего (многоразовый вариант) класса. Вес полезной нагрузки до 15 600 кг на НОО (22 800 кг). Основная ракета-носитель SpaceX.

Полезная нагрузка:
Третье поколение навигационных спутников GPS (запуски с 2018 года). Производство компании Lockheed Martin. Каждый спутник рассчитан на 15 лет работы и обеспечивает трансляцию расширенного набора сигналов для разных целей и потребителей. Имеет больший вес, срок службы и возможности, чем предыдущие спутники.
Орбита:
Переходная орбита к МЕО: 356 x 20 172 км x 55. Конечная орбита МЕО: синхронная 20 200 км x 55.
24 штатных спутника (минимум) находятся на шести синхронных средневысотных земных орбитах разнесенных на 60 градусов. период оборота два раза в сутки. На текущий момент в группировке 32 спутника.

Интересное:
88-й полет Falcon 9. Два запуска аварийные.
29-й полет Falcon 9 Block 5.
55-я посадка первой ступени (включая 9 аварийных).
10-я миссия для SpaceX в 2020 году. Плюс один суборбитальный.
3-й запуск спутника нового поколения GPS Block III.
Второй запуск Flacon 9 с серой полосой модификацией баков второй ступени для специальных миссий.
Стоимость запуска SV03 на Falcon 9 $96.5 млн.
Стоимость спутника SV03 $529 млн.
ВВС США заключили контракт на $7.2 млрд с Lockheed Martin на производство 22 КА серии GPS, что будет в среднем $327 млн за спутник.


Ссылка на изображение в высоком качестве
Статья с портала NSF
Статья от Everyday Astrounavt
Сайт GPS
Сайт SpaceX


Логотипы и патчи миссии

image
Легенда к шапке
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru