Hey, you’re a robot! You’re on a robot! Nowaday,
you can just build a six-axis robot yourself, for less than what my first 3D printer cost.
Granted, that was a while ago and parts were a lot more expensive back then, but still,
for a bit over 2000 bucks and two weekends spent on assembly and tuning, this could be yours!
This is the AR4-MK3, with about 600mm of reach, a good two kilograms of payload capacity,
a fully programmable software package and plenty of interfaces to attach your own tools,
and hook up your own inputs and outputs. This is meant to be an actually useful arm and the next
step up from the cheap RC servo-driven arms. To build the AR4, we’re going to need
some 3D printed parts, and for that, I used today’s sponsor, the Peopoly Magneto
X. Mine now wears the optional full enclosure, which is fantastic for using the full
400x300x300mm build volume, even with warp-happy, high-performance materials.
To achieve its crazy printing speeds, the Magneto X skips belts and stepper motors
and goes right to closed-loop linear brushless motors for X and Y and comes stock with the
Lancer extruder and a high-flow, wear-resistant hotend for up to 70mm³ of filament added to your
print every second. The Magneto X runs standard, customizable Klipper firmware and you can get it
at $400 off all throughout July at the link below. To make life easier for me, I bought the full
robot kit from Chris Annin, which includes the electronics and the mechanical parts. You get
a Teensy to control it all, an adapter board and a whole bunch of switches, connectors and
cables. The mechanical parts have the belts, pulleys, fasteners and some surprisingly beefy
bearings, but I also ordered the aluminum parts that make up the mechanical structure of the
machine. You can choose to 3D print almost all of these parts from plastic, and while that will
reduce the overall cost and weight of the robot, it will also make for a less rigid setup.
These parts are all basically billet machined, and for that, I think, they are sold at a very
fair price. I mean, nice machined parts like this are just an absolute joy to look at. You still
need to print some parts yourself, enclosures, covers, those sort of things where machining them
makes no sense. Many of them are fairly large, but you can also print these as split variants
if your printer is not quite big enough. Though none of these are particularly optimized for
3D printing, so supports and at least somewhat decent print profiles are a must, and then
they are absolutely printable unless your tree supports all decide to come loose from the bed.
I also bought the basic servo gripper kit, obviously, for most real applications you’re
going to have a custom toolhead on the machine, but I thought I should just get something
that is a starting point for learning how the machine and the toolhead system works and that I
can use to demonstrate the machine straight away. Lastly, and this is a part that you can’t buy
directly from Annin Robotics, the motors and drivers. The AR4 uses good old stepper motors
instead of servos, which, compared to geared brushless motors, makes for a simpler setup,
but also for somewhat larger motors to get the same power and torque. These parts are available
directly as a kit from Stepperonline in China, and they’re a bit of a specialized variant, as
they use standard planetary gearboxes, but are supposedly tuned for extra low backlash. Backlash,
obviously, is something that will mess with any motion system, but especially when you’re trying
to precisely position something, you want to get it as low as possible. One thing I didn’t expect
was for all these motors to have encoders on them, which, in this case, allow the electronics to
detect when a motor isn’t moving exactly as it was instructed. The firmware doesn’t actively correct
for skipping motors, but at least it can catch it. So that should be all the parts that I need! Let’s
get started with the build. Of course, there is a build manual, I would be completely lost without
it, it’s 400 pages long though, thankfully, a lot of that is because it’s super detailed, but
there’s also lots of time spent on explaining the wiring and making sure you don’t switch anything
around there. The manual does recommend tinning wires that go into screw terminals, which will
work for a year or two, but I’ve had tinned wires go completely loose in these terminals, and that’s
obviously not a great thing for reliability. The terminals on this machine are all ok for bare
stranded wire, so just be careful you don’t splay them out and you’ll be fine without any tinning.
We’re starting the build at the bottom, with the base. For all the 3D printed parts, the holes
get drilled out to size, some of them get tapped, because everything in here is functional. There
is zero design or decor on this machine anywhere. Almost all of the hardware on here is metric,
which is great, the connectors are USB-C, love to see it, the wiring is still american wire gauge,
but that’s fine. And for the 3D printed parts, this isn’t a project that is using 3D printing
for 3D printing’s sake, it just happened to be the right solution for the challenge at
hand, and that’s quite refreshing to see. Building the AR4 means constantly jumping
between mechanical, electrical and sort of light organizing work. After getting the drivers
mounted, you immediately get to assemble the main turret bearings, which are enormous for the size
robot we’re building. These all slip into place a good bit too easily, and could probably use some
Loctite to keep them from spinning in their seats and on the shaft. I may need to take it apart
again, so I’m not locking anything in place yet. Because of that, there is noticeable play in this
assembly, but I’m hoping that tightening up these roller bearings later will take care of that.
The parts that mount to the main spindle are absolute chonkers, too, it seems like they
somewhat deviate from the manual, but with these holes not being deep enough, I can just grab
some longer screws and attach them that way. Then, everything gets attached to everything, there’s
grub screws that preload the bearing assembly, and with that on, we can grab the first motor, add the
key and pulley, and finally install and tension the first belt with two more grub screws. [...]
[Next up is a bunch of wiring, which is not very interesting to watch, so with the magic of
editing, I can go like this [snap] and that’s all done.] That was some tight work, this newest
generation of AR4 packs the electronics straight onto the robot instead of into a separate box, but
when you have to wire every connection up by hand, maybe a little more space would be nice.
The mechanical assembly certainly makes quite liberal use of the components, for the joint
2 motor, you actually take the gearbox apart, slide the mounting hardware onto the opposite side
of the mounting face, and then align everything back up and reassemble it. Maybe a split clamp
would be nice here? I did manage to mount the first arm backwards, but that’s an easy fix. With
the motor convinced into place, I did notice that the gearbox I just reassembled was running
quite unsmooth, almost like it was misaligned, so I took it all apart again, reseated both
stages of the gearbox, made sure the gears were installed in the correct orientation, but after
all that, it still ran just as poorly as before, maybe even a bit worse. But interestingly,
as soon as everything got tightened up, it started to run smoothly, so that’s good.
A lot of the building process is wiring. You get to solder and extend wires, route and
splice and sleeve cables left and right, everything is hardwired, which I disagree with,
and since the motors are already custom versions made specifically for the AR4, it should be
possible to get them made with the correct wire lengths instead of immediately having to cut off
the factory wiring and soldering on extensions. I’m sure it’s better than having to solder plugs
and making connecting wires like in the earlier versions of the AR arm, and maybe in a future
revision, we may start seeing them with longer wires and maybe even plugs on them. Well, I think
at this point, you’ve seen the basic gist of the mechanical assembly process, so I’m going to shut
up now, and let you enjoy the rest of the build. And we’re done! At this point, there is a sequence
of tasks that you get to do to get the robot arm running. You check that the motors work, check
the encoders, make sure the endstops all work… And with that all fixed, you calibrate the endstop
offsets by measuring the actual angles it parks at, and after that we can start programming
some routines. Now, I’ve only barely scratched the surface of the software that Chris custom-made
for the AR robots, but it’s actually very capable. The basic instructions are somewhat similar to
the gcode that you would run on a 3D printer, but it can actually do a lot more. You can program
loops, incremental offsets if for example you want to stack things, you can add if-then checks
with signals you attach to the spare inputs on the Teensy, you can add more servos or
digital outputs, there’s also the option to read instructions from a serial port, and there’s
even camera-based object recognition built in; it’s quite impressive and I found it really
easy to learn by just playing around with its features. I love learning things when
there’s direct visual, haptic feedback. So with 10 minutes of experimenting, I got
it to pick up some pliers, present them, and drop them in a different spot. Very nice!
You may have noticed that there is a good amount of wobble going on in the movement.
This arm is neither accurate, nor precise, rigid or smooth. There is a claim of 0.2mm
repeatability, but considering that the endstops only get within about a degree or
so every time it calibrates after powering on, and sometimes miss their target entirely,
that’s a bit of a stretch. Speaking of stretchy, four of the axes use pretty coarse belts, and
because they have to go around relatively small pulleys, without being afraid of overloading
the motor’s output shafts, I couldn’t get them tensioned enough to where they wouldn’t introduce
a significant amount of elasticity. The motors themselves, and this is 100% on OMC Stepperonline,
also don’t meet the promised “15 arcminutes”, aka 0.25° of backlash, I easily measured 0.5° or more
of backlash on almost every motor. And lastly, the way that some of the structural and bearing
assemblies are designed, for example with the combination of a single tapered roller bearing and
a thrust bearing on the other side, that’s just not a combination that can resist any torque from
the axis twisting, and you can feel that it has a good amount of elasticity in the bearing assembly
itself. There are also some obvious issues like needle bearings riding on aluminum shafts, grub
screws clamping down directly on bearing races or mating parts together with a screw that has
to pass through threaded sections in both parts that aren’t clocked correctly; so maybe take
the mechanical design of the arm itself with a grain of salt, it gets the job done creatively,
it’s just not textbook engineering material. And, you know, this project does deserve a bit
of slack, it’s literally just one guy doing mechanical, firmware and software who then also
manages to provide kits with the structural and electrical components, I couldn’t imagine
handling all those tasks at the same time, so Chris definitely deserves a hefty amount of
praise for managing all those things at once. So let’s move on and get some more stuff done. One
of the applications I was thinking of was grabbing printer beds off of the machine and then replacing
them with fresh ones, but that’s right at the edge of the capabilities of both the arm and myself, so
let’s start a little simpler and get a camera on here. This is what got me interested in robot arms
in the first place. Specifically, I want to create smooth orbiting shots around objects, so for that
I can simply tell the robot that the center of its tool is not just the camera lens itself, but
the center of the actual object I want to film, so if the object is 300mm away, I set the offset
to 300mm, and now if I just use the tool rotation commands, it will automatically keep it centered
and at the exact perfect distance. So with that, we get this:
[montage] There’s also spline moves, which interpolate a
path along multiple points. Remember that NERF shot I rendered of the tree supports? That was a
spline path. Basically, as long as the camera and the arm fit, I can recreate that now in real life.
But in this footage, you can still see a bit of wobble going on, and that’s already after
stabilization in Resolve. Straight out of the camera, which has hardware optical image
stabilization, there is a lot more shaking going on, and you can visibly see that on the robot as
well. I also need to figure out how to actually use the arc move and linear move commands, because
when I tried them, the robot would take off in the exact opposite direction that I told it to and
eventually crash. Though I do blame that on me not knowing the software well enough.
So what do you think? How should I put this robot arm to best use? You can actually
expand this thing by putting it onto a track, which makes it easier for it to smoothly move
the tool, because it can avoid those positions where it has to crank one axis all the way just
to get another one angled the way you want it. I also now sort of want to build a camera-specific
arm, one that is built to be smooth and large, but not necessarily fast or strong; there are
a lot of ways that I could take this project, so let me know in the comments below what
you would like to see. If you’re interested in getting more details about the AR4 robot
platform, I’ve linked the website and YouTube channel below where Chris walks you through the
build, the software and logic behind the arm, it’s a very good watch, so do check that out.
Sorry this video took so long to get out, after Open Sauce, I was down with the Sauce Sickness for
a while, so that delayed everything more than I would have liked, as always thank you to everyone
who’s supporting the channel, that genuinely means a lot to me, thank you all for watching, keep
on making, and I’ll see you all in the next one.