measurement_devices: - id: device_1 position: [378, 898, 107] slots: - position: [10, 0, 0] occupied: False slot_id: 0 - position: [31, 0, 0] occupied: False slot_id: 1 - position: [52, 0, 0] occupied: False slot_id: 2 - position: [75, 0, 0] occupied: False slot_id: 3 - position: [98, 0, 0] occupied: False slot_id: 4 - position: [120, 0, 0] occupied: False slot_id: 5 - position: [142, 0, 0] occupied: False slot_id: 6 - position: [165, 0, 0] occupied: False slot_id: 7 feeder: position: [30, 621.5, 47.5] dropoff_grades: - id: accepted position: [170, 630, 40] capacity_threshold: 0.8 - id: rejected position: [170, 630, 40] 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.14 max_pressure_bar: 0.7 max_pump_time_s: 20 gripping_threshold_bar: 0.7 pump_watchdog_timeout_s: 30 gpio: debug: false pump_pin: 17 valve_pin: 27 i2c: debug: false movement: speed: 400.0 acceleration: 20.0 safe_height: 0.0 logging: level: INFO file_path: logs/robot.log max_file_size_mb: 1 backup_count: 3 console_output: true