WaiterBot
WaiterBot is the main hardware component in our system. When a WaiterBot is deployed, the control unit will send a message to the WaiterBot consisting of the number of junctions and the turning direction. WaiterBot will reach the destination table by a line following mechanism and decides the correct path to the table by keeping track of the junctions in the path.
When the WaiterBot reaches the destination table, it will wait there untill the food items are taken away from its tray. Robot will ensure that all the food items are taken away from the tray by measuring the weight. When the delivery is complete the robot will return to the station and the robot can be deployed for another table.
If the robot is interfered by any obstrucle, the robot will stop its movement and inform the control unit and also if the food items on the tray are taken away from the tray before reaching the destination table, the robot will inform the control unit that the food items were taken away before reaching the destination table.
Deploying of the WaiterBots are done by the desktop application. When the desktop application is launched, it will start an MQTT broker and then the WaiterBots will connect to the broker and subscribe the topic assigned for the specific robot.
WaiterBot will detect the path by using the readings from the IR sensor array with 7 sensors. Depending on the sensor readings, an error value will be calculated.
Using the propotionality control, the speed of the stepper motors will be controlled depending on the error vallue. That is by changing the frequency of the pulses sent to the stepper motors. To further smoothen the following of the line, PID controls will be used.
ESP32 operates at 3.3V and sensors operate at 5V. So when sending signals between the micro controllers and the sensors it is required to match the operating voltages. If not the devices will get damaged.
33k and 10k resistors are required for measuring the battery percentage.