Skip to content

Commit

Permalink
feat: move operation into crosswalk_traffic_light_estimator
Browse files Browse the repository at this point in the history
Signed-off-by: ktro2828 <kotaro.uetake@tier4.jp>
  • Loading branch information
ktro2828 committed Dec 4, 2023
1 parent d52a128 commit 11cb033
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ class CrosswalkTrafficLightEstimatorNode : public rclcpp::Node
boost::optional<uint8_t> getHighestConfidenceTrafficSignal(
const lanelet::Id & id, const TrafficLightIdMap & traffic_light_id_map) const;

void removeDuplicateIds(TrafficSignalArray & signal_array) const;

// Node param
bool use_last_detect_color_;
double last_detect_color_hold_time_;
Expand Down
17 changes: 17 additions & 0 deletions perception/crosswalk_traffic_light_estimator/src/node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,8 @@ void CrosswalkTrafficLightEstimatorNode::onTrafficLightArray(
setCrosswalkTrafficSignal(crosswalk, crosswalk_tl_color, output);
}

removeDuplicateIds(output);

Check warning on line 177 in perception/crosswalk_traffic_light_estimator/src/node.cpp

View check run for this annotation

Codecov / codecov/patch

perception/crosswalk_traffic_light_estimator/src/node.cpp#L177

Added line #L177 was not covered by tests

updateLastDetectedSignal(traffic_light_id_map);

pub_traffic_light_array_->publish(output);
Expand Down Expand Up @@ -383,6 +385,21 @@ boost::optional<uint8_t> CrosswalkTrafficLightEstimatorNode::getHighestConfidenc

return ret;
}

void CrosswalkTrafficLightEstimatorNode::removeDuplicateIds(TrafficSignalArray & signal_array) const

Check warning on line 389 in perception/crosswalk_traffic_light_estimator/src/node.cpp

View check run for this annotation

Codecov / codecov/patch

perception/crosswalk_traffic_light_estimator/src/node.cpp#L389

Added line #L389 was not covered by tests
{
auto & signals = signal_array.signals;
std::sort(signals.begin(), signals.end(), [](const auto & s1, const auto & s2) {
return s1.traffic_signal_id < s2.traffic_signal_id;

Check warning on line 393 in perception/crosswalk_traffic_light_estimator/src/node.cpp

View check run for this annotation

Codecov / codecov/patch

perception/crosswalk_traffic_light_estimator/src/node.cpp#L391-L393

Added lines #L391 - L393 were not covered by tests
});

signals.erase(
std::unique(

Check warning on line 397 in perception/crosswalk_traffic_light_estimator/src/node.cpp

View check run for this annotation

Codecov / codecov/patch

perception/crosswalk_traffic_light_estimator/src/node.cpp#L397

Added line #L397 was not covered by tests
signals.begin(), signals.end(),
[](const auto & s1, const auto s2) { return s1.traffic_signal_id == s2.traffic_signal_id; }),

Check warning on line 399 in perception/crosswalk_traffic_light_estimator/src/node.cpp

View check run for this annotation

Codecov / codecov/patch

perception/crosswalk_traffic_light_estimator/src/node.cpp#L399

Added line #L399 was not covered by tests
signals.end());
}

Check warning on line 401 in perception/crosswalk_traffic_light_estimator/src/node.cpp

View check run for this annotation

Codecov / codecov/patch

perception/crosswalk_traffic_light_estimator/src/node.cpp#L401

Added line #L401 was not covered by tests

} // namespace traffic_light

#include <rclcpp_components/register_node_macro.hpp>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,6 @@ class MultiCameraFusion : public rclcpp::Node
void convertOutputMsg(
const std::map<IdType, FusionRecord> & grouped_record_map, NewSignalArrayType & msg_out);

void removeDuplicateIds(NewSignalArrayType & signal_array) const;

void groupFusion(
std::map<IdType, FusionRecord> & fused_record_map,
std::map<IdType, FusionRecord> & grouped_record_map);
Expand Down
15 changes: 0 additions & 15 deletions perception/traffic_light_multi_camera_fusion/src/node.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,6 @@ void MultiCameraFusion::trafficSignalRoiCallback(

NewSignalArrayType msg_out;
convertOutputMsg(grouped_record_map, msg_out);
removeDuplicateIds(msg_out);
msg_out.stamp = cam_info_msg->header.stamp;
signal_pub_->publish(msg_out);
}
Expand Down Expand Up @@ -241,20 +240,6 @@ void MultiCameraFusion::convertOutputMsg(
}
}

void MultiCameraFusion::removeDuplicateIds(NewSignalArrayType & signal_array) const
{
auto & signals = signal_array.signals;
std::sort(signals.begin(), signals.end(), [](const auto & s1, const auto & s2) {
return s1.traffic_signal_id < s2.traffic_signal_id;
});

signals.erase(
std::unique(
signals.begin(), signals.end(),
[](const auto & s1, const auto s2) { return s1.traffic_signal_id == s2.traffic_signal_id; }),
signals.end());
}

void MultiCameraFusion::multiCameraFusion(std::map<IdType, FusionRecord> & fused_record_map)
{
fused_record_map.clear();
Expand Down

0 comments on commit 11cb033

Please sign in to comment.