## 2 Algorithm  
### Multi-Epoch Double-Differenced Pseudorange Observations (MDPO) Algorithm  
In a pseudorange-based algorithm, the pseudorange (\(\rho\)) observation between one user and one satellite is presented by the following equation:  
\[\rho_{R}^{S}(t_{i})=r_{R}^{S}(t_{i})+c\Big{(}d\tau_{R}(t_{i})-dT^{S}\Big{(}t_{i} ^{s}\Big{)}\Big{)}+\omega_{R}^{S}(t_{i}) \tag{1}\]  
\[r_{R}^{S}(t_{i})=\sqrt{\Big{(}x^{S}\Big{(}t_{i}^{s}\Big{)}-x_{R}(t_{i})\Big{)} ^{2}+\Big{(}y^{S}\Big{(}t_{i}^{s}\Big{)}-y_{R}(t_{i})\Big{)}^{2}+\Big{(}z^{S} \Big{(}t_{i}^{s}\Big{)}-z_{R}(t_{i})\Big{)}^{2}} \tag{2}\]  
where \(\Big{(}x^{S}\Big{(}t_{i}^{s}\Big{)},y^{S}\Big{(}t_{i}^{s}\Big{)},z^{S}\Big{(} t_{i}^{s}\Big{)}\Big{)}\) is the satellite position at the time of signal transmission \(t_{i}^{s}\), \((x_{R}(t_{i}),\ y_{R}(t_{i}),z_{R}(t_{i}))\) is the user position at the time of signal reception \(t_{i}\), \(c\) is the speed of light, \(d\tau_{R}\) is user clock bias, \(d\tau^{S}\) is satellite clock bias, and \(\omega_{R}^{S}\) is receiver observation error. In this study, we assume that receiver observation error \(\omega_{R}^{S}\) follows a white Gaussian distribution. The coordinate frame of the satellite position and user position is based on a topocentric frame that is a Moon-fixed frame, with the origin of the frame being at the user position: i.e., the \(x\)-axis points local east, the y points local north and the \(z\)-axis points local up (East-North-Up). The equations are formulated using the relative position between the satellite and the user, and both the satellite and user positions have a constant rotational offset with respect to the Moon-centered inertial frame. A method called double difference is used to remove both the satellite and user clock biases from estimation parameters, by subtracting four pseudorange observations between two users (user1, user2) and two satellites (satellite1, satellite2), as shown in Equations (3)-(7):  
\[\rho_{1}^{1}(t_{i})=r_{1}^{1}(t_{i})+c\Big{(}d\tau_{1}(t_{i})-dT^{1}\Big{(}t_ {i}^{1}\Big{)}\Big{)}+\omega_{1}^{1}(t_{i}) \tag{3}\]  
\[\rho_{1}^{2}(t_{i})=r_{1}^{2}(t_{i})+c\Big{(}d\tau_{1}(t_{i})-dT^{2}\Big{(}t_ {i}^{2}\Big{)}\Big{)}+\omega_{1}^{2}(t_{i}) \tag{4}\]  
\[\rho_{2}^{1}(t_{i})=r_{2}^{1}(t_{i})+c\Big{(}d\tau_{2}(t_{i})-dT^{1}\Big{(}t_ {i}^{1}\Big{)}\Big{)}+\omega_{2}^{1}(t_{i}) \tag{5}\]  
\[\rho_{2}^{2}(t_{i})=r_{2}^{2}(t_{i})+c\Big{(}d\tau_{2}(t_{i})-dT^{2}\Big{(}t_ {i}^{2}\Big{)}\Big{)}+\omega_{2}^{2}(t_{i}) \tag{6}\]  
\[\Delta\
abla\rho(t_{i})=\rho_{1}^{1}(t_{i})-\rho_{1}^{2}(t_{i})-\Big{(}\rho_{ 2}^{1}(t_{i})-\rho_{2}^{2}(t_{i})\Big{)}=r_{1}^{1}(t_{i})-r_{2}^{2}(t_{i})- \Big{(}r_{2}^{1}(t_{i})-r_{2}^{2}(t_{i})\Big{)}+ \tag{7}\]  
where \(\Delta\
abla\) denotes double difference. In the double difference method, user2 is used as a reference station whose position is fixed and known, and the position of user1 is estimated in relation to the position of user2; i.e., user2's position is referenced as the origin of navigation (0,0,0). In a lunar navigation system, the lander can be used as a reference station (user2), and its geodetic position is used as the origin of navigation. Note that the geodetic position of the lander must be obtained in advance of the start of the rover navigation by other means, such as identification by satellite image. Hereafter, the rover corresponds to user1 and the lander corresponds to user2. In the MDPO algorithm, multiple double-differenced pseudorange observations, i.e., \(\Delta\
abla\rho(t_{k}),\dots,\Delta\
abla\rho(t_{k+N-1})\), are obtained from multiple epochs, i.e., \(t_{k}-t_{k+N-1}\), where N is the number of observed epochs, and k is the epoch number at which the estimation starts. Note that the rover position must be fixed during multi-epoch observations taken in place in order to keep the number of estimation parameters less than the number of observation equations.