OVERVIEW OF MY LIDAR PROJECT
Three of us are attempting to build a 2D LiDAR (Light Detection and Ranging) system to scan an indoor area or tunnel system. The data will be used to reconstruct a 2D image. If 2D is accomplished within our timeline we will proceed in designing a 3D system. Our end goal is to integrate it into an obstacle avoidance system but our timeline is too short to accomplish this so our focus will be on developing 2D/3D mapping system.
QUESTIONS THAT ARE OF A CONCERN TO ME
Which strategy in using the laser will be better in generating data to produce a reconstructed image "map". Such as....
Do I invert the laser beam to where it's a line that reflects off objects/corners then process the data through an edge-detection algorithm to reconstruct a map? Example .
Do I just use the single beam to scan multiple points using "time of flight" strategy to calculate distance to create a point cloud map. Example
3D LiDAR scanners are extremely expensive and the project requirements state 70% of the project needs to be built. In other words I cannot just go out and buy a scanning device.
So whatever strategy I use I have to be able to make multiple scans taking in a extremely large amount of data points. This would mean I would have to use a MCU that could extract and calculate all those individual scans and I just don't see that happening with a Arduino or even a FPGA. From previous sensor projects i've done i've always experienced delay even using XBEE's to transmit the data to my computer to be processed.
What MCU will be powerful enough to capture this data (RaspberryPi,BeagleBoard,Arduino,FPGA). Will I need to share the load and transmit the data to my computer for image reconstruction. If so what type of transmitter/receiver will do this without a huge delay.
2D and 3D reconstruction requires some heavy duty algorithms. Therefore, having a prebuilt library or software that has this built in would significantly save time.
RESOURCES THAT I HAVE CONSIDERED USING
Matlab seems to be used in reconstructing and mapping images through using edge-detection algorithms. There are several toolboxes Matlab sells that deal with image processing. However, I don't believe I could use Arduino,RaspberryPi,BeagleBoard,etc with Matlab unless I transmitted the data to my computer for processing inside Matlab.
OpenCV located HERE is a open source C++ library that is for "Computer Vision". It has a library full of functions for image processing. It is compadiable on Window,Linux,Unix systems also. However, I don't think I could use it with a LiDAR system. OpenCv is used for Stereo Vision. For more information take a look HERE. At the bottom of the link there are some great tutorials explaining how to use two webcams to acquire 2D and even 3D reconstructed images like HERE for example.
OTHER METHODS I HAVE RESEARCHED FOR MY PROJECT
The overall scope of this project is to reconstruct a 2D "3D if time allows" reconstructed image "map" of the entire scan from start to finish. Even though the end goal would be to incorporate this into an obstacle avoidance system I have to consider a method that meets the requirements I mentioned earlier. Other methods I've considered are as follows.....
Stereo Vision (Example)
3D Laser Mapping processing data into a "Point Cloud" (Example)
I'm not for sure what this video is demonstrating as in whether its using LiDAR or Sonar. But it's using SLAM "Simultaneous Localization and Mapping" alogrithms to generate a 3D map. This seems to be theclosest idea we are trying to simulate.(demo).
ADVICE & GUIDANCE
As you seen the sonar method looks very nice and would match the end goal of our project. However, Stereo Vision would allow me to use OpenCV which is free and open source on a platform like the RaspberryPi or BeagleBoard. I could technically use Matlab also with Stereo Vision. However, LiDAR seems very promising and something that would require more hardware design which would meet the requirements more.
Any guidance/information anyone has for me on where I could find more information or just advice on what direction I should take would be extremely helpful and appreciated. Our current funding for our project is at $3000. We are going to the approval board here in 2 weeks and everyone in the group is having a hard time deciding on what direction would be more approachable. Therefore, hearing some other input would be very useful at this point.