21

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

leofun01 написав:

Щойно розглянув цю задачу з фізичного боку і .. все дуже погано (в коді), в мене одиниці (міри) не збігаються. Десь кути, десь метри, десь метри за секунду, а так не має бути, метри мають дорівнювати метрам, кути - кутам. Щось тут не ок.

Є таке, тому написав про необхідність все привести в єдину систему і поклав болта розбиратися з кодом поки не перепише кашу в щось одноманітне.

Подякували: leofun011

22 Востаннє редагувалося HetmanNet (05.06.2023 22:15:35)

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

FakiNyan написав:

я з вами не згодний, chatGPT дуже розумний та багато допомагає людям, я поважаю chatGPT та ціную його допомогу.

Він поки він лише дуже добре допомога людям гадити іншим людям: дуже добре генерує фейки, що не одразу навіть помітиш, чим вже користуються на повну.

Подякували: leofun011

23

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

FakiNyan, подивіться цю літературу по теорії ймовірності та математичної статистики, може щось знайдете 1, 2, 3, 4

Подякували: leofun011

24

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

Я вирішив спробувати зрозуміти проблєму краще, і вийшло ось шо.
https://replace.org.ua/uploads/images/2564/10f8cd1b625e2dbf0f484b20f9f5f2d7.png
Ну тут все ясно вам має бути, але я все одно поясню.

У нас є початкова точка з певним радіусом похибки, це тупо точка і коло навколо неї.
Потім у нас є напрямок в градусах, і швидкість, теж з похибкою.
Якшо об’єднати похибку швидкості з похибкою напрямку, то у нас виходе формула — десь на таку відстань +- похибка відстані, і десь в тому напрямку +- похибка напрямку, і у нас виходе те, що замальовано синім кольором.

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

За логікою ніби все правильно, бо до початкової похибки точки додається ще похибка відстані та напрямку.
Єдина проблема - як то обрахувати…

25

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

Ну, принципово, так воно і має бути. Продивіться прогнозування ( гіпотези). Все одно з масиву доведеться вибирати максимально близьке значення.

26 Востаннє редагувалося FakiNyan (08.06.2023 12:25:14)

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

Я оце тепер думаю, а як нам зібрати оту всю інформацію про похибку в щось одне, аби з того був якийсь товк.

То думаю, може таки варто розглядати похибки кожної компоненти окремо?
Наприклад, якшо спростити задачу з координат в градусах до звичайних координат на площині, то для визначення вектору руху ми так само можемо мати кут і швидкість руху.

Тоді ми можемо порахувати довжину катетів.
Це буде косинус кута та синус кута.
Далі ми можемо помножити результат на швидкість, і це буде довжина відповідного катета.
https://i.imgur.com/FVDuIrX.png

Тепер додамо похибку швидкості.
Ця похибка має той самий кут, але значення її окреме, і воно так само означає швидкість, тому ми так само можемо обрахувати катети похибки, і додати їх до катетів оригінальної похибки.
https://i.imgur.com/FCdIKgU.png

А тепер найцікавіше, додаємо похибку кута....
Це додає нам цілу купу отих катетів.

https://i.imgur.com/XzYUpWt.png
отут вже важко розгледіти конкретні катети, але ви зрозуміли думку, та?
Я просто намалював ті самі гіпотенузи з різними значеннями кутів, і потім намалював для них катети, і зробив те саме з похибками.

Як тепер об'єднати значення всіх тих катетів похибок, аби додати їх до оригінальної похибки?
Я думаю це зробити так.

1. Вписати весь масив похибок в прямокутник
2. Обрахувати висоту і довжину сторін прямокутника, і це будуть фінальні похибки для кожного з катетів.
https://i.imgur.com/9g10mQ9.png

Логічно виходе, чи нє?

p.s. додам ще, шо на практиці я збираюсь просто обрахувати чотири крайні точки

перша точка = обрахунок точки з (швидкість + похибка швидкості, кут + похибка кута)
друга точка = обрахунок точки з (швидкість - похибка швидкості, кут + похибка кута)
третя точка = обрахунок точки з (швидкість - похибка швидкості, кут - похибка кута)
четверта точка = обрахунок точки з (швидкість + похибка швидкості, кут - похибка кута)

а потім сторони тієї фігури додам до похибок по широті та довготі.
Тіки це мені ще треба буде оригінальну похибку з метрів перевести в широту та довготу

27

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

запитавсь chatgpt про те, він спершу якусь повню маячню ніс, але я його повиправляв, і потім запитав, а як обрахувати похибку позиції, якшо у нас ще є похибка кута?
він каже

accuracy_x = sqrt(accuracy_x^2 + (speed * sin(angle_accuracy))^2)
accuracy_y = sqrt(accuracy_y^2 + (speed * cos(angle_accuracy))^2)

тобто, тут головне - це (speed * sin(angle_accuracy))

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

28

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

додам ше, шо той метод зветься RSS - root sum square

29

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

