# 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"