I built a Ball Balancing Robot.

Поділитися
Вставка
  • Опубліковано 5 лют 2025
  • In this video, I explain my path to creating my ball-balancing robot and how I control the trajectory of the ball.
    #engineering #robot #handmade
    github: github.com/Kos...

КОМЕНТАРІ • 195

  • @qbit1103
    @qbit1103 7 місяців тому +30

    As someone who is only just starting with robotics I think this is an 10/10 video. Everything is explained clearly and with a lot of detail, the robot looks sick, and everything is open source. I honestly think YT needs more videos like this one.

  • @alexandrep2624
    @alexandrep2624 7 місяців тому +7

    1:48 very nice cup ;-)
    Best explanation of PID control I have ever seen in 18 years !!

  • @potatoking7722
    @potatoking7722 7 місяців тому +49

    Amaizing video, this is the project she tells me not to worry about.

  • @n_mols
    @n_mols 7 місяців тому +13

    This vid gonna blow up someday for sure... Subbed! Brilliant video

  • @mu11668B
    @mu11668B 7 місяців тому +3

    It's just so nice when UA-cam does recommend something great in the feed.

  • @robertstark3326
    @robertstark3326 6 місяців тому +2

    Great video, excellent explanation of PID control. Beautiful design too.

  • @wa4aos
    @wa4aos 7 місяців тому +2

    Excellent well thought out and executed project utilizing multiple scientific disciplines as well as software development to facilitate the mechanical and electrical needs. Well done Sir !!!
    Maybe this is the next multi-million dollar science toy / teaching tool for engineering, physics, and software disciplines.

  • @AndyZE123
    @AndyZE123 7 місяців тому +1

    I really enjoyed this and could see the huge amount of work that went into it. I ran away with the idea though that you were going to have the ball returning to centre, but it doesn't look as though you would find that difficult to achieve. Thanks for the entertainment and learning.

  • @trollenz
    @trollenz 7 місяців тому +15

    Just the fact that you're using Blender in Japanese is pretty badass and deserves a sub 🤣👌🏻 Not to mention the great content 👏🏻

  • @AFSMG
    @AFSMG 5 місяців тому

    Incredible project, with a high technical level. Congratulations on your work, Greetings from Spain

  • @RSLT
    @RSLT 6 місяців тому

    Very interesting and simple explanation with all the elements needed. Loved it and subscribed!

  • @sucbsakulmehi4261
    @sucbsakulmehi4261 7 місяців тому +31

    Bro just open my eyes on PID control

  • @mohammedmotasim3615
    @mohammedmotasim3615 7 місяців тому

    Thank you for sharing this project, this is one of the best videos showing a balancing robot. I subscribed to you man, keep up the good work.

  • @yugalsharma13
    @yugalsharma13 4 місяці тому +1

    The build quality is amazinggg!!!

  • @punpck
    @punpck 7 місяців тому +5

    7:44 nice explanation of PID controller 🙌

  • @FictionHubZA
    @FictionHubZA 7 місяців тому +2

    You explained this in a very easy to digest manner.

  • @kindlin
    @kindlin 7 місяців тому

    I'm definitely curious to see where this project goes. I hope you keep keeping the technical bits in, even if it doesn't always flow with the algorithm.

  • @Alex-fo4fw
    @Alex-fo4fw 22 години тому

    Amazing work! Maybe a global shutter camera would be better for the bouncing ball test.

  • @bisrattegegn1686
    @bisrattegegn1686 7 місяців тому +1

    amazing video!!! well done
    in my control class (which is years ago) I remember something about using the Fourier transform to fine tune Kp, Kd, and Ki, would be cool if you include that in the next video, would be cool even without, thank you!

  • @victoriage
    @victoriage 7 місяців тому

    cool as heck. the design of the robot is also very well aesthetically pleasing; the math is made simple thanks to the explanations. good job. sub'ed

  • @ConsultingjoeOnline
    @ConsultingjoeOnline 5 місяців тому

    You can get FPS up to 120fps by playing with resolutions. Make sure 4 lane is enabled for faster transfer.
    Cool video and project!

  • @andreafavero71
    @andreafavero71 7 місяців тому

    Very nice project!
    I like the usage of a camera lo track the ball, and having it underneath for a compact design.

  • @pascalturcotte6769
    @pascalturcotte6769 7 місяців тому

    Very nice presentation, I discovered you today and I have subcribed to your channel. Well done! Thanks for sharing!

  • @navneetdhal0021
    @navneetdhal0021 7 місяців тому

    Ive seen many of these videos but the impressive part is how clean and compact it is.Just a few pointers:
    •You could use a much powerful overhead camera.
    •Ball joints are producing a little unrequited wobble for the plate.
    •The algorithm to reject noise could pose a problem during bouncing the ball as it needs to determine the size of the ball.
    Overall this is a great project considering how well you explained it.👍🏻

  • @vianneymas1746
    @vianneymas1746 7 місяців тому +1

    a great explanation on a PID controller

  • @ddssrr1614
    @ddssrr1614 7 місяців тому +1

    This ball balancing robot will control the world one day with it's magic.

  • @PlanB-3751
    @PlanB-3751 6 місяців тому

    Awesome work my friend👍👏
    Thank you for sharing🌟
    Cheers 🕊️

  • @peter360adventures9
    @peter360adventures9 7 місяців тому +5

    Awesome build

  • @simianbarcode3011
    @simianbarcode3011 7 місяців тому

    These kinds of robotics projects are way more interesting to me than the usual attempts to make something more humanoid, as fun as those can be, because the potential applications are so much more broad. For example, the principles and formulas you used here are also used to adjust solar and mirror arrays as the sun moves across the sky.

  • @Greguk444
    @Greguk444 7 місяців тому +1

    Very difficult task, very impressive project and solution.

  • @RSLT
    @RSLT 6 місяців тому +1

    You need to adjust the vertical position of the ball by knowing the difference in its size. 60 FPS seems more than what is needed. This way, you can determine the vertical speed and also control the overshoot.

  • @marsnasir5438
    @marsnasir5438 7 місяців тому +1

    それは素晴らしいのプロジェクトですよ。I am so impressive. I like it.

  • @ottosboyen
    @ottosboyen 7 місяців тому

    Nice work ! Very well explained

  • @Leadvest
    @Leadvest 7 місяців тому +1

    Great video! I hope you get deeper in the weeds, maybe with IK motion interpolation, and predictive PDI control loops, In future videos.
    It looks on visual inspection, like the platform can't move fast enough to bounce the ball, so to my eyes it's an impedance problem.

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому +1

      I appreciate the great advice! I'm really interested in those topics!

  • @stefanklass6763
    @stefanklass6763 7 місяців тому +12

    Very cool, if you ever do it again, make it a Robotern holding a ping pong Paddel. That could develop into a full blown ping pong robot

  • @tuskiomisham
    @tuskiomisham 7 місяців тому +3

    thumbnails: "never falls"
    1st 10 seconds: falls

  • @superradmaker
    @superradmaker 7 місяців тому

    Excellent project and hope you keep them coming! Subbed for the inspiration

  • @bricogeekcom
    @bricogeekcom 7 місяців тому

    Really great work!

  • @ItBeZain
    @ItBeZain 4 місяці тому

    Amazing work!

  • @JonMurray
    @JonMurray 7 місяців тому

    This was awesome man. New subscriber ✌🏻

  • @AffaAu
    @AffaAu 6 місяців тому

    Great work! Good way of learning PID indeed.

  • @glloqdelacroix4644
    @glloqdelacroix4644 7 місяців тому

    nice project, you won a sub, i hope you'll do more :D

  • @Sugarcanecode
    @Sugarcanecode 7 місяців тому

    was looking to build a test or control environment with a balance or camera case based on the magnetic levitation action, or a magnetic testing device to calibrate or measure the necessary placement of magnets within a case or mount to have a more reliable gimbals or drone like camera for mountain hiking, rock climbing.but my question becomes how to build something like this more for magnetic or motion detection to weight and consistently understand the more reasonable positioning of magnets within the case; contacting to understand software demands, establishing what sensors or device architecture would make a realistic controlled environment. im not sure there's software similar to what you've used in your project, but i love your work and would challenge you take your applied sciences toward the world of magnets and make a completely better selfie stick, no hands required!

  • @suheladesilva2933
    @suheladesilva2933 5 місяців тому

    A great project, thanks for sharing.

  • @objvst
    @objvst 7 місяців тому +1

    Nice video, really cool.

  • @dsn9951
    @dsn9951 7 місяців тому +1

    It's really cool. I was wondering if you'd be kind enough to pls share how you formulated the inverse kinematics. Perhaps as a document, in the description?

    • @HansVanIngelgom
      @HansVanIngelgom 7 місяців тому +3

      Or a separate video. I would watch it, for sure! I was a bit sad that he just brushed it off as tedious and boring.

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому +4

      Let's make that video! Please wait a few days.

    • @JensGulin
      @JensGulin 7 місяців тому

      Mission accomplished! Great work!

  • @leonso3419
    @leonso3419 3 місяці тому

    nice video, i'm a beginner in the world of robotics

  • @Hopfenblau
    @Hopfenblau 7 місяців тому

    awesome!! such a channel is exactly what I was looking for 🤩
    3D printet Robots for tinkerers 😁

  • @lakechuck
    @lakechuck 6 місяців тому

    Super cool! I wonder how much more difficult this task would be if a second ball was introduced. I'm guessing it would be exponentially more difficult. Just guessing.

  • @游淯聖-j5p
    @游淯聖-j5p 6 місяців тому

    jumping may be hard because of the camera position, it hard to determine height

  • @wearemany73
    @wearemany73 7 місяців тому +2

    Ping Pong 🏓 would be a great idea…Then make two and have em play each other with the ability to improve accuracy. (automatically maybe) Great video. BTW 😁

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому +2

      Making the robots play ping pong against each other sounds interesting.

    • @wearemany73
      @wearemany73 7 місяців тому

      @@Koshiro_Robot_Creator …especially interesting if they could be taught how to improve themselves. One step at a time though.

    • @mineline5620
      @mineline5620 7 місяців тому

      Machine learning? ​@@wearemany73

  • @simplersearchproductions
    @simplersearchproductions 7 місяців тому +2

    Very well done! But, I can't resist. "Fix the motor to the base and attach the link to the motor." Interlinked! "The motor can now transmit power to the link." Interlinked! "Place the bearing at the end of the link and attach another link." Interlinked! Interlinked! Within cells interlinked! Within cells interlinked! Within cells interlinked! :)

    • @rehnai
      @rehnai 7 місяців тому

      Well played, maybe it could even run from 2049 blades

  • @DigitalProfitPulse07
    @DigitalProfitPulse07 7 місяців тому

    Just thinking the difficulty level if we try to balance two balls at the same time :)
    BTW, great work. highly appreciated.

  • @jaumesinglavalls5486
    @jaumesinglavalls5486 7 місяців тому +2

    for doing the balancing you wouldn't need a second camera? that will lead to a more precise calculation of distance. Nice project!

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому +1

      Thanks for taking a look...I think using two cameras is a great way to go.

    • @wilkstube
      @wilkstube 7 місяців тому

      You can estimate height by the size of the image of the ball. Calibrating images of the ball on the platform at known heights could even give you a lookup table of size::height estimates as a baseline.

    • @yannmassard3970
      @yannmassard3970 7 місяців тому

      no you don t need 2 cameras, you need a wide angle cam only / ball radius. enough to bounce the ball

    • @kindlin
      @kindlin 7 місяців тому

      @@wilkstube I assumed it was something like. With a known default position of the platform, and assuming the object is a ball, it's diameter can be calculated based on the image. I know he's good for the math on that one, after the inverse kinematics lol.

  • @blefroy
    @blefroy 7 місяців тому

    I’m curious to hear more about how you used the golden ratio in the design

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому +1

      The golden ratio is incorporated into the lengths of the links and the size ratio between the platform and the robot's base.

  • @immerslife
    @immerslife Місяць тому

    Excellent work! Thanks for sharing! I'm using the same servos(RS304MD) for one of my projects. I wonder for multiple servo control, did you use the "TB-RV71EH" and the "TB-22PP Hub" as shown in the RS304MD Instruction Manual for this robot? I didn't seem to see them in this video though.

  • @frankdearr2772
    @frankdearr2772 6 місяців тому

    Great topic, thanks 👍

  • @wasimahussain657
    @wasimahussain657 5 місяців тому

    To bounce the ball wouldn't you need to code it in a way that identifies the changes in the pink ball size (moving closer or farther) and maybe put some marks on the glass platform to have the camera also identify the location and the altitude of that?

  • @AgentQQ8
    @AgentQQ8 7 місяців тому

    Oh, the robot butlers are close, I can feel it! LOL

  • @iosmc4
    @iosmc4 7 місяців тому

    Great video. I’ve seen many UA-cam channels complete this project and gloss over the inverse Kinematics. A full video working through this derivation would be extremely helpful. How does the control algorithm work if it’s over constrained with 3 actuators instead of just 2?

  • @bobtony3332
    @bobtony3332 4 місяці тому

    if the camera detects when to move the platform based on how small it looks ( this is to bounce it) I assume u did it like that then would it be that the height change isn't big enough to accurately detect when to bounce the ball you would need an extra camera to detect distance well enough

  • @sermadreda399
    @sermadreda399 7 місяців тому

    Great video, thank you for sharing

  • @dr_harrington
    @dr_harrington 7 місяців тому +3

    Can you turn it upside down and make it balance on top of the ball?

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому

      This robot cannot do that. However, creating a project to make such a robot sounds interesting.

    • @kindlin
      @kindlin 7 місяців тому

      @@Koshiro_Robot_Creator All it would take - if I'm thinking about this right - is longer arms and a quick update to the arm length in the kinematics of the Brains.

  • @QbutNotTheQ
    @QbutNotTheQ 7 місяців тому +1

    Awesome

  • @avinashdeshmukh7301
    @avinashdeshmukh7301 Місяць тому

    Hello, Is there a subsitute for the futaba motor. It is quite expensive. Thank you

  • @ws01212
    @ws01212 7 місяців тому +1

    お願いしますが、どの音声AIを使ってナレーションしているか教えてください。とて何かはかっこよくて、声もいいですね

  • @boltvalley3076
    @boltvalley3076 7 місяців тому

    I like this, i would like a video how to connect OV7670 wires... Friend and i got stuck trying to connect robot eyes to follow fingers and ball. Fantastic experience and effort.

  • @migfed
    @migfed 7 місяців тому

    Derivations should deserve one video on this own right, think about it

  • @_-JohnDoe-_
    @_-JohnDoe-_ 3 місяці тому

    Stopping bounces should be started by tracking the target height (and therefore the target size): starting from what (smaller than the size "on the surface") should one start reacting to its presence in the field of "vision" (pull the surface up as much as possible), and then track the rate of size increase (approach speed). When the target enters the "probable touch" zone (one should calibrate for the size of the target lying on the "surface" pushed up as much as possible), interpolating the progression of size increase between frames - begin the "bounce-damping surface fall" maneuver, proportional to the calculated target approach speed. One will probably have to calibrate for the target's "jumpiness" as well, to determine the effective number of target touches, before the bounces stop, relative to the maximum possible surface "fall" speed. Also, to more accurately determine the target size, one will have to use a camera with a higher resolution, which will load the graphic function... in the near future it is possible - to use shadowed side of target, for specifically orient the target on the "surface".

  • @pekhotinyets
    @pekhotinyets 6 місяців тому

    I love that you're using Blender

  • @aeris-mo
    @aeris-mo 7 місяців тому

    I love your work.

  • @Maybe-You-Know-Me-Not
    @Maybe-You-Know-Me-Not 7 місяців тому

    At a glance you are using sight to know the position of the ball, I’d like it to use weight so it can be a never spill coffee cup holder for the car.

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому +2

      That sounds interesting.

    • @JensGulin
      @JensGulin 7 місяців тому

      Fluids are tricky and watching the cup from below doesn't help much. The car suspension and acceleration/turning are doing the spilling, so instead using a gyro/accelerometer would be the way to go. But don't drive too fast, or your calculations might need to predict the future...

    • @JensGulin
      @JensGulin 7 місяців тому

      Possibly a gyro suspension can do the job mechanically, with no robot or calculations needed. Good luck!

  • @steveolsted6378
    @steveolsted6378 7 місяців тому

    Really cool! Could it absorb the bounce prior to balancing?

  • @levih.2158
    @levih.2158 7 місяців тому +32

    Why does the narration sound like AI text-to-voice?

    • @RaidPanda404
      @RaidPanda404 7 місяців тому +1

      Because you don't know how it sounds

    • @beekdorrr
      @beekdorrr 7 місяців тому +9

      I think it is since the creator is Japanese and the narrators english is way too fluent(not saying it isn’t possible)

    • @levih.2158
      @levih.2158 7 місяців тому +1

      @@beekdorrr Ah I see! Didn't realize the creator was japanese, thanks!

    • @LawrenceTimme
      @LawrenceTimme 7 місяців тому +4

      Because it is.....

    • @jesterman1302
      @jesterman1302 7 місяців тому

      My friend uses AI to get rid of his thick Polish accent.. It works great. It's still the persons voice sans "dialectical imperfections"

  • @michaelrtreat
    @michaelrtreat 6 місяців тому

    Great stuff

  • @ataosy6030
    @ataosy6030 5 місяців тому

    I wonder how you can resolve the delay of camera and fix it into the code. :D

  • @unVlogDurisimo
    @unVlogDurisimo 6 місяців тому

    This is awespmeee

  • @junkthe
    @junkthe 7 місяців тому

    I kinda wanna find light weight version of this , and mounted on my rc 75mm tinywhoop. If the price very cheap, and available in my country.

  • @lowelljeff
    @lowelljeff 7 місяців тому

    Awesome Project. Are you gonna release complete plans and STL's for it?

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому

      Thanks for watching! You can download it here.
      github.com/KoshiroRobot/Ball-Balancing-Robot

  • @fillyval
    @fillyval 2 місяці тому

    where are the servos getting power from?

  • @lavalampex
    @lavalampex 7 місяців тому

    3D movement requires 3D/2.5D vision, like a camera from the side, to be accurate.

    • @AABB-px8lc
      @AABB-px8lc 7 місяців тому

      ball have fixed constant size, and camera is not telecntric, so you can track height by measuring pink circle size.

  • @jack0148
    @jack0148 3 місяці тому

    I am a computer science student currently in university. Can you please make a video on the mathematics of the project?

  • @Zenobeus
    @Zenobeus 7 місяців тому

    Echo... nice video!

  • @biffdanielson2820
    @biffdanielson2820 7 місяців тому

    Thank God, or rather, robotics. Now, all my life's problems can be solved by a ball balancing automaton.

  • @aeebeecee3737
    @aeebeecee3737 6 місяців тому

    It is terrific awesome

  • @christopherd.winnan8701
    @christopherd.winnan8701 7 місяців тому +2

    Have you been following Harrison Low's juggling robot experiments?
    www.youtube.com/@harrisonlow
    Maybe you two could collaborate in future?

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому +2

      I just followed him. The movements of his robot are beautiful. It would be amazing if we could collaborate in the future.

    • @christopherd.winnan8701
      @christopherd.winnan8701 7 місяців тому +1

      @@Koshiro_Robot_Creator I sent him a link to you video. He does regular live streams and I am sure he would be very happy if you reached out.

  • @vijaycj9999
    @vijaycj9999 5 місяців тому

    Why i am seeing PID in all electronic projects this is insane.

  • @mikkodetorres
    @mikkodetorres Місяць тому

    Sir what filament material did you used?

  • @mingxue6327
    @mingxue6327 5 місяців тому

    How about using ML to train the control - w/o explicit "math" - by learning from sucesses and failures?

  • @sicks6six
    @sicks6six 7 місяців тому

    ball control and cameras, am I missing something in the description,

  • @7BlackJack8
    @7BlackJack8 7 місяців тому

    Hi, are you based in Japan? I'm a software engineer very intrigued by AI, i want to know if there are communities or labs dedicated there...thx for your work btw, superb.

  • @jim23mac
    @jim23mac 7 місяців тому

    Wow - I confidently predicted you would need to use fuzzy logic to control the platform but it seems I was wrong.

    • @Santzes
      @Santzes 7 місяців тому

      It would be interesting to have another robot pick up the fallen ball back on the plate and then do million bouncing tries to train an AI that could bounce the ball even with the "low" framerate

  • @vishal01mehra
    @vishal01mehra 7 місяців тому

    Try using a global shutter camera module

  • @dammizz
    @dammizz 7 місяців тому

    Amazing project.
    How many hours did you spend on building this robot?

  • @innocentmateyaunga2683
    @innocentmateyaunga2683 7 місяців тому

    very cool project, I wanna try remix it a bit, some of the parts are not available, please check that

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому

      Thank you for watching! I have added a new folder "Parts_Details" on GitHub. Please check it out.
      github.com/KoshiroRobot/Ball-Balancing-Robot

    • @innocentmateyaunga2683
      @innocentmateyaunga2683 7 місяців тому

      @@Koshiro_Robot_Creator Thank you so much. i appreciate

  • @googleyoutubechannel8554
    @googleyoutubechannel8554 2 місяці тому

    Wow, I had no idea this was an AI voice until I saw all the kanji on your math homework. And this is the fanciest one of these ball balancer thingies I've seen on YT, those are some primo high-end servos, weird they couldn't do the ball bounce trick? But only, two wires only coming from the pi. Nice. Also, why does everyone on YT always solve all the IK from scratch, is there really no existing libs or code written for this very specific case that's been done over and over that are grokable enough to be reused?

  • @grf73tube
    @grf73tube 7 місяців тому

    Next step: use Reinforcement Learning to do these tasks! Perhaps you can solve the bouncing ball problem with it.

  • @ThainaYu
    @ThainaYu 7 місяців тому

    next step might be fine tuning the K gain with continuous machine learning?

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому

      In this video, I failed to bounce the ball.
      I think a camera with a higher frame rate or an algorithm to predict the trajectory of the ball between frames is needed to successfully bounce the ball.

    • @ThainaYu
      @ThainaYu 7 місяців тому

      @@Koshiro_Robot_Creator I think you need depth camera or multi camera to analyze depth to add precise z dimension for that

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому

      @@ThainaYu In this video, the height is determined by the algorithm of the pinhole camera model, which is not very accurate. I think the means you are describing would be very useful for successful bouncing of the ball.

    • @kindlin
      @kindlin 7 місяців тому

      @@Koshiro_Robot_Creator That assumption should be fine for most things, but to jump the ball, for the precise z, you'll want to solve the tangent sphere problem. You could also calibrate the diameter more precisely with that same algorithm. (I brought something up like this in another thread just a second ago).

  • @mystery_pond
    @mystery_pond 7 місяців тому +2

    Weird question but is this your voice or text-to-speech?

    • @robotboy3525
      @robotboy3525 7 місяців тому

      How is this relevant to the video ?

    • @mystery_pond
      @mystery_pond 7 місяців тому +1

      ​@@robotboy3525 I'm just asking a question

    • @Koshiro_Robot_Creator
      @Koshiro_Robot_Creator  7 місяців тому +3

      I am using voice generation from Filmora.

    • @mystery_pond
      @mystery_pond 7 місяців тому +1

      @@Koshiro_Robot_Creator Thanks, I was just asking as I was second-guessing myself, since it's very convincing!

  • @basilstadnik1342
    @basilstadnik1342 7 місяців тому

    0:28 откуда советский объектив ?