# ros2_fault_injection API `ros2_fault_injection` is a C++ ROS 2 framework for injecting controlled faults into robot topics, transforms, and services, with optional scenario assertions for expected outcomes. The public API is organized around a small set of framework classes: - `ros2_fault_injection::FaultInjector` defines the common injector interface. - `ros2_fault_injection::FaultInjectorBase` stores shared fault state and config. - `ros2_fault_injection::FaultController` creates injectors, registers faults, and starts scheduling. - `ros2_fault_injection::FaultInjectorFactory` creates built-in and plugin-provided injectors. - `ros2_fault_injection::FaultScheduler` activates and deactivates scheduled faults. - `ros2_fault_injection::FaultServiceManager` exposes runtime service control. - `ros2_fault_injection::FaultEventPublisher` publishes structured fault events. - `ros2_fault_injection::FaultAssertionRunner` evaluates scenario assertions and publishes assertion events. Typed injectors implement message-specific mutation for odometry, laser scans, joint states, and IMU data. See the project README for runtime usage, YAML scenario format, service examples, assertion examples, and the RViz-oriented config schema/config read APIs. See `docs/architecture.md` for the end-to-end runtime flow. ## Contributor Guides - `docs/adding_an_injector.md` - `docs/adding_a_fault_type.md`