I am running the SLAM (offline) algorithm on a lidar dataset collected from an airborne drone. The points are not projected on the correct XY plane, and the output points do not have the correct coordinates (for my UTM zone). Instead, my points are being projected on the XZ plane. I am using the external sensors data and calibration file (defined here).
Upon further investigation, it seems like there is no difference in the SLAM output when using my custom calibration_external_sensor.mat
file or an identity affine matrix (i.e. no translation/rotation).
The only location I can see a difference in SLAM output is when I change the Initial Pose RPY
parameters (see screen shot below). I followed this tutorial and tried using the same rotation parameter on the Y axis, but that gave incorrect results again (41:30 at SLAM Tutorial).
Expected point cloud SLAM results (notice it is flat on the XY plane):
Results with or without calibration matrix:
Results with Initial Pose RPY
Y rotation -90 degrees (with or without calibration matrix):
Inital pose RPY
parameters for -90 degree pitch:
My lidar sensor (Velodyne):
Also, GPS axes align with the aircraft, and my velodyne sensor is pitched down towards the ground (-90 degrees vertical to scan the ground, just like in the tutorial link shared above).
I am iteratively trying to test different rotations for an output to no avail. Could anyone offer some suggestions? I am getting confused with what the correct Inital pose RPY
parameters and calibration_external_sensor.mat
file should be.