![]() |
|
|
![]()
|
|
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: нет Всего: 10 |
Акселерометр телефона по запросу выдает 3 значения, x, y, z - вектор гравитации - в milli G (1000 единиц - 1 G)
Если положить телефон на стол экраном вверх, то ось z будет направлена снизу вверх, ось x справа налево, ось y от наблюдателя вперед. Нужно
Это сообщение отредактировал(а) Logo - 11.5.2012, 18:31 |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Если акселерометр всё точно выдаёт, то радиус вектор находится вычитанием из координат текущей точки координат начальной.
Скорость - первая производная радиус-вектора. Находится численным методом, например как центральная разностная производная. Что Вы подразумеваете под угловой скоростью не ясно. |
|||
|
||||
| Logo |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: нет Всего: 10 |
Акселерометр не выдает координат начальной и конечной точки, он по сути выдает лишь вектор перегрузки. От которого и нужно посчитать радиус вектор. И ориентацию (наклон).
Скорость вращения телефона. |
||||
|
|||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Что именно выдаёт акселерометр7
Что за вектор гравитации? |
|||
|
||||
| Logo |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: нет Всего: 10 |
Вектор перегрузки, не знаю как точнее сформулировать. 3 числа (x y z). Если телефон лежит на столе экраном верх, то, в идеале
То есть - вдоль оси Z 1000 milli G или 1G. Если его начать резко поднимать, значение возрастет. Вот кстати девайс, на котором тестирую в данный момент http://wiki.maemo.org/N900_accelerometer |
||||
|
|||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
По ссылке в википедии скалярная величина. Надо знать что именно выдаёт акселерометр.
|
|||
|
||||
| Logo |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: нет Всего: 10 |
Там не совсем полная статья, вот еще статья из вики
Вот тут табличка, примеров значений акселерометра в зависимости от положения телефона http://wiki.maemo.org/N900_accelerometer#sysfs Если он лежит на столе - x = 0, y = 0, z = -1000 -- 1G (ускорение свободного падения) Если его отпустить падать (невесомость) x = 0, y = 0, y = 0 Если перевернуть, то тогда x = 0, y = 0, z = +1000 (то есть, вектор уже направлен _по_ оси Z, а не против) Добавлено через 1 минуту и 29 секунд
Только здесь получается вектор направлен в противоположную сторону. |
||||
|
|||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Там надо более детально разбираться. Телефон лежит, изменение скорости 0, а перегрузка есть.
|
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: нет Всего: 10 |
Да 1G.
В норме перегрузка равна 1G. Фактически выходит, что вектор, выдаваемый акселерометром, равен -(вектор ускорения телефона) + (вектор от силы тяжести, или ускорения свободного падения) Где вектор ускорения свободного падения всегда направлен в сторону земли и равен по модулю 1G или 1000 mili G. Это сообщение отредактировал(а) Logo - 11.5.2012, 22:14 |
|||
|
||||
| Logo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: нет Всего: 10 |
Или, если представить датчик акселерометра как некий шарик в нем, вектор показывает ускорение этого шарика относительно телефона, которое он бы получил, если бы его отпустили. Под действием сил тяжести и инерции.
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
по одному только вектору ускорения не получится, и проблема именно в поворотах
телефону можно придать горизонтальное и вертикальное ускорение так, что длина вектора ускорения останется 1G, а направление изменится при повороте телефона будут те же показатели нужна дополнительная информация (гироскоп, компас, второй акселерометр) -------------------- qqq |
|||
|
||||
| Logo |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: нет Всего: 10 |
Да, прочитал статьи, походу с одним акселерометром не получится определять положение телефона, по крайней мере точно. Придется искать другую машинку.
Правда я не очень понял, почему.
При повороте, поидее, вследствии центробежной силы, кажущуюся ускорение должно быть больше 1G. P.S.
Правильно называется кажущуюся ускорение, оказывается. Добавлено через 4 минуты и 57 секунд
Можно, наверно, использовать камеру вместо гироскопа, но без готовой библиотеки замучаешься писать, да и костыль. |
||||||
|
|||||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |