Skip to content

Commit cbedb58

Browse files
authored
Merge branch 'main' into perf/robosense-remove-mtqueue
2 parents fb7acd1 + 33913f8 commit cbedb58

File tree

4 files changed

+5
-23
lines changed

4 files changed

+5
-23
lines changed

.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ repos:
4747
- id: shellcheck
4848

4949
- repo: https://github.com/scop/pre-commit-shfmt
50-
rev: v3.10.0-2
50+
rev: v3.11.0-1
5151
hooks:
5252
- id: shfmt
5353
args: [-w, -s, -i=4]

nebula_ros/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ if(BUILD_TESTING)
228228

229229
ament_lint_auto_find_test_dependencies()
230230

231-
foreach(MODEL Pandar40P Pandar64 PandarQT64 PandarQT128 Pandar128E4X PandarAT128 PandarXT16 PandarXT32 PandarXT32M ARS548 Helios Bpearl)
231+
foreach(MODEL Pandar40P Pandar64 PandarQT64 PandarQT128 Pandar128E4X PandarAT128 PandarXT16 PandarXT32 PandarXT32M ARS548 VLP16 VLP32 VLS128 Helios Bpearl)
232232
string(TOLOWER ${MODEL}_smoke_test test_name)
233233
add_ros_test(
234234
test/smoke_test.py

nebula_ros/include/nebula_ros/velodyne/velodyne_ros_wrapper.hpp

-6
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
#pragma once
1616

17-
#include "nebula_ros/common/mt_queue.hpp"
1817
#include "nebula_ros/common/parameter_descriptors.hpp"
1918
#include "nebula_ros/velodyne/decoder_wrapper.hpp"
2019
#include "nebula_ros/velodyne/hw_interface_wrapper.hpp"
@@ -82,11 +81,6 @@ class VelodyneRosWrapper final : public rclcpp::Node
8281

8382
std::shared_ptr<const nebula::drivers::VelodyneSensorConfiguration> sensor_cfg_ptr_{};
8483

85-
/// @brief Stores received packets that have not been processed yet by the decoder thread
86-
MtQueue<std::unique_ptr<nebula_msgs::msg::NebulaPacket>> packet_queue_;
87-
/// @brief Thread to isolate decoding from receiving
88-
std::thread decoder_thread_;
89-
9084
rclcpp::Subscription<velodyne_msgs::msg::VelodyneScan>::SharedPtr packets_sub_{};
9185

9286
bool launch_hw_;

nebula_ros/src/velodyne/velodyne_ros_wrapper.cpp

+3-15
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,7 @@ namespace nebula::ros
1818
VelodyneRosWrapper::VelodyneRosWrapper(const rclcpp::NodeOptions & options)
1919
: rclcpp::Node("velodyne_ros_wrapper", rclcpp::NodeOptions(options).use_intra_process_comms(true)),
2020
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)
2622
{
2723
setvbuf(stdout, NULL, _IONBF, BUFSIZ);
2824

@@ -56,12 +52,6 @@ VelodyneRosWrapper::VelodyneRosWrapper(const rclcpp::NodeOptions & options)
5652

5753
RCLCPP_DEBUG(get_logger(), "Starting stream");
5854

59-
decoder_thread_ = std::thread([this]() {
60-
while (true) {
61-
decoder_wrapper_->process_cloud_packet(packet_queue_.pop());
62-
}
63-
});
64-
6555
if (launch_hw_) {
6656
hw_interface_wrapper_->hw_interface()->register_scan_callback(
6757
std::bind(&VelodyneRosWrapper::receive_cloud_packet_callback, this, std::placeholders::_1));
@@ -172,7 +162,7 @@ void VelodyneRosWrapper::receive_scan_message_callback(
172162
nebula_pkt_ptr->stamp = pkt.stamp;
173163
std::copy(pkt.data.begin(), pkt.data.end(), std::back_inserter(nebula_pkt_ptr->data));
174164

175-
packet_queue_.push(std::move(nebula_pkt_ptr));
165+
decoder_wrapper_->process_cloud_packet(std::move(nebula_pkt_ptr));
176166
}
177167
}
178168

@@ -263,9 +253,7 @@ void VelodyneRosWrapper::receive_cloud_packet_callback(std::vector<uint8_t> & pa
263253
msg_ptr->stamp.nanosec = static_cast<int>(timestamp_ns % 1'000'000'000);
264254
msg_ptr->data.swap(packet);
265255

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));
269257
}
270258

271259
RCLCPP_COMPONENTS_REGISTER_NODE(VelodyneRosWrapper)

0 commit comments

Comments
 (0)