## 2 Autonomous Driving Control Algorithm
### GNSS-RTK/Motion Sensor Integrated Positioning Algorithm  
In autonomous driving of the crawler-type vehicle, the left and right track speeds are controlled to follow a specific route based on navigation information and waypoints. Therefore, a GNSS-RTK and a motion sensor integrated positioning algorithm was implemented to guarantee continuity of navigational information and accuracy and stability of autonomous driving. The GNSS-RTK/motion sensor integrated positioning algorithm was implemented by a loosely coupled integration based on an extended Kalman filter (EKF). A block diagram of the GNSS-RTK/motion sensor integrated positioning algorithm is shown in Figure 1. Since the proposed positioning algorithm is similar to the multi-sensor integration algorithm previously studied, please refer to [17; 18; 19; 20; 21]. When the accelerometer and gyroscope in the motion sensor measure specific forces and angular rates, respectively, the navigation solutions including position, velocity, and attitude are computed using the inertial navigation system (_INS_) mechanization (Figure 2). Moreover, the magnetometer in a motion sensor measures both the sign and the magnitude of the earth's magnetic field, and yaw is calculated by using the current position, attitude, and magnetic declination data and updated in EKF. The process of yaw computation using the magnetometers' measurement is composed of four parts: (1) tilt compensation to obtain horizontal magnetic measurements, (2) ferrous distortion compensation, (3) magnetic yaw computation, (4) declination angle compensation to adjust the true north. For details of _INS_ mechanization and yaw computation, please see [17; 18; 19] and [20], respectively. In addition, if  
Figure 1: Block diagram of a global navigation satellite system (GNSS)-real-time kinematic (-RTK)/motion sensor integrated positioning algorithm. the GNSS-RTK module provides the position and velocity information, the _GNSS_ update in EKF is carried out. In the EKF-based GNSS-RTK/motion sensor integrated positioning algorithm, the error state vector of the navigation part is composed of position errors (\(\delta\sigma\), \(\delta\lambda\), \(\delta h\)) expressed in the world geodetic system 1984 (WGS84) coordinate system, velocity errors (\(\delta v_{n}\), \(\delta v_{e}\), \(\delta v_{d}\)) in the navigation frame, and attitude errors (\(\delta\phi\), \(\delta\theta\), \(\delta\psi\)). The error state vector of the sensor part consists of accelerometer bias (\(\delta b_{x}\), \(\delta b_{y}\), \(\delta b_{z}\)) and gyro bias (\(\delta d_{x}\), \(\delta d_{y}\), \(\delta d_{z}\)), defined by the first-order Gauss-Markov processes. The dynamic model is expressed as:  
\[\delta\dot{x}=F\delta x+Gu, \tag{1}\]  
where \(F\) is the dynamic matrix, \(\delta x\) is the error state vector, \(G\) is the shaping matrix, and \(u\) is the white noise vector. Details about the dynamic matrix, the shaping matrix, and the white noise vector can be found in [21]. The measurement model is generally written as:  
\[z=H\delta x+w_{m}, \tag{2}\]  
where \(z\) is the measurement vector, \(H\) is the design matrix, and \(w_{m}\) is the measurement noise vector. The measurement vector for _GNSS_ (\(z_{GNSS}\)) is the difference in the position and velocity estimated from the _INS_ mechanization and the data acquired from the GNSS-RTK module, as expressed in (3):  
\[z_{GNSS}=\left[ \begin{array}{c}\varphi\\ \lambda\\ h\\ v_{n}\\ v_{e}\\ v_{d}\end{array} \right]_{\text{\emph{INS}}}-\left[ \begin{array}{c}\varphi_{ \text{\emph{GNSS}}}\\ \lambda_{\text{\emph{GNSS}}}\\ h_{\text{\emph{GNSS}}}\\ C_{b}^{n}\left[\begin{array}{c}V_{\text{\emph{GNSS}}}\\ 0\\ 0\end{array}\right]\end{array}