Go to the documentation of this file.
17 #ifndef LOCALIZATION_COMMON__LOCALIZER_BASE_HPP_
18 #define LOCALIZATION_COMMON__LOCALIZER_BASE_HPP_
21 #include <tf2/buffer_core.h>
22 #include <geometry_msgs/msg/transform.hpp>
24 #include <geometry_msgs/msg/pose_with_covariance_stamped.hpp>
32 namespace localization
34 namespace localization_common
57 template<
typename InputMsgT,
typename MapMsgT,
typename RegistrationSummaryT>
75 const InputMsgT & msg,
const Transform & transform_initial,
79 on_register_without_map();
81 return register_measurement_impl(msg, transform_initial, pose_out);
93 on_bad_map(std::current_exception());
102 insert_to_map_impl(msg);
104 on_bad_map_insertion(std::current_exception());
109 virtual const std::string & map_frame_id() const noexcept = 0;
112 virtual std::chrono::system_clock::time_point map_stamp() const noexcept = 0;
114 bool map_valid() const noexcept
127 virtual void set_map_impl(
const MapMsgT & msg) = 0;
132 throw std::runtime_error(
"RelativeLocalizerBase: map insertion is not implemented.");
139 std::rethrow_exception(eptr);
146 std::rethrow_exception(eptr);
151 virtual RegistrationSummaryT register_measurement_impl(
152 const InputMsgT & msg,
153 const Transform & transform_initial, PoseWithCovarianceStamped & pose_out) = 0;
170 throw std::logic_error(
171 "RelativeLocalizerBase: Cannot register a measurement without a valid"
172 " map. Either no valid map is set yet or an invalid map had been "
173 "attempted to be set.");
177 bool m_map_valid{
false};
183 #endif // LOCALIZATION_COMMON__LOCALIZER_BASE_HPP_
virtual void on_bad_map_insertion(std::exception_ptr eptr)
Action to take on failure to insert to the map.
Definition: localizer_base.hpp:143
This file includes common type definition.
Definition: localizer_base.hpp:40
MapperRegistrationSummaryBase< LocalizerT::RegistrationSummary, ConstCloudPtr > RegistrationSummary
Definition: localizer_base.hpp:63
sensor_msgs::msg::PointCloud2 MapMsg
Definition: localizer_base.hpp:65
RegistrationSummaryT register_measurement(const InputMsgT &msg, const Transform &transform_initial, PoseWithCovarianceStamped &pose_out)
Definition: localizer_base.hpp:74
sensor_msgs::msg::PointCloud2 InputMsg
Definition: localizer_base.hpp:64
geometry_msgs::msg::PoseWithCovarianceStamped PoseWithCovarianceStamped
Definition: localizer_base.hpp:61
Definition: optimizer_options.hpp:77
virtual void on_bad_map(std::exception_ptr eptr)
Action to take on failure to set a new map.
Definition: localizer_base.hpp:136
virtual void on_register_without_map()
Action to take when a measurement is attempted to be set without a valid map.
Definition: localizer_base.hpp:168
This file defines the lanelet2_map_provider_node class.
Definition: quick_sort.hpp:24
geometry_msgs::msg::TransformStamped Transform
Definition: recordreplay_planner_node.hpp:56
geometry_msgs::msg::TransformStamped TransformStamped
Definition: motion_testing_publisher.hpp:37
void set_map_valid() noexcept
Set current map as valid.
Definition: localizer_base.hpp:156
autoware::common::types::float64_t Real
Definition: localizer_base.hpp:36
geometry_msgs::msg::TransformStamped Transform
Definition: localizer_base.hpp:62
void insert_to_map(const MapMsgT &msg)
Definition: localizer_base.hpp:99
Definition: localizer_base.hpp:58
void set_map(const MapMsgT &msg)
Definition: localizer_base.hpp:86
double float64_t
Definition: types.hpp:37
void set_map_invalid() noexcept
Set current map as invalid.
Definition: localizer_base.hpp:162
virtual void insert_to_map_impl(const MapMsgT &)
insert_to_map implementation.
Definition: localizer_base.hpp:130