Timeline of events
Brainstorm
During the brainstorming sessions, we identified problems that we face in our everyday lives. The existing tray return robots in food courts were mentioned, we collated a list of problems and limitations that these robots face. After having online discussions with Tony and Dr. Ho, we decided to build a tray return robot that will target these issues. We aim to improve users’ experience and boost the efficiency of the robots.
We identified three main limitations of the current robots.
Firstly, there are errors in navigation. Current robots do not follow a fixed route, and this creates a situation where the robots may get stuck when they run into each other. We aim to resolve this issue by creating a line tracking system, such that the robots will not run into each other.
Secondly, the existing robots require manual clearing of trays from the robot. Even with a full load, robots are still on the move for tray collection, and there has to be a staff or cleaner to clear the trays. This makes tray collection less efficient, especially during peak periods. To target this, we intend to have an automated unloading mechanism to remove the need for manual unloading.
Lastly, there is an issue of bad smell coming from the robots if they are left running for too long without returning to the main station. This is apparent especially during non peak periods, when the robot will take a longer time to reach full load, and the food that is left on the trays will start to smell. We aim to solve this through the use of weight sensors. When there is the additional weight of trays being added onto the tray return rack, the tray return robot will be triggered to return to the docking station.
Drawing board
To address the first limitation, this is the line tracking map that we came up with. There will be a main track which run through the food court, and a smaller track which consists of the unloading and loading station.
![](https://blogs.ntu.edu.sg/ps9888-2021-g15/files/2021/07/dishhwashing-300x253.png)
This is an initial rough sketch of the robot. This targets the second limitation mentioned above to remove the need for manual unloading of the trays. We proposed a forklift mechanism to push the tray return rack out onto a docking station.
![](https://blogs.ntu.edu.sg/ps9888-2021-g15/files/2021/07/Picture2-300x98.png)
Drawing board – Troubleshoot
We recognised some potential precision problems that we would face if we went ahead with the forlift mechanism, and went back to the planning stage.
Taking inspiration from the Amazon warehouse robots, we decided to modify our robots to include two parts. A mobile base robot and a detachable tray return rack. The tray return rack is designed to stand on its own. The mobile base robot has four main components, weight sensors, linear actuators, line tracking array, and distance sensors. We plan to use linear actuators to hold the tray return rack up and bring the rack about. When the robot reaches the docking station, the linear actuators will lower to deposit the full rack and pick an empty rack up. The weight sensors detect will detect the change in weight when there are trays added onto the rack, which is a trigger for the robot to return to the docking station. The line tracking array is for the robot to track the line on the floor and move along the predetermined track so that the robots will not crash into each other. The ultrasonic distance sensors are for detection of obstacles such as humans and/or objects, and will trigger the stop of the robot until the obstacles are cleared.
Mobile base robot:
Tray return rack:
Progress of hardware
After consulting Tony and researching online, we ordered the parts required for our project (List of hardware bought can be found here.) We decided on aluminium profiles for the main skeleton structure of both the base robot and tray return. This is due the versatility of the profiles, where they can be adapted to many uses. Aluminium profiles are also lightweight yet durable, which is essential as we require the robot to be able to withstand the weight of heavy components such as the car battery and also the trays themselves. We ordered aluminium profiles that were of the exact length that we needed to avoid any discrepancies.
For the wheels, we opted to get two different types of wheels. For the front wheels, we chose heavy duty castor wheels, and for the back wheels, we chose wheelchair wheels that can withstand the weight of the robot as well. Wheelchair wheels are tubeless, reducing the need to pump the wheels, and there is also a low chance of the wheels going flat. The wheelchair wheels are attached to two DC motors (24V).
We built the basic structure of the base mobile robot and attached the motors and wheels. The motors are attached directly onto the aluminium profiles. We used a temporary power source and connected the motors to the Raspberry Pi 4b, motor driver and PWN to test them.
We then attached the linear actuators and castor wheels. Since the wheelchair wheels bought have a 6 inch radius and the castor wheels have a 5 inch diameter, we 3D printed two blocks to level the two wheels. The castor wheels are fitted onto the lower indent (as seen in the image below), and the entire block is attached on the aluminium profiles.
We procceeded to test the linear actuators. The linear actuators are placed at the four corners of the base mobile robot to lift up the tray return rack evenly. Each linear actuator can hold up to 90kg weight, and we used 4 linear actuators.
We also built the structure of the tray return rack. We 3D printed 4 blocks to act as shoes for the tray return rack so that we are able to adjust the height of the rack accordingly. We also printed stoppers for each end of the aluminium profiles to prevent the trays from sliding off.
Reflectance Array – Line tracking:
We then tested the reflectance array (QTR-8A). The array was temporarily mounted using aluminium profiles and a flexible ruler while we worked on printing a suitable mount for the array.
Mount for reflectance array:
The mount for the reflectance array was one of the harder challenges that we faced during this project. The reflectance array could only be at most 5mm away from the line that we are tracking, which meant that we had a small threhold to work with. To add on, the floor that we were working on was uneven, which meant that it was difficult to find an optimal height to mount the reflectance array.
We intially printed a mount from Thingiverse, but soon found problems that made it unsuitable for our project. This mount created an additional distance between the line and the sensor, which meant that the sensor could not be as close to the line as we would like it to be.
![](https://blogs.ntu.edu.sg/ps9888-2021-g15/files/2021/08/fail-mount-300x227.jpg)
![](https://blogs.ntu.edu.sg/ps9888-2021-g15/files/2021/08/failss-300x211.jpg)
We later found another mount from Thingiverse that we felt could satisfy the project’s needs.
To better suit our needs and to mount the array on the aluminium profile, we created another 3D structure.
The combination of both structures allowed us to mount te reflectance array at the optimal height from the line.
Ultrasonic distance sensor:
The next sensor that we worked on was the ultrasonic distance sensor. We printed mounts for each sensor. These mounts allow us to attach the sensors directly onto the profiles. The sensors are attached facing all four sides of the surroundings of the robot, to detect any incoming obstacles.
Weight Sensor:
Lastly, we worked on the weight sensor. Mounts for this sensor were printed as well.