Значит есть у меня такая задачка:
Имеем платформу, которая начинает движение, движется прямолинейно, затем останавливается. На ней установлен 3д акселерометр. Так как платформа движется прямо, то ускорение изменяется только по одной оси. В идеальном варианте имеем следующие показания акселерометра:
- Код: Выделить всё • Развернуть
0 - начало, платформа стоит
10 - начало движения, ускорение
0
0 - едем прямо
0
-10 - тормозим
0 - стоим
Однако предположим, что платформа едет под горку:
- Код: Выделить всё • Развернуть
5 - начало, платформа стоит, ускорение 5 из-за наклона вперед
15 - начало движения, ускорение
5
5 - едем прямо
5
-5 - тормозим
5 - стоим
В таком случае мы перед началом движения можем взять исходное ускорение и вычесть из всех показаний - получим искомые данные.
А что делать, если платформа сначала едет в горку, а потом под горку? Ну или как-то наклонятся туда-сюда? Как получить искомое ускорение по одной оси, скомпенсировав наклоны? Гироскопа нет, но есть 3д компас