forest_navigating_uav/configs/worldgen/world.default.yaml
 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
# configuration for dynamic worldgen
# ── SINGLE SOURCE OF TRUTH for world-level parameters (K, N, min_distance) ──
# Layout configs (mixed_field.yaml, mixed_zones.yaml, …) describe *how* objects
# are arranged but must NOT redefine these values.

# output
world_name: "randomized_world"
output_file: "randomized_world.sdf"

# gen parameters
generation:
  area_size: 50       # K×K world size (metres)
  object_count: 900   # total number of obstacles to generate
  min_distance: 0.62  # hard minimum distance between any two obstacles (metres)
  start_goal_tree_exclusion_radius: 3.0  # clears trees around sampled start/goal anchors (Gazebo export)
  start_goal_min_distance: 8.0           # minimum XY distance between sampled start and goal anchors
  start_goal_band_ratio: 0.55            # anchors sampled from opposite boundary bands [0..1]
  spawn_max_attempts: 500                # max tries for anchor sampling before fallback
  # CURRENTLY USELESS
  min_tree_height: 0.8  # min tree height scale
  max_tree_height: 1.2  # max tree height scale

# model URIs
# locally for me it's $HOME/gazebo_models or smth like that
models:
  - uri: "https://fuel.gazebosim.org/1.0/OpenRobotics/models/Pine Tree"

# physics conf
physics:
  max_step_size: 0.001
  real_time_factor: 1.0

# lighting config
lighting:
  cast_shadows: true
  pose: "0 0 10 0 0 0"
  diffuse: "0.8 0.8 0.8 1"
  specular: "0.2 0.2 0.2 1"
  attenuation:
    range: 1000
    constant: 0.9
    linear: 0.01
    quadratic: 0.001
  direction: "-0.5 0.1 -0.9"