# Why don't cheap toy robotic arms move smoothly?

Why don't cheap toy robotic arms like this move smoothly? Why can't it even move itself smoothly, (even without any load)?

In other words - what do real industrial robotic arms have, that cheap toys don't?

• Two words: Wealthy investors.
– Paul
Aug 18 '16 at 22:11
• Expensive robots like Packbot are also in trouble if they are climbing stairs. For stationary robots the main reason for this behavior is "too less metal, too less weight". Aug 18 '16 at 22:34

The reason the robotic arm that you linked to does not move smoothly is that the commands given to it are not smooth. That type of actuator does not have any internal logic to generate a smooth motion from one point to another. Instead it tries it's hardest to go to the angle commanded using position control. Hobby servos use PID control and this control method will oscillate around the target point if not configured correctly.

A secondary reason is probably that a combination of friction in the joints and too-big payload are near the maximum that those little motors can handle.

A person with more robotics experience could probably make that arm move a lot more smoothly as long as they operated it within the limits of what the design allows for.

Low cost, high performance, electro-mechanical devices are possible. A portable tape player is a great example if you are old enough to have disassembled one. The mechanisms inside a printer are also a good example. The internal mechanisms of an automobile are another example.

There is not a big enough market for toy robot arms to justify the engineering cost. The closest thing in robotics right now for low cost / high performance design is the Nao or the Baxter.

Cheap toy arms usually use cheap off the shelf servos, the kind you would find on model airplanes. Usually these servos don't have any control over speed. You give the servo the target angle and the servo tries to get to that position as fast as possible. They also don't compensate for things like load. With more expensive servos you give them both the target position and speed. There are also servos where you can play around with values (such as PID) and get information on things like load. This allows to to get smooth movement

Smooth control of a robotic arm is accomplished by force control instead of strictly by position control. This kind of control is generally referred to as compliance.

On that page there is a comparison between compliant and non-compliant actuators, where the non-compliant actuators are referred to as "stiff". This is, in my opinion, a great way to explain the "jerky" motion you see in the video. A stiff actuator passes any forces or torques back to the structure and does nothing to attempt to damp those forces.

Here is a video that shows the difference between force- and position-based control.

The reason for a lack of compliance in cheap robots is easily summed up in one word: Cost.

In order to implement force-based control, you need a means to sense force. This means force transducers such as strain gauges installed along the arm to measure forces in the arm or torque sensors at the joints. Both of these are more expensive to design, purchase, install, and program that it would be for a similar robot without compliance.

There is a relatively new method that enables force control and force sensing (among other things) that is called series elastic actuation.

Briefly, the concept is that you put a spring between the actuator and the load. The actuator then acts to compress the spring rather than drive the load directly. The force output of the spring is given by $kx$, where $x$ is the displacement of the spring. So two neat things are happening - if you can measure the displacement, then the load position is the actuator position plus spring displacement, and the force output is $kx$.

But again, to answer your question, cheap robots don't do any form of force control or compliance, so the rapid start/stop motion profiles @hauptmech mentions excites the physical structure. With nothing to damp the motion, those oscillations continue, giving a "jerky" appearance.

• PS - Here's a video of Disney compliance. It's how I first heard of compliant robotics, and well before I started college, too! Aug 19 '16 at 16:56
• The wiki article on compliant robots may not be the best to use; it's focused on a very specific subfield (compliant actuators research) and written from that perspective rather than robotics or actuation as a whole. I don't agree that smoothness of motion is dependent on force vs position control. That's a really nice video you linked. Aug 20 '16 at 4:07
• @hauptmech - I agree with all of your comments. I would argue that smooth inputs (S-curves) make smoother motions, but attempting to modulate the speed or position profile to explicitly avoid resonance is a form of control called input shaping. I think that, for industrial robot arms, they use compliant control over input shaping. Aug 20 '16 at 13:16

Poor programming algorithms, cheap motors, poor mechanics, low weight, lack of part rigidity, bad balance, farming out production to the lowest bidder, take your pick.

Or simply because they are cheap toys.

Judging from the video, I suspect the reason this robot's motions appear jerky is mostly due to friction and backlash in the drivetrain. Manufacturing precise gears to transmit motor torque to the joints is very expensive and not something somebody is going to do for a hobbyist level robot. Of course if the joints are direct drive, then I've misinterpreted the video, but I suspect the drivetrain is the culprit here.

Improving the joint control might help things, but there are limits. Disturbances caused by these sorts of phenomena can sometimes be impossible to compensate for via more sophisticated control without adding additional sensors. The reason is that the encoders are almost always placed on the motor side of the transmission and artifacts like backlash are never seen by the motor encoder, making it impossible to correct via feedback. While some feed forward techniques might be able to compensate, they would not be robust to arbitrary payloads.