Возможность расчета расстояния, связанного с азимутом, с помощью Arduino GPS.
Извините, если есть более точная/техническая формулировка этого вопроса :)
Сейчас я работаю над предупреждением о приближении с помощью Arduino. В скетче есть предустановленное местоположение GPS, и если я приближаюсь к нему, как только я пересекаю установленный порог расстояния, срабатывает действие.
Я думаю, что картинка лучше объяснит, какую проблему я хочу здесь преодолеть. Расчет простой "прямой линии" расстояние между моей текущей геолокацией и предустановленным пунктом назначения легко, но, как вы можете видеть на иллюстрации, я сделал это со всех сторон.
100 метров от цели допустимо здесь с любой точки или любого пеленга, к которому может приближаться объект, что утомительно и не то, чего я хочу достичь.
Нижняя иллюстрация показывает, чего я хотел бы достичь: достичь критерия срабатывания, только если приближаться к месту назначения с определенных "азимутов"... если это правильно сформулировать. Надеюсь, кто-то понимает, что я пытаюсь сделать, если у вас есть какие-то указания, с чего начать поиск, и можно ли этого добиться даже на Arduino — дайте мне знать :) Большое спасибо
@Varonne, 👍-1
Обсуждение1 ответ
Прежде чем предлагать возможное решение, рассмотрите следующие аспекты проблемы:
- В вопросе предполагается "плоская земля". Для малых расстояний это предположение, вероятно, вносит ошибку, которой можно пренебречь. Для больших расстояний рекомендуется рассчитать расстояние по большому кругу.
- Учтите, что не каждый модуль GPS заполняет все поля NMEA. Если указан пеленг, считайте, что он недействителен, если модуль GPS не переместился больше, чем текущая точность этого модуля GPS.
Хотя критерии просты (сигнализация только при приближении к заданной широте и долготе (или координате MGRS) при движении по определенный подшипник), реализация может быть хлопотной и/или утомительной. Учитывайте шум. Положение модуля GPS может варьироваться в пределах 10 метров в неподвижном состоянии. В результате получается ложный подшипник. Человек, несущий GPS, не может идти по прямой. Этот дополнительный шум может привести к тому, что тревога никогда не поднимется. Если GPS перевозится в автомобиле, дорог для прямого проезда к заданной широте и долготе может и не быть. Опять же, тревога может никогда не быть подана.
Как оказалось, сделанные здесь допущения указывают на то, что пеленг не является хорошим критерием при определении направления приближения к заданной широте и долготе. Скорее, это может быть просто соотношение между текущей широтой и долготой и заданными широтой и долготой, которое предлагает наилучшее решение.
- GPS-модуль uBlox Neo 6M не отвечает
- Отправка команд PUBX на плату GPS (Ublox NEO-6M) через SoftwareSerial
- Arduino SoftwareSerial - не удается получить данные от модуля NEO 6M-GPS
- TinyGPS не дает долготу, широту и другие данные
- последовательная передача данных на GPS-экране duinopeak
- Почему HDOP в TinyGPS++ меньше 1?
- Отправка данных GPS через модуль WiFi
- Не получение данных от GPS
это просто геометрия... не совсем про ардуино, @jsotola
Возможно, я неправильно сформулировал вопрос - так что возможно, что arduino может обнаруживать близость к заданному месту назначения, не создавая «лишнего» круга из-за радиуса расстояния? Будет ли это что-то на стороне геометрии или, например, на стороне библиотеки GPS - если местоположение находится в 100 м от цели с соответствующим пеленгом - тогда срабатывает., @Varonne
поэтому вы хотите, чтобы предупреждение о приближении действовало, только если вы идете по дороге, например, @jsotola
Если вы прочитаете это (мой аналогичный вопрос), вам будет полезно: https://arduinoprosto.ru/q/91196/how-to-find-the-correct-navigation-course-by-gps-navigation-with- arduino/91197#91197, а также этот для триггера приближения 91253, @Hamid 'Smith' Salehi
Обратите внимание, что на самом деле вам не нужны конкретные подшипники, а нужны маленькие конусы вокруг этих подшипников, так как в этом положении будет некоторый шум., @chrisl
@jsotola да, это может быть идея, если я приближаюсь к месту назначения с одного направления, он срабатывает, но если я приближаюсь к тому же месту назначения, но с другого направления, он ничего не делает. Любопытный парень, интересную тему ты создал, я посмотрю!, @Varonne
@chrisl не уверен, что ты имеешь в виду под конусами вокруг подшипников? Я полагаю, что мой GPS-модуль также анализирует данные о азимуте. Я подумал, что моя идея может сработать, если посмотреть на адрес назначения и предварительно установленный азимут, если это возможно? Например, инициировать действие только в том случае, если расстояние до определенной широты и долготы меньше «значения» и если азимут находится в диапазоне «значения»., @Varonne
"в диапазоне значений", это именно то, что я имел в виду. Это не просто одно значение, а диапазон вокруг этого значения, потому что пеленг может быть нестабильным и иметь некоторый шум., @chrisl