Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Ориентация на Север и углы поворота телефона  [new]
Bob32
Member

Откуда:
Сообщений: 13
Добрый день, Друзья!

Имеем Delphi 10.3 Community Edition

Пытаюсь с помощью компонент TOrientationSensor и TMotionSensor получить три адекватных угла - азимут на Север, и два угла наклона телефона.


Действую так :

(алгоритм и теорию взял отсюда https://cache.freescale.com/files/sensors/doc/app_note/AN4248.pdf )


1) получаю данные акселерометра .
Gx:=MotionSensor1.Sensor.AccelerationX;
Gy:=MotionSensor1.Sensor.AccelerationY;
Gz:=MotionSensor1.Sensor.AccelerationZ;
2) получаю данный вектора магнитной индукции
Bx:=OrientationSensor1.Sensor.HeadingX;
By:=OrientationSensor1.Sensor.HeadingY;
Bz:=OrientationSensor1.Sensor.HeadingZ;

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

Ставил в качестве теста apk-шку приложения под андроид, которое использует два метода -
GetRotationMatrix и GetOrientation - работает офигенно плавно.
Но алгоритм, исползуемый в этих методах неизвестен.

ВОПРОС: решали ли кто-то адекватно эту задачу под Дельфи? как ? может как-то можно из среды Дельфи вызывать эти методы (GetRotationMatrix и GetOrientation)?

Близок к отчаянию - вторую неделю бьюсь (
Буду признателен за любой дельный совет.
3 мар 19, 00:11    [21823505]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Sinemurius
Member

Откуда:
Сообщений: 74
Может быть известные программы получают вектор на север интегрально ? Ну то есть получают усредненное значение за последние 3 секунды. ? А резкие отклонения вообще отбрасывают ?

Какой именно датчик скачет ? магнитной индукции или акселерометр ? Или оба ?

Попробуйте написать прогу, которая раз 10 в секунду снимала бы информацию со всех датчиков и записывала бы в файл. Потом запустите эту программу, затем держите устройство и раз в 5 секунд поворачиваете устройство на 90 гр. Потом уже можнно проанализировать: что получится и в зависимости от этого далее действовать.
3 мар 19, 10:02    [21823583]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Bob32
Member

Откуда:
Сообщений: 13
Скачут оба. В первую очередь - акселерометр.

в результатах этого эксперимента будет большой разброс. этот так понятно. что предлагается делать после этого? )
4 мар 19, 21:38    [21824843]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
defecator
Member

Откуда:
Сообщений: 39222
гугли фильтр Калмана
и ещё
чтобы всё корректно считалось, нужно использовать показания акселерометра, гироскопа и магнитометра
4 мар 19, 21:43    [21824847]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Sinemurius
Member

Откуда:
Сообщений: 74
Bob32
Скачут оба. В первую очередь - акселерометр.

в результатах этого эксперимента будет большой разброс. этот так понятно. что предлагается делать после этого? )



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

Кроме этого, значения эксперимента могут сильно помочь в разработке и тестировании. Вы ведь знаете, что как устройство было направлено в течение определенного времени (Вы его сами поворачивали). У Вас есть показания датчиков со всеми их разбросами. Соответственно разбираетесь: как можно написать алгоритм используя файл с показаниями датчиков, как иммитацию реального устройства. Вот тут defecator советует фильтр Калмана... Можно для начала попроще: усреднять значения, отбрасывая сильные отклонения.
5 мар 19, 07:19    [21825002]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Bob32
Member

Откуда:
Сообщений: 13
defecator,
Спасибо!

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

а может есть?
5 мар 19, 14:26    [21825411]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4258
Bob32
defecator,
Спасибо!

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

а может есть?
добро пожаловать в физику измерений, измерили !== реальность, есть у нашего мира такая особенность :-)
5 мар 19, 16:39    [21825579]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Bob32
Member

Откуда:
Сообщений: 13
kealon(Ruslan),
Вы уже в этом мире? )))
Делали этот код раньше? )
5 мар 19, 22:55    [21825786]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4258
Bob32,

я использовал этот фильтр один раз, в оной из модификаций, правда для других целей

я вам, как физик, про
Bob32
ведь без этого сенсоры ориентации - просто неготовый к употреблению полуфабрикат. (((((
просто наш мир такой, и школьная математика и логика тут не помогут
6 мар 19, 09:36    [21825927]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
defecator
Member

Откуда:
Сообщений: 39222
Bob32
defecator,
Спасибо!

алгоритм фильра калмана - не простой. сам хрен сделаешь

всё уже сделано
http://kazus.ru/programs/viewdownloaddetails/kz_0/lid_5411.html

https://www.sql.ru/forum/1035402/filtr-kalmana
6 мар 19, 12:41    [21826139]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Bob32
Member

Откуда:
Сообщений: 13
defecator
Bob32
defecator,
Спасибо!

алгоритм фильра калмана - не простой. сам хрен сделаешь

всё уже сделано
http://kazus.ru/programs/viewdownloaddetails/kz_0/lid_5411.html

https://www.sql.ru/forum/1035402/filtr-kalmana


спасибо огромное!
там экзешник по ссылке. страшновато его качать. но рискну ) если уже качали - свистните, что проверенный )

в описании сказано, что это компонента от Дельфи4. те - в FMX я ее не поставлю, правильно понимаю?
те - там есть исходный код, нужно его взять, вставить к себе и адаптировать. верно? )
6 мар 19, 17:43    [21826614]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
defecator
Member

Откуда:
Сообщений: 39222
Bob32
defecator
пропущено...

всё уже сделано
http://kazus.ru/programs/viewdownloaddetails/kz_0/lid_5411.html

https://www.sql.ru/forum/1035402/filtr-kalmana


спасибо огромное!
там экзешник по ссылке. страшновато его качать. но рискну ) если уже качали - свистните, что проверенный )

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

WinRAR'ом открой, это просто архив.
Там чистая математика, адаптировать именно под FMX ничего не нужно
6 мар 19, 18:59    [21826677]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3075
Virustotal в помощь ) чтобы меньше бояться
6 мар 19, 19:53    [21826714]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10782
defecator
Там чистая математика,
TKalmanFiltering = class(TComponent)
Чтоб можно было мышкой программировать
6 мар 19, 19:55    [21826716]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Bob32
Member

Откуда:
Сообщений: 13
так ее можно на 10.3 поставить как компонент?

(сорри за тупость, ребята)
6 мар 19, 23:53    [21826841]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
defecator
Member

Откуда:
Сообщений: 39222
Bob32
так ее можно на 10.3 поставить как компонент?

(сорри за тупость, ребята)


можно. Я в XE7 поставил, без проблем работают
на вот тебе архивчег

К сообщению приложен файл (filteringbase.rar - 101Kb) cкачать
7 мар 19, 10:40    [21827029]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Bob32
Member

Откуда:
Сообщений: 13
defecator
Bob32
так ее можно на 10.3 поставить как компонент?

(сорри за тупость, ребята)


можно. Я в XE7 поставил, без проблем работают
на вот тебе архивчег


Спасибо огромное!
буду пробовать.
7 мар 19, 12:43    [21827210]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Arioch
Member

Откуда:
Сообщений: 10675
defecator
WinRAR'ом открой, это просто архив.


а почему нге Total Commander'ом, он привычнее
7 мар 19, 12:57    [21827231]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Bob32
Member

Откуда:
Сообщений: 13
defecator
Bob32
так ее можно на 10.3 поставить как компонент?

(сорри за тупость, ребята)


можно. Я в XE7 поставил, без проблем работают
на вот тебе архивчег


пытаюсь установить.
есть несколько вопросов по установке и применению.
с Вами можно голосом их обсудить?
если да +7 916 207 0089 (пинганите меня по вотсапу (или иным способом) пожалуйста)
7 мар 19, 13:14    [21827260]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
defecator
Member

Откуда:
Сообщений: 39222
Arioch
defecator
WinRAR'ом открой, это просто архив.


а почему нге Total Commander'ом, он привычнее Картинка с другого сайта.

это тебе привычнее
7 мар 19, 13:14    [21827261]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
defecator
Member

Откуда:
Сообщений: 39222
Bob32
defecator
пропущено...


можно. Я в XE7 поставил, без проблем работают
на вот тебе архивчег


пытаюсь установить.
есть несколько вопросов по установке и применению.
с Вами можно голосом их обсудить?
если да +7 916 207 0089 (пинганите меня по вотсапу (или иным способом) пожалуйста)

что там сложного ?
Открываешь FilteringBase.dpk, Build, Install
Всё.

Демка в папке Demo, и даже русскоязычные хелпы в папке Help
7 мар 19, 13:15    [21827264]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Bob32
Member

Откуда:
Сообщений: 13
defecator
Bob32
пропущено...


пытаюсь установить.
есть несколько вопросов по установке и применению.
с Вами можно голосом их обсудить?
если да +7 916 207 0089 (пинганите меня по вотсапу (или иным способом) пожалуйста)

что там сложного ?
Открываешь FilteringBase.dpk, Build, Install
Всё.

Демка в папке Demo, и даже русскоязычные хелпы в папке Help



Build вроде сделал. а Install как делать? Component\Install Component? так?
если да - какой там файл выбирать (там можно .pas, .dcu итп), какие потом параметры в след окне?


извините, действительно туплю. был в теме в начале 2000-х потом Дельфи в глаза не видел 15 лет )

сейчас вспоминаю....
7 мар 19, 14:08    [21827320]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Gator
Member

Откуда: Москва
Сообщений: 14088
Arioch> а почему нге Total Commander'ом, он привычнее

Он адепт Far'a
7 мар 19, 14:41    [21827366]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Arioch
Member

Откуда:
Сообщений: 10675
Gator,

так вход в папку, Ctrl+PgDn, он ещё с сочинского Нортона тянется, должен и в Фаре работать.

Или Фар вообще не умеет с SFX-архивами ?
7 мар 19, 15:29    [21827447]     Ответить | Цитировать Сообщить модератору
 Re: Ориентация на Север и углы поворота телефона  [new]
Arioch
Member

Откуда:
Сообщений: 10675
Bob32,

вот там же где build сделал, там же и install

например в контектном меню на dpk-проекте в панели project manager / project group
7 мар 19, 15:30    [21827448]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить