## 3 Localisation of a City Bus with GNSS
### Hardware
The calibration procedure based on optimisation techniques was the one described in [49]. Once the system was calibrated, the synchronisation between sensors is based on software timestamps. We chose the u-blox RTK modules due to several reasons. The most important one is the possibility of operating in the moving base RTK mode, which can provide both the position and heading of a vehicle at the same time. What is more, there already exists software for easy configuration of these receivers for the Linux operating system. These receivers are also characterised by relatively low cost and are easily available, which was an additional and important factor from the commercial point of view, particularly during the pandemic times that made some electronic components hardly available. There are also other GNSS receivers available at a similar price, such as Piksi Multi from Swift Navigation and SKYTRAQ PX1122R; however, they lack the mentioned feature of heading estimation. For that reason, their usage would require manual and less accurate computation of heading angle based on the position of two antennas. Figure 2: Mounting positions of the GNSS antennas with respect to the geometry of a bus roof. The first antenna, connected to the moving base receiver, is mounted 0.2 m ahead of the rear axle and provides the position of a vehicle. The second one, connected to the rover module, is mounted 5 m in front of the first one and is used to calculate the bus heading. The next component is an LCD, which is simply used to present the graphical interface to the driver. It contains information about the actual position of a bus, the planned path, the desired steering angle, and path error. Its function and interface are more broadly described in Section 5. The last hardware component is an LTE module, which provides remote access and internet connectivity to the onboard computer. The module that we have selected is a generic one, and it is powered directly from the USB port of UP Extreme; thus, it starts automatically with all components. It is also used by the onboard computer to connect wirelessly to the stationary GNSS base station in order to receive the differential corrections. The purpose of differential corrections is to improve the accuracy of positioning by reducing some errors related to GNSS signal propagation and processing. To be more specific, the corrections contain information about the tropospheric and ionospheric delays, which are caused by the Earth's atmosphere. These delays affect the estimation of the pseudorange value, that is the distance between the receiver and each satellite, which is calculated using the time that the signal needs to travel between them. Moreover, GNSS corrections provide also information about the satellite clock biases which also affect these measurements, as the difference between the receiver and satellite clock is used to determine the signal travel time. The GNSS base station calculates them continuously based on the signal received from each satellite and the position of its antenna that is known and fixed [50]. Estimating these errors makes it possible to calculate so-called pseudorange corrections, which can be further sent to other receivers in order to improve their pseudorange computation and thus overall accuracy. This is possible due to the fact that the influence of the atmosphere on the GNSS signal propagation is similar for all receivers that are located at a relatively short distance of several dozen kilometres from each other. What is more, corrections contain also precise information about the satellites' orbit parameters, which are necessary to calculate their position at a given moment. They also improve the carrier phase measurements, which are based on the phase shift of the signal's carrier wave. These measurements are more complex in terms of computations than pseudoranges and require multiple information messages from the stationary base, which are sent together with the mentioned differential corrections.