Skip to content
Snippets Groups Projects
Commit f800c919 authored by Pep Martí Saumell's avatar Pep Martí Saumell
Browse files

Merge branch 'single_differences' of...

Merge branch 'single_differences' of ssh://gitlab.iri.upc.edu:2202/mobile_robotics/gauss_project/gnss_utils into single_differences
parents e4fce6b6 cfbbda00
No related branches found
No related tags found
2 merge requests!20new tag,!19new tag
Subproject commit eac44a45c19ac56c0c031135e9818788b5993005
Subproject commit 465a7650663d8ad3274a1565573013648822a4e9
......@@ -26,9 +26,9 @@ public:
~UBloxRaw();
RawDataType addDataStream(const std::vector<u_int8_t>& data_stream);
Observations& getObservations();
Navigation& getNavigation();
const Observations& getObservations();
const Navigation& getNavigation();
RawDataType getRawDataType() const;
......@@ -43,12 +43,12 @@ private:
void updateObservations();
};
inline GNSSUtils::Observations& UBloxRaw::getObservations()
inline const GNSSUtils::Observations& UBloxRaw::getObservations()
{
return obs_;
}
inline GNSSUtils::Navigation& UBloxRaw::getNavigation()
inline const GNSSUtils::Navigation& UBloxRaw::getNavigation()
{
return nav_;
}
......
......@@ -19,34 +19,38 @@ ComputePosOutput computePos(const GNSSUtils::Observations& _observations,
sol_t sol;
sol = { { 0 } };
output.pos_stat = pntpos(
_observations.data(), _observations.size(), &(_navigation.getNavigation()), &_prcopt, &sol, NULL, NULL, msg);
if (output.pos_stat == 0)
{
std::cout << "computePos: error in computing positioning, message: " << msg << "\n";
}
output.time = sol.time.time;
output.sec = sol.time.sec;
output.pos = Eigen::Vector3d(sol.rr);
std::cout << "Compute pos: " << output.pos.transpose() << "\n";
output.vel = Eigen::Vector3d(&sol.rr[3]);
output.pos_covar << sol.qr[0], sol.qr[3], sol.qr[5], sol.qr[3], sol.qr[1], sol.qr[4], sol.qr[5], sol.qr[3], sol.qr[2];
// XXX: segmentation fault here.
// if (sol.dtr != NULL)
// {
// output.rcv_bias << sol.dtr[0], sol.dtr[1], sol.dtr[2], sol.dtr[3], sol.dtr[4], sol.dtr[5];
// }
output.type = sol.type;
output.stat = sol.stat;
output.ns = sol.ns;
output.age = sol.age;
output.ratio = sol.ratio;
output.lat_lon = ecefToLatLonAlt(output.pos);
return output;
output.pos_stat = pntpos(_observations.data(), _observations.size(),
&(_navigation.getNavigation()),
&_prcopt, &sol, NULL, NULL, msg);
if (output.pos_stat == 0)
{
std::cout << "computePos: error in computing positioning, message: " << msg << "\n";
}
output.time = sol.time.time;
output.sec = sol.time.sec;
output.pos = Eigen::Vector3d(sol.rr);
output.vel = Eigen::Vector3d(&sol.rr[3]);
output.pos_covar << sol.qr[0], sol.qr[3], sol.qr[5],
sol.qr[3], sol.qr[1], sol.qr[4],
sol.qr[5], sol.qr[4], sol.qr[2];
//std::cout << "Compute pos: " << output.pos.transpose() << "\n";
//std::cout << "Covariance:\n" << output.pos_covar << "\n";
// XXX: segmentation fault here.
// if (sol.dtr != NULL)
// {
// output.rcv_bias << sol.dtr[0], sol.dtr[1], sol.dtr[2], sol.dtr[3], sol.dtr[4], sol.dtr[5];
// }
output.type = sol.type;
output.stat = sol.stat;
output.ns = sol.ns;
output.age = sol.age;
output.ratio = sol.ratio;
output.lat_lon = ecefToLatLonAlt(output.pos);
return output;
}
// ComputePosOutput computePosOwn(const GNSSUtils::Observations & _observations,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment