This paper proposes a practical control system for track-keeping. The control system consists of a heading control loop (HCL) and a tracking control loop (TCL). Both have a state feedback and a state estimator. These control gains calculate analytically by pole placement method. The control system inhibits the closed-loop stability deterioration caused by hull motion parameter uncertainty. HCL takes explicitly the uncertainty into account in the control object and satisfies a specification (a damping factor) of the closed-loop stability. In TCL, the feedback chooses a configuration not to be affected by the uncertainty and the estimator chooses a configuration not to contain the hull parameter. The control system prevents occurring cross-tracking error. Disturbance components consist of a yaw angular velocity bias, a sway velocity bias and a tidal current component, are estimated by the estimator as offsets except for the sway velocity bias. Correction amount of the cross-tracking error is determined by the relationship between the estimated values and the disturbance components. The relationship is based on the fact that the disturbance components can not estimate all and the estimated values have error. Finally, the proposed technique verifies the validity by simulations.