ChiPy Mentorship pt 1
I am very excited to start my ChiPy Mentorship this fall season! This initial post will be one of three blog entries that I will make throughout the program.
So to start off a little bit about myself… My name is Adam Patni and I am a junior at Naperville North High School. I decided to apply for the ChiPy mentorship program because I had a passion for programming and really wanted to use the resources that ChiPy has to develop my skills and work on a project for my robotics team.
Walking into the first ChiPy meeting was a little bit intimidating for me because I had no idea that the program consisted mainly of adults. I was initially under the impression that most of the mentees would be 16 years old like me and in high school but was surprised to find that I was the youngest in the program. I decided to just jump in to some of the conversations and soon realized that everyone their was super nice and all had the same goal of learning more Python.
Robotics has been a huge part of my life, and a lot of it has been through the organization FIRST. I actually started my robotics career in 4th grade through FLL which is a Lego robotics competition aimed towards teaching younger generations about STEM and problem solving techniques. In high school, I started competing with Huskie Robotics in the FRC competition which uses larger robots that are built, programmed, fabricated, and designed all at school.
I joined Huskie Robotics as a freshmen and immediately decided to try out the mechanical subteam. Throughout the build season I learned a lot about CAD, principles of design, and how to create a 120 pound robot in 6 weeks after schoool.
My sophomore year I gravitated towards the Software subteam, learning LabView, control system techniques, and other general programming practices. That year we focused on building a Swerve Drive library which allowed our robot to drive like this. That same year we also worked on a Computer Vision app on an Android phone to make our robot partially autonomous during a match. Sadly, this failed and we had to scrap the project before it could be used at competition.
During the summer I turned my family’s garage into a robotics workshop and brought our team’s $4000 robot to work on creating a new Computer Vision app on the Raspberry Pi 3 + Camera Module V2.
The way Vision works at a high level is that the robot takes a picture of a target and based on a few properties of that frame it determines the position and moves accordingly. Every year each new FRC game has different targets which are made of reflective tape and when an LED shines on those it creates a distortion which can be read by the camera. This allows us to see images of rectangles or shapes that help determine how far away we are from a game piece.
The control system with our current Computer Vision software is flawed in that it is not optimized for determining the best path to success. This mentorship I plan to learn about Machine Learning and hopefully train a model that will optimize these paths and account for the jerk/wheel slippage of the robot on the ground. This should make the robot get to the peg in a short amount of time while also reducing error in the system. Meeting with my mentor(Nick Timkovich) a few days ago was super insightful as we discussed different strategies for approaching the problem as well a few libraries to look into like TensorFlow and Scikit-learn. We also created a block diagram of the project as it is right now and analyzed it, looking for issues and places to increase efficiency. Our next steps are to do some research on combining machine learning with control theory and determining which dimensions from the frame (video) are most important to calculating position so we can plug them into a machine learning algorithm.
Hopefully this addition to my team’s technical skill set will allow us to attend the World Championship next year!