I believe that you can probably do interpolation, but as you implied it may be different for different servos. There is a posting up on Lynxmotion (http://www.lynxmotion.net/viewtopic.php?f=31&t=3172
) that shows some of the different ranges of pulses that different servos expect and the ranges they support.
Awhile ago when I converted my Lynxmotion Brat (with Hitec analog servos) to run with an Axon2, I used a simple define to do the conversions from tenths of a degree to webbotlib units:
#define ANGLE1_TO_DRIVESPEED(ang) ((long)(ang) *127)/900
I do something similar with my standard C version that I run on my C libraries for running on the Basic Atom Pro28. For this my unit are in us.
#define ANGLE1_TO_SERVO_PW(ang1) ((((long)(ang1) * 1666) / 1600)+1500)
This was based off previous code that ran on a Basic Atom Pro 28.
That code converted the angles to HSERVO units which are clock units (16mhz), with 0 as the center point...