Crate simulation [−] [src]
This crate provides functionality for configuring and running a simulation of a range-based tracking system.
Simulations are run by creating a SimulationRunner (using the new method) and calling
the step method. Each step returns a new SimulationFrame which contains all the
information about the simulation at a particular point in time.
Examples
SimulationConfig implements the Default trait, which allows you to quickly create and
use a new SimulationRunner:
let num_steps = 100; let dt = 1.0; let mut simulation_runner = SimulationRunner::new(&Default::default()); for frame in (0..num_steps).map(|_| simulation_runner.step(dt)) { // Use simulation frame ... }Run
Alternatively you can define a specific configuration by creating a SimulationConfig
explicitly, or by loading one from a JSON file:
// Explicit configuration definition let config = SimulationConfig { // Config options... }; let mut simulation_runner = SimulationRunner::new(&config); // Use simulation runner ...Run
// Json loading using serde_json extern crate serde; extern crate serde_json; let mut file = File::open("config.json").unwrap(); let config = serde_json::from_reader(&mut file).unwrap(); let mut simulation_runner = SimulationRunner::new(&config); // Use simulation runner ...Run
For more information about custom configurations see the documentation for SimulationConfig.
Configuration options
The easiest way to configure the simulation is to load a JSON file with the desired settings and loading (as shown above). The default configuration corresponds to the following JSON file:
{
"uavs": [
{
"capture_rate": 1.0,
"speed": 10.0,
"controller": {
"pattern_size": [50.0, 50.0],
"pattern_center": [50.0, 50.0],
"pattern_type": "Elliptical"
},
"receiver": {
"signal_noise": 0.01,
"gain_pattern": "Uniform",
"propagation_model": "FreeSpace"
}
}
],
"animals": [
{
"position": [50.0, 50.0],
"speed": 0.6,
"walk_variance": 0.1
}
],
"map_size": [100.0, 100.0],
"num_particles": 10000,
"particle_noise": 2.0
}Run
Modules
| animal | |
| signal | |
| uav |
Structs
| FilterFrame |
A frame representing a single target (i.e. animal) at a particular point in time |
| Measurement |
A measurement taken by a UAV at a particular point in time |
| SimulationConfig |
Configuration options for a simulation |
| SimulationFrame |
A snapshot of the simulation at a particular point in time |
| SimulationRunner |
A structure for running a configured simulation |