Humans have many different senses. The five main senses are touch, hearing, sight, smell and taste. However, one of the most underestimated sense is proprioception. It is declined from touch and consists of knowing where your body and body parts are in terms of spacial orientation. In other words, you know your arm is on your computer mouse right now. Well, robots also need to have this sense to understand where they are in space. To achieve such sense, they need encoders. There are a lot of different declinations to these devices and here's what they are all about.I’ll speak in terms of rotary encoders since these are the most used in the robotic world.
These types of encoders are the most used in the industry. They are relatively cheap and are most of the time embedded into electrical motors. They work relatively to a start and an end position. In other words, you need to set the minimum and maximal values first and then the relative encoder knows exactly where it is between these 2 points. As I am looking beside me, my 3D printer is working with such encoders. The mobile platform is traveling on 2 axes (X-Y) with a timing belt and linear rods. At each side of the rod there is a limit switch (min and max value). Between these 2 limit switches, the motor has a certain amount of counts, so when the distance between both of these switches is known, the 3D printer recognizes the geometrical position of the mobile platform at each step.
Our Grippers work this way. You need to reinitialize the Gripper before using it. As you reinitialize the 2-Finger 85 for example, a mechanical stopper will limit the minimal and maximal strokes of the Gripper. The 0 count is when the Gripper is completely open. On the contrary, the 255 (8bits) position is the completely close position.
That being said, in a normal use (once the Gripper is initialized), the Gripper is fully open to bit 3 and is closed at bit 232. The remaining bits (232 to 255) are for the encompassing grasp.
The other type of encoders are absolute encoders. As the name suggests, this is the type of encoder that always knows where it is. In other words, in opposite to relative encoders, you don’t need to "reinitialize" them. They have a certain way to recognize that they are in a certain orientation. A good way to proceed is to fix a unique image, representing bits, on the motor rotor. This image is then read by a sensor and is in closed loop with the motor actuation system. This way each position of the rotation has a unique bit. You can then know exactly where the motor is after an emergency stop for example.
Some robots are using this type of device for safety concerns. Since you always know where the robot is, there is a very slim chance that the robot loses its north and starts acting strange. In opposite to relative encoders that can act strange when reinitializing them.
This is a very rough explanation of what encoders are exactly. Perhaps, there is not much more to know really. There are several different brands out there and probably as much ways to set encoders on a rotary or a linear device. You may want to know what type of encoder your device is using to make sure you are doing things right. For example, if you have relative encoders, you may want to reinitialize them more often to make sure there are right. Hopefully, I helped you on this one!