Skip to main content

A noise-based failure detection tool for robot testing

Project description

NoisyTest

NoisyTest is a command-line tool for noise-based system tests of (robotic) systems. It uses scalar noise (vibration) data from a simulation environment or experiments to detect software flaws via machine learning. The main objective behind this tool is the improvement of virtual system tests to reduce the time required for real-world experiments. Especially in the robotics domain, real-world experiments are rather costly and too many flaws remain undetected in simulation.

NoisyTest is used for virtual system testing of the humanoid robot Lola. In general, the tool may be used on any noise data to detect and characterize failures. Feel free to use NoisyTest for your purposes and let me know when you find it useful.

Install

This is as easy as pip install noisytest.

Usage

The install of NoisyTest registers an entry point noisytest, which works as a command line interface. It has a built-in usage help:

$ noisytest --help
usage: noisytest [-h] [--pipeline NOISYTEST_PIPELINE]
                 [--config NOISYTEST_CONFIG] [-v]
                 {train,run} ...

This is NoisyTest 0.0.1

positional arguments:
  {train,run}
    train               Train a model from given data using default parameters
    run                 Run test on specified noise file

optional arguments:
  -h, --help            show this help message and exit
  --pipeline NOISYTEST_PIPELINE
                        the noisytest pipeline to use. (default:
                        default.noisy)
  --config NOISYTEST_CONFIG
                        noisytest config file name (default: noisytest-
                        config.json)
  -v, --verbosity       console output verbosity (default: None)

Train a model

To train a model, we first need some noise-based training / validation data set. We use the dataset from the humanoid robot LOLA:

$ git clone https://github.com/am-lola/noisytest-data-lola.git data

We may then use noisytest to train a model:

$ noisytest --config data/noisytest-config.json train

The trained, self-contained pipeline (model + preprocessor) is written to disk after successful training: 'default.noisy'.

:warning: NoisyTest uses pickle for serialization. Don't load pipelines of untrustworthy origin!

Test noise data

To actually test a noise file for failures / flaws you run a test on a noise file:

$ noisytest run data/validation/earlycontacttoe.log
WARNING:possible oscillations in time region 0.0001-0.4
WARNING:possible oscillations in time region 6.7-7.1
...

Data formats

Noise data is read from whitespace-separated files with two columns. One is the actual or simulated time in seconds, the other the scalar noise pressure estimate. Annotation data for the training and validation sets uses TOML files to mark individual time-frames.

Disclaimer & Contributing

This project started as a mere proof of concept. Although it already reached a state which can in general be used productively, it currently lacks some features - and more important - a solid test base. This will be fixed as soon as I find time. In the meantime be warned of possible errors ;)

Feel free to contribute to this project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

noisytest-0.0.1.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

noisytest-0.0.1-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file noisytest-0.0.1.tar.gz.

File metadata

  • Download URL: noisytest-0.0.1.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for noisytest-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b4f0f4a1d81ce01f5ec8ef7e59550e8bd7b28230b10a96e4e011e79507ee7724
MD5 0d5dba64eeee425aa156586c535b8b09
BLAKE2b-256 86459cbdebe7b3ccbaf523e834b43d719c9111959cd44b8967b24250a4a6615c

See more details on using hashes here.

File details

Details for the file noisytest-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: noisytest-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for noisytest-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3bea64bbd8d962517648b63d8eacbb89a7a3fbfb240b87d08b239bda0b8b726f
MD5 da65631149a71eca27367bc045384b54
BLAKE2b-256 11618fd6e02c22553f93da737d844434d1c30916d06ad911f2ce55783259d512

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page