Why this Robot is Really Tall

Sdílet
Vložit
  • čas přidán 24. 04. 2022
  • I previously built a balancing robot, but it had tracks based on a Rotaped design. These types of tracks were used on old tractors and were a bit like a caterpillar track, but with less segments. The drive wheel is a sprocket which fits into the Rotaped track segments at the top and bottom, and the tracks themselves are held in place by chains, or in my case some bungee cord tied in two triangle shapes.
    The Roataped tractors had normal front wheels to steer, but in my case I tried to make the Rotaped tracks into a two-wheel balancing robot. The idea was to make a balancing robot which could climb over obstacles. This worked ok, and it was pretty good at driving over things, but I found that making it balance properly was pretty hard because it wasn’t as free moving as it would have been with normal wheels, and also the sprockets settled into the tracks at certain points which meant that the response wasn’t linear.
    So in this video I’m going to rebuild that robot, and try out a few experiments I’ve been meaning to try with balancing robots.
    CAD & Code: github.com/XRobots/TallBalancer
    You can support me on Patreon or buy my Merchandise:
    ***************************
    Patreon: / xrobots
    Merchandise: teespring.com/stores/james-br...
    ***************************
    Affiliate links - I will get some money of you use them to sign up or buy something:
    ***************************
    Matterhackers 3D printing supplies: www.matterhackers.com?aff=7500
    Music for your CZcams videos: share.epidemicsound.com/xrobots
    ***************************
    Other socials:
    ***************************
    Instagram: / xrobotsuk
    Facebook: / xrobotsuk
    Twitter: / xrobotsuk
    ***************************
    CAD and Code for my projects: github.com/XRobots
    Huge thanks to my Patrons, without whom my standard of living would drastically decline. Like, inside out-Farm Foods bag decline. Plus a very special shoutout to Lulzbot, Inc who keep me in LulzBot 3D printers and support me via Patreon.
    HARDWARE/SOFTWARE
    Below you can also find a lot of the typical tools, equipment and supplies used in my projects:
    Filament from: www.3dfuel.com/
    Lulzbot 3D Printers: bit.ly/2Sj6nil
    Bearings from: simplybearings.co.uk/
    Lincoln Electric Welder: bit.ly/2Rqhqos
    CNC Router: bit.ly/2QdsNjt
    Ryobi Tools: bit.ly/2RhArcD
    Axminster Micro Lathe: bit.ly/2Sj6eeN
    3D Printer Filament: bit.ly/2PdcdUu
    Soldering Iron: bit.ly/2DrNWDR
    Vectric CNC Software: bit.ly/2zxpZqv
    Why not join my community, who are mostly made up of actual geniuses. There’s a Facebook group and everything: / 287089964833488
    XROBOTS
    Former toy designer, current CZcams maker and general robotics, electrical and mechanical engineer, I’m a fan of doing it yourself and innovation by trial and error. My channel is where I share some of my useful and not-so-useful inventions, designs and maker advice. Iron Man is my go-to cosplay, and 3D printing can solve most issues - broken bolts, missing parts, world hunger, you name it.
    XRobots is the community around my content where you can get in touch, share tips and advice, and more build FAQs, schematics and designs are also available.
  • Věda a technologie

