Algorithm 1 Pseudo code of the main calibration. |
-
1:
for all markerId do
-
2:
worldCloud += simulateMarker(worldMarkerPoses[markerId], markerId)
-
3:
avgWorldMarkerPose = getAverageTransformation(worldMarkerPoses)
-
4:
for all sensor do
-
5:
sensorData[sensor] = recordRosTopics(sensor)
-
6:
markerPoses = processRecordedData(sensorData)
-
7:
avgMarkerPose = getAverageTransformation(markerPoses)
-
8:
sensorPose = avgWorldMarkerPose avgMarkerPose ▹ ArUco-based sensor pose
-
9:
sensorCloud = transformCloud(sensorData.croppedCloud, SensorPose)
-
10:
sensorPoseRefined = refineTransformation(sensorCloud, worldCloud) ▹ ICP refined pose
|