Calibrating Servo Hones Finally we get to touch some PCB. The RCB-1's are small. They each has a PIC16F873A processor with 128k of memory and the two of them are linked and function as one.   The manual instructs to leave the daisy-chain connected RCB-1s as they come and plug in the battery and the servo as shown here.  When you turn on the power (see the rightmost switch in the picture below), you hear a buzzing noise from the motor and gear and red & yellow LEDs start flickering on the right side of both switches. The axel is being rotated by RCB-1 to its "initial position". This, I assume is the middle (0°) position on the output axis (where -90° is the minimum and +90° is the maximum). Any further attempt to rotate the axel while it is disconnected from the board and power, will not replace the "initial position" with anything else. The moment you turn the controller on again, the servo will go right back to its initial position. I tried to play with this new trick a few times and it seems to be consistent.  The "Servo Hone" is a round plastic surface that attaches to the servo's axel. The "Free Hone" is a similar round plastic surface that attaches to the backside of the servo. The difference between the two is that the Servo Hone has small internal grooves that disallow it from rotating freely while the Free Hone doesn't have grooves and hence can rotate freely. The Hones in turn have 8 holes that allow it to be screwed onto the surrounding bracket. There are little numbers (1-4) barely visible on the Hone front in a cross formation (North, South, East, West). Don't know what they are but anal retentive that I am, I put the 1 on top. So basically these little groves are a key element in the transfer of 8.5kg/cm of torque from the servo to the robot structure. The Hones come with some screws and washers to firmly connect them to the servo.   The Servo Hone, has to be fixed onto the servo's axis so that two top-bottom holes are aligned with the vertical axis of the servo's front face. It's a tricky business because the grooves on the servo's axis give the Hone a discrete angular resolution and you are tempted to force (rotate) it to the perfect vertical. Which doesn't result in anything good because the servo has its own idea of where the "initial position" is even if it is not in perfect alignment with the servo's vertical.   Another thing I realized is that it is easier to push on the Hone just enough to get it grip with the axis while the RCB-1 is turned on because (as is the nature of digital servos) the servo puts up some torque to keep the axis in its "initial position". This way I don't have to turn the power off, put on the Hone and discover that I inadvertently rotated it away from the initial position and need to take off the Hone and start again. Once the Servo Hone's grooves are aligned with the servo's axel grooves, I switch off the RCB-1 and then force the hone in all the way with the thumb. Then a screw and washer are applied to make sure Hone doesn't escape. The screw driver will eventually rotate the servo rather then screwing in the screw so I used a couple of pliers to hold the Hone in place. The Free Hone on the back has to be loose so no point in screwing it too hard to the servo case.   After fixing the Hone I turned the RCB-1 on again just to make sure that the Hone goes back to the vertical position. It always did. Again, the reason is that the servo output axis can only do 180. The neutral position is at 0°. The feedback mechanism comes from a potentiometer attached to the output shaft. The potentiometer is used in a voltage divider that produces a voltage proportional to the current angle. That's why turning the servo around while it is offline wont help much because the potentiometer will know what you did when you turn the servo on again. Check out some of these links for more information about how digital servos work. I can only imagine what happens if you don't align the Hone using this subtle procedure and then you assemble the the robot and screw the Hones to the brackets forcing the hole to align with the brackets. If you were to do this and have your KHR-1 nicely standing, you then plug the servos to the RCB-1, flick on the switch and you'll get an unpleasant effect of robot booting into its "real standing position" which (a) may be funny and (b) may consume up your battery trying to move to positions that are physically blocked. In addition, you may be limiting the available 180° of freedom that the designers of this robot have probably put much thought into ensuring they are all usable in a logical way. We'll see how close my settings are to the real vertical axis. Did I mention that all 17 servos have to have their Hones attached using this procedure ? 
|