Laser Scanner ideas in my head.

7 views
Skip to first unread message

Joseph Dunfee

unread,
Jan 26, 2011, 9:12:48 AM1/26/11
to berks-hac...@googlegroups.com
Tony, thank you very much for making this meeting happen.  I hope to be more involved in the future.

I had some thoughts about a laser scanner that have been on my mind for a while, and I am afraid I may have just dumped a bunch of them on you in an unorganized way, before I even totally understood the details of your scanner project. I understand that creating a good program takes a lot of time, and seeming minor changes can actually require a lot of work.

I realize that I am a person who has fun thinking about these things. Even if my thoughts never get physically realized, I enjoy the thinking process.I do have great respect for people like you who actually make their ideas happen. Perhaps I can experience more of that myself with this group as a catalyst for me.

Regarding the scanner, here are my ideas.  But, I do so with the attitude that these are casual suggestions.

HARDWARE;

Many scanner projects are married to some sort of electronic hardware that most potential users can't create.  The makerscanner is a wonderful example of a program that doesn't do this.  Someone with cardboard and tape could rig a set-up if they wanted to, except for one major issue.  I think the program require one specific camera, and didn't mention the possibility of using any other camera.  So, you are now back at using special hardware, though at least it is fairly low cost.

For your own program, consider allowing for any camera to be used. Also, allow for the use of pre-recorded video of scans or even a series of still shots.

Regarding the turntable, perhaps there is a way for the user to do a very minimal hardware turntable.  I.e. can they use an unmodified record player by simply setting it at 30 rpm? (make the rotation period a user setting). 

METHODS OF INDEXING A TURNTABLE WITH AN UNKNOWN ROTATION RATE;
  • I discussed a retro-reflective target at the meeting.  Perhaps if the user can point on the screen where the target reflector is located.   Then the software can just look at that spot and wait for a bright flash.
  • Another type of trigger might be a mechanical switch made from the buttons connections in a hacked mouse.  Anyone with very minimal hacking skills might be able to convert this to a mechanical trigger to indicate rotation. 
  • Perhaps an optical mouse can be used to track rotation. I.e. the user manually rotates the turntable, with the mouse mounted so that it rides above the surface or side.

ALLOW FOR DIFFERENT SCANNER/LASER SETUPS;
  •   Turntable
  •   No turntable, but steadily rotating laser.
  •   A linearly moving object, or laser plane. (i.e. on a drawer slide)
  •   User can choose laser color.

MERGING MULTIPLE SCANS;
 
Since is almost impossible to get all of an object with one scan, there needs to be a way to merge point-clouds.  The David Scanner has a module for this, and it just does it by pattern matching.  Perhaps just purchasing this software is the simplest answer.

One method is to use a non-motorized turn-table with marks at each 90deg point.  The user would manually turn it to each of the 4 positions and do a scan.  In the program, the user would manually type at what angle each scan was done at.

A more complex method involves the use of three targets.  I like this idea the best because it allows the user to be totally unrestricted in the position they do the scan from.  Every nook-and-cranny can be scanned. The targets can be round colored marbles or small balls of clay placed on the ground by the model. The reason they are round, is that they will be easy for the software to locate their centers from any point of view. The user can manually point them out in a picture, which would make any coding for this much easier than trying to write code to search for these targets. If the user provides a measurement between two of the targets, then you can use that to set the size of the scanned object.  If there are more than 3 targets, then it allows for situations where some of the targets are obscured.  The user would have to point out which target is what number, and as long as any view has 3 of the targets in sight, it can register the point cloud to the other ones.

--
Joe Dunfee
163 Maple St.
Gordonville, PA 17529
717-203-8670
cadc...@gmail.com

Tony Buser

unread,
Jan 26, 2011, 2:40:33 PM1/26/11
to berks-hac...@googlegroups.com
Hey thanks, these are all good suggestions.  We've been kind of using this page on our wiki to post ideas and information: http://wiki.berkscolab.org/wiki/3D_Scanner And as you can see it's kind of a jumble of ideas because there are so many different ways 3D scanning can be accomplished.  What I need to do is clean up that page and outline the single approach I'm taking...

What I am doing is a combination of http://scandraid.sourceforge.net/ (which I still can't get to run right) and http://www.splinescan.co.uk/ (which is unfortunately a dead project).  The difference is what I'm working on will be MUCH easier to build and run cross platform on windows, linux, and mac as I am writing it in Processing (Java).  This won't be tied to any specific hardware and would work with any webcam/video source/laser line.  The turntable design will be 3D printable and the electronics/stepper motor are Arduino powered and easily obtainable.  However, a turntable wont be required.  It will however only do 360 degree laser scans -> point clouds.  It will just need either a video, series of images, or a live webcam of an object on a  turntable moving at a constant rate.  I don't plan on tackling merging multiple scans from different angles, since I don't even know where to begin to solve that problem and I want to keep things as simple as possible.  I'm hoping other software will one day be able to do that for me (like Meshlab or Blender).  I'm not interested in DAVID Scanner because it is closed source, expensive for high quality, and windows only.

I'm calling the project Spinscan and I've shared the basic Processing code to track a laser line in a video on github here: https://github.com/tbuser/spinscan
Reply all
Reply to author
Forward
0 new messages