mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-31 23:33:03 +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 tod = 0.0; | ||||||
| 	    double dayofweek = 0.0; | 	    double dayofweek = 0.0; | ||||||
| 	    double utcsu2utc = 3*3600; | 	    double glot2utc = 3*3600; | ||||||
| 	    double glot2utcsu = 3*3600; |  | ||||||
| 	    double days = 0.0; | 	    double days = 0.0; | ||||||
| 	    double total_sec = 0.0, sec_of_day = 0.0; | 	    double total_sec = 0.0, sec_of_day = 0.0; | ||||||
| 	    int i = 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 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 | 	    // 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); | 	    boost::posix_time::time_duration t(0, 0, tod); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Damian Miralles
					Damian Miralles