Warehouse Automation Project

Time period:

Start Date: June, 2021
End Date: October, 2021

Background

Flipkart Grid 3.0 was a competition on Dare2Compete. This was during the covid lockdown period and everything was online. The problem statement was unique, and it immediately intrigued me. I didn’t know I would be obsessed with this one task for the next couple of months.  

The Problem Statement

I will attach the problem statement in the Resources section. To summarize, they asked us to build a dummy warehouse layout grid with inlet and outlet areas. We had to code bots to travel to inlet sections, pick up a dummy parcel, make their way to the outlet sections and drop the package. Then, repeat. We would be graded on how many packages the bots managed to sort. 

Important Hurdles

The biggest hurdle we were given was that we were not allowed to put any sensors on the bot. This made the task infinitely more difficult. We had to have a central navigation system do all the processing, from deciding the targets and paths for each bot to properly monitoring them to check if they went out of bounds. I had no idea how helpful sensors were before this and the execution of this project has been one of the most challenging ones I have experienced.

Execution

This is how I tackled this problem.

Every bot would house an Arduino Board, with a Motor Driver Shield which would be connected to a servo motor and 2 different DC motors (like an LFR). Additionally the Arduino would also be connected to a NodeMCU.

The NodeMCU would be connected to my router, which was connected to my laptop. The router would also be connected to my mobile phone (which I was using as a camera). I built a mounting that I attached to the ceiling and fixed the phone up there, I printed the map layout on a huge poster and laid it out on the floor.

In every loop, my Laptop would receive the camera input, and using python, openCV it would process those images. Then it would send data through the router to the ip of the specific NodeMCU of the bot it wanted to speak to. The data would be an array of numbers which was basically motor speeds and had an extra value for picking and dropping a package.

I faced an uncountable number of problems during just phase 1 of this competition, but I somehow managed to finish up in the nick of time. I am attaching a Project Report that summarizes phase 1 of the project roughly.

Again, I decided to scrap the whole bot and start again for phase 2, even though the problem statement did not require me to. I had a lot of improvements in mind. The NodeMCU had a processing chip, and also paired with a motor driver, so this eliminated the need for an arduino altogether. The NodeMCU running alone would also require less battery, so the bots could be much smaller than before. I also had a plan to make the drive smoother, and make the bots move straight themselves, using encoded motors and PID control algorithm over the supplying voltages to control motor speeds. This would also allow me to turn specific angles instead of tiny repetitive increments. Another improvement I made was to use Aruco Markers instead of double colored stickers for bot identification. This helped me gain some knowledge on how qr codes work. I used an A* search algorithm on my virtual map for the bots to find their destinations and back, and even ensured the bots wont bump into each other in the process.

Phase 2 came with its own set of problems too. The map was bigger and required 2 cameras now. These came with their own video feeds, and writing the opencv algorithm all over again was a hassle. Then there were the calculations and the exceptions to be covered when bots went from one cameras view to another. 

This was, however too much to take on and even though I finished making the bot, and finished all my tasks, I could not figure out how to parallelly track and run 8 bots in code. When I figured that out, my code was too slow. Too many problems and too little time resulted in me failing to complete the task before deadline. 

 

Resources

Links

This links to the GitHub Repository of all the attempts of code I made for the Flipkart Grid 3.0 competition

 

 

This is a link to the Google Drive folder where I have uploaded all the reports, SOLIDWORKS files and any other stuff.