For those of you not in-the-know, the LSI encoder chips used on our I/O board must have the count reset following the first quadrature encoder state change (the first ‘tick’) after power-on.
This is kindof a hassle, since every time you power on the robot you must physically displace each joint to generate that first tick. I spent part of yesterday and today working on an automated sub-routine in the Raven_II initialization phase. It seems, however, that the USB driver doesn’t work well when the read-write cycle is interrupted with an additional write request to reset the encoders.
So, my idea for a workaround is a secondary applet to be run before the main robot control code. The applet will bump the encoders and reset the board. This could possibly be worked into the roslaunch script.
However, since this is a secondary task (read:feature creep) I’m putting that phase on hold and continuing my verification of the fwd/inverse kinematics functions.