A combination of model-based and iterative learning control (ILC) is proposed as a method to achieve high-quality motion control of direct-drive robots in repetitive motion tasks. We include both model-based and learning components in the total control law, as their individual properties influence the performance of motion control. The model-based part of the controller compensates much of the nonlinear and coupled robot dynamics. A new procedure for estimating the parameters of the rigid body model, implemented in this part of the controller, is used. This procedure is based on a batch-adaptive control algorithm that estimates the model parameters online. Information about the dynamics not covered by the rigid body model, due to flexibilities, is acquired experimentally, by identification. The models of the flexibilities are used in the design of the iterative learning controllers for the individual joints. Use of the models facilitates quantitative prediction of performance improvement via ILC. The effectiveness of the combination of the model-based and the iterative learning controllers is demonstrated in experiments on a spatial serial direct-drive robot with revolute joints.