Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fault injection on Robotic Systems Simulators

JP
January 05, 2018

Fault injection on Robotic Systems Simulators

Intelligent Robotics Course @ ProDEI

JP

January 05, 2018
Tweet

More Decks by JP

Other Decks in Research

Transcript

  1. Fault Injection in Robotic Systems A STUDY ON ROS/GAZEBO BASED

    SIMULATOR JOÃO PEDRO DIAS, PRODEI RESEARCHER @ INESC TEC 1
  2. Introduction • Simulation systems are widely used in robotics as

    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
  3. • Autonomous Driving Simulator for the Portuguese Robotics Open •

    Uses different ROS nodes and communicate using streaming topics (publish/subscribe) Background: conde-simulator 4
  4. Background: fault-injection • Fault injection is a phrase covering a

    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
  5. ROS Fault Injection Toolkit • ROS Node • Primarily focused

    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
  6. ROS Fault Injection Toolkit: Features usage: ros-inj-tool.py [-h] -f FAULTTYPE

    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
  7. Experiments: Sanity Checks $ python ros-inj-tool.py -f RANDOM $ python

    ros-inj-tool.py -f PARTIALLOSS $ python ros-inj-tool.py -f PARTIALLOSS $ python ros-inj-tool.py -f INJECTPAYLOAD 10
  8. Conclusions • Injection fault is a valid approach for asserting

    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