YMFC-3D part 5 - Quadcopter PID controller and PID tuning.

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 พ.ค. 2015
  • PLEASE USE THE YMFC-AL (AUTO-LEVEL) SOFTWARE: • YMFC-AL - Build your o...
    These videos are just for reference. The new software is much easier to setup and supports almost all transmitters.
    You can download the Arduino sketch here:
    www.brokking.net/ymfc-al_main....
  • วิทยาศาสตร์และเทคโนโลยี

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

  • @MrFlashgrenade
    @MrFlashgrenade 9 ปีที่แล้ว +3

    I find this is the first video that actually explains in detail what PID settings do. Thank you very much!

  • @tacpreppers4906
    @tacpreppers4906 5 ปีที่แล้ว +12

    Hands down, the best PID explanation I've seen so far, and being a quad/fpv pilot, I've seen many, . Joop, you're an ace, thanks for taking the time to do this. It's on the shoulders of "giants" like you that we build. Keep up the excellent work.

  • @siddhantchaudhary4946
    @siddhantchaudhary4946 5 ปีที่แล้ว +11

    You're the inspiration of millions of future engineers..... Respect

  • @VincentArdolino
    @VincentArdolino 7 ปีที่แล้ว +9

    Your explanation and test models are awesome. The best explanation of what P & I & D actually are as demonstrated with physical models.
    Keep up the good work

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

    Having never flown a quad or any other RC model before I have watched these videos over and over again then took the plunge. I purchased some secondhand 2830 motors from ebay, made up a 450(ish) frame from upvc pipe fitted it with 30A esc's one of which was Faulty ! I used a "Beestore" pro mini which is fitted with an AMS1117 voltage regulator supporting up to 800mA for the controler. I loaded and ran the setup and calibration sketches and all worked fine. This evening I loaded the controller sketch and she flew straight out of the box even with an "odd esc". My activity's were cut Short by the weather but with a bit of tinkering (and four matching esc's) I'm going to have hours of fun. Thanks Joop for all your hard work and the many hours you have put into these videos, your explanations and demonstrations of how it all works are second to none. I just wish I were better at the coding side but I fear age is not on my side. LoL

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

    This video is Excellent! I found it very easy to pick up this complex topic with very little background in the area. Thank you for your efforts!

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

    I was lookign for someone who could teach every bit of coding that was necessary for building the drone . And I am very happy with the content you have posted. Thank you so much.

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

    Thanks, Joop, you have done the best drone tutorials I've ever seen.

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

    Thank you for the build tutorial, after a couple months this semester research project for me just flew a few minutes ago, after some pid tuning frustrations!!!

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

    I'm new to the multirotor business and this must be one of the BEST and clear PID explanation!!!! Bedankt Joop!!!

  • @JuanAriasArias
    @JuanAriasArias 8 ปีที่แล้ว +8

    Very good job. The best tutorial about PID that I have ever seen. Thank you so much.

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

    Thank you for showing the code AND the resultant behavior on the quad. Big help!!!

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

    Excellent explanation. Very good introduction for newbies (and probably more advanced users). Thanks a lot!

  • @avacomputer2819
    @avacomputer2819 5 ปีที่แล้ว +3

    Hello, thanks a lot for this much needed video series!
    The best tutorial about PID that I have ever seen!

  • @manoelguidialvares6903
    @manoelguidialvares6903 4 ปีที่แล้ว +6

    I am a control and automation engineer, who just finished a master in mechatronics. I am a true passionate to control engineering, and since 2013 when I was first introduced to control systems,i have NEVER EVER seen such a good simple explanation to a PID, specially regarding the derivative part. Actually, I only could reason about it by thinking about poles or spectral analysis. But your simple yet extremely clever explanation and demonstration gave me a new light on this subject and gave me a more 'physical' feeling about it, which IMO is essential to an engineeer.
    I also want to build a drone from scratch a a hobby, and your YMFC serie is simply tailormade to my needs. I am infinetely grateful for your contribution, and hope you keep posting such good videos and projects. Keep on the AWESOME work, you are an inspiration !!!
    Best regards !!

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

    Excellent video , going into the practical approach to designing PID loop into mcu ..

  • @samantareboredo7665
    @samantareboredo7665 5 หลายเดือนก่อน +1

    thank you. I just wanted to thank you for the enormous professional work you have done. My drone flies wonderfully thanks to you. I congratulate you immensely.

  • @blrcnc9848
    @blrcnc9848 7 ปีที่แล้ว

    Hi, I am a CNC hobbyist. I am absolutely a novice to Audrino. Your video series is an inspiration for me to explore the audrino world. I have already place an order for UNO after seeing your video. I may not understand everything right away. But your explanation breaks down everything and logical to understand. Thank you so much for putting together this wonderful video series. I am excited as hell to start with this Quadcopter project.
    Thank you,
    Nave

    • @Joop_Brokking
      @Joop_Brokking  7 ปีที่แล้ว

      Thank you for taking the time to write this positive comment.

  • @usamasadiq8991
    @usamasadiq8991 7 ปีที่แล้ว

    You have done fabulous work here and really simple
    and it helped me a lot in my FYP. so hat's off for you thanx.

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

    Excellent tutorial, and the best explanation what (the hell*) is PID or PI on my KK2 board (there is no derivative, or D setting). At first it looks incredible complicated, but in your series of videos - if explainded as you just did - now it look much more clear and easy to understand.
    Thank you very much.

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

    Amazing piece of work, excellent control and response. Well done mate keep it up. ^_^

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

    Very useful videos for those who are building their own flight controller. Special thanks to mention that D gain should be fixed first.

  • @CineSoar
    @CineSoar 8 ปีที่แล้ว

    I've been watching with interest. Thank you so much, for a well annotated sketch, as I will be doing this project with my son and it is a great help, to see each line described so well. When I saw your excel spreadsheet for PID, I decided to duplicate it, so I could play with the values myself. What I found very interesting, was to calculate and graph the PID Output, as well. I found this very useful, to show how changing the gains from 'neutral' (all = 1), to your actual flight values, dramatically changes the PID Output, from something that is dominated by I, to a shape that looks much more like D, with a trendline influenced by I. I also found that the graphing the effects of over and under tuning each value in turn, allows you to see how that behavior exhibits itself in the reaction. There were a few 'aha' moments, as I began to visualize how a large change in value for a certain gain, changes the response profile. Combining this with the airframe behavior (from watching your's and other's tuning videos) is pretty powerful. You might consider a supplemental video, exploring this in more detail.

    • @Joop_Brokking
      @Joop_Brokking  8 ปีที่แล้ว

      Thank you for your reply and that this video was educational.

  • @imranzahoor4407
    @imranzahoor4407 7 ปีที่แล้ว

    I'm really out of compliments this time because every compliment is less worthy than your work. Brilliant work I've ever seen. Thank you so much. Your videos helps me a lot in my final year project of electrical and control engineering.
    bundle of thanks and salutes for you.
    regards.

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

      Thank you for taking the time to write me this message. Really appreciate it!

  • @mrabalone3492
    @mrabalone3492 7 ปีที่แล้ว

    AWESOME ! It helps a lot for my project thanks Joop Brokking

  • @theodordrymonis6728
    @theodordrymonis6728 9 ปีที่แล้ว

    Very nice tutorial !!! Looking forward for the next video !!!

  • @sardarhasseb8330
    @sardarhasseb8330 9 ปีที่แล้ว

    Finally a best video for understanding multirotor pid :)

  • @bogenriederlukas
    @bogenriederlukas 8 ปีที่แล้ว

    Great video. I thought it was gonna be super hard to understand but you explained it soo well :)

  • @ng4559
    @ng4559 9 ปีที่แล้ว

    Excellent job done!!
    Keep it up man!

  • @carlosfreitas4056
    @carlosfreitas4056 4 ปีที่แล้ว

    Thanks for everything. You are brilliant at teaching.

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

    Le devo mucho a esta serie de videos. Muchas gracias.

  • @RSP13
    @RSP13 4 ปีที่แล้ว

    PID is now much cleaner for me. Thanks

  • @ycmgxekwa
    @ycmgxekwa 6 ปีที่แล้ว

    Brilliant tutorial once again. Thank you very much.

  • @joh1ish
    @joh1ish 6 ปีที่แล้ว

    Hey Joop, superb video! I wanted to bring something to your attention about the Arduino servo library. In your videos you went to a great trouble in order to make the refresh rates of the Arduino faster for the ESCs, hence better PID control, but I found that
    with one single change to the Servo header file, you can have the Arduino servo library refreshing at the interval you want. You
    may do this by changing the #REFRESH_INTERVAL value. Simply copy the file to the desktop, change the value, and copy the file back to the servo folder. I am going to check this out with an oscilloscope tomorrow.
    Just wanted to let you know for less headache in the future :D

  • @longplayernet
    @longplayernet 3 ปีที่แล้ว

    Very Helpfull and cool practical examples!

  • @freddiesnijman
    @freddiesnijman 9 ปีที่แล้ว +31

    Excellent! PID, make more sense to me. Besides that I admire your teaching/coaching talent.

    • @Joop_Brokking
      @Joop_Brokking  9 ปีที่แล้ว +3

      Freddie Snijman Thanks for the compliments!

    • @a_aron30490
      @a_aron30490 7 ปีที่แล้ว +5

      You are a brilliant person, your videos really help me out in my computer programming class and our arduino projects

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

    I have learned many many things from you...Thank you.

  • @mcynelly1637
    @mcynelly1637 8 ปีที่แล้ว +9

    The best tutorial about PID that I have ever seen.

  • @originalthehrao
    @originalthehrao 4 ปีที่แล้ว

    you are genius man. great work. thank you so much for sharing your knowledge.

  • @vitaliyd193
    @vitaliyd193 8 ปีที่แล้ว

    DUDE THANKS@!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! AWESOME!!!
    I remember your 1st soundless videos, and my wish to hear your explanations! AND NOW YOU KEEP MaKING US ENJOYING YOUR VIDEOS!!!!!!!!!!!!!!

  • @EdCranium
    @EdCranium 9 ปีที่แล้ว

    Fantastic work. PID explained so even I can understand it. Genius!

  • @robertparenton7470
    @robertparenton7470 3 ปีที่แล้ว

    Thank You for sharing this valuable knowledge.

  • @ranjitroshan3101
    @ranjitroshan3101 6 ปีที่แล้ว

    Thank you very much for this wonderful video.

  • @mcebisisolilo3714
    @mcebisisolilo3714 5 ปีที่แล้ว

    Hi Joop, Thanks a lot for this video, you have made this very clear for me. Your explanation and major part of your code has allowed me to build my own UAV (Unmanned Aerial Vehicle), one problem i am facing is that the structure of my drone is a Hexacopter (runs with 6 motors). For a Quadcopter, the ESC equations are as follows:
    pulse_length_esc1 = instruction[THROTTLE] + roll_pid + pitch_pid - yaw_pid;
    pulse_length_esc2 = instruction[THROTTLE] - roll_pid + pitch_pid + yaw_pid;
    pulse_length_esc3 = instruction[THROTTLE] + roll_pid - pitch_pid + yaw_pid;
    pulse_length_esc4 = instruction[THROTTLE] - roll_pid - pitch_pid - yaw_pid;
    what will these equations be if i have 6 ESCs instead of 4, your assistance would be greatly appriciated

  • @vishnukartha47
    @vishnukartha47 3 ปีที่แล้ว

    There will be precedence issue in the calculation of Derivative out put i think. The video is very informative. Thanks for sharing.

  • @tarekelmanshawy9201
    @tarekelmanshawy9201 6 ปีที่แล้ว

    Please ,enable subtitle option in all your videos to make more people who aren’t fluent in English,understand what you talk about.
    Thanks for efforts.
    Follower from Egypt.

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

    I'm the eight viewer. I must call that a victory and take this opportunity to congratulate you on your wonderful project.

  • @user-tp9sk5rm6t
    @user-tp9sk5rm6t 7 ปีที่แล้ว +1

    Great video !!!

  • @ambujjain212
    @ambujjain212 3 ปีที่แล้ว

    Thanks Joop, for this amazing video series. I have a question regarding the base throttle signal for quad-copter hovering. How do make sure that when throttle stick is in the middle, i.e. transmitting 1500us pulse the drone hovers?

  • @philthayer4087
    @philthayer4087 7 ปีที่แล้ว

    Nice explanation!

  • @hemantjain511
    @hemantjain511 6 ปีที่แล้ว

    Very nicely explained!! Thanks!!

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

    THX EXELENT FINALY une video to show to really do pid in a quad

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

    Hello Joop, your videos are great, I am wondering about one thing though. What do you need total angles from gyro+acc if you only use the gyro angular rate for your PID control? Is using angles and assumming the transmitter stick position inputs desired angle of the quad is a wrong approach?

  • @dhrubajyotigogoi7685
    @dhrubajyotigogoi7685 4 ปีที่แล้ว

    Hello Joop, been following for over a year. Very thankful for such an elaborate guide. My query is are we using position/angle data in the PID controller or is it just the angular speed as the set point. I mean are we controlling roll/pitch speed or the roll/tilt angle. Using speed as the set point my P control behaves a like a D control (just damps motion)

  • @Thomas-qr3bg
    @Thomas-qr3bg 5 ปีที่แล้ว

    Hey Great Work Thanks For Sharing.

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

    VERRY VERRY AWESOME EXPLANATION WOOOOOW

  • @karnikram
    @karnikram 9 ปีที่แล้ว +39

    Hello, thanks a lot for this much needed video series!
    Just want to point out a slight error in one of the equations at 3:36.
    It should be,
    D-output = (gyro - receiver - gyroprev + receiverprev)*Dgain
    and not,
    D-output = (gyro - receiver - gyroprev - receiverprev)*Dgain

    • @Joop_Brokking
      @Joop_Brokking  9 ปีที่แล้ว +9

      Karnik Ram Hi, gyro - receiver is the error and represents the 'e' in the equation at 1:51. The error is always calculated the same. In your line the previous error is calculated different than the actual error.

    • @karnikram
      @karnikram 9 ปีที่แล้ว +16

      Previous error = gyroprev - receiverprev
      Current error = gyro - receiver
      Current error - previous error = (gyro - receiver) - (gyroprev - receiverprev) = gyro - receiver - gyroprev + receiverprev
      Negative sign negates the negative sign.

    • @Joop_Brokking
      @Joop_Brokking  9 ปีที่แล้ว +26

      Karnik Ram Yes, you are right! I should have added brackets in the presentation sheet. +1 for you sir!

    • @warren1192
      @warren1192 3 ปีที่แล้ว

      thank you sirs to both of you for pointing out a bracket error... and at the same time confirming there was an error

  • @das250250
    @das250250 5 ปีที่แล้ว

    Interesting project

  • @TheAdrv
    @TheAdrv 8 ปีที่แล้ว

    Great work !!!, I'm working on my Ardu-quadcopter, I would like relate your project to mine, but I have some troubles, because I'm using xbee modules as receiver and transmitter, is a bit dificult because the transmission of the information is more slow.I just need keep watching your videos for resolve the troubles with my project.
    !Enhorabuena¡...

  • @yusufaksel2516
    @yusufaksel2516 4 ปีที่แล้ว

    Hey! Great tutorial series, thanks. I wondered something, what is the working principle of your test setup at 1:00 ?

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

    as you may know that the maximum output is 400 pid?
    float pid_p_gain_yaw = 4.0; //Gain setting for the pitch P-controller. //4.0
    float pid_i_gain_yaw = 0.02; //Gain setting for the pitch I-controller. //0.02
    float pid_d_gain_yaw = 0.0; //Gain setting for the pitch D-controller.
    int pid_max_yaw = 400; //Maximum output of the PID-controller (+/-)

  • @victoraugusto2721
    @victoraugusto2721 3 ปีที่แล้ว

    Great video my friend I have a question, how you find the bests values to kp, ki and kd constants?

  • @tipiapagopo
    @tipiapagopo 9 ปีที่แล้ว

    this is great!

  • @henk358
    @henk358 6 ปีที่แล้ว

    Verry good thanks great work.thanks for sharing big help

  • @kevinchahine7553
    @kevinchahine7553 6 ปีที่แล้ว

    Spectacular

  • @rje242
    @rje242 7 ปีที่แล้ว

    Hey Joop, I really appreciate this video. I've built my quadcopter and would like to use your formula for tuning my PIDs, however, I'm using Cleanflight as my program. I'm wondering if you or someone could offer ideas of the equivalent rates to use on Cleanflight to start the tune as you did in this tutorial? Thanks

  • @arashabdi4052
    @arashabdi4052 5 ปีที่แล้ว

    hi, i really appreciate about the all tutorials. according to your tutorials, implemented a Drone which flies nice, but when it takes off, immediately stats to go front or left by itself and i don't know why.
    another question is : if i am going to add position controller before rotational PID, how should i measure status of Drone while flying? MPU6050 is a good idea or GPS with arduino UNO?
    thank you so much.

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

    Hey Joop, my quad is yawing violently when I use the pid-i as in your code
    -> pid_i_mem_pitch += pid_i_gain_pitch * pid_error_temp;
    The i - gain seems to happen even when the quad is stationary and there is no change in angle!
    But when I changed it to -> pid_i_mem_pitch = pid_i_gain_pitch * (pid_i_mem_pitch + pid_error_temp);
    It worked fine. Have I made an error elsewhere in the code which could have led to this?
    Thank you for the amazing videos! I have learnt so much from them.

  • @kevinchahine7553
    @kevinchahine7553 6 ปีที่แล้ว

    Very amazing

  • @nelsone.1472
    @nelsone.1472 5 ปีที่แล้ว

    Hi good job,and very good proyect, I have a question about the battery, in the program you put esc_1 += esc_1 * ((1240 - battery_voltage)/(float)3500) but whas does mean the 3500?

  • @cafersas
    @cafersas 9 ปีที่แล้ว

    by the way incredible videos

  • @suhasrx100
    @suhasrx100 8 ปีที่แล้ว

    First of all, Great Video Tutorial Series Joop, Hats Off!!!!!
    What I noticed is, you have mounted the gyro underneath the right arm [During PID demo 5:24...], will correction be much more accurate if gyro has been mounted towards or at the center.

    • @Joop_Brokking
      @Joop_Brokking  8 ปีที่แล้ว

      Thanks for the compliment! The gyro only detects angular motion. Perpendicular motion will not affect the gyro's output. The best location for mounting the gyro is away from vibrations. This usually means in the center of the frame.

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

    Great video! Can I ask why the roll limit is set to 400? Is this an arbitrary number?

  • @ubotics27
    @ubotics27 6 ปีที่แล้ว

    Great video Sir Joop. please I wish to know ,Where is the receiver signal from ?? I'm currently working on a wind pendulum project and I hope to adopt your PID lesson to balance the pendulum at center within the shortest time given , the pendulum has 4dc fans attached to its 4sides .how can I apply your lesson? Thanks for your help in advance

  • @farhantandia7190
    @farhantandia7190 6 ปีที่แล้ว

    Oh thanks for explained.
    In my case, my pwm output from pid calculation is responsive but when it write to esc ,the bldc response is slow(its like have some delay on it) so my quad can't stable in any pid constants that i tune..
    Please help how to make my esc reponse fast according to yaw and pitch angle with no delay ?( thanks.
    Im using serial monitor to make a command.
    I just test my quad in quad test stand.

  • @ranjitkumar-rm2it
    @ranjitkumar-rm2it 7 ปีที่แล้ว

    Thankyou for help...

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

    tHANLS A LOT FOR SHARING YOUR KNOWLEDGE !! COULD YOU PLEASE SHARE WITH ME , THE EXCEL SHEET ? THANKS

  • @ratnaraj20
    @ratnaraj20 7 ปีที่แล้ว

    Thank you very much :)

  • @qmu2
    @qmu2 7 ปีที่แล้ว

    Hello +Joop Brokking
    how u decide to use this equation for the complementary filter? and why 80% 20%? and why do you divide the gyro roll output by 57.14286?
    why did you subtract 8 from 500? and why did you divide by 3 at 10:35 ?
    thanks

  • @alaaahmed2008
    @alaaahmed2008 7 ปีที่แล้ว

    Exellent video .. can you tell me please how i can do it the same projekt in arduino due and trought I2C, have a problem with the time interrupt . thanks

  • @alanmfls
    @alanmfls 6 ปีที่แล้ว

    Hi Joop! Thanks for the videos, they helped me a lot...
    Could you send me the arduino code you used for the system you used only 2 motors?

  • @mclay2038
    @mclay2038 7 ปีที่แล้ว

    Joop, great video. I've noticed in some of your other videos that you have very good altitude hold. I was wondering what your process is for tuning the PIDs for altitude hold? Thanks.

    • @Joop_Brokking
      @Joop_Brokking  7 ปีที่แล้ว

      The altitude hold test is form this video: th-cam.com/video/oc8Gv61bfvU/w-d-xo.html
      I'm using my own algorithms to get is stable like that.

  • @wwilliams3270
    @wwilliams3270 8 ปีที่แล้ว

    Thanks for the Videos. Has made things much more clearer to understand.But I was wondering, could I use the standard Servo.h library to use the ESCs? I checked the cycle rate and its about 3000 Microseconds to complete the Loop once, with the gyroscope, PID calculations and a few more LED signals. Is that too slow?

    • @sandervanleeuwen9395
      @sandervanleeuwen9395 8 ปีที่แล้ว

      +W Williams 3 ms is not slow. This means that your Arduino corrects it position 1 / 0.003 = 333 times in one second. This is more than enough for a steady quadcopter, which needs at least 50 cycles. Sorry, I don't know enough of the Servo library to give you a heads up.

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

    hi! joop this series has inspired me to build my own arduino quadcopter, however i've made some modifications to the code. i am using a mpu6050. i was thinking, is it possible to use yaw ,pitch and roll angles from the mpu6050 and convert the reciever inputs to the same and then calculate the pid.
    like when the pitch stick is at top the reciever input becomes 15degrees and the gyro pitch angle is taken as the current position.
    thanx

    • @Joop_Brokking
      @Joop_Brokking  8 ปีที่แล้ว

      If you need degrees you also need to use the accelerometer. You can read more about it here:
      www.starlino.com/imu_guide.html
      Please note that the YMFC-3D version 2 supports the MPU-6050.
      th-cam.com/video/CTtLPeJPbXY/w-d-xo.html

    • @shubhobanerjee311
      @shubhobanerjee311 8 ปีที่แล้ว

      Thanx for the reply, i am already able to obtain the yaw pitch and roll angles with the help of example arduino code.

  • @lazzday1
    @lazzday1 7 ปีที่แล้ว

    Hi Joop! Amazing videos! So helpful! I have one problem though...
    I am trying to adapt your YMFC-AL code for autonomous flight, so no radio input! I have built a test stand like yours in this video to demonstrate the auto-level.
    I can't under stand how to adapt the setpoint for the PIDs to keep the quadcopter level in hover, as my PID input is angular motion, not angular position. When I try to implement my code on my test stand, the PID stabilizes the axis to the point where I push it, but doesn't auto-level! How do I covert the angular motion data to an angular position so I can auto level?
    Sorry if this doesn't make sense!
    Thanks

    • @Joop_Brokking
      @Joop_Brokking  7 ปีที่แล้ว

      Watch this video: th-cam.com/video/DYpHB-LfloI/w-d-xo.html
      It explains how to get a simple auto level feature.

  • @dennisllante
    @dennisllante 7 ปีที่แล้ว

    Been learning a lot from your videos, what modifications should i make if i want to adapt the code for a tricopter project? thanks! Also, are you releasing a tutorial for the telemetry module you made? thanks!

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

      If you want to make a tricopter you need to send the PID output of the yaw to the servo. The motors are mixed with the roll and pitch PID as a triangle, not a square.

    • @dennisllante
      @dennisllante 7 ปีที่แล้ว

      Beautiful! Thank you so much!

  • @alanmfls
    @alanmfls 6 ปีที่แล้ว

    Hey joop, thanks for the videos, helped me a lot!!
    Do you know how can i get the PID gains with MATLAB? I already have the transfer function of the system

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

      I never used MATLAB so I really have no idea.

  • @munkhjargalnymsuren5543
    @munkhjargalnymsuren5543 7 ปีที่แล้ว

    i have build my first quadcopter f450. i did all calibration in mission planner and ESC. but some of moters rotating faster than others. do you know why?

  • @nachocortizo3321
    @nachocortizo3321 4 ปีที่แล้ว

    @Joop Brokking , first of all: great content! this is very informative!
    The generic PID definition uses DeltaTime as a multiplier for the I and D terms, but you seem to not use it... Is this because your feedback variables are in º/s. ? In my case I´m trying to simply control the Pitch/yaw/roll (so plain º).
    Thanks.

    • @Joop_Brokking
      @Joop_Brokking  4 ปีที่แล้ว

      The delta-t is fixed in the loop time of the main program loop. For the YMFC it's 4ms. This way I don't have to take the delta-t into account.

    • @nachocortizo3321
      @nachocortizo3321 4 ปีที่แล้ว

      @@Joop_Brokking Ah yes, I was looking through your code and makes sense! Thanks.

    • @Gagandeepsingh-uf2un
      @Gagandeepsingh-uf2un 2 ปีที่แล้ว

      @@nachocortizo3321 had u finished your Quadcopter project did it ran well?

  • @electronicsenthusiastprade3067
    @electronicsenthusiastprade3067 4 ปีที่แล้ว

    Nude job brother this is very use full for me to learn more about drones and adruino

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

    Hi Joop,
    on the STM32 pid software, I don't understand the following correction ( you don't speak about it on this video):
    roll_level_adjust = angle_roll * 15; //Calculate the pitch angle correction.
    pid_roll_setpoint -= roll_level_adjust; //Subtract the angle correction from the standardized receiver roll input value.
    How have you calculated the value of 15 ?

  • @jackbosshard4502
    @jackbosshard4502 8 ปีที่แล้ว

    Joop Brokking, thanks for your interesting presentation. Due you think that the Arduino Due with a higher clock frequency could run your code without to much adaptations?

    • @Joop_Brokking
      @Joop_Brokking  8 ปีที่แล้ว

      +Jack Bosshard I have no idea. I never used a Arduino Due myself so I can't give you any useful advise.

  • @taoufik-ue5ed
    @taoufik-ue5ed หลายเดือนก่อน

    thank you

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

    Your videos are awesome! I myself built the YMFC-AL quadcopter and it works well.
    The only problem I am facing is that when I change the value of I, the quad tilt in one direction and I have to use subtrims to level it. It works perfectly fine with I=0;P=1.5 and D=15. Can you guide me how can I tune the value of I to make it more stable. Even at I= 0.01 , the quad tilt in one direction. Waiting for your reply.

    • @Joop_Brokking
      @Joop_Brokking  7 ปีที่แล้ว

      You can use the sliders on the transmitter to level the quadcopter. Make sure that you don't move the quadcopter at startup.

    • @diegochaucagallegos9173
      @diegochaucagallegos9173 7 ปีที่แล้ว

      The same thing happens to me ... always when starting starts to the side, and it is difficult to stabilize it, since the position to self-level will always be to one side

  • @yogendrakumarpatel8369
    @yogendrakumarpatel8369 4 ปีที่แล้ว

    Can you make a video on concept of choosing pitch and diameter of propeller of drone

  • @manoelguidialvares6903
    @manoelguidialvares6903 4 ปีที่แล้ว

    Btw which tuning method did you use ? I do not know them by heart since I mostly use matlab and simulink in my job, but it looks like those Ziegler-Nichols, Angstrom, AMIGO tunings...

  • @avacomputer2819
    @avacomputer2819 5 ปีที่แล้ว

    Thanks!!!

  • @shubhobanerjee311
    @shubhobanerjee311 8 ปีที่แล้ว

    hello again joop. first of all i'd like to thank you for this amazing video series and your active responses.
    you have inspired me to build my own flight controller and i am almost done, but stuck at setting the pid.
    setting the d gain first, didn't work for me as i have a 360mm frame and being a novice it's difficult for me to obtain the point of vibrations.
    if i try to set the p gain first the quad starts to oscillate and overshoot at a low frequency with the amplitude becoming higher every time.
    i am guessing this could be a result of the pid_output_pitch =400 being high as my escs are 50hz as compared to your 250hz escs.
    so do u think the pid_output_pitch should be 400/80 in this case because of a lower refresh rate in order to prevent overshooting?
    thank you

    • @Joop_Brokking
      @Joop_Brokking  8 ปีที่แล้ว

      Are you running a 50Hz refresh rate from your flight controller program? Most ESC's that are designed for multicopters will work fine with a 250Hz refresh rate. If you use ESC's designed for planes it will not work because they are to slow.

    • @shubhobanerjee311
      @shubhobanerjee311 8 ปีที่แล้ว

      +Joop Brokking i am running a 50hz from the flight controller. as per my understanding many escs flashed with blheli or simpnl firmware run at 250hz. however many escs still work on 50hz. i'll have to buy new escs for 250hz ...but that wont be feasible for me now.

    • @shubhobanerjee311
      @shubhobanerjee311 8 ปีที่แล้ว

      +Joop Brokking blheli or simonk firmware*

    • @Joop_Brokking
      @Joop_Brokking  8 ปีที่แล้ว

      Do you have an internet link of the ESC's you are using?

  • @odinnfpv8238
    @odinnfpv8238 7 ปีที่แล้ว

    on my revisit playlist when I'm trying to get the right prop to the right multirotor. explained a lot. thx.... noob from the start tho :P

  • @talhayousuf4599
    @talhayousuf4599 6 ปีที่แล้ว

    Excellently explained but where do those 'dt' terms go? (as in pid formula) Don't you need to multiply with the time step in case of integral......?

    • @Joop_Brokking
      @Joop_Brokking  6 ปีที่แล้ว

      The program loop is fixed to 4ms. That is why you don't include time as it will not change.