rotation_noise = gtsam.noiseModel.Isotropic.Sigma(3, 0.05)
measurements = [
gtsam.BinaryMeasurementRot3(0, 1, gtsam.Rot3.RzRyRx(0.1, 0.0, 0.0), rotation_noise),
gtsam.BinaryMeasurementRot3(1, 2, gtsam.Rot3.RzRyRx(0.0, -0.1, 0.0), rotation_noise),
gtsam.BinaryMeasurementRot3(0, 2, gtsam.Rot3.RzRyRx(0.1, -0.1, 0.0), rotation_noise),
]
parameters = gtsam.ShonanAveragingParameters3(gtsam.LevenbergMarquardtParams())
shonan = gtsam.ShonanAveraging3(measurements, parameters)
rotations, certificate = shonan.run(3, 6)
print("measurements:", shonan.numberMeasurements())
print("certificate value:", certificate)
print("R(2):")
print(rotations.atRot3(2).matrix())