Skip to content

Commit 78100fe

Browse files
update output msg
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
1 parent 4784bb8 commit 78100fe

File tree

2 files changed

+13
-22
lines changed

2 files changed

+13
-22
lines changed

evaluator/control_evaluator/include/control_evaluator/control_evaluator_node.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class controlEvaluatorNode : public rclcpp::Node
4242
/**
4343
* @brief publish the given metric statistic
4444
*/
45-
DiagnosticStatus generateDiagnosticStatus() const;
45+
DiagnosticStatus generateDiagnosticStatus(const bool is_emergency_brake) const;
4646
void onDiagnostics(const DiagnosticArray::ConstSharedPtr diag_msg);
4747

4848
private:

evaluator/control_evaluator/src/control_evaluator_node.cpp

+12-21
Original file line numberDiff line numberDiff line change
@@ -38,49 +38,40 @@ controlEvaluatorNode::controlEvaluatorNode(const rclcpp::NodeOptions & node_opti
3838
metrics_pub_ = create_publisher<DiagnosticArray>("~/metrics", 1);
3939
}
4040

41-
DiagnosticStatus controlEvaluatorNode::generateDiagnosticStatus() const
41+
DiagnosticStatus controlEvaluatorNode::generateDiagnosticStatus(const bool is_emergency_brake) const
4242
{
4343
DiagnosticStatus status;
4444
status.level = status.OK;
45-
status.name = "AEB";
45+
status.name = "autonomous_emergency_braking";
4646
diagnostic_msgs::msg::KeyValue key_value;
47-
key_value.key = "min";
48-
key_value.value = boost::lexical_cast<decltype(key_value.value)>(0.0);
49-
status.values.push_back(key_value);
50-
key_value.key = "max";
51-
key_value.value = boost::lexical_cast<decltype(key_value.value)>(0.5);
52-
status.values.push_back(key_value);
53-
key_value.key = "mean";
54-
key_value.value = boost::lexical_cast<decltype(key_value.value)>(1.0);
47+
key_value.key = "decision";
48+
key_value.value = (is_emergency_brake) ? "stop" : "none";
5549
status.values.push_back(key_value);
5650
return status;
5751
}
5852

5953
void controlEvaluatorNode::onDiagnostics(
6054
[[maybe_unused]] const DiagnosticArray::ConstSharedPtr diag_msg)
61-
6255
{
6356
const auto start = now();
64-
65-
const bool aeb_activated =
66-
std::any_of(diag_msg->status.begin(), diag_msg->status.end(), [](const auto & status) {
67-
return status.name.find("autonomous_emergency_braking") != std::string::npos;
57+
const auto aeb_status =
58+
std::find_if(diag_msg->status.begin(), diag_msg->status.end(), [](const auto & status) {
59+
const bool aeb_found = status.name.find("autonomous_emergency_braking") != std::string::npos;
60+
return aeb_found;
6861
});
6962

70-
if (!aeb_activated) {
71-
return;
72-
}
63+
if (aeb_status == diag_msg->status.end()) return;
64+
65+
const bool is_emergency_brake = (aeb_status->level == DiagnosticStatus::ERROR);
7366
DiagnosticArray metrics_msg;
7467
metrics_msg.header.stamp = now();
75-
76-
metrics_msg.status.push_back(generateDiagnosticStatus());
68+
metrics_msg.status.emplace_back(generateDiagnosticStatus(is_emergency_brake));
7769

7870
if (!metrics_msg.status.empty()) {
7971
metrics_pub_->publish(metrics_msg);
8072
}
8173
const auto runtime = (now() - start).seconds();
8274
RCLCPP_DEBUG(get_logger(), "control evaluation calculation time: %2.2f ms", runtime * 1e3);
83-
std::cerr << "control evaluation calculation time: " << runtime << "\n";
8475
}
8576

8677
} // namespace control_diagnostics

0 commit comments

Comments
 (0)