way of enabling the development and preliminary test of solutions instead real- world scenarios. • e.g. autonomous driving system design • Such simulation systems generally have simulation of the environment along with sensors and actuators. • However, typically, the sensor readings are not coherent with real- world behaviours. • Sensors have faults and missreadings (manufacture, environment conditions, …) 3
variety of techniques for inducing faults in systems to measure their response to those faults. • Fault Injection, Carnegie Mellon University, 1998 https://users.ece.cmu.edu/~koopman/des_s99/fault_injection/ • Technique broadly used in software engineering as way of improving a system reliability (fault-tolerance). • Can be used to inject faults on sensors of simulators. 5
on simulating and injecting camera readings faults. • Subscribes to a set of pre-configured topics and publishes on other set of pre-configured. • CLI toolkit. 6
ROS queue fault-injection toolkit optional arguments: -h, --help show this help message and exit -f FAULTTYPE, --faulttype FAULTTYPE FAULTTYPE: RANDOM, SLOW, FREEZE, INJECTPAYLOAD, CAMERASTORE, PARTIALLOSS, MESSAGEHOOK RANDOM: Shuffles the camera feed images bytes SLOW: Introduces a slowness in the camara image stream FREEZE: Freezes a camara feed for n interations INJECTPAYLOAD: Injects personalized images into the queue CAMERASTORE: Stores all images in camera feeds PARTIALLOSS: Loss of part of the image MESSAGEHOOK: Subscribe to messages of a topic and publish to a pre-defined ones -- Additional configuration in config.ini file. 7
a system’s fault- tolerance • The ROS Fault Injection Toolkit covers a set of typical faults in camera readings. • Further, the toolkit enables one to observe and inject messages in any streaming topic. • Need for authentication and encryption on the communication system. • ROS 2 Roadmap covers this functionalities. • Other emergent fields like IoT would benefit of similar tools. 11