Hey, I am Jelle and
I could really use a helping hand right now… sooo, rather then getting someone all the
way to my room, I’m just going to make one myself! Last time I made a little robot friend, everything
was totally fine, so why would this time be any different?? *cough cough* Alright, so, making a robot arm is pretty
complicated, there’s a bunch of thing to calculate and parts to collect, so I prepared
a little list for me to keep track of everything: Let’s take a look:
- Preheat the oven on 200° C - Cut the tomato’s in small chunks
Wait…That’s the wrong list, where did I put the robot list? (Look between the cook books)
Ooh, There it is, it was next to the kitchen robot guide al along:
[book title: robot arm for dummies] Let’s get started! In order for my robot to be actually useful
he needs to be able to reach all around the place, and before we settle on a design, we
need to determine the “work enveloppe”. A smart people term that just means everywhere
the robot can go, in my case, I like to imagine half a dome, and able to reach all those points
at different angles. So it can hold stuff and maybe poor me a nice
drink for once. This rules out the more simple designs, like
the gantry ones, they are pretty good at moving stuff around, but are not really the rotating
type. And they also don’t look very cool don’t
they.., and they are really big… Okey, I admit, at this point I’m just looking
for excuses to build an arm like this: [show cardboard arm]
I looked at a bunch of existing arms, and boy, I must say, there are some “creative”
ones out there. Some joints, some shafts, and motors of all
sizes, these were the ingredients chosen to create the perfect robot arm. But Jelle accidentally added another ingredient
to the concoction: pinterest boards Thus, the robot arm design was born! Using their extreme precision the base, elbow
and wrist have dedicated their power to moving wherever they want, in almost no time! “Duh, duh, dududududuh”
Yeah… maybe it didn’t go exactly like that, but still, I designed an arm by combining
some cool stuff I saw online. Something I didn’t like was that with a
lot of arms, the elbow couldn’t close all the way, so, taking a slightly different approach
I went with an offset design. But only for the upper arm, this keeps the
forearm in line with base and makes calculations a lot easier. The wrist on the other hand doesn’t have
to close all the way, rather it extends further out, so we can keep it in line with the arm. Then the final joint is another rotating on
for the wrist roll. (Show parallel with my arm) Owyeah, did I mention that I want to hang
it on my ceiling right in the middle of my lamp? And the length of the arm has to be the radius
of my RGB lamp I made last time, so I can control the light and show where the arm is
going to go! Something like this arm, yeah, that look pretty
good, it can reach stuff, rotate a bit and fold back up if I’m not using it! Now… How do I go about this?? I recreated my cardboard model in unity and
started tinkering with my IK framework to figure out if all the joints were designed
correctly. The only things that roll are the base and
the wrist end, so I have to slightly modify the code to separate the parts out. I also simplified the elbow pivot that the
arm always goes straight from the center to the target. It’s very good a following the target, maybe
a little too good…. I don’t want him going through the ceiling! So I definetly need to remember that! Since my arm needs to be able to handle stuff,
I added an offset feature to move back and forth and rotate around a virtual pivot point. Look, it can already poor me a virtual drink,
now I just need to bring it to the real world, like, actually build it… Time to figure out what motors I need! Since the robot arm is mimicking the human
arm, the joints only need to be able to rotate 180 degrees, and for that a servo motor is
perfect, You can very easily control it and tell it what angle it needs to go to. But how strong should they be? Hold on to your butts ladies and gentlemen,
time for high school physics explained in 15 seconds! To make sure your robot arm is strong enough,
you need to figure out how much torque you need. Torque is the amount of force you need to
rotate something at a certain distance away. You might have noticed that when you’re
holding you shopping bags from your latest shopping spree (or any object really) are
much harder to hold far away from you, than close by, well, it’s the same for motors. The further away you weight is, the harder
it is to rotate. This has been your physics lesson for today. So I went from the ends to the base and added
all the weights and distances at each joint: The wrist has 2 joints, one for pitching up
and down, and one for rolling The last one doesn’t have to lift anything,
only rotate the wrist and as long as we keep the weight relatively centred, a small servo
like this will suffice, hopefully. The pitch servo will be a bit bigger at about
10 kgcm, while the elbow is already a lot further away so we need to get one of the
bigger ones of 35 kgcm. The shoulder joint should contains One pitch
servo of 65kg and for the roll, since I want to keep rotating it all around, I can’t
use a limited angle servo motor anymore. So for the final joint I need to get a stepper
motor, of uhh… well there is nothing being lifted, so the smallest one should be fine
right! Into the shopping cart! Alright, the parts are ordered, so while we
wait, let’s start programming! To control the whole arm I’m going to use
a raspberry pi, it has a lot more computing power than an Arduino but is still very small
in size so It’ll fit nicely on the arm! But before we get to that, we’re going to
need a prototype, how can we quickly test everything? Well, let me explain! This little robot arm is going to help me
figure out all the complicated stuff, so he’s going to need a cool name: let’s call him
sir. Vo
you get it, ha, because he has all these little servos to control him… Alright, first step: Getting the joints to
move: I can use this handy controller to control all the servos with a couple of pins on the
pi, I just have to set an angle and… [servo shooting of“ oooh that’s fast! Alright, I have to do something about that,
the servo’s are just going to break the arm if it keeps jerking around lik that! You know, this problem is actually pretty
similar to the weird linear movement you get with bad animation, just moving from one point
to another as fast as possible without any easing. First, instead of just telling the servo to
go to the end point as fast as possible, you give it intermediate points to reach after
a certain period of time. This is already much better, nice and slow,
but not too slow of course! Then, instead of making the next point the
same distance away every time, you use another function to make the distances increase and
decrease over the track, this makes it much smoother and removes the jerk at the start
and end, much better! Next step, going to a specific spot: this
is where the IK comes in again, setting the robot arm joint by joint is usable, but in
reality I just want to tell it where the end needs to be and that’s it! I just used the same IK code from my unity
prototype, but now it’s in Python, I used my magical Syntax converter for that, look
at him go, so magical! And with these easy to use functions I just
enter some coordinates and of he goes! But this is only the beginning! Now that I can control the robot arm, I need
a way better and accessible way! I’m not going to keep typing commands to
my pi all the time, what’s this Linux? Nono, I want to be able to control it from
everywhere, without any typing, so even my grandma can control it! So just like I did with my lamp, I’m running
a webserver on it that allows me to control the arm from whatever device I want on the
network, look, It even works with my DS! Now that’s what I like to call a pro game
move! Oh, my parts are here, time to get to the
Actual full sized arm! I have this basic shape I want to follow,
but I have no Idea how I’m going to fit everything in here. I hope I have enough room at least.. let’s just take it joint by joint, starting
with the easiest one: the elbow! This only has one servo, so keeping with the
rounded theme, something like this should keep everything together. and that brought me to the base Because I wanted the arm to keep rotating,
I basically put all the stuff in the shoulder That did leave me with a pretty big problem,
because, you see there is this problem that you can’t keep rotating wires, wel I mean,
technically you can, but then you’ll just end up with a jumbled mess like when you left
your retro earphones in your pocket. And eventually, you'll have separate wires And at this point Pumping all the power I need wirelessly is
not really an option yet, so I found this little handy thing on the internet, it’s
a slipring, basically its a wire connector that can keep rotating with the use of some
little brushes that rotate around the center base. And with this little adaptor, no, this one…
no, wait, well, after some attempts, I can slip it around the base motor and get rotating power through the base, to the shoulder joint! The rest of the electronics stuff is mounted together with this bracket and it is all mounted to this lazy susan, so it can just keep rotating forever! Wait a second, I’m doing all this designing, but I don’t even know if the motors are strong enough! Time to make my limbs! I was going to 3D print everything, but considering
the size of the arm, I decided to use something faster and easier Like these aluminium profiles as the main structure, that way there is a rigid structure holding everything together. I got these square tubes, now al I need to to is make a little cut and drill a little hole and Tadaaaa, they hold the servo’s perfectly! It’s going to be pretty , so I put my base on a wide vesa mounting plate and.. yeah, that tape should be strong enough right?? Alright robot, show me what you got! [movement demo] Wait, why Is the base not rotating? Is the stepper motor not strong enough omg, Maybe getting the smallest one wasn’t a smart idea after all…. It seems the friction is still pretty high We’re going to need a bigger motor! Luckily all the’s stepper motors have the same basic shape, the stronger ones are just longer just longer Yess, let’s give it another go! [movement demo] back to the drawing board! I need to check if the place I want to go
is actually reachable, without it going through the floor, and make sure it's not hitting itself And While I’m back at programming I might as well add a nice little GUI to select a position for the arm on the server, look,
it almost looks like I know what I’m doing! Run the tests again! Alright test nr (big number) Alright the rest of the motors seem strong enough, and it's not wrecking itself! let’s get some 3D printed parts of the shelf! We got the Elbow joint, where I spent countless hours figuring out how I was going to put everything together. Because I made the covers slip on the tubes, there was no room to mount the servo’s before that, Because the bolts would just get in the way that’s why I got these long bots so
I can mount them from the outer side of the arm, the little bracket on the cover also
makes sure that stays in the same place and doesn’t start sliding about. The wrist was designed a bit different, with 2 parts where the left side would be mounted to the servo, and the right side can be used to stabilise and hold the final wires. The final small servo can then squeeze in between, oh, look at that perfect fit! And This ring holds everything together! Ow yeah, do you guys like cable management? yeah, me neither, so I designed these clamp
on covers with magnets so I can hide all the ugly wires in the base! Alright, let’s give these a nice paint job
and see if it actually works! alright, nice and smooth, this is much better I can make him go up a little bit I can make him go down [haircut incoming] [haircut] My hair is gone! Ah, damn you robot, time you get of the floor and onto the ceiling just like that ladies and gentlemen this is the moment we have all been waiting for prepare yourself to witness bedroom engineering at its finest the first hand I have for you today is this phone mount [demo] alright, camera arms are pretty cool, but I hear you guys already how hard can it hit stuff? well, lucky for you, I have just the thing this boxing glove attachment let's see how hard you can hit stuff alright the boxing glove is attached, let's see what it can hit I am a little scared alright, that was pretty fun what should I do next with my robot arm? post it in the comments below be sure to like the video if you think robots are cool and subscribe to see what I'll do with him next and I'll see you guys next time after I clean up all this mess ah, another successful project time to play some video games wait, where is my controller?