diff --git a/CMakeLists.txt b/CMakeLists.txt index 326764da5d0e1cb45f02ecc01eb9e1f076b2051e..54432737be56e169a19c1c0f5a7d5c2684fddf91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,6 +140,7 @@ include_directories( 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 cmake target dependencies of the library ## as an example, code may need to be generated before libraries @@ -177,6 +178,12 @@ target_link_libraries(wolf_subscriber_gnss_TDCP ${wolf_LIBRARIES} ${wolfgnss_LIBRARIES} ${iri_gnss_msgs_LIBRARIES} + ) + +target_link_libraries(wolf_subscriber_gnss_ublox + ${wolf_LIBRARIES} + ${wolfgnss_LIBRARIES} + ${iri_gnss_msgs_LIBRARIES} ) ############# diff --git a/include/wolf_subscriber_gnss_ublox.h b/include/wolf_subscriber_gnss_ublox.h new file mode 100644 index 0000000000000000000000000000000000000000..baaad1599770d1863e6b784c272c696f947d6b68 --- /dev/null +++ b/include/wolf_subscriber_gnss_ublox.h @@ -0,0 +1,38 @@ +/************************** + * WOLF includes * + **************************/ +#include <core/yaml/parser_yaml.hpp> +#include <core/common/wolf.h> +#include <core/problem/problem.h> +#include <core/utils/params_server.hpp> +#include <gnss/capture/capture_gnss_fix.h> +#include <gnss/sensor/sensor_gnss.h> + +/************************** + * ROS includes * + **************************/ +#include <ros/ros.h> +#include <std_msgs/UInt8MultiArray.h> + +/************************** + * WOLF-ROS includes * + **************************/ +#include "wolf_subscriber.h" +#include "subscriber_factory.h" +#include "gnss_utils/gnss_utils.h" + +using namespace wolf; + +class WolfSubscriberGnssUblox : public WolfSubscriber +{ + public: + // Constructor + WolfSubscriberGnssUblox(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); +}; +WOLF_REGISTER_SUBSCRIBER(WolfSubscriberGnssUblox) \ No newline at end of file diff --git a/src/wolf_subscriber_gnss_ublox.cpp b/src/wolf_subscriber_gnss_ublox.cpp new file mode 100644 index 0000000000000000000000000000000000000000..607097ef341f0381cea793bc0b882dca9327f144 --- /dev/null +++ b/src/wolf_subscriber_gnss_ublox.cpp @@ -0,0 +1,25 @@ +#include "../include/wolf_subscriber_gnss_ublox.h" + +using namespace wolf; + +// Constructor +WolfSubscriberGnssUblox::WolfSubscriberGnssUblox(const SensorBasePtr& sensor_ptr) : + WolfSubscriber(sensor_ptr) +{ +} + + +void WolfSubscriberGnssUblox::initSubscriber(ros::NodeHandle& nh, const std::string& topic) +{ + sub_ = nh.subscribe(topic, 1, &WolfSubscriberGnssUblox::callback, this); +} + +void WolfSubscriberGnssUblox::callback(const std_msgs::UInt8MultiArray& msg) +{ + + // cap_gnss_ptr->process(); +} +std::shared_ptr<WolfSubscriber> WolfSubscriberGnssUblox::create(const std::string& _unique_name, const ParamsServer& _params, const SensorBasePtr _sensor_ptr) +{ + return std::make_shared<WolfSubscriberGnssUblox>(_sensor_ptr); +}