pose is position and orientation and the .pose files contain a line for
position (x,y,z) and one line for orientation (theta_x, theta_y, theta_z).
The first scan usually defines the coordinate system (project coordinate
system) and the point clouds are given in their own scanner own
coordinate system.
For TLS initial pose estimates could be given for example by GPS.
when I run the command : bin/slam6D -s 0 -e 1 -r 10 -i 100 -d 75 -D 250 --epsICP=0.00001 -I 50 --cldist=750 -L 0 -G 1 --anim=1 dat/randersacker
and the results are as follows:
slam6D - A highly efficient SLAM implementation based on scan matching
with 6 degrees of freedom
(c) University of Wuerzburg, Germany, since 2013
Jacobs University Bremen gGmbH, Germany, 2009 - 2013
University of Osnabrueck, Germany, 2006 - 2009
slam6D will proceed with the following parameters:
Maximal distance match : 75
Maximal number of iterations: 100
Maximal distance match : 75
Maximal number of iterations: 100
1/2
too many values in line 1
unable to parse line 1
too many values in line 2
unable to parse line 2
too many values in line 3
unable to parse line 3
too many values in line 4
unable to parse line 4
too many values in line 5
unable to parse line 5
too many values in line 6
unable to parse line 6
too many values in line 7
unable to parse line 7
too many values in line 8
unable to parse line 8
too many values in line 9
unable to parse line 9
too many values in line 10
unable to parse line 10
too many values in line 11
unable to parse line 11
Path does neither exist nor is a zip archive: "dat/randersacker/scan001.3d"
terminate called after throwing an instance of 'std::runtime_error'
what(): There is no scan file for [001] in [dat/randersacker/]
and I try to open it on cloudcompare,it fails. is that the data's prblem?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thus, you need to use "-f uosr" to tell the software, the file format.
Very best,
Andreas
On 15.04.2018 16:15, hexu wrote:
test the slam6D on data sets of randersacker.
when I run the command : bin/slam6D -s 0 -e 1 -r 10 -i 100 -d 75 -D 250
--epsICP=0.00001 -I 50 --cldist=750 -L 0 -G 1 --anim=1 dat/randersacker
and the results are as follows:
slam6D - A highly efficient SLAM implementation based on scan matching
with 6 degrees of freedom
(c) University of Wuerzburg, Germany, since 2013
Jacobs University Bremen gGmbH, Germany, 2009 - 2013
University of Osnabrueck, Germany, 2006 - 2009
slam6D will proceed with the following parameters:
Maximal distance match : 75
Maximal number of iterations: 100
Maximal distance match : 75
Maximal number of iterations: 100
1/2
too many values in line 1
unable to parse line 1
too many values in line 2
unable to parse line 2
too many values in line 3
unable to parse line 3
too many values in line 4
unable to parse line 4
too many values in line 5
unable to parse line 5
too many values in line 6
unable to parse line 6
too many values in line 7
unable to parse line 7
too many values in line 8
unable to parse line 8
too many values in line 9
unable to parse line 9
too many values in line 10
unable to parse line 10
too many values in line 11
unable to parse line 11
Path does neither exist nor is a zip archive: "dat/randersacker/scan001.3d"
terminate called after throwing an instance of 'std::runtime_error'
what(): There is no scan file for [001] in [dat/randersacker/]
and I try to open it on cloudcompare,it fails. is that the data's prblem?
Hi,
when I run like this : bin/slam6D -s 0 -e 1 -r 10 -i 100 -d 75 -D 250 --anim=1 dat/lecturehall
does it mean the follow scans rotated viewing the first scan as target? if so,I try to multiply the rotation matrixs one by one in scan0001.frames.
and I think it is the final rotation matrixs of sacn001 ,is it right?
it's the code that I made in octave:
function trans=trans_pose(trans_matrix)
trans_matrix=trans_matrix(:,1:end-1); [m,n]=size(trans_matrix);
trans=trans_matrix(1,:);
trans=reshape(trans,4,4)';
for i=2:m
mat=reshape(trans_matrix(i,:),4,4)';
trans=trans*mat;
end
end
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, the computed transformation from the first scan matching is applied
as initial transform to the remaining scans.
If you do not want to have this, e.g., if you have global initial
estimates, you need to use "-p" (trust pose estimates).
Is this, what you wanted to know?
Very best,
Andreas
On 16.04.2018 07:18, hexu wrote:
Hi,
when I run like this : bin/slam6D -s 0 -e 1 -r 10 -i 100 -d 75 -D 250
--anim=1 dat/lecturehall
does it mean the follow scans rotated viewing the first scan as target?
if so,I try to multiply the rotation matrixs one by one in scan0001.frames.
and I think it is the final rotation matrixs of sacn001 ,is it right?
it's the code that I made in octave:
function trans=trans_pose(trans_matrix)
trans_matrix=trans_matrix(:,1:end-1); [m,n]=size(trans_matrix);
trans=trans_matrix(1,:);
trans=reshape(trans,4,4)';
for i=2:m
mat=reshape(trans_matrix(i,:),4,4)';
trans=trans*mat;
end
end
at my end, it just works fine. Please say "bin/show dat". Then selct
"always all points", disable mousenav and start selecting your points.
Then you can save the selected points (red) into the file (selected.3d).
Very best,
Andreas
My log:
nuechter@T440:~/slam6d-code$ bin/show dat
(wx)show - A highly efficient 3D point cloud viewer
(c) University of Wuerzburg, Germany, since 2013
Jacobs University Bremen gGmbH, Germany, 2009 - 2013
University of Osnabrueck, Germany, 2006 - 2009
Path does neither exist nor is a zip archive: "dat/scan003.3d"
No data found for scan003!
Creating display octrees..
no conversion performed in line 1
unable to parse line 1
Scan 0 octree finished (946K 716B).
no conversion performed in line 1
unable to parse line 1
Scan 1 octree finished (943K 244B).
no conversion performed in line 1
unable to parse line 1
Scan 2 octree finished (938K 292B).
Using existing frames...
Selected point: 94.6002 -30.0799 60.4023
Selected point: 90.8796 -38.8017 221.563
Distance to last point: 161.439
On 16.04.2018 08:26, hexu wrote:
hello,
whe I run the examples: bin/show dat
it seems not work to save points by clicking 'save selected points '
what it saves just like this:
Sure, but you need to modify the code for this.
In file "src/show/show_animate.cc" remove or comment line 368: selectionfile << "# points from scan nr " << i << std::endl;
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The rotation matrices in the .frames files are always absolute. To get the final transformation for any scan you just need to take the last line from the corresponding .frames file.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
how to record the pose when I use TLS?
Hi,
pose is position and orientation and the .pose files contain a line for
position (x,y,z) and one line for orientation (theta_x, theta_y, theta_z).
The first scan usually defines the coordinate system (project coordinate
system) and the point clouds are given in their own scanner own
coordinate system.
For TLS initial pose estimates could be given for example by GPS.
Very best,
Andreas
On 15.04.2018 11:38, hexu wrote:
@Andreas Nuechter I got it,thank you.
test the slam6D on data sets of randersacker.
when I run the command : bin/slam6D -s 0 -e 1 -r 10 -i 100 -d 75 -D 250 --epsICP=0.00001 -I 50 --cldist=750 -L 0 -G 1 --anim=1 dat/randersacker
and the results are as follows:
slam6D - A highly efficient SLAM implementation based on scan matching
with 6 degrees of freedom
(c) University of Wuerzburg, Germany, since 2013
Jacobs University Bremen gGmbH, Germany, 2009 - 2013
University of Osnabrueck, Germany, 2006 - 2009
slam6D will proceed with the following parameters:
Maximal distance match : 75
Maximal number of iterations: 100
Maximal distance match : 75
Maximal number of iterations: 100
1/2
too many values in line 1
unable to parse line 1
too many values in line 2
unable to parse line 2
too many values in line 3
unable to parse line 3
too many values in line 4
unable to parse line 4
too many values in line 5
unable to parse line 5
too many values in line 6
unable to parse line 6
too many values in line 7
unable to parse line 7
too many values in line 8
unable to parse line 8
too many values in line 9
unable to parse line 9
too many values in line 10
unable to parse line 10
too many values in line 11
unable to parse line 11
Path does neither exist nor is a zip archive: "dat/randersacker/scan001.3d"
terminate called after throwing an instance of 'std::runtime_error'
what(): There is no scan file for [001] in [dat/randersacker/]
and I try to open it on cloudcompare,it fails. is that the data's prblem?
Hi,
Randersacker, i.e., data set #26 from
http://kos.informatik.uni-osnabrueck.de/3Dscans/
is specified as follows:
X,Y,Z (lefthanded) and reflectance in uosr format
Thus, you need to use "-f uosr" to tell the software, the file format.
Very best,
Andreas
On 15.04.2018 16:15, hexu wrote:
it works,thank you!
Hi,
when I run like this : bin/slam6D -s 0 -e 1 -r 10 -i 100 -d 75 -D 250 --anim=1 dat/lecturehall
does it mean the follow scans rotated viewing the first scan as target? if so,I try to multiply the rotation matrixs one by one in scan0001.frames.
and I think it is the final rotation matrixs of sacn001 ,is it right?
it's the code that I made in octave:
function trans=trans_pose(trans_matrix)
trans_matrix=trans_matrix(:,1:end-1);
[m,n]=size(trans_matrix);
trans=trans_matrix(1,:);
trans=reshape(trans,4,4)';
for i=2:m
mat=reshape(trans_matrix(i,:),4,4)';
trans=trans*mat;
end
end
Hi,
I am unsure, if I completely get your question...
Yes, the computed transformation from the first scan matching is applied
as initial transform to the remaining scans.
If you do not want to have this, e.g., if you have global initial
estimates, you need to use "-p" (trust pose estimates).
Is this, what you wanted to know?
Very best,
Andreas
On 16.04.2018 07:18, hexu wrote:
hello,
whe I run the examples: bin/show dat
it seems not work to save points by clicking 'save selected points '
what it saves just like this:
points from scan nr 0
points from scan nr 1
points from scan nr 2
Hi,
at my end, it just works fine. Please say "bin/show dat". Then selct
"always all points", disable mousenav and start selecting your points.
Then you can save the selected points (red) into the file (selected.3d).
Very best,
Andreas
My log:
nuechter@T440:~/slam6d-code$ bin/show dat
(wx)show - A highly efficient 3D point cloud viewer
(c) University of Wuerzburg, Germany, since 2013
Jacobs University Bremen gGmbH, Germany, 2009 - 2013
University of Osnabrueck, Germany, 2006 - 2009
Path does neither exist nor is a zip archive: "dat/scan003.3d"
No data found for scan003!
Creating display octrees..
no conversion performed in line 1
unable to parse line 1
Scan 0 octree finished (946K 716B).
no conversion performed in line 1
unable to parse line 1
Scan 1 octree finished (943K 244B).
no conversion performed in line 1
unable to parse line 1
Scan 2 octree finished (938K 292B).
Using existing frames...
Selected point: 94.6002 -30.0799 60.4023
Selected point: 90.8796 -38.8017 221.563
Distance to last point: 161.439
On 16.04.2018 08:26, hexu wrote:
it works,great. can I save the data without words like this"# points from scan nr 0"? because I cannt open it in other software~
Sure, but you need to modify the code for this.
In file "src/show/show_animate.cc" remove or comment line 368:
selectionfile << "# points from scan nr " << i << std::endl;
Hi,
I want to get the final rotation matrix,that is to say I want rotate only one time between scans.
The rotation matrices in the .frames files are always absolute. To get the final transformation for any scan you just need to take the last line from the corresponding .frames file.
ok,thank you.