постороение траетороий на базе MPU-9250

dreadfull
Offline
Зарегистрирован: 03.10.2015

доброго всем времени суток,ув., форумчане.

есть задача: определение траетории в пространве тела (колесная машина).

для этого нам неохидма положение тела в пространстве (угол поворота осей рысканья-крена-галопирования) и пройденный путь. с ориентацией мы разобрались, использовали трехосевой гироскоп-акселерометр-магнитометр MPU9250 от фирмы IvenSens,с ихним  Digital Moution Processor, который сам вычисляет углы (довольно аки не плохо...). пройденный путь мы сразу получить не можем, но имея ускорения по трем осям, дважды интегрируя находим пройденный путь.

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

начал искать в интернете похожие разработки. нашел только у себастьяна маджвика готовый пример с последующей визуальзацией (анимацией)  http://www.x-io.co.uk/gait-tracking-with-x-imu/ но никаких пояснений нет. в самом конце статьи есть ссылка на гитхаб где лежит пример. пример этот обрабатывается в Матлабе.я если честно никогда не работал с матлабом и как его запустить понятия не имею. 

в общем у кого каке светлые мысли по этому поводу?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

1. По вертикальеной оси Вы должны порлучить не 0, а g - ускорение свободного падения.

2. Т.к. плосксть, по которой едет тележка, не может быть абсолютно плоской (как и колесча не могут быть абсолютно круглыми) - неизбежны:

- толчки с ускорением, иногда превосходящим g,

- изменение угла плоскости тележки с горизонталью, в результате чего по продольной и поперечной оси должны появляться составляющие от силы тяжести, пропорциональные синусам соответствующих уголв наклона.

Другими словами, свистопляска показаний вполне предсказуема.

dreadfull
Offline
Зарегистрирован: 03.10.2015

да в вертикальной оси мы получаем джи, только в случае абсолютного соответвия оси Z силе тяжести, т.е. перпендикулярно горизонтальной плоскости, чего в опыте достичь очень сложно, а в реальных условиях движения не возможно. становится вопрос как его компенсировать правильно???

по поводу проекции данной силы на оси X Y мы уже разобрались и компенсировали их именно так как вы сказали - через синус.

но свистопляска остается.... попробывал усреднять значения, картинка стала более отчетливой. причем заметил чтопри качении с тележкой поперечное и вертикальное ускорение очень значительны, в отличие от варианта движения девайса рукой в пространстве по мнимой прямой. в этом случае отклонение в поперечной и горизонтальной оси более соответсвуют ожидаемой картинке... в общем вывод такой: чуствительность к незначительным толчкам (даже вибрациям) есть и значительная. вопрос: как её можно уменьшить???

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

dreadfull пишет:

по поводу проекции данной силы на оси X Y мы уже разобрались и компенсировали их именно так как вы сказали - через синус.

но свистопляска остается....

Могу предположить, что это только Вам кажется, что скомпенсировали.

Цитата:
в общем вывод такой: чуствительность к незначительным толчкам (даже вибрациям) есть и значительная. вопрос: как её можно уменьшить???

Я вижу, минимум, два направления:

1. Аппаратное - мягкий подвес, сглаживающий резкие толчки.

2. Программное: не пытаться "скомпенсировать" g, а учитывать его в расчетах. Т.е. по результатам понять, на какой угол и куда наклонена тележка, и только потом вычитать уже наклоненный g из полученных данных по ускорению. Один из источников информации о наклоне g - гироскоп. Другой - сам акселерометр.

Я пока до анализа данных с гироскопа/акселерометра/компаса и сравнению ее и информацией из других источников не добрался. Ориентировочно займусь этим через месяц-другой. Тогда, возможно, появятся и другие идеи.

artclonic
Offline
Зарегистрирован: 13.01.2015

Получилось?