Автор Тема: Статья: Метод быстрой фильтрации потока данных о глобальной позиции наблюдаемого объекта на примере  (Прочитано 5138 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Shost

  • Бот
  • Новенький
  • *******
  • Сообщений: 27
Предложен метод фильтрации GPS-телеметрии для отсева данных, не дающих принципиально новой информации о положении объекта. Рассмотрены вопросы по улучшению точности данных, определению начала движения и потери сигнала, а так же способ значительно сократить вычисления. Метод легко реализуется на маломощных и недорогих микроконтроллерах, значительно уменьшает поток телеметрии и улучшает точность вычисления производных параметров.

Ссылка на статью: http://www.arts-union.ru/node/12

Автор: Гришин М.Л.
« Последнее редактирование: 03 Август 2014, 13:55:07 от Altmer »

Оффлайн gogenzzo

  • Новенький
  • *
  • Сообщений: 6
Здравствуйте. В формулах используются углы φ и λ. Я правильно понял, что

Цитировать
φ = 3.1415926/180*j
λ = 3.1415926/180*l

если:

Цитировать
j – широта в градусах (от -90 до 90)
l – долгота в градусах (от -180 до 180)

Т.к. GPS возвращает координаты в градусах. Спасибо.

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4085
При трансляции в HTML возникла ошибка, я статью поправил.
Пытаетесь реализовать? Советую посмотреть мою диссертацию, там более совершенный метод и более детально рассмотрено.
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн gogenzzo

  • Новенький
  • *
  • Сообщений: 6
Теперь в статье:
Цитировать
 – широта в градусах (от -90 до 90, положительное значение примем в соответствие северному полушарию)
 – долгота в градусах (от -180 до 180, положительное значение примем в соответствие восточному полушарию)

А можно ссылку на вашу диссертацию?

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4085
Теперь в статье:
Цитировать
 – широта в градусах (от -90 до 90, положительное значение примем в соответствие северному полушарию)
 – долгота в градусах (от -180 до 180, положительное значение примем в соответствие восточному полушарию)

А можно ссылку на вашу диссертацию?

У меня в Фаэрфоксе все нормально.
http://arts-union.ru/articles/altmer/geomonitoring.pdf
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн gogenzzo

  • Новенький
  • *
  • Сообщений: 6
Спасибо. У меня и в FF так же отображает

Оффлайн gogenzzo

  • Новенький
  • *
  • Сообщений: 6
Скажите пожалуйста, подойдет ли функция ниже, для вычисления расстояния между двумя точками (L)?
function latlng2distance(lat1, long1, lat2, long2) {
    //радиус Земли
    var R = 6372795;
     
    //перевод коордитат в радианы
    lat1 *= Math.PI / 180;
    lat2 *= Math.PI / 180;
    long1 *= Math.PI / 180;
    long2 *= Math.PI / 180;
     
    //вычисление косинусов и синусов широт и разницы долгот
    var cl1 = Math.cos(lat1);
    var cl2 = Math.cos(lat2);
    var sl1 = Math.sin(lat1);
    var sl2 = Math.sin(lat2);
    var delta = long2 - long1;
    var cdelta = Math.cos(delta);
    var sdelta = Math.sin(delta);
     
    //вычисления длины большого круга
    var y = Math.sqrt(Math.pow(cl2 * sdelta, 2) + Math.pow(cl1 * sl2 - sl1 * cl2 * cdelta, 2));
    var x = sl1 * sl2 + cl1 * cl2 * cdelta;
    var ad = Math.atan2(y, x);
    var dist = ad * R; //расстояние между двумя координатами в метрах
 
    return dist
}

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4085
Проверьте, на сколько оно расходится с формулами 2.3, 2.4, 2.5 и далее sqrt(dx^2+dy^2+dz^2).
А так, замечу что Земля она не круглая, а дальнейшая ваша арифметика мне не очень понятна (понятно что x и y должны быть позицией одной точки относительно другой в плоскости заданной ими через центр, но правильно ли они вычислены сказать не могу, пока сам аналогичным образом не выведу формулы).
На самом деле не нужно вычислять дистанцию - это можно сделать покомпонентно для фильтра, но если - производительность не имеет значения, так почему бы не вычислить точно по тем формулам что указанны выше?
« Последнее редактирование: 23 Декабрь 2014, 20:47:12 от Altmer »
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн gogenzzo

  • Новенький
  • *
  • Сообщений: 6
Попробовал вашу формулу и которую я написал выше. На небольшие расстояния обе формулы дают одинаковый результат. И так же совпадает результат с яндекс картами, измерял линейкой. Но на большие расстояния, мерил около 8000 км. Вот тут уже есть расхождения. По функции выше, результат совпадает с яндексом. А по вашей формуле получается меньше расстояние, на несколько километров. Хотя может быть у яндекса так же используется упрощенная формула, а ваша точнее измеряет.

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4085
Нет, указанные мной формулы меряют хорду, а ваши с яндексом дугу, поэтому на больших расстояниях последние точнее.
Но когда объект движется и часто шлет телеметрию - оно не принципиально. Еще точнее будет рассчитывать дугу по форме геоида.
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн gogenzzo

  • Новенький
  • *
  • Сообщений: 6
Во второй блок-схеме не понятно. Если Da.T<>Dold.T то формируем выборку по Dold, затем ниже идет генерация события о начале движения, и далее опять формирование выборки, но уже по Di

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4085
Во второй блок-схеме не понятно. Если Da.T<>Dold.T то формируем выборку по Dold, затем ниже идет генерация события о начале движения, и далее опять формирование выборки, но уже по Di

Все правильно, мы же должны выставить точку начала движения и текущую тоже.
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"

Оффлайн Altmer

  • Администратор
  • Ветеран
  • *******
  • Сообщений: 4085
Теперь в статье:
Цитировать
 – широта в градусах (от -90 до 90, положительное значение примем в соответствие северному полушарию)
 – долгота в градусах (от -180 до 180, положительное значение примем в соответствие восточному полушарию)

А можно ссылку на вашу диссертацию?

Исправлял тут материалы на форуме - больше таких проблем быть не должно.
- Разве ты не устал от борьбы, от каменистых дорог?
- Нет.
- Как странно, ведь многие так ценят покой...
                                             E. Гуляковский, "Сезон туманов"