I use 2 types of position sensors for each joint :
- Absolute position sensor : potentiometer
- Incremental position sensor (encoder) direcly connected to the DC motors shafts.
Initially I only planned to use potentiometers on the joints, however I soon realized that due to the inevitable backlash of the joints, although small, I could not achieve a high performance position control, especially under heavy loads.
So I added A/B encoders on the DC motors shafts. I used encoder position for proportional and derivative control and potentiometer for integral control (See Joint Control System Section)
The potentiometers voltage, supposedly proportional to angle, is converted at a fast rate into position information through a 12 bits A/D converter embedded into the µController of each Joint Control Board (See Joints Control Boards Section).
However potentiometers are far from perfect as they deliver a noisy signal, are not so linear and slope (voltage/angle) differ from one potentiometer to another. This requests individual tuning. I tuned slope and zero angle but I did not go as far as using a calibration curve as linearity was acceptable considering the rather small angle range used (+/-40° max).
Potentiometers provide an absolute angle information when switching on the Joint Controller Board which is used to set the zero angle position of the encoder.
In my future experiments, I would like to replace potentiometers by absolute hall effect sensors which almost solve at once all the problems mentioned above, but these sensors are more expensive..
I use Potentiometers P11 10 kΩ with 6mm shafts from Vishay-Sfernice.
Potentiometers are mounted into 3D printed boxes. Supports, printed separately, are glued to the boxes.
Actuators output shafts are bored to 8mm. A lathed aluminium adapter is glued to the output shaft. I actually machined the adapter outer diameter slighly below 8mm and wrapped around 2 turns of painting tape before glueing it to the output shaft with Epoxy. The purpose is to build a crude torque limiter in case the actuator would like to travel beyond the potentiometer limit. This proved very usefull when tuning the position control of the actuators !..
The potentiometer shaft is stopped by a headless M4 screw.
As the shaft end of the potentiometer is slotted and the actuator shaft end is bored through, it is possible to insert a screwdriver to roughly tune the zero position (mid race) of the potentiometer prior to tighten the stop screw.
Example of position sensor fitted to the y3 hip joint.
Example of position sensor on the hip x2 joint.
Encoders are mounted at the rear end of the electric motors. It is necessary to have motors with the output shaft protruding for the rear end of the motor in order to fit the encoder wheel.
I use A/B encoder from Pololu with 12 steps per revolution.
The A/B encoder board is pinned and glued into a 3D printed case. Thes cases are then glued with Epoxy to the rear of the motor.
The magnetic wheel is glued to the shaft with Cyanoacrylate. It is important to have a small gap between the wheel and the hall effect sensors on the board. A small piece of paper can be used as a shim when glueing the wheel to set this gap.
The encoder casing is also used to have neat wiring of the motor.