Introduction to the Open-Source RTKLIB:
Let’s Perform RTK Calculations on a PC

This article takes an average of 2 minutes and 30 seconds to read
Published March 3, 2025

What Is RTKLIB? Its Advantages and Use Cases
RTK (Real-Time Kinematic) positioning—a high-precision GNSS technique—is drawing attention in construction, civil engineering, and infrastructure maintenance. Whereas stand-alone GPS yields errors of several meters, RTK uses two receivers—a base and a rover—to cancel common error sources and achieve accuracies within a few centimeters. Commercial RTK GNSS systems, however, can be prohibitively expensive.
Enter RTKLIB, an open-source GNSS processing suite developed by Tomoji Takasu. RTKLIB is free to use and lets you perform RTK positioning with an ordinary PC and low-cost GNSS hardware, eliminating the need for pricey surveying equipment.
From as-built verification on construction sites and civil surveys to railway and highway maintenance and drone mapping, RTKLIB enables centimeter-level positioning at a fraction of the cost. Because it is open source, it is highly extensible and can be customized to fit your own workflows. This article explains in detail the benefits of RTKLIB and how to put it to work, bringing high-precision positioning within everyone’s reach.
Key Features of RTKLIB (Open Source, Multi-GNSS Support)
RTKLIB is an open-source package that provides a library and a suite of applications for RTK-GNSS processing. It runs on Windows PCs and Linux systems (including Raspberry Pi) and can be freely used and modified. It supports a wide range of satellite constellations—not only GPS but also GLONASS, Galileo, QZSS (Michibiki), BeiDou, and other multi-GNSS signals. RTKLIB can also handle multiple frequency bands (L1/L2/L5, etc.), allowing flexible analysis tailored to different environments.
Because RTKLIB is open-source, researchers and engineers around the world continually test and enhance it, making it easy to adopt the latest high-precision positioning algorithms. With the source code freely available, you can add new features or integrate the software with other systems whenever necessary. And since there are no licensing fees, even small and mid-sized organizations with limited budgets can deploy it—so RTKLIB sees wide use in everything from education and research to full-scale commercial projects.
Fundamentals of RTK Positioning and RTKLIB’s Role
To understand RTK positioning, start with its core principle: the system simultaneously collects GNSS observations at two points—a base station installed at a known set of coordinates and a rover located at an unknown position you wish to determine.The base station estimates the error components in its own observations—such as satellite-clock offsets and atmospheric delays—and transmits those estimates to the rover as correction data.The rover combines its own observations with the received corrections to compute its relative position vector with respect to the base station at very high precision. As illustrated below, both receivers pick up signals from the same satellites; by applying the corrections generated by the base, the rover can achieve centimetre-level positioning even at a distance.
RTKLIB’s role is to implement the computational core of RTK positioning in software. It can ingest observation data from both the base station and the rover, perform the positioning calculations in real time, and also carry out post-processing using recorded data.
Users simply specify to RTKLIB where to read the observation data (live GNSS receivers or log files) and where to send the output (on-screen display, log files, NMEA stream, etc.); the software then performs all positioning calculations internally. In other words, RTKLIB acts as the engine that handles the three core RTK tasks: collecting GNSS observations, applying corrections, and computing high-precision coordinates. For day-to-day use, graphical front-end applications are available so that even non-experts can operate the RTK engine with ease.
How to Install RTKLIB
Next, let’s walk through installing RTKLIB on a PC. We’ll cover two common scenarios: a standard Windows setup and a Linux setup (including the increasingly popular Raspberry Pi).
Setup Procedure on Windows
For Windows, you can download pre-compiled executables (binaries) directly from the official RTKLIB website. As of 2023, the latest stable release is the 2.4.3 series. A typical installation proceeds as follows:
-
Download RTKLIB: Visit the official website (https://www.rtklib.com) and download the Windows ZIP package (e.g., RTKLIB_bin.zip) from the downloads page. A link to the GitHub repository may also be provided.
-
Extract the files: Unzip the downloaded package to any folder you like. After extraction you will find a subfolder called bin inside RTKLIB_bin; this bin folder contains all the main RTKLIB executables, including the GUI applications and command-line tools.
-
Verify operation: No installer is required. Just double-click any of the .exe files in the bin folder and the corresponding program (e.g., RTKNAVI or RTKPOST) will start. Windows may display a security prompt the first time you run the software—if so, click Run (or Allow) to proceed.
Installation is now complete. Because RTKLIB is essentially a portable application, it doesn’t rely on the Windows registry or similar system components. Note: The GUI programs run only on Windows, but—as discussed later—the command-line tools also work on Linux.
Setup Procedure on Linux (e.g., Raspberry Pi)
On Linux you typically obtain RTKLIB’s source code and build it yourself. Installing it on a low-cost single-board computer such as a Raspberry Pi lets you create a portable high-precision positioning device. The basic installation steps are as follows:
1. Getting the source code: Open a terminal and clone the source from the official GitHub repository.
bash
Copy
git clone https://github.com/tomojitakasu/RTKLIB.git
Alternatively, you can download the ZIP archive and extract it.
2. Build the project: Change into the cloned RTKLIB directory and run the shell script makeall.sh.
bash
Copy
cd RTKLIB/app chmod +x makeall.sh # give execute permission if needed ./makeall.sh
This script compiles all of RTKLIB’s sub-programs in one go. If the build succeeds, executables such as rtknavi and rtkrcv will appear in the corresponding subfolders under app.
3. Optional—set up your PATH: After compiling, binaries such as those in RTKLIB/app/rtkrcv/gcc/ can be added to your system PATH so you can run the commands from any directory. Copy them to /usr/local/bin or append each RTKLIB gcc folder to your shell’s PATH as needed.
On Linux, you mainly work with CUI (command-line) tools. GUI programs such as rtknavi.exe can run under an X-Window environment, but on devices like the Raspberry Pi most users opt for lightweight, interactive console programs—rtkrcv for real-time processing and str2str for streaming. The core functions and algorithms are the same as in the Windows GUI version, so you can perform RTK processing on Linux without any loss of capability.
Basic RTKLIB Operations
RTKLIB provides several executables tailored to different tasks. The most notable include RTKNAVI, a GUI application for real-time processing, and RTKPOST, a GUI tool for post-processing, and STRSVR / RTKRCV, streamer/console applications used to collect and relay observation data.Let’s go through the basic usage of each tool, step by step.
Acquiring Observation Data and Preparing for Analysis
First, you need to obtain observation data for RTK analysis with RTKLIB. RTKLIB can either ingest data in real time from an external GNSS receiver or read log files that were recorded beforehand. The main categories of observation data include:
-
Receiver binary data: Raw, vendor-specific formats (e.g., UBX files from u-blox receivers).
-
RINEX data: A standard text format that records satellite observations. Raw data can be converted to RINEX for processing.
-
RTCM messages: The standard format for correction data broadcast by base stations, often delivered via Ntrip.
When performing real-time processing, connect a GNSS receiver to the rover-side PC (via USB, serial, etc.) and simultaneously obtain base-station data. The base data can come from a second receiver that you install as a fixed station, or from a public CORS network or a commercial Ntrip correction service. RTKLIB is designed to handle multiple input streams at once; by configuring these inputs in RTKNAVI (explained later) you can acquire and process the observations in real time.
For post-processing, prepare observation files (RINEX or similar) for both the rover and the base, load them into RTKPOST, and run the solution there. One critical point when logging data is that the files must include raw carrier-phase measurements. Typical low-cost GPS chips (e.g., those inside smartphones) cannot record this information; you need high-precision modules such as u-blox NEO-M8T, ZED-F9P, or a survey-grade GNSS receiver. In short, suitable hardware is essential for centimeter-level RTK positioning.
Real-Time Processing with RTKNAVI
To perform RTK positioning in real time with RTKLIB, the GUI application RTKNAVI is the most convenient tool. When you launch RTKNAVI, a window opens where you can define input streams and processing options. The basic workflow is as follows.
-
Configure the input streams: Click the “I” button (Input Streams) at the top of the main window and specify the observation-data sources.Typically, you enable two inputs—(1) the rover and (2) the base station—and set the data type and connection method for each.For example, you might set Rover to Serial and specify your GNSS receiver’s port, while setting Base to Ntrip Caster and entering the reference-station service’s host information.
-
Configure RTK options: Click the “Options…” button at the bottom of the main window to set various parameters for the RTK calculations. For a moving rover, choose Kinematic under Positioning Mode. Select the frequency—L1 only or L1 + L2—to match your receiver. You can also choose ionospheric/tropospheric models and satellite-orbit options; the defaults (broadcast values) are generally fine.You can adjust advanced items—such as filter-initialization criteria and cycle-slip detection parameters—under the “Settings2” tab, but the default values are fine for a first run.Finally, open the “Positions” tab and enter the base-station coordinates. If the incoming base data includes RTCM message 1005 (antenna position), select RTCM Antenna Position to import the known coordinates automatically. When you’re done, click OK to close the window.
-
Start processing: Back in the main window, click “Start” to begin real-time computation. The current solution status appears on the left side of the screen, while signal strength and satellite status graphs are shown on the right. The solution starts in Single mode, then—after a few to several seconds, once corrections are applied—switches to Float (floating solution, fix in progress). When conditions are suitable, it eventually reaches Fix, providing centimetre-level accuracy.
During real-time processing, the status pane shows the solution type (Single, Float, or Fix) and key ratios such as the ambiguity-resolution ratio. When a stable Fix is maintained, the RTK solution is generally accurate to within a few centimeters. RTKNAVI can also stream the solution as NMEA messages via a serial port or over the network, allowing other software or devices to make real-time use of the position data.
Post-Processing with RTKPOST
Even if you couldn’t run RTK in real time on site, you can still achieve high-precision results later by post-processing the logged data—a workflow known as PPK (Post-Processed Kinematic). RTKLIB’s GUI application RTKPOST is designed for exactly this purpose. The basic procedure is as follows.
-
Specifying observation files:
When you start RTKPOST, it opens a screen where you designate the input file paths for Rover (rover observations), Base (base-station observations), and Nav/Clock (navigation messages / satellite-clock data).First, assign the rover’s RINEX observation file to Rover, the base station’s RINEX observation file to Base, and the necessary navigation data—such as a RINEX .nav file or a precise-ephemeris .SP3 file—to Nav. You may also specify clock-correction files or SBAS message files if needed, but the RINEX observation and navigation files are usually sufficient. -
Set the processing options: Click the “Options” button to define the analysis parameters. Most settings mirror those used in real-time mode, but post-processing often requires you to enter the base-station coordinates manually. If you know the base’s precise position, type it into the Base Station fields. If you leave these set to Unknown, RTKPOST will use the coordinates in the observation-file header (the RINEX APPROX values).Choose the computation mode—Kinematic for a moving rover or Static for a stationary one. If the rover remained still for long periods, Static mode usually yields a more stable solution. The remaining options (filters, error models, and so on) can generally stay the same as in the real-time setup. Click OK to save the settings.
-
Run the post-processing and review the results:
Back in the main window, click “Execute” (the ▶ icon) to start post-processing. A progress bar appears; when processing finishes you obtain a time-series solution for the rover’s coordinates. RTKPOST saves the output as a text file with the extension .pos (by default, it uses the rover filename plus .pos). Each epoch’s record includes the time, coordinates, solution type, number of satellites, and other details. A summary also appears in the RTKPOST window, and you can click the Plot button to launch RTKPLOT for visualising the trajectory.
A key advantage of post-processing is that you can sometimes obtain a Fix solution that was impossible in real time—thanks to ionospheric-error modelling and batch processing of data before and after each epoch. You can also tweak positioning parameters and rerun the calculation as often as needed, quickly comparing different scenarios. For example, RTKPOST lets you test in minutes how accuracy and Fix-rate change when you use multi-GNSS versus GPS only. In remote mountain valleys where real-time fixes are hard to achieve, a common workflow is to record the logs in the field and perform precise PPK processing back at the office.
Tips for Improving RTK Positioning Accuracy
When using RTKLIB for high-precision positioning, keep the following key points in mind to further enhance accuracy and reliability.
-
Choose the right GNSS receiver and antenna
RTK requires a receiver that records carrier-phase measurements. Even inexpensive modules now support RTK, but whenever possible use a multi-band (L1/L2) receiver and a survey-grade antenna. Dual-frequency units make it easier to remove ionospheric error, shorten initialisation time, and hold a FIX solution longer. High-quality antennas—ideally with a ground-plane or choke-ring design—also reduce multipath error. -
Mind base-station quality and distance
The correction data must be stable and accurate. For your own base, set precise coordinates and mount the antenna in an unobstructed location. When you rely on public CORS or an Ntrip service, choose the nearest station; the farther the rover is from the base, the less effective the corrections become. A separation of a few tens of kilometres is generally the practical limit. -
Leverage multi-GNSS
Adding constellations beyond GPS (e.g., GLONASS, Galileo) increases the satellite count and improves solution reliability—especially in cities or mountains where the sky view is restricted. More satellites mean better geometry and a higher chance of maintaining a FIX. In Japan, QZSS (Michibiki) keeps at least one satellite near the zenith, further boosting accuracy. RTKLIB supports multi-GNSS processing, so take advantage of it if your hardware allows. -
Plan for outages and signal blockages
Entering a tunnel or losing RF can temporarily drop the solution to “Lost.” Fast recovery depends on receiver tracking performance and filter settings. If needed, adjust RTKLIB’s cycle-slip detection thresholds, or consider augmenting with an inertial sensor. Advanced tuning requires expertise, but in most cases the best remedy is simply ensuring the cleanest, most stable reception possible.
By following the points above—selecting the right hardware and optimizing the operating environment—RTKLIB can achieve positioning accuracy on par with commercial-grade systems.
Benefits of Adopting LRTK
Running RTK positioning with RTKLIB on a PC is flexible and powerful, but it also presents hurdles: you have to hook up the GNSS receiver yourself, configure the software, and bring a laptop to the field. On survey and construction sites, teams often need something simpler and more reliable. That is precisely what LRTK, the high-precision positioning solution from Lefixea, is designed to provide.
LRTK is an integrated solution that makes RTK technology easy to use in the field. Its key strength is that a compact, purpose-built GNSS receiver, a smartphone app, and a cloud service are delivered as a single package. Attach the “LRTK Phone” module to your handset and the phone instantly becomes an RTK receiver. Helmet-mounted and other wearable versions are also available, letting crew members obtain their own centimetre-level position in real time simply by putting the device on. This field-oriented ease of use is LRTK’s greatest appeal.
So, how should you decide between open-source RTKLIB and LRTK? In short, use RTKLIB for technical trials and in-house customization, and turn to LRTK when you need an out-of-the-box solution for day-to-day work. RTKLIB offers great flexibility and keeps costs low, but system setup and troubleshooting are the user’s responsibility.
In contrast, LRTK is delivered as an all-in-one package with hardware and software already optimized, so even non-experts can have it up and running in minutes. Take base-station management, for example: with RTKLIB you would have to set up your own Ntrip caster or pay for a service, whereas the LRTK cloud includes the ability to broadcast corrections to multiple rovers simultaneously right out of the box.
As a result, sophisticated workflows—such as several crews performing RTK positioning simultaneously from a single base station—are easy to implement with LRTK. Because it is a commercial service, LRTK also offers robust support and reliable operation, giving you peace of mind should any issues arise.
A practical strategy, then, is to start with RTKLIB to learn the fundamentals and run small-scale tests, and later adopt a dedicated solution like LRTK when you move to full-scale deployment. In the next section, we’ll look at LRTK in detail and explain how to request further information.
Significantly Improve Surveying Accuracy and Work Efficiency on Site with LRTK
The LRTK series enables high-precision GNSS positioning in the fields of construction, civil engineering, and surveying, allowing for reduced work time and a significant increase in productivity. It is also compatible with the Ministry of Land, Infrastructure, Transport and Tourism's i-Construction initiative, making it an ideal solution to accelerate the digitalization of the construction industry.
For more details about LRTK, please visit the links below:
-
What is LRTK? | LRTK Official Website
-
LRTK Series | Device List Page
-
Case Studies | Examples of On-Site Applications
For product inquiries, quotes, or consultations regarding implementation, please feel free to contact us via this contact form. Let LRTK help take your site to the next stage of development.