Deskbot: Part 2 — Assembly
My order of parts has arrived. The frame and gripper are made of cut and bent aluminium (I suspect it’s water-jet cut rather than laser) and has quite a nice matte finish on it. Everything is held together by M3 machine screws, and the nuts are plain and not locking except on the gripper. I expect to have to periodically tighten them.
The gripper part came pre-assembled. It has an interesting linkage that keeps the gripper jaws parallel while opening and closing, and is actuated by one servo. However, all the joints are just screws. Unfortunately this means that it’s necessary to get the screw tightness just right to avoid seizing up the joint, but not too loose so that the joint rattles around.
Once installed, I was able to use the servo control board’s software to move the servos around.
This is when I realised that USB power alone wasn’t going to cut it, and that I’d need to get a better power supply for when I start using the robot for real. I ordered one from Amazon, which turned out to come with an eye-searingly bright display.
Bench supplies are excellent supplies for projects due to their variable output, and over-current/constant-current protection. I’m much more willing to possibly short out a bench supply, which can easily protect itself and also show me the problem, than a regular power brick which could silently die/melt/explode.
With a proper supply, I put together the rest of the robot
The windows-based servo control tool that came with the board lets me record and play back stored moves, so even with this rudimentary set up it was possible to do some fun things.
But we’re just getting started here. Playing back pre-recorded servo moves is just the start.
However, as the video shows, there’s a significant amount of wobble in the design. The whole thing sits on a single servo in the base, so as you go up the arm, each servo is progressively carrying more and more load, until you get to the base servo, which carries the entire load of the arm on its axle, surely not a good option for any kind of load-carrying work. It feels like the whole arm can easily snap off the servo at this point, and is likely to need to be reinforced somehow. I would be far more comfortable if the arm sat on a turntable with appropriately wide thrust bearings, and with the servo only providing the torque for turning.
Furthermore, the shoulder servo, the next one up from the base, is carrying a lot of torque of the arm when out-stretched. This servo is likely to need to be the highest torque rated servo in the robot. I’m currently using the inexpensive servos rated at 12kg/cm torque. 12kg seems high, but the arm extends to over 24cm long, meaning actual load-carrying capability of the robot when fully outstretched is just 0.5kg which if you factor in the weight of the robot itself, means it would only be able to lift maybe 200g of load, and that’s assuming the motors are actually able to generate this torque. So in the worst case, we would want to up-rate the shoulder servo. The other servos like the elbow are much less impacted as it only has half the moment arm, and also less load, so its torque requirements are much lower.
Incidentally, having assembled this robot, I’ve started seeing it everywhere, like on the homepage of Coursera, or some blog about robotics in medicine.
In the next part, I’ll start doing some 3D modelling so that I can put an accurate representation of the robot into ROS so that I can do proper self-collision detection and path planning.