mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 15:23:04 +00:00 
			
		
		
		
	position fix: First combined GPS + GLONASS position solution
First positon fix using a combination of GLONASS and GPS data in GNSS-SDR. The position solution may need further testing but initial results are looking quite promising.
This commit is contained in:
		
							
								
								
									
										126
									
								
								conf/gnss-sdr_GPS_GLONASS_L1_CA_ibyte.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								conf/gnss-sdr_GPS_GLONASS_L1_CA_ibyte.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,126 @@ | ||||
| [GNSS-SDR] | ||||
|  | ||||
| ;######### GLOBAL OPTIONS ################## | ||||
| GNSS-SDR.internal_fs_sps=6625000 | ||||
| Receiver.sources_count=2 | ||||
| SignalSource.repeat=false | ||||
|  | ||||
| ;######### SIGNAL_SOURCE CONFIG ############ | ||||
| SignalSource0.implementation=File_Signal_Source | ||||
| SignalSource0.filename=/archive/NT1065_L1_20160923_fs6625e6_if0e3_schar.bin ; <- PUT YOUR FILE HERE | ||||
| SignalSource0.item_type=ibyte | ||||
| SignalSource0.sampling_frequency=6625000 | ||||
| SignalSource0.samples=0 | ||||
| SignalSource0.dump=false; | ||||
| SignalSource0.dump_filename=/archive/signal_glonass.bin | ||||
|  | ||||
| SignalSource1.implementation=File_Signal_Source | ||||
| SignalSource1.filename=/archive/NT1065_GLONASS_L1_20160923_fs6625e6_if0e3_schar.bin ; <- PUT YOUR FILE HERE | ||||
| SignalSource1.item_type=ibyte | ||||
| SignalSource1.sampling_frequency=6625000 | ||||
| SignalSource1.samples=0 | ||||
| SignalSource1.dump=false; | ||||
| SignalSource1.dump_filename=/archive/signal_glonass.bin | ||||
|  | ||||
| ;######### SIGNAL_CONDITIONER CONFIG ############ | ||||
| SignalConditioner0.implementation=Signal_Conditioner | ||||
| DataTypeAdapter0.implementation=Ibyte_To_Complex | ||||
| InputFilter0.implementation=Pass_Through | ||||
| InputFilter0.item_type=gr_complex | ||||
| Resampler0.implementation=Direct_Resampler | ||||
| Resampler0.sample_freq_in=6625000 | ||||
| Resampler0.sample_freq_out=6625000 | ||||
| Resampler0.item_type=gr_complex | ||||
|  | ||||
| SignalConditioner1.implementation=Signal_Conditioner | ||||
| DataTypeAdapter1.implementation=Ibyte_To_Complex | ||||
| InputFilter1.implementation=Pass_Through | ||||
| InputFilter1.item_type=gr_complex | ||||
| Resampler1.implementation=Direct_Resampler | ||||
| Resampler1.sample_freq_in=6625000 | ||||
| Resampler1.sample_freq_out=6625000 | ||||
| Resampler1.item_type=gr_complex | ||||
|  | ||||
| ;######### CHANNELS GLOBAL CONFIG ############ | ||||
| Channels.in_acquisition=1 | ||||
| Channels_1G.count=5 | ||||
| Channels_1C.count=5 | ||||
|  | ||||
| ;# Defining GLONASS satellites | ||||
| Channel0.RF_channel_ID=0 | ||||
| Channel1.RF_channel_ID=0 | ||||
| Channel2.RF_channel_ID=0 | ||||
| Channel3.RF_channel_ID=0 | ||||
| Channel4.RF_channel_ID=0 | ||||
| Channel5.RF_channel_ID=1 | ||||
| Channel6.RF_channel_ID=1 | ||||
| Channel7.RF_channel_ID=1 | ||||
| Channel8.RF_channel_ID=1 | ||||
| Channel9.RF_channel_ID=1 | ||||
|  | ||||
|  | ||||
| ;######### ACQUISITION GLOBAL CONFIG ############ | ||||
| Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition | ||||
| Acquisition_1C.item_type=gr_complex | ||||
| Acquisition_1C.threshold=0.0 | ||||
| Acquisition_1C.pfa=0.00001 | ||||
| Acquisition_1C.if=0 | ||||
| Acquisition_1C.doppler_max=10000 | ||||
| Acquisition_1C.doppler_step=250 | ||||
| Acquisition_1C.dump=false; | ||||
| Acquisition_1C.dump_filename=/archive/gps_acquisition.dat | ||||
| ;Acquisition_1C.coherent_integration_time_ms=10 | ||||
|  | ||||
| Acquisition_1G.implementation=GLONASS_L1_CA_PCPS_Acquisition | ||||
| Acquisition_1G.item_type=gr_complex | ||||
| Acquisition_1G.threshold=0.0 | ||||
| Acquisition_1G.pfa=0.00001 | ||||
| Acquisition_1G.if=0 | ||||
| Acquisition_1G.doppler_max=10000 | ||||
| Acquisition_1G.doppler_step=250 | ||||
| Acquisition_1G.dump=false; | ||||
| Acquisition_1G.dump_filename=/archive/glo_acquisition.dat | ||||
| ;Acquisition_1G.coherent_integration_time_ms=10 | ||||
|  | ||||
| ;######### TRACKING GLOBAL CONFIG ############ | ||||
| Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking | ||||
| Tracking_1C.item_type=gr_complex | ||||
| Tracking_1C.if=0 | ||||
| Tracking_1C.early_late_space_chips=0.5 | ||||
| Tracking_1C.pll_bw_hz=20.0; | ||||
| Tracking_1C.dll_bw_hz=2.0; | ||||
| Tracking_1C.dump=true; | ||||
| Tracking_1C.dump_filename=/archive/gps_tracking_ch_ | ||||
|  | ||||
| Tracking_1G.implementation=GLONASS_L1_CA_DLL_PLL_Tracking | ||||
| Tracking_1G.item_type=gr_complex | ||||
| Tracking_1G.if=0 | ||||
| Tracking_1G.early_late_space_chips=0.5 | ||||
| Tracking_1G.pll_bw_hz=25.0; | ||||
| Tracking_1G.dll_bw_hz=3.0; | ||||
| Tracking_1G.dump=true; | ||||
| Tracking_1G.dump_filename=/archive/glo_tracking_ch_ | ||||
|  | ||||
| ;######### TELEMETRY DECODER GPS CONFIG ############ | ||||
| TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder | ||||
| TelemetryDecoder_1G.implementation=GLONASS_L1_CA_Telemetry_Decoder | ||||
|  | ||||
| ;######### OBSERVABLES CONFIG ############ | ||||
| Observables.implementation=Hybrid_Observables | ||||
| Observables.dump=true; | ||||
| Observables.dump_filename=/archive/gnss_observables.dat | ||||
|  | ||||
| ;######### PVT CONFIG ############ | ||||
| PVT.implementation=RTKLIB_PVT | ||||
| PVT.output_rate_ms=100 | ||||
| PVT.display_rate_ms=500 | ||||
| PVT.trop_model=Saastamoinen | ||||
| PVT.flag_rtcm_server=true | ||||
| PVT.flag_rtcm_tty_port=false | ||||
| PVT.rtcm_dump_devname=/dev/pts/1 | ||||
| PVT.rtcm_tcp_port=2101 | ||||
| PVT.rtcm_MT1019_rate_ms=5000 | ||||
| PVT.rtcm_MT1045_rate_ms=5000 | ||||
| PVT.rtcm_MT1097_rate_ms=1000 | ||||
| PVT.rtcm_MT1077_rate_ms=1000 | ||||
| PVT.rinex_version=2 | ||||
| @@ -113,8 +113,7 @@ void Glonass_Gnav_Ephemeris::glot_to_gpst(double tod_offset, double glot2utc_cor | ||||
| { | ||||
| 		double tod = 0.0; | ||||
| 	    double dayofweek = 0.0; | ||||
| 	    double utcsu2utc = 3*3600; | ||||
| 	    double glot2utcsu = 3*3600; | ||||
| 	    double glot2utc = 3*3600; | ||||
| 	    double days = 0.0; | ||||
| 	    double total_sec = 0.0, sec_of_day = 0.0; | ||||
| 	    int i = 0; | ||||
| @@ -123,7 +122,7 @@ void Glonass_Gnav_Ephemeris::glot_to_gpst(double tod_offset, double glot2utc_cor | ||||
|  | ||||
| 	    // tk is relative to UTC(SU) + 3.00 hrs, so we need to convert to utc and add corrections | ||||
| 	    // tk plus 10 sec is the true tod since get_TOW is called when in str5 | ||||
| 	    tod = tod_offset - glot2utcsu - utcsu2utc; | ||||
| 	    tod = tod_offset - glot2utc ; | ||||
|  | ||||
|  | ||||
| 	    boost::posix_time::time_duration t(0, 0, tod); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Damian Miralles
					Damian Miralles