CAD/CAM discussion forum > 3D CAD/CAM > Point Cloud workflow

Point Cloud workflow

    
  Subscribe Topic

Rank: 1

Kevin

Newbie

posts: 0

Registered: 2004-4-26

Message 1 of 15

 Point Cloud workflow
01-09-2004 07:36 . am   |   View his/her posts only
We have a situation where we have to scan so large parts for a customer so we have accurate surfaces to work to for some new components for the product - there is no CAD data for the existing products BTW. It will be a lot less costly for us (and the customer) if we can use the raw point cloud data from the scanner (optical one). Our service provider for the scanning can provide raw point cloud or for (a lot of) extra cost a variety of surface formats.

Has anyone used the built in VX point cloud surface tools? If so how do they compare to surfaces that you might get from the same data in specialist apps like Geomagic? The end application is not really a fine tolerance critical situation - maybe +-0.5mm on the surface, and what we aim to do is use the scanned surface to trim the new parts so they mate properly.

All input gratefully received!

Many thanks,

Kevin

Rank: 1

OldForumPost

Newbie

posts: 0

Registered: 2012-1-14

Message 2 of 15

02-09-2004 02:58 . pm   |   View his/her posts only
I use the point cloud tool on a regular basis. There are a few tricks that I use to improve the results.
1. Remove any "flyers" from the data set.
2. Determine the best set of surfaces to use for constructing your model. Outline the working boundries for those surfaces with simple splines.
3. Create a basic set of surfaces that conform to those boundries and roughly approximate the final surface shape.
4. Fit the surfaces to your point data. Keep the tolerances low and use a few iterations to ease the surface to the final shape.

Point cloud data is a shotgun approach to measurment. You can make a single surface from the data but it will lack the organization necessary in a cohesive model. Set up your boundries first and the rest of the model will be much easier to work with.

Joe

Rank: 1

ChrisWard2k2

Newbie

posts: 2

Registered: 2011-11-22

Message 3 of 15

08-09-2004 03:26 . pm   |   View his/her posts only
Hi Kevin

You have quoted a tolerance without indicating just how large a large part is. Also, the type of shape makes a big difference. If the part is measured in metres and has "organic" double curvature faces, your tolerance requirement is ambitious. Scanning objects accurately can be difficult, especially if a 360 scan cannot be accomplished in one sweep. If you need to match new parts with existing geometry at specific mating faces, then a digitising arm or CMM used locally on those faces is likely to give you greater success, especially for fastener bosses etc. You can of course use a combination of devices and VX can use multiple sets of data.

Rank: 1

Steve

Newbie

posts: 0

Registered: 2004-3-1

Message 4 of 15

08-09-2004 07:05 . pm   |   View his/her posts only
I have done a lot of this kind of reverse engineering over the years. One issue that always arises is the question of how well your finished surface set matches your original scan data after all the smoothing, trimming, moving and nudging is complete. I wrote a macro a while back that would compare each point in the scan set to the nearest surface in the finished surface model. then it creates a "wisker" (line) extending out from the surface, the length of which is proportional to the deviation for that point. This gives a quick graphical view of the quality of the finished surface model.

There is one piece of technology missing in VX. This is the ability to "best fit" one point cloud to another or best fit a point cloud against an existing set of surfaces. For example, if you have 2 sets of data from two different coordinate systems, this command would be able to move one set into the coordinate system of the other using any overlaping scanned areas. Another example would be to move a scanned point set on top of an existing surface set or solid in order to compare any deviations between the two.

All of the true reverse engineering and inspection software can do this (raindrop geomagic, ICAMP, IQ-formfit, etc.). It is an extremely valuable tool and would probably be easy for VX to implement (I asked for this in VX QA Report 12519 and was told that it could be done).

Steve

Rank: 1

ChrisWard2k2

Newbie

posts: 2

Registered: 2011-11-22

Message 5 of 15

09-09-2004 02:53 . am   |   View his/her posts only
Graphical representation of point proximity to surface is a useful tool (see the macro downloads library for Point Cloud Analysis and CMM data import), but that data is itself only as good as the quality of the scan. Scan quality can be extremely variable, because of the part shape (and condition of the shape surface - many legacy parts are not in optimum condition), the capability of the scanner (range, accuracy, movement control, "stitching" of multiple pass data) and the capability of the scanner operator (the humans often being the weakest link!). In many cases, the scan consists of way too many points for sensible nurbs surfacing. This is often an example of "less is more". It can be useful to set-up the object to be scanned in a support frame or jig that delivers verifiable datum points/planes. This will allow you to align the data accurately in VX. Cloud analysis can reveal areas of point data that may be removed - these could be "flyers" - points the scanner has recorded that are actually no where near the part, or regions of the part that are not required - an embossed serial number on a moulding for example.

Rank: 1

Kevin

Newbie

posts: 0

Registered: 2004-4-26

Message 6 of 15

09-09-2004 05:23 . am   |   View his/her posts only
Sorry, been out and about for a while!

Thanks for the feedback. I should have explained the application better. What we are scanning is the underside of a freestanding bathtub, or to be more precise one half of the tub underside, so the area is maybe only 600 x 600 in size by maybe 300 high.

