9-Axis IMU LESSON 26: Understanding PID Control systems with Arduino

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.พ. 2020
  • You guys can help me out over at Patreon, and that will help me keep my gear updated, and help me keep this quality content coming:
    / paulmcwhorter
    In this lesson we show how to do a control system where we feedback a signal to the servos which is Proportional to the error. This allows a much faster response than our earlier system which was just based on a constant feedback value:
    OK, this is the gear we are using in this lesson
    Adafruit BNO055 IMU Sensor:
    amzn.to/2lbwsnc
    I strongly suggest picking up an arduino nano, since it can plug directly into the breadboard, making a portable system more practical. You can pick one up here:
    amzn.to/2WXTC2M
    You Will Need Two of These HiTEC Servos
    amzn.to/2FfOITq
    NOTE: I am no longer recommending the MG995 four pack of servos, as I have recently gotten several bad batches, so have moved to the HiTEC linked above.
    Pan Tilt Brackets:
    amzn.to/2tigewO
    PC Board Power Supply (If you have the ELEGOO Kit, you already have this)
    amzn.to/2FdCASK
    Good Wall Wart Power Plug for the Power Supply (if you dont have one)
    amzn.to/2SM2EMH
    Bundle of Extra Cables
    amzn.to/2MLH4UZ
    [Disclosure of Material Connection: I am a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.com. This means if you visit the link and purchase the item, I will receive an affiliate commission. Regardless, I only recommend products or services I use personally and believe will add value to my readers.]
    #BNO055
    #Arduino
    #PID
  • วิทยาศาสตร์และเทคโนโลยี

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

  • @rbonari
    @rbonari 4 ปีที่แล้ว +42

    Hello Paul,
    This was a great lesson on PID Control in an actual real life application !!!! Your expertise in all things algebra and calculus makes you the perfect person to teach this subject and you did a masterful job. Your mastery of arduino and math can not be beat on the internet and you explain these difficult subjects in a manner that we can all understand !!!!! Again, great job !!!!! I do hope this series continues on and maybe a self balancing robot is in the future !!!!! You are again, the very best on youtube !!!!!!!!!!! Rick

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

    Greetings Paul
    Just wanted to let you know that I have watched all of the videos in this series. (Some more than once -#21).
    You are blessed with the skill of simplifying the complex. Few presenters do this as well as you.
    I have also watched most of the cad videos, oh heck... I've watched MANY of your videos. 95% of them I have watched start to finish.
    I have 30+ years IT experience, but I have learned something from every video.
    God bless you and yours.
    Carl

  • @dcpowered
    @dcpowered 3 ปีที่แล้ว +18

    Please make more PID project videos!! This is the stuff that we want to see!!

  • @paulhoshovsky877
    @paulhoshovsky877 11 หลายเดือนก่อน +2

    Thanks for the thorough presentations. You requested feedback in Lesson 26 for my configuration. I used the MPU6050 with the DMP and two HITEC HS-325HB servos. The values are K1=0.4,=, k2=30 and K3=0. These values provided a reasonable response. I discovered that using a time delay of 50 ms was the fastest time for the UNO and the MPU6050. And yes, as you said, it would be nice to rapidly converge to a stable response. It took me some time. I discovered that my PITCH error function had to be subtracted (rather than added) to the servo value. This is due to to my geometry. Thanks!

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

    You've taught me so much about Arduino. Thank you so much for your videos.

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

      Wow, thank you so much! Really appreciate the support. Hey, this IMU series is probably my favorite series I have done, but pretty much not watched by most people. Glad someone did it and learned from it.

    • @cruizn
      @cruizn 2 ปีที่แล้ว

      @@paulmcwhorter My pleasure; I should have done it sooner. I've learned most of what I know about Arduino from you, and I appreciate the huge commitment and effort you put into your content.
      I came upon this series looking to build a stabilized platform to mount a Starlink on a friend's boat, so I'll also need to include yaw in the sketch. Wish me luck 😉

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

    This was by far THE BEST PID lecture I've seen on entire TH-cam! If I were to pin point what makes Paul a GREAT TEACHER is that
    teachers should always, always build the topics, that they're teaching, "From Scratch"
    You do exactly that.

  • @itsabuscus1619
    @itsabuscus1619 3 ปีที่แล้ว +11

    It's stuff like this that has my jaw on the floor. Wonderful explanation, sir!

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

    I watched the whole video!
    I actually found written PID controller on every second arduino video, so I wanted to know what it actually is.
    I searched and found YOUR video when scrolled down a little bit, and I was relieved to see that. Thanks for your spectacular videos, hope I can learn from you as your student in future.
    Thanks again, Love from India.

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

      That's awesome!

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

      @@paulmcwhorter Thanks sir,
      You reply means a lot to me☺☺

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

    Sir, you take seemingly complex topics and you break them down in plain language such that anyone can understand. You are a gift and I appreciate your contributions to knowledge.

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

    Absolutely amazing detail in this series Paul, BRILLIANT, and so interesting, thanks so much for creating and posting.

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

    This is literally the best PID video I've ever watched. Very lucid from the beginning and I love that. If I could double like I would. Brilliant!

  • @amosfalcon6190
    @amosfalcon6190 2 ปีที่แล้ว

    It's the best series of lessons I ever learned with coding in practice, especially is your great sharing with PID ! Hope you have the lucky with your kindness. Big thanks for your teaching with intelligent experience, Professor McWhoter.

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

    Paul,
    I have really enjoyed this entire series! I actually understand most of what you have taught (quaternion numbers are hard ). I really enjoyed this long series , hopefully you'll have more .Thank you.

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

    Watched all 26 lessons and learnt a lot. This PID lesson has been very beneficial as drone configuration include a PID setup and I really did not understand its affects on a drone and this lesson has been very beneficial. This real world application was also very beneficial and again I want to thank you for your efforts in making these courses.

  • @user-zg2kr6ph9z
    @user-zg2kr6ph9z ปีที่แล้ว

    as someone studied control theory i like how the video presents the PID in a very beautiful and easy to grasp way

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

    I feel that I understand PID for the first time as a result of this video. Thank you for explaining it Mr. McWhorter.

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

    Paul, excellent work thank you. I like the way you develop the project from first principles with the engineering and maths into a coherent application.

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

    This IMU course really complements most of what i need to progress in my projects! Thank you Paul!

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

      Thanks! Really appreciate the kind words and the support.

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

    Hi Paul ! I went through the 26 videos, incredible job ! My plateform works very well with the coefficent you gave. Thank you very much for sharing your expertise. Looking forward to watching new series of your tutorials. Big support from France.

  • @maximem.1117
    @maximem.1117 4 ปีที่แล้ว

    Excellent course, i never really understood what integrals were useful for in 5 years of engineering school and in 2mins you made me understand. Thanks and please continue this great series

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

    Hello Mr. Paul, this lesson is really working great. I always enjoy your channel please stay strong and provide us with you great teachings. Am Kelvin Cruickshank from Ghana. All the best sir! 👍

  • @teamdrona6671
    @teamdrona6671 2 ปีที่แล้ว

    I have gone through the whole course, and a huge respect to the teacher for providing such kind of gold for free. Just love you sir..... And one thing, I am ready with a huge mug of ice cold coffee. 😀😀

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

    Hello Mr. McWhorter, I really enjoyed this series of lessons and I am now off to start the Jetson NANO lessons. I can't wait to get started. Best wishes.

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

    thank you. I have watched all the 26 lessons. again, thank you for all your expertise.

  • @darklightining6412
    @darklightining6412 2 ปีที่แล้ว

    Thanks, I this is my first time to understand PID controller practically. (I watched it all )

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

    This was an awesome series

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

    I would love to see more on PID control! I can see how we can use this exact system to make a self balancing 2 wheel robot, and then use a PS3 controller and program Potentiometer offset to set the center of balance off to move it forward and backwards. I'm thinking I might take my Car apart from the "Intro to robotics" lessons I followed you on and building a self balancing 2 wheel robot! And set it up to run on a PS3 controller! its got everything I need including blutooth.

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

    Excellent teacher! truely understand PID control for the very first time! Big Thanks!

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

    really enjoyed the video, it's maybe a bit slow but it kinda works in its favor, you made it very understandable and you don't need to be 100% concentrated to understand the idea, thank you for helping the maker community and making excellent quality videos

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

    Thanks for sharing your experience and knowledge, I personally learned a lot just by watching

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

    These videos are great! I downloaded all 26 lesson's learning lots, your awesome!

  • @Bhanuprakash-xl6ti
    @Bhanuprakash-xl6ti 2 ปีที่แล้ว

    Initially the concept of PID was all too complex for me to comprehend or even to start working on. Your Brilliant video gave me all the 100s of hours of understanding I can get by reading... Thanks a lot to also combine Theory with Aurdino! lot of stuff on TH-cam miss practicality aspect. Your video is TERRIFIC!!! THANKS A TOONE

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

    A bunch of this is over my head, but you provided enough information for me to understand it after I hear this a couple of times. Thank you very much.
    If I understood this series, you described two sets outputs.
    1. How to use the various sensors as counter-influences to each other so that you can counter sensor drift and get much better results for staying on course or more accurately measure a chance.
    2. How to use the sensor outputs to drive and tweek the calculations that drive the servos.
    I would appreciate knowing what I missed, if this summary missed the boat.
    Thanks again

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

    Many thanks for explaining it to me in a way I can understand!

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

    This was an excellent explanation of pid control.

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

    Boom!! Made it till the end !! Thank you so much for the wonderful series.. you are the " most excellent" teacher !! God bless you!

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

    Great series! Followed every step, coded and built the project. This was somewhere between watching art and playing chess. Thank you!
    On lesson 26 I quickly stripped out horn and need the better metal servo gear to attach to metal horn on bracket. I lowered k1 and k2 to keep second from striping out.

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

    A most excellent PID Arduino math and programming lesson. The PID calculus is a great learning tool for real world examples. 🐬 Thank you.
    A very fascinating subject, Past, Present and Future Trends in the Implementation of PID Control Algorithms. I need to do all these 9-Axis lessons to compliment the RPi Pico lessons.

  • @skfalpink123
    @skfalpink123 2 ปีที่แล้ว

    Many thanks for the fantastic explanation of EXACTLY what PID actually is and does!

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

    That was amazingly well explained and demonstrated.

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

    Hi Paul,
    I went through the lessons on the self-levelling platform. It was informative and helped me to remember the maths that I haven't seen for years.
    I created a model vehicle (tractor) with meccano and arduino, I then used the roll correction component to ensure that it stays level whatever the terrain.
    Thank you for the video series.

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

    Very well explained!
    Thank you very much, sir!

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

    Hi Paul,
    Yes, I am following your great jetson nano and your new arduino series. They are absolutely the best tutorials ever as is your 9 axis imu tutorial !!!! One possible continuation lesson would be to show how to do a compensated compass showing the results using vpython to show a graphic of heading (north, east, south, west). I think this would be a popular lesson or two. You do awesome, great work and the math and the way you teach it is by far the best I have ever seen anywhere !!!! Take care and GOD bless !!!!! Rick

  • @Sam-dv3vt
    @Sam-dv3vt 2 ปีที่แล้ว

    I am crying out of happiness, thanks a lot Paul

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

    I wish that this series would have continue... I was learning this in my school 13years ago, and didnt understand anything (I admit that i wasnt really also interested). Now this is my hobby... Really like your graphical explanations. Keep up the good job ;)
    Went thrue the lessions without BNO055 (just couldnt wait 1 month till it gets here). Will go thrue some of the lessions again with my BNO055, when it comes :)

  • @jnecece
    @jnecece 4 ปีที่แล้ว +3

    Hi Mr. Paul. I always like your presentation and as always it was one of the most excellent tech video. I enjoyed watching it and I have watched it till the end.
    Also, I would like to make a suggestion that if you could add potentiometer to set constants for each PID controller, in fact it would be a good way to incorporate your lesson 10 on it.

  • @shadiedalati3662
    @shadiedalati3662 2 ปีที่แล้ว

    As always amazing explanation of error correction.

  • @XtremaXRK
    @XtremaXRK 2 ปีที่แล้ว

    great explaination sir. Respect from India!!!

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

    Paul this was great I now understand how to program a PID in a system thank you now we need to figure out how to do it in the stm32

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

    Nice one P....watched til the end. The post here re the Pots for adjustment is interesting....Stay well buddy and thanks

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

    Loved this series, thanks a lot!

  • @hc8714
    @hc8714 2 ปีที่แล้ว

    hope you return this series about Integral clamping and more optimizing aspect related to operation introduced instability. Thanks!

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

    WOW !! I think I finally got it. The practical application of the PID is head and shoulders above any other explanations I have seen previously. Not doing the mechanical with you but i assume we will be doing something similar with our AI lessons. (Im still on ROI lesson there). I really appreciate the effort you make to help us understand some of these more complex concepts. Great Lesson! Thanks.

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

    absolutely amazing series thank you thank you thank you!!

  • @YatendraSaraswat
    @YatendraSaraswat 2 ปีที่แล้ว

    Thank you Sir,
    This was very informative & helpful

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

    Hello Mr. McWhorter, such another fantastic tutorial of yours. I have learned a lot from your fruitful tutorials.
    Based on my understanding, my personal experiments and as I saw in the first of this tutorial that the system need to be leveled first then you re-start it and it start to re-level/correct itself, otherwise it would lost its balance condition.
    I believe that issue is because while the MCU and hence the PID equations is running first so it is already calculating the error and the correction value which is the (rollServoVal), but the actuators are off so the error is still there and accumulating till very very large quantity in either - or + direction. Then when we turn the actuators on then the system will start misbehave due to the accumulated error correction value.
    So, I have solved this issue by adding the following simple conditions:
    if(rollServoVal< 0) rollServoVal= 0;
    else if(rollServoVal> 255) rollServoVal= 255;
    This has helped me to limit the corrections values according to the minimum and the maximum values. However, I am stand to be corrected if I miss something and many thanks again for this fantastic tutorial.

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

    I see you with all the notifications, I appreciate it and admire you work, I will join as soon as I complete my website development at moment, but today I had to this wonderful episode.
    Greetings from Tanzania 🇹🇿

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

      Wonderful that we have a student in Tanzania. I was there one time, just just as a stop on my way to Kenya. Would love to visit again one day. It is a beautiful country with wonderful people.

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

      Paul McWhorter, yes one time you said that sir, I'm your fan since I saw your old arduino Playlist, and you made me build my simple incubator using arduino.
      Please, don't hesitate to visit my country, sooo much to see here prenty of attraction.
      I reside in Bagamoyo (a historical place, if you're into history too)😉.
      Keeep the good work sir, hopefully one day I can learn Raspberry Pi from you too.
      Greetings from Tanzania 🇹🇿 🙋🏾‍♂️

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

    Quality education in free.

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

    Best teacher as always

  • @user-ey9kt4fw7j
    @user-ey9kt4fw7j หลายเดือนก่อน

    Power plants typically use PI (no D); manual tune is usually a Notch tune where P and I are increased incrementally until oscillation occurs then backed off until oscillations cease plus a little more since both P and I increase the overall loop gain. I is necessary to run with no offset from setpoint; D is usually unstable for a large/fast process upset and therefore not used. An ideal quarter-damped response to PID control is unnecessary if stability is lost.

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

    Hello Paul,
    thank you so much for all the excellent tutorials you are making especially the one regarding Control implementation. if it is possible could you make a video on how to set up an LQR control using Arduino or pi

  • @hc8714
    @hc8714 2 ปีที่แล้ว

    just want to let you know, I do not have all these component, so I used the same concept to work on a oven instead. All good. I learned PID!

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

    Thank you for your excellent teaching. I have used your series on the BNO055 to begin to develop my own system that is somewhat different from the examples you provide. I am trying to figure out how you have gotten the information on the use of the BNO055 that you have--can you share how you have learned it? In particular, I'm trying to understand how to set the operating modes and how to save and write calibration parameters. But I'm not good enough at reading the library file to figure it out.

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

    Really nice, thank you,
    by the way, is there a method to calculate the best PID parameters for these, like the ziegler nichols method or somthing else ?

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

    Thank you Paul.

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

    Absolutely amazing!
    After learning this course I tried to implement this knowledge in building a diy cubli but I couldn't figure out a way to relate the pid values to the pwm inputs to the DC motors. It would be great if you could help me out in understanding that relation. Thank you so much for your amazing courses!

    • @moah8593
      @moah8593 2 ปีที่แล้ว

      Same problem I have
      Have you got anyway to deal with such motors?
      Please! Let me know because I gotta get my project done in few weeks

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

    Love your videos

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

    Thanks you so much i really like this video.

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

    This is great Paul! Im working on a project where I need to mount the IMU in the vertical position how does this change things?

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

    Brilliant - thank you!

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

    Hi Paul. Watched to the end 😇. I don’t understand why you alter more than one parameter at a time whilst tuning the system. Nice project keep it up.

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

    Brilliant video and videos in general. Your the best source of information I have in terms content type, detail and teaching style. I probably owe you a strong coffee or two at this stage. Thanks. On another note.... I wonder if the cables being connected causes additional difficulty in tuning the systems parameters. I think those constants are intended to act as a substitute for a mathematical model of the platform and ancillaries plus the wires. Perhaps the wires add an element of choas i.e the system itself is constantly changing not just the error. Tracing the wires closer to the pivot point of the platform may help??

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

    Great video!

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

    Hello Paul,
    I was curious about the temp values reported by the bno055 imu sensor. After looking at the data sheet for the sensor it appears that the temperature being reported is the gyro or accelerometer temps depending on selection of the gyros or accelerometers in the temp register. This would make sense because on this sensor you would be more concerned about the temps of the gyros and accelerometers rather than the surrounding ambient temperature. This also explains the elevated temps compared to the surrounding ambient temperature. There are many other sensors that we can get the ambient temp if we need it for whatever reason. Also one can select between degrees C and degrees F by manipulating the temp register however this is an easy conversion via software.

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

    Sir, thank you for your tutorial. I would like to know whether you have/will make any tutorials about filtering methods for position and orientation estimation such as Extended Kalman Filter and etc.? And whether you could describe in your channel how to use the Infos provided in the specification of each IMU to correct employ such filtering methods?

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

    You are the greatest!!!

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

    HI Paul ,
    Thank you so much for the wonderful series. I am doing project( 6 dof self balanced platform )can I use this code and wiring to do my project? how many dof in this project?

  • @nipunkulatunga4135
    @nipunkulatunga4135 2 ปีที่แล้ว

    when calculating rollErrorArea, should it change as (rollErrorArea+rollErrorSlope*dt)??

  • @moah8593
    @moah8593 2 ปีที่แล้ว

    Can I make that pid calculating method general for any different systems?
    Is it possible?
    All in all, appreciated.

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

    Hi sir, thank you for your work I'm really appreciate it, I have a question if I can use 6 DOF IMU sensor in this project or not ?

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

      No, you really are going to need the sensor I show in the lessons. Other ones will not give you the needed outputs.

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

    Hello Paul. Great explanation and more importantly very well explained implementation in code. Just a quick query, how to decide the sampling rate of the PID? What I mean is, how to decide if a uC is fast enough for a particular PID implemantation.

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

    beton yetmez be reyiz adamsın

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

    best channel ever

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

    We call this guy a "MASTER"

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

    49:39 - Please, use "Find and Replace" on a selected code chunk, guys. It will save you a lot of time.
    Probably he knows that trick, but choose to be moore didactic.

  • @Jules-ki9nx
    @Jules-ki9nx 4 ปีที่แล้ว

    What do you think of the new BNO080? Any chance you’ll try implementing it into a project? It’s supposed to be a lot better then the BNO055.

  • @Adi-lv9bo
    @Adi-lv9bo 4 ปีที่แล้ว +1

    Nice project, will be more smooth and fast with brushless motor or that is arduino/sensor limit? I ask for a camera stability project.

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

      I don't see that brushed/brushless would make a different. Paul is using servos, but maybe a stepper motor would be more suited to your purpose?

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

    For the self-levelling platform, I’ve been using LFD-06 Servos (LOBOT) for this ‘most excellent’ series & found that the +/- signs for my pitchServoVal’s seem to be the other way around in Lesson 24).
    For this final lesson - the PID control doesn’t work : ( Sporadic, random movements from servos. Anyone have any idea how to fix? I’d like to learn why, before I just buy the Hi-Tec ones Paul recommends.

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

    Hello Paul, was that the last video in this series? It has been great. Thank you.

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

      Yes, the last one. You could always go check out the series on Artificial intelligence on the Jetson Nano.

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

    Thank you sir

  • @m.samaha4708
    @m.samaha4708 3 ปีที่แล้ว

    I have some ideas. is it possible to make PID for PID. If the first PID results are not accurate as I wanted. but it gives me good results. however, I still need better results can I use PID for a second time.
    the second question, Does the leveling system work at 360 degrees?

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

    Hello, if I may ask, what is the reason to using PID with servos? If those are coming to set value on their own and they won't overshot as they already have their own PIDs inside? I can understand with normal motors, with drones that need to vary motor output etc, but with servos?

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

      at 56:30 they are overshooting - maybe because you try to control servos like normal motors while they are fully capable to get to correct position on their own?

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

    Paul, Great video. I'm watching your Jetson Nano series and plan on following up with some of your other videos.
    I've previously built an arduino IMU with PID for a self balancing robot. I found the PID control to be difficult. You provide a great explanation here, so maybe I'll go take another look at that project and see if I can get it to tune better.
    I was surprised you used the same k values for both axes. You've got very different angular moments for each axis because of the rectangular shape of the dev board. You did get a reasonable tune with just one set, so that was probably best for keeping the video clear. It did seem as if the ringing was different in the two directions. What do you think?
    PID tuning can be very tricky and I never found a great resource for developing tuning strategies. I thought your explanation will help develop better strategies.
    I was also wondering if you've thought about leveraging the AI/ML capabilities of your two Jetson boards to build an auto - tuner for the PID? You've focused on using them for machine vision, which is probably what they are optimized for, but they'd probably also be great at a task like this.
    It might be interesting to see that running to control your pan/tilt alongside the face tracking and other cv apps you've implemented.
    Finally, the self balancing robot is a challenging project to build from first principles. That would be an interesting extension of this series or potentially a good future series for you to consider.
    Thanks, and keep making this great content.

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

      The other thing going into this is how tightly my fingers hold the unit, and how much my wrist and fingers become part of the system. A better test would be to more rigidly mount it instead of holding it. A perfectly tuned system could ring, if there is play in my fingers and wrist. Tuning these things is more of an art than a sceience.

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

      @@paulmcwhorter I was thinking the same thing about the momentum and the ringing imparted by your brain trying to stablize your hands. I too was thinking about building a heavy jig to act as a base for the servos. That would then allow you to minimize the movement that the servos would impart to the base. Also it could also allow you to better control the input to the system and to make them more repeatable. Repeatability of the inputs is imports when tuning the feedback constants. I also really like Joe Limber's suggestion of using a Jetson Nano and a neural network to tune the constants. Seems like a natural use of a Nano and Neural Networks.

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

    Hi Mr. Paul, Thank you very much for your excellent explanation , I really enjoy learning from your lessons you are great teacher.
    I have Two questions in this lesson if you do not mind please:
    1. You have set Integral part as accumulating value in PID so you add the old "rollErrorArea" with new " rollError*dt" . my question : As we are actually adding it every time to the out put signal (rollServoVal) , , and in the same time adding the old output signal (rollServoVal) to the new "rollServoVal " why we still need to add "rollErrorArea" to new Integral error every loop ?? (I am little confused we might duplicating the Integral!!) , so Would it be OK if We just add it only once in each loop (I mean only adding it to the output)?? so the little change will be like the below code:
    rollErrorOld=rollError;
    rollError=rollTarget-rollActual;
    rollErrorChange=rollError-rollErrorOld;
    rollErrorSlope=rollErrorChange/dt;
    rollErrorArea= rollError*dt;
    rollServoVal=rollServoVal+k1*rollError+k2*rollErrorSlope+k3*rollErrorArea;
    2. Is it OK if I just use "delay(100);" for sampling rate instead of " #define BNO055_SAMPLERATE_DELAY_MS (100)" ?? what is the different between them, or that just for us to learn how to use "define" function ?
    I hope my first Question is a bit clear to you sir.
    And Thank you very much again for the excellent and quality work you are doing, we are learning a lot from you , God Bless you .

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

    I haven't read all the replies, but I believe an improvement could be separate k1, k2, k3 values for roll and pitch. The inertial of roll and pitch differ, and perhaps also power of the two servos, friction in the different berrings etc. Overall an excellent series! I still need to rethink quaterions more and how to incorporate these into other IMUs that may not provide the quaterions and how to derive them from raw angular information, particularly since the BMO055 is basically unavailable reasonably. I'm also thinking that a self-optimizing of the k values could perhaps be programmed fairly easily particularly if a deep learning algorithm provided with different samples were generated. I'm not sure just what the performance quality equation would be. Something to potentially think about. I've even wondered if the derivative of the area could involve another k4 would add anything but vanishing improvements?

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

    Thank you so much for this video and your series. Going line by line and breaking down the thought process for each step, especially as you fix errors, is one of the most helpful things for my learning. Thank you again!!

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

      Thank you for the kind words, Sarah.

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

      @@paulmcwhorter
      HELLO , sir i need help with MPU6050 and want to detect 360 degree rotation and to know how many times it has completed it . It would be nice if u could help me

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

    Why the unit of the delta time is in millisecond?

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

    Great video. Today I finally got PID control. Thank you very much!
    Is there a chance you are having noise problem from your IMU?
    Just learn (and you probably knows that, but your audience can enjoy this information on this comment) noise can inverts the differential signal. As diferential signal is responsible for vigorous response (on the begin of correction) and as a break (on the middle of a correction), seems me that this is the problem. Right?

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

    Thank you sir for your painstaking work.
    This PID algorithm may be utilized to control movement of a self navigating wheel robot over an area (to be specified). This is to request you to kindly elaborate. I am interested to get a feedback from you. Thanking you.

  • @lotbotrobotics5026
    @lotbotrobotics5026 2 ปีที่แล้ว

    Thanks!

    • @paulmcwhorter
      @paulmcwhorter  2 ปีที่แล้ว

      WOW, thanks so much. Really appreciate the encouragement.