필터 지우기
필터 지우기

MPU-6050 accelerometer reading of one direction

조회 수: 22 (최근 30일)
Nguyen Trieu
Nguyen Trieu 2020년 4월 11일
편집: Gayatri Menon 2020년 4월 24일
Hi!
I am using these line of code to continuously read the real-time acceleration values from the IMU(MPU-6050):
clear;
a = arduino('COM5','Uno','Libraries',{'I2C','SPI'});
imu = mpu6050(a,'SampleRate',50,'SamplesPerRead',5,'ReadMode','Latest');
accelReadings = readAcceleration(imu);
display(accelReadings);
It will returns one sample of the acceleration data on x, y, and z axes read from the sensor in units of m/s2 like this:
accelReadings =
-2.3399 -0.5377 3.0201
Is there any possible way for me to retrive only the value of the x axis (the first value only)? I tried to treat it as an array but it is not working.
Also, can I fuse the data (estimate the orientation, quaternion, determine roll, pitch and yaw angles) of this type of this 6DOF sensor(MPU6050) as there is no magnetometer?
Thanks!

채택된 답변

Gayatri Menon
Gayatri Menon 2020년 4월 21일
Hi
accelReadings(1) should give you the x values. If you have a license for Sensor Fusion and Tracking toolbox or Navigation toolbox, try using read() for more capabilities. For usage and examples, please refer link for read() .
If you have the above-mentioned licenses, you can use imufilter to determine orientation.'imufilter' uses only accelerometer and gyroscope values. Refer to the example here.
Hope this helps
Thanks
Gayatri
  댓글 수: 2
Nguyen Trieu
Nguyen Trieu 2020년 4월 22일
Thank you for your response, however I am only interested in retrieving the values appeares on the axes seperately to plot the graph of the accelerometer values on x, y and z axes. The read fuction always generate the result as a set of 3x1 matrix.
And regarding the gyro and accel value fusion, I can't figure out how to get the value of accelerometor noise of 0.0061m/s^2 in this piece of code in the example:
displayMessage(['This section uses IMU filter to determine orientation of the sensor by collecting live sensor data from the \slmpu9250 \rm' ...
'system object. Move the sensor to visualize orientation of the sensor in the figure window. Keep the sensor stationery before you'...
'click OK'],...
'Estimate Orientation using IMU filter and MPU-9250.')
% GyroscopeNoise and AccelerometerNoise is determined from datasheet.
GyroscopeNoiseMPU9250 = 3.0462e-06; % GyroscopeNoise (variance) in units of rad/s
AccelerometerNoiseMPU9250 = 0.0061; % AccelerometerNoise (variance) in units of m/s^2
viewer = HelperOrientationViewer('Title',{'IMU Filter'});
FUSE = imufilter('SampleRate',imu.SampleRate, 'GyroscopeNoise',GyroscopeNoiseMPU9250,'AccelerometerNoise', AccelerometerNoiseMPU9250);
stopTimer=100;
Would you mind clarify?
Best Regards.
Gayatri Menon
Gayatri Menon 2020년 4월 23일
편집: Gayatri Menon 2020년 4월 24일
Please refer the below link.This link explains how the noise is calculated for MPU9250. A similar approach can be used for mpu6050 as well
Thanks
Gayatri

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by