diff --git a/include/publisher_gnss_accuracy.h b/include/publisher_gnss_accuracy.h index 57ca6cfb27e97a50d925f07cb779f29fac88352e..c494fc4da4d796de4d0741153d14b339e05d1cac 100644 --- a/include/publisher_gnss_accuracy.h +++ b/include/publisher_gnss_accuracy.h @@ -42,13 +42,13 @@ class PublisherGnssAccuracy: public Publisher { visualization_msgs::Marker PL_marker_msg_; std_msgs::ColorRGBA marker_color_; - SensorBasePtr sensor_; + SensorBaseConstPtr sensor_; double k_H_, k_V_; public: PublisherGnssAccuracy(const std::string& _unique_name, const ParamsServer& _server, - const ProblemPtr _problem); + ProblemConstPtr _problem); WOLF_PUBLISHER_CREATE(PublisherGnssAccuracy); virtual ~PublisherGnssAccuracy(){}; diff --git a/include/publisher_gnss_fix.h b/include/publisher_gnss_fix.h index a4f0caf70dcbfe8f693342c7d5651cc067962e10..4f2daad7ad59c5a6ef3619333edb5c9c370a7e8d 100644 --- a/include/publisher_gnss_fix.h +++ b/include/publisher_gnss_fix.h @@ -45,15 +45,15 @@ class PublishGnssFix: public Publisher geometry_msgs::PoseArray pose_array_msg_; geometry_msgs::PoseStamped pose_msg_; visualization_msgs::Marker marker_msg_; - SensorBasePtr sensor_; + SensorBaseConstPtr sensor_; std::string frame_id_, map_frame_id_; ros::Publisher pub_pose_array_, pub_marker_, pub_pose_; public: PublishGnssFix(const std::string& _unique_name, - const ParamsServer& _server, - const ProblemPtr _problem); + const ParamsServer& _server, + ProblemConstPtr _problem); WOLF_PUBLISHER_CREATE(PublishGnssFix); virtual ~PublishGnssFix(){}; diff --git a/include/publisher_gnss_tf.h b/include/publisher_gnss_tf.h index 6779049080bb5e17a560cb611db673b48fd42158..6d49cbe48b16e8df87390ab2004cfd5c659c8570 100644 --- a/include/publisher_gnss_tf.h +++ b/include/publisher_gnss_tf.h @@ -40,12 +40,12 @@ class PublisherGnssTf: public Publisher std::string map_frame_id_, enu_frame_id_, ecef_frame_id_; tf::StampedTransform T_enu_map_, T_ecef_enu_; tf::TransformBroadcaster tfb_; - SensorGnssPtr sensor_gnss_; + SensorGnssConstPtr sensor_gnss_; public: PublisherGnssTf(const std::string& _unique_name, - const ParamsServer& _server, - const ProblemPtr _problem); + const ParamsServer& _server, + ProblemConstPtr _problem); WOLF_PUBLISHER_CREATE(PublisherGnssTf); virtual ~PublisherGnssTf(){}; diff --git a/include/publisher_tracker_gnss_info.h b/include/publisher_tracker_gnss_info.h index ce057285292583562c24510723ede5976093d589..19ccd90f25f51565bf2121860e73188f1e597dff 100644 --- a/include/publisher_tracker_gnss_info.h +++ b/include/publisher_tracker_gnss_info.h @@ -42,13 +42,13 @@ class PublisherTrackerGnssInfo: public Publisher { protected: - ProcessorTrackerGnssPtr processor_tracker_gnss_; + ProcessorTrackerGnssConstPtr processor_tracker_gnss_; ros::Publisher publisher_untracked_; public: PublisherTrackerGnssInfo(const std::string& _unique_name, const ParamsServer& _server, - const ProblemPtr _problem); + ProblemConstPtr _problem); WOLF_PUBLISHER_CREATE(PublisherTrackerGnssInfo); virtual ~PublisherTrackerGnssInfo(){}; diff --git a/src/publisher_gnss_accuracy.cpp b/src/publisher_gnss_accuracy.cpp index da18a60dff6ffd1fb077dd6b073cadef379cdd92..f57141022e54f96e5cd05d9e6134cebd44444f6f 100644 --- a/src/publisher_gnss_accuracy.cpp +++ b/src/publisher_gnss_accuracy.cpp @@ -31,9 +31,9 @@ namespace wolf { PublisherGnssAccuracy::PublisherGnssAccuracy(const std::string& _unique_name, - const ParamsServer& _server, - const ProblemPtr _problem) : - Publisher(_unique_name, _server, _problem) + const ParamsServer& _server, + ProblemConstPtr _problem) : + Publisher(_unique_name, _server, _problem) { Eigen::Vector4d col = _server.getParam<Eigen::Vector4d>(prefix_ + "/marker_color"); marker_color_.r = col(0); diff --git a/src/publisher_gnss_fix.cpp b/src/publisher_gnss_fix.cpp index 814e87091e7275a77f9eeaa9e554015af26bac54..5b4750ca16e3139ff16258d001cccb3724eff3cd 100644 --- a/src/publisher_gnss_fix.cpp +++ b/src/publisher_gnss_fix.cpp @@ -28,8 +28,8 @@ namespace wolf { PublishGnssFix::PublishGnssFix(const std::string& _unique_name, - const ParamsServer& _server, - const ProblemPtr _problem) : + const ParamsServer& _server, + ProblemConstPtr _problem) : Publisher(_unique_name, _server, _problem) { sensor_ = _problem->findSensor(_server.getParam<std::string>(prefix_ + "/sensor")); diff --git a/src/publisher_gnss_tf.cpp b/src/publisher_gnss_tf.cpp index 9ec259e2dca3067f12a8a5aae5653c3f6776a48b..da778fbb3e6ff5cae76a2b4c9a12ccf50e824611 100644 --- a/src/publisher_gnss_tf.cpp +++ b/src/publisher_gnss_tf.cpp @@ -33,10 +33,10 @@ namespace wolf PublisherGnssTf::PublisherGnssTf(const std::string& _unique_name, const ParamsServer& _server, - const ProblemPtr _problem) : + ProblemConstPtr _problem) : Publisher(_unique_name, _server, _problem) { - sensor_gnss_ = std::static_pointer_cast<SensorGnss>(_problem->findSensor(_server.getParam<std::string>(prefix_ + "/sensor_gnss_name"))); + sensor_gnss_ = std::static_pointer_cast<const SensorGnss>(_problem->findSensor(_server.getParam<std::string>(prefix_ + "/sensor_gnss_name"))); T_enu_map_.setIdentity(); T_enu_map_.frame_id_ = "ENU"; diff --git a/src/publisher_tracker_gnss_info.cpp b/src/publisher_tracker_gnss_info.cpp index 1fc154f2a2390adf28538b365294d3654d00632d..4634a96cd59bc5d1d88eaf25e148ac9c969a439c 100644 --- a/src/publisher_tracker_gnss_info.cpp +++ b/src/publisher_tracker_gnss_info.cpp @@ -29,24 +29,13 @@ namespace wolf PublisherTrackerGnssInfo::PublisherTrackerGnssInfo(const std::string& _unique_name, const ParamsServer& _server, - const ProblemPtr _problem) : + ProblemConstPtr _problem) : Publisher(_unique_name, _server, _problem), processor_tracker_gnss_(nullptr) { auto proc_name = _server.getParam<std::string>(prefix_ + "/processor_gnss"); - for (auto sen : _problem->getHardware()->getSensorList()) - { - for (auto proc : sen->getProcessorList()) - if (proc_name == proc->getName()) - { - processor_tracker_gnss_ = std::dynamic_pointer_cast<ProcessorTrackerGnss>(proc); - if (not processor_tracker_gnss_) - throw std::runtime_error("PublisherTrackerGnssInfo: the processor with name " + proc_name + " is not of type ProcessorTrackerGnss."); - break; - } - if (processor_tracker_gnss_) - break; - } + processor_tracker_gnss_ = std::dynamic_pointer_cast<const ProcessorTrackerGnss>(problem_->findProcessor(proc_name)); + if (not processor_tracker_gnss_) throw std::runtime_error("PublisherTrackerGnssInfo: the processor with name " + proc_name + " was not found."); }