Trouble designing 2D/3D LiDAR scanner

[u]OVERVIEW OF MY LIDAR PROJECT[/u]

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.

[u]QUESTIONS THAT ARE OF A CONCERN TO ME[/u]

1.)

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? https://www.youtube.com/watch?v=Mz5z_xaB9i8 .

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. https://www.youtube.com/watch?v=mu9R_ucq2Ck

2.)

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.

3.)

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.

4.)

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.

[u]RESOURCES THAT I HAVE CONSIDERED USING[/u]

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 http://opencv.org/ 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 http://www.intorobotics.com/fundamental-guide-for-stereo-vision-cameras-in-robotics-tutorials-and-resources/ . 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 http://www.starlino.com/opencv_qt_stereovision.html for example.

[u]OTHER METHODS I HAVE RESEARCHED FOR MY PROJECT[/u]

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.....

Sonar https://www.youtube.com/watch?v=U-mXsGFW6qs&list=PLE32FFADA68D35F72

Stereo Vision https://www.youtube.com/watch?v=XgHB85Ccky8

3D Laser Mapping processing data into a "Point Cloud" https://www.youtube.com/watch?v=biCn3hucuT4

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 https://www.youtube.com/watch?v=quqF5_ZE_fI.

[u]ADVICE & GUIDANCE[/u]

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.

shanecy: 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.

There is an OpenCV mailing list where you can ask for feedback about the feasibility of the image processing you're proposing.

If/when you know the basic approach is feasible you can start thinking about what resources it's going to need. I'm sure you'll find that a microcontroller is not a suitable platform for this. Unless you have some hidden requirement for this to be portable, I suggest you implement it on a decent spec computer. If you do have some obscure reason for wanting a portable solution, there are some mini computers such as the RPi you could consider. A standard PC would be much easier and better though.

i'm interested in your finding