Seite 1 von 1

RTKLIB mit UBlox + RTCM3

Verfasst: 23.11.2016 - 10:33
von RemoteNinja
Hallo Leute!

Ich bin noch relativ neu im RTKLIB- und GPS-Geschäft (bin da so reingerutscht... :roll: ) und hätte ein paar grundsätzliche Fragen zur Verwendung der RTK.

Mein Szenario ist folgendes:
- Basisstation mit UBlox NEO-M8N Receiver mit dem Transceiver UART1 FT230x und Tallysman-Antenne
hier läuft "str2str" :

Code: Alles auswählen

str2str -msg 1001,1002,1003,1004,1005,1006,1007,1008,1011,1012,1013,1019 -p l l h -in serial://ttyUSB0:230400:8:n:1:off#ubx -out tcpsvr://xxx.xxx.xxx.xxx:pppp#rtcm3 -c /usr/rtklib/data/ubx_m8n_glo_raw_1hz.cmd
- mehrere Rover mit UBlox NEO-6P und Tallysman-Antennen
hier läuft der rtkrcv mit folgender Config:

Code: Alles auswählen

# rtkrcv options (2010/08/12 07:12:16, v.2.4.0)

console-passwd     =admin
console-timetype   =gpst       # (0:gpst,1:utc,2:jst,3:tow)
console-soltype    =dms        # (0:dms,1:deg,2:xyz,3:enu,4:pyl)
console-solflag    =1          # (0:off,1:std+2:age/ratio/ns)
inpstr1-type       =serial     # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,7:ntripcli,8:ftp,9:http)
inpstr2-type       =tcpcli     # (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)
inpstr1-path       =ttyACM0:115200:8:n:1:off
inpstr2-path       =xxx.xxx.xxx.xxx:pppp
inpstr3-path       =anonymous:passwd@cddis.gsfc.nasa.gov/gps/products/%W/igu%W%D_%hb.sp3.Z::T=-14400,21600,7200,600
inpstr1-format     =ubx        # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,14:sp3)
inpstr2-format     =rtcm3      # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,14:sp3)                                                                              
inpstr3-format     =sp3        # (0:rtcm2,1:rtcm3,2:oem4,3:oem3,4:ubx,5:ss2,6:hemis,7:skytraq,14:sp3)                                                                              
inpstr2-nmeareq    =off        # (0:off,1:latlon,2:single)                                                                                                                         
inpstr2-nmealat    =0          # (deg)                                                                                                                                             
inpstr2-nmealon    =0          # (deg)                                                                                                                                             
outstr1-type       =tcpsvr     # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)                                                                                              
outstr2-type       =file       # (0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripsvr)                                                                                              
outstr1-path       =:@:pppp/:                                                                                                                                                      
outstr2-path       =/var/log/sol2_%Y%m%d%h%M.pos
outstr1-format     =nmea       # (0:llh,1:xyz,2:enu,3:nmea)
outstr2-format     =llh        # (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       =rov_%Y%m%d%h%M.log
logstr2-path       =ref_%Y%m%d%h%M.log
logstr3-path       =cor_%Y%m%d%h%M.log
misc-svrcycle      =10         # (ms)
misc-timeout       =30000      # (ms)
misc-reconnect     =30000      # (ms)
misc-nmeacycle     =5000       # (ms)
misc-buffsize      =32768      # (bytes)
misc-navmsgsel     =rover      # (0:all,1:rover,1:base,2:corr)
misc-startcmd      =/etc/rtklib/rtkrcv/rtkstart.sh
misc-stopcmd       =/etc/rtklib/rtkrcv/rtkshut.sh
file-cmdfile1      =/etc/rtklib/data/ubx_raw_5hz.cmd
file-cmdfile2      =/etc/rtklib/data/ubx_raw_5hz.cmd
file-cmdfile3      =
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)
pos1-soltype       =forward    # (0:forward,1:backward,2:combined)
pos1-elmask        =15         # (deg)
#pos1-snrmask       =0          # (dBHz)
pos1-dynamics      =on         # (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)
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     =on         # (0:off,1:on,2:autocal)
pos2-arthres       =5
pos2-arlockcnt     =0
pos2-arelmask      =0          # (deg)
pos2-aroutcnt      =5
pos2-arminfix      =10
pos2-slipthres     =0.05       # (m)
pos2-maxage        =30         # (s)
pos2-rejionno      =30         # (m)
pos2-niter         =1
pos2-baselen       =0          # (m)
pos2-basesig       =0          # (m)
out-solformat      =llh        # (0:llh,1:xyz,2:enu,3:nmea)
out-outhead        =on         # (0:off,1:on)
out-outopt         =off        # (0:off,1:on)
out-timesys        =gpst       # (0:gpst,1:utc,2:jst)
out-timeform       =tow        # (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)
stats-errratio     =100
stats-errphase     =0.003      # (m)
stats-errphaseel   =0.003      # (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    =1          # (m/s^2)
stats-prnaccelv    =0.1        # (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       =llh        # (0:llh,1:xyz,2:single,3:posfile,4:rinexhead,5:rtcm)
ant1-pos1          =0          # (deg|m)
ant1-pos2          =0          # (deg|m)
ant1-pos3          =0          # (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          =0          # (deg|m)
ant2-pos2          =0          # (deg|m)
ant2-pos3          =0          # (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    =/etc/rtklib/data/igs05.atx
file-rcvantfile    =/etc/rtklib/data/igs05.atx
file-staposfile    =/etc/rtklib/data/station.pos
file-geoidfile     =
file-dcbfile       =/etc/rtklib/data/P1C1_ALL.DCB
file-tempdir       =/etc/rtklib/rtkrcv/temp
file-geexefile     =
file-solstatfile   =
file-tracefile     =

Mit diesen Einstellungen erreiche ich im Test auch Float-Lösungen, aber da ich sämtliche Einstellungen auf meinem bescheidenen Halbwissen basierend vorgenommen habe, hab ich einfach keine Ahnung, ob das jetzt gut ist oder ob ich irgendetwas komplett verhackt habe. Oder geht da vielleicht noch viel mehr?
Leider liefert die Doku der RTKLIb nicht die allerbeste Hilfestellung für die Wahl der Parameter. :-(


Meine zweite Frage wäre folgende:
Hat jemand schon mal mit str2str RTCM3-Nachrichten erzeugt und diese dann "von Hand" in Pakete gepackt?
Ich müsste die Korrekturdaten in eigene Nachrichtentypen reinpacken, damit ich sie über nen speziellen WLAN-Standard versenden kann.


Liebe Grüße und schon mal vielen Dank für die Tipps und Antworten,

Jens :-)