The goal of this project was to create a fully autonomous drone that is able to fully maneuver itself using Optical flow only. You can find more about the actual algorithm here, but in short it takes two frames from a video feed and examines the pixels between them. Depending on how much the pixels in the same position might have changed it will return a yes or no to determine if movement has been detected and then moves accordingly. This project was an extension of a summer project that was hosted by cal poly pomona and lockheed martin that sought to find different solutions to autonomous vehicles. The main challenge in implementing the algorithm was having it properly detect distance as it relies majorly on pixel values; it's not very good at examining movement from a distance. I had entered this project with no idea on what computer vision was to being able to use the OpenCV library in python. Along with technical skills I developed communication and teamwork skills due to this being a team project and correspondence being essential.
During the course of my Computer Architecture we had also done the nand2Tetris course alongside the main topics to gain a full-level understanding of a computer. One can find the full course here if they’re curious. In short the course has us go from the very basic boolean gates that make up the computer to the high level functions of compiling a programming language. The difficulty mainly came from trying to familiarize with the other aspects of computer architecture along with what was covered in class. Due to the course I gained a deeper appreciation for a computer and all that comes with it.
At the end of my Computer Architecture class our final was to create any application we desired using Quantum Computing. Quantum Computing for the uninitiated could be summed up as with computing with quantum bits instead of classical bits , but I understand that explanation is a bit lacking so you can find more here. For my project I used the Qiskit Library provided by IBM to build my project which was an n-bit quantum teleporter. It would be able to teleport an n-size register amount of information across two bits allowing for more versatility in transferring information. Of course the practical limit is 21 bits but it was to allow the user the option for whatever size they wished for. The problems weren’t in implementation but rather the understanding of the quantum theory to be able to get the logic of the program right. It required me to watch many lectures on quantum computing to get the right understanding. The takeaway I had from this project was that I went from thinking quantum computing was magic to being able to create a fully functional project within two weeks. Along with directly understanding quantum mechanics I had learned how to quickly take apart a previously unknown topic and apply the knowledge I learned to an applicable project.