Lego, Raspberry and Python Project - Reaction Wheel Inverted Pendulum

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 มิ.ย. 2024
  • Single axis self-balancing reaction wheel inverted pendulum.
    This thing is inherently unstable and a common challenge in control theory.
    The mechanical structure is built using only Lego parts.
    Motor is also Lego. Angle sensor and electronics are not Lego.
    Enjoy!
    00:00 platform
    00:27 inertial measurement unit
    02:39 motor driver
    04:08 PID controller
    07:10 tachometer
    10:26 rise up sequence
    10:57 the final result
    13:06 change parts and parameters to see how they affect performance
    18:32 specs (including python code)
    PARTS:
    Raspberry Pi Zero 2 W
    OKYSTAR TB6612FNG motor driver
    Elecrow SM9250MPU 9DOF IMU
    Lego EV3 Medium Servo motor [45503]
    Lego PF Rechargeable Battery Box [8878]
    Lego Gear Rack 11 x 11 Curved [24121]
    CODE:
    mega.nz/folder/h6Y2EYwQ#t1s6i...
    or
    www.dropbox.com/sh/pem1mbpp82...
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 1.6K

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

    Ah yes, PID loop refining. The true "Try some numbers and see" of engineering

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

      That was just too beautiful! Everything else was well thought out and planned. and then this tuning "algorithm". Roll 3d100 and see what happens.

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

      Nowadays you just put in some result parameters, and train the PID based on the results

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

      Sounds like the kind of problem you throw at a genetic algorithm or neural network.

    • @JohnDoe-po3ku
      @JohnDoe-po3ku 2 ปีที่แล้ว +57

      @@emmote77 neural network is more for complex patterns

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

      You can model the whole setup, throw it into a block diagram, and calculate out the correct parameters. Seems a little silly with something this simple but it pretty important in chemical processes etc where trial and error isn't feasible.

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

    I'm really impressed by Your skills. You are lego designer, physicist, programmer and electronics engineer. Thanks for the effort You put into Your videos, good luck in future experiments!

    • @alvlp-xyz
      @alvlp-xyz 2 ปีที่แล้ว +31

      Yes, I want to make something like that but things are expensive because I'm a kid🤣🤣😅

    • @Marco-yk8kp
      @Marco-yk8kp 2 ปีที่แล้ว +48

      this is all very basic stuff, give it a shot and you will make reaction wheel robots in no time

    • @noname-codm4590
      @noname-codm4590 2 ปีที่แล้ว +26

      @@alvlp-xyz Ngl, I’ve seen kids do some cool engineering stuff. Example is the kid in Mark Rober’s video. I’ve also seen a kid in a third world country solder and create some stuff out of discarded e-waste. The thing here is maybe you’ve never really tried to create things like this.

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

      I think most people i STEM know at least some basic Python or C, because it's used all over the place (in fact a common complaint related to working in Python is having to work with code written by non-programmers)

    • @noname-codm4590
      @noname-codm4590 2 ปีที่แล้ว

      @@xGOKOPx damn, wish I have a programming subject. I think there will be in g12. But I plan to learn to code anyway. I really hear a lot in phyton.

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

    so cool to see you branch out the skills you apply on this channel, amazing work!

    • @user-zt5bq9tf2z
      @user-zt5bq9tf2z 2 ปีที่แล้ว +3

      wow you watch him?

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

      It really is fascinating!

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

      Cool to see your favorite youtubers watching your other favorite TH-camrs

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

      Hey Azeal did not expect to see you here! Been a fan for almost a year now

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

      @@user-zt5bq9tf2z жаль. . .

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

    I personally learned more in this "one cup of tea" episode then I would ever do so on the PID matter during my entire engineering course. Outstanding job!!

    • @Hans-tr6dx
      @Hans-tr6dx 2 ปีที่แล้ว +2

      yes and no

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

      @@Hans-tr6dx Well it depends how often do you press "Pause" :)

    • @Hans-tr6dx
      @Hans-tr6dx 2 ปีที่แล้ว +4

      @@Kombivar Yes that's true. If you really go and understand everything he writes / codes then you get a huge amount out of it ^^

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

      @@Hans-tr6dx True

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

      No

  • @330f
    @330f 2 ปีที่แล้ว +1098

    You've made some pretty cool things for your channel, but this one is by far the best one. Excellent work!

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

      I dont get it. What did he make? What purpose does it have?

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

      @@EfeAksoy08 If you have no knowledge of Python, Lego, or physics, this won’t be interesting for you. Read the description or don’t, it’s not anyones responsibility to entertain you.

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

      @@DK1213 easy Einstein, i just asked what it is

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

      @@EfeAksoy08
      Obviously in the title and description of the video.

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

      Qowgfb

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

    I've had a similar prodgect in class ( the name was "ball and plate", a stabilized ball on a touch panel) and I love how we spend litteraly 10 hours on a precise calculus of the value of kp ki and kd (modelize thé forces and momentum etc...) when you simply Made it step-by-step lol
    Super great video btw

    • @Matthias-tc4ec
      @Matthias-tc4ec 2 ปีที่แล้ว +31

      Ah un français. On nous reconnais direct à cause du correcteur qui met des "thé" quand on veut écrire "the" 😂

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

      @@Matthias-tc4ec j'ai fait ce que j'ai pu contre le correcteur 😆

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

      @@calimero14 moi, j'ai éliminé la compétition. J'ai enlevé l'autocorrecteur parce que je devais trop souvent écrire deux fois ma phrase. J’étais tanné d’être en compétition avec l'autocorrecteur!😂

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

      @@GuillaumePerronNantel sinon ultime solution que j'avais sur mon ancien téléphone, j'avais mis français et anglais dans le correcteur, le meilleur des deux mondes !

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

      I think you mean trial-and-error instead of step-by-step? Your English is great otherwise👍

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

    5:00 PID controller values : usually you set the P and D constants first, and end up with I part. The integral part is useful when current angle lags behind target, not for overall stability.

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

    This channel just constantly ups the game. My jaw dropped multiple times throughout the video. It's more than just engineering, this is art. BRAVO 👏👏👏

  • @matthew.wilson
    @matthew.wilson 2 ปีที่แล้ว +244

    Instead of switching the target angle at a fixed frequency to avoid saturation, run a slower feedback loop that adjusts target angle as a function of motor acceleration. Essentially get it to search for a target angle where it doesn't need to accelerate. You could probably get it completely stationary that way.

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

      Nice. So one control loop tries to minimize the angle difference between setpoint and actual angle, and another control loop adjusts the setpoint angle to minimize the motor effort

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

      I would do a pulsed step-up acceleration in relation to the deviation angle.

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

    Nicely done! I particularly appreciate how you documented everything at the end, so anyone could replicate your work and build on it. Thanks!

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

    Absolutely loved that iterative engineering process, it was therapeutic

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

    this is so cool!! we need more videos like this that show the building/coding/tuning process all in one. makes projects like this way less intimidating for people just starting out!

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

    I love the testing method of "hit it with a bottle"

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

      it's a tried and true method
      It works on large insects,
      younger siblings,
      and sensory robots you want to hit without damaging any components

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

    If you want more precision. You could use 2 wheel instead of 1. 1 for clockwise and 1 for count clockwise. Meaning the wheels keep going in the same directions and less jerking back and forth. As less accelaration is needed.

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

      The one downside is that it decreases the reactive weight/dead weight ratio of the pendulum for a certain direction. But if it can achieve the angles and agility you want, then this doesn't really matter.

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

      @@Marci124 true. So i guess it depends on how heavy the motor and wheels are.

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

      It's the acceleration that is needed though. Less acceleration=less torque

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

      @@TheTomco11 angler momentum will also stabiles the proces.

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

      One the other hand, due to the increased total reactive weight, this setup would have twice the saturation margin as the single wheel setup. When one wheel is nearing saturation, the angular momentum could be transferred to the other wheel. You could do this by decelerating the saturated one at the same time as accelerating the other one in the same direction. During this operation, it's possible to not apply any torque, but one could also incorporate this to always run in the background by differentially moving the two wheels in concert. On the other other hand, doing the above would require one to move at least one wheel in both directions, doing away with the benefit frim the OP.

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

    This channel is gonna give Boston Dynamics a run for their money in a few years at this rate.
    I for one welcome our new Lego overlords.

  • @marblemaster1
    @marblemaster1 ปีที่แล้ว +22

    As a mechanical engineering student interested in mechatronics, this is the coolest thing I've ever seen. It makes me want to try something like it myself!

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

    This sudden yet clear jump in intellectual difficulty is based. You're about to redpill a lot of unsuspecting people on the simplicity and power of mechatronics.

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

      100% might minor in mechatronics after seeing this
      a raspberry pi is such low cost but high potential computer!!!

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

      @@imakedookie 4 seconds ago I see

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

      @@imakedookie Raspberry pis are not really that great for imbedded projects minus robotics. Arduino, Teensy, and ESP are more suited for those tasks. I mostly use Pis as micro servers and for things that really need all that computing power.

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

      baste and mechpilled

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

      There's always a better mousetrap, but in the end it's still just a mousetrap. 🤔

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

    My favorite lego building youtuber is back! Got my morning coffee with me and ready to enjoy your builds!

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

      Morning? I have 16:13😅

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

      @@dominikromanczyk4595 HEHE

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

      @@dominikromanczyk4595 Haha its morning for me, Pacific Time!

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

      I am in UTC+8,now is 20:10

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

      @@newswang1217 We have an hour in Poland 16:25

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

    Watching the code evolve was a good insight into programming.
    Very cool.

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

    My favorite part was when the wheel spun.

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

      Hi theft king I liked your videos ty

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

    Please... PLEASE make one that works in 2 axis! :D
    Awesome video btw!

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

      yeah, and try free standing on a carpet or something

    • @user-eb8ul1hc9w
      @user-eb8ul1hc9w 2 ปีที่แล้ว +7

      Or all 3 ones. O.o

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

      @@user-eb8ul1hc9w *buys drone*

    • @user-eb8ul1hc9w
      @user-eb8ul1hc9w 2 ปีที่แล้ว +1

      @@SylvieTheBagel really :D

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

    I have loved watching this channel break into more complex engineering projects, this is exactly my slice of pie.

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

    It's really, really nice seeing how well documented this is. I really want to build this myself now.

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

    You've made this so approachable and informative. I found myself speaking aloud along with you as you were iterating on the variables. This was wonderful!

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

    Beautiful video for understanding how control algorithms work! You are probably a very good engineer.

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

      Reading this comment as he hits it with a pop bottle/shakez entire thing, very ironic thing to read lol

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

      @@kameronmyles2013 average engineer

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

    This is a really great intro to controls and dynamics! I especially like how you showed the effect of different kinds of control delay, and different mechanical setups that also had noticeably different stiffnesses 👏🏽👏🏽👏🏽👏🏽👏🏽

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

    As a guy that loves to code, this was amazing to watch. You gotta do more stuff like this man. This is freaking COOL!

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

    your past videos have impressed me, but not to this degree, this is some seriously next level!

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

    As a college student in aerospace engineering who is now learning PID controllers, this video is awesome. This is easily one of my top 3 channels, this is a great new topic and I can’t wait to see what’s next!

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

      is this stuff difficult to learn in your course?

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

      @@hchickenz1138 conceptually yes, the theory behind it is difficult, but implementing it is pretty straightforward.

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

      What are the other two channels? ))

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

    If you set up a livestream with this thing running I'd watch it for hours.

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

    Ohh man yes please. Love the combination of LEGO with electronics. My two guilty pleasures. Keep going!

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

    I recently finished my control system course in eee , and this was one of the best project i have seen.

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

    This is so epic. Coincidentally im doing this exact thing right now for a final project but using Non-linear backstepping control so it can swing up from any position. Nice job!!

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

    This is incredibly thorough documentation! Great job! I'm very much impressed!

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

    Absolutely amazing work. The way that you are able to understand the meaning of formulas that there are behind an inverted pedulum and how do you implement them into the code and correct all the issues that apears during the development is incredible. I would like to be half as smart as you 😂

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

      i know Jack shit about this kind of programming or math, but I do know from getting decent algebra grades, they give you the formulas so you learn how to plug and play with random numbers to see what happens. eventually if you get good at the world is your oyster

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

      Actually that's not an inverted pendulum to be precise, but still an awesome project!

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

    This was amazing to watch, the whole thing is just sooooo cool!
    I loved seeing you experiment with the different configurations.
    The target angle curve reminds me of a sine approximation of a square wave

  • @SKIND-SMOKEWAGON
    @SKIND-SMOKEWAGON 2 ปีที่แล้ว +14

    Easily my favorite video you've put together. Well done documenting everything on this project.

  • @Sam-gk7wn
    @Sam-gk7wn 2 ปีที่แล้ว +42

    Yo, as a control engineer, it's cool to see you applying PID control to a project anyone can do. Keepit up

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

    Amazing experiment - a pleasure to see how features were developed - and documented!
    Thanks for sharing!

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

    Wow, this is insanely impressive. I'm truly blown away by your level of knowledge and skill. Very awesome video.

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

    dude you are a magician

  • @JoSeph-qo4gq
    @JoSeph-qo4gq 2 ปีที่แล้ว +4

    Basically a human flailing his arms when he’s unbalanced

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

    Man, look at all these engineers that you've drawn on to this channel/your video. Well done. I really love your work. Outstanding 🤩

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

    Wow love your style - just tons of data and experimenting, no voice over or music. Thanks!

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

    I literally have no idea what's going on what they're coding or even what they're trying to achieve, but goddamn I sat thru everything mildly entertained and interested

    • @no-lifenoah7861
      @no-lifenoah7861 2 ปีที่แล้ว +1

      @@tusharxo that is correct. it's a reaction wheel, which spins in reaction to it's angle being changed to get back to where it started. They're used in rockets, missiles, and other flying things.

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

      @@tusharxo yea i also got it eventualy

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

      I was scrollin trying to see if anybody else was also clueless

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

      I thought reaction wheels were pretty common these days.

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

    Would it be possible to turn this into a ‘Ferris wheel’ with Lego people on it that keeps itself upright? That would be insane and awesome

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

      wouldn’t it be a dull ride though?

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

      @@KiLLJoYTH-cam depending how fast the thing spins!

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

      This some roller coaster tycoon mentality

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

      I want to get off Mr. Brick's Wild Ride.

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

      Damn that would be so complicated. The little people in their cars swinging about would add extra chaotic forces to the system. If anyone could do it though it’s this guy.

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

    You do some really cool stuff but this is by far the most amazing and useful! This has turned from entertainment to educationally valuable. Thank you!

  • @0lAlex0
    @0lAlex0 ปีที่แล้ว

    This is probably one of the best videos about PID in a practical way you will find in TH-cam. If only I had had this in my school years, control theory would have been easier.
    Keep it up with the good work! (and more videos like this pls ☺)

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

    I love how all your content has the same style even if it's not legos.

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

    Dude, that would make an amazing science Fair entry

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

    holy crap, this went so far over my head but it's amazing to watch you make this work through a pi.

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

    I have literally looked up Lego, Raspberry and Python Project separately this week. The algorithm then sends me this video. Amazing! This is so cool!

  • @no-lifenoah7861
    @no-lifenoah7861 2 ปีที่แล้ว +3

    Can't wait to see a few of these in your upcoming Lego I.C.B.M.

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

    Impressive. I will stick to Lego Duplo.

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

    This made me realize how much more is the engineering behind those Mule robots. Cool project!

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

    10:49 I opened my mouth wide in amazement for more than 1 minute, really amazing work

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

    This channel is so special. I love content like this, playing with toy problems and using engineering principles to make stuff that's so fun. keep up the good work!!

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

    That was, in my opinion, the most inspiring video you've made, and god knows how inspiring your vids are :)
    Keep it up !

  • @LDem-xj7ex
    @LDem-xj7ex 2 ปีที่แล้ว

    unbelievable the way you have edited this makes it look so easy. thanks

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

    Love seeing the whole process

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

    That's impressive!
    Looks like someone is putting their engineering degree to good use

  • @Scott.E.H
    @Scott.E.H 2 ปีที่แล้ว +33

    Man, this project is super cool.
    Also reminds me how much I absolutely would hate being a programmer.

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

    Really impressive stuff! In graduate school I made an inverted pendulum and basically just tuned a PID until it stood upright lol. Now you have a cool physical system to test more advanced control methods though!

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

    I have no knowledge of electronics or coding, and I still watched this whole video. Well done! Proud to be a sub.

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

    I love it. Great project.
    How about a version with an arm that can freely rotate 360 degrees? Could it get up from neutral hanging down position? Could it deal with rotating the entire apparatus?

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

      Given that these are Lego motors, probably not, at least not without some gearing to increase the torque produced.

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

      @@nikkiofthevalley Probably not with a simple PID controller like this but with a rigid arm and some extra code, you could get it to start swinging to the point where it does a 180 swing - you just reverse the reaction wheel direction at each end of the swing to load it in the opposite direction. It would take some work but it's imo doable.
      In high school I made a self-sustaining pendulum out of a mindstorms kit that only used a mass that was raised a few centimeters at the apex of the swing, and then released at the bottom - to model a children's swing set. It's pretty easy to get that to increase amplitude. That was attached via a string, though, so it couldn't do a full 180 swing... you need a rigid arm for that.

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

    So cool seeing the gyroscopic effect being used this way , I have been amazed when learning about the physics of it . and I appreciate the engineering of it now .

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

      This is not a demonstration of gyroscopic effect. Acceleration of the wheel just transfers torque trough the motor to the pendulum to keep it upright.

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

    I learned more from this video than my entire controls course. Kudos.

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

    bro as a programmer, this took so much work and learning lol. This is awesome, I also love the "put in a random number and try again" technique

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

    Very cool, although it was a little nerve-wracking seeing direct contact with carpet and risking electrostatic discharge.

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

    Very cool experiment!
    Calibrating PID settings, you seem have read the same paper we used to us as a reference; I recognize the same strategy (however, the last fine tuning always feels a bit at random for anybody :p).

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

      what paper is that?

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

      @@Taygetea PID Without a PHD? Great read in any case.

  • @888men
    @888men 2 ปีที่แล้ว

    I was so impressed by your video that I decided to watch the 12 min mid roll all the way through. Love the videos brother!

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

    Holy moly this took so much effort and knowledge. Amazing

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

    I think ANGLE_FIXRATE is playing a role similar to what you would get from clamping the integral term to avoid windup. Might try that to simplify the code

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

    5:35
    I didn’t know the lego motor could respond and make that noise

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

      1 SECOND AGO!!

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

      @@AidanGamesYT whatcha doing timing these comments? Just curious

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

    AWESOME video! great job like always pioneering in the lego build youtube scene, no one else compares!

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

    Only 11 minutes in and my mind is blown. Seeing you dial in the PID was amazing.

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

    Id like to see this made into a lego segway. That would be neat.

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

      you could also do a motorbike on a similar principle

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

    This is really so cool! Does that mean we'll get to see an AI-driven, self-climbing, self-righting Lego vehicle on the channel soon?
    EDIT: I just thought about this, but... Hey, you could even make a WALKING Lego mech with that kind of setup controlling the legs!

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

    This video is your masterpiece for sure. Great job!

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

    This is beautiful!
    True engineers appreciate this type of videos. 🙂

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

    Cool! This makes me want to start programming again. I would love to see this done with a genetic algorithm using a neural network. Although it might take awhile to find a solution.

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

      I had the same exact thought. Should be fairly easy to implement in python using tensorflow.
      To reduce the training time on the physical application, you could start by training a model against an ideal physics simulation and then refine it by training on the real thing.
      The same way you manually "trained" your parameters by starting from the upright position, you could also train the neural network in stages by adding an automated righting mechanism so the initial training code can initially start from a the upright position and learn how to hold this position, before increasing the difficulty and let it learn how to startup from one of the extreme positions.
      Would be very interesting to see how the neural network can deal with the sensor noise, delays and perhaps even changing variables like the vibration of longer arms.
      The layout of the neural network could be as simlpe as a time series of sensor data as input and a single motor speed value as output; the fitness function could be as simple as a penalty exponential to the radial distance from the target plus penalties for "radical" motor movement.

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

    One question, what library did you use for the continuous plots? And how did you extract that data from your scripts? Just dumped out as text and plotted later or plotted on the fly?

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

    This is a great practical demonstration of reaction wheels!

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

    This is very relaxing to watch, I appreciate you showing the code.

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

    Wow, that's crazy. I've never actually thought about what an inverted pendulum means, I just know it's what you need to ride a unicycle, so with that in mind I wonder if this Lego robot could ride a unicycle?

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

      There's at least one extra step missing here that basically means the answer is no.
      On a unicycle, you intentionally overbalance in one direction to get moving. This robot would not know to do that, or have any concept of navigation for that matter.
      Not to mention, this is a single axis inverted pendulum, and a unicycle not only has all three axes of rotation available, it also has two-and-some axes of movement.
      An attempt to convert this robot to a unicycle riding robot that could even remain stationary would be at least as complicated as making either robot from scratch, if not moreso.

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

      @@Woodledude good point. I didn't mean navigating at all, but it does make sense what you say about rotation in other axes just to try and stay upright. I suppose you could remedy that by adding a track, like if the wheel on the bottom had an axel sticking out either side, you could rest that on an elevated surface to ensure it can only fall in one dimension, and perhaps use a gear on a gear track to keep friction better.

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

      @@jblen Training wheels would probably be sufficient to reduce the balancing problem to effectively single axis. I have a suspicion the twist about the vertical axis might still pose unexpected issues with gyroscopic precession, but a sufficiently "calm" single-axis balancer could probably ignore that. Probably. Be interesting to see. Your track suggestion would definitely do it, but then we're reducing the problem so much as to be very nearly the original problem with a different coat of paint.
      On the flip side, if you can control the twist of the unicycle with gyroscopic precession, there might exist a highly optimized solution for a single-axis balancer to actually navigate effectively. I have NO idea if gyroscopic precession actually comes into play in a controllable way here, I haven't run through the logic in my head - This is all suspicion and speculation. But it's certainly interesting to muse on.

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

    Ok this is sick. I wouldn’t be surprised if you made a whole ass lego satellite

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

      *3 seconds ago*

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

      get this comment out of here man. respect the vid

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

      @@imakedookie? i meant “sick” as in “cool”, if thats what u are talking about

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

      @@OrbitalLizardStudios @aiden my guy. "3 seconds ago" is a useless comment

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

    Very satisfying video! Amazing work and result

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

    Man, you're growing! I like that! Do more of this stuff)

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

    if you want less delay, use C instead of Python. Will be like a thousand times faster on a Pi (or anything)

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

      even faster, use asm. even faster, write directly in machine code

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

      The code isn't the bottleneck here but the sensors

  • @crex-pd1vv
    @crex-pd1vv ปีที่แล้ว +9

    im too dumb to understand whats going on

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

      same

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

    Your skills with Lego and engineering is so cool to see what u make for your channel with all the experiment what you do on Lego power functions and EV3

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

    This looks awesome.
    Congrats, its a really cool project.

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

    Now make an AI that automatically figures out these PID parameters independent of the configuration.

    • @95frekhaug
      @95frekhaug 2 ปีที่แล้ว

      This is a field of control systems that's called adaptive control. No ai needed

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

    Ok

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

      Tamam

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

      ok

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

      Man if you just scroll down the newest first this is the first comment

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

      sige

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

      Ok

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

    keep up the great work I cant wait to see what you will build next

  • @konstantinl.3316
    @konstantinl.3316 2 ปีที่แล้ว

    I really like, that you show the setup, label the parts and show the code!

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

    This is one of your best videos yet, maybe THE best!

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

    I just love these videos. I'm not an engineer but I know maths and I'm interested in physics. I never expect to make it to the end of something this long, but I often do - it's compelling to watch. Thank you for sharing!

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

    Well done!
    Loved Lego technic as a kid. I didn't know that they added that many new parts; makes me want to buy some to tinker with ^^

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

    Dude you did it , thanks for taking my suggestion 🤟👍👍