-
Notifications
You must be signed in to change notification settings - Fork 25
/
level2.toml
115 lines (99 loc) · 4.14 KB
/
level2.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Level 2
# | Evaluation Scenario | Rand. Inertial Properties | Randomized Obstacles, Gates | Rand. Between Episodes | Notes |
# | :-----------------: | :-----------------------: | :-------------------------: | :--------------------: | :-------------------: |
# | `level2.toml` | **Yes** | **Yes** | *No* | Learning, re-planning |
[controller]
file = "trajectory_controller.py" # Put your controller file name here. Specifying a controller as argument to scripts will override this setting. Controllers are located in `lsy_drone_racing/control/`
[deploy]
### Settings only relevant for deployment
# Whether to check if gate and obstacle positions observed by vicon are within the limits defined down below.
check_race_track = true
# Whether to check if the drone start position is within the limits specified down below.
check_drone_start_pos = true
# Lets you practice your controller without putting up gates & obstacles, assumes nominal positions given below.
practice_without_track_objects = false
[sim]
# Physics options:
# "pyb": PyBullet
# "dyn": Mathematical dynamics model
# "pyb_gnd" PyBullet with ground effect
# "pyb_drag": PyBullet with drag
# "pyb_dw": PyBullet with downwash
# "pyb_gnd_drag_dw": PyBullet with ground effect, drag, and downwash.
physics = "pyb"
camera_view = [5.0, -40.0, -40.0, 0.5, -1.0, 0.5]
sim_freq = 500 # Simulation frequency, in Hz
ctrl_freq = 500 # Controller frequency, in Hz. This frequency is used to simulate the onboard controller, NOT for the environment's step function
gui = false # Enable/disable PyBullet's GUI
[sim.disturbances.action]
type = "GaussianNoise"
std = 0.001
[sim.disturbances.dynamics]
type = "UniformNoise"
low = [-0.1, -0.1, -0.1]
high = [0.1, 0.1, 0.1]
[env]
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.
reseed = true # Whether to re-seed the random number generator between episodes
seed = 1337 # Random seed
freq = 60 # Frequency of the environment's step function, in Hz
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.
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.
[env.track]
# Tall gates: 1.0m height. Short gates: 0.525m height. Height is measured from the ground to the
# center of the gate.
[[env.track.gates]]
pos = [0.45, -1.0, 0.56]
rpy = [0.0, 0.0, 2.35]
[[env.track.gates]]
pos = [1.0, -1.55, 1.11]
rpy = [0.0, 0.0, -0.78]
[[env.track.gates]]
pos = [0.0, 0.5, 0.56]
rpy = [0.0, 0.0, 0.0]
[[env.track.gates]]
pos = [-0.5, -0.5, 1.11]
rpy = [0.0, 0.0, 3.14]
# Obstacle height: 1.4m. Height is measured from the ground to the top of the obstacle.
[[env.track.obstacles]]
pos = [1.0, -0.5, 1.4]
[[env.track.obstacles]]
pos = [0.5, -1.5, 1.4]
[[env.track.obstacles]]
pos = [-0.5, 0.0, 1.4]
[[env.track.obstacles]]
pos = [0.0, 1.0, 1.4]
[env.track.drone]
pos = [1.0, 1.0, 0.05]
rpy = [0, 0, 0]
vel = [0, 0, 0]
ang_vel = [0, 0, 0]
[env.randomization.drone_pos]
type = "uniform" # Everything that can be used as a distribution in numpy.random
# Kwargs that are permissable in the np random function
low = [-0.1, -0.1, 0.0]
high = [0.1, 0.1, 0.02]
[env.randomization.drone_rpy]
type = "uniform"
low = [-0.1, -0.1, -0.1]
high = [0.1, 0.1, 0.1]
[env.randomization.drone_mass]
type = "uniform"
low = -0.01
high = 0.01
[env.randomization.drone_inertia]
type = "uniform"
low = [-0.000001, -0.000001, -0.000001]
high = [0.000001, 0.000001, 0.000001]
[env.randomization.gate_pos]
type = "uniform"
low = [-0.15, -0.15, 0.0]
high = [0.15, 0.15, 0.0]
[env.randomization.gate_rpy]
type = "uniform"
low = [0.0, 0.0, -0.1]
high = [0.0, 0.0, 0.1]
[env.randomization.obstacle_pos]
type = "uniform"
low = -0.15
high = 0.15