diff --git a/CMakeLists.txt b/CMakeLists.txt index a459fa15dc1983a336dc48c78e939a921de07574..f68f9b09de8b7a3bf4b8651cee43710f64ca93e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -137,10 +137,10 @@ include_directories( # add_library(${PROJECT_NAME} # src/${PROJECT_NAME}/wolf_ros.cpp # ) -add_library(wolf_subscriber_gnss src/wolf_subscriber_gnss.cpp) -add_library(wolf_subscriber_gnss_fix src/wolf_subscriber_gnss_fix.cpp) -add_library(wolf_subscriber_gnss_TDCP src/wolf_subscriber_gnss_TDCP.cpp) -add_library(wolf_subscriber_gnss_ublox src/wolf_subscriber_gnss_ublox.cpp) +add_library(subscriber_gnss src/subscriber_gnss.cpp) +add_library(subscriber_gnss_fix src/subscriber_gnss_fix.cpp) +add_library(subscriber_gnss_Tdcp src/subscriber_gnss_Tdcp.cpp) +add_library(subscriber_gnss_ublox src/subscriber_gnss_ublox.cpp) ## Add cmake target dependencies of the library ## as an example, code may need to be generated before libraries @@ -164,22 +164,22 @@ add_library(wolf_subscriber_gnss_ublox src/wolf_subscriber_gnss_ublox.cpp) #add_dependencies(${PROJECT_NAME}_visualizer ${PROJECT_NAME}_gencfg) ## Specify libraries to link a library or executable target against -target_link_libraries(wolf_subscriber_gnss +target_link_libraries(subscriber_gnss ${wolf_LIBRARIES} ${wolfgnss_LIBRARIES} ${iri_gnss_msgs_LIBRARIES} ) -target_link_libraries(wolf_subscriber_gnss_fix +target_link_libraries(subscriber_gnss_fix ${wolf_LIBRARIES} ${wolfgnss_LIBRARIES} ${iri_gnss_msgs_LIBRARIES} ) -target_link_libraries(wolf_subscriber_gnss_TDCP +target_link_libraries(subscriber_gnss_Tdcp ${wolf_LIBRARIES} ${wolfgnss_LIBRARIES} ${iri_gnss_msgs_LIBRARIES} ) -target_link_libraries(wolf_subscriber_gnss_ublox +target_link_libraries(subscriber_gnss_ublox ${wolf_LIBRARIES} ${wolfgnss_LIBRARIES} ${iri_gnss_msgs_LIBRARIES} diff --git a/include/wolf_subscriber_gnss.h b/include/subscriber_gnss.h similarity index 81% rename from include/wolf_subscriber_gnss.h rename to include/subscriber_gnss.h index de3a920f77e81b74b13c98f42d56874c01e9c430..abe58749cf110a1bc103996a090a238bcb2ccd79 100644 --- a/include/wolf_subscriber_gnss.h +++ b/include/subscriber_gnss.h @@ -26,13 +26,13 @@ /************************** * WOLF-ROS includes * **************************/ -#include "wolf_subscriber.h" +#include "subscriber.h" #include "subscriber_factory.h" #include "gnss_utils/gnss_utils.h" using namespace wolf; -class WolfSubscriberGnss : public WolfSubscriber +class SubscriberGnss : public Subscriber { protected: @@ -47,7 +47,7 @@ class WolfSubscriberGnss : public WolfSubscriber public: // Constructor - WolfSubscriberGnss(const SensorBasePtr& sensor_ptr); + SubscriberGnss(const SensorBasePtr& sensor_ptr); virtual void initSubscriber(ros::NodeHandle& nh, const std::string& topic); @@ -55,6 +55,6 @@ class WolfSubscriberGnss : public WolfSubscriber void callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg); - static std::shared_ptr<WolfSubscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr); + static std::shared_ptr<Subscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr); }; -WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnss) +WOLF_REGISTER_SUBSCRIBER(SubscriberGnss) diff --git a/include/wolf_subscriber_gnss_TDCP.h b/include/subscriber_gnss_Tdcp.h similarity index 79% rename from include/wolf_subscriber_gnss_TDCP.h rename to include/subscriber_gnss_Tdcp.h index 145a48b289961271c0d5c40ec0cd058772b50951..be74dbb3047aada1ae1a4af443cc53950b352334 100644 --- a/include/wolf_subscriber_gnss_TDCP.h +++ b/include/subscriber_gnss_Tdcp.h @@ -26,13 +26,13 @@ /************************** * WOLF-ROS includes * **************************/ -#include "wolf_subscriber.h" +#include "subscriber.h" #include "subscriber_factory.h" #include "gnss_utils/gnss_utils.h" using namespace wolf; -class WolfSubscriberGnssTDCP : public WolfSubscriber +class SubscriberGnssTdcp : public Subscriber { protected: @@ -44,7 +44,7 @@ class WolfSubscriberGnssTDCP : public WolfSubscriber public: // Constructor - WolfSubscriberGnssTDCP(const SensorBasePtr& sensor_ptr); + SubscriberGnssTdcp(const SensorBasePtr& sensor_ptr); virtual void initSubscriber(ros::NodeHandle& nh, const std::string& topic); @@ -52,6 +52,6 @@ class WolfSubscriberGnssTDCP : public WolfSubscriber void callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg); - static std::shared_ptr<WolfSubscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr); + static std::shared_ptr<Subscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr); }; -WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnssTDCP) +WOLF_REGISTER_SUBSCRIBER(SubscriberGnssTdcp) diff --git a/include/wolf_subscriber_gnss_fix.h b/include/subscriber_gnss_fix.h similarity index 73% rename from include/wolf_subscriber_gnss_fix.h rename to include/subscriber_gnss_fix.h index 2a16a5f1bba570292812770344492f3444ae1095..33c4b70cdf132a93c768405d5f5503fed133d010 100644 --- a/include/wolf_subscriber_gnss_fix.h +++ b/include/subscriber_gnss_fix.h @@ -24,22 +24,22 @@ /************************** * WOLF-ROS includes * **************************/ -#include "wolf_subscriber.h" +#include "subscriber.h" #include "subscriber_factory.h" #include "gnss_utils/gnss_utils.h" using namespace wolf; -class WolfSubscriberGnssFix : public WolfSubscriber +class SubscriberGnssFix : public Subscriber { public: // Constructor - WolfSubscriberGnssFix(const SensorBasePtr& sensor_ptr); + SubscriberGnssFix(const SensorBasePtr& sensor_ptr); virtual void initSubscriber(ros::NodeHandle& nh, const std::string& topic); void callback(const sensor_msgs::NavSatFix::ConstPtr& msg); - static std::shared_ptr<WolfSubscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr); + static std::shared_ptr<Subscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr); }; -WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnssFix) +WOLF_REGISTER_SUBSCRIBER(SubscriberGnssFix) diff --git a/include/wolf_subscriber_gnss_ublox.h b/include/subscriber_gnss_ublox.h similarity index 72% rename from include/wolf_subscriber_gnss_ublox.h rename to include/subscriber_gnss_ublox.h index 920d61dbae5ccb5ca4f7e72ddf84cc7084e19835..f16d2bc01c1e3b7dd70bd30403b2ba792dfe1259 100644 --- a/include/wolf_subscriber_gnss_ublox.h +++ b/include/subscriber_gnss_ublox.h @@ -17,27 +17,27 @@ /************************** * WOLF-ROS includes * **************************/ -#include "wolf_subscriber.h" +#include "subscriber.h" #include "subscriber_factory.h" #include "gnss_utils/gnss_utils.h" #include "gnss_utils/ublox_raw.h" using namespace wolf; -class WolfSubscriberGnssUblox : public WolfSubscriber +class SubscriberGnssUblox : public Subscriber { public: // Constructor - WolfSubscriberGnssUblox(const SensorBasePtr& sensor_ptr); + SubscriberGnssUblox(const SensorBasePtr& sensor_ptr); virtual void initSubscriber(ros::NodeHandle& nh, const std::string& topic); void callback(const std_msgs::UInt8MultiArray& msg); - static std::shared_ptr<WolfSubscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr); + static std::shared_ptr<Subscriber> create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr); protected: GNSSUtils::UBloxRaw ublox_raw_; }; -WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnssUblox) +WOLF_REGISTER_SUBSCRIBER(SubscriberGnssUblox) diff --git a/src/wolf_subscriber_gnss.cpp b/src/subscriber_gnss.cpp similarity index 65% rename from src/wolf_subscriber_gnss.cpp rename to src/subscriber_gnss.cpp index 0030098534219359619535428c6c12f9c5c8c8c8..1ddc25f394627c18d05bf22ede1e31ded50b745d 100644 --- a/src/wolf_subscriber_gnss.cpp +++ b/src/subscriber_gnss.cpp @@ -3,8 +3,8 @@ using namespace wolf; // Constructor -WolfSubscriberGnss::WolfSubscriberGnss(const SensorBasePtr& sensor_ptr) : - WolfSubscriber(sensor_ptr) +SubscriberGnss::SubscriberGnss(const SensorBasePtr& sensor_ptr) : + Subscriber(sensor_ptr) { //prcopt_ = prcopt_default; //prcopt_.mode = PMODE_SINGLE; @@ -22,14 +22,14 @@ WolfSubscriberGnss::WolfSubscriberGnss(const SensorBasePtr& sensor_ptr) : } -void WolfSubscriberGnss::initSubscriber(ros::NodeHandle& nh, const std::string& topic) +void SubscriberGnss::initSubscriber(ros::NodeHandle& nh, const std::string& topic) { - sub_ = nh.subscribe(topic+std::string("_obs"), 1, &WolfSubscriberGnss::callbackObservation, this); - sub_nav_ = nh.subscribe(topic+std::string("_nav"), 1, &WolfSubscriberGnss::callbackNavigation, this); + sub_ = nh.subscribe(topic+std::string("_obs"), 1, &SubscriberGnss::callbackObservation, this); + sub_nav_ = nh.subscribe(topic+std::string("_nav"), 1, &SubscriberGnss::callbackNavigation, this); } -void WolfSubscriberGnss::callbackObservation(const iri_gnss_msgs::Observation::ConstPtr& msg) +void SubscriberGnss::callbackObservation(const iri_gnss_msgs::Observation::ConstPtr& msg) { ROS_INFO("callbackObs!"); if (last_nav_ptr_==nullptr) @@ -44,7 +44,7 @@ void WolfSubscriberGnss::callbackObservation(const iri_gnss_msgs::Observation::C new_capture->process(); } -void WolfSubscriberGnss::callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg) +void SubscriberGnss::callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg) { ROS_INFO("callbackNav!"); @@ -61,7 +61,7 @@ void WolfSubscriberGnss::callbackNavigation(const iri_gnss_msgs::Navigation::Con // } } -std::shared_ptr<WolfSubscriber> WolfSubscriberGnss::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr) +std::shared_ptr<Subscriber> SubscriberGnss::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr) { - return std::make_shared<WolfSubscriberGnss>(_sensor_ptr); + return std::make_shared<SubscriberGnss>(_sensor_ptr); } diff --git a/src/subscriber_gnss_Tdcp.cpp b/src/subscriber_gnss_Tdcp.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4f8442f6e8656cccc736d548c569b6b40c23e159 --- /dev/null +++ b/src/subscriber_gnss_Tdcp.cpp @@ -0,0 +1,50 @@ +#include "../include/wolf_subscriber_gnss_Tdcp.h" + +using namespace wolf; + +// Constructor +SubscriberGnssTdcp::SubscriberGnssTdcp(const SensorBasePtr& sensor_ptr) : + Subscriber(sensor_ptr) +{ + // TODO copied from Tdcp_ros +} + +void SubscriberGnssTdcp::initSubscriber(ros::NodeHandle& nh, const std::string& topic) +{ + sub_ = nh.subscribe(topic+std::string("_obs"), 1, &SubscriberGnssTdcp::callbackObservation, this); + sub_nav_ = nh.subscribe(topic+std::string("_nav"), 1, &SubscriberGnssTdcp::callbackNavigation, this); +} + +void SubscriberGnssTdcp::callbackObservation(const iri_gnss_msgs::Observation::ConstPtr& msg) +{ + ROS_INFO("callbackObs!"); + if (last_nav_ptr_==nullptr) + return; + + // TODO copied from Tdcp_ros + +// GNSSUtils::ObservationsPtr obs_ptr = std::make_shared<GNSSUtils::Observations>(); +// GNSSUtils::fillObservation(*obs_ptr, msg); +// CaptureGnssPtr new_capture = std::make_shared<CaptureGnss>(TimeStamp(msg->header.stamp.sec, msg->header.stamp.nsec), +// sensor_ptr_, +// obs_ptr, +// last_nav_ptr_); +// new_capture->process(); +// +} + +void SubscriberGnssTdcp::callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg) +{ + ROS_INFO("callbackNav!"); + + last_nav_ptr_ = std::make_shared<GNSSUtils::Navigation>(); + GNSSUtils::fillNavigation(*last_nav_ptr_, msg); + last_nav_ptr_->print(); + + // TODO copied from Tdcp_ros +} + +std::shared_ptr<Subscriber> SubscriberGnssTdcp::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr) +{ + return std::make_shared<SubscriberGnssTdcp>(_sensor_ptr); +} diff --git a/src/wolf_subscriber_gnss_fix.cpp b/src/subscriber_gnss_fix.cpp similarity index 62% rename from src/wolf_subscriber_gnss_fix.cpp rename to src/subscriber_gnss_fix.cpp index 0587ed8ae0ca7c6b86bcf32cd6d6ea42f0b6fad3..95c648abdfbfd6db86cea85a2cc1829f88d15034 100644 --- a/src/wolf_subscriber_gnss_fix.cpp +++ b/src/subscriber_gnss_fix.cpp @@ -3,18 +3,18 @@ using namespace wolf; // Constructor -WolfSubscriberGnssFix::WolfSubscriberGnssFix(const SensorBasePtr& sensor_ptr) : - WolfSubscriber(sensor_ptr) +SubscriberGnssFix::SubscriberGnssFix(const SensorBasePtr& sensor_ptr) : + Subscriber(sensor_ptr) { } -void WolfSubscriberGnssFix::initSubscriber(ros::NodeHandle& nh, const std::string& topic) +void SubscriberGnssFix::initSubscriber(ros::NodeHandle& nh, const std::string& topic) { - sub_ = nh.subscribe(topic, 1, &WolfSubscriberGnssFix::callback, this); + sub_ = nh.subscribe(topic, 1, &SubscriberGnssFix::callback, this); } -void WolfSubscriberGnssFix::callback(const sensor_msgs::NavSatFix::ConstPtr& msg) +void SubscriberGnssFix::callback(const sensor_msgs::NavSatFix::ConstPtr& msg) { Eigen::Matrix3d cov = Eigen::Map<const Eigen::Matrix3d>(msg->position_covariance.data()); @@ -27,7 +27,7 @@ void WolfSubscriberGnssFix::callback(const sensor_msgs::NavSatFix::ConstPtr& msg false); // false = {LatLonAlt fix and ENU cov} cap_gnss_ptr->process(); } -std::shared_ptr<WolfSubscriber> WolfSubscriberGnssFix::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr) +std::shared_ptr<Subscriber> SubscriberGnssFix::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr) { - return std::make_shared<WolfSubscriberGnssFix>(_sensor_ptr); + return std::make_shared<SubscriberGnssFix>(_sensor_ptr); } diff --git a/src/wolf_subscriber_gnss_ublox.cpp b/src/subscriber_gnss_ublox.cpp similarity index 63% rename from src/wolf_subscriber_gnss_ublox.cpp rename to src/subscriber_gnss_ublox.cpp index 33bcbff9b2a85f4f96627ac52df6356a619b0e58..f24b5ef4d9cee0e071bef8471ad89aa211c401ae 100644 --- a/src/wolf_subscriber_gnss_ublox.cpp +++ b/src/subscriber_gnss_ublox.cpp @@ -1,20 +1,20 @@ -#include "../include/wolf_subscriber_gnss_ublox.h" +#include "../include/subscriber_gnss_ublox.h" using namespace wolf; // Constructor -WolfSubscriberGnssUblox::WolfSubscriberGnssUblox(const SensorBasePtr& sensor_ptr) : - WolfSubscriber(sensor_ptr) +SubscriberGnssUblox::SubscriberGnssUblox(const SensorBasePtr& sensor_ptr) : + Subscriber(sensor_ptr) { } -void WolfSubscriberGnssUblox::initSubscriber(ros::NodeHandle& nh, const std::string& topic) +void SubscriberGnssUblox::initSubscriber(ros::NodeHandle& nh, const std::string& topic) { - sub_ = nh.subscribe(topic, 100, &WolfSubscriberGnssUblox::callback, this); + sub_ = nh.subscribe(topic, 100, &SubscriberGnssUblox::callback, this); } -void WolfSubscriberGnssUblox::callback(const std_msgs::UInt8MultiArray& msg) +void SubscriberGnssUblox::callback(const std_msgs::UInt8MultiArray& msg) { GNSSUtils::RawDataType res = ublox_raw_.addDataStream(msg.data); @@ -42,7 +42,7 @@ void WolfSubscriberGnssUblox::callback(const std_msgs::UInt8MultiArray& msg) //ROS_INFO("Capture GNSS processed!"); } } -std::shared_ptr<WolfSubscriber> WolfSubscriberGnssUblox::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr) +std::shared_ptr<Subscriber> SubscriberGnssUblox::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr) { - return std::make_shared<WolfSubscriberGnssUblox>(_sensor_ptr); + return std::make_shared<SubscriberGnssUblox>(_sensor_ptr); } diff --git a/src/wolf_subscriber_gnss_TDCP.cpp b/src/wolf_subscriber_gnss_TDCP.cpp deleted file mode 100644 index e70df9e2f73d189d9513eb471a478a3486c7ac4f..0000000000000000000000000000000000000000 --- a/src/wolf_subscriber_gnss_TDCP.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#include "../include/wolf_subscriber_gnss_TDCP.h" - -using namespace wolf; - -// Constructor -WolfSubscriberGnssTDCP::WolfSubscriberGnssTDCP(const SensorBasePtr& sensor_ptr) : - WolfSubscriber(sensor_ptr) -{ - // TODO copied from TDCP_ros -} - -void WolfSubscriberGnssTDCP::initSubscriber(ros::NodeHandle& nh, const std::string& topic) -{ - sub_ = nh.subscribe(topic+std::string("_obs"), 1, &WolfSubscriberGnssTDCP::callbackObservation, this); - sub_nav_ = nh.subscribe(topic+std::string("_nav"), 1, &WolfSubscriberGnssTDCP::callbackNavigation, this); -} - -void WolfSubscriberGnssTDCP::callbackObservation(const iri_gnss_msgs::Observation::ConstPtr& msg) -{ - ROS_INFO("callbackObs!"); - if (last_nav_ptr_==nullptr) - return; - - // TODO copied from TDCP_ros - -// GNSSUtils::ObservationsPtr obs_ptr = std::make_shared<GNSSUtils::Observations>(); -// GNSSUtils::fillObservation(*obs_ptr, msg); -// CaptureGnssPtr new_capture = std::make_shared<CaptureGnss>(TimeStamp(msg->header.stamp.sec, msg->header.stamp.nsec), -// sensor_ptr_, -// obs_ptr, -// last_nav_ptr_); -// new_capture->process(); -// -} - -void WolfSubscriberGnssTDCP::callbackNavigation(const iri_gnss_msgs::Navigation::ConstPtr& msg) -{ - ROS_INFO("callbackNav!"); - - last_nav_ptr_ = std::make_shared<GNSSUtils::Navigation>(); - GNSSUtils::fillNavigation(*last_nav_ptr_, msg); - last_nav_ptr_->print(); - - // TODO copied from TDCP_ros -} - -std::shared_ptr<WolfSubscriber> WolfSubscriberGnssTDCP::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr) -{ - return std::make_shared<WolfSubscriberGnssTDCP>(_sensor_ptr); -}