Komentáře • 263

  • @shadowrunner2323
    @shadowrunner2323 Před 2 lety +381

    When he was talking about the coding for the position hold function, the only thing running through my head was "The robot knows where it is because it knows where it isn't..."

    • @EnsignLovell
      @EnsignLovell Před 2 lety +53

      By subtracting where it is from where it isn't, or where it isn't from where it is, whichever is greater. It obtains a difference or deviation. The guidance subsystems uses deviations to generate corrective commands to drive the robot from a position where it is, to a position where it isn't, and arriving at a position where it wasn't, it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position that it was, is now the position that it isn't. In the event that the position that it is in, is not the position that it wasn't, the system has acquired a variation. The variation being the difference between where the robot is, and where it wasn't. If variation is considered to be a significant factor, it too may be corrected by the GEA. However, the robot must also know where it was. The robot guidance computer scenario works as follows. Because a variation has modified some of the information the robot has obtained, it is not sure just where it is. However it is sure where it isn't within reason, and it knows where it was. It now subtracts where it should be from where it wasn't, or vice versa. And by differentiating this from the algebraic sum of where it shouldn't be, and where it was. It is able to obtain the deviation and its variation, which is called error.

    • @satibel
      @satibel Před 2 lety +8

      oh dammit, I posted this before reading comments.

    • @Frappe3621
      @Frappe3621 Před 2 lety +6

      @@EnsignLovell I like your funny words, magic man!

    • @underscorenul
      @underscorenul Před 2 lety +9

      czcams.com/video/bZe5J8SVCYQ/video.html for those who don't know the meme.

    • @Beeks81
      @Beeks81 Před 2 lety +3

      @@underscorenul czcams.com/video/_LjN3UclYzU/video.html i prefer the remix, lol.

  • @MarkusBenjaminAnders
    @MarkusBenjaminAnders Před 2 lety +56

    A small tip: the oscillation you're seeing is called "limit cycle behavior" and can be predicted (with some reservations) using a describing function for the combined non-linearities in your system. Anyway, long story short. This is a common feature of PID control in combination with systems that have dead-zones such as mechanical play. Try using an LQG controller or similar perhaps if you're looking for a little more "fancy" control technique (however that requires some form of system identification). ps. A Smith predictor could potentially aleviate some of the delays you're getting from reading back from the o-drive. Cheers and thanks for the videos

    • @ratulxy
      @ratulxy Před 2 lety

      Don't you mean LQR? Or LQR and kalman filter combined?

    • @MarkusBenjaminAnders
      @MarkusBenjaminAnders Před 2 lety

      @@ratulxy LQG means LQR + Kalman

    • @DrWhom
      @DrWhom Před 2 lety

      hysteresis, not limit cycle, but yeah, good enough for engineering maths

    • @MarkusBenjaminAnders
      @MarkusBenjaminAnders Před 2 lety

      @@DrWhom hysteresis is when a systems state depends on its history. Limit cycle is when a system is "locked" in cyclic behavior such as an inverted pendulum tipping back and forth repeatedly. You could have googled this in less than a minute, but thanks for the comment.

  • @absinthe4breakfast299
    @absinthe4breakfast299 Před 2 lety +67

    Your vids are one of the highlights of my week, they inspired me to try and design a 3d printed tracked robot of my own, all I can say is you make this stuff look far easier than it actually is.

    • @jamesbruton
      @jamesbruton  Před 2 lety +14

      Thanks!

    • @DJ-kx4en
      @DJ-kx4en Před 2 lety +3

      I agree! James should post more! Or have a second channel with some other makers to do the things he may not have time for, maybe some interns. He can conceptualize and they could compete. No idea, I'm just fascinated with everything he's doing and being selfish...

    • @absinthe4breakfast299
      @absinthe4breakfast299 Před 2 lety +9

      @@DJ-kx4en I'd love to see more of James but honestly his output is already at superhuman levels, I just want to know where he gets all his crazy ideas from.

    • @travisash8180
      @travisash8180 Před 2 lety

      @@absinthe4breakfast299 What is point ???

  • @sgavy
    @sgavy Před 2 lety +45

    It would be cool if you made a vehicle that started horizontal on tracks or 4 wheels, but could then change "modes" into a vertical self balancing position. If it fell over obstacles it could still drive and then self right itself on flat ground 😊

    • @Jergling
      @Jergling Před 2 lety +1

      Segway actually had a prototype of something like this, called the Centaur. It was an ATV that could lift up the front wheels and turn into a Segway 2-wheeler.

    • @fateenahmed659
      @fateenahmed659 Před 2 lety

      ETH zurich has a robot called the anymal that has shown this behaviour, not sure if they're the first
      czcams.com/video/kEdr0ARq48A/video.html

  • @RemyNote
    @RemyNote Před 2 lety +10

    Hey James, you should code in that if the angle exceeds 45 (or more) degrees, the engines stop. So that if it falls over, it doesn't try to keep running.

  • @DMonZ1988
    @DMonZ1988 Před 2 lety +73

    pretty cool that taking a new approach to balancing, something you've done so well so many times, is getting you even better results! great development.
    i was especially impressed and hopeful at the time about the sonic mechanics with the suspension and lean compensation tackling obstacles really well, even matching the BD handle it was based on maybe, and i'd love to see if that improves further with these new coding techniques.
    anyway, nice work!

    • @BenjaminAster
      @BenjaminAster Před 2 lety +1

      @UCbW9BLG-wLj94eSfH1OPySg Hello bot 🤖

    • @BenjaminAster
      @BenjaminAster Před 2 lety +1

      Alright thank you CZcams for deleting their comment...

    • @zeph6768
      @zeph6768 Před 2 lety +1

      Why does this say 6 days even tho this video was uploaded 2 hours ago😰

    • @DMonZ1988
      @DMonZ1988 Před 2 lety

      @@zeph6768 im a patreon supporter, we get to watch the videos early 🙂

    • @travisash8180
      @travisash8180 Před 2 lety

      @@DMonZ1988 What is point ???

  • @PrinceFlumph
    @PrinceFlumph Před 2 lety +23

    I feel like there should be a function for if it goes over 90° (aka flops over sideways) it should have an emergency shut off and stop the wheels so it doesn’t try to whip itself around.
    It already can’t drive on its side, but it’s not going to destroy itself.

    • @Nevir202
      @Nevir202 Před 2 lety

      Or somehow catch at just the wrong time and launch itself full speed into something lol.

  • @antsolja
    @antsolja Před 2 lety +3

    this might be the most fun looking robot ive seen you make so far, id love to build something like this i didnt know it was possible to make a balancing robot drive like that, those tyres look really cool too

  • @isuckatlandingqs8754
    @isuckatlandingqs8754 Před 2 lety +9

    Here is some help for creating a position hold algorithm, it is very similar to a guidance system for missiles which can be explained in a few simple steps:
    The missile knows where it is at all times. It knows this because it knows where it isn't, by subtracting where it is, from where it isn't, or where it isn't, from where it is, whichever is greater, it obtains a difference, or deviation. The guidance sub-system uses deviations to generate corrective commands to drive the missile from a position where it is, to a position where it isn't, and arriving at a position where it wasn't, it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position where it was, is now the position that it isn't. In the event of the position that it is in is not the position that it wasn't, the system has required a variation. The variation being the difference between where the missile is, and where it wasn't. If variation is considered to be a significant factor, it too, may be corrected by the GEA. However, the missile must also know where it was. The missile guidance computance scenario works as follows: Because a variation has modified some of the information the missile has obtained, it is not sure just where it is, however it is sure where it isn't, within reason, and it knows where it was. It now subracts where it should be, from where it wasn't, or vice versa. By differentiating this from the algebraic sum og where it shouldn't be, and where it was. It is able to obtain a deviation, and a variation, which is called "air"
    Just reverse the process

  • @JeremySeitz
    @JeremySeitz Před 2 lety

    Thank you for leaving in extra gratuitous driving footage, I love watching you play with these robots!

  • @OhHeyTrevorFlowers
    @OhHeyTrevorFlowers Před 2 lety

    This is a great video for people who have thought about designing their own two wheel balancing robot but don’t really know where to start.

  • @Abishek_Muthian
    @Abishek_Muthian Před 2 lety

    Work by James is an excellent example for the advantages of incremental development, Well done!

  • @kylemwalker
    @kylemwalker Před 2 lety +9

    Now you need to implement these new balancing techniques into your other balancing robots like the BB-8 and maybe they’ll be less wobbly.

  • @bentsprockettech
    @bentsprockettech Před 2 lety

    Very detailed! Thank you for sharing this with us.

  • @beautifulsmall
    @beautifulsmall Před 2 lety

    Great work, reminds me of my first YT vid, Earwig robot, adding in the angular velocity of the tower to the control loop gave the extra stability . Yours is very stable on the obstacles. A pleasure to watch. Very tempter to build another. Inspiring.

  • @yngndrw.
    @yngndrw. Před 2 lety

    This works really well!
    For the position feedback, you could also read the encoders directly via the Teensy.

  • @BrainSlugs83
    @BrainSlugs83 Před 2 lety

    Absolutely love that you used dual nested PID loops, I was actually going to suggest it. Though I will still suggest using all three terms on the outer loop to squash those remaining oscillations; all three terms really do work together and are greater than the sum of their parts (i.e. if you include the integral, you can use higher dampening by lowering the proportional value; potentially giving the same effect with less oscillation). Still, this is performing really well, and I love it!

  • @jordiespinafont2984
    @jordiespinafont2984 Před 2 lety

    Great Video!
    Also good mentioning that with position control you rely on the encoders, so when going over ramps and obstacles the robot is skipping steps and loosing track of its position

  • @nebula_wolf3132
    @nebula_wolf3132 Před 2 lety +2

    i'd love to see how those wheels cope on something harder, like a road surface. you could also try going over some rocks, as they would probably tip it more aggressively, so it would be a better (in my opinion) test of the stability

  • @thewatersavior
    @thewatersavior Před 2 lety

    Nice! Interesting to see how that control loop can work with your previous autonomous steering setup

  • @santosvella
    @santosvella Před 2 lety

    Loving the balancing robots.

  • @BuddyCrotty
    @BuddyCrotty Před 2 lety

    It wouldn't be a James Bruton video without weird wheels!!! I love how well this works, it's almost like velocity based dead reckoning.

  • @TonyHammitt
    @TonyHammitt Před 2 lety +1

    You could add a bump on the front and back so that if it falls over, it gets high-centered and the wheels can't drive it across the floor sideways. Or cut out the motors if the angle gets too steep.

  • @TedToal_TedToal
    @TedToal_TedToal Před 2 lety

    I’m very impressed with your work.

  • @easyBob100
    @easyBob100 Před 2 lety +1

    Things to ad: Lidar, 9dof for location/position holding instead of wheel position (there are a few types of algos for position). Pathing (so you can just click on a map, and it goes).

  • @paulbrouyere1735
    @paulbrouyere1735 Před 2 lety

    Great work! Well thinking. Wish you all the best

  • @Cloxxki
    @Cloxxki Před 2 lety

    That single sprockets track is amazing, I'd never seen it!!!
    Maybe I need to try that for my non-wheeled off-road skate designs? I'd dead set on making skating with poles on human power over forest roads as fast as skiing over the same road with snow.

  • @xymaryai8283
    @xymaryai8283 Před 2 lety

    the velocity controller is very similar to the rate controller in quadcopter firmware like Betaflight, awesome explaination!

  • @codysimon1724
    @codysimon1724 Před 2 lety

    I'm not the brightest person but you make these videos interesting and you are quite detailed, hard to find people who's uploading routine videos like this who are detailed enough to make me understand it

  • @DelanAbbas
    @DelanAbbas Před 2 lety +2

    I love how he never goes outside to test things.

  • @Eleven7D7s
    @Eleven7D7s Před 2 lety +1

    You are a gem James!

  • @lantienpeng
    @lantienpeng Před 2 lety

    Love watching your vids James, such a pleasure! wish you a great day!

  • @zeekjones1
    @zeekjones1 Před 2 lety

    I can see a counter weight that leans back whenever it leans too far forward, or vice versa.
    At the top of, or middle of a tall robot, this shift in the center of gravity will help it keep righted more smoothly.

  • @DrJALAGHARI
    @DrJALAGHARI Před 2 lety

    Nice informative and innovative video on robot.

  • @AzaB2C
    @AzaB2C Před 2 lety

    Wow! Thank you James! Curious how your zippy velocity feedback compensation works outdoors, and over rougher terrain? Looks awesome! Guessing the motors could handle larger wheels even for higher clearance?

  • @RKTBOX
    @RKTBOX Před 2 lety +1

    Would be pretty cool to see a sort of 'runaway' mode, where over an accumulated pid error value it just turns off the pid controller. So in event of a runaway, crash, malfunction etc, it just turns off the pid controller and sits there dead, thinking about what its done (but legitimately, to avoid damage etc).

  • @arcreed13
    @arcreed13 Před 2 lety +2

    Have you considered using your reaction wheel set-up on the axis perpendicular to the drive to keep it stable in that orientation when over driving or hitting obstacles?

  • @green4free
    @green4free Před 2 lety +1

    The code running on the odrive is open source and it's quite easy to add stuff to it.
    Me and an old classmate modified the odrive code a bit to make the serial interface faster when we built self balancing bicycle.
    You could maybe add code to always post/publish the encoder state at a specific frequency on its own, or move your balancing loop into the odrive.

    • @jamesbruton
      @jamesbruton  Před 2 lety +1

      I could probably just about do it, but not everyone can

    • @green4free
      @green4free Před 2 lety

      @@jamesbruton yea, arduino is more shareable.
      Really cool work as always!

  • @Zarundo
    @Zarundo Před rokem

    Really cool to follow your projects.
    A small safety code snippet just to "shut down" if the tilt angle i s too high would be nice, I guess?

  • @DIYtechie
    @DIYtechie Před rokem

    Really cool project and very impressive performance 😊👍🏻

  • @spammy1tube
    @spammy1tube Před 2 lety

    Nice! You're really getting good at this James! Next thing should be a self-balancer that can get itself up vertical from being down. (Or add-on to an existing one)
    Something like a push rod or lever, or some other Bruton-force clever solution that you'll come up with :^)

  • @youwillneverguess
    @youwillneverguess Před 2 lety +1

    Very cool! Now I thoroughly comprehend why evolution favored legs and feet over wheels. But seriously, very cool wheely thing!

  • @ElectricWheelz
    @ElectricWheelz Před 2 lety

    James, this would make a perfect telecommuting robot for attending conferences and events that are too far away to attend in person. Just add a tablet to the top, ship it to the event, have the organisers set it up for you and then link into the robot remotely and chat to people and explore the event.

  • @rougenaxela
    @rougenaxela Před 2 lety +1

    I kinda wonder how well a reaction wheel would work for counteracting the tendency to tip sideways when cornering tightly, allowing tighter cornering at speed while remaining upright. If that worked well I bet it would look pretty neat in action.

  • @JamesSmith-vz8yr
    @JamesSmith-vz8yr Před 2 lety +1

    I'd seriously like to build one of these!

  • @gilbondfac
    @gilbondfac Před 2 lety

    Bravo ! du travail de pro !! comme dab ! congratulations

  • @addisonwoods9367
    @addisonwoods9367 Před 2 lety

    Super informative video!! Awesome!

  • @jboelens2
    @jboelens2 Před 2 lety

    It would be cool to see if you can run the position control loop at a different frequency from the balancing control loop to make it more responsive.

  • @MarinusMakesStuff
    @MarinusMakesStuff Před 2 lety

    Nice machine, I guess that when making it taller, you'd need a wider wheelbase. There's probably some formula to calculate the width of the wheelbase in relation to the center of gravity which also dictates how heavy the 'stick' pointing up should weigh. And when looking at a Segway, the top part swivels, so it's not fixed. That might also help. Fixing it in the front-to-back direction, but making it so that it can actually move a little bit side to side with springs so that the top part keeps finding the middle. I guess this would need a lot of testing and tuning to get right as when you add a swivel with springs, it can also start a sideways oscillation.

  • @peettoria
    @peettoria Před 2 lety

    The amount of 3d printed robots in the background at 5:00 is kinda amazing

  • @Deveyus
    @Deveyus Před 2 lety

    This was interesting, it'd be neat to see a bit more fully featured wheeled robot, something with collision prevention, a higher speed, capable of carrying a payload of some type, maybe something that uses GPS and can find it's way around a neighborhood, maybe go really fancy and do computer vision for safe pathways.

  • @ben_yeates
    @ben_yeates Před 2 lety

    Hi James, I'm interested in your design process and have a couple of questions.
    Do you do brainstorming sessions and think of lots of ideas for your robots, or do the ideas come iteratively... Like you think of another improvement on an existing design and decide to make a new bot with that concept?
    How long does it take do CAD up a robot idea, with some of those 3d prints there must be a fair bit of downtime, do you design some robots while others are printing?
    Thanks :)

  • @minerharry
    @minerharry Před 2 lety +1

    Never thought I would see such a zippy two-wheeled robot

  • @electronic7979
    @electronic7979 Před 2 lety +1

    Excellent

  • @theoldknowledge6778
    @theoldknowledge6778 Před 2 lety

    Amazing video!!! You should start to mess with suspension systems... It's fun!

  • @madprops526
    @madprops526 Před rokem

    your controller sounds just like controllers and code that that we use for fpv drones, taking desired position (rc stick input) and compares that to where its at and corrects to where its requested to be. at least i think that's how part of it works.

  • @ahbushnell1
    @ahbushnell1 Před 2 lety

    you should do a tips and tricks on 3D printing. I would like to hear about your soft materials with the Luzlbot.

  • @kevineasom8196
    @kevineasom8196 Před rokem

    Great work! Is the Teensy 4.1 a replacement for an Arduino Mega, or Arduino Pro-mini on this project?

  • @jdk7278
    @jdk7278 Před 2 lety

    You can probably correct the fast position estimate using the slow position measurement. I've seen people do that with fast/inaccurate accelerometers vs slow/accurate gyros.

  • @zorod5475
    @zorod5475 Před 2 lety +2

    Another part of your reinventing the wheel series.

    • @jamesbruton
      @jamesbruton  Před 2 lety +1

      There's more...

    • @zorod5475
      @zorod5475 Před 2 lety

      @@jamesbruton the omni wheels, the walking wheel, the ball wheels, various treaded wheels, monowheel, omni tank tread. It is kind of my favorite unofficial series.

  • @poindexterfrink8276
    @poindexterfrink8276 Před 2 lety

    Excellent result!
    Your standard balancing robot code should probably implement a tip-over cut-off at some degree deemed irrecoverable, just to prevent injury and accident during development. I don't know what the code should do though: freewheel the motors?

    • @DigitalJedi
      @DigitalJedi Před 2 lety

      My "kill switch" for stuff like this just powers down any drive motors / servos. The robot just kinda goes to sleep and doesn't try to do anything. The code would just be setting a power of 0 for everything.

  • @LionOfJudahRules1
    @LionOfJudahRules1 Před 2 lety

    James, this platform would make a really cool Astromech Droid!!

  • @jeffreymorris1752
    @jeffreymorris1752 Před rokem

    I'm starting a single wheel (unicycle) bot project this summer or next fall. It will have a 2 meter pole up top, but there will be a canard (a v-wing configuration) of sorts atop the pole. The idea is that once it's moving at speed, forward, balance is handled by controling air resistance across the v-wing. This should also allow it to lean inward to take shallow corners at a pretty good clip. I'm thinking of making it as lightweight as possible - basically a minimal skeleton of carbon fiber tubes. Speed is the objective -- that is, speed over maneuverability, and being lightweight should reduce power and battery requirements. A fair description might be a mix between a balance bot and a fixed wing aircraft. And it has to look cool, of course -- very cool. Goes without saying it will look different.

  • @4thfrom7
    @4thfrom7 Před 2 lety

    The grey looks good on you.

  • @robochrisc2891
    @robochrisc2891 Před 2 lety +2

    It would be cool to see a working clap-trap model from Borderlands.
    Also, you seem to always use the same size of wheels for the balancing robots. I was wondering what would happen if they were larger or smaller.

    • @Matty.Hill_87
      @Matty.Hill_87 Před 2 lety +1

      I think It would just effect the code needed to balance the robot, with smaller wheels they'd need to move more to balance the robot where bigger ones would use smaller movements

    • @robochrisc2891
      @robochrisc2891 Před 2 lety +1

      @@Matty.Hill_87 That makes sense. Thanks! :-)

  • @Max-kc2rc
    @Max-kc2rc Před 2 lety

    super cool and responsive !!! it is grown up now and can handle the outside world ;-) - make it a thing that follows you on a bike and drive though some public places ... (e..g based on two gps receivers)

  • @HungrysitesRu
    @HungrysitesRu Před 2 lety

    Thank you for adding only 1 ad, big improvement. Though I understand the struggle of being a content creator.

  • @satibel
    @satibel Před 2 lety

    code wise, can't you read the accumulated encoder value like every second to correct? or an option may be a secondary microcontroller (i.e. make it "dual core") that keeps track of the position.
    something I want to experiment with is basically a dual ir barcode scanner on 2 points in the room, with photo diodes on the robot, like what the vive does. you have a constant speed mirror tangent but offset from the axis, and a laser line on the 2 bases, which gives you a line scan, you also add a spotlight which blinks at an offset from the mirror to sync up and see which lights are obstructed, then offset the 2 bases 180 degrees, so one scans while the other is blank.
    then on the robot you have photodiodes on the cardinal directions which have a buffer that stores the time at which they saw the light (which allows fast speed, with a custom pcb and some good components you can get 100Mhz or even Ghz speeds.)
    everything would be connected via wifi so the robot knows the exact speed each laser is scanning by at.
    the bases can probably just use an esp32 for everything.
    a sane-ish value for the speed of the laser would be around 30-90m/s (16.2k rpm for the motor, at 1-3 meter from the base, with a triangle for the mirror)
    at 90m/s, you still have like 9um accuracy with a 10mhz counter, even if we take 2 orders of magnitude for correction and whatnot, we can most likely get sub mm accuracy, especially when moving slowly.
    also since you're getting absolute position, you can position very accurately, and are probably limited by the mechanics at this point.

  • @popuptoaster
    @popuptoaster Před 2 lety +1

    If you angle the bottom of the robot so it's more V shaped than square you will much improve it's approach and departure angles for attacking larger obstacles. I realise you can make a vehicle better off road simply by increasing the size of the wheels but it might be interesting to see how well you can make a balancing robot tackle a forest track or ford a stream or similar.

  • @AnimilesYT
    @AnimilesYT Před 2 lety

    8:40 I think this is because the wheel rotates even though that rotation doesn't actually moves the robot. So its actual position is not the same as the position the robot thinks it's at.
    Maybe this could be fixed by using some kind of sensor that works similarly to a mouse?
    That may cause issues when it's driving on transparent/reflective surfaces though. It may also cause issues when the wind blows stuff under the robot or when something like grass is waving in the wind.
    Maybe an accelerometer can be used to calculate the distance travelled?

    • @DigitalJedi
      @DigitalJedi Před 2 lety

      You could use sonar to get around the reflectivity or transparency issue, and grass shouldn't hurt a decent ultrasonic system too badly to the point where it's unusable.

  • @Cloxxki
    @Cloxxki Před 2 lety

    James, would you like the challenge to build what looks like a dancer pole that misses the ceiling, and sits on a single driven spherical wheel that is no bigger than the pole diameter? Being tall it would barely need any response time and input, it would almost sit still. If placed in a room, sensors could scan the ceiling, perhaps with a cutting mat with grid stuck on there for precision calcs. The pole would seem stuck to the floor until tapped.

  • @scottwatschke4192
    @scottwatschke4192 Před 2 lety

    Brilliant.

  • @JimBuschman
    @JimBuschman Před 2 lety

    Pretty cool stuff! Is there an end goal with all of this stuff?

  • @lkjsdf1
    @lkjsdf1 Před 2 lety +7

    This man can now just casually build a two wheel balancing robot...

  • @markturner2561
    @markturner2561 Před 2 lety

    Interesting that you’re pursuing the “balance stable by raising the center of mass” route. For what it’s worth, the Segway has a large mass below the axles (the battery and frame) and I always thought that helped it balance. Segways can stand very still.

    • @Temperans
      @Temperans Před 2 lety

      I mean it does, after all more weight means more energy need to keep it moving.

  • @grahams5871
    @grahams5871 Před 2 lety

    That looks like so much fun. With all the robots you build, why don't you start to make a lego-like modular system: make parts that are designed for re-use. If a part serves two purposes, split it with a common locking joint design. Standardize on a restricted set of bolts and holes, snap sizes to centimeters.
    Build up your system step by step: whenever you reuse parts from an old robot, re-design the parts you are scavenging so that if you had thought of that redesign earlier, you'd just be able to detach on the old bot and snap onto the new one.

  • @RichardBronosky
    @RichardBronosky Před 2 lety

    You are so good at balancing robots, you should get rid of the wheel and go for 1 leg. Make a 1 leg pogo bot and try to see what kind of terrain you can traverse. For more complex obstacles it's going to need computer vision and/or load cells in the foot. Should get very interesting without hitting the mechanical limitation walls of other balancing bots.

  • @johnchai1287
    @johnchai1287 Před 2 lety

    would a wheel that is larger and clears the edge of the body allow the robot to recover from a fallen position? It would be cool to have the capability to recover even if it is sideways. Impressive and educational video as always.

  • @navillus5
    @navillus5 Před 2 lety

    I am really interested in exploring the use of brushless motors in the manner you have been showing in your videos. Is the ODRIVE board the only option?

  • @alex.thedeadite
    @alex.thedeadite Před 2 lety

    You've been coincidentally releasing videos on days I was working for so long(I have a somewhat irregular schedule) I got scared and checked my schedule to make sure I was off today.

  • @aDifferentJT
    @aDifferentJT Před 2 lety

    You will need a PID controller for the position hold if you want it to hold its position accurately on a slope.

  • @FinaISpartan
    @FinaISpartan Před 2 lety

    Btw, this technique of tracking a position without any realworld input and only using velocity and time is called dead reckoning.

  • @AliHSyed
    @AliHSyed Před 2 lety

    Hey mate, I really admire your work. Looks like the shop is getting a bit crowded.. How'd you feel about sending of those robots my way? I'm across the pond 🇨🇦😅

  • @RuthlessMojo
    @RuthlessMojo Před 2 lety +2

    Love to see an AT-AT build.

  • @maximkhanukaev2465
    @maximkhanukaev2465 Před 2 lety

    Masterpiece!

  • @marekjakimowicz
    @marekjakimowicz Před 2 lety

    Nice. You should have a bigger space for testing. With some different surfaces, and obstacles. So watching robots would be more fun.

  • @jesseb0rn51
    @jesseb0rn51 Před 2 lety

    For position hold, i can recommend you to use an LQR controller.

  • @gnydick
    @gnydick Před 2 lety

    Ok, seriously, how do you manage to churn out so many projects with 3d printed parts? Between iteration time, the very slow printing speed seen in your videos, the size and number of parts, I can't imagine how you do it. You should make a behind the scenes video.

  • @pssnyder
    @pssnyder Před 2 lety

    I wonder what impact it would have if you used the upper section of 20x40 extrusion to drive a vertical weight up and down to change the center of gravity as you are driving. That way you could lower it to get more aggressive response and raise it to smooth out the balancing when you want to stay in one place.

  • @rohind1029
    @rohind1029 Před 2 lety

    I think it would be cool to take this one outside, maybe try some more challenging obstacles.

  • @mateeburrahman3849
    @mateeburrahman3849 Před rokem

    I want to meet this guy
    He is a GENIUS

  • @m0nk3yl0v3r
    @m0nk3yl0v3r Před 2 lety

    This shit is so far over my head it has snow on but i love it! Thanks!

  • @TheAstronomyDude
    @TheAstronomyDude Před 2 lety +1

    If the wheels were wider, would it be possible for it to right itself after a tip over? Like turtle mode for drones.

  • @jesusfreak7496
    @jesusfreak7496 Před 2 lety

    Thanks!

  • @DylanMatthewTurner
    @DylanMatthewTurner Před 2 lety

    I'm glad I made an effort to turn my D in Linear Controls to a B back in college bc otherwise I wouldn't have understood 6:23 and would've missed out on how awesome it was

  • @madrandomize5115
    @madrandomize5115 Před 2 lety

    8:52 i never thought i would see metal slug tracks on a robot in real life !!!

  • @alex.thedeadite
    @alex.thedeadite Před 2 lety

    I just thought of a way for a segway style balancing robot to park that I haven't seen before, and that I think would be better for power loss states, when in a stationary guard-type mode at least, have the axle move up and down and rest the bottom of the chassis on the ground.

  • @MrSaemichlaus
    @MrSaemichlaus Před rokem

    "Bigger things with more mass fall over more slowly"
    I agree with "bigger", but not "more mass". In any ideal pendulum, hanging or upside down, only the length of the pendulum affects the oscillating frequency (or time to fall over), not the mass. This is because gravitation causes all objects to fall a specific distance within a given time, and that distance amounts to less in relation to an object's size, the bigger that object is. Thus making an object seem to fall or rotate slower, the bigger it is.

  • @gavinhicks7621
    @gavinhicks7621 Před 2 lety

    You should be able to move the robot to a position just from setting the pid value to some number and the robot should move to that point then if you added turn commands you could make a path for the robot to follow around a house and it should follow it

  • @davidvwilliamson
    @davidvwilliamson Před 2 lety

    could you add an identical pair of wheels at the top end and drive them with additional belt drives from the motors or maybe from the other wheels like tank tracks? presumably it would work just the same upside-down? maybe without even modifying the code?
    with a great enough power-to-weight ratio and a short enough wheelbase it might be able to somersault itself end-over end. apart from being fun to watch this might be useful for getting over obstacles. maybe even going up stairs? anyway might be a quick thing to try