Menu

global matching on vlp 16 data from UAV

Help
2018-04-09
2018-04-18
  • Marek Pierzchala

    Hello,
    I am trying to run global matching on the prealigned dataset from UAV scanning using vlp16. The scans are prealigned with use of EKF filter based on RTK data with IMU. At the moment when trying to run the program it registers all the pointcloud to an area of a single scan, stacking them on top oe eachother. Is there ay specific parameter setup i should be running to get this registration right or perhaps there is something wrong with the dataset. Scans are aquired from the air facing down which results in long and narrow footprint. I can share the data for inspection.
    I am using I option and -p but so far i dont get any good looking results
    Is it possible to set some constraints on ICP translation is there is such in the algorithm?
    Marek

     
  • Dorit Borrmann

    Dorit Borrmann - 2018-04-09

    Hello Marek,
    if you use the option '--anim=1' and visualize the data with show afterwards, you can click on 'Animate' to the what the algorithm does in each iteration. This should help with identifying where the problem is. It could be with the prealignment (or your dataset in general) or with the parameters for the registration.
    Best regards,
    Dorit

     
  • Marek Pierzchala

    Hello Dorit,
    Thanks for this tip on using animate for debugging.
    This is the command i used:
    slam6D -L 0 -I 500 -p -G 1 --anim=1
    It seems like there is a sequential matchin performed which wasnt enabled and in the end at the global optimization step. Until global optimization, everything looks quite ok but after 8 global iterations (initial sum of position differences about1500 down to 230) evverything gets stacked.
    Results can be seen under this link:
    https://youtu.be/BeFs_EsvHrQ?t=15s
    Regards,
    Marek

     
  • Dorit Borrmann

    Dorit Borrmann - 2018-04-16

    Hello Marek,
    if I interpret your data correctly, the scanner scans the profile, i.e. it is mounted in a way that it rotates around the axis of the movement of your UAV. This is a challenging setup for the global optimization. Just imagine you are flying over a completely planar surface, all your scans would look exactly the same. With the initial pose estimate these identically looking scans have a small (correct) offset, due to the limited field of view of the scanner. In the matching step, all the non-overlapping points from the new scan will have their closest correspondences at the edge of the old scan and will thus slowly force the scan to move into that direction until both scans lie exactly on top of each other, exactly what you see in your video. If your surface is not completely flat, having enough points on the "features" could prevent that from happening. But even in this case it requires fine tuning of the paramters, most importantly the -d and -D for the maximum allowed distance between point pairs.
    About the sequential matching, it is enabled by default. You can disable it by setting the number of iterations to -i 0.
    Best regards,
    Dorit

     
  • Marek Pierzchala

    Hello Dorit,
    Thanks for your suggestions.
    So I have made changes to the command and also I used different dataset. This dataset is richer in features and also scanner was mounted at a different angle so that it would capture greater field of view. Given the high frequency of the scanner I exported 3d files with concatenated 5 recent scans with the assumption of a minimal drift. Later I have used several configuration to get the result running. This is the one I guess should yield some result for this type of data:
    slam6D -i 0 -G 1 -D 5 -I 20 -L 4 -m 1 --epsSLAM=0.1 --anim=1 /mydataset

    But depending on different setup it is either returning Segmentation fault or at the global optimization it outputs Error calculating covariance matrix. With multiple attempts I get just one global optimization which does not do anything and then program ends.

    Can you perhaps suggest a command I can start with?

    Regards,
    Marek

     

Log in to post a comment.