Я работаю над приложением для Android, чтобы использовать встроенный 3-осевой акселерометр, чтобы определить, упадет ли телефон.
Я погуглил и обнаружил, что если следующее значение меньше 2:
(где это показания акселерометра)
Тогда устройство считается свободно падающим.
Я не уверен, как этот подход обнаруживает свободное падение и где условие родом из.
Кто-нибудь может это объяснить?
TL;DR : Акселерометр записывает проекции ускорения , где полное ускорение объекта.
Когда объект находится в свободном падении, зарегистрированное ускорение равен нулю до тех пор, пока сила сопротивления воздуха не станет достаточно большой. Увеличение скорости может привести к ускорению сопротивления воздуха до 1 (0,1 G) на падении с высоты 1–1,5 метра. Записанный модуль ускорения рассчитывается как ( - показания акселерометра). Это необходимая информация для обнаружения свободного падения вашего телефона.
Когда ваше устройство лежит на вашем столе, или на ладони, или на чем-либо, что препятствует его падению, к объекту приложены две силы: сила тяжести и нормальная сила (реакция земли). Имея противоположное направление и равные по модулю, эти силы, по существу, компенсируют друг друга (поэтому объект не движется), при этом как бы «сжимая» объект.
Я имею в виду, рассмотрим эту простую картинку, которую вы могли видеть в школьном учебнике:
Объект статичен. Если этот объект — вы, вы можете почувствовать, что вас прижимают к земле. Это нормальная сила. Вы определенно можете чувствовать гравитацию, но вы чувствуете ее только потому, что присутствует нормальная сила.
Объект падает. Опять же, если это вы, вы почувствуете, что плывете (если для простоты не учитывать сопротивление воздуха). Вы не можете почувствовать гравитацию, так как ничто не останавливает ваше движение — вся сила гравитации идет на ваше ускорение, и ничто этому не препятствует.
Это потому, что мы находимся под действием постоянной (для фиксированной высоты над Землей) гравитационной силы. Что это означает?
Благодаря этому определению мы теперь можем перейти к следующему шагу:
По сути, акселерометр дает нам информацию для трех проекций (x, y, z) записанного ускорения.
Важное замечание : хотя я уже говорил об этом, необходимо понимать, что фактическое ускорение объекта — это не ускорение, регистрируемое акселерометром. Акселерометр регистрирует силу которая останавливает его от свободного падения, что может включать в себя силу реакции земли или силу сопротивления воздуха, или любую другую силу, приложенную к объекту.
Но для простоты давайте рассмотрим двумерный мир всего с двумя осями: x и y. Здесь вы можете увидеть, какие данные фиксирует акселерометр, когда объект остается на земле и когда он наклонен на 45 градусов (хотя все еще статичен):
Рисовать это и все такое очень весело, но важный вывод: акселерометр рассчитает ускорение примерно (вектор, параллельный силе тяжести), если он статичен, т.е. когда он не падает
Рассмотрим еще два примера:
Объект движется к земле с ускорением менее (падение). Это означает, что платформа под объектом также движется с ускорением к земле, но не падает свободно.
Объект движется к земле с ускорением примерно (свободное падение). Это означает, что под объектом нет платформы или какой-либо опоры.
В первом случае общее ускорение, полученное от акселерометра, будет примерно , во втором случае - ок. .
В обоих случаях объект можно считать падающим, так как ускорение меньше
Теперь мы можем, наконец, понять формулу.
Полное ускорение по модулю, полученное из ускорения, будет:
Если формула непонятна, можно сослаться на теорему Пифагора , одну из наших любимых школьных теорем:
Таким же образом можно вычислить длину вектора ускорения, где x, y, z — проекции. Если термин «проекция» неясен, вот краткое объяснение: возьмите палку в солнечный день, ее тень будет ее проекцией.
Как мы помним, можно считать, что устройство падает, если меньше 9,8, но это без учета погрешности расчета и сопротивления воздуха.
В вашем случае вы упоминаете, что телефон можно считать падающим, если меньше чем . Это верно для грубого приближения (20%), но не обязательно, по крайней мере, для iPhone при небольших падениях (без большого сопротивления воздуха). Я уронил свой iPhone на кровать и измерил следующие ускорения при падении с высоты 1,5 метра:
Икс | Д | Z | т (время) |
---|---|---|---|
-0,016 | -0,03 | -0,151 | 0,00 с |
-0,021 | 0,015 | -0,13 | 0,04 с |
-0,023 | 0,013 | -0,202 | 0,08 с |
-0,016 | 0,014 | -0,245 | 0,12 с |
-0,017 | 0,017 | -0,308 | 0,16 с |
-0,028 | 0,02 | -0,399 | 0,20 с |
-0,017 | 0,026 | -0,462 | 0,24 с |
-0,019 | 0,023 | -0,545 | 0,28 с |
-0,023 | 0,023 | -0,622 | 0,32 с |
-0,031 | 0,021 | -0,717 | 0,36 с |
Таблица 1. Исходные данные акселерометра X/Y/Z.
Рассчитав ускорение по формуле, получим такие значения для начала падения:
Ускорение | Ошибка или/и удар сопротивления воздуха |
---|---|
0,154 | ~ 1,5% |
0,132 | ~ 1,3% |
0,203 | ~ 2% |
0,245 | ~ 2,4% |
0,308 | ~ 3,1% |
0,4 | ~ 4% |
0,463 | ~ 4,7% |
0,545 | ~ 5,5% |
0,622 | ~ 6,3% |
0,739 | ~ 7,2% |
Таблица 2. Расчетное ускорение и его погрешность.
Ошибка (Y) и время (X) на графике
Как мы видим, ошибка меняется по нарастающей.
Я считаю, что из-за сопротивления воздуха присутствует возрастающая ошибка . Мой телефон огромен, и я уронил его плашмя параллельно земле, что объясняет максимально возможное сопротивление воздуха - именно это значения оси говорят нам (я имею в виду, проверьте последний столбец таблицы 1).
Я понимаю, что могу также уронить его на бок, чтобы доказать свою точку зрения, но я просто боюсь, что он спрыгнет с кровати (а может ли? это другой вопрос...).
Ошибка в 20% звучит как перебор для обнаружения начала падения.
Хотя, если вы хотите учитывать весь процесс падения, этого может быть вполне достаточно - все зависит от того, насколько замедляется ускорение при падении. Тем не менее, я сомневаюсь, что есть смысл учитывать падение высоты на милю, потому что... телефон вряд ли прослужит долго.
Еще одной интересной задачей будет запись окончания падения. Это не так уж сложно — удар заставит ускорение внезапно подскочить до 5G (50 ) и даже больше, что облегчило бы обнаружение. У меня пик около 7,5 G при падении телефона на кровать с высоты около 1 метра.
грабить