HAL9000 : Ball Balancing Robot #2
Vložit
- čas přidán 28. 06. 2020
- I always wanted to revisit my first BB-8 project, which had the head actually balancing on the ball. I think I can do a much better mechanical and electronic design now since I've built many balancing robots in the meantime. I decided to theme this one as HAL9000 from 2001 A Space Odyssey.
Thanks to coolcomponents.co.uk/ for providing the components.
I'm using four 280kv 5055 Brushless motors to drive the robot. These are be driven by a pair of ODrives and a Teensy 4.1. I'm using an MPU6050 for stability.
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
Amazon US: www.amazon.com/?tag=xrobotsuk-20
Amazon UK: www.amazon.co.uk/?tag=xrobots...
Amazon FR France: www.amazon.fr/?tag=xrobotsuk0...
Amazon DE Germany: www.amazon.de/?tag=xrobotsuk0...
Amazon ES Spain: www.amazon.es/?tag=xrobotsuk0...
Amazon IT Italy: www.amazon.it/?tag=xrobotsuk0...
***************************
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:
Lulzbot 3D Printers: bit.ly/2Sj6nil
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
Patrons and Channel Members already have next week's video - it's the next part of openDog V2!
I came here after seeing mark rober video
in your next robotics project could you do something about making a smart charging dock for your robots? im trying to come up with one myself and im struggling with it.
8:45 - 9:25 He says “ground” 12 times in 45 seconds. That’s a ground every 3.75 seconds.
He's making "ground-breaking" improvements ;)
Todays video sponsored by Collin's dictionaries word of the day.
13?
He's floor gang... 🤣
You noticed that too? In other videos the key word was compliance.
A year or 2 ago I saw a super old CZcams video featuring a drive method like this. I couldn’t find any recent videos or examples using it, so I decided to make my own. I designed the basic plate the omni wheels get mounted on, then I realized I have never used an Arduino, never coded anything, and probably shouldn’t start with a self balancing robot. Anyways, I’m glad to see someone taking up the challenge and explaining the process!
It's rather sad to see someone who has been on CZcams for 12 years! And still has less than 1 million subscribers , James really deserves more !
BB8 v1 was the first robot i watched you make, back in the days when we still had hope that the new star wars trilogy might be any good, and i subscribed back then because i found the concept of balancing a robot on a ball interesting!
thanks - there's more coming up!
Don't be afraid of using three wheels instead of four. You won't lose much power, and you can reduce the math to simple matrix multiplications
He didn't think it through.
I have looked into this, from what I have seen is there are advantages of both 3 and 4 wheels. Both 3 and 4 mechanum style wheels cover all DOF for movement in a single plane. X, Y and yaw. Can you give me any more info on your statement? I myself went with 4 wheels due to the yaw motion advantages. It would be nice to go back to 3 wheels.
@@travisash8180 can you explain why the 3 is clearly better. From the published information, I couldn't see a clear winner. I myself went to a 4 wheel system.
3 is always better than 4 if you can get away with it. 3 points always fall within one plane which means you are guaranteed contact even under moderate deformation, the same will never be true with 4. It's why even an idiot without a ruler can make a 3 legged stool.
The problem with three wheels is the desire to have a rotation function - this means the wheels need to be angled to deliver a sideways component (in James' design it's a right angle) and so you are limiting the maximum torque each wheel can apply to whatever the maximum counter-rotating torque can be applied by the other two wheels. This could easily overwhelm the robot's ability to remain upright, especially when it starts moving on purpose.
You should definitely invest in an overhead track for your shop. You could use it as a tether for projects like this, as a simple crane for lifting and moving light-medium weight objects and for filming and lights.
It would be incredibly versatile and you could also make a Wheatley from Portal to follow you around! Haha
You can use a ferrite bead on both the serial wire bundle and the three phases of each motor. This would be to combat noise interfere.
And can be got in bulk in a lot of sizes, that's actually a great idea, especially in compact robots with do much packed together in a small space.
A seperate "power filter" to feed the control electronics would probably help too
Great design and approach
Thanks for sharing 👍😁
WHAT HOW DID YOU COMMENT A WEEKL AGGO THIS CAME OUT 19 MINUTES AGGO WAT
Ju1cy Jon3s - he’s a patreon
@@lonewarrior6633 I'm smart
You could put some coats of epoxy over the ball to stiffen it up.
A robot that balances on top of your head would be cool. Like a light bulb or some kind of head crab ... i dunno but it would draw a crowd.
Until the wheels tangle your hair.
@@sciencefpv7330 Robotic feet like a hexabot or an octobot would be super creepy and might give a nice scalp massage too :D
@@TheAstronomyDude _[Arachnophobia flares up] [Shivers violently]_
Great stuff! I know you'll get it working. Thanks for going into detail about the electronics. It was informative to me to hear how you minimize noise.
thanks - yep it looks like it will work (more updates for members coming soon)
@Gavin Murray They're members of the channel !
Hey James, another amazing video. I love the concept and can't wait for part 3.
Did it ever happen.
Move the battery to the very top, and possibly add a small flat round steel weight there. That will increase the moment of inertia and also the increased weight will improve traction.
Great project! 👍💡
You're projects are amazing and I enjoy it every time I see your videos. I am definitely going to try and support you soon.
You may want to consider some stiction compensation algorithm, the most basic being to add a signed offset to the forward and backward voltage applied to motor. May reduce the amplitude of oscillation you see near equilibrium. Obviously the better solution is to remove the sources of friction but it is not always possible.
Take a shot everytime James says ground after 8:45
Use a tether, Luke. Don't give in to gravity! :-)
Seriously, while doing the first balancing experiments, it wouldn't hurt having a line with handle connected to the head, so you can hold it up with one hand and there is no chance of it falling to the ground because of you being slightly too late to catch it.
If you put a strong neodymium magnet on the inside of the sphere with rollerbal bearings, and attach the omni wheel plattform to that magnet with a piece of metal, it will stay suspended. It will also increase friction and eliminate wobble.
Then you can have a high center of gravity, so that it is really unsteady - that makes it easier to manipulate the lean with more force, which will make it steer way better when selfbalancing
Incredible work! Thanks so much for the inspiration! You should have the ball made of wood on a lathe!
Cool! Great video man and love the..... EVERYTHING
Fantastic project
Hi James, nice project! I see you're gonna use the nrf24 module. I would advice to not use the micro's onboard regulator, but use a dedicated board for that. (nrf24l01 adapter module)
The nrf needs a very clean and powerful 3.3v to operate reliably. I've used the adapter board myself and it works great.
Excellent as always. You should make a laser harp if you do any more instrument based projects. An in depth look at galvos would be cool
Looks like in addition to a rigid surface, maybe you want a heavier filled ball? Not a lot of space for a heavy, vertical top to spin on a ball that offers little inertial resistance
Was waiting for this to come out.. Truly amazing work.. I would be a kid in a candy store hanging out with you for a day.
Hey James,
again a really great project!
Have you ever considered screwing some sort of hook to your ceiling and securing the robot with a piece of rope? I've seen robot companies do this quite a lot and it always seemed a good idea for extra safety
yes, I have a massive crane in the background
Thats exactly what I was thinking also. Just to prevent an accident, and if its motorized it can right the head unit.
Hey James, I think you should check loop time of your code as the response seems very slow. Either your loop time is large or your control parameters are not right.
Training it...
Yes but that's because the wheels spin freely when it's too aggressive, because if the issues I've mentioned. I'm already a fair way ahead in this with the new ball and it looks like the parameters shown in this video weren't that far off.
Waiting for next Tuesday.
8:55 "ground" counter anyone? hehe
12. That’s dangerously high.
@@genericaccount9222 Its dangerously _floor gang_ of him to do... bigppenergy methinks, that's why he can keep coming up with these mindblowing bots
Have you thought of having a component on the inside that works in tandem with the head to track positioning and keep ballance or at you more focused on just a small robot that can self balance on the ball? I noticed as the ball moves it doesn't allow to head to catch up with the body and usually results in it falling off.
Nice bro 🤩👍
James may I suggest you look into RF shielding foil used in electric guitars for you to use to shield it from the RF interference from the 3phase motors and con-troll circuitry
Amazing
Would be really interested to see you tackle indoor location tracking, i.e. where there is no GPS how do you track location indoors? Would love to see your take on that problem in one of your robots.
James not letting fame get to him and staying grounded.
Hey James, what if you did a project from the game Portal 2. People have done Wheatley in the past, but I haven’t seen one yet that moves in the same nature that the actual character in the game does, (I know that since it’s a video game model it’s not really possible to make it work exactly in real life as it does in game but if anyone could get it as close as possible it’s you!)
I'm more hyped about your robotic dog v2 ☺
Sweet!
Have you tried snipping the ends off a USB cable and using it as two twisted pairs? Most USB cables have are shielded by a metal braid to reduce interference.
I did a BB-8 this way as well and I put 3 layers of paper mache underneath the latex this way the ball was quite hard and still light.
Have you considered making the fiberglass ball yourself? Fiberglass matting is quite good stuff to work with if you have a proper mold, and as you have a ball as your buck already, you're a 3rd of the way there already.
Take a shot every time james says ground.
Nice
Una maravilla!
Hmm. I think making your own ball is going to be the best solution.
But it sounds like you want better surface finish than the bare print could be.
I think if you could design a section of ball that could be printed and a matching roud sanding block you could sort of bodywork the ball to a high quality finish.
In addition I think the mass could be kept low , and rigidity kept high by wrapping the ball in carbon fiber, I've been seeing some really fantastic on off carbon fiber pieces being made on Mike Pateys CZcams channel and his scrappy airplane build.
I'm not sure your "ground loops" arguement makes much sense tbh! The high frequency motor noise will couple back on the power grounds, but the high frequency serial data return currents has no ground path that is "co-axial" or at least close to the outgoing path from the processor. AT high frequency, it is the inductance, effectively the loop area that matters. You system is battery powered so has a common ground, but it would be better to ensure that all outward current paths have a return current path as close as possible to the outgoing path, even if that means another ground wire which looks (at DC) to be pointless, but actually provides the critical AC return path. If you are using TTL (5v or 3.3V) serial between the processor and the O drive, as opposed to RS-232 levels (+-12v) then you can easily run into noise issues due to issuficient channel seperation! The other big advantage of always pairing your outgoings with a matching return is that you can then use alarge amount of common mode filtering to block common mode noise without affecting the differential serial data signals too much! warpping the wires through / around a suitable ferrite choke, for both the power and data, can bring huge reductions in the high frequency noise as the high frequency common mode impedance is driven right up by that ferrite!
Its definitely intresting to see how your approaching this given all youve learned
Just a thought would you ever try and make TARS/CASE from interstellar? I dont know if it would even be possible or feasible
Have a look for plastic rotocast street-lamp globes. I used one for my BB8 build. They are rigid plastic (PE I think), quite lightweight, and perfectly spherical. Ideal for your application.
Yep - they have a massive hole in usually for the light fitting
James Bruton the company I used didn’t cut holes but not much use to you as they’re based in New Zealand:D
I think putting a heavy ball inside the black one may help stabilize the movements to be slower.
yep but then it won't be balancing properly and it defeats the object of solving the problem.
Cool
Having touched on this at uni we discovered a heavier ball solved a lot of the issues you're having. We had the ball being thrown out from under the robot due to torque much like you are. Try a heavier ball.
Yes. This is not like balancing stick. Heavier ball will be easier and more atractive (head will be much more moving relative to the ball).
Do you have any info on this? Maybe discuss it a bit more so I can understand where you are coming from.
If you shrink this down to fit on a basketball or soccer ball you could sell these in a store. Any child could turn any ball into a remote control toy!
What about a small magnet inside the ball so it holds more pressure on the wheels?
You should make a self-driving robot shop vac
would it be possible to use a VR setup to tune the balancing mechanisms for you? maybe a beacon on the top of the robot and a set boundary so it learns bad vs good inputs?
What I realized from my tests with these NRF modules is that you should keep them close to the microcontroller to make sure the data wires dont get any noise on them. Your SPI wires must be acting like an antenna and picking up motor noises
Yes
Just a thought here, can you use your ball as a form to make fiberglass balls?
It's really a shame he's still not working quite as well as you wanted. Hopefully replacing the ball will be the final kink to fix.
Are u gonna make it talk like hal9000 just like u did with ur ultron build? It would be really cool and fitting for the character i think
Have you considered putting a large ball bearing inside the empty ball to give it more inertia and stability? That would slow it's response a bit and maybe make it easier to control from the wheel on top.
Yes watch part 1
I have know idea what he’s saying i just clicked because i want to see cool robot
Is there a reason not to epoxy-fiberglass the surface of the ball? That would make a tough and harder surface with the polystyrene backing the shell for added support.
hey James, i understand all the processing is embedded. have you ever considered an hybrid solution ? if you considered to not use it, why ?
Hybrid solution? What does that mean?
Also, Oskar must love you!! Do you reuse your Odrives or are you buying a new set for each project?
He's said in the past he reuses them.
But he must have at least 10 on hand, given this project and open dog are happening at the same time
I'm working on a model of a thing myself and I need to find a ball that is 28.8" in diameter. I haven't had any luck finding it. Where do you get the foam halves from? Did you find a fiberglass ball?
The original one was bought years ago from eBay or Amazon (I can't actually remember). The new one is actually going to be a mirror ball!
Could you make a tutorial on how you use the nrf24?
like properly
Hi, I have an idea why don't you place a track (like a train track) on the ball which depreciate and restore back during motion
I wish I was as smart as you😀
Oooohhhh
Have you considered using some sort of Inflatable ball like a Gymnastics ball?
Sounds stupid on the surface but at the same time it might work.
Just wondering why not using stepper motor instead of BLDC+encoder?
Yeah I think the wheels need to be turned 90°
I have seen a robot "server" about 1.2m tall where the top part was very heavy and the omni wheels where around 3/4 up in that config and only three of them.
Well technically six but the other three were free spinning to distribute the load.
That thing was moving happily around and collecting empty glasses when the tray was full a waitress replaced it with a empty one. More for show than use I guess.
That arrangement wouldn't be able to control rotation. Fine for a drinks trolleyrobot, less good for a 'character' like this
@@ianwalker6546 That is true but I'd have rather a stable config.
Fixing the "character issue" with a "cosmetic axis" is way easier than the other way around.
In before the movie company does a dmca takedown for using HAL's likeness (Tesla had it taken away from 'sentry' mode because it wasn't licensed). Probability of it happening on a smaller scale much lower but still possible.
what about a magnet on wheel inside the ball to hold the robot to the ball?
That would make it worse at the moment since the wheels are getting jammed in the ball's surface. Also gravity does the job ok in this example.
@@jamesbruton ho yea sorry i was thinking for the fiberglass ball
this soft ball will be hard to open without damage too.
i would put the batteries in the center of the ball and power the "robot" part thru nfc coils all around the ball. Lot of loss but the weight of the battery dosent count as it's in the center of gravity. For the interference however i'm afraid it would make it worst 😁
Have you looked into Mecanum wheels?
You can make a ball!
• Get an inflated beach ball or foam sphere that's about the size you need.
• get a few packs of fiberglass cloth and epoxy at a home improvement store
• secure the ball and do a layer of epoxied cloth on the top, let it set a night.
• flip the ball over, do the new "top"
• continue rotating, covering, setting, and repeating until satisfied.
• there's no way to retrieve the original ball, but you now have a solid fiberglass sphere!
• once it's finished, you can sand down any imperfections until it's to your liking.
It would be fairly heavy, but it would have a slick surface so you will want to cover it with something like a rubber spray paint.
will is be perfectly smooth and round though?
Beach balls are nowhere near round. And if he was to set out to find something round enough, he might as well go for the finished product.
👍👍👍
Would making the ball heavier help?
You've probably already thought about this. But, what if you had a frame on the inside of the ball with casters against the inner surface of the ball, a counterweight at the bottom, and a strong magnet at the top. That way, your robot, on the outside, can attract itself to the magnet on the inside, in order to get better traction against the ball.
At the moment that would make it worse because the wheels are sticking in, also gravity is working in my favour.
Obviously, you're going to need a different ball. What if you could cut a beach ball in half and install threaded mating rings to put it back together?
I don't think Kubrick had in mind a ball balancing robot while shooting 2001
Does anyone actually understand what he says ? But I just watch him because of his interesting projects
He is very clear, fairly concise, and highly informative.
maybe a big toy ball filled with expanded foam? maybe
Any tips on calibrating the pid?
Yes, a high I value
That scratch sound makes me nervous !
yep that's where the issue is
Ok Last comment James. If you have such powerful microcontrollers available to you as well as even FPGA. Why not consider making your own servo control? I mean you are not shy of analytical or technical skill to do so. Just an encoder you could get cheap from USDigital and the motors from HK as you normally do. Make a small control loop using the micro encoder and a FOC control like VESC, you can get multichannel devices up to 4 outputs. A thought.
Gaza folks need a rock throwing robot.
PROJECT IDEA: Make legs and torso that can ride a Bike.
Where is the video for the remote you are using?
It's custom made - but it's just an Adruino MEGA with another NRF24L01 attached
You could screen the controller in a metal box
You could also make a Sonichu robot...
The build is really "on the ball." #DADJOKES
So you're balancing the robot with an accelerometer, right? Why not (additionally) use an IR led/sensor couple (as in a mouse) looking down from the bottom of the head to the top of the ball?
why?
@@jamesbruton Would it not give you speedier feedback? Or is the accelerometer fast enough?
Oh my🙄
Tony Stark Elmo in the background,
What about a pick and place machine
Perhaps better wheels are needed with less difference between the diameter of the wheel and the rollers.
Am I the only one that noticed the two Nerf guns pointed out his head😂
Axes! The plural of axis is axes!
I discovered the flaw in this design. It's latency... There is a very high delay between the accelerometer and the motors. The motors start spinning waaay too late, always ending in it falling off the ball. Fix that, and you're golden.
Also, the wheels don't seem too grippy, they are of hard/rough rubber/plastic...
I want to see a ball balancing on a robot... :)
It's actually tuned fine as you'll see in part 3, yes the wheels spin for the reasons I explained.
@@jamesbruton Tuned fine, yet the wheels start very late... They should start at the smallest inclination/movement.
Well, you do what you want, it's your project. :)
I said accelerometer, but I was referring to a gyroscope.