http://acroname.com/robotics/info/ar.../irlinear.html