|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |
Launch files
Messages
Services
Plugins
Recent questions tagged ros2_medkit_fault_reporter at Robotics Stack Exchange
|
ros2_medkit_fault_reporter package from ros2_medkit reporos2_medkit_diagnostic_bridge ros2_medkit_fault_manager ros2_medkit_fault_reporter ros2_medkit_gateway ros2_medkit_integration_tests ros2_medkit_msgs ros2_medkit_serialization |
ROS Distro
|
Package Summary
| Version | 0.3.0 |
| License | Apache-2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/selfpatch/ros2_medkit.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-03-05 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- mfaferek93
Authors
ros2_medkit_fault_reporter
Client library for easy fault reporting to the central FaultManager.
Overview
The FaultReporter library provides a simple API for ROS 2 nodes to report faults.
Just call report() when something goes wrong - the fault is immediately confirmed.
Quick Start
#include "ros2_medkit_fault_reporter/fault_reporter.hpp"
class MyNode : public rclcpp::Node {
public:
MyNode() : Node("my_node") {
reporter_ = std::make_unique<ros2_medkit_fault_reporter::FaultReporter>(
shared_from_this(), get_fully_qualified_name());
}
void check_sensor() {
if (sensor_error_detected()) {
reporter_->report("SENSOR_FAILURE",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Sensor communication timeout");
}
}
private:
std::unique_ptr<ros2_medkit_fault_reporter::FaultReporter> reporter_;
};
That’s it! The fault will be immediately confirmed in FaultManager.
Features
-
Simple API: Just call
report()to report a fault - Local Filtering (optional): Suppress repeated faults until threshold is met
- Per-fault tracking: Each fault_code has independent filtering
- Severity bypass: High-severity faults bypass local filtering
API
report(fault_code, severity, description)
Report a fault occurrence. With default FaultManager settings, the fault is immediately confirmed.
reporter_->report("MOTOR_OVERHEAT",
ros2_medkit_msgs::msg::Fault::SEVERITY_ERROR,
"Motor temperature exceeded safe limit");
report_passed(fault_code) (Advanced)
Report that a fault condition has cleared. Use this when FaultManager is configured with debounce filtering and healing enabled.
reporter_->report_passed("MOTOR_OVERHEAT");
Local Filtering
The reporter includes optional local filtering to reduce noise from repeated fault occurrences. Only forwards the fault to FaultManager after threshold is reached within a time window.
Configuration
my_node:
ros__parameters:
fault_reporter:
local_filtering:
enabled: true # Enable local filtering (default: true)
default_threshold: 3 # Reports needed before forwarding
default_window_sec: 10.0 # Time window in seconds
bypass_severity: 2 # ERROR and CRITICAL bypass filtering
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
fault_reporter.local_filtering.enabled |
bool | true | Enable/disable local filtering |
fault_reporter.local_filtering.default_threshold |
int | 3 | Reports needed before forwarding |
fault_reporter.local_filtering.default_window_sec |
double | 10.0 | Time window in seconds |
fault_reporter.local_filtering.bypass_severity |
int | 2 | Severity level that bypasses filtering |
Advanced: Debounce Integration
When FaultManager is configured with debounce filtering (confirmation_threshold < -1),
you can use report_passed() to signal that a fault condition has cleared:
```cpp void check_sensor() { if (sensor_error_detected()) { // Fault condition detected reporter_->report(“SENSOR_FAILURE”,
File truncated at 100 lines see the full file
Changelog for package ros2_medkit_fault_reporter
0.3.0 (2026-02-27)
0.2.0 (2026-02-07)
- Initial rosdistro release
- FaultReporter client library with simple API:
- report(fault_code, severity, description) - report FAILED events
- report_passed(fault_code) - report fault condition cleared
- High-severity faults (ERROR, CRITICAL) bypass local filtering
- LocalFilter for per-fault-code threshold/window filtering:
- Configurable threshold (default: 3 reports) and time window (default: 10s)
- Prevents flooding FaultManager with duplicate reports
- PASSED events always forwarded (bypass filtering)
- Configuration via ROS parameters (filter_threshold, filter_window_sec)
- Thread-safe implementation with mutex-protected config access
- Contributors: Bartosz Burda, Michal Faferek
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| ros2_medkit_diagnostic_bridge |