For robot manipulators, there are two types of disturbances. One is model parametric uncertainty; the other is unmodelled parameters such as joint friction forces and external disturbances. Unmodelled joint frictions and external disturbances reduce performance in terms of positioning accuracy and repeatability. In order to compensate for unmodelled parameters, the design of a new controller is considered. First, the modelled and unmodelled parameters are included in a dynamic model. Then, based on the dynamic model, a new Lyapunov function is developed. After that, new nonlinear joint friction and external disturbance estimation laws are derived as an analytic solution from the Lyapunov function; thus, the stability of the closed system is guaranteed. Better values of the adaptive dynamic compensators can be extracted by fuzzy rules according to the tracking error. Limitations and knowledge about friction and external disturbances are not required for the design of the controller. The controller compensates for all possible model parameter uncertainties, all possible unknown joint frictions and external disturbances.