Robot fault detection and remaining life estimation for predictive maintenance