коротше, вирішив спробувати свій власний варіянт.
Спершу намалював приблизні контури кінцевої частини сегменту, який показує можливу позицію наступною обрахованої координати з урахуванням відхилення напрямку та швидкості.
Потім я провів cyan'істі лінії вбоки від центру того сегменту (довжина кожної лінії дорівнює відхилення першої точки, яка вимірюється GPS. А потім я по суті намалював прямокутник, котрих описує ті cyan'істі лінії.
Тобто, той прямокутник містить приблизно всі точки, де може бути наступна точка, але також він захоплює місця, де тої точки не повинно бути.
https://media.discordapp.net/attachments/747467927921623235/1122454393594335252/image.png?width=785&height=690

1. Чорна стрілка - рух з оригінальної точки в обраховану, відповідно початок чорної стрілки - центр першої точки, а кінець - центр обрахованої, другої точки.
2. Синій сегмент - це приблизно там, де може бути наступна обрахована точка з урахуванням кутів та швидкості, але без урахування помилки оригінальної точки (червоне коло)
3. Сірі кружельця - це вже області, де може бути наступна точка з урахуванням помилки першої точки.
4. Cyan'исті лінії, це просто радіус відповідного кола в сторону від центру сегмента (від центру другої точки).
5. Ну а фіолетовий прямокутник просто вписує в себе всі ті лінії.

Якшо брати сторони цього прямокутника, як помилки нової точки, то вони будуть завеликі, бо той прямокутник має в собі значні області, де точки може й не бути.
Оце думаю, шо далі робить.

30

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

FakiNyan написав:

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

Не зовсім. Обраховується ж не «точна похибка» (як при стисканні помилка передбачувача відносно дійсного значення), а параметр розподілу цих похибок. І корінь з суми квадратів працює із середньоквадратичними похибками. Які вже пораховані як корінь квадратний від (суми квадратів відхилень від середнього значення поділеної на кількість значень).

Це можна уявити так — похибка це (миттєве значення) «шуму» (з нормальним розподілом).
Для кількох різних шумів додаються потужності цих шумів.

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

31

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

ReAl написав:
FakiNyan написав:

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

Не зовсім. Обраховується ж не «точна похибка» (як при стисканні помилка передбачувача відносно дійсного значення), а параметр розподілу цих похибок. І корінь з суми квадратів працює із середньоквадратичними похибками. Які вже пораховані як корінь квадратний від (суми квадратів відхилень від середнього значення поділеної на кількість значень).

Це можна уявити так — похибка це (миттєве значення) «шуму» (з нормальним розподілом).
Для кількох різних шумів додаються потужності цих шумів.

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

а, тобто цей підхід до мого завдання не підходе?

32

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

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

33

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

цейво, коротше, ну ніби шось робоче зробив, але є проблєма - я помітив, шо в певних локаціях gps координати якісь погані, і при цьому вказана точність ніби ок
коротше, тре ще покумекати

34

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

FakiNyan написав:

цейво, коротше, ну ніби шось робоче зробив, але є проблєма - я помітив, шо в певних локаціях gps координати якісь погані, і при цьому вказана точність ніби ок

Залежить від модулю gps. У геодезистів є таке поняття як набрати точність, тобто проводять виміри в статиці поки статистично не буде виявлені найбільш ймовірні показники координат gps. Причин відхилень до біса, як джерела перешкод і глушіння, відбиті сигнали, супутники на ближчих орбітах і т.д. Тому

35

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

HetmanNet написав:
FakiNyan написав:

цейво, коротше, ну ніби шось робоче зробив, але є проблєма - я помітив, шо в певних локаціях gps координати якісь погані, і при цьому вказана точність ніби ок

Залежить від модулю gps. У геодезистів є таке поняття як набрати точність, тобто проводять виміри в статиці поки статистично не буде виявлені найбільш ймовірні показники координат gps. Причин відхилень до біса, як джерела перешкод і глушіння, відбиті сигнали, супутники на ближчих орбітах і т.д. Тому

я оце відкрив для себе https://uk.wikipedia.org/wiki/NMEA_0183
то думаю може спробувати проаналізувати саме ці дані, бо мені ж показуються вже ті, шо оброблені, то може з'являться якісь думки, чого іноді ті координати такі погані. Може там просто менше сателітів використовується, чи ше шось

36 Востаннє редагувалося FakiNyan (29.07.2023 19:02:26)

Re: Як екстраполювати помилки при обрахуванні наступної позиції?

нарешті написав той код який збирає сирі дані від gps приймача, потім гуглив їхні значення і типи, і випадково наштовхнувся на цікавий конкурс під назвою Google Smartphone Decimeter Challenge.
Там мета така: тре написати код, який використає оті сирі дані і дасть якомога точнішу позицію (до дециметра).
Ось перше місце https://www.kaggle.com/competitions/goo … ion/262406

global optimization method based on Factor Graph

і там ще був такий рядок від нього

Graph optimization was very powerful. It optimizes all variables at the same time under nonlinear constraints, so it performs much better than filtering methods such as KF.

переклад

Оптимізація графами дуже потужна. Вона оптимізує геть всі змінні одночасно з нелінійними обмежиннями, так шо воно робе набагато краще ніж методи фільтрації як от КФ

а KF - КФ, це Калман Фільтр, з яким я довбався ото дуже довго, і який не дав мені дуже файних результатів (в основному через проблему в координатах і точності, які надавала моя мобілка, я так думаю).

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