Death by Kinect

  • Overview
  • The Two Robots
  • Team Members
  • Team Contributions
  • Documentation
  • Pictures and Videos

Project Overview

The purpose of the project is to visually demonstrate in a real-time system the performance gains of leveraging the parallel processing of a many-core architecture. The system uses the performance of computation intensive computer vision algorithms to measure the speed-up between a single-core and a parallelized implementation. The project performs a comprehensive analysis of the parallelism of automatic target recognition and object tracking algorithms running on a many-core system.There are two main objectives for this project. One objective of the project is to be able to parallelize a portion of a program on a GPU (NVidia CUDA) to see an improvement in the amount of data that is processed in the same amount of time as a result of the parallelization. Another objective is to implement two autonomous systems to use as the basis for the parallelization tests. Each system will be built using already existing technologies. One system will be a target drone that will be avoiding a projectile that is shot at it. The other system will be a stationary robot that will recognize the target drone and fire a projectile at it. The novelty of the project comes from combining disparate technologies for the purpose visually demonstrating the effects of parallelization.The optimization strategy to leverage the many-core architecture is to replace time-sensitive functions. The functions identified relate to the object detection and tracking. The OpenCV library is used to provide both capabilities. Fundamental matrix calculation functions will also be replaced with massively parallel versions. These optimizations will have a direct impact on the Missile Turret Platform hitting the Target Drone and the Target Drone System evading the projectile threat.

Two Robot Platforms

Target Drone Platform

    • Kinect for RGB and Depth
    • Open CV for Object Detection
    • ArduPilot Mega to Control Servos on Traxxas Car
    • Ion Atom Motherboard
    • Microsoft Robotics Developer Studio, Kinect SDK

Turret System

    • Kinect for RGB and Depth
    • OpenCV for Object detection/tracking
    • Arduino to control Servos for Turret
    • Ubuntu 10.04 & Libfreenect

Team Members

    • Gabriel Silva
    • Nicholas Moulin
    • Anthony Russo
    • Craig Hartmann
    • Duc Tran
    • Nadim Hoque

Team Contributions

  • Developed an object detection and tracking algorithm in OpenCVLibusb driver to control Turret and Servos
    • Convert depth disparity to distance
    • Kalman filter for prediction accuracy
  • Created a firing solution
    • Calculate the rotation of the turret from position data
  • Assemble projectile avoiding car
    • Integrated solution for multiple voltage/power components
    • RDS based service oriented solution
    • Projectile detection, tracking and avoidance algorithms

Documents

Final Presentation

Final Poster

Source Code

Car Tech Sheet