A bug in ray_aggregator
Description
In the method void RayAggregator::insert(const PointXYZIFR & pt)
, the following code is used to make rest rays ready:
for (std::size_t idx = 0U; idx < m_rays.size(); ++idx) {
const std::size_t jdx = idx; // Fix for MISRA Fp, idx modified in loop
if (!m_rays[jdx].empty()) {
m_ready_indices[m_num_ready] = idx;
++m_num_ready;
}
}
However, it also adds those RESET
rays into the ready queue, so the conditional maybe !m_rays[jdx].empty() && m_ray_state[jdx] != RayState::RESET
How to Reproduce
set cloud_size
in vlp16_test.param.yaml
as 50
udpreplay -c 1 data/route_small_loop_rw-127.0.0.1.pcap
ros2 run velodyne_node velodyne_cloud_node_exe __params:=/home/${USER}/AutowareAuto/src/drivers/velodyne_node/param/vlp16_test.param.yaml
ros2 run ray_ground_classifier_nodes ray_ground_classifier_cloud_node_exe __params:=/home/"${USER}"/AutowareAuto/src/perception/filters/ray_ground_classifier_nodes/param/vlp16_lexus.param.yaml
Current Behavior
Each time node ray_ground_classifier
receives 50 points, but the points aggregated in ray_aggregator
has not been clear.
Expected behavior
The previous scanned points should be clear.