Я работаю над проектом с использованием MPU6050 с моей разработанной микросхемой для обнаружения движения объекта. Проект разделен на 2 этапа:Как получить позицию в 3D-каналах с помощью mpu 6050?
- Этап I: визуализировать ориентацию объекта (DONE)
Фаза II: визуализировать положение объекта в 3D cordinates с волчком и accelerator.I следовать инструкциям этого сайта: http://www.x-io.co.uk/oscillatory-motion-tracking-with-x-imu/. Позиция должна быть получена из этого путем «двойной интеграции»; акселерометр сначала интегрируется, чтобы получить скорость, а затем снова, чтобы получить положение.
void COpenGLControl::Update() { double mX; double mY; double mZ; mX = mXCordinate*9.81; // mXCordinate-> X accelerator mY = mYCordinate*9.81; // mYCordinate-> Y accelerator mZ = mZCordinate*9.81; // mZCordinate-> Z accelerator /* linear velocity*/ curVelX = preVelX + mX *sampleRate; curVelY = preVelY + mY*sampleRate; curVelZ = preVelZ + mZ*sampleRate; /* linear location*/ curLoX = preLoX + curVelX*sampleRate; curLoY = preLoY + curVelY*sampleRate; curLoZ = preLoZ + curVelZ*sampleRate; preVelX = curVelX; preVelY = curVelY; preVelZ = curVelZ; preLoX = curLoX; preLoY = curLoY; preLoZ = curLoZ; }
Тогда curLoX, curLoY, curLoZ используется для визуализации 3D объекта с OpenGL:
glPushMatrix();
glTranslatef(curLoY,curLoX,curLoZ); //-> object moving visualization
glBegin(GL_QUADS);
........
glPopMatrix();
Моя цель в том, что при перемещении объекта вверх, вниз, влево, вправо, объект 3D будет иметь такое же движение. Но объект просто двигается только тогда, когда я вращаю свое устройство не линейным движением, следующим в http://www.x-io.co.uk/oscillatory-motion-tracking-with-x-imu/. Как я могу решить эту проблему?
После получения данных ускорителя, что мне делать дальше? – ios198
@ ios198: Интегрируйте его со временем. Если вы не понимаете, что означает «интегрирование». Я не могу заменить курс в исчислении и численном выражении на StackOverflow. Соответствующие статьи на https://en.wikipedia.org/wiki/Integral https://en.wikipedia.org/wiki/Numerical_integration и для физики позади него https://en.wikipedia.org/wiki/Equations_of_motion – datenwolf
В мой пост, я уже сделал это, чтобы получить местоположение объекта сверхурочно. Что я сделал здесь неправильно? Большое спасибо за Вашу помощь. – ios198