@@ -169,22 +169,6 @@ LaneDepartureCheckerNode::LaneDepartureCheckerNode(const rclcpp::NodeOptions & o
169
169
lane_departure_checker_ = std::make_unique<LaneDepartureChecker>();
170
170
lane_departure_checker_->setParam (param_, vehicle_info);
171
171
172
- // Subscriber
173
- sub_odom_ = this ->create_subscription <nav_msgs::msg::Odometry>(
174
- " ~/input/odometry" , 1 , std::bind (&LaneDepartureCheckerNode::onOdometry, this , _1));
175
- sub_lanelet_map_bin_ = this ->create_subscription <LaneletMapBin>(
176
- " ~/input/lanelet_map_bin" , rclcpp::QoS{1 }.transient_local (),
177
- std::bind (&LaneDepartureCheckerNode::onLaneletMapBin, this , _1));
178
- sub_route_ = this ->create_subscription <LaneletRoute>(
179
- " ~/input/route" , rclcpp::QoS{1 }.transient_local (),
180
- std::bind (&LaneDepartureCheckerNode::onRoute, this , _1));
181
- sub_reference_trajectory_ = this ->create_subscription <Trajectory>(
182
- " ~/input/reference_trajectory" , 1 ,
183
- std::bind (&LaneDepartureCheckerNode::onReferenceTrajectory, this , _1));
184
- sub_predicted_trajectory_ = this ->create_subscription <Trajectory>(
185
- " ~/input/predicted_trajectory" , 1 ,
186
- std::bind (&LaneDepartureCheckerNode::onPredictedTrajectory, this , _1));
187
-
188
172
// Publisher
189
173
// Nothing
190
174
@@ -201,36 +185,6 @@ LaneDepartureCheckerNode::LaneDepartureCheckerNode(const rclcpp::NodeOptions & o
201
185
this , get_clock (), period_ns, std::bind (&LaneDepartureCheckerNode::onTimer, this ));
202
186
}
203
187
204
- void LaneDepartureCheckerNode::onOdometry (const nav_msgs::msg::Odometry::ConstSharedPtr msg)
205
- {
206
- current_odom_ = msg;
207
- }
208
-
209
- void LaneDepartureCheckerNode::onLaneletMapBin (const LaneletMapBin::ConstSharedPtr msg)
210
- {
211
- lanelet_map_ = std::make_shared<lanelet::LaneletMap>();
212
- lanelet::utils::conversion::fromBinMsg (*msg, lanelet_map_, &traffic_rules_, &routing_graph_);
213
-
214
- // get all shoulder lanes
215
- lanelet::ConstLanelets all_lanelets = lanelet::utils::query::laneletLayer (lanelet_map_);
216
- shoulder_lanelets_ = lanelet::utils::query::shoulderLanelets (all_lanelets);
217
- }
218
-
219
- void LaneDepartureCheckerNode::onRoute (const LaneletRoute::ConstSharedPtr msg)
220
- {
221
- route_ = msg;
222
- }
223
-
224
- void LaneDepartureCheckerNode::onReferenceTrajectory (const Trajectory::ConstSharedPtr msg)
225
- {
226
- reference_trajectory_ = msg;
227
- }
228
-
229
- void LaneDepartureCheckerNode::onPredictedTrajectory (const Trajectory::ConstSharedPtr msg)
230
- {
231
- predicted_trajectory_ = msg;
232
- }
233
-
234
188
bool LaneDepartureCheckerNode::isDataReady ()
235
189
{
236
190
if (!current_odom_) {
@@ -300,6 +254,22 @@ void LaneDepartureCheckerNode::onTimer()
300
254
tier4_autoware_utils::StopWatch<std::chrono::milliseconds> stop_watch;
301
255
stop_watch.tic (" Total" );
302
256
257
+ current_odom_ = sub_odom_.takeData ();
258
+ route_ = sub_route_.takeData ();
259
+ reference_trajectory_ = sub_reference_trajectory_.takeData ();
260
+ predicted_trajectory_ = sub_predicted_trajectory_.takeData ();
261
+
262
+ const auto lanelet_map_bin_msg = sub_lanelet_map_bin_.takeData ();
263
+ if (lanelet_map_bin_msg) {
264
+ lanelet_map_ = std::make_shared<lanelet::LaneletMap>();
265
+ lanelet::utils::conversion::fromBinMsg (
266
+ *lanelet_map_bin_msg, lanelet_map_, &traffic_rules_, &routing_graph_);
267
+
268
+ // get all shoulder lanes
269
+ lanelet::ConstLanelets all_lanelets = lanelet::utils::query::laneletLayer (lanelet_map_);
270
+ shoulder_lanelets_ = lanelet::utils::query::shoulderLanelets (all_lanelets);
271
+ }
272
+
303
273
if (!isDataReady ()) {
304
274
return ;
305
275
}
0 commit comments