API Reference
This page is generated from the C++ headers and source files using Doxygen and Breathe.
Core
-
namespace ros2_fault_injection
Typedefs
-
using InjectorMap = std::unordered_map<std::string, std::shared_ptr<FaultInjector>>
Map of injector id to injector instance.
Functions
-
const std::unordered_set<std::string> &allowed_config_keys_for_injector_type(const std::string &injector_type)
Get the allowed config keys for an injector type.
- Parameters:
injector_type – Type name from an InjectorConfig, such as
odomorscan.- Returns:
Set of accepted fault config keys. Unknown injector types return an empty set.
-
bool is_allowed_config_key(const std::string &injector_type, const std::string &key)
Check whether a config key is valid for an injector type.
- Parameters:
injector_type – Type name from an InjectorConfig.
key – Fault config key to validate.
- Returns:
true when the key is accepted by the injector type.
-
std::optional<std::string> validate_config_value(const std::string &injector_type, const std::string &key, const std::string &value)
Validate one runtime config value for an injector type.
This is used by runtime services before mutating a stored fault config. It keeps service updates consistent with scenario validation.
- Parameters:
injector_type – Type name from an InjectorConfig.
key – Fault config key to validate.
value – Proposed value stored as text.
- Returns:
std::nullopt when valid, otherwise a human-readable validation error.
-
std::optional<std::string> validate_config_value(const FaultConfigField &field, const std::string &value)
-
ScenarioConfig load_scenario_config(const std::string &path)
Load a scenario YAML file.
- Parameters:
path – Filesystem path to a scenario YAML file.
- Throws:
std::exception – when the file cannot be parsed.
- Returns:
Parsed scenario configuration.
-
const InjectorConfig *find_injector(const ScenarioConfig &scenario, const std::string &injector_id)
Find an injector config by id.
- Parameters:
scenario – Scenario to search.
injector_id – Injector id to find.
- Returns:
Pointer to the injector config, or nullptr when absent.
-
ValidationResult validate_scenario(const ScenarioConfig &scenario)
Validate a parsed scenario before starting injectors.
- Parameters:
scenario – Scenario to validate.
- Returns:
Validation errors and warnings.
-
std::string describe_fault(const FaultConfig &fault)
-
std::string describe_config(const std::unordered_map<std::string, std::string> &config)
-
std::string describe_config_update(const std::string &key, const std::string &value)
-
bool is_known_injector_type(const std::string &type)
-
std::vector<FaultConfigField> schema_for_builtin_injector_type(const std::string &type)
-
const FaultConfigField *find_schema_field(const std::vector<FaultConfigField> &schema, const std::string &key)
-
void validate_fault_config_against_schema(const FaultConfig &fault, const std::vector<FaultConfigField> &schema, ValidationResult &result)
-
void validate_required_schema_fields(const FaultConfig &fault, const std::vector<FaultConfigField> &schema, ValidationResult &result)
-
void validate_injector(const InjectorConfig &injector, ValidationResult &result)
-
bool is_initially_active(const ScenarioConfig &scenario, const FaultConfig &fault)
-
void validate_fault(const ScenarioConfig &scenario, const FaultConfig &fault, const InjectorConfig &injector, ValidationResult &result)
-
void validate_assertions(const ScenarioConfig &scenario, const AssertionConfig &assertion, ValidationResult &result)
-
struct AssertionConfig
- #include <ros2_fault_injection/assertions/assertion_config.hpp>
-
struct AssertionResult
- #include <ros2_fault_injection/assertions/assertion_result.hpp>
-
class FaultAssertionRunner
- #include <ros2_fault_injection/assertions/fault_assertion_runner.hpp>
Public Functions
-
FaultAssertionRunner(rclcpp::Node &node)
-
void start(const std::vector<AssertionConfig> &assertions)
-
std::vector<AssertionResult> results() const
-
FaultAssertionRunner(rclcpp::Node &node)
-
struct FaultConfig
- #include <ros2_fault_injection/config/fault_config.hpp>
Configuration for one injectable fault.
The top-level fields describe scheduling and ownership. The
configmap stores injector-specific fault parameters such asx_bias,range_noise_stddev, ordelay_ms.Public Members
-
std::string id
Unique fault identifier used by services, events, and schedules.
-
std::string injector_id
Identifier of the injector that owns this fault.
-
std::optional<std::chrono::milliseconds> start
Optional activation time relative to node startup.
-
std::optional<std::chrono::milliseconds> duration
Optional active window duration.
-
std::unordered_map<std::string, std::string> config
Injector-specific fault parameters parsed from YAML.
-
std::string id
-
struct FaultConfigField
- #include <ros2_fault_injection/config/fault_config_schema.hpp>
-
class FaultController
- #include <ros2_fault_injection/core/fault_controller.hpp>
Owns the runtime injector graph for one scenario.
The controller creates typed injectors, registers each fault with the injector named by
FaultConfig::injector_id, and starts scheduled fault activation.Public Functions
-
FaultController(rclcpp::Node &node, std::string scenario_file, ScenarioConfig scenario, FaultEventPublisher &events)
Construct and start the controller.
- Parameters:
node – ROS node used to create injector publishers, subscriptions, and timers.
scenario_file – Scenario YAML file path used for runtime reloads.
scenario – Parsed and validated scenario configuration.
events – Shared event publisher used by scheduled faults.
-
const InjectorMap &injectors() const
Access the configured injectors by injector id.
- Returns:
Map of injector id to injector instance.
-
ReloadScenarioResult reload_scenario()
-
FaultController(rclcpp::Node &node, std::string scenario_file, ScenarioConfig scenario, FaultEventPublisher &events)
-
struct FaultEvent
- #include <ros2_fault_injection/core/fault_event_publisher.hpp>
Internal representation of a fault lifecycle event.
The publisher adds the timestamp when converting this struct to
ros2_fault_injection/msg/FaultEvent.Public Members
-
std::string fault_id
Fault identifier associated with the event.
-
std::string injector_id
Injector identifier that owns the fault.
-
std::string state
Fault state, for example
active,inactive, orconfig_updated.
-
std::string source
Source of the event, for example
startup,scheduled, ormanual.
-
std::string details
Human-readable event details.
-
std::string fault_id
-
class FaultEventAssertion
- #include <ros2_fault_injection/assertions/fault_event_assertion.hpp>
Assertion that passes when an expected fault event is observed.
A fault event assertion checks
fault_idandstatefrom/fault_injection/events. It is useful for verifying that scheduled, startup, or manual fault transitions actually occurred.Public Functions
-
explicit FaultEventAssertion(const AssertionConfig &config)
Create an assertion from parsed scenario config.
- Parameters:
config – Assertion configuration. Expected fields are
id,fault_id,state, and optionallywithin.
-
void observe(const msg::FaultEvent &event)
Process a fault event.
If the event matches the configured
fault_idandstate, the assertion is marked as passed.- Parameters:
event – Fault event message published by the framework.
-
void update(double elapsed_seconds)
Check whether the assertion deadline has expired.
- Parameters:
elapsed_seconds – Seconds since assertion monitoring started.
-
AssertionResult result() const
Current assertion result.
- Returns:
Assertion state and human-readable message.
-
explicit FaultEventAssertion(const AssertionConfig &config)
-
class FaultEventPublisher
- #include <ros2_fault_injection/core/fault_event_publisher.hpp>
Publishes structured fault events on
fault_injection/events.Public Functions
-
explicit FaultEventPublisher(rclcpp::Node &node)
Create the event publisher.
- Parameters:
node – Node used for publisher creation and event timestamps.
-
void publish(const FaultEvent &event)
Publish a fault event with the node’s current time.
- Parameters:
event – Event payload to publish.
-
explicit FaultEventPublisher(rclcpp::Node &node)
-
class FaultInjector
- #include <ros2_fault_injection/core/fault_injector.hpp>
Common interface implemented by all typed fault injectors.
The interface keeps scheduling and services independent of message type. A typed injector owns the ROS subscription/publisher pair for a specific message type and applies the active faults during message callbacks.
Subclassed by ros2_fault_injection::FaultInjectorBase
Public Functions
-
virtual ~FaultInjector() = default
-
virtual std::string id() const = 0
Get the injector id from the scenario.
- Returns:
Injector identifier.
-
virtual std::string type() const = 0
Get the injector type from the scenario.
The type is used for schema validation and plugin selection. It may differ from the injector id; for example, injector id
motor_feedbackcan have typejoint_state.- Returns:
Injector type string.
-
virtual std::vector<FaultConfigField> config_schema() const = 0
-
virtual void add_fault(const FaultConfig &fault_config) = 0
Register or replace a fault owned by this injector.
- Parameters:
fault_config – Fault configuration to store.
-
virtual void activate_fault(const std::string &fault_id) = 0
Mark a known fault active.
- Parameters:
fault_id – Fault identifier to activate.
-
virtual void deactivate_fault(const std::string &fault_id) = 0
Mark a fault inactive.
- Parameters:
fault_id – Fault identifier to deactivate.
-
virtual bool has_fault(const std::string &fault_id) const = 0
Check whether this injector owns a fault id.
- Parameters:
fault_id – Fault identifier to look up.
- Returns:
true when the fault is registered.
-
virtual std::optional<FaultConfig> get_fault_config(const std::string &fault_id) const = 0
Get the stored configuration for a fault.
- Parameters:
fault_id – Fault identifier to look up.
- Returns:
Fault configuration when found, otherwise std::nullopt.
-
virtual bool set_fault_config_value(const std::string &fault_id, const std::string &key, const std::string &value) = 0
Update one runtime config value for a registered fault.
This updates entries inside
FaultConfig::config; it does not mutate top-level scheduling fields such asstartorduration.- Parameters:
fault_id – Fault identifier to update.
key – Config key to set.
value – New value stored as text.
- Returns:
true when the fault exists and the value was stored.
-
virtual std::vector<std::string> fault_ids() const = 0
List all fault ids registered with this injector.
- Returns:
Fault identifiers.
-
virtual std::vector<std::string> active_fault_ids() const = 0
List currently active fault ids.
- Returns:
Active fault identifiers.
-
virtual void clear_faults() = 0
-
virtual ~FaultInjector() = default
-
class FaultInjectorBase : public ros2_fault_injection::FaultInjector
- #include <ros2_fault_injection/core/fault_injector_base.hpp>
Shared implementation for typed fault injectors.
This base class stores fault configuration, active state, random number generation, and common helpers for drop/delay/config aggregation. Derived classes provide the message-specific ROS subscriptions and mutation logic.
Subclassed by ros2_fault_injection::ImuFaultInjector, ros2_fault_injection::JointStateFaultInjector, ros2_fault_injection::OdomFaultInjector, ros2_fault_injection::ScanFaultInjector, ros2_fault_injection::TfFaultInjector, ros2_fault_injection::TriggerServiceFaultInjector
Public Functions
-
explicit FaultInjectorBase(rclcpp::Node &node, InjectorConfig config)
Construct a base injector.
- Parameters:
node – ROS node used by derived classes.
config – Injector configuration from the scenario.
-
virtual std::string id() const override
Get the injector id from the scenario.
- Returns:
Injector identifier.
-
virtual std::string type() const override
Get the injector type from the scenario.
The type is used for schema validation and plugin selection. It may differ from the injector id; for example, injector id
motor_feedbackcan have typejoint_state.- Returns:
Injector type string.
-
virtual void add_fault(const FaultConfig &fault_config) override
Register or replace a fault owned by this injector.
- Parameters:
fault_config – Fault configuration to store.
-
virtual void activate_fault(const std::string &fault_id) override
Mark a known fault active.
- Parameters:
fault_id – Fault identifier to activate.
-
virtual void deactivate_fault(const std::string &fault_id) override
Mark a fault inactive.
- Parameters:
fault_id – Fault identifier to deactivate.
-
virtual bool has_fault(const std::string &fault_id) const override
Check whether this injector owns a fault id.
- Parameters:
fault_id – Fault identifier to look up.
- Returns:
true when the fault is registered.
-
virtual std::optional<FaultConfig> get_fault_config(const std::string &fault_id) const override
Get the stored configuration for a fault.
- Parameters:
fault_id – Fault identifier to look up.
- Returns:
Fault configuration when found, otherwise std::nullopt.
-
virtual std::vector<std::string> fault_ids() const override
List all fault ids registered with this injector.
- Returns:
Fault identifiers.
-
virtual std::vector<std::string> active_fault_ids() const override
List currently active fault ids.
- Returns:
Active fault identifiers.
-
virtual std::vector<FaultConfigField> config_schema() const override
-
virtual bool set_fault_config_value(const std::string &fault_id, const std::string &key, const std::string &value) override
Update one runtime config value for a registered fault.
This updates entries inside
FaultConfig::config; it does not mutate top-level scheduling fields such asstartorduration.- Parameters:
fault_id – Fault identifier to update.
key – Config key to set.
value – New value stored as text.
- Returns:
true when the fault exists and the value was stored.
-
virtual void clear_faults() override
Protected Functions
-
double active_max_double(const std::string &key, double fallback = 0.0) const
Get the largest active numeric config value for a key.
- Parameters:
key – Config key to scan across active faults.
fallback – Value returned when no active fault provides the key.
- Returns:
Largest parsed value or fallback.
-
double active_sum_double(const std::string &key, double fallback = 0.0) const
Sum active numeric config values for a key.
- Parameters:
key – Config key to scan across active faults.
fallback – Value returned when no active fault provides the key.
- Returns:
Sum of parsed values or fallback.
-
int active_max_int(const std::string &key, int fallback = 0) const
Get the largest active integer config value for a key.
- Parameters:
key – Config key to scan across active faults.
fallback – Value returned when no active fault provides the key.
- Returns:
Largest parsed value or fallback.
-
bool active_bool(const std::string &key, bool fallback = false) const
-
std::string active_string(const std::string &key, const std::string &fallback = "") const
-
bool should_drop()
Decide whether the current message should be dropped.
- Returns:
true when an active
drop_probabilityfault drops the message.
-
std::chrono::milliseconds active_delay() const
Get the current active delay.
- Returns:
Delay duration from active
delay_msfaults.
Protected Attributes
-
rclcpp::Node &node_
-
InjectorConfig config_
-
mutable std::mutex mutex_
-
std::unordered_map<std::string, FaultConfig> faults_
-
std::unordered_map<std::string, bool> active_
-
std::mt19937 rng_
-
explicit FaultInjectorBase(rclcpp::Node &node, InjectorConfig config)
-
class FaultInjectorFactory
- #include <ros2_fault_injection/core/fault_injector_factory.hpp>
Creates typed injectors from scenario configuration.
Public Functions
-
explicit FaultInjectorFactory(rclcpp::Node &node)
Construct a factory.
- Parameters:
node – Node passed to created injectors.
-
std::shared_ptr<FaultInjector> create(const InjectorConfig &config)
Create the injector implementation selected by
config.type.- Parameters:
config – Injector configuration.
- Returns:
Shared injector instance, or nullptr when the type is unsupported.
-
explicit FaultInjectorFactory(rclcpp::Node &node)
-
class FaultInjectorPlugin
- #include <ros2_fault_injection/core/fault_injector_plugin.hpp>
Plugin wrapper interface for creating typed fault injectors.
Fault injectors need a ROS node and scenario configuration when they are constructed, so pluginlib loads small default-constructible factory plugins instead of loading the injectors directly.
Subclassed by ros2_fault_injection::ImuFaultInjectorPlugin, ros2_fault_injection::JointStateFaultInjectorPlugin, ros2_fault_injection::OdomFaultInjectorPlugin, ros2_fault_injection::ScanFaultInjectorPlugin, ros2_fault_injection::TfFaultInjectorPlugin, ros2_fault_injection::TriggerServiceFaultInjectorPlugin
Public Functions
-
virtual ~FaultInjectorPlugin() = default
-
virtual std::string type() const = 0
Injector type handled by this plugin.
- Returns:
Type string used by
InjectorConfig::type.
-
virtual std::shared_ptr<FaultInjector> create(rclcpp::Node &node, const InjectorConfig &config) = 0
Create a typed injector instance.
- Parameters:
node – ROS node used by the injector.
config – Injector configuration from the scenario.
- Returns:
Created fault injector.
-
virtual ~FaultInjectorPlugin() = default
-
class FaultScheduler
- #include <ros2_fault_injection/core/fault_scheduler.hpp>
Schedules startup and timed fault activation.
The scheduler is message-type agnostic. It activates/deactivates faults through the FaultInjector interface and publishes lifecycle events.
Public Functions
-
explicit FaultScheduler(rclcpp::Node &node, FaultEventPublisher &event_pub)
Construct a scheduler.
- Parameters:
node – Node used to create wall timers.
event_pub – Publisher used for scheduled fault events.
-
void schedule(const std::vector<FaultConfig> &faults, FaultInjector &injector, const std::vector<std::string> &initially_active_faults)
Schedule all faults belonging to one injector.
- Parameters:
faults – Faults assigned to the injector.
injector – Injector to activate and deactivate.
initially_active_faults – Fault ids that should start active.
-
void clear()
-
explicit FaultScheduler(rclcpp::Node &node, FaultEventPublisher &event_pub)
-
class FaultServiceManager
- #include <ros2_fault_injection/core/fault_service_manager.hpp>
Owns runtime control services for fault injection.
The service manager exposes APIs for listing faults, reading status, activating/deactivating faults, and changing runtime config values.
Public Types
-
using InjectorMap = std::unordered_map<std::string, std::shared_ptr<FaultInjector>>
Map of injector id to injector instance.
-
using ReloadScenarioCallback = std::function<ReloadScenarioResult()>
Callback used by the reload service to ask the controller to reload its scenario.
Public Functions
-
FaultServiceManager(rclcpp::Node &node, const InjectorMap &injectors, FaultEventPublisher &events, ReloadScenarioCallback reload_scenario_callback)
Create all fault control services.
- Parameters:
node – Node used to create services.
injectors – Runtime injectors indexed by id.
events – Publisher used for manual state/config events.
reload_scenario_callback – Callback used by the reload service.
-
using InjectorMap = std::unordered_map<std::string, std::shared_ptr<FaultInjector>>
-
class ImuFaultInjector : public ros2_fault_injection::FaultInjectorBase
- #include <ros2_fault_injection/injectors/imu_fault_injector.hpp>
Fault injector for
sensor_msgs/msg/Imustreams.Subscribes to the configured input topic, applies active IMU faults, and republishes the result on the configured output topic.
Public Functions
-
explicit ImuFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
Create the IMU fault injector.
- Parameters:
node – Node used to create publishers, subscriptions, and timers.
config – Injector topic and QoS configuration.
-
virtual std::vector<FaultConfigField> config_schema() const override
Public Static Functions
-
static std::vector<FaultConfigField> static_config_schema()
-
explicit ImuFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
-
class ImuFaultInjectorPlugin : public ros2_fault_injection::FaultInjectorPlugin
- #include <ros2_fault_injection/core/builtin_fault_injector_plugin.hpp>
Public Functions
-
virtual std::string type() const override
Injector type handled by this plugin.
- Returns:
Type string used by
InjectorConfig::type.
-
virtual std::shared_ptr<FaultInjector> create(rclcpp::Node &node, const InjectorConfig &config) override
Create a typed injector instance.
- Parameters:
node – ROS node used by the injector.
config – Injector configuration from the scenario.
- Returns:
Created fault injector.
-
virtual std::string type() const override
-
struct InjectorConfig
- #include <ros2_fault_injection/config/fault_config.hpp>
Runtime configuration for one topic injector.
An injector acts as a proxy between an input topic and an output topic. The
typeselects the message-specific injector implementation, whileidis used by faults to target that injector.Public Members
-
std::string id
Unique injector identifier used by fault definitions.
-
std::string type
Injector implementation type, for example
odom,scan,joint_state, orimu.
-
std::optional<TopicEndpointConfig> topic
-
std::optional<TriggerServiceEndpointConfig> trigger_service
-
std::string id
-
class JointStateFaultInjector : public ros2_fault_injection::FaultInjectorBase
- #include <ros2_fault_injection/injectors/joint_state_fault_injector.hpp>
Fault injector for
sensor_msgs/msg/JointStatestreams.Subscribes to the configured input topic, applies active joint state faults, and republishes the result on the configured output topic.
Public Functions
-
explicit JointStateFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
Create the joint state fault injector.
- Parameters:
node – Node used to create publishers, subscriptions, and timers.
config – Injector topic and QoS configuration.
-
virtual std::vector<FaultConfigField> config_schema() const override
Public Static Functions
-
static std::vector<FaultConfigField> static_config_schema()
-
explicit JointStateFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
-
class JointStateFaultInjectorPlugin : public ros2_fault_injection::FaultInjectorPlugin
- #include <ros2_fault_injection/core/builtin_fault_injector_plugin.hpp>
Public Functions
-
virtual std::string type() const override
Injector type handled by this plugin.
- Returns:
Type string used by
InjectorConfig::type.
-
virtual std::shared_ptr<FaultInjector> create(rclcpp::Node &node, const InjectorConfig &config) override
Create a typed injector instance.
- Parameters:
node – ROS node used by the injector.
config – Injector configuration from the scenario.
- Returns:
Created fault injector.
-
virtual std::string type() const override
-
class OdomFaultInjector : public ros2_fault_injection::FaultInjectorBase
- #include <ros2_fault_injection/injectors/odom_fault_injector.hpp>
Fault injector for
nav_msgs/msg/Odometrystreams.Subscribes to the configured input topic, applies active odometry faults, and republishes the result on the configured output topic.
Public Functions
-
explicit OdomFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
Create the odometry fault injector.
- Parameters:
node – Node used to create publishers, subscriptions, and timers.
config – Injector topic and QoS configuration.
-
virtual std::vector<FaultConfigField> config_schema() const override
Public Static Functions
-
static std::vector<FaultConfigField> static_config_schema()
-
explicit OdomFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
-
class OdomFaultInjectorPlugin : public ros2_fault_injection::FaultInjectorPlugin
- #include <ros2_fault_injection/core/builtin_fault_injector_plugin.hpp>
Public Functions
-
virtual std::string type() const override
Injector type handled by this plugin.
- Returns:
Type string used by
InjectorConfig::type.
-
virtual std::shared_ptr<FaultInjector> create(rclcpp::Node &node, const InjectorConfig &config) override
Create a typed injector instance.
- Parameters:
node – ROS node used by the injector.
config – Injector configuration from the scenario.
- Returns:
Created fault injector.
-
virtual std::string type() const override
-
struct ReloadScenarioResult
- #include <ros2_fault_injection/core/fault_controller.hpp>
-
class ScanFaultInjector : public ros2_fault_injection::FaultInjectorBase
- #include <ros2_fault_injection/injectors/scan_fault_injector.hpp>
Fault injector for
sensor_msgs/msg/LaserScanstreams.Subscribes to the configured input topic, applies active laser scan faults, and republishes the result on the configured output topic.
Public Functions
-
explicit ScanFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
Create the laser scan fault injector.
- Parameters:
node – Node used to create publishers, subscriptions, and timers.
config – Injector topic and QoS configuration.
-
virtual std::vector<FaultConfigField> config_schema() const override
Public Static Functions
-
static std::vector<FaultConfigField> static_config_schema()
-
explicit ScanFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
-
class ScanFaultInjectorPlugin : public ros2_fault_injection::FaultInjectorPlugin
- #include <ros2_fault_injection/core/builtin_fault_injector_plugin.hpp>
Public Functions
-
virtual std::string type() const override
Injector type handled by this plugin.
- Returns:
Type string used by
InjectorConfig::type.
-
virtual std::shared_ptr<FaultInjector> create(rclcpp::Node &node, const InjectorConfig &config) override
Create a typed injector instance.
- Parameters:
node – ROS node used by the injector.
config – Injector configuration from the scenario.
- Returns:
Created fault injector.
-
virtual std::string type() const override
-
struct ScenarioConfig
- #include <ros2_fault_injection/config/scenario_config.hpp>
Parsed YAML scenario.
Public Members
-
std::vector<InjectorConfig> injectors
All injectors configured by the scenario.
-
InjectorConfig injector
Legacy single-injector field kept for compatibility with older examples.
-
std::vector<FaultConfig> faults
All faults configured by the scenario.
-
std::vector<std::string> initially_active_faults
Fault ids requested active at startup.
-
std::vector<AssertionConfig> assertions
Assertions configured by the scenario.
-
std::vector<InjectorConfig> injectors
-
class TfFaultInjector : public ros2_fault_injection::FaultInjectorBase
- #include <ros2_fault_injection/injectors/tf_fault_injector.hpp>
Public Functions
-
explicit TfFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
-
virtual std::vector<FaultConfigField> config_schema() const override
Public Static Functions
-
static std::vector<FaultConfigField> static_config_schema()
-
explicit TfFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
-
class TfFaultInjectorPlugin : public ros2_fault_injection::FaultInjectorPlugin
- #include <ros2_fault_injection/core/builtin_fault_injector_plugin.hpp>
Public Functions
-
virtual std::string type() const override
Injector type handled by this plugin.
- Returns:
Type string used by
InjectorConfig::type.
-
virtual std::shared_ptr<FaultInjector> create(rclcpp::Node &node, const InjectorConfig &config) override
Create a typed injector instance.
- Parameters:
node – ROS node used by the injector.
config – Injector configuration from the scenario.
- Returns:
Created fault injector.
-
virtual std::string type() const override
-
struct TopicEndpointConfig
- #include <ros2_fault_injection/config/fault_config.hpp>
-
struct TriggerServiceEndpointConfig
- #include <ros2_fault_injection/config/fault_config.hpp>
-
class TriggerServiceFaultInjector : public ros2_fault_injection::FaultInjectorBase
- #include <ros2_fault_injection/injectors/trigger_service_fault_injector.hpp>
Public Functions
-
explicit TriggerServiceFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
-
virtual std::vector<FaultConfigField> config_schema() const override
Public Static Functions
-
static std::vector<FaultConfigField> static_config_schema()
-
explicit TriggerServiceFaultInjector(rclcpp::Node &node, const InjectorConfig &config)
-
class TriggerServiceFaultInjectorPlugin : public ros2_fault_injection::FaultInjectorPlugin
- #include <ros2_fault_injection/core/builtin_fault_injector_plugin.hpp>
Public Functions
-
virtual std::string type() const override
Injector type handled by this plugin.
- Returns:
Type string used by
InjectorConfig::type.
-
virtual std::shared_ptr<FaultInjector> create(rclcpp::Node &node, const InjectorConfig &config) override
Create a typed injector instance.
- Parameters:
node – ROS node used by the injector.
config – Injector configuration from the scenario.
- Returns:
Created fault injector.
-
virtual std::string type() const override
-
using InjectorMap = std::unordered_map<std::string, std::shared_ptr<FaultInjector>>