s'21 Internship: Ping Pong Ball Grabber

Final Demo


About the robot

Task: Create a robot capable of finding, identifying, and grabbing an object of choice
Hardware: Microcontroller, TurtleBot3, OpenManipulator, OpenCR, Intel Realsense Depth Camera
Software: ROS, C++, TensorFlow (Faster RCNN Inception v2)

Mobirise Website Builder

Demonstrating the power of depth camera running Faster RCNN.

Identify the Object

Given an object that is categorized by RCNN, find the exact position of the object relative to the camera. Here, the camera is only looking for a cup and not any other object. We can see the terminal calculating the (x,y) coordinates in pixels. the Z value is the depth in meters. Using this information I was able to calculate the height and width of the object using some basic trig. 

Mobirise Website Builder

Entire Robotic Setup

Using ROS and a little logic...

I was able to use the OpenManipulator to grab the object based on the results of the depth camera. The TurtleBot3 would move until the depth camera recognized it was in range of the arm. The arm would then grab the object and the TB3 would return home. Each component communicated its own telemetry to the RB5 over ROS topics. Multithreading ensured mutual exclusivity between each component enabling the RB5 to prioritize running model. 


DNA Sequence Alignment with C++

Mobirise Website Builder

The Needleman Wunsch algorithm

Using the Needleman_Wunsch algorithm, I compared biological sequences to determine similarity. Using a bottom up approach paired with functional programming, I was able to efficiently calculate the percentage of relation between two human DNA sequences.

Roller Coaster on Neptune

Video Description

Open GL

Using C++, basic OpenGL libraries, and nothing more, I created a rollercoaster on Neptune. The shape of the roller coaster was determined through a pre-set spline equation. Everything else was rendered using OpenGL. 
A cool feature I added was that the colors actually represent the slope of the spline. This is done on all four walls of the spline. 

This was one of my favorite projects. 

Parallel Compute Image Compression

Mobirise Website Builder

Image Description

Project Basics

Parallelized two different algorithms using CUDA.
1) Fractal Compression: Finds similarities in an image by performing affine transformations on smaller blocks of an image
2)Run Length Encoding: Lossless data compression where similar pixels are grouped as one. 

These two image compression algorithms can easily be parallelized to see vast improvements in performance. 

Mobirise Website Builder

Original

Mobirise Website Builder

Fractal Compression Result

Created with ‌

Website Builder Software