You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -146,7 +146,7 @@ The config folder contains settings for progressively harder scenarios:
146
146
|||||||
147
147
| sim2real |**Yes**| Real-life hardware |**Yes**|*No*| Sim2real transfer |
148
148
149
-
> **Note:** "Rand. Between Episodes" (governed by argument `reseed_on_reset`) states whether randomized properties and positions vary or are kept constant (by re-seeding the random number generator on each `env.reset()`) across episodes
149
+
> **Note:** "Rand. Between Episodes" (governed by argument `random_resets`) states whether randomized properties and positions vary or are kept constant (by re-seeding the random number generator on each `env.reset()`) across episodes
150
150
151
151
### Switching between configurations
152
152
You can choose which configuration to use by changing the `--config` command line option. To e.g. run the example controller on the hardest scenario, you can use the following command
Copy file name to clipboardexpand all lines: benchmarks/config/test.toml
+15-14
Original file line number
Diff line number
Diff line change
@@ -1,23 +1,14 @@
1
1
[sim]
2
-
physics = "pyb"
2
+
physics = "analytical"
3
3
camera_view = [5.0, -40.0, -40.0, 0.5, -1.0, 0.5]
4
4
sim_freq = 500# Simulation frequency, in Hz
5
-
ctrl_freq = 500# Controller frequency, in Hz. This frequency is used to simulate the onboard controller, NOT for the environment's step function
5
+
attitude_freq = 500# Controller frequency, in Hz. This frequency is used to simulate the onboard controller, NOT for the environment's step function
6
6
gui = false# Enable/disable PyBullet's GUI
7
7
8
-
[sim.disturbances.action]
9
-
type = "GaussianNoise"
10
-
std = 0.001
11
-
12
-
[sim.disturbances.dynamics]
13
-
type = "UniformNoise"
14
-
low = [-0.1, -0.1, -0.1]
15
-
high = [0.1, 0.1, 0.1]
16
-
17
8
[env]
18
-
reseed = false# Whether to re-seed the random number generator between episodes
9
+
random_resets = false# Whether to re-seed the random number generator between episodes
19
10
seed = 1337# Random seed
20
-
freq = 60# Frequency of the environment's step function, in Hz
11
+
freq = 50# Frequency of the environment's step function, in Hz
21
12
symbolic = false# Whether to include symbolic expressions in the info dict. Note: This can interfere with multiprocessing! If you want to parallelize your training, set this to false.
22
13
23
14
[env.track]
@@ -50,7 +41,17 @@ pos = [0.0, 1.0, 1.05]
50
41
pos = [1.0, 1.0, 0.05]
51
42
rpy = [0, 0, 0]
52
43
vel = [0, 0, 0]
53
-
ang_vel = [0, 0, 0]
44
+
rpy_rates = [0, 0, 0]
45
+
46
+
[env.disturbances.action]
47
+
fn = "normal"
48
+
scale = 0.001
49
+
50
+
[env.disturbances.dynamics]
51
+
fn = "uniform"
52
+
[env.disturbances.dynamics.kwargs]
53
+
minval = [-0.1, -0.1, -0.1]
54
+
maxval = [0.1, 0.1, 0.1]
54
55
55
56
[env.randomization.drone_pos]
56
57
type = "uniform"# Everything that can be used as a distribution in numpy.random
Copy file name to clipboardexpand all lines: config/level0.toml
+1-1
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ high = [0.1, 0.1, 0.1]
38
38
39
39
[env]
40
40
id = "DroneRacing-v0"# Either "DroneRacing-v0" or "DroneRacingThrust-v0". If using "DroneRacingThrust-v0", the drone will use the thrust controller instead of the position controller.
41
-
reseed = true# Whether to re-seed the random number generator between episodes
41
+
random_resets = true# Whether to re-seed the random number generator between episodes
42
42
seed = 1337# Random seed
43
43
freq = 50# Frequency of the environment's step function, in Hz
44
44
symbolic = false# Whether to include symbolic expressions in the info dict. Note: This can interfere with multiprocessing! If you want to parallelize your training, set this to false.
Copy file name to clipboardexpand all lines: config/level1.toml
+32-34
Original file line number
Diff line number
Diff line change
@@ -16,33 +16,18 @@ check_drone_start_pos = true
16
16
practice_without_track_objects = false
17
17
18
18
[sim]
19
-
# Physics options:
20
-
# "pyb": PyBullet
21
-
# "dyn": Mathematical dynamics model
22
-
# "pyb_gnd" PyBullet with ground effect
23
-
# "pyb_drag": PyBullet with drag
24
-
# "pyb_dw": PyBullet with downwash
25
-
# "pyb_gnd_drag_dw": PyBullet with ground effect, drag, and downwash.
26
-
physics = "pyb"
19
+
# Physics options: analytical, sys_id, mujoco
20
+
physics = "analytical"
27
21
camera_view = [5.0, -40.0, -40.0, 0.5, -1.0, 0.5]
28
22
sim_freq = 500# Simulation frequency, in Hz
29
-
ctrl_freq = 500# Controller frequency, in Hz. This frequency is used to simulate the onboard controller, NOT for the environment's step function
23
+
attitude_freq = 500# Controller frequency, in Hz. This frequency is used to simulate the onboard controller, NOT for the environment's step function
30
24
gui = false# Enable/disable PyBullet's GUI
31
25
32
-
[sim.disturbances.action]
33
-
type = "GaussianNoise"
34
-
std = 0.001
35
-
36
-
[sim.disturbances.dynamics]
37
-
type = "UniformNoise"
38
-
low = [-0.1, -0.1, -0.1]
39
-
high = [0.1, 0.1, 0.1]
40
-
41
26
[env]
42
27
id = "DroneRacing-v0"# Either "DroneRacing-v0" or "DroneRacingThrust-v0". If using "DroneRacingThrust-v0", the drone will use the thrust controller instead of the position controller.
43
-
reseed = true# Whether to re-seed the random number generator between episodes
28
+
random_resets = true# Whether to re-seed the random number generator between episodes
44
29
seed = 1337# Random seed
45
-
freq = 60# Frequency of the environment's step function, in Hz
30
+
freq = 50# Frequency of the environment's step function, in Hz
46
31
symbolic = false# Whether to include symbolic expressions in the info dict. Note: This can interfere with multiprocessing! If you want to parallelize your training, set this to false.
47
32
sensor_range = 0.45# Range at which the exact location of gates and obstacles become visible to the drone. Objects that are not in the drone's sensor range report their nominal position.
48
33
@@ -76,25 +61,38 @@ pos = [0.0, 1.0, 1.4]
76
61
pos = [1.0, 1.0, 0.05]
77
62
rpy = [0, 0, 0]
78
63
vel = [0, 0, 0]
79
-
ang_vel = [0, 0, 0]
64
+
rpy_rates = [0, 0, 0]
65
+
66
+
[env.disturbances.action]
67
+
fn = "normal"
68
+
scale = 0.001
69
+
70
+
[env.disturbances.dynamics]
71
+
fn = "uniform"
72
+
[env.disturbances.dynamics.kwargs]
73
+
minval = [-0.1, -0.1, -0.1]
74
+
maxval = [0.1, 0.1, 0.1]
80
75
81
76
[env.randomization.drone_pos]
82
-
type = "uniform"# Everything that can be used as a distribution in numpy.random
83
-
# Kwargs that are permissable in the np random function
Copy file name to clipboardexpand all lines: config/level2.toml
+44-43
Original file line number
Diff line number
Diff line change
@@ -16,33 +16,18 @@ check_drone_start_pos = true
16
16
practice_without_track_objects = false
17
17
18
18
[sim]
19
-
# Physics options:
20
-
# "pyb": PyBullet
21
-
# "dyn": Mathematical dynamics model
22
-
# "pyb_gnd" PyBullet with ground effect
23
-
# "pyb_drag": PyBullet with drag
24
-
# "pyb_dw": PyBullet with downwash
25
-
# "pyb_gnd_drag_dw": PyBullet with ground effect, drag, and downwash.
26
-
physics = "pyb"
19
+
# Physics options: analytical, sys_id, mujoco
20
+
physics = "analytical"
27
21
camera_view = [5.0, -40.0, -40.0, 0.5, -1.0, 0.5]
28
22
sim_freq = 500# Simulation frequency, in Hz
29
-
ctrl_freq = 500# Controller frequency, in Hz. This frequency is used to simulate the onboard controller, NOT for the environment's step function
23
+
attitude_freq = 500# Controller frequency, in Hz. This frequency is used to simulate the onboard controller, NOT for the environment's step function
30
24
gui = false# Enable/disable PyBullet's GUI
31
25
32
-
[sim.disturbances.action]
33
-
type = "GaussianNoise"
34
-
std = 0.001
35
-
36
-
[sim.disturbances.dynamics]
37
-
type = "UniformNoise"
38
-
low = [-0.1, -0.1, -0.1]
39
-
high = [0.1, 0.1, 0.1]
40
-
41
26
[env]
42
27
id = "DroneRacing-v0"# Either "DroneRacing-v0" or "DroneRacingThrust-v0". If using "DroneRacingThrust-v0", the drone will use the thrust controller instead of the position controller.
43
-
reseed = true# Whether to re-seed the random number generator between episodes
28
+
random_resets = true# Whether to re-seed the random number generator between episodes
44
29
seed = 1337# Random seed
45
-
freq = 60# Frequency of the environment's step function, in Hz
30
+
freq = 50# Frequency of the environment's step function, in Hz
46
31
symbolic = false# Whether to include symbolic expressions in the info dict. Note: This can interfere with multiprocessing! If you want to parallelize your training, set this to false.
47
32
sensor_range = 0.45# Range at which the exact location of gates and obstacles become visible to the drone. Objects that are not in the drone's sensor range report their nominal position.
48
33
@@ -76,40 +61,56 @@ pos = [0.0, 1.0, 1.4]
76
61
pos = [1.0, 1.0, 0.05]
77
62
rpy = [0, 0, 0]
78
63
vel = [0, 0, 0]
79
-
ang_vel = [0, 0, 0]
64
+
rpy_rates = [0, 0, 0]
65
+
66
+
[env.disturbances.action]
67
+
fn = "normal"
68
+
scale = 0.001
69
+
70
+
[env.disturbances.dynamics]
71
+
fn = "uniform"
72
+
[env.disturbances.dynamics.kwargs]
73
+
minval = [-0.1, -0.1, -0.1]
74
+
maxval = [0.1, 0.1, 0.1]
80
75
81
76
[env.randomization.drone_pos]
82
-
type = "uniform"# Everything that can be used as a distribution in numpy.random
83
-
# Kwargs that are permissable in the np random function
id = "DroneRacing-v0"# Either "DroneRacing-v0" or "DroneRacingThrust-v0". If using "DroneRacingThrust-v0", the drone will use the thrust controller instead of the position controller.
28
-
reseed = false# Whether to re-seed the random number generator between episodes
28
+
random_resets = false# Whether to re-seed the random number generator between episodes
29
29
seed = 1337# Random seed
30
30
freq = 50# Frequency of the environment's step function, in Hz
31
31
symbolic = false# Whether to include symbolic expressions in the info dict. Note: This can interfere with multiprocessing! If you want to parallelize your training, set this to false.
Copy file name to clipboardexpand all lines: docs/challenge/simulation.rst
+1-1
Original file line number
Diff line number
Diff line change
@@ -50,7 +50,7 @@ The challenge is divided into different difficulty levels, each specified by a T
50
50
- Sim2real transfer
51
51
52
52
.. note::
53
-
"Rand. Between Episodes" (governed by argument `reseed_on_reset`) determines whether randomized properties and positions vary or are kept constant (by re-seeding the random number generator on each `env.reset()`) across episodes.
53
+
"Rand. Between Episodes" (governed by argument `random_resets`) determines whether randomized properties and positions vary or are kept constant (by re-seeding the random number generator on each `env.reset()`) across episodes.
54
54
55
55
You may use the easier scenarios to develop and debug your controller. However, the final evaluation will be on the hardest scenario (Level 3).
0 commit comments