What are end effectors; well anything you can stick on the end of a robot device that interfaces with things. That can be a human like hand, two axis clamp, tri-axis gripper or even a spray device or vacuum plate. Some devices need to limit the force of their grip to avoid doing damage or on the other side apply enough grip to ensure the object will not be dropped. This does not apply to vacuum plates but in that case the vacuum pressure needs to be monitored to ensure a good enough seal is made. The whole idea is to ensure proper automatic manipulation of objects, not to have humans pick up after clumsy robots.
With motors, DC or AC, the force exerted is proportional to current, as it’s the current that causes the magnetic fields and the magnetic fields that create the prime force. At the end of any gear train, the resulting force, which is the prime force less the force to overcome friction (taking into consideration the mechanical advantage due to gearing), is reflected by the current. This is also true when stationary, except the friction is different but still present. The higher the gearing, the greater the friction and the ‘softer’ the relationship of current is to static force.
Taking a simple servo based end effector / manipulator, it is not immediately obvious how to control the force as it takes a position as its input; ie. go to a specific position. Have you considered what happens if it can’t get to that position. You’ve told it to grip a hard block, but the block is slightly bigger than the width you’ve told the simple single axis manipulator to grip. The servo will endlessly strive to attain its correct position, possibly overheating, depending on how far it is away from its specified destination. PID loops have a time component and the current increases with every millisecond that passes.
One solution is to give an overshoot destination on purpose, even to the point of telling the manipulator to grip to zero width. This would always result in over shoot, but if we measure the current continuously, as soon as it starts to peak above normal we repeatedly and rapidly back off the target destination until we reach the desired current that is proportional to the force we desire. This would be a software servo loop shell around the servo motor. The less the initial overshoot destination, or the slower the action of the manipulator the more controlled the servo shell action would be. Without being able to read the current position as with simple servos, and solely relying on current sensing it is still possible to do.
Other example would be having a grasping manipulator imitating a 5 digit human hand. Assume it is attempting to grip an irregular shape object like an egg; you could tell all five digits to go to maximum curl and monitor each servo current with its own servo shell. You may need to ‘weight’ the current of the thumb vs the current of the fingers, but each digit would reach a ‘natural’ curl position around the egg exerting an appropriate pressure. Not quite that simple as robot digits rarely have a second degree of freedom to ‘aim’ their force equally as humans do; still you get the idea. This concept of a shell servo can be applied to any axis of a robotic device.
Take the case of a Cobot; a collaborative robotic device to work interactively and at close quarters with a human. They may need to be strong, and with that strength, if inappropriate interaction occurs, the human can easily be harmed and the cobot needs to take swift and appropriate remedial action – usually in the form of backing off. This does not preclude the need for ‘bump’ sensors of many forms. Turning a robot arm into a cobot arm is no trivial matter. For legal safety reasons most non-collaborative robots cells are surrounded by fences to keep humans from getting injured.