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

Fault injection on Robotic Systems Simulators

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for JP JP
January 05, 2018

Fault injection on Robotic Systems Simulators

Intelligent Robotics Course @ ProDEI

Avatar for JP

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