Skip to content

Precise poitioning using GOOSE with RTKLIB

Muhammad Saad edited this page Mar 19, 2020 · 1 revision

Build RTKLIB with OGRP support:

  • Checkout RTKLIB
cd
git clone https://github.com/Fraunhofer-IIS/RTKLIB.git
cd RTKLIB
git checkout rtklib_2.4.3
  • Build and install RTKLIB
mkdir build
cd build
cmake ..
make
make install

Save the following configuration file and adapt the NTRIP settings:

# NTRIP client address and protocol
inpstr2-path       =USERNAME:PASSWORD@IP_ADDRESS:PORT/MOUNTPOINT:
inpstr2-format     =rtcm3 # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:gw10,9:javad,15:sp3)
# Send required antenna position of base station (depends on the NTRIP service)
inpstr2-nmeareq    =latlon            # (0:off,1:latlon,2:single)
inpstr2-nmealat    =49.486392555      # (deg)
inpstr2-nmealon    =11.128562726      # (deg)


pos1-posmode       =kinematic # (0:single,1:dgps,2:kinematic,3:static,4:movingbase,5:fixed,6:ppp-kine,7:ppp-static)
pos1-frequency     =l1             # (1:l1,2:l1+l2,3:l1+l2+l5,4:l1+l2+l5+l6,5:l1+l2+l5+l6+l7)
pos1-soltype       =forward        # (0:forward,1:backward,2:combined)
pos1-elmask        =10             # (deg)
pos1-dynamics      =off            # (0:off,1:on)
pos1-tidecorr      =off            # (0:off,1:on)
pos1-ionoopt       =off            # (0:off,1:brdc,2:sbas,3:dual-freq,4:est-stec,5:ionex-tec,6:qzs-brdc,7:qzs-lex,8:vtec_sf,9:vtec_ef,10:gtec)
pos1-tropopt       =off            # (0:off,1:saas,2:sbas,3:est-ztd,4:est-ztdgrad)
pos1-sateph        =brdc           # (0:brdc,1:precise,2:brdc+sbas,3:brdc+ssrapc,4:brdc+ssrcom)
pos1-exclsats      =               # (prn ...)
pos1-navsys        =1              # (1:gps+2:sbas+4:glo+8:gal+16:qzs+32:comp)
pos2-armode        =fix-and-hold   # (0:off,1:continuous,2:instantaneous,3:fix-and-hold)
pos2-gloarmode     =off            # (0:off,1:on,2:autocal)
pos2-arthres       =3  
pos2-arlockcnt     =0  
pos2-arelmask      =0              # (deg)
pos2-arminfix      =10 
pos2-elmaskhold    =0              # (deg)
pos2-aroutcnt      =5  
pos2-maxage        =30             # (s)
pos2-slipthres     =0.05           # (m)
pos2-rejionno      =30             # (m)
pos2-rejgdop       =30 
pos2-niter         =1  
pos2-baselen       =0              # (m)
pos2-basesig       =0              # (m)
pos2-syncsol       =on 
out-solformat      =llh
out-outhead        =off            # (0:off,1:on)
out-outopt         =off            # (0:off,1:on)
out-timesys        =gpst           # (0:gpst,1:utc,2:jst)
out-timeform       =hms            # (0:tow,1:hms)
out-timendec       =3  
out-degform        =deg            # (0:deg,1:dms)
out-fieldsep       =   
out-height         =ellipsoidal    # (0:ellipsoidal,1:geodetic)
out-geoid          =internal       # (0:internal,1:egm96,2:egm08_2.5,3:egm08_1,4:gsi2000)
out-solstatic      =all            # (0:all,1:single)
out-nmeaintv1      =0              # (s)
out-nmeaintv2      =0              # (s)
out-outstat        =off            # (0:off,1:state,2:residual)
out-outsingle      =on
stats-eratio1      =150
stats-eratio2      =100
stats-errphase     =0.01           # (m)
stats-errphaseel   =0.006          # (m)
stats-errphasebl   =0              # (m/10km)
stats-errdoppler   =1              # (Hz)
stats-stdbias      =30             # (m)
stats-stdiono      =0.03           # (m)
stats-stdtrop      =0.3            # (m)
stats-prnaccelh    =10             # (m/s^2)
stats-prnaccelv    =10             # (m/s^2)
stats-prnbias      =0.0001         # (m)
stats-prniono      =0.001          # (m)
stats-prntrop      =0.0001         # (m)
stats-clkstab      =5e-12          # (s/s)
ant1-postype       =xyz            # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
ant1-pos1          =               # (deg|m)
ant1-pos2          =               # (deg|m)
ant1-pos3          =               # (m|m)
ant1-anttype       =
ant1-antdele       =0              # (m)
ant1-antdeln       =0              # (m)
ant1-antdelu       =0              # (m)
ant2-postype       =rtcm           # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
ant2-pos1          =               # (deg|m)
ant2-pos2          =               # (deg|m)
ant2-pos3          =               # (m|m)
ant2-anttype       =
ant2-antdele       =0              # (m)
ant2-antdeln       =0              # (m)
ant2-antdelu       =0              # (m)
misc-timeinterp    =off            # (0:off,1:on)
misc-sbasatsel     =0              # (0:all)
file-satantfile    =
file-rcvantfile    =
file-staposfile    =
file-geoidfile     =
file-ionofile      =
file-dcbfile       =
file-tempdir       =
file-geexefile     =
file-solstatfile   =
file-tracefile     =
inpstr1-type       =tcpcli         # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr1-path       =:@localhost:8000/:
inpstr1-format     =ogrp           # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:gw10,9:javad,15:sp3)
inpstr2-type       =ntripcli         # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr3-type       =off            # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr3-path       =
inpstr3-format     =rtcm3          # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,8:gw10,9:javad,15:sp3)
outstr1-type       =tcpsvr         # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
outstr2-type       =off            # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
outstr1-path       =:@*:9000/:
outstr2-path       =
outstr1-format     =nmea           # (0:llh,1:xyz,2:enu,3:nmea)
outstr2-format     =               # (0:llh,1:xyz,2:enu,3:nmea)
logstr1-type       =off            # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr2-type       =off            # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr3-type       =off            # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)
logstr1-path       =
logstr2-path       =
logstr3-path       =
misc-svrcycle      =10             # (ms)
misc-timeout       =10000          # (ms)
misc-reconnect     =10000          # (ms)
misc-nmeacycle     =5000           # (ms)
misc-buffsize      =32768          # (bytes)
misc-navmsgsel     =all            # (0:all,1:rover,2:base,3:corr)
misc-proxyaddr     =
misc-fswapmargin   =30             # (s)
  1. Start ogre_console --gnss-gps --ogrp-output=1
  2. Start rtkrcv -o ntrip.conf
  3. Type start
  4. RTK position is available at TCP port 9000