Experimental Robotics by Peter Corke & James Trevelyan