What we are doing is designing a range of new feet for the tub. At the moment we design the feet and then the toolmaker tweaks the interface to make it fit properly as there is no CAD data available for the tubs at all. This tweaking process takes a lot of time so we are attempting to speed the process up.

I've asked the bureau to supply an existing point cloud for testing in VX against a surface they generated using Geomagic for comparison. I'll let you know my results when I get it. They did seem very interested in the fact that VX can handle point cloud data!

Rank: 1

Kevin

Newbie

posts: 0

Registered: 2004-4-26

Message 7 of 15

09-09-2004 05:35 . am   |   View his/her posts only
I should also add that recently all the work we have been doing is really small stuff and the tubs seem large by comparison!

Rank: 1

ChrisWard2k2

Newbie

posts: 2

Registered: 2011-11-22

Message 8 of 15

09-09-2004 06:55 . am   |   View his/her posts only
Hi Kevin

Depends on your tub :-) Some do have very sophisticated double-curvature surfaces. However, I think it is a relatively straight forward object and so if the scan is good, VX should eat the cloud for breakfast

Rank: 1

Dan

Newbie

posts: 0

Registered: 2002-8-26

Message 9 of 15

09-09-2004 09:09 . pm   |   View his/her posts only
Hello there,

A lot of work is going in point cloud processing in VX. In new versions:

Rank: 1

ChrisWard2k2

Newbie

posts: 2

Registered: 2011-11-22

Message 10 of 15

10-09-2004 04:13 . am   |   View his/her posts only
Regarding finding a "best fit" of the cloud of points to the model faces. Essentially a least-squares fitting problem where eigenvalue and eigenvector calculations are used to define a transformation matrix. Steve put in PCR12519 for this and in fact in our old product, "VX Classic", he wrote a program to do this job.

Bluebit Software http://www.bluebit.gr/ offer a C++ ActiveX (and .Net) component that provide the means to code the function.

Just how important this function might be to the VX Users community is hard to say. For the scanning of most parts, especially if the process is for repeatable quality assurance, some form of structure is required to hold the item still and in a particular orientation. So, even if the part itself does not have any easy-to-register datums, the jig can be used to deliver datum points, for example using Ball Reference Pins.

Rank: 1

Dan

Newbie

posts: 0

Registered: 2002-8-26

Message 11 of 15

10-09-2004 10:02 . am   |   View his/her posts only
Thank you Chirs for your reply.

Are many places where we can find code that help us + we have a lot of relevant skills inside the Company too. We had another chat today about this problem and the problem isn't so simple as it looks.

The most difficult problem is: having only one cloud with a multisession point cloud is pretty difficult to reverse-engineer scanning sessions automatic. Many scanning techniques comes with zigzag, unidirectional (manual and laser scanners) or some greedy random spiralish way (photo scanners) that is pretty difficult to automatic split in patches so here human intervention is required to reverse engineer the patches. After patches are recreated or imported separate some heuristics can be applied to roto-translate back this patches in a best-fit way.

Be aware this kind of fitting will work proper with photo scanners. I saw some horrible artifacts coming from manual scans using mechanical scanners too resampling later in the scanning session some areas that were scanned before are grossly out of tolerance. You can see this in the bottom picture where the red bits (end of the scanning session) come on top blue (start of the scanning session).

In the picture you can see some analysis of a point cloud:
R1.1 stroke analysis - useful for analyzing scanning technique
R1.2 error distribution - useful for viewing errors and eventually quick selecting trusted points.
R1.3 STL rep that is pretty wavy because various scanning sessions comes with bad information  useful for meshing, milling and viewing
R2 Scanning History blue is start of the scanning session, green middle, red end like in QM  useful for analyzing scanning order and eventually sessions.

All this analysis can be done on any point cloud without requiring any information about scanning techinque.

Rank: 1

Kyonghun

Newbie

posts: 0

Registered: 2002-8-28

Message 12 of 15

10-09-2004 04:01 . pm   |   View his/her posts only
Hi all.

It appears that a lot of people have had valuable input on this mater already, so I will just touch on a few things quickly.

The "bathtub" case seems to be fairly suited for our tools. We should be able to generate a surface straight from the data.
There are a few different methods for "smoothing" surfaces available, so a bit of uneveness can be cured also afterwards.

On the "best fit" issue, what ChrisW said is pretty much what I agree with. I was going to come up with some simple
transform matrix for all the points that will put a set of pont in the same frame of reference of another. This should help
compare deviations of one set to another. Stiching one set to another is a bit more involved, as billator has suggested.

As to the laundry list of features billator mentioned, some of them are more useful over others beyond the "wow" factor, so some
will get eventually implemented, if not necessarily the way he described it. As a start, we now have "proximity check" of
a set of points to a given surface, which will generate a color coded point cloud that reflects their fit distance to the surface.
The result of this then may be used to edit the data further for better surface quality.

And yes, there are several new commands to work with point cloud data for v10.x and v11.0 as billator has suggested. They were
designed to help users to go from point cloud/STL data ->Facetted display->Sectioning->Surfaces to accomodate both those who
simply want to machine scanned parts directly off STL data and for those who'd like to model surfaces off the imported geometry.

