MIT Maker Portfolio by Krish Kapoor

MIT Maker Portfolio

Estimated read time: 1:20

    Learn to use AI like a Pro

    Get the latest AI workflows to boost your productivity and business performance, delivered weekly by expert consultants. Enjoy step-by-step guides, weekly Q&A sessions, and full access to our AI workflow archive.

    Canva Logo
    Claude AI Logo
    Google Gemini Logo
    HeyGen Logo
    Hugging Face Logo
    Microsoft Logo
    OpenAI Logo
    Zapier Logo
    Canva Logo
    Claude AI Logo
    Google Gemini Logo
    HeyGen Logo
    Hugging Face Logo
    Microsoft Logo
    OpenAI Logo
    Zapier Logo

    Summary

    Krish Kapoor presents his MIT Maker Portfolio, showcasing an innovative project that uses a Raspberry Pi and Python's OpenCV to track a ball in 3D space. The system predicts where a falling ball will land and moves a cup to catch it. Krish experimented with various methods to achieve accurate predictions, including calculating velocities from webcam data and utilizing a Kalman filter. His successful approach involves using coordinate geometry and the ball's apparent size to predict landing points.

      Highlights

      • Krish Kapoor's project, 'Catch Poot', integrates technology and engineering to track and catch a ball in 3D space πŸ€βœ¨.
      • The system employs a Raspberry Pi and computer vision library, OpenCV, coded in Python, showing Krish's programming prowess πŸ’»πŸ.
      • Challenges with 2D webcam data led Krish to cleverly mount it on the ceiling for 3D tracking perspectives πŸ“ΈπŸ”.
      • Kalman filter's initial use for predictive algorithms highlighted challenges in achieving quick, real-time predictions β²οΈπŸ”„.
      • Krish ingeniously utilized coordinate geometry, using the ball's apparent size to accurately predict landing spots and guide the catcher πŸ—ΊοΈπŸ“.

      Key Takeaways

      • Krish Kapoor showcases his ingenious MIT Maker Portfolio project, 'Catch Poot', blending technology and creativity πŸŽ¨πŸ”§.
      • The project uses a Raspberry Pi and OpenCV in Python to track and catch a moving ball, showcasing practical application of computer vision πŸŒπŸ€–.
      • Initially, Krish faced challenges with noisy velocity data from a webcam, leading him to explore different predictive algorithms πŸ“ΉπŸ”.
      • Krish used a Kalman filter but found it too slow for real-time predictions, prompting further innovation ⏳❌.
      • The successful solution involved using coordinate geometry and the ball’s apparent size to accurately predict and catch it in motion πŸ“βšΎ.

      Overview

      Krish Kapoor's MIT Maker Portfolio takes center stage with 'Catch Poot', a project that marries technology and ingenuity. Using a Raspberry Pi alongside the OpenCV library, Krish created a machine capable of tracking a ball through its trajectory and catching it. This involved programming motors to move with precision, a testament to Krish's technical skills and creative problem-solving.

        Initial challenges were encountered with the noisy data from basic webcam setups, sparking a journey into predictive algorithms. Krish experimented with velocity calculations and the application of a Kalman filter to manage these predictions. While insightful, these methods proved too slow for real-time application, forcing Krish to innovate further.

          Through the clever utilization of coordinate geometry and the visual data from the webcam, Krish refined his approach. By assessing the ball's size to determine its path and landing point, he achieved an efficient and elegant solution to the problem. 'Catch Poot' not only showcases Krish Kapoor's technical acumen but also his resilience and creativity in tackling complex challenges.

            Chapters

            • 00:00 - 00:30: Introduction to Catch-Poot Project The chapter introduces the Catch-Poot project, a machine built using a Raspberry Pi and the Open CV library in Python, designed to track a ball in 3D projectile motion and move a cup to catch it. The mechanics involve applying diagonal force vectors to the motors, and the software predicts the landing point of the ball. The webcam was repurposed from a PC for this project.
            • 00:30 - 01:00: Webcam and 3D Data Calculation Challenges In this chapter, the author discusses challenges encountered while attempting to calculate 3D data from a 2D webcam setup. By mounting a webcam on the ceiling, data related to a ball's trajectory is gathered, where the change in the ball's size relative to the webcam's view is used to infer its position. The initial approach to determine the ball's radius included using initial velocities, acceleration, and gravitational radius. However, using a $15 webcam for velocity data produced high noise levels, leading to errors that compounded exponentially.
            • 01:00 - 01:30: Kalman Filter Approach and Limitations In this chapter, the focus is on the Kalman Filter algorithm as a means of generating predictions by processing input measurements to estimate predictions and calculate uncertainties. This process is recursive until predictions stabilize. However, testing reveals that this approach may require more time to reach accuracy, which is impractical in applications where swift movement is needed, such as moving a cup quickly. The final, effective approach discussed uses coordinate geometry, utilizing the understanding that a ball in projectile motion moves linearly in the X and Y axes and only accelerates in the Z axis due to gravity, proving more efficient for the application in question.
            • 01:30 - 02:00: Final Coordinate Geometry Solution In this chapter titled 'Final Coordinate Geometry Solution', the author describes the method for accurately extrapolating data points in the linear path of a ball. Using the parametric equation of a line and sampling a few initial points, they identify the ball's landing points along its path. By using the ball's apparent radius as a measure of height, they create a parabolic fit to predict the y-coordinate where the ball reaches the height equivalent to the target radius of the cup.

            MIT Maker Portfolio Transcription

            • 00:00 - 00:30 my name is chrish kapor and this is my MIT maker portfolio introducing catch poot it's a machine that I made with Raspberry Pi and the computer vision Library open CV in Python to track a ball in three-dimensional projectile motion and move a cup to the correct distance to catch it each motor applies a diagonal Force Vector if it wants to move forward for example it should power the right motor clockwise while the left Motor Works counterclockwise to form the resulting forward Vector I had to write software to track the ball and predict the location at which it would land I stole the webcam from my PC and mounted it to the C although the webcam can only
            • 00:30 - 01:00 produce two dimensional data I mounted the webcam on the ceiling so that I could exploit the radius measurings to produce threedimensional data based on the assumption that if the ball appears larger since it is closer to the webcam it is higher in its trajectory my first approach was to drive an expression for the radius of the ball in terms of the initial ay velocities and acceleration of the radius due to gravity which I calculated experimentally it turned out that calculating velocity data from a $15 webcam produces way too much noise in the data that multiplies rapidly and an exponential function therefore I
            • 01:00 - 01:30 tried another approach which is to use a common filter it's an algorithm that generates predictions by taking an input measurement estimating a prediction calculating the uncertainty and recursively calling this process until the predictions become accurate however after testing this in my application I found that the correction process would take too much time until accurate predictions were made and the cup needed to move quickly my final and working approach uses coordinate geometry I know that the ball in projectile motion travels linearly in the X and Y directions and only accelerates in the Z Direction due to the force of gravity
            • 01:30 - 02:00 therefore I can accurately extrapolate data points in the linear path of the ball with the parametric equation of a line and sampling just a few initial points now all that's left is deciding each point on the linear path the ball lands since I'm using the ball's apparent radius as a measure of its height I can generate a parabolic fit that predicts at what y-coordinate the target radius which is the height of the cup is reached