An idea for a cheaper robotic arm.

Robotic arms are expensive! Even if you build your own and don’t include your own labour in the cost they can still be prohibitively expensive. One of the major costs is the stepper motors which are used in almost all robotic arms.

They are often used directly in place on the arm as well and that direct drive means that arms which can lift anything substantial, are expensive. The motors being on the joints of the arm add to the weight of the arm which may have a large effect on what the arm can lift.

What isn’t expensive is the standard brushed motors used in cheap hovers, RC-cars and fans.

Last year I was doing a lot of thinking about home automation, having got a new flat during the summer. I finally had a reason to get wifi lights and a few google homes to control them with. One thing that I noticed about home automation systems is that they are all focusing on automating things that were never really an issue in the first place. Turning on lights as you go into a room was never a challenge and although it’s nice to be able to control the bedside lights from afar the real crux of home automation which is desirable are things like tidying up, doing the laundry and wiping down surfaces.

These tasks don’t even get a look in on current home automation systems. Why? Because they are fiendishly challenging undertakings. Easy for people, who have dedicated wetware for object recognition, positional awareness and hierarchical planning but trying to build a system which can do those things from a starting point of simple logic, not so easy at all.

One thing which I think would help is if there was a lower barrier to entry for working on these systems. Simulations of robots operating in the house notwithstanding running tests of your off-hand ideas for solving individual problems is really expensive. A robot capable of lifting something as heavy as a t-shirt costs on the order of £100 let alone a machine which could lift the whole washing basket or unload the finished washing machine.

That got me thinking could there be a better way? Computation has fallen exponentially in cost but actuators (things that induce the motion) have not fallen much in price at all.

With advances in 3D printing taking complex designs to fabrication is also not very expensive at all. The challenge then, in building cheap robotic arms is bringing the cost of motors down. Having studied computer science at university I am in no place to go redesigning the motor manufacturing pipeline in a way that could lead to an order of magnitude reduction in the cost but maybe there is a better way.

As I see the problem as an optimisation problem:

price = cost per actuator * number of actuators

I think there is a way to reduce both components of the price.

As I’ve explained stepper motors are expensive, about ten times the price of the simpler brushed motors for the same amount of power. The problem with the brushed motors is that the computer doesn’t know where it is in space without looking. In general, any use of robotic arms makes use of knowing exactly where the arm is and where it needs to go.

The solution I have for this was inspired by the following video on how a man built his own robotic digger using the brushed motors. Because he can use his eyes and vision modelling to know where the arms are, he has no issue with the lack of a stepper motor.

I think the idea of using syringes for a hydraulic system to change where the arm is a really good idea. It takes the weight of the motors off the arm and puts on the base instead.


Kinesthesia is the sense of where your limbs are without seeing them. How can we give a robot the same sense in an affordable way? I propose the use of linior potentiometers. These are what DJs use to change the volume and could be used in parallel to the seringe to present an analog representation of the position of each axis of motion the arm could engage with. This would allow the arm to understand it's position in space even when that position was changed by external forces. The signal from the potentiometer can be read and digitised by either an Arduino or any similar device with an ADC.

Both the arduino and the raspberry pi allow for the reading of analog input which allows for the input to be read from a potentiometer.

Amazon lists the potentiometers for 10p a piece, if these were linked up to the syringe and then attached to a simple brushed motor as is used in the above example then you would end up with something which had more awareness than the stepper motors for it would know where the arm was positioned even when external forces were moving the arm.


What about the reduction in the number of motors?

My proposal for the reduction in motors revolves around the complexity of a gear system being 3D printable and that the arrangement of the gears into the arm does not add to the cost. If this was done as a hobby project then it wouldn’t add to the cost. Otherwise, the complexity of composing the gears together would cause an issue. (This comes from the time spent putting things together doesn't add to the cost of a hobby but would the cost of a product) If the complex gear system could be put together by a robotic arm, then that might permit a cheaper mass production of the arms than similar arms that are made with the more expensive motors.

The gear system I propose is based on the idea of a multiplexer. In electronics, the analogue to digital or digital to analogue element of a system can be expensive. The number of such inputs/output to/from the main unit of a device might be smaller than is required for a project. A good example of a project where multiplexors are necessary is this yoga mat weight position project.

It turns out I'm not the first person to think about a physical multiplexer, I found the following design on youtube:

Theirs uses two stepper motors the selector might be required for this sort of system to work well. One benefit of the system used in the video is that when the axis of rotation are not “enabled” they are fixed in their location. This would allow the arm to hold something in position without power. This might increase the power efficiently of the arm in such a way that might help to increase the battery life if the arm was on a machine reliant on batteries.

I have tried to represent my design bellow. 

The selector motor really should be a stepper motor but much like how a car uses a relay system to step the system power up from the circuit used in the key to the circuit used to power the starter motor the selector stepper motor need not be very powerful at all.

The motor used to power the pressure on the syringe which gets transferred along the hydraulics to the arm could be a brushed motor. The issue would be getting it to stop, the moment it crosses the horizontal, like in the video. This could be down with a sensor which is made of a circuit which is completed every time the motor rotates through the horizontal. This would allow for the motor to switch off, or at least the switcher to start moving, forcing the motor to stop.

This would require another input to the system but no extra actuators.

If this design was to include a 1 - 6 multiplexor then we would have gone from 6 powerful stepper motors to just one, perhaps not very powerful stepper motor and one powerful brushed motor.

My understanding is that this should reduce the cost substantially while the only downside being that the arm can only move one axis at a time which is unlikely to be an issue in the housework tasks outlined.


Popular posts from this blog

Exploring development timing through building a simple trading game

The twelve fold way

THREE.js: minecraft in a weekend