{
    "registration": {
        "settings": {
            "lsqFitterPlanes": {
                "cauchyParam": 0,
                "maxIterations": 1000,
                "tolerance": 1E-6,
                "preserveRollAndPitch": true
            },
            "lsqFitterPoints": {
                "cauchyParam": 0,
                "maxIterations": 1000,
                "tolerance": 1E-6,
                "preserveProjectLeveling": true
            },
            "planeExtractor": {
                "filter": "",
                "maxDeviation": 10,
                "maxInclination": 90,
                "maxSize": 1,
                "maxStdDev": 0.005,
                "minInclination": 0,
                "minPointCount": 10,
                "minReflectance": -20,
                "minRelativeFlatness": 5,
                "minSize": 0.025,
                "referencePoint": [
                    0,
                    0,
                    0
                ]
            },
            "planeMatcher": {
                "maxAngleDifference": 2.5,
                "maxDistance": 0.05,
                "maxReflectanceDifference": 100,
                "planePatchesMustOverlap": true,
                "searchRadius": 0.5
            },
            "planeMerger": {
                "maxAngleDifference": 1,
                "maxDistance": 0.01,
                "maxReflectanceDifference": 100,
                "planePatchesMustOverlap": true,
                "searchRadius": 1
            },
            "voxelExtractor": {
                "deviationMax": 10,
                "deviationMin": 0,
                "lineThreshold": 4,
                "minPointsPerVoxel": 5,
                "planeThreshold": 0.25,
                "voxelCount": 1024,
                "voxelSize": 0.1
            },
            "voxelMerger": {
                "planeMergeThreshold": 45
            },
            "custom": true
        }
    }
}
