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: -1 resolution: [640, 480] frame_rate: 30 exposure: 0.1 gain: 1.0 vacuum: min_pressure_bar: 0.5 max_pressure_bar: 1.0 max_pump_time_s: 30 gripping_threshold_bar: 0.8 pump_watchdog_timeout_s: 30 gpio: debug: false pump_pin: 17 valve_pin: 27 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