Alignment of Highway Bridge By its Supports
Posted: Fri Mar 06, 2020 3:07 pm
Hi Daniel (or anyone else reading this post),
I'm new to CloudCompare and I'm having a couple of registration issues... I think. I'm trying to measure the deflections on a small highway bridge using point clouds in CloudCompare - one point cloud where the bridge is not carrying a load, and another point cloud where the bridge is carrying a load (which is static for this test). The general idea is to register the two bridges together and do a Cloud to Cloud Distance comparison. We have sensor data that gives us the exact measurement of the deflection at various points along the bridge, and I'm trying to compare my results to this "correct answer" from the sensor data.
Where I’m having trouble is that I need to register the two point clouds only at the ends (supports) of the bridge – I think.
The first iteration of the C2C calculation, I aligned the entire point clouds, but the results from the C2C distance calculation were all over the place. I think that the ICP algorithm aligned the two point clouds to minimize the distances between points (which is actually not what I want - I want to preserve the distances, which are highest at midspan, due to the deflections on the loaded bridge).
For the second iteration, I segmented out everything except for the supports (at the end of the bridge) for each point cloud, and I did the alignment based off of only the supports. Then, for the point cloud of the unloaded bridge (which was my reference cloud), I merged the “segmented-out” portion of the point cloud back to the supports. I made no translation/rotation adjustments to this “segmented-out” portion of the cloud because I assumed that having its supports as the “reference” did not move any of those points during the registration, and I also assumed that the “segmented-out” portion of the point cloud did not move during the segmentation process or during the registration of the supports.
For the point cloud of the loaded/deflected bridge, I used the transformation matrix information to put the “segmented-out” portion of the deflected bridge back to its supports, and merged these “deflected” point clouds back together. I then proceeded with the C2C distance comparison. Although the results were significantly better, they were still off by an order of magnitude (which is actually less than it sounds based on the scale that we’re working with), and it seemed as though the registration was off on its rotation (which is a qualitative assessment from looking at the scalar fields).
Of note, I did this process for the rough registration/alignment (where you pick 4 point pairs) AND the fine registration. Also, I left the default values for the error tolerance on the registration.
Based on your knowledge of CloudCompare, do you have any suggestions for ways to improve the registration, or any suggestions for changes to my process?
Thanks, and I apologize for the long post.
I'm new to CloudCompare and I'm having a couple of registration issues... I think. I'm trying to measure the deflections on a small highway bridge using point clouds in CloudCompare - one point cloud where the bridge is not carrying a load, and another point cloud where the bridge is carrying a load (which is static for this test). The general idea is to register the two bridges together and do a Cloud to Cloud Distance comparison. We have sensor data that gives us the exact measurement of the deflection at various points along the bridge, and I'm trying to compare my results to this "correct answer" from the sensor data.
Where I’m having trouble is that I need to register the two point clouds only at the ends (supports) of the bridge – I think.
The first iteration of the C2C calculation, I aligned the entire point clouds, but the results from the C2C distance calculation were all over the place. I think that the ICP algorithm aligned the two point clouds to minimize the distances between points (which is actually not what I want - I want to preserve the distances, which are highest at midspan, due to the deflections on the loaded bridge).
For the second iteration, I segmented out everything except for the supports (at the end of the bridge) for each point cloud, and I did the alignment based off of only the supports. Then, for the point cloud of the unloaded bridge (which was my reference cloud), I merged the “segmented-out” portion of the point cloud back to the supports. I made no translation/rotation adjustments to this “segmented-out” portion of the cloud because I assumed that having its supports as the “reference” did not move any of those points during the registration, and I also assumed that the “segmented-out” portion of the point cloud did not move during the segmentation process or during the registration of the supports.
For the point cloud of the loaded/deflected bridge, I used the transformation matrix information to put the “segmented-out” portion of the deflected bridge back to its supports, and merged these “deflected” point clouds back together. I then proceeded with the C2C distance comparison. Although the results were significantly better, they were still off by an order of magnitude (which is actually less than it sounds based on the scale that we’re working with), and it seemed as though the registration was off on its rotation (which is a qualitative assessment from looking at the scalar fields).
Of note, I did this process for the rough registration/alignment (where you pick 4 point pairs) AND the fine registration. Also, I left the default values for the error tolerance on the registration.
Based on your knowledge of CloudCompare, do you have any suggestions for ways to improve the registration, or any suggestions for changes to my process?
Thanks, and I apologize for the long post.