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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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:
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.
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.
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.
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.
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
Hi Tobias,
Quoting Tobias (2018-08-08 14:27:41)
yes.
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.
The best documentation is the --help output and the content of the doc
directory.
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.
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.
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