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
attitude_freq = 500# Controller frequency, in Hz. This frequency is used to simulate the onboard controller, NOT for the environment's step function
28
28
gui = false# Enable/disable PyBullet's GUI
29
29
30
-
[sim.disturbances.action]
31
-
type = "GaussianNoise"
32
-
std = 0.001
33
-
34
-
[sim.disturbances.dynamics]
35
-
type = "UniformNoise"
36
-
low = [-0.1, -0.1, -0.1]
37
-
high = [0.1, 0.1, 0.1]
38
-
39
30
[env]
40
-
id = "DroneRacing-v0"# Either "DroneRacing-v0" or "DroneRacingAttitude-v0". If using "DroneRacingAttitude-v0", the drone will use the attitude controller instead of the position controller.
41
-
random_resets = false# Whether to re-seed the random number generator between episodes
42
-
seed = 1337# Random seed
43
-
freq = 50# Frequency of the environment's step function, in Hz
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.
45
-
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.
31
+
id = "DroneRacing-v0"#"DroneRacing-v0" for single races, "MultiDroneRacing-v0" for multi-drone races. Each environment also implements a vector-environment for faster training
32
+
random_resets = false# Whether to re-seed the random number generator between episodes
33
+
seed = 1337# Random seed
34
+
freq = 50# Frequency of the environment's step function, in Hz
35
+
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.
36
+
action_space = "state"# Action space of the environment. Can be either "state" or "attitude"
46
37
47
38
[env.track]
48
39
# Tall gates: 1.0m height. Short gates: 0.525m height. Height is measured from the ground to the
Copy file name to clipboardexpand all lines: config/level1.toml
+6-6
Original file line number
Diff line number
Diff line change
@@ -24,12 +24,12 @@ attitude_freq = 500 # Controller frequency, in Hz.
24
24
gui = false# Enable/disable PyBullet's GUI
25
25
26
26
[env]
27
-
id = "DroneRacing-v0"# Either "DroneRacing-v0" or "DroneRacingAttitude-v0". If using "DroneRacingAttitude-v0", the drone will use the attitude controller instead of the position controller.
28
-
random_resets = false# Whether to re-seed the random number generator between episodes
29
-
seed = 1337# Random seed
30
-
freq = 50# Frequency of the environment's step function, in Hz
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.
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.
27
+
id = "DroneRacing-v0"#"DroneRacing-v0" for single races, "MultiDroneRacing-v0" for multi-drone races. Each environment also implements a vector-environment for faster training
28
+
random_resets = false# Whether to re-seed the random number generator between episodes
29
+
seed = 1337# Random seed
30
+
freq = 50# Frequency of the environment's step function, in Hz
31
+
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.
32
+
action_space = "state"# Action space of the environment. Can be either "state" or "attitude"
33
33
34
34
[env.track]
35
35
# Tall gates: 1.0m height. Short gates: 0.525m height. Height is measured from the ground to the
Copy file name to clipboardexpand all lines: config/level2.toml
+6-6
Original file line number
Diff line number
Diff line change
@@ -24,12 +24,12 @@ attitude_freq = 500 # Controller frequency, in Hz.
24
24
gui = false# Enable/disable PyBullet's GUI
25
25
26
26
[env]
27
-
id = "DroneRacing-v0"# Either "DroneRacing-v0" or "DroneRacingAttitude-v0". If using "DroneRacingAttitude-v0", the drone will use the attitude controller instead of the position controller.
28
-
random_resets = false# Whether to re-seed the random number generator between episodes
29
-
seed = 1337# Random seed
30
-
freq = 50# Frequency of the environment's step function, in Hz
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.
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.
27
+
id = "DroneRacing-v0"#"DroneRacing-v0" for single races, "MultiDroneRacing-v0" for multi-drone races. Each environment also implements a vector-environment for faster training
28
+
random_resets = false# Whether to re-seed the random number generator between episodes
29
+
seed = 1337# Random seed
30
+
freq = 50# Frequency of the environment's step function, in Hz
31
+
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.
32
+
action_space = "state"# Action space of the environment. Can be either "state" or "attitude"
33
33
34
34
[env.track]
35
35
# Tall gates: 1.0m height. Short gates: 0.525m height. Height is measured from the ground to the
Copy file name to clipboardexpand all lines: config/level3.toml
+6-6
Original file line number
Diff line number
Diff line change
@@ -24,12 +24,12 @@ attitude_freq = 500 # Controller frequency, in Hz.
24
24
gui = false# Enable/disable PyBullet's GUI
25
25
26
26
[env]
27
-
id = "DroneRacing-v0"# Either "DroneRacing-v0" or "DroneRacingAttitude-v0". If using "DroneRacingAttitude-v0", the drone will use the attitude controller instead of the position controller.
28
-
random_resets = true# Whether to re-seed the random number generator between episodes
29
-
seed = 1337# Random seed
30
-
freq = 50# Frequency of the environment's step function, in Hz
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.
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.
27
+
id = "DroneRacing-v0"#"DroneRacing-v0" for single races, "MultiDroneRacing-v0" for multi-drone races. Each environment also implements a vector-environment for faster training
28
+
random_resets = true# Whether to re-seed the random number generator between episodes
29
+
seed = 1337# Random seed
30
+
freq = 50# Frequency of the environment's step function, in Hz
31
+
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.
32
+
action_space = "state"# Action space of the environment. Can be either "state" or "attitude"
33
33
34
34
[env.track]
35
35
# Tall gates: 1.0m height. Short gates: 0.525m height. Height is measured from the ground to the
Copy file name to clipboardexpand all lines: config/multi_level0.toml
+7-7
Original file line number
Diff line number
Diff line change
@@ -28,13 +28,13 @@ attitude_freq = 500 # Controller frequency, in Hz.
28
28
gui = false# Enable/disable PyBullet's GUI
29
29
30
30
[env]
31
-
id = "MultiDroneRacing-v0"# Either "MultiDroneRacingEnv-v0" or "MultiDroneRacingAttitude-v0". If using "MultiDroneRacingAttitude-v0", the drone will use the attitude controller instead of the position controller.
32
-
n_drones = 2# Number of drones has to match the track configuration for drones
33
-
random_resets = false# Whether to re-seed the random number generator between episodes
34
-
seed = 1337# Random seed
35
-
freq = 50# Frequency of the environment's step function, in Hz
36
-
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.
37
-
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.
31
+
id = "MultiDroneRacing-v0"
32
+
n_drones = 2# Number of drones has to match the track configuration for drones
33
+
random_resets = false# Whether to re-seed the random number generator between episodes
34
+
seed = 1337# Random seed
35
+
freq = 50# Frequency of the environment's step function, in Hz
36
+
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.
37
+
action_space = "state"# Action space of the environment. Can be either "state" or "attitude"
38
38
39
39
[env.track]
40
40
# Tall gates: 1.0m height. Short gates: 0.525m height. Height is measured from the ground to the
Copy file name to clipboardexpand all lines: config/multi_level3.toml
+7-7
Original file line number
Diff line number
Diff line change
@@ -28,13 +28,13 @@ attitude_freq = 500 # Controller frequency, in Hz.
28
28
gui = false# Enable/disable PyBullet's GUI
29
29
30
30
[env]
31
-
id = "MultiDroneRacing-v0"# Either "MultiDroneRacingEnv-v0" or "MultiDroneRacingAttitude-v0". If using "MultiDroneRacingAttitude-v0", the drone will use the attitude controller instead of the position controller.
32
-
n_drones = 2# Number of drones has to match the track configuration for drones
33
-
random_resets = true# Whether to re-seed the random number generator between episodes
34
-
seed = 1337# Random seed
35
-
freq = 50# Frequency of the environment's step function, in Hz
36
-
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.
37
-
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.
31
+
id = "MultiDroneRacing-v0"
32
+
n_drones = 2# Number of drones has to match the track configuration for drones
33
+
random_resets = true# Whether to re-seed the random number generator between episodes
34
+
seed = 1337# Random seed
35
+
freq = 50# Frequency of the environment's step function, in Hz
36
+
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.
37
+
action_space = "state"# Action space of the environment. Can be either "state" or "attitude"
38
38
39
39
[env.track]
40
40
# Tall gates: 1.0m height. Short gates: 0.525m height. Height is measured from the ground to the
Copy file name to clipboardexpand all lines: lsy_drone_racing/control/attitude_controller.py
+12-28
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@
14
14
fromtypingimportTYPE_CHECKING
15
15
16
16
importnumpyasnp
17
-
importpybulletasp
17
+
fromcrazyflow.constantsimportMASS
18
18
fromscipy.interpolateimportCubicSpline
19
19
fromscipy.spatial.transformimportRotationasR
20
20
@@ -24,23 +24,23 @@
24
24
fromnumpy.typingimportNDArray
25
25
26
26
27
-
classThrustController(BaseController):
27
+
classAttitudeController(BaseController):
28
28
"""Example of a controller using the collective thrust and attitude interface.
29
29
30
30
Modified from https://github.com/utiasDSL/crazyswarm-import/blob/ad2f7ea987f458a504248a1754b124ba39fc2f21/ros_ws/src/crazyswarm/scripts/position_ctl_m.py
0 commit comments