Menu

SLAM6D applicable for mapping of caves?

Help
Tobias
2018-08-08
2018-08-14
  • Tobias

    Tobias - 2018-08-08
     
  • Tobias

    Tobias - 2018-08-08

    Hello,

    I'm absolutely new to the topic SLAM, so maybe some questions sound stupid. Sorry for that.

    I live in Bavaria, and I like to visit caves in the region of Altmuehltal.
    I would like to use a Lidar (in particular: RpLidar A2) to scan the caves.
    Since this is just a hobby project, I have to keep costs low for both hardware and software. Therefore I'm happy that I found a free option with 3DTK/SLAM6D.

    I'm quite good with microcontrollers and hardware, so I will add a stepper motor yor the Y axis to the RpLidar, which will convert it into a 3D scanner. I will also add MEMS sensors (gyro, compass...) to get more data. Of course there is no GPS signal inside a cave for positioning.

    What I have in mind:
    Create a lot of single 3D Lidar scans, and convert them into one single 3D point cloud using SLAM6D.
    Can SLAM6D do this job for me?

    Is the scan data enough to create the final point cloud, or is there additional information needed? I read about "pose" files giving hints on the position where the scans were taken. I thought it's one of the basic ideas of SLAM that such a positioning information is NOT needed?

    So to sum up my questions:

    1.
    Where is the latest official documentation? For example, I found some compiling instructions on a website, but it seems to be overruled by information of text files in the source code archive. Is there a manpage of the tools with detailed explanation of the parameters?

    2.
    Is SLAM6D suitable to create a 3D model of a cave?

    3.
    Beside the Lidar 3D scans, is additional information about scanner position required for each scan (pose file)? If yes: Since it's hard to get the position in a cave: can my other sensors (acceleration, gyro, compass) be used to support the SLAM process?

    4.
    What would you guess is the recommended distance between the scans? For example, if the cave is 2m in height and 2m wide and has a length of 100m (quite curvy of course), how many 3D scans would I need?

    Thank you,
    Tobias

     
    • JoSch

      JoSch - 2018-08-14

      Hi Tobias,

      Quoting Tobias (2018-08-08 14:27:41)

      What I have in mind: Create a lot of single 3D Lidar scans, and convert them
      into one single 3D point cloud using SLAM6D. Can SLAM6D do this job for me?

      yes.

      Is the scan data enough to create the final point cloud, or is there
      additional information needed? I read about "pose" files giving hints on the
      position where the scans were taken. I thought it's one of the basic ideas of
      SLAM that such a positioning information is NOT needed?

      Suppose you have two scans that only slightly overlap. If you then don't have a
      position estimate, then it might be impossible for any algorithm to determine
      how your scans are supposed to be connected. If your scans have a large
      overlap, then initial pose estimates are still a great thing to have but you
      might be able to do without them if you tell the software to also consider
      point-pairs with a large distance from each other. You might still have the
      problem that ICP converges on the wrong local minimum.

      So to sum up my questions:

      1. Where is the latest official documentation? For example, I found some
        compiling instructions on a website, but it seems to be overruled by
        information of text files in the source code archive. Is there a manpage
        of the tools with detailed explanation of the parameters?

      The best documentation is the --help output and the content of the doc
      directory.

      1. Is SLAM6D suitable to create a 3D model of a cave?

      By 3D model, do you mean a 3D mesh? We had a GSoC student who implemented a
      meshing algorithm but I don't know how far he got.

      1. Beside the Lidar 3D scans, is additional information about scanner
        position required for each scan (pose file)? If yes: Since it's hard to
        get the position in a cave: can my other sensors (acceleration, gyro,
        compass) be used to support the SLAM process?

      The compass will be a big help because ICP will perform much better if all
      scans are oriented in the right way and don't have to be rotated first. An
      accelerometer is also useful to make sure that you always know where "down" is
      and again have your scans correctly rotated.

      For determining how far apart the scans are from each other or how they are
      arranged, your IMU might not be of any help because of how imprecise its
      measurements will be.

      For situations like this, continuous scans might be another option for you.
      Also called mobile mapping or continuous time slam. Essentially, you would have
      the scanner rotating and taking scans at all times and would stitch them
      together correctly later.

      If you want to go with multiple single scans (which are far better understood
      and where the result will also be more precise) then if your cave is
      essentially on the same height (and not going up and down) then you could have
      a horizontally scanning 2D scanner with you, which is scanning all the time and
      creates a 2D map of your cave. You could use that 2D map to have a good pose
      estimate for your 3D scans.

      1. What would you guess is the recommended distance between the scans? For
        example, if the cave is 2m in height and 2m wide and has a length of 100m
        (quite curvy of course), how many 3D scans would I need?

      Depends what kind of curves and how many curves you are talking about. Each
      scan should have a large overlap with the last scan.

      Also note, that if the first scan does not overlap with the last scan, then
      errors will accumulate from the first to the last scan and the final 3D point
      cloud might me overall skewed.

      Good luck!

      cheers, josch

       

Log in to post a comment.