MPU-6050 6dof IMU tutorial for auto-leveling quadcopters with Arduino source code - Part 2

Поделиться
HTML-код
  • Опубликовано: 3 окт 2024
  • This video explains how to program your own inertial measurement unit, or IMU for short, that can be used for auto-leveling (self-balancing) a multicopter. No Kalman filters, no libraries, no difficult calculations, just a simple and easy to understand tutorial that explains how to build an IMU that can be used for auto-leveling a multicopter.
    Part 1: • MPU-6050 6dof IMU tuto...
    The Arduino sketch and a detailed parts list that I used during this video can be found on my website:
    www.brokking.ne...

Комментарии • 510

  • @markcameron918
    @markcameron918 7 лет назад +67

    You are truly inspirational! The way you explain everything is so unique. It allows for people of all levels to grasp the concepts as much or as little at a time that they can handle. I believe that this is the way education should be handled at our schools. Students would be engaged a lot more in their Maths and Science with practical applications of the subject material. I have built the YMFC-AL and have had fun flying (and crashing) it. I am now at the stage where I am looking back into the code and trying to better understand the detail.

    • @Joop_Brokking
      @Joop_Brokking  7 лет назад +6

      Thank you for writing this comment!

    • @pravinchavhan8890
      @pravinchavhan8890 3 года назад

      @@Joop_Brokking
      hi , i want to know how can i calulate number of 360 degree rotations completed by MPU6050 using arduino . it would be nice if u help me

  • @olkatech27
    @olkatech27 2 года назад +1

    after 6 year of your videos, i had to watch your video more than 10 times . i really appreciate your explanation as a way that even the noob can understand . i’m sure this video will never get old .thankkk😅😊

  • @alanpowell328
    @alanpowell328 7 лет назад +14

    Hi Joop,
    I've been building quads for a few years and the IMU has always been a bit of "Black Magic". Thank you for a very clear explanation of how it works.
    Kind Regards
    Alan

  • @tanmay______
    @tanmay______ 5 лет назад +4

    The knowledge of vectors and components really helps. When I watched this video two years ago, i understood very little. But now that I've learned about vectors and their angle calculations, this is relatively easy :)

  • @iforce2d
    @iforce2d 8 лет назад +53

    Very nicely explained. Interesting that such a small correction from the accelerometer is enough.

    • @Joop_Brokking
      @Joop_Brokking  8 лет назад +3

      Thanks Chris. It really depends on the quality of the gyro and the amount of vibrations. But in most cases you only need to correct e few degrees per minute.

    • @Gummientenkillass
      @Gummientenkillass 8 лет назад

      +Joop Brokking Are there any physical anti vibration methods such as rubber suspension mounts in use? Like is the gyro and accelmeter mounted on a suspended plate?

    • @Gummientenkillass
      @Gummientenkillass 8 лет назад

      +Peter Lustich Btw I really enjoyed your video and you sparked my interest and motivartion wirh your beautiful contraption.
      Greetings from Germany and keep up your awesome work.

    • @Joop_Brokking
      @Joop_Brokking  8 лет назад +10

      Try to avoid damping materials. Try to make everything as stiff as possible and balance your motors and props.
      Damping will change the natural frequency of the gyro and can cause oscillation.

    • @Electronieks
      @Electronieks 7 лет назад

      iforce2d toppie

  • @M.Voelkel
    @M.Voelkel 3 месяца назад

    Danke dir Joop,
    theoretisch hat man in der Schule, schon damals über Kraftvektoren doch einiges gelernt - ABER das Ganze in Microcontroller umzusetzen, war mir mehr als unmöglich.
    Du hast mir mehr als nur weiter geholfen, sodass ich als Neueinsteiger in der Microcontroller nun mehr den Durchblick bekommen habe.
    Daher nochmals - Danke Joop !
    15.06.´24

  • @MichaelNiece
    @MichaelNiece 6 лет назад +1

    This video, and the first video that goes with it, is amazing. I’m a drone pilot but just recently starting getting into the programming and development aspects. I bought an Arduino Mega2560 with a bunch of standard sensors in the kit, but the GY 521 is the one I was most interested in. This video series has explained a ton of useful information! I already have a programming background so that part is covered; it was just a matter of getting the pesky data from the GY 521 to actually be useful. It’s great people like you that make RUclips and DIY projects worth the time and effort when other people are just starting. Thank you so much!

  • @khaledhachem9496
    @khaledhachem9496 3 месяца назад

    Awesome video, thank you for sharing all this knowledge. I'm going to apply this stuff for my college graduation final project. You are a great teacher.

  • @daleshelley4887
    @daleshelley4887 5 лет назад +1

    I have been watching your Videos for 2 Hours solid, Most interesting videos I have watched and your theory is amazing I have booked marked and will continue tomorrow.
    I thought I was a Bright Boy. You Just shown me how little I know lol Thanks for the Great Explanations I have learnt a LOT. Thank You !!!!

    • @Joop_Brokking
      @Joop_Brokking  5 лет назад

      Thank you for the compliment and taking the time to write this comment!

  • @philheelan721
    @philheelan721 Год назад

    Best Video I have ever seen on how to use this device

  • @AppliedMetaphysician
    @AppliedMetaphysician 6 лет назад +2

    I am so thankful that I stumbled upon your channel; and even more thankful that you have decided to share what you have learned.

  • @angus2170
    @angus2170 4 года назад +1

    Amazing video. This was the first video of many that helped me understand how the MPU-6050 works, as well as gyros and accelerometers in general. Keep up the great work - it's super cool!

  • @kylederry4335
    @kylederry4335 5 лет назад +1

    Amazing, thank you! Something I've been trying to wrap my head around for weeks and realized I wasn't even close. Plugged this into my program and bang! spot on!

  • @gamesvrtech6666
    @gamesvrtech6666 3 года назад

    Hey, although I already read a bunch of stuff about these IMUs the past few days I must say that your video is highly interesting and sums up a whole lot of things you have to deal with when using these type of chips. Thanks for your great and detailed explanations, this way it is really easy to follow!! 👍

  • @harddiskkosong3661
    @harddiskkosong3661 5 лет назад

    Dude.. first thing first.. i trully appreciate your work on this video.. or even your playlist on build quadcopter from arduino. it helps me a lot.. so seriously thank you very much for your work. You explain things very good and easy to understand. I'll look further on your playlist on building copter because im on my way building up one too from arduino. You helped me a lot dude.. thank you very very much.. even better a lot of people might be helped too by your videos. Keep up your good work dude. And once again, thank you very much.

  • @MercurialMann
    @MercurialMann 7 лет назад

    Excellent video. You've managed to shrink a term's work into a 10 minute video! Great job.

  • @espenbgh2540
    @espenbgh2540 5 лет назад

    Thanks for this straight forward demonstration of how to harness the MPU data into useful control.

  • @sergiourquijo4000
    @sergiourquijo4000 4 года назад

    What a couple of usefull videos. For real man this is gold for me. I had 0 hope of finding how to use this sensor on youtube.

  • @armstrongsubero98
    @armstrongsubero98 7 лет назад

    This is the best tutorial I have seen involving mathematics ever! Keep up the good work, more tutorials with math like this!!

  • @willmarkusen
    @willmarkusen 6 лет назад

    I just found your channel last night. I am so glad I did. So much fantastic knowledge, explained in a very relevant and comprehensive way. Thank you for taking the time to produce these great and informative videos.

  • @allawhussein
    @allawhussein 5 лет назад

    from a complicated subject to a practical hobby

  • @muaiyadh
    @muaiyadh 7 лет назад

    This is the first video I saw which says how to fix drift and is very well explained.
    Thank you for providing the code too :)

  • @MrInnovative
    @MrInnovative 7 лет назад

    it is really very useful it has clear many of my doubts in single short

  • @zajec11
    @zajec11 7 лет назад

    You are a godsent sir! I'm currently working on a final year project where I need to develop a stop indicator system for a trials motorcycle and I needed a good way of measuring the instantaneous tilt angle in the vibratory conditions. Your explanations were so useful! Thank you :)

  • @oncledan282
    @oncledan282 5 лет назад +2

    Good Day, Joop.
    GREAT tutorial my friend. It did very much all what I wanted it to do. However ...
    I tried to make it display the yaw and the temperature, but my knowledge in Arduino and MPU-6050 are still very green, since I only started in this platform (Arduino) 1 or 2 weeks ago. My interest started when I realized I could program this micro controller to do almost anything and I had an application for such thing.
    I did lots of Visual BASIC programmation in my younger days, and I see the C/C++ structure is somewhat different, but I get some parts of this, since it « speaks » English and shares some similar structure.
    I tried to modified the code to make it display the yaw and temperature as well, since I have a 20x4 LCD Display (and a TFT Display, but I'm not there yet!). So, after modifying the Display's parameters and adding a few lines to the original program, trying to follow the same logical structure (declaring extra variables and all) well, it compiles successfully but, of course, it didn't work. I must've missed something or did something wrong.
    Could you (or someone) help me achieve my goal ? Thank you in advance.
    Regards, Dan, aka « Uncle Dan »

  • @imadsaliba9015
    @imadsaliba9015 7 лет назад

    its just these two lines that will do the job. more likely all the jobs in the world are solved with two lines of yours mister.
    love you videos. thank you for the time you are spending for making the world smarter. hopefully one day smart people will be more than ignorant people :)

  • @PiefacePete46
    @PiefacePete46 8 лет назад

    Your explanation is so clear it encourages me to explore areas I would have attempted. Thank you so much.

  • @brotschuh
    @brotschuh 7 лет назад +2

    Only 4 people didn't learn something. Great job. :)

  • @rosswaring2835
    @rosswaring2835 3 года назад

    Really good. clear and practical explanations of the IMU behaviour and how to compensate for the real-world issues. Excellent work!

  • @FarazKhan-to5ow
    @FarazKhan-to5ow 5 лет назад

    Thank you so much sir for sharing this great work with the community, It has been 2 years i am following your tutorials

  • @nickg4564
    @nickg4564 7 лет назад

    about time someone uploads a video on the subject i can understand, thanks!

  • @gullisreisen
    @gullisreisen 3 года назад

    For those who are wondering why he uses different formulas in the video explanation than in the code: The MPU6050 positiv x-direction (Roll-Axis) is used as the pitch Axis in the video.

  • @malangamba
    @malangamba 8 лет назад +5

    You genius! :) Thanks for sharing it, made me understand how the sensor really works. Thank you again! :D

  • @TheOnlyWretch
    @TheOnlyWretch 7 лет назад

    Best explanation I've seen so far and it is going straight on to my favourites list. Thank you

  • @__raghu.vir_
    @__raghu.vir_ 3 года назад

    Very very helpful for us, the way you explain is what our education system needs !
    👍👌👌

  • @yeahmarn9369
    @yeahmarn9369 5 лет назад

    U can explain in very detail .....which help us a lot.....thank you very much 👏🏻

  • @DevesTechnet
    @DevesTechnet 7 лет назад

    Just read the HMC5883L document you suggested. Looking forward to your implementation! Thank you again!

  • @doantrungnghia05
    @doantrungnghia05 7 лет назад

    Your video series on building quadcopters and related research topics are really nice and helpfull. Five years ago, when I learned to build my own quadcopter from scratch, there were not much easy-to-understand tutorials like yours. I think sensor fusion and calibration topics are quite critical for a good performance of a quadcopter. Could you please conduct some research and provide us some tutorials like this video. Thanks a lot.

  • @oadka
    @oadka 8 лет назад

    Sir, your videos are great. You do deserve more attention.

  • @Karneallota
    @Karneallota 6 лет назад

    Thanks for the easy to follow tutorial. I was able to modify your MPU-6050_IMU.ino to work with my MPU-9250 and output some very usable roll/pitch data.

  • @bonafide9085
    @bonafide9085 7 лет назад

    Clear explanation, thanks!
    Also DMP of the MPU6050 can be used for data fusion and also gimbal lock can be avoided by using the quaternion values.

  • @timonix2
    @timonix2 8 лет назад +8

    now you just need to add a magnetometer to correct for yaw drift and a barometer for more accurate altitude. Accelerometer alone drifts when trying to measure position.

  • @robotrandi6223
    @robotrandi6223 7 лет назад

    Awesome, very nicely explained even if I already knew most of the concepts still very useful to see them clearly explained again...

  • @Taran72
    @Taran72 4 года назад

    Your videos are a life saver!!! Thank you so much for making things so simple.

  • @JackZimmermann
    @JackZimmermann 7 лет назад

    Great video! I'm about to build a drag race measurement device, so this video came in handy! Thanks a bunch!

  • @edward6027
    @edward6027 Год назад

    Fantastic vid Joop. Keep up the good work.

  • @theinterfaithshepherd9075
    @theinterfaithshepherd9075 6 лет назад

    Dear Joop, Thanks for another great video! It takes a HUGE amount of work to document everything as well as you do. I assume that you are planning to own a channel and get paid for advertising based on your excellent content?
    You asked for feedback at the end of the video, and I'd like to offer some constructive feedback. I'm doing so because you asked for feedback...and you stated intention is to teach people, and I'd like to offer some suggestions.
    I will preface my comments by saying that I've only watched (multiple of) your videos once (each)...the content is complicated and may take multiple watches to understand.
    Also, my background is that of Mechanical Engineering and Software Engineering.
    Finally, I make videos as well...which are just a hobby and FAR less well thought out than yours. I FULLY acknowledge that I am NOT a videographer or documentarian. I LOVE your videos!!
    That said...
    I've watched a lot of your videos now and have found that while you do explain everything extremely well, with very precise details...I am often feeling confused about what is going on and why. I feel lost in the weeds.
    For example, after watching this video, and your two-wheel stepper balancer videos, I feel confused because I don't understand how the two-wheel balancer is working...nor do I understand the high level concept of how you're doing it. Or, why did you bother using a 45deg angle on the accelerometers. I just feel lost! Regarding the balancer, I have no idea how you are balancing it. Are you waiting until is starts to fall and reacting, are you just reading the pitch angle and adjusting. When you want it to go forward and backwards, don't you need to give it a reverse input first...there was no mention of that (as I recall)...tho I know you must be doing it.
    My suggestions are as follows:
    First, I would be to add some graphics or simple diagrams that give a high level overview of the strategy of the project. Perhaps a little demonstration of what you are doing by using your body or balancing a pole on your hand or showing manually what you are having the PID do.
    Secondly, I suggest that rather than jumping into the code, you summarize your strategy.
    For example, perhaps writing out a skeleton program and explaining that first, then jumping into more detail.
    Such as...
    First I do the setup.
    Next I do a loop, and in the loop...
    I read the accelerometer every 5 microseconds.
    if the angle reads zero, I do nothing
    If the angle reads positive, I turn the wheels this way
    If the angle reads negative, I turn the wheels that way
    if the angle is more than 30 I assume it's fallen over and turn the motor off.
    Third...
    I have found that the tone of the videos is constant.
    To keep attention focused, it might be useful to put in some interesting random funny things every few minutes - to break things up and be less monotonous.
    That would definitely change the content characteristics and they would be less academic and more entertaining.
    You may have considered this and made the tactical decision to NOT be entertaining but rather focus upon teaching.
    But, there is a famous physics teacher at MIT who often incorporates some theatrical activity into his classes...for you to consider as a benchmark.
    I hope you consider my feedback to be helpful in teaching people to understand what you're telling them.
    I wish you the VERY BEST of luck in your adventure!
    Sending Love,
    Pat

  • @prashantmishra2179
    @prashantmishra2179 3 года назад

    You are amazing .. truly amazing. How well you explained it all, when I thought that it is so complicated, but now you made it easy for me. Thank you! You are genius!:)

  • @basameera
    @basameera 8 лет назад

    Excellent explanation of MPU-6050. Thanks.

  • @ahandlethatisnottaken
    @ahandlethatisnottaken 6 лет назад

    Now I would be interested in a similar video, but explaining a more robust algorithm without the problem shown in the end of the video.

  • @MrXanMartins
    @MrXanMartins 8 лет назад

    Great work dude! I am building a quad very similar to yours and your videos are helping a lot!

  • @datho7597
    @datho7597 4 года назад

    this is very very good! thank you for your input. without ur video i don't think i would have understand this

  • @neretharanthanael9130
    @neretharanthanael9130 6 лет назад

    A great explanation to a difficult topic!

  • @mdaravee
    @mdaravee 3 года назад

    its now the year 2021 and you are still the teacher. thanks i don't usually usually comment ,but on this 1 you really deserved that.i have a 2 questions is it possible to have an autonomous quad using Arduino.2nd Question can we use the node mcu boards thanks in advance.

    • @JaydenLawson
      @JaydenLawson 2 года назад

      He has an autonomous arduino drone in another video, so that answers question one!

  • @olemuell5979
    @olemuell5979 4 года назад +1

    your tutorials are so underrated!
    They are also not limited to onmly mpu6050. I needed to hear all of this for a completely different imu.
    thank you for your work!
    just one question, it seems your sensor has no yaw drift. how do you combat it?
    In the code you used, there was no word about it, and due to the drift the sin makes my roll and pitch values go all over the place...

  • @hawkkim1974
    @hawkkim1974 7 лет назад

    Genius level of explanation

  • @freddiesnijman
    @freddiesnijman 8 лет назад

    Of course we did learn something Joop!, Excellent coaching/teaching once more!

  • @dalebotha9162
    @dalebotha9162 6 лет назад

    Hey! What a great video! Thanks! Really simply and nicely laid out and explained with good examples! 😁

  • @davidabineri908
    @davidabineri908 11 месяцев назад

    This is a very valuable and clearly presented series and I am learning a great deal. One question: Where in your code for the YMFC-AL flight controler do you store data into the EEPROM. I can see where you are reading data but not where you are storing data. Thanks for your help with this question.

  • @hasmorais
    @hasmorais 5 лет назад

    Thank you for more detailed information. Very nice for DIY developpers

  • @RaiNivesh
    @RaiNivesh 4 года назад

    Duidelijk uitgelegd Joop. Top video!

  • @irfan-vu5td
    @irfan-vu5td 5 лет назад

    its really worth watching. Excellent work!

  • @mirage3rd
    @mirage3rd 6 лет назад

    Thanks a lot for a very thorough and clear explanation

  • @breedj1
    @breedj1 7 лет назад

    Bedankt voor de uitleg Joop. Duidelijk uitgelegd.

  • @walterguevara2273
    @walterguevara2273 6 лет назад

    Thank you!, Explained a lot of different approaches.

  • @Isambardify
    @Isambardify 4 года назад

    The sigh of relief that the code was on the website! Is it possible to run 2 of these from a single arduino or do you need the pins?

  • @minhohihi1
    @minhohihi1 8 лет назад +5

    Thank you so much. Your tutorial really help me^^
    May I ask a reason why do you use your own angle (roll, pitch, yaw) calculation method instead of DMP in MPU-6050?
    I guess DMP returns exact values for roll, pitch, yaw. Is there timing issue when using DMP on arduino quad drone? Thanks again~

  • @BreakingBarriers2DIY
    @BreakingBarriers2DIY 5 лет назад

    Thanks for the great description...AND sense of humour. :)

  • @dhruv0x0x0
    @dhruv0x0x0 2 года назад

    learned something......... learned so much!!!!

  • @АлександрДиК-ю5ц
    @АлександрДиК-ю5ц 3 года назад

    Спасибо Вам! Давно искал рабочий электронный уровень.

  • @caioqwerty1
    @caioqwerty1 8 лет назад

    Your videos are so perfect.

  • @udomchok2010
    @udomchok2010 4 года назад

    Very nice explanation, I do learned a lot from you. Thank you.

  • @bofloa
    @bofloa 7 лет назад

    You are a good teacher

  • @theodordrymonis6728
    @theodordrymonis6728 8 лет назад

    Thank you Joop for this educational video !!! Just a small correction/notification at line 68 replace "lcd.begin();" with "lcd.init();" for use with LiquidCrystal_I2C library.

    • @Joop_Brokking
      @Joop_Brokking  8 лет назад

      It depends what library you use. As you can see my library works fine. That is one of the reasons why I hate crappy libraries and always try to avoid them. Another one is the name they change. The Arduino IDE 1.6.7 comes with the LiquidCrystal library and uses begin(). Check keywords.txt file.

    • @theodordrymonis6728
      @theodordrymonis6728 8 лет назад

      That's interesting ! Before i try anything else i will update my Arduino IDE. Thanks again!

  • @WaqarRashid
    @WaqarRashid 8 лет назад

    Great video.. I am been trying to understand the Multiwii IMU but it wasn't making sense.. I hope after this knowledge it would make sense..
    It would be very nice and helpful if you can make some videos about multiwii source code as its really difficult to understand for a beginner.

  • @ThinhTran-yu9sn
    @ThinhTran-yu9sn 7 лет назад +3

    Thanks for great tutorial. Can you please explain why you divide the accelerometer/25 , and how did the value of 0.9996 and 0.0004 is calculated when used in the final formula ?

    • @saturdayscience5540
      @saturdayscience5540 4 года назад +2

      I'm making an educated guess. Joop divided acceleration by 25 (end of Excel) to reduce the noise in the accelerometer angle signals. Why divide by 25? If you use a rolling average or low pass filter to reduce accelerometer noise (from motors etc) then by definition you introduce a delay to 'seeing' a change in the acceleration. That delay is the 'shift' in the graph in excel (6:33). If we used a filtered accelerometer angle then we would be working with a gyro angle from 'now' and an accelerometer angle from some time ago; that can't give us a good idea of what the 'true' angle is 'now'. Dividing by 25 reduces both noise and real signal but without any delay (7:54) and both gyro and accelerometer angles are for 'now'. Values less than 25 would allow more noise, so there is some compromise.
      The gyro is subject to drift (i.e. it is a comparatively slow process) because it is an integration process. So 0.0004 is a combined factor of dividing acceleration by 25 and making it's contribution to gyro drift correction. 0.0004 * 25 = 0.01 = 1% The net effect is to provide 1% of anti-drift 'compensation' to the gyro signal on each reading. 1.0000 - 0.0004 = 0.9996 so that determines the weighting used for the raw gyro value. (The sum has to equal 1.0000; bigger and the numbers could expand forever, less and it could decay to 0).
      With a target IMU refresh rate of 250Hz the 1% anti-drift compensation is sufficient. The two values (divide acceleration by 25 and 1% anti-drift compensation) are 'free choice' but considered. Unlike 180/pi to convert radians to degrees.

    • @natezimmer4489
      @natezimmer4489 2 года назад

      Those are the magically tuned numbers of the complementary filter. He manually tuned the filter with those values. The only stipulation of those numbers is that they add to 1. The ratio of those 2 numbers determines how much you favor the gyro versus the accelerometer. Also, you have to re-tune those values based on how frequently you call the filter. E.g. calculate it every 10ms vs. 100ms, you will need to adjust accordingly.

  • @maxvonwolff2222
    @maxvonwolff2222 8 лет назад

    Well done.
    It would be great if you'd have mentioned why you used asin instead of acos in the arduino code. Or you could have used 90deg - acos(...) to make it easier to understand.

    • @Joop_Brokking
      @Joop_Brokking  8 лет назад

      You can use both asin and acos. It makes no difference. You only have to modify the calculations.

  • @yoffel2196
    @yoffel2196 7 лет назад +2

    Great tutorial!
    How come that the maximum degree is 60? Is it a limitation in the code or in the IMU itself? If it's the IMU how do I know what limitation the different IMUs have?

  • @shaunkaufmann6091
    @shaunkaufmann6091 7 лет назад

    Great video Joop! your whole series is absolutely ace! thanks so much. any reason you didnt use the 6050s onboard DMP? is this because you were using more as a learning process ? do you use it for your other projects ?

    • @Joop_Brokking
      @Joop_Brokking  7 лет назад +1

      I don't use theDMP. I indeed like to teach people that is can be done within a few lines of code.

  • @matheusaraujo7393
    @matheusaraujo7393 6 лет назад

    Really nice, but int the end your formula to compensate gyro drift with accelerotmeter measurements is a kalman filter :P
    Really thanks for your video. I've built the auto-level quadcopter with my 11 years old son and he's loving it. One thounsand thanks to you

    • @Joop_Brokking
      @Joop_Brokking  6 лет назад +1

      The purpose of a Kalman filter is that it will adjust itself based on the input. I'm using a fixed one :-)
      Great to hear that you build the YMFC-AL. That is the reason that I'm making these videos.

    • @matheusaraujo7393
      @matheusaraujo7393 6 лет назад

      Joop Brokking thank you again. your work is a gift to human kind. spreading science alll over the world. Now I am think about building a drone capable to transport a person. Have you ever thougt about it. By the way, I was wrong about your complimentary filter.

  • @edilsonfernandes4703
    @edilsonfernandes4703 8 лет назад

    I'm watching your videos right now, they're so good that i've watched all of them at once, anyway, i would like to ask you what exactly causes the angle drifting on the IMU created with a gyro.

    • @Joop_Brokking
      @Joop_Brokking  8 лет назад

      To be drift free the gyro has to produce all zero's. And that is simply not possible. Especially on a vibrating quadcopter.

  • @jamescullins2709
    @jamescullins2709 5 лет назад

    Very well explained, and very interesting. Thanks

  • @sangvu5805
    @sangvu5805 5 лет назад

    Thank you ! Your tutorial help me a lot

  • @brendanvanbreda
    @brendanvanbreda 6 лет назад

    love your content man very helpful

  • @reactorscience
    @reactorscience 8 лет назад

    brilliant video,very nicely explained

  • @vithlanibhargav9643
    @vithlanibhargav9643 7 лет назад

    thank you sir for such a wonderful explanation.

  • @mcynelly1637
    @mcynelly1637 8 лет назад

    Every thing form you is 100%! for me (45 year, and start to build a Copter 6 month bevor) only fun to learn form you. I wich i had a Teacher in my School time like you. Thank you very mutch, so on. Do you understand german?

    • @Joop_Brokking
      @Joop_Brokking  8 лет назад

      Hello, thank you for the compliments. Yes, I understand German. But my writing in German is far worse that my English.

  • @Doubleolseven
    @Doubleolseven 7 лет назад

    so you say accelerometers are not usable to correct the attitude because of induced vibration is too large to filter out.
    fast rotations are to be worked out via gyro (since gyro drifts with slow rotations), but a means to filter out the vibrations should be employed.
    assuming the drone hovers, then the vibration level is pretty much stationary and should filter out in data processing.
    if the drone looses atttitude then the gyro would signal the error and should be used for quick correction up to a point where accelerometers could fine tune the attitude.
    i'm very excited with your vids and can't wait to try it on my own.thank you for posting

  • @tiguy6758
    @tiguy6758 4 года назад

    Very well done tutorial. Thank for the effort.

  • @tommykallerdahl3056
    @tommykallerdahl3056 4 года назад

    An excellent tutorial, thank you.

  • @ivanllopis5882
    @ivanllopis5882 6 лет назад

    Amazing explanation, thank you!

  • @leandro3710
    @leandro3710 7 лет назад

    Awesome explanation, thank you!

  • @dimitriss.2630
    @dimitriss.2630 4 года назад

    This is probably the best working code for this IMU and probably the best video explaining the process. Great material. One question: the code calculates pitch and roll but I would like to calculate yaw as well. I suppose I can define angle_yaw += gyro_z * 0.0000611; but do I need to calculate somehow a angle_yaw_acc? If so, how to do that?

  • @richardchilvers272
    @richardchilvers272 7 лет назад

    Excellent work! "Simplicity is the ultimate sophistication" (Leonardo da Vinci ) and you have given a simple explanation and solution to a complex problem. I need stable, sensitive, fast roll and pitch inputs for a foiling RC catamaran (Vibration is not as problem). Do you think the solution you described here using the MPU-6050 would be suitable? Or would you suggest something else?

  • @jaschafricker175
    @jaschafricker175 5 лет назад

    I really like your work. Thanks!

  • @TheAxilleus
    @TheAxilleus 8 лет назад

    Hi! Your videos the best tutorials on youtube about quadcopters on Arduino. Can you explain how to combine MPU6050 and HMC5883L or other digital compass to make 9 dof IMU ?

    • @Joop_Brokking
      @Joop_Brokking  8 лет назад

      Google 'HMC5883L application note'. Honywell made a nice PDF document on how to implement the HMC5883L.

  • @EmbSysDev
    @EmbSysDev 4 года назад

    So much brilliance on youtube,so little time...

  • @JDI4DAVID
    @JDI4DAVID 7 лет назад

    Thank you for sharing this with us. I do appreciate your style and clarity of explanation. It is especially nice to have a program with straightforward functions rather than libraries. Your 250 Hz an integration period of 4 ms but your loop period is 4 s. How does this work? Thank you Joop.

  • @stillededge
    @stillededge 2 года назад

    Thanks. This is a Good start point for me! I'm sure I'll use it to crash MANY times! 🤣

  • @madhausrotts
    @madhausrotts 7 лет назад

    oh i love it! if i can make a small project suggestion? have you thought of making a custom, ultra small rf beacon so you can find it if it gets away? maybe something based upon the attiny85? great wotk on the videos, learning Heaps!!