How do we determine the position and orientation of a moving robot using IMU sensors such as MPU6050 or MPU9250 (i.e. accelerometer , gyroscope and magnetometer sensor data)???
Using the accelerometers one can calculate the velocity vx,vy, and vz by integrating the acceleration. Then by integrating the velocities one can get x,y,z the position measured from a reference point. If there is a rotational motion around the vertical axes of the robot one can use the gyroscope to calculate the angle of the robot from a reference angle that may be fixed by the magnetometer. E.g. the direction of the earth magnet.
I think you can use the data sheets of the sensors them selves to use them effectively. For more useful information and literature citations please follow the link: https://www.researchgate.net/post/What_is_the_best_way_to_measure_position_with_an_accelerometer_and_gyroscope
Using the accelerometers one can calculate the velocity vx,vy, and vz by integrating the acceleration. Then by integrating the velocities one can get x,y,z the position measured from a reference point. If there is a rotational motion around the vertical axes of the robot one can use the gyroscope to calculate the angle of the robot from a reference angle that may be fixed by the magnetometer. E.g. the direction of the earth magnet.
I think you can use the data sheets of the sensors them selves to use them effectively. For more useful information and literature citations please follow the link: https://www.researchgate.net/post/What_is_the_best_way_to_measure_position_with_an_accelerometer_and_gyroscope
I got some experimental data as enclosed from MPU6050 sensor when the mobile robot is moving in a Y-Z plane of MPU6050 sensor, but it is very difficult to interpret... I think it needs to be further investigations on data interpretation
The answer from Abdelhalim abdelnaby Zekry is already precise. I just wanted to add few information:
1: you have an excellent tutorial on imu here:
http://www.starlino.com/imu_guide.html ;
2: if you robot is based on wheels it will be wise to fuse the information provided by the IMU and ones provided by the odometry ;
3: if you are interested in some codes (although you have plenty available MPU6050 or MPU9250) regarding imu, odometry and how to fuse them - an interesting resource may be this one: https://github.com/linorobot/linorobot;