MRTKLIB 0.7.14
Modernized GNSS Positioning Library
Loading...
Searching...
No Matches
mrtk_ppp_rtk.h
Go to the documentation of this file.
1/*------------------------------------------------------------------------------
2 * mrtk_ppp_rtk.h : PPP-RTK positioning type definitions and functions
3 *
4 * Copyright (C) 2026 H.SHIONO (MRTKLIB Project)
5 * Copyright (C) 2023-2025 Cabinet Office, Japan
6 * Copyright (C) 2024-2025 Lighthouse Technology & Consulting Co. Ltd.
7 * Copyright (C) 2023-2025 Japan Aerospace Exploration Agency
8 * Copyright (C) 2023-2025 TOSHIBA ELECTRONIC TECHNOLOGIES CORPORATION
9 * Copyright (C) 2015- Mitsubishi Electric Corp.
10 * Copyright (C) 2014 Geospatial Information Authority of Japan
11 * Copyright (C) 2014 T.SUZUKI
12 * Copyright (C) 2007-2023 T.TAKASU
13 *
14 * SPDX-License-Identifier: BSD-2-Clause
15 *----------------------------------------------------------------------------*/
16/**
17 * @file mrtk_ppp_rtk.h
18 * @brief PPP-RTK positioning engine declarations.
19 *
20 * References:
21 * [1] claslib (https://github.com/mf-arai/claslib) — upstream implementation
22 * ppprtk.c: PPP-RTK positioning engine with double-differencing
23 *
24 * Notes:
25 * - Ported from upstream claslib ppprtk.c as an independent positioning
26 * engine alongside the existing MADOCA PPP engine (mrtk_ppp.c).
27 * - MADOCA = PPP (undifferenced), CLAS = PPP-RTK (double-differenced).
28 * - These are fundamentally different positioning methods that coexist.
29 */
30#ifndef MRTK_PPP_RTK_H
31#define MRTK_PPP_RTK_H
32
33#ifdef __cplusplus
34extern "C" {
35#endif
36
37#include "mrtklib/mrtk_nav.h"
38#include "mrtklib/mrtk_obs.h"
39#include "mrtklib/mrtk_opt.h"
40#include "mrtklib/mrtk_rtkpos.h"
41
42/**
43 * @brief Write PPP-RTK solution status to buffer.
44 * @param[in,out] rtk RTK control/result struct
45 * @param[out] buff Output buffer
46 * @return Number of bytes written
47 */
48int ppprtk_outstat(rtk_t* rtk, char* buff);
49
50/**
51 * @brief Compute number of estimated states for PPP-RTK.
52 * @param[in] opt Processing options
53 * @return Total number of states (position + iono + trop + bias)
54 */
55int ppp_rtk_nx(const prcopt_t* opt);
56
57/**
58 * @brief Compute number of non-ambiguity states for PPP-RTK.
59 * @param[in] opt Processing options
60 * @return Number of non-ambiguity states (position + iono + trop)
61 */
62int ppp_rtk_na(const prcopt_t* opt);
63
64/**
65 * @brief PPP-RTK positioning for one epoch (CLAS).
66 *
67 * Main entry point for the CLAS PPP-RTK positioning engine, ported from
68 * upstream claslib ppprtk.c. Uses double-differencing with CLAS grid
69 * corrections (STEC, ZWD) and iterative Kalman filter with LAMBDA AR.
70 *
71 * @param[in,out] rtk RTK control/result struct
72 * @param[in] obs Observation data for epoch (rover only)
73 * @param[in] n Number of observations
74 * @param[in,out] nav Navigation data (includes SSR via nav->ssr[])
75 */
76void ppp_rtk_pos(rtk_t* rtk, const obsd_t* obs, int n, nav_t* nav);
77
78/**
79 * @brief Initialize RTK control struct for PPP-RTK positioning.
80 * @param[in,out] rtk RTK control struct to initialize
81 * @param[in] opt Processing options
82 */
83void rtkinit_ppp_rtk(rtk_t* rtk, const prcopt_t* opt);
84
85/**
86 * @brief Free RTK control struct for PPP-RTK positioning.
87 * @param[in,out] rtk RTK control struct to free
88 */
89void rtkfree_ppp_rtk(rtk_t* rtk);
90
91#ifdef __cplusplus
92}
93#endif
94
95#endif /* MRTK_PPP_RTK_H */
struct nav_s nav_t
Definition mrtk_eph.h:40
MRTKLIB Navigation Module — Navigation data types and satellite/nav utility functions.
MRTKLIB Observation Module — Observation data types and utility functions.
MRTKLIB Options Module — Processing and solution option types.
void ppp_rtk_pos(rtk_t *rtk, const obsd_t *obs, int n, nav_t *nav)
PPP-RTK positioning for one epoch (CLAS).
void rtkinit_ppp_rtk(rtk_t *rtk, const prcopt_t *opt)
Initialize RTK control struct for PPP-RTK positioning.
int ppp_rtk_na(const prcopt_t *opt)
Compute number of non-ambiguity states for PPP-RTK.
int ppprtk_outstat(rtk_t *rtk, char *buff)
Write PPP-RTK solution status to buffer.
int ppp_rtk_nx(const prcopt_t *opt)
Compute number of estimated states for PPP-RTK.
void rtkfree_ppp_rtk(rtk_t *rtk)
Free RTK control struct for PPP-RTK positioning.
MRTKLIB RTK Positioning Module — relative and precise positioning.
Observation data record.
Definition mrtk_obs.h:44