1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-15 04:30:33 +00:00

Merge branch 'next' of https://github.com/gnss-sdr/gnss-sdr into next

This commit is contained in:
Carles Fernandez 2018-06-08 13:05:09 +02:00
commit b01cf97c66
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D
4 changed files with 39 additions and 10 deletions

View File

@ -4,7 +4,7 @@ Next release will have several improvements in different dimensions, addition of
### Improvements in Accuracy: ### Improvements in Accuracy:
- Part of the RTKLIB core libraries has been integrated into GNSS-SDR. There is now a single PVT block implementation which makes use of RTKLIB to deliver PVT solutions, including Single and PPP navigation modes. - Part of the RTKLIB core library has been integrated into GNSS-SDR. There is now a single PVT block implementation which makes use of RTKLIB to deliver PVT solutions, including Single and PPP navigation modes.
- Fixed CN0 estimation for other correlation times than 1 ms. - Fixed CN0 estimation for other correlation times than 1 ms.
- Improved computation of tracking parameters and GNSS observables. - Improved computation of tracking parameters and GNSS observables.
- Other minor bug fixes. - Other minor bug fixes.
@ -14,7 +14,7 @@ Next release will have several improvements in different dimensions, addition of
- Internal Finite State Machines rewritten for improved continuity in delivering position fixes. This fixes a bug that was stalling the receiver after about six hours of continuous operation. - Internal Finite State Machines rewritten for improved continuity in delivering position fixes. This fixes a bug that was stalling the receiver after about six hours of continuous operation.
- Redesign of the time counter for enhanced continuity. - Redesign of the time counter for enhanced continuity.
- Improved acquisition and tracking sensibility. - Improved acquisition and tracking sensitivity.
- Other minor bug fixes. - Other minor bug fixes.
@ -22,7 +22,7 @@ Next release will have several improvements in different dimensions, addition of
- Added the possibility of non-blocking acquisition, which works well when using real-time data from an RF front-end. - Added the possibility of non-blocking acquisition, which works well when using real-time data from an RF front-end.
- Complex local codes have been replaced by real codes, alleviating the computational burden. - Complex local codes have been replaced by real codes, alleviating the computational burden.
- New kernels: volk_gnsssdr_16i_xn_resampler_16i_xn.h, volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h, volk_gnsssdr_32f_xn_resampler_32f_xn.h, volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h - New volk_gnsssdr kernels: volk_gnsssdr_16i_xn_resampler_16i_xn.h, volk_gnsssdr_16ic_16i_rotator_dot_prod_16ic_xn.h, volk_gnsssdr_32f_xn_resampler_32f_xn.h, volk_gnsssdr_32fc_32f_rotator_dot_prod_32fc_xn.h
- Some AVX2 implementations added to the volk_gnsssdr library. - Some AVX2 implementations added to the volk_gnsssdr library.
- Improvement in C++ usage: Use of const container calls when result is immediately converted to a const iterator. Using these members removes an implicit conversion from iterator to const_iterator. - Improvement in C++ usage: Use of const container calls when result is immediately converted to a const iterator. Using these members removes an implicit conversion from iterator to const_iterator.
- A number of code optimizations here and there. - A number of code optimizations here and there.
@ -124,7 +124,7 @@ Next release will have several improvements in different dimensions, addition of
- Updated and improved documentation of processing blocks at https://gnss-sdr.org/docs/sp-blocks/ - Updated and improved documentation of processing blocks at https://gnss-sdr.org/docs/sp-blocks/
- Improved documentation of required dependency packages in several GNU/Linux distributions. - Improved documentation of required dependency packages in several GNU/Linux distributions.
- Parameter names with the same role have been harmonized within different block implementations. - Parameter names with the same role have been harmonized within different block implementations.
- Added a chnagelog, a code of conduct, a contributing guide and a pull-request template in the source tree. - Added a changelog, a code of conduct, a contributing guide and a pull-request template in the source tree.
- Added colors to the commandline user interface. - Added colors to the commandline user interface.
- Updated manfiles. - Updated manfiles.

View File

