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?
Robotics Stack Exchange is a question and answer site for professional robotic engineers, hobbyists, researchers and students. It only takes a minute to sign up.Sign up to join this community
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.
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.
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.