Rank: 1

Steve

Newbie

posts: 0

Registered: 2004-3-1

Message 13 of 15

13-09-2004 01:10 . pm   |   View his/her posts only
Hi all.

I think you guys are underestimating the value of the best fitting technology, especially best fiting a point cloud against a surface set. It's one of those things that is hard to do without, once you've tried it. If you can give us a graphical representation of the point cloud proximity to some surfaces, why not the transformation matrix that moves the cloud to the surfaces?

I think Chris and Billator are right about the limited use of this for registering multi-scan point sets. But I'm much more interested in the ability to move a point set against a surface set.

For example, you scan a surface that looks a lot like a piece of a cone. You make a quick guess as to the size of the cone based on the point set and generate the surface as a primitive or revolved sketch. Then perfom a best fit of the point set and see if you're within a comfortable tolerance of the actual data. The results for this type of reverse engineering are far more useful than lofting surfaces through point sets because the end result is well understood editable geometry. You can even "improve" the result of the above example by adjusting the cone angle to some useful number. For example, the point set generated frome one sample part creates a conical surface of 30.2 degrees. You guess that the designer used 30 degrees on the original drawing. You make the cone angle 30, do the best fit and determine that your guess is "correct" because all points are within +/- .030 inches to a perfect 30 degree cone (I'm assuming that the manufacturing tolerance for whatever process made the part is +/- .030).

Remember, this is a much more useful result - more predictable machining, parametrically editable, no annoying waviness, etc. and it is a better representation of the original design intent. Also, you could perform the same technique on several parts and use simple statistical techniques to come up with a far superior CAD representation of the product.

Without the best fitting of point cloud to surface, you end up spending hours manually nudging point sets and surfaces around to see if they match.

steve

Rank: 1

Dan

Newbie

posts: 0

Registered: 2002-8-26

Message 14 of 15

13-09-2004 01:52 . pm   |   View his/her posts only
I fully agree with you Steve here.

Is nice to have this advanced facility in the product.

The points can come from different files or is need it a friendly splicing utility too?

Very often 10..20 scanning sessions (partial clouds) are crowded in one file. I append here an example where splicing is quite obvious if historical analysis is done on a cloud. In this cloud all sessions are crowded in only one file and an automatic way of detecting sessions is difficult to imagine but a human mind can reverse engineer easy scanning order (blue -> red). Is difficult because isn't zigzag is unidirectional so distances between ends are big. In zigzag case is pretty trivial and predictable to do it automatic. wallSpan.gif shows the stroke analysis that infere the undirectional aspect that makes the problem more difficult.

Rank: 1

ChrisWard2k2

Newbie

posts: 2

Registered: 2011-11-22

Message 15 of 15

14-09-2004 02:55 . am   |   View his/her posts only
Hi again

This reply is for the benefit of the people that are following this thread to learn more about the reverse engineering possibilities that VX has to offer - I know you are there even though you have not contributed to the thread.

From a practical standpoint, it is reasonable for the Users to decide if all the scan data should be a single file or several separate ones - this is best judged by the people "at the scene of the crime". Often, it is going to be easier for the CAD User if the point cloud data arrives in separate files - not just because of any orientation adjustments necessary, but also because it is easier to identify "flyers" and null data, and it is faster to work with smaller clouds, one at a time. However, the VX User has now got a superb collection of tools to manipulate large point clouds, including seperating one to many.

Steve's description about reverse engineering the cloud with parametric surfaces/shapes is a good use of the data. I would advise customers to consider the data collection method carefully though. Scanning produces a large amount of points. If the nature of the part shape is rect-linear (i.e. features can be described with cylinders, cones, extruded blocks etc), then scanning is often not the best choice. Using a Romer Cimcore, Microscribe or Faro digitising arm is simpler - if used to produce only points, you are not producing a cloud but key points that are easily used to define primitive geometry. The Romer is integrated with VX to define wireframe geom (as the basis of surfaces/shapes) directly, "on the fly".

For quality control (SPC, Inspection), it is possible to build a reliable, accurate work-holding structure and use a CMM machine to measure key points. The CMM can be programmed to run automatically and VX can be programmed to test this data automatically against the original design geometry.

It might be that for a particular part, a combination of data collection methods would be best. In such cases, a reliable work-holding structure is essential. Some very useful, re-usable "jig kits" have evolved from the CMM world and can be equally useful to digitiser arm and scanner applications.

Some useful links (provided for your information - VX Corp cannot accept responsibility for the content of these websites, and this is a very short list for a very large industry):

Laser Scanners

Konica Minolta Cyberware Desktop 3D Scanners Shape Grabber

Optical (Non-laser Structured Light) Scanners/3D Cameras

Breuckmann Optotechnik Genextech Rainbow GOM Atos

Digitising Arms

Romer Cimcore Faro Microscribe GOM Tritop non-contact system

CMM

Mitutoyo Brown & Sharpe Sheffield Zeiss

Modular Work-holding Systems

Alufix OmniStructures Rayco

See also
X