Amazon Picking Challenge is a competition for designing a robot system to complement the Kiva automated warehouse shelving system. The workspace consists of a 12-bin shelf and a storage box. Each shelf bin has multiple items placed in any configuration with partial occlusions. A task list of items to be picked is provided. The goal is to pick the correct item from the bin and place it in the storage box. The 2016 edition was with RoboCup between June 30 and July 4.
As a part of MRSD course project, our 5-person team worked on this from September 2015 to June 2016. You can see our webpage at http://mrsdprojects.ri.cmu.edu/2015teamd/. During this period, we designed the system from the ground up.
We were mentored by Prof. Maxim Likhachev from the Search Based Planning Lab at CMU. We intially developed the system on a Willow Garage PR2 robot but found its reachability too limited for our task - in order to reach all the regions in our shelf, we would have had to change the telescopic spine height and move the robot, both of which would have added a layer of planning complexity and increased execution time. Universal Robots was kind enough to lend us a UR5 arm. Migrating our code to the UR5 was a breeze. We were super psyched when we were shortlisted as finalists in February 2016.
During summer, 3 members of our team started their internships in California. We would work on this project in the evenings after work and during weekends.
Day -1: June 27
We disassembled and packaged the robot, mounting frame, controller, items and the two computers. It was 450lbs between the four of us. We had decided to take the cargo as checked-in luggage instead of shipping it earlier as it would buy us more development time.
Day 0: June 28
We were scheduled to fly out of Pittsburgh in the afternoon and reach Berlin on June 29, just in time for the robot setup and testing day. As Murphy’s law would have it, our connecting flight to Newark got cancelled twice due to ATC issues. We spent the night camping at the airport as the next available flight was in the morning.
Day 1: June 29
We spent the day in airports and airplanes. Our quickest route to fly backwards to Chicago, go to Frankfurt and then to Berlin. We were concerned about our cargo getting lost and not making it on time.
Day 2: June 30
We finally landed in Berlin after a 28 hour delay! We rented a Peugeot minivan and raced to Leipzig on the Autobahn.
We were already late for the practice run where we get an item arrangement closest to the competition - a mock competition. Teams were mostly tweaking their perception parameters to adjust for the lighting conditions.
We turned up at the venue and frantically unpacked and setup our robot. To our shock, we found our computers smashed - the CPU cooler, RAM sticks and the power supply cables were dangling from the case. Thankfully, we able to patch it up enough to boot. One monitor was completely busted - no dual monitors for us :-(
Then, the linear actuator wasn’t being powered properly, our power supply wasn’t working and our shop-vac suction was super loud. Power supply fuses tripped. Then we realized we were powering 110VAC 60Hz equipment with 240VAC 50Hz. In our hurry, we mistook the power junction box to be a 110VAC to 240VAC converter. We had to drive into the city and get a new shop-vac. We then rigged a power source for the linear actuator using a drill battery!
Our depth sensor was giving very noisy and patchy pointclouds due to IR interference from the overhead Halogen lamps at the venue. The Kinect 2 uses Time-of-Flight and is more susceptible to interference than the original Kinect with structured light.
Day 3: July 1 - Stowing task finals
We finally got our system up and running in the early hours of the final event.
Due to an error, we were given the wrong task list file and had to redo. In the first attempt, we stowed 7 items for 88 points. In the second, we stowed 8 items but misidentified one, fetching us 77 points. We were placed 6th out of 16 finalists.
The Delft team aced it - they had really tight integration and a fast perception system. They completed the task with 6 minutes to spare. They were placed first and were far ahead of everyone else.
Day 4: July 2 - Picking task finals
The new shop-vac had lower suction pressure and was repeatedly dropping some of the heavier items. So we made some last minute changes to the grasping logic to avoid certain items and grasping approaches. Unfortuneately, this introduced a bug and during the competition run, we picked some items but then we were stuck looping between 2 shelves.
We picked up 4 items correctly for 33 points and were placed 7th out of 16 finalists.
I skipped the evening reception banquet and instead took off to explore the beautiful city of Leipzig on a tram.
Day 5: July 3 - Media day
Each team did a 15 minute presentation to the public and there were a lot of great questions. There were also a few TV crews interviewing us.
There was this kid from UAE who must have been in 5th or 6th grade. He was asking an MIT team member what language their robot was programmed in and was taking notes in Arabic!
Day 4: July 4 - Return to Pittsburgh
We got back just in time to catch the 4th of July fireworks!
Overall, it was an awesome experience and we were very happy with our performance. We would like to thank John Dolan, Dimi and Maxim for their support throughout this project.
Team HARP had a successful run! We would be handing over the project to the next year’s MRSD team.