18
18
#define FMT_HEADER_ONLY
19
19
20
20
#include " localization_util/smart_pose_buffer.hpp"
21
+ #include " ndt_scan_matcher/diagnostics_module.hpp"
21
22
#include " ndt_scan_matcher/hyper_parameters.hpp"
22
23
#include " ndt_scan_matcher/map_update_module.hpp"
23
24
62
63
#include < map>
63
64
#include < memory>
64
65
#include < mutex>
66
+ #include < sstream>
65
67
#include < string>
66
68
#include < thread>
67
69
#include < vector>
@@ -77,21 +79,32 @@ class NDTScanMatcher : public rclcpp::Node
77
79
explicit NDTScanMatcher (const rclcpp::NodeOptions & options = rclcpp::NodeOptions());
78
80
79
81
private:
80
- void service_ndt_align (
81
- const tier4_localization_msgs::srv::PoseWithCovarianceStamped::Request::SharedPtr req,
82
- tier4_localization_msgs::srv::PoseWithCovarianceStamped::Response::SharedPtr res);
83
- void service_trigger_node (
84
- const std_srvs::srv::SetBool::Request::SharedPtr req,
85
- std_srvs::srv::SetBool::Response::SharedPtr res);
86
-
87
82
void callback_timer ();
88
- void callback_sensor_points (
89
- sensor_msgs::msg::PointCloud2::ConstSharedPtr sensor_points_msg_in_sensor_frame);
83
+
90
84
void callback_initial_pose (
91
85
geometry_msgs::msg::PoseWithCovarianceStamped::ConstSharedPtr initial_pose_msg_ptr);
86
+ void callback_initial_pose_main (
87
+ const geometry_msgs::msg::PoseWithCovarianceStamped::ConstSharedPtr initial_pose_msg_ptr);
88
+
92
89
void callback_regularization_pose (
93
90
geometry_msgs::msg::PoseWithCovarianceStamped::ConstSharedPtr pose_conv_msg_ptr);
94
91
92
+ void callback_sensor_points (
93
+ sensor_msgs::msg::PointCloud2::ConstSharedPtr sensor_points_msg_in_sensor_frame);
94
+ bool callback_sensor_points_main (
95
+ sensor_msgs::msg::PointCloud2::ConstSharedPtr sensor_points_msg_in_sensor_frame);
96
+
97
+ void service_trigger_node (
98
+ const std_srvs::srv::SetBool::Request::SharedPtr req,
99
+ std_srvs::srv::SetBool::Response::SharedPtr res);
100
+
101
+ void service_ndt_align (
102
+ const tier4_localization_msgs::srv::PoseWithCovarianceStamped::Request::SharedPtr req,
103
+ tier4_localization_msgs::srv::PoseWithCovarianceStamped::Response::SharedPtr res);
104
+ void service_ndt_align_main (
105
+ const tier4_localization_msgs::srv::PoseWithCovarianceStamped::Request::SharedPtr req,
106
+ tier4_localization_msgs::srv::PoseWithCovarianceStamped::Response::SharedPtr res);
107
+
95
108
geometry_msgs::msg::PoseWithCovarianceStamped align_pose (
96
109
const geometry_msgs::msg::PoseWithCovarianceStamped & initial_pose_with_cov);
97
110
@@ -116,11 +129,6 @@ class NDTScanMatcher : public rclcpp::Node
116
129
const geometry_msgs::msg::PoseWithCovarianceStamped & initial_pose_old_msg,
117
130
const geometry_msgs::msg::PoseWithCovarianceStamped & initial_pose_new_msg);
118
131
119
- bool validate_num_iteration (const int iter_num, const int max_iter_num);
120
- bool validate_score (
121
- const double score, const double score_threshold, const std::string & score_name);
122
- bool validate_converged_param (
123
- const double & transform_probability, const double & nearest_voxel_transformation_likelihood);
124
132
static int count_oscillation (const std::vector<geometry_msgs::msg::Pose> & result_pose_msg_array);
125
133
126
134
std::array<double , 36 > rotate_covariance (
@@ -131,8 +139,6 @@ class NDTScanMatcher : public rclcpp::Node
131
139
132
140
void add_regularization_pose (const rclcpp::Time & sensor_ros_time);
133
141
134
- void publish_diagnostic ();
135
-
136
142
rclcpp::TimerBase::SharedPtr map_update_timer_;
137
143
rclcpp::Subscription<geometry_msgs::msg::PoseWithCovarianceStamped>::SharedPtr initial_pose_sub_;
138
144
rclcpp::Subscription<sensor_msgs::msg::PointCloud2>::SharedPtr sensor_points_sub_;
@@ -168,7 +174,6 @@ class NDTScanMatcher : public rclcpp::Node
168
174
rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr ndt_marker_pub_;
169
175
rclcpp::Publisher<visualization_msgs::msg::MarkerArray>::SharedPtr
170
176
ndt_monte_carlo_initial_pose_marker_pub_;
171
- rclcpp::Publisher<diagnostic_msgs::msg::DiagnosticArray>::SharedPtr diagnostics_pub_;
172
177
173
178
rclcpp::Service<tier4_localization_msgs::srv::PoseWithCovarianceStamped>::SharedPtr service_;
174
179
rclcpp::Service<std_srvs::srv::SetBool>::SharedPtr service_trigger_node_;
@@ -180,7 +185,6 @@ class NDTScanMatcher : public rclcpp::Node
180
185
rclcpp::CallbackGroup::SharedPtr timer_callback_group_;
181
186
182
187
std::shared_ptr<NormalDistributionsTransform> ndt_ptr_;
183
- std::shared_ptr<std::map<std::string, std::string>> state_ptr_;
184
188
185
189
Eigen::Matrix4f base_to_sensor_matrix_;
186
190
@@ -194,6 +198,12 @@ class NDTScanMatcher : public rclcpp::Node
194
198
std::unique_ptr<SmartPoseBuffer> regularization_pose_buffer_;
195
199
196
200
std::atomic<bool > is_activated_;
201
+ std::unique_ptr<DiagnosticsModule> diagnostics_scan_points_;
202
+ std::unique_ptr<DiagnosticsModule> diagnostics_initial_pose_;
203
+ std::unique_ptr<DiagnosticsModule> diagnostics_regularization_pose_;
204
+ std::unique_ptr<DiagnosticsModule> diagnostics_map_update_;
205
+ std::unique_ptr<DiagnosticsModule> diagnostics_ndt_align_;
206
+ std::unique_ptr<DiagnosticsModule> diagnostics_trigger_node_;
197
207
std::unique_ptr<MapUpdateModule> map_update_module_;
198
208
std::unique_ptr<tier4_autoware_utils::LoggerLevelConfigure> logger_configure_;
199
209
0 commit comments