19 | Combine an accelerometer and barometer to measure altitude

แชร์
ฝัง
  • เผยแพร่เมื่อ 16 พ.ค. 2024
  • Full code and manual on GitHub: github.com/CarbonAeronautics
    In this video, you will learn how you can measure the vertical velocity and altitude of your quadcopter by combining the measurements of the MPU6050 accelerometer and BMP280 altitude sensors through a two-dimensional Kalman filter.
    The purpose of this video series is to learn the basics behind a quadcopter drone and enable you to build one yourself, by dividing this challenging project in several easy-to-understand parts. You use the capable Teensy 4.0 microcontroller together with the easy-to-use Arduino language.
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 24

  • @dinhtrungche9619
    @dinhtrungche9619 3 หลายเดือนก่อน +3

    You sir, have the greatest drone tutorial I have ever seen. I love that you actually dives into the relevant theories. I certainly need to do a lot more reading, but this gave me the perfect guideline as to what to study. I learned more from you than 3 years in engineering school. Thank you.

  • @robertparenton7470
    @robertparenton7470 ปีที่แล้ว +2

    Thank You! From Frisco, TX

  • @Antonioopjunior
    @Antonioopjunior 9 หลายเดือนก่อน +2

    Such a great project, very well explained. I just notice, on the lines 171 and 173, you will have to remove the space after the label for the arduino IDE 2.0 in order to have a working plotter serial.
    the label shoud be "Serial.print("Altitude [cm]:");" without space beteewing the : and "

  • @aarvishsatapara3039
    @aarvishsatapara3039 ปีที่แล้ว

    Thanks Bro.
    You helped a lot.

  • @master_lox8639
    @master_lox8639 3 วันที่ผ่านมา

    Hi, is there a way i can get this in an function where i just have to call it with the parameters (accz and barometricpressure) and get the estimated vertical velocity? :D The code it kinda hard to implement in an other project for me...

  • @bikashmahapatra3347
    @bikashmahapatra3347 ปีที่แล้ว

    Sir, I am doing the same project but I am getting an offset value of altitude of 5.32 cm and velocity of -29.5.. plz help me for getting the correct results

  • @mirhamza4123
    @mirhamza4123 ปีที่แล้ว

    The performance can be improved if you can implement a kalman filter with the dynamical model of the system. this will involve computing the weight of the quadcopter. Also, the rates of both the accelerometer and barometer are not the same so as can be seen from the results there is a jump in the readings that might be because of the pressure data arriving at a lower rate than the accelerometer data. I will try this with my setup some time.

    • @mecitpamuk5623
      @mecitpamuk5623 10 หลายเดือนก่อน

      Its normal I guess because of the fact that, the trust morely depends on the barometer sensor , it will close accurate value when the barometer data come in. Other drifting causes from accelerometer.

    • @TitanUnleashed7
      @TitanUnleashed7 5 หลายเดือนก่อน

      Can you explain what you mean by Kalyan filter with the dynamical model

  • @thorverhoeven3426
    @thorverhoeven3426 5 วันที่ผ่านมา

    i can't find the full code on github please someone help

  • @Sojung0714
    @Sojung0714 5 หลายเดือนก่อน

    Hi. I'm following your project in the same way but on the board Arduino pro mini. And now I really need your help!
    I'm stuck at the two lines. The first one is line 39 K=P*~H*Invert(L); I kinda manage it by changing Invert to Inverse. But not sure.
    The second problem is line 169 Q = G * ~G*10*10; It seems like the matrix numbers are not matching, but it is hard to figure out how to fix them.
    PLEAS help me out!!
    The compilation error is
    : no match for 'operator*' (operand types are 'BLA::Matrix' and 'int')

    • @attilasukosd
      @attilasukosd 5 หลายเดือนก่อน +2

      I had the same issue. For the Q = G * ~G * 10 * 10; I've changed the Matrix types to float like so:
      BLA::Matrix F; BLA::Matrix G;
      BLA::Matrix P; BLA::Matrix Q;
      BLA::Matrix S; BLA::Matrix H;
      BLA::Matrix I; BLA::Matrix Acc;
      BLA::Matrix K; BLA::Matrix R;
      BLA::Matrix L; BLA::Matrix M;
      And explicitly indicated that 10 is float and not int:
      Q = G * ~G * 10.0f * 10.0f;

    • @Sebastianltaylor
      @Sebastianltaylor 3 หลายเดือนก่อน

      @@attilasukosd did it work for you after these corrections?

  • @thebigelectrode
    @thebigelectrode หลายเดือนก่อน

    why we need to multiply the Q matrix with G and transpose

  • @Rcapamonheitos
    @Rcapamonheitos 11 หลายเดือนก่อน +1

    There is a mistake in your equations. When updating your uncertainty (covariance matrix P) a posteriori, that is, after measurement, you should write $P(k) = (I-KH)P(k)$, with H being the observation matrix. Other than that, great video! Really informative and adequately paced, congratulations.

    • @SLab-ti8zp
      @SLab-ti8zp 11 หลายเดือนก่อน

      Could you show how to do it in a code please?

    • @mecitpamuk5623
      @mecitpamuk5623 10 หลายเดือนก่อน

      In the real code its allready like that ( line 44 ) => P=(I-K*H)*P;

  • @argentinomacrifuevidaltamb3772
    @argentinomacrifuevidaltamb3772 ปีที่แล้ว

    Magistral video. Gracias

  • @epicdaniel508
    @epicdaniel508 6 หลายเดือนก่อน +2

    Weird, compiling the code results in an error

    • @cactustv8145
      @cactustv8145 16 วันที่ผ่านมา

      have you found a solution?

    • @epicdaniel508
      @epicdaniel508 15 วันที่ผ่านมา

      @@cactustv8145 no

  • @ngweisheng996
    @ngweisheng996 2 หลายเดือนก่อน

    Any one able to convert this to python... ?

  • @ahmedmoustafa6829
    @ahmedmoustafa6829 ปีที่แล้ว +1

    Is acc really required?
    I thought Parameter is enough …
    First to make LIKE

    • @TitanUnleashed7
      @TitanUnleashed7 5 หลายเดือนก่อน

      It could be, but fusing the two using something like a Kalman filter provides more accurate data as even the barometer is going to have noisy data