@ -2091,9 +2091,9 @@ int rtklib_pvt_cc::work(int noutput_items, gr_vector_const_void_star& input_item
std::cout << TEXT_BOLD_GREEN std::cout << TEXT_BOLD_GREEN
<< "Position at " << d_ls_pvt->get_position_UTC_time() << "Position at " << d_ls_pvt->get_position_UTC_time()
<< " UTC using " << d_ls_pvt->get_num_valid_observations() << " UTC using " << d_ls_pvt->get_num_valid_observations()
<< std::setprecision(10) << std::fixed << std::setprecision(9)
<< " observations is Lat = " << d_ls_pvt->get_latitude() << " [deg], Long = " << d_ls_pvt->get_longitude() << " observations is Lat = " << d_ls_pvt->get_latitude() << " [deg], Long = " << d_ls_pvt->get_longitude()
<< std::setprecision(4) << std::fixed << std::setprecision(3)
<< " [deg], Height = " << d_ls_pvt->get_height() << " [m]" << TEXT_RESET << std::endl; << " [deg], Height = " << d_ls_pvt->get_height() << " [m]" << TEXT_RESET << std::endl;
std::cout << std::setprecision(ss); std::cout << std::setprecision(ss);
LOG(INFO) << "RX clock offset: " << d_ls_pvt->get_time_offset_s() << "[s]"; LOG(INFO) << "RX clock offset: " << d_ls_pvt->get_time_offset_s() << "[s]";

View File

@ -154,9 +154,38 @@ bool rtklib_solver::get_PVT(const std::map<int, Gnss_Synchro>& gnss_observables_
eph_t eph_data[MAXOBS]; eph_t eph_data[MAXOBS];
geph_t geph_data[MAXOBS]; geph_t geph_data[MAXOBS];
// Workaround for NAV/CNAV clash problem
bool gps_dual_band = false;
bool band1 = false;
bool band2 = false;
for (gnss_observables_iter = gnss_observables_map.cbegin(); for (gnss_observables_iter = gnss_observables_map.cbegin();
gnss_observables_iter != gnss_observables_map.cend(); gnss_observables_iter != gnss_observables_map.cend();
gnss_observables_iter++) // CHECK INCONSISTENCY when combining GLONASS + other system ++gnss_observables_iter)
{
switch (gnss_observables_iter->second.System)
{
case 'G':
{
std::string sig_(gnss_observables_iter->second.Signal);
if (sig_.compare("1C") == 0)
{
band1 = true;
}
if (sig_.compare("2S") == 0)
{
band2 = true;
}
}
default:
{
}
}
}
if (band1 == true and band2 == true) gps_dual_band = true;
for (gnss_observables_iter = gnss_observables_map.cbegin();
gnss_observables_iter != gnss_observables_map.cend();
++gnss_observables_iter) // CHECK INCONSISTENCY when combining GLONASS + other system
{ {
switch (gnss_observables_iter->second.System) switch (gnss_observables_iter->second.System)
{ {
@ -255,8 +284,8 @@ bool rtklib_solver::get_PVT(const std::map<int, Gnss_Synchro>& gnss_observables_
DLOG(INFO) << "No ephemeris data for SV " << gnss_observables_iter->first; DLOG(INFO) << "No ephemeris data for SV " << gnss_observables_iter->first;
} }
} }
// GPS L2 (ephemeris disabled due to an incompatibility with RTKLIB solver) // GPS L2 (todo: solve NAV/CNAV clash)
if (sig_.compare("2S_disabled") == 0) if ((sig_.compare("2S") == 0) and (gps_dual_band == false))
{ {
gps_cnav_ephemeris_iter = gps_cnav_ephemeris_map.find(gnss_observables_iter->second.PRN); gps_cnav_ephemeris_iter = gps_cnav_ephemeris_map.find(gnss_observables_iter->second.PRN);
if (gps_cnav_ephemeris_iter != gps_cnav_ephemeris_map.cend()) if (gps_cnav_ephemeris_iter != gps_cnav_ephemeris_map.cend())

View File

@ -277,7 +277,7 @@ int StaticPositionSystemTest::configure_receiver()
const int extend_correlation_ms = 1; const int extend_correlation_ms = 1;
const int display_rate_ms = 500; const int display_rate_ms = 500;
const int output_rate_ms = 10; const int output_rate_ms = 100;
config->set_property("GNSS-SDR.internal_fs_sps", std::to_string(sampling_rate_internal)); config->set_property("GNSS-SDR.internal_fs_sps", std::to_string(sampling_rate_internal));