In my summer 2022 internship at Lockheed Martin, I developed a software stack integrated onto an AMR (Autonomous Mobile Robot) to reliably track packages as they were delivered from one location to another, enabled multiple packages to be delivered in one trip, and created an algorithm that would plan routes according to the priority level of the packages on board.
This project was born out of my coworker's frustration with the current procedure in place, which was established in order to ensure packages did not end up in the wrong location. Employees could only load several packages at once onto the AMR if all the packages were headed to the same destination. If two packages were intended to go to different locations, the AMR had to make two separate round trips, rather than use the first location as a connection to the second location. This was done to ensure packages were not received at the wrong location, and because the AMR had no sensor on board to determine whether the first package had been removed, thus clearing it to move onto the second location.
AMR (Autonomous Mobile Robot)
Early into my second month, I realized I wanted to give the AMR an upgrade and solve the issues mentioned above. I spent the first week interviewing users, identifying the core issues, and brainstorming solutions. I explained my ideas to my supervisors and the AMR's regular users. Their feedback enabled me to iterate and arrive at the final solution. I accomplished the following with only a week left in my internship.
I programmed a Raspberry-Pi to interface with a bar-code scanner and the AMR. I created bar-codes that corresponded to all the main delivery locations. A user could stick a bar-code onto a package, scan the package onto the AMR, and record that the package had left the distribution center via the AMR to its destination. An employee at the destination could scan the packages, marking the package "delivered via AMR."
Once the script on the Raspberry-Pi registered that all the packages belonging to a destination had been scanned out and confirmed that packages were still loaded on the AMR, it automatically routed to the next location. I called this system a "Virtual Queue."
The bar-codes marked a package's priority level. Then, I designed an algorithm that would plan routes based on the "hottest" item in the queue. Packages sitting on the AMR throughout the day would automatically rise in priority level to ensure they were delivered in a timely manner.
The distribution center could now reliably track packages as they were delivered from one location to another, load multiple packages assigned to different locations onto the AMR, and ensure the highest priority items would be delivered the soonest.