@@ -18,11 +18,7 @@ namespace nebula::ros
18
18
VelodyneRosWrapper::VelodyneRosWrapper (const rclcpp::NodeOptions & options)
19
19
: rclcpp::Node(" velodyne_ros_wrapper" , rclcpp::NodeOptions(options).use_intra_process_comms(true )),
20
20
wrapper_status_ (Status::NOT_INITIALIZED),
21
- sensor_cfg_ptr_(nullptr ),
22
- packet_queue_(3000 ),
23
- hw_interface_wrapper_(),
24
- hw_monitor_wrapper_(),
25
- decoder_wrapper_()
21
+ sensor_cfg_ptr_(nullptr )
26
22
{
27
23
setvbuf (stdout, NULL , _IONBF, BUFSIZ);
28
24
@@ -56,12 +52,6 @@ VelodyneRosWrapper::VelodyneRosWrapper(const rclcpp::NodeOptions & options)
56
52
57
53
RCLCPP_DEBUG (get_logger (), " Starting stream" );
58
54
59
- decoder_thread_ = std::thread ([this ]() {
60
- while (true ) {
61
- decoder_wrapper_->process_cloud_packet (packet_queue_.pop ());
62
- }
63
- });
64
-
65
55
if (launch_hw_) {
66
56
hw_interface_wrapper_->hw_interface ()->register_scan_callback (
67
57
std::bind (&VelodyneRosWrapper::receive_cloud_packet_callback, this , std::placeholders::_1));
@@ -172,7 +162,7 @@ void VelodyneRosWrapper::receive_scan_message_callback(
172
162
nebula_pkt_ptr->stamp = pkt.stamp ;
173
163
std::copy (pkt.data .begin (), pkt.data .end (), std::back_inserter (nebula_pkt_ptr->data ));
174
164
175
- packet_queue_. push (std::move (nebula_pkt_ptr));
165
+ decoder_wrapper_-> process_cloud_packet (std::move (nebula_pkt_ptr));
176
166
}
177
167
}
178
168
@@ -263,9 +253,7 @@ void VelodyneRosWrapper::receive_cloud_packet_callback(std::vector<uint8_t> & pa
263
253
msg_ptr->stamp .nanosec = static_cast <int >(timestamp_ns % 1'000'000'000 );
264
254
msg_ptr->data .swap (packet);
265
255
266
- if (!packet_queue_.try_push (std::move (msg_ptr))) {
267
- RCLCPP_ERROR_THROTTLE (get_logger (), *get_clock (), 500 , " Packet(s) dropped" );
268
- }
256
+ decoder_wrapper_->process_cloud_packet (std::move (msg_ptr));
269
257
}
270
258
271
259
RCLCPP_COMPONENTS_REGISTER_NODE (VelodyneRosWrapper)
0 commit comments