Our team is inspired by the growing development and innovation of the autonomous vehicle industry. Autonomous vehicles will soon be roaming our streets providing added convenience and safety to automobile transportation. Autonomous systems are also being developed to add convenience and efficiency to several other industries such as cashier-less stores and travel. Our team became very cognizant of the growing demands and applications of autonomous systems, and decided to develop an autonomous system that could be utilized for items such as shopping carts or travel luggage that will intelligently follow its user as they navigate different spaces.
What It Does
Our autonomous luggage system intelligently follows its user as the user travels throughout a space. The use cases our team had in mind when developing the project were an autonomous shopping cart and luggage. When people are shopping in a store or moving throughout an airport, they frequently have their hands full and prioritize finding their destination. People should not have to worry about how to navigate their shopping carts or luggage in busy environments. Autonomy will provide a safe and convenient solution to this common hassle. Our system will safely space themselves between itself and the user, follow the user as they move forward or backward, and turn with the user as they move left or right.
How We Built It
Our autonomous system was built using an iRobot Create 2, UART to USB converter, and a Dell XPS 13 running Linux and OpenCV. The iRobot Create 2 is able to move forward, backward, left, right, and turn three hundred and sixty degrees. The maneuverability provided by the iRobot Create 2 was perfect for our potential use cases of an autonomous shopping cart and luggage. The serial connection port was missing from the iRobot Create 2 kit, so our team utilized spare breadboard jumper wires, plugged them directly into the iRobot Create 2's serial 7-pin mini DIN port, and attached it to a UART to USB converter. A Dell XPS 13 laptop running Linux was connected to the iRobot Create 2 using USB. Once our team was able to establish connection between the laptop and the iRobot Create 2, we developed an image recognition system with Python OpenCV. Due to the serial connection port being unavailable, and our team having to use additional time to come up with a feasible solution, we were unable to have the autonomous system track a human body. Instead of tracking a human body, our team utilized a light green rectangle that the system would use to track the individual. The webcam on the Dell XPS 13 was utilized for the image recognition. The OpenCV system determines the pixelized area of the rectangle in the frame of the video multiple times every second. If the area of the green rectangle is smaller than a certain threshold, this signals to the system that the user is far away, and the iRobot Create 2 will accelerate forward to decrease the distance between itself and the green rectangle. If the area of the green rectangle is larger than a certain threshold, this signals to the system that the user is really close, and the iRobot Create 2 will decelerate to decrease the distance between itself and the green rectangle. The OpenCV also identifies the position of the green rectangle relative to the center of the video frame. If the green rectangle is beyond a certain threshold to the right of the middle of the frame, this signals to the system that the user is moving to the left, and the iRobot Create 2 will rotate to the left in an attempt to re-center the green rectangle in the video frame. If the green rectangle is beyond a certain threshold to the left of the middle of the frame, this signals to the system that the user is moving to the right, and the iRobot Create 2 will rotate to the right in an attempt to re-center the green rectangle in the video frame.
Challenges We Ran Into
The serial connection port was missing from the iRobot Create 2 development kit. Our team ran into the challenge of figuring out how to establish a physical connection between the iRobot Create 2, and the Dell XPS 13 laptop running linux. Our team went through several failed attempts, and nearly shelved the project, but we collaborated and spent a lot of time in in an effort to find a solution. Our team was able to find spare bread board jumper wires and a UART to USB converter in order to establish a physical serial connection.
Accomplishments That We're Proud Of
Our team is proud of our collaboration, critical thinking, ingenuity, and the final product. Each one of us has a different technical background and expertise ranging in different types of hardware and software, and we were able to find a way to include everyone's expertise and work together through difficult challenges in order to create an autonomous system that follows a user as they travel around a space.
What We Learned
Our team learned that coming across annoying challenges and bugs are typical to the development process. In addition to this, each of us gained experience in serial communication, operating motors, and OpenCV image recognition.
What's Next For Autonomous Luggage System
Our team wants to improve the image recognition system to recognize human bodies instead of the green rectangle. We want to improve the operation of the iRobot Create 2 so that it moves forward, backward, left, right, and turns more smoothly. In addition to this, our team would like to transition our system to a small Raspberry Pi and camera instead of the laptop that we mounted on top of the iRobot Create 2. Our team is very proud of our final product for this challenge, but we are even more excited on how we can improve our current system.