measurement_devices: - id: device_1 position: [50.0, 50.0, 0.0] slots: - position: [10.0, 20.0, 0.0] occupied: False slot_id: 0 - position: [20.0, 20.0, 0.0] occupied: False slot_id: 1 - position: [30.0, 20.0, 0.0] occupied: False slot_id: 2 - id: device_2 position: [100.0, 50.0, 0.0] slots: - position: [10.0, 20.0, 0.0] occupied: False slot_id: 0 - position: [20.0, 20.0, 0.0] occupied: False slot_id: 1 - position: [30.0, 20.0, 0.0] occupied: False slot_id: 2 feeder: position: [0.0, 0.0, 0.0] approach_position: [0.0, 0.0, 20.0] dropoff_grades: - id: accepted position: [0.0, 10.0, 0.0] capacity_threshold: 0.8 - id: rejected position: [0.0, 20.0, 0.0] capacity_threshold: 0 mqtt: broker: localhost # or debug port: 1883 username: robot password: robot keepalive: 60 grbl: # port: /dev/ttyACM0 # or debug port: debug baudrate: 115200 vision: camera_id: 0 resolution: [640, 480] frame_rate: 30 exposure: 0.1 gain: 1.0 bbox: [100, 100, 200, 200] # (x, y, width, height) vacuum: min_pressure_bar: -0.85 max_pressure_bar: -0.35 max_pump_time_s: 30 gripping_threshold_bar: -0.35 pump_watchdog_timeout_s: 30 gpio: debug: true pump_pin: 17 valve_pin: 27 i2c: debug: true movement: speed: 400.0 acceleration: 20.0 safe_height: 25.0 logging: level: INFO file_path: logs/robot.log max_file_size_mb: 1 backup_count: 3 console_output: true