A standalone library for modelling faults on ground-truth values. Faulty values can be applied in-place, i.e. overwriting the ground truth, or returned as an extra variable.
Fault models currently implemented are:
- Constant: Return a constant value regardless of the ground-truth.
- Cycle: Iterate over a range of hard-coded constants.
- Noise: Offset or scale the ground-truth by a [definable] random amount.
- Offset: Offset the ground-truth value by a fixed amount.
- Random: Either return a random number within a given range (regardless of ground-truth), or randomly choose a constant from a predetermined list.
- Scale: Scale the ground-truth by a fixed amount.
A Player driver to inject faults into an existing position2d
interface, allowing for hardware failures or glitches to be modelled in both simulation and the real-world.
Existing clients can use the library without any code modification; a simple change to the Player configuration file is all that is required.
Faults can be set on a per-parameter basis and toggled globally at runtime. The driver requires the libfaults library.
A Player client for passively monitoring robots and logging when various events occur. It works with simulations in either Stage and Gazebo, or in real-world scenarios on actual hardware.
Events currently monitored include:
- Motor stalls.
- Unsafe proximities between models.
- Intrusions into restricted zones.
The log file can be parsed online, i.e. while a scenario is running, or offline. The logging format is easy to parse and contains plenty of information for applying meta-analysis such as machine learning.
Originally designed to aid with performing batch runs of Player/Stage simulations, it developed into a convenient, flexible mechanism for running arbitrary tasks (or sequences of tasks) repeatedly. The outputs of any executed commands are captured and collated between runs.
The Jinja2 templating engine is embedded, providing advanced value substitution on a per-run basis. This makes the process of varying the contents of configuration files extremely simple.
Designed to run a agnostic server application that allows communication between connected clients and allow scripts to simulate the network behind it.
It can be used in conjunction with the NSDNet driver for Player.
NSSim example provides a C++ program that interfaces with NS3.
It is a Player driver, client proxy and set of examples that allow Player clients to communicate with each other.
The protocol is high-level and requires the PlayerNSD daemon to pass the messages back and forth with the ability to simulating the underlying network.
An example of using NS3 in conjunction with PlayerNSD.