87 lines
2.1 KiB
YAML
87 lines
2.1 KiB
YAML
# General Simulation Configuration
|
|
|
|
/**:
|
|
ros__parameters:
|
|
|
|
simulation:
|
|
# Use Gazebo ground truth for "perfect" position estimation
|
|
# In real world, this would come from visual odometry
|
|
use_gazebo_ground_truth: true # Set false for realistic VO errors
|
|
|
|
# Add noise to simulate real sensors
|
|
add_sensor_noise: true
|
|
|
|
# Noise parameters
|
|
noise:
|
|
position_stddev: 0.05 # meters
|
|
velocity_stddev: 0.1 # m/s
|
|
imu_gyro_stddev: 0.0002 # rad/s
|
|
imu_accel_stddev: 0.017 # m/s^2
|
|
|
|
# GPS simulation (for geofence only)
|
|
gps:
|
|
enabled: true # Only for geofencing
|
|
update_rate: 5 # Hz
|
|
noise_stddev: 2.0 # meters (realistic GPS error)
|
|
|
|
# Real-time factor (1.0 = real-time)
|
|
real_time_factor: 1.0
|
|
|
|
# Physics settings
|
|
physics:
|
|
engine: "ode"
|
|
max_step_size: 0.001
|
|
real_time_update_rate: 1000
|
|
|
|
# World configuration
|
|
world:
|
|
name: "empty_custom"
|
|
gravity: 9.81
|
|
|
|
# Lighting (affects vision)
|
|
lighting:
|
|
ambient_level: 0.4
|
|
shadows: true
|
|
sun_angle: 45.0 # degrees
|
|
|
|
# Ground plane
|
|
ground:
|
|
size: [100.0, 100.0] # meters
|
|
texture: "ground_plane"
|
|
friction: 1.0
|
|
|
|
# Initial positions (LOCAL coordinates)
|
|
initial_positions:
|
|
uav:
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.2 # Start slightly above ground
|
|
roll: 0.0
|
|
pitch: 0.0
|
|
yaw: 0.0
|
|
|
|
ugv:
|
|
x: 5.0
|
|
y: 0.0
|
|
z: 0.0
|
|
roll: 0.0
|
|
pitch: 0.0
|
|
yaw: 1.57 # 90 degrees (facing +Y)
|
|
|
|
# Visualization
|
|
visualization:
|
|
show_trajectory: true
|
|
trajectory_length: 1000 # points
|
|
show_local_frame: true
|
|
show_velocity_vector: true
|
|
|
|
# Data logging
|
|
logging:
|
|
enabled: true
|
|
log_directory: "~/.ros/uav_ugv_logs"
|
|
log_topics:
|
|
- "/uav/visual_odometry/pose"
|
|
- "/uav/mavros/local_position/pose"
|
|
- "/geofence/status"
|
|
bag_recording: false
|