Skip to content

Commit 55682dd

Browse files
committed
modify ring outlier filter node for supporting counter clockwise azimuth
Signed-off-by: vividf <yihsiang.fang@tier4.jp>
1 parent fb2ab65 commit 55682dd

File tree

3 files changed

+5
-4
lines changed

3 files changed

+5
-4
lines changed

sensing/pointcloud_preprocessor/include/pointcloud_preprocessor/distortion_corrector/distortion_corrector.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ class DistortionCorrectorComponent : public rclcpp::Node
8383
std::string time_stamp_field_name_;
8484
bool use_imu_;
8585
bool update_azimuth_and_distance_;
86+
float azimuth_factor_ = 100.0;
8687
};
8788

8889
} // namespace pointcloud_preprocessor

sensing/pointcloud_preprocessor/src/distortion_corrector/distortion_corrector.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -315,9 +315,9 @@ bool DistortionCorrectorComponent::undistortPointCloud(
315315
*it_y = static_cast<float>(undistorted_point.getY());
316316
*it_z = static_cast<float>(undistorted_point.getZ());
317317

318-
if (update_azimuth_and_distance_) {
318+
if (update_azimuth_and_distance_ && need_transform) {
319319
*it_distance = sqrt(*it_x * *it_x + *it_y * *it_y + *it_z * *it_z);
320-
*it_azimuth = cv::fastAtan2(*it_y, *it_x) * 100;
320+
*it_azimuth = cv::fastAtan2(*it_y, *it_x) * azimuth_factor_;
321321
}
322322
prev_time_stamp_sec = *it_time_stamp;
323323
}

sensing/pointcloud_preprocessor/src/outlier_filter/ring_outlier_filter_nodelet.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ void RingOutlierFilterComponent::faster_filter(
116116
*reinterpret_cast<const float *>(&input->data[current_data_idx + azimuth_offset]);
117117
const float & next_azimuth =
118118
*reinterpret_cast<const float *>(&input->data[next_data_idx + azimuth_offset]);
119-
float azimuth_diff = next_azimuth - current_azimuth;
120-
azimuth_diff = azimuth_diff < 0.f ? azimuth_diff + 36000.f : azimuth_diff;
119+
float azimuth_diff = std::abs(next_azimuth - current_azimuth);
120+
azimuth_diff = azimuth_diff > 18000.f ? 36000.f - azimuth_diff : azimuth_diff;
121121

122122
const float & current_distance =
123123
*reinterpret_cast<const float *>(&input->data[current_data_idx + distance_offset]);

0 commit comments

Comments
 (0)