Car Collision Prevention Project – FPGA or Raspberry Pi?

My senior design project as an electrical engineering student is to build a system that prevents car collisions. It started off as a very simple project that alerts drivers if they’re approaching an object quickly but grew into a big project that involves advanced image processing and interviewing to prevent crashes.

Looking into possible approaches for the project, I first looked into various methods to measure distance to objects ahead of the vehicle in use. Using an ultrasonic device was obviously not an option due to its poor range. The second alternative was a module which measures distance. This module reflects light and, using the reflected light, calculates the distance to the object the light reflected off. The issue with this approach is that it only the distance to a specific point which isn’t ideal since the vehicle could be approaching an object outside that point but is still in the trajectory of the vehicle.

The best approach is to use two cameras, allowing us to have stereoscopic vision, where we have a depth map. We would then be able to use this map to check for how fast the distance is decreasing and use that data in order to perform necessary actions to prevent a collision.

The next step in our decision process is deciding which set of technologies we should use to implement our system. One approach is using a Mojo board, allowing us to use FPGA. The issue with this approach is developing and debugging our system which is FPGA based would be complex as we would ideally have to output our map (pixels that represent distance to objects) out on a display and, even if we used a video controller, it would be still very time consuming to implement.

The second and more reasonable option was using a Raspberry Pi and developing custom software that integrates the data coming from usb cameras and controlling additional hardware that deals with the collision prevention. We will end up using the Raspberry Pi for our project as it is more efficient to implement the computer vision algorithm since we can use a higher level language. This will also allow us to have more time which we will use to tackle the actual hardware the deals with the collision prevention.