Възможно ли е да се използва движение на сърцевината за измерване на разстояние

Възможен дубликат:
Получаване на изместване от данни от акселерометър с Core Motion
Точност на акселерометър за Android (инерционна навигация)

Въпреки че това не пасва на StackOverflow, защото не е въпрос, а дискусия, ще се опитам да обобщя мислите си за това.


person Sonu Jha    schedule 20.12.2012    source източник
comment
@SonuJha Въпросът по-горе е за Android, но същото важи и за основното движение на ios. Накратко, не, не можете да направите двойния интеграл, тези сензори не са достатъчно точни.   -  person foundry    schedule 20.12.2012
comment
Ето още един: Трябва да се намери разстояние с помощта на жироскоп+акселерометър. В крайна сметка това е невъзможно поради ужасни грешки.   -  person Ali    schedule 20.12.2012
comment
Благодаря, че беше, че отговори! Аз съм три масива в стил C XA[10000], Ya[10000] и ZA[10000], в които съхранявам стойностите на ускорението при всяка актуализация на движение (deviceMotionUpdateInterval, зададен на 0,01). Когато устройството е в покой, се осредняват около 1000 стойности по съответните оси, за да се получат трите отмествания. Следващите три масива XA_F YA_F и ZA_F се запълват със стойности от филтъра, след като ги умножа по 981 (тъй като меря в см).   -  person Kay    schedule 20.12.2012
comment
@Kay Мога само да те насърча да напишеш публикация в блога си по този повтарящ се въпрос. Удивително е колко пъти се появява.   -  person Sonu Jha    schedule 20.12.2012
comment
Да, съгласен съм, не директно чрез просто интегриране на акселераторите. Но какво ще кажете за използването на акселери за интерполиране на функция, полином от висок порядък. Ще са необходими задълбочени експерименти, но просто се чудя дали подобна техника би могла да компенсира такива огромни грешки при вземане на проби, за да получа някои валидни резултати. Въпросът ми е за това. Или симулация, базирана на коефициент, или нещо подобно?   -  person Ali    schedule 20.12.2012
comment
@Ali Да :) В момента съм твърде зает да довърша играта си. Но когато бъде пуснат, ще го направя и ще публикувам някои нови прозрения и специални случаи на откриване на движение, които използвах в играта.   -  person Sonu Jha    schedule 20.12.2012
comment
@Kay Очаквам го с нетърпение, моля, уведомете ме!   -  person Kay    schedule 20.12.2012
comment
Хей, момчета, имате ли актуализации по тази тема? как изглеждат нещата сега през 2017 г.? всяка информация ще бъде полезна (@Kay, Sonu)   -  person Ali    schedule 20.12.2012
comment
Опитвам се да използвам стойностите на потребителското ускорение на основното движение и да ги интегрирам двойно, за да извлека изминатото разстояние. Движа своя iPhone линейно по неговата ос Y, срещу 30 см линийка, върху масата. Първо оставям устройството да е в покой за 10 секунди и изчислявам отместванията си по трите оси, като осреднявам съответните стойности на потребителското ускорение. Отместванията по X, Y и Z се изваждат от стойностите на ускорението, когато се опитвам да изчисля изминатото разстояние. След изваждане на отместването, тези стойности преминават през нискочестотен филтър и медианен филтър, поотделно, разбира се. Филтрите са линейни филтри и граничната честота се определя от броя на съседните стойности, чиято средна стойност е взета при нискочестотен сигнал и медиана в медианния филтър. Експериментирах с различни стойности на това число от 1 до 100. В крайна сметка тези филтрирани стойности се интегрират двойно, като се използва трапецовидно правило, за да се получат разстояния. Но изчисленото разстояние не е близо до 30 см. Най-близката стойност, която получих, беше около -22 см (чудя се защо получавам отрицателни стойности, въпреки че премествам устройството в положителна Y посока). Попаднах и на това: http://ajnaware.wordpress.com/2008/09/05/accelerating-iphones/ това е стара публикация за същото нещо, която казва, че върнатите показания на акселерометъра изглежда идват в кванти от около 0,18m/s^2 (т.е. около 0,018g), което води до голяма кумулативна грешка много бързо. Като се има предвид това, за да няма значение тази грешка, ще трябва да ускорите устройството с почти 1,8 m/s^2, което е практически невъзможно за целите на измерване на разстояние/дължина. за малки движения не изглежда, че има възможност за изчисляване на разстояния чрез използване на оптимален филтър и метод на числено интегриране от по-висок порядък, без подобно непрактично ограничение на скоростта/ускорението. Възможно ли е? Какво ще кажете да използвам моите данни за ускорение спрямо клеймо за време, за да интерполирам полином, който расте с времето, докато получавам все повече и повече актуализации на движението, което представлява приблизително крива на ускорение спрямо време. Двойното интегриране на този полином би било лесно. Но за малки разстояния полиномът ще има голяма грешка. Използвайки предсказуемо известно движение, на което ще бъде подложено моето устройство, искам да направя огромен брой моментни снимки (изчислено разстояние спрямо действително известно разстояние), за да изчисля моя полином на грешката по подобен начин и след това да го извадя от първия си полином. Може ли това да работи?   -  person oluckyman    schedule 01.02.2017


Отговори (1)


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

Предполагам, че можете да се отървете от огромна част от произволността/грешката, като калибрирате устройството и накарате „преместване на измерването“ няколко пъти, например 10 пъти. След това имате достатъчно данни, за да получите средна стойност, която може да се доближи до реалната стойност.

Калибрирането е ключова част тук, трябва да измислите умен начин за калибриране, като например да позволите на потребителя да премести устройството на различни разстояния с различни скорости.

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

Това е добър въпрос, но би било чудесно да видите придружаващия ви код...

person jimpic    schedule 20.12.2012