Robotic Cable Insertion
A radical new approach to plugging in cables with industrial robots.
The Problem
Industrial robots don't move like humans do. They move between pre-determined coordinates with a level of repetitive accuracy that, somewhat counterintuitively, can be too good for the inaccurate reality in which we live. Something as simple as plugging in a cable is incredibly challenging for a robot, which will attempt to force its way through any slight misalignment between cable and socket, often damaging the parts.
It takes Alphabet's world-leading AI, DeepMind to solve the problem. Or does it?
The Project
Three coursemates and myself were working on the concept design of an automated testing system for a large electronics factory in Cheshire. The concept system required robotic insertion of cables, spawning two sub-projects: one coursemate investigated Computer Vision, while I looked at a novel technology called Active Compliance.
The factory had been attempting something similar in an assembly stage for many months with limited success, so the sub-projects had relevance outside of the concept system design.
Active Compliance
Compliance in robotics refers to flexibility or suppleness: it is an ability to adjust position or trajectory to external forces. A simple spring, for instance, provides passive compliance. Active Compliance refers to software solutions that mimic spring-damper behaviour in the joints of a robot. It is generally used in processes like sanding or polishing, to guide a robot arm over a workpiece while applying a constant force.
An Angled Approach
My idea was for the cable to approach the side of the socket at an angle, make contact with the surface, slide laterally into the socket, and attempt to push/twist its way in. The geometry of the angled contact would guide the cable into position, and, in theory, carefully controlled Active Compliance would allow the robot to adjust its position safely to the reaction forces. It would be almost like a human hand feeling its way in.
Force Mode
I prototyped the idea on an old UR-3 Cobot, making use of its Force Mode. While designed for sanding processes, the mode allowed variable compliance to be set about different axes. Universal Robot's easy-to-use user-interface was not designed for this level of complexity, so I programmed the robot in native URScript, the company's proprietary language with very poor publically-available documentation.
It is noted that although the project was a success, it would have much easier to solve if Design for Automation principles had been considered by the company from the very start.