diff --git a/include/gnss/sensor/sensor_gnss.h b/include/gnss/sensor/sensor_gnss.h index b27f49491a7c1c92062a3b6829ce01b5a9ee2215..5f3ec96bedc97a693da9293358e8464b9c5e0c73 100644 --- a/include/gnss/sensor/sensor_gnss.h +++ b/include/gnss/sensor/sensor_gnss.h @@ -8,10 +8,10 @@ namespace wolf { -WOLF_STRUCT_PTR_TYPEDEFS(IntrinsicsGnss); +WOLF_STRUCT_PTR_TYPEDEFS(ParamsSensorGnss); WOLF_PTR_TYPEDEFS(SensorGnss); -struct IntrinsicsGnss : public IntrinsicsBase +struct ParamsSensorGnss : public ParamsSensorBase { // add GNSS parameters here bool extrinsics_fixed_ = true; @@ -19,10 +19,10 @@ struct IntrinsicsGnss : public IntrinsicsBase bool pitch_fixed_=true; bool yaw_fixed_ =false; bool translation_fixed_ = false; - virtual ~IntrinsicsGnss() = default; - IntrinsicsGnss() = default; - IntrinsicsGnss(std::string _unique_name, const ParamsServer& _server): - IntrinsicsBase(_unique_name, _server) + virtual ~ParamsSensorGnss() = default; + ParamsSensorGnss() = default; + ParamsSensorGnss(std::string _unique_name, const ParamsServer& _server): + ParamsSensorBase(_unique_name, _server) { extrinsics_fixed_ = _server.getParam<bool>(_unique_name + "/extrinsics_fixed"); roll_fixed_ = _server.getParam<bool>(_unique_name + "/roll_fixed"); @@ -32,7 +32,7 @@ struct IntrinsicsGnss : public IntrinsicsBase } std::string print() const { - return "\n" + IntrinsicsBase::print() + "\n" + return "\n" + ParamsSensorBase::print() + "\n" + "extrinsics_fixed: " + std::to_string(extrinsics_fixed_) + "\n" + "roll_fixed: " + std::to_string(roll_fixed_) + "\n" + "pitch_fixed: " + std::to_string(pitch_fixed_) + "\n" @@ -44,14 +44,14 @@ struct IntrinsicsGnss : public IntrinsicsBase class SensorGnss : public SensorBase { protected: - IntrinsicsGnssPtr params_; + ParamsSensorGnssPtr params_; bool ENU_defined_, ENU_MAP_initialized_; Eigen::Matrix3d R_ENU_ECEF_; Eigen::Vector3d t_ENU_ECEF_; public: - SensorGnss(StateBlockPtr _p_ptr, StateBlockPtr _bias_ptr, IntrinsicsGnssPtr params); - SensorGnss(StateBlockPtr _p_ptr, StateBlockPtr _bias_ptr, IntrinsicsGnssPtr params, StateBlockPtr _t_ENU_MAP_ptr, StateBlockPtr _roll_ENU_MAP_ptr, StateBlockPtr _pitch_ENU_MAP_ptr, StateBlockPtr _yaw_ENU_MAP_ptr); + SensorGnss(StateBlockPtr _p_ptr, StateBlockPtr _bias_ptr, ParamsSensorGnssPtr params); + SensorGnss(StateBlockPtr _p_ptr, StateBlockPtr _bias_ptr, ParamsSensorGnssPtr params, StateBlockPtr _t_ENU_MAP_ptr, StateBlockPtr _roll_ENU_MAP_ptr, StateBlockPtr _pitch_ENU_MAP_ptr, StateBlockPtr _yaw_ENU_MAP_ptr); virtual ~SensorGnss(); @@ -85,7 +85,7 @@ class SensorGnss : public SensorBase const Eigen::Vector3d& _v_ECEF_antena1_antena2); public: - static SensorBasePtr create(const std::string& _unique_name, const Eigen::VectorXd& _extrinsics_p, const IntrinsicsBasePtr _intrinsics); + static SensorBasePtr create(const std::string& _unique_name, const Eigen::VectorXd& _extrinsics_p, const ParamsSensorBasePtr _intrinsics); }; diff --git a/src/sensor/sensor_gnss.cpp b/src/sensor/sensor_gnss.cpp index 605a68c973b6116789fc7ea1faeb87332ba1b3b4..52ded0f3d3aa05b37568242681d5cb4e57c8b9e9 100644 --- a/src/sensor/sensor_gnss.cpp +++ b/src/sensor/sensor_gnss.cpp @@ -13,7 +13,7 @@ static double kSecondEccentricitySquared = 6.73949674228 * 0.001; SensorGnss::SensorGnss(StateBlockPtr _p_ptr, //GNSS antena 3D position with respect to the car frame (base frame) StateBlockPtr _bias_ptr, //GNSS sensor time bias - IntrinsicsGnssPtr params) //sensor params + ParamsSensorGnssPtr params) //sensor params : SensorBase("SensorGnss", _p_ptr, nullptr, _bias_ptr, 0), // antena orientation has no sense in GNSS params_(params), @@ -31,7 +31,7 @@ SensorGnss::SensorGnss(StateBlockPtr _p_ptr, //GNSS antena 3D positi SensorGnss::SensorGnss(StateBlockPtr _p_ptr, //GNSS sensor position with respect to the car frame (base frame) StateBlockPtr _bias_ptr, //GNSS sensor time bias - IntrinsicsGnssPtr params, //sensor params + ParamsSensorGnssPtr params, //sensor params StateBlockPtr _t_ENU_MAP_ptr, //ENU_MAP translation StateBlockPtr _roll_ENU_MAP_ptr, //ENU_MAP Roll StateBlockPtr _pitch_ENU_MAP_ptr, //ENU_MAP Pitch @@ -240,12 +240,12 @@ Eigen::Matrix3d SensorGnss::getREnuMap() const // Define the factory method SensorBasePtr SensorGnss::create(const std::string& _unique_name, const Eigen::VectorXd& _extrinsics, - const IntrinsicsBasePtr _intrinsics) + const ParamsSensorBasePtr _intrinsics) { assert((_extrinsics.size() == 3 || _extrinsics.size() == 9) && "Bad extrinsics vector length. Should be 3 (antena position) or 9 (antena position and MAP-ENU initialization: position XYZ and orientation RPY)"); SensorBasePtr sen = nullptr; - IntrinsicsGnssPtr intrinsics_gnss_ptr = std::static_pointer_cast<IntrinsicsGnss>(_intrinsics); + ParamsSensorGnssPtr intrinsics_gnss_ptr = std::static_pointer_cast<ParamsSensorGnss>(_intrinsics); StateBlockPtr p_ptr = std::make_shared<StateBlock>(_extrinsics.head(3), intrinsics_gnss_ptr->extrinsics_fixed_); if (_extrinsics.size() == 3) diff --git a/test/gtest_factor_gnss_fix_2D.cpp b/test/gtest_factor_gnss_fix_2D.cpp index ade863719d1bf21a816a0e5e4caa9baf95312390..be550e395fcfa0b1a6d279185a2b4e25951ed97f 100644 --- a/test/gtest_factor_gnss_fix_2D.cpp +++ b/test/gtest_factor_gnss_fix_2D.cpp @@ -88,7 +88,7 @@ Vector3d t_ecef_antena = R_ecef_enu * (R_enu_map * (R_map_base * t_base_antena + // WOLF ProblemPtr problem_ptr = Problem::create("PO", 2); CeresManagerPtr ceres_mgr_ptr = std::make_shared<CeresManager>(problem_ptr); -SensorGnssPtr gnss_sensor_ptr = std::static_pointer_cast<SensorGnss>(problem_ptr->installSensor("SensorGnss", "gnss", t_base_antena, std::make_shared<IntrinsicsGnss>())); +SensorGnssPtr gnss_sensor_ptr = std::static_pointer_cast<SensorGnss>(problem_ptr->installSensor("SensorGnss", "gnss", t_base_antena, std::make_shared<ParamsSensorGnss>())); FrameBasePtr frame_ptr; //////////////////////////////////////////////////////// diff --git a/test/gtest_factor_gnss_single_diff_2D.cpp b/test/gtest_factor_gnss_single_diff_2D.cpp index 9dadf7e94b0ead2a37260be1df9da87320c31ee3..65f93e5bd69e5100d842917cf7b4afed67d1d648 100644 --- a/test/gtest_factor_gnss_single_diff_2D.cpp +++ b/test/gtest_factor_gnss_single_diff_2D.cpp @@ -64,7 +64,7 @@ class FactorGnssSingleDiff2DTest : public testing::Test ceres_mgr_ptr->getSolverOptions().max_num_iterations = 10; // gnss sensor - gnss_sensor_ptr = std::static_pointer_cast<SensorGnss>(problem_ptr->installSensor("SensorGnss", "gnss", t_base_antena, std::make_shared<IntrinsicsBase>())); + gnss_sensor_ptr = std::static_pointer_cast<SensorGnss>(problem_ptr->installSensor("SensorGnss", "gnss", t_base_antena, std::make_shared<ParamsSensorBase>())); gnss_sensor_ptr->getEnuMapRoll()->fix(); gnss_sensor_ptr->getEnuMapPitch()->fix(); gnss_sensor_ptr->setEnuEcef(R_ecef_enu.transpose(), R_ecef_enu.transpose()*(-t_ecef_enu)); @@ -80,7 +80,7 @@ class FactorGnssSingleDiff2DTest : public testing::Test problem_ptr->installProcessor("ProcessorGnssSingleDiff", "gnss single difference", gnss_sensor_ptr, gnss_params_ptr); // odom sensor & processor - IntrinsicsOdom2DPtr odom_intrinsics_ptr = std::make_shared<IntrinsicsOdom2D>(); + ParamsSensorOdom2DPtr odom_intrinsics_ptr = std::make_shared<ParamsSensorOdom2D>(); odom_intrinsics_ptr->k_disp_to_disp = 0.1; odom_intrinsics_ptr->k_rot_to_rot = 0.1; //<<<<<<< HEAD