MENU

Robockey

Autonomous mobile robots for a 3v3 robot hockey tournament consisting of 30 teams. Each of the autonomous mobile robots was constructed with laser-cut acrylic and powered by two 600mAh 9V batteries — one for motor power, and one for logic. Each localizes its position similar to how a Wii Remote does from a global reference, and also detects an infrared-emitting puck using phototransistors spread around its bottom. Solenoids were used to shoot the puck. Programming was done on an AVR microcontroller, and PID controls were used to drive the robots. The overall code was organized as a Finite State Machine. My role involved implementing the electronics and contributing to the driver, localization, and control algorithms. Video 1, Video 2 GitHub MEAM 510 Design of Mechatronic Systems final project Collaborators: Nicholas LaBarbera, Sean Reidy 12/12/13  
Read More ›

Face Detection & Replacement

And then there was Obama. The nefarious, Panoptic forces of the Internet had finally won, our lives categorized and remapped into submission unto his Holiness. Histogram of Gradients (HOG) was applied for obtaining face descriptors, placing pixel gradients into orientation bins from 0-180° to generate a histogram. To learn face HOGs, SVM was used to train a model for classification of faces based on 6000+ faces and 170,000+ not-faces for training data. Face replacement was done by detecting facial parts to obtain control points for Thin Plate Spline (TPS) morphing. Then, Poisson blending (third-party code) integrates the desired face into the image. My primary role was writing the HOG algorithm and implementing SVM. GitHub CIS 581 Computer Vision & Computational Photography final project Collaborator: Aayush Gupta 12/21/14
Read More ›

Acrobat

The Acrobat was constructed out of laser-cut acrylic and uses two Pololu 29:1 20D gearmotors and an AVR microcontroller to adjust its movements. An accelerometer is used to estimate its off-angle, and PID controls were implemented to keep its balance. My role involved contributing to the electromechanical design as well as the PID controls programming. Video MEAM 510 Design of Mechatronic Systems project Collaborators: Nicholas LaBarbera, Sean Reidy 11/11/13
Read More ›

Canny Edge Detection

Implementing the Canny edge detection algorithm: Introduction to seeing the world as computer does A quintessential computer vision algorithm, I implemented my own Canny edge detector to detect edges within an input image. The algorithm revolves computing pixel gradients across an image via convolution. Afterwards, steps include non-maximum suppression of pixel values and linking edges (involving dynamic programming and hysteresis). GitHub CIS 581 Computer Vision & Computational Photography project Collaborator: Aayush Gupta 09/14/14  
Read More ›

LED Light Painting

Translating the digital into the analog, if ephemerally, through long exposure photography and robotics. Much cool. Upon solving the inverse kinematics of a PUMA 260 robotic arm, my team and I implemented an algorithm that reads any input image and translates it into the appropriate robot movements and RGB LED values to capture a long exposure photo of that image. MEAM 520 Introduction to Robotics project Collaborators: Carder House, Jordan Martin, Sean Reidy 10/21/14
Read More ›