January 2016 [Completed]
For PennApps XIII, one of the largest student-run hackathons, my team consisting of Raphael Chang, Nikunj Khetan, Anurag Makineni, and myself built a functional 3D Scanner. Having two out-of-date LIDARs laying around, we brainstormed for a project which could incorporate these two LIDARs and settled on the idea of a 3D Scanner. Throughout the next 36 hours at the University of Pennsylvania, we designed and assembled the frame, wrote code, played in the snow, got 10 hours of sleep, and tested our device. We were a Top 10 Hack and won the Best Use of Rapid Prototyping Award!
The hardware was designed and built from scratch, and the code was written in C++ and Python, built on top of ROS. The scanner used two LIDARs, one mounted on top and one on the side. As the turntable spun the object, the LIDAR scans were projected into a point cloud using the angle data from the servo motor. The point clouds from the two LIDARs were then merged using the ICP algorithm, which combines the common points from the two clouds into one final point cloud. The point cloud could be exported into MeshLab, which converted it into an STL file for applications like 3D printing. We used ROS to read the LIDAR data and spin the servo motor, and PCL (point cloud library) to process the point clouds. I developed software in Python and assembled the frame of the scanner.