diff --git a/pom.xml b/pom.xml
index 384c712344bcbd02aa1ef1f0cdabda9e766ed431..574c6cfee514f2fbf1ffc8e6dacf54934d0f3ffc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
     <!-- COTS version -->
-    <rugged.orekit.version>11.3.2</rugged.orekit.version>
+    <rugged.orekit.version>12.0.2</rugged.orekit.version>
     <rugged.junit.version>4.13.2</rugged.junit.version>
 
     <!-- Compilers and Tools version -->
@@ -29,29 +29,29 @@
     <rugged.compiler.target>1.8</rugged.compiler.target>
     <rugged.implementation.build>${git.revision}; ${maven.build.timestamp}</rugged.implementation.build>
     <rugged.spotbugs-maven-plugin.version>4.5.3.0</rugged.spotbugs-maven-plugin.version>
-    <rugged.jacoco-maven-plugin.version>0.8.8</rugged.jacoco-maven-plugin.version>
-    <rugged.maven-bundle-plugin.version>5.1.8</rugged.maven-bundle-plugin.version>
+    <rugged.jacoco-maven-plugin.version>0.8.11</rugged.jacoco-maven-plugin.version>
+    <rugged.maven-bundle-plugin.version>5.1.9</rugged.maven-bundle-plugin.version>
     <rugged.maven-changes-plugin.version>2.12.1</rugged.maven-changes-plugin.version>
-    <rugged.maven-checkstyle-plugin.version>3.2.0</rugged.maven-checkstyle-plugin.version>
+    <rugged.maven-checkstyle-plugin.version>3.2.2</rugged.maven-checkstyle-plugin.version>
     <rugged.checkstyle.version>9.3</rugged.checkstyle.version>
-    <rugged.maven-clean-plugin.version>3.2.0</rugged.maven-clean-plugin.version>
-    <rugged.maven-compiler-plugin.version>3.10.1</rugged.maven-compiler-plugin.version>
+    <rugged.maven-clean-plugin.version>3.3.2</rugged.maven-clean-plugin.version>
+    <rugged.maven-compiler-plugin.version>3.11.0</rugged.maven-compiler-plugin.version>
     <rugged.maven-javadoc-plugin.version>3.6.0</rugged.maven-javadoc-plugin.version>
     <rugged.maven-jar-plugin.version>3.3.0</rugged.maven-jar-plugin.version>
-    <rugged.maven-jxr-plugin.version>3.3.0</rugged.maven-jxr-plugin.version>
+    <rugged.maven-jxr-plugin.version>3.3.1</rugged.maven-jxr-plugin.version>
     <rugged.plantuml-maven-plugin.version>1.2</rugged.plantuml-maven-plugin.version>
-    <rugged.plantuml.version>1.2022.8</rugged.plantuml.version>
-    <rugged.maven-project-info-reports-plugin.version>3.4.1</rugged.maven-project-info-reports-plugin.version>
-    <rugged.maven-resources-plugin.version>3.3.0</rugged.maven-resources-plugin.version>
+    <rugged.plantuml.version>1.2024.5</rugged.plantuml.version>
+    <rugged.maven-project-info-reports-plugin.version>3.4.5</rugged.maven-project-info-reports-plugin.version>
+    <rugged.maven-resources-plugin.version>3.3.1</rugged.maven-resources-plugin.version>
     <rugged.maven-site-plugin.version>3.12.1</rugged.maven-site-plugin.version>
     <rugged.maven-source-plugin.version>3.2.1</rugged.maven-source-plugin.version>
     <rugged.maven-surefire-plugin.version>2.22.2</rugged.maven-surefire-plugin.version>
     <rugged.maven-surefire-report-plugin.version>3.2.1</rugged.maven-surefire-report-plugin.version>
     <rugged.jgit.buildnumber.version>1.2.12</rugged.jgit.buildnumber.version>
-    <rugged.build-helper-maven-plugin.version>3.3.0</rugged.build-helper-maven-plugin.version>
+    <rugged.build-helper-maven-plugin.version>3.4.0</rugged.build-helper-maven-plugin.version>
     <rugged.nexus-staging-maven-plugin.version>1.6.13</rugged.nexus-staging-maven-plugin.version>
     <rugged.maven-gpg-plugin.version>3.0.1</rugged.maven-gpg-plugin.version>
-    <rugged.maven-install-plugin.version>3.0.1</rugged.maven-install-plugin.version>
+    <rugged.maven-install-plugin.version>3.1.1</rugged.maven-install-plugin.version>
 
   </properties>
 
@@ -112,6 +112,9 @@
     <contributor>
       <name>Beatriz Salazar</name>
     </contributor>
+    <contributor>
+      <name>Clement Jonglez</name>
+    </contributor>
   </contributors>
 
   <organization>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 26de291cf99c5481d0abd04d7463ecd7107c6679..db4418011c72ecc2e689c7a1bad3c8dcb5da6347 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -33,6 +33,9 @@
       <action dev="guylaine" type="update">
         Updated dependencies to Orekit 11.3 (and Hipparchus 2.3).
       </action>
+      <action dev="clement" type="update" issue="395">
+        Updated dependencies to Orekit 12.0.2.
+      </action>
     </release>
     <release version="3.0" date="2022-07-05" description="This is a major release.
     It fixes a few bugs.
diff --git a/src/main/java/org/orekit/rugged/los/FixedRotation.java b/src/main/java/org/orekit/rugged/los/FixedRotation.java
index 5b416136738f83367c583ab4ad13fdb16e1f724f..e8fd6c9e3b774f58e05eafefe44a2ae47e6c3480 100644
--- a/src/main/java/org/orekit/rugged/los/FixedRotation.java
+++ b/src/main/java/org/orekit/rugged/los/FixedRotation.java
@@ -26,8 +26,10 @@ import org.hipparchus.geometry.euclidean.threed.RotationConvention;
 import org.hipparchus.geometry.euclidean.threed.Vector3D;
 import org.hipparchus.util.FastMath;
 import org.orekit.rugged.utils.DerivativeGenerator;
+import org.orekit.time.AbsoluteDate;
 import org.orekit.utils.ParameterDriver;
 import org.orekit.utils.ParameterObserver;
+import org.orekit.utils.TimeSpanMap;
 
 /** {@link TimeIndependentLOSTransform LOS transform} based on a fixed rotation.
  * @author Luc Maisonobe
@@ -71,7 +73,14 @@ public class FixedRotation implements TimeIndependentLOSTransform {
         this.angleDriver = new ParameterDriver(name, angle, SCALE, -2 * FastMath.PI, 2 * FastMath.PI);
         angleDriver.addObserver(new ParameterObserver() {
             @Override
-            public void valueChanged(final double previousValue, final ParameterDriver driver) {
+            public void valueChanged(final double previousValue, final ParameterDriver driver, final AbsoluteDate date) {
+                // reset rotations to null, they will be evaluated lazily if needed
+                rotation = null;
+                rDS      = null;
+            }
+
+            @Override
+            public void valueSpanMapChanged​(final TimeSpanMap<Double> previousValueSpanMap, final ParameterDriver driver) {
                 // reset rotations to null, they will be evaluated lazily if needed
                 rotation = null;
                 rDS      = null;
diff --git a/src/main/java/org/orekit/rugged/los/FixedZHomothety.java b/src/main/java/org/orekit/rugged/los/FixedZHomothety.java
index f1f5c33b644addde78b9e5e11813317f2dbfbb67..4fad2e8954363fc8edb848b08d1f676c819a80e1 100644
--- a/src/main/java/org/orekit/rugged/los/FixedZHomothety.java
+++ b/src/main/java/org/orekit/rugged/los/FixedZHomothety.java
@@ -23,8 +23,10 @@ import org.hipparchus.geometry.euclidean.threed.FieldVector3D;
 import org.hipparchus.geometry.euclidean.threed.Vector3D;
 import org.hipparchus.util.FastMath;
 import org.orekit.rugged.utils.DerivativeGenerator;
+import org.orekit.time.AbsoluteDate;
 import org.orekit.utils.ParameterDriver;
 import org.orekit.utils.ParameterObserver;
+import org.orekit.utils.TimeSpanMap;
 
 /** {@link TimeIndependentLOSTransform LOS transform} based on a homothety along the Z axis.
  * @author Lucie Labatallee
@@ -65,7 +67,14 @@ public class FixedZHomothety implements TimeIndependentLOSTransform {
         this.factorDriver = new ParameterDriver(name, factorvalue, SCALE, 0, Double.POSITIVE_INFINITY);
         factorDriver.addObserver(new ParameterObserver() {
             @Override
-            public void valueChanged(final double previousValue, final ParameterDriver driver) {
+            public void valueChanged(final double previousValue, final ParameterDriver driver, final AbsoluteDate date) {
+                // reset factor to zero, they will be evaluated lazily if needed
+                factor = 0.0;
+                factorDS = null;
+            }
+
+            @Override
+            public void valueSpanMapChanged​(final TimeSpanMap<Double> previousValueSpanMap, final ParameterDriver driver) {
                 // reset factor to zero, they will be evaluated lazily if needed
                 factor = 0.0;
                 factorDS = null;
diff --git a/src/main/java/org/orekit/rugged/los/LOSBuilder.java b/src/main/java/org/orekit/rugged/los/LOSBuilder.java
index 3bc88855a3279cc0b235ea0c414d2e9c41a8fe3e..7eb9c997ab7134f80a530a0c34518c811b42e394 100644
--- a/src/main/java/org/orekit/rugged/los/LOSBuilder.java
+++ b/src/main/java/org/orekit/rugged/los/LOSBuilder.java
@@ -28,6 +28,7 @@ import org.orekit.rugged.utils.DerivativeGenerator;
 import org.orekit.time.AbsoluteDate;
 import org.orekit.utils.ParameterDriver;
 import org.orekit.utils.ParameterObserver;
+import org.orekit.utils.TimeSpanMap;
 
 /** Builder for lines-of-sight list.
  * <p>
@@ -226,7 +227,13 @@ public class LOSBuilder {
             final ParameterObserver resettingObserver = new ParameterObserver() {
                 /** {@inheritDoc} */
                 @Override
-                public void valueChanged(final double previousValue, final ParameterDriver driver) {
+                public void valueChanged(final double previousValue, final ParameterDriver driver, final AbsoluteDate date) {
+                    Arrays.fill(transformed, null);
+                }
+
+                /** {@inheritDoc} */
+                @Override
+                public void valueSpanMapChanged​(final TimeSpanMap<Double> previousValueSpanMap, final ParameterDriver driver) {
                     Arrays.fill(transformed, null);
                 }
             };
diff --git a/src/main/java/org/orekit/rugged/los/PolynomialRotation.java b/src/main/java/org/orekit/rugged/los/PolynomialRotation.java
index 63e3082aa271ae64ccb6d99ef31af809043dd355..919b35498f00eb96ddb1f21ee468540f5625ff1d 100644
--- a/src/main/java/org/orekit/rugged/los/PolynomialRotation.java
+++ b/src/main/java/org/orekit/rugged/los/PolynomialRotation.java
@@ -32,6 +32,7 @@ import org.orekit.rugged.utils.DerivativeGenerator;
 import org.orekit.time.AbsoluteDate;
 import org.orekit.utils.ParameterDriver;
 import org.orekit.utils.ParameterObserver;
+import org.orekit.utils.TimeSpanMap;
 
 /** {@link LOSTransform LOS transform} based on a rotation with polynomial angle.
  * @author Luc Maisonobe
@@ -87,7 +88,15 @@ public class PolynomialRotation implements LOSTransform {
         this.coefficientsDrivers = new ParameterDriver[angleCoeffs.length];
         final ParameterObserver resettingObserver = new ParameterObserver() {
             @Override
-            public void valueChanged(final double previousValue, final ParameterDriver driver) {
+            public void valueChanged(final double previousValue, final ParameterDriver driver, final AbsoluteDate date) {
+                // reset rotations to null, they will be evaluated lazily if needed
+                angle   = null;
+                axisDS  = null;
+                angleDS = null;
+            }
+
+            @Override
+            public void valueSpanMapChanged​(final TimeSpanMap<Double> previousValueSpanMap, final ParameterDriver driver) {
                 // reset rotations to null, they will be evaluated lazily if needed
                 angle   = null;
                 axisDS  = null;
diff --git a/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java b/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
index 449cb9024596a53337264308b3984871f229420c..f5aab631a7d1bbc6bea1543cd5823100849099ed 100644
--- a/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
+++ b/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
@@ -28,12 +28,15 @@ import org.orekit.rugged.errors.DumpManager;
 import org.orekit.rugged.errors.RuggedException;
 import org.orekit.rugged.errors.RuggedMessages;
 import org.orekit.time.AbsoluteDate;
+import org.orekit.time.TimeInterpolator;
 import org.orekit.utils.AngularDerivativesFilter;
 import org.orekit.utils.CartesianDerivativesFilter;
 import org.orekit.utils.ImmutableTimeStampedCache;
 import org.orekit.utils.TimeStampedAngularCoordinates;
+import org.orekit.utils.TimeStampedAngularCoordinatesHermiteInterpolator;
 import org.orekit.utils.TimeStampedCache;
 import org.orekit.utils.TimeStampedPVCoordinates;
+import org.orekit.utils.TimeStampedPVCoordinatesHermiteInterpolator;
 
 /** Provider for observation transforms.
  * @author Luc Maisonobe
@@ -123,10 +126,18 @@ public class SpacecraftToObservedBody implements Serializable {
         final TimeStampedCache<TimeStampedPVCoordinates> pvCache =
                 new ImmutableTimeStampedCache<>(pvInterpolationNumber, positionsVelocities);
 
+        // set up the TimeStampedPVCoordinates interpolator
+        final TimeInterpolator<TimeStampedPVCoordinates> pvInterpolator =
+                new TimeStampedPVCoordinatesHermiteInterpolator(pvInterpolationNumber, pvFilter);
+
         // set up the cache for attitudes
         final TimeStampedCache<TimeStampedAngularCoordinates> aCache =
                 new ImmutableTimeStampedCache<>(aInterpolationNumber, quaternions);
 
+        // set up the TimeStampedAngularCoordinates Hermite interpolator
+        final TimeInterpolator<TimeStampedAngularCoordinates> angularInterpolator =
+                new TimeStampedAngularCoordinatesHermiteInterpolator(aInterpolationNumber, aFilter);
+
         final int n = (int) FastMath.ceil(maxDate.durationFrom(minDate) / tStep);
         this.tStep          = tStep;
         this.bodyToInertial = new ArrayList<>(n);
@@ -144,7 +155,7 @@ public class SpacecraftToObservedBody implements Serializable {
                 pvInterpolationDate = date;
             }
             final TimeStampedPVCoordinates interpolatedPV =
-                    TimeStampedPVCoordinates.interpolate(pvInterpolationDate, pvFilter,
+                    pvInterpolator.interpolate(pvInterpolationDate,
                             pvCache.getNeighbors(pvInterpolationDate));
             final TimeStampedPVCoordinates pv = interpolatedPV.shiftedBy(date.durationFrom(pvInterpolationDate));
 
@@ -158,7 +169,7 @@ public class SpacecraftToObservedBody implements Serializable {
                 aInterpolationDate = date;
             }
             final TimeStampedAngularCoordinates interpolatedQuaternion =
-                    TimeStampedAngularCoordinates.interpolate(aInterpolationDate, aFilter,
+                    angularInterpolator.interpolate(aInterpolationDate,
                             aCache.getNeighbors(aInterpolationDate).collect(Collectors.toList()));
             final TimeStampedAngularCoordinates quaternion = interpolatedQuaternion.shiftedBy(date.durationFrom(aInterpolationDate));
 
diff --git a/src/site/resources/images/rugged-architecture.odg b/src/site/resources/images/rugged-architecture.odg
index b99bcf16f0bea913ad43f2b32b1d71155ebd94d2..bc2f740dd38a5928e3338514fe39fcefc04e5b87 100644
Binary files a/src/site/resources/images/rugged-architecture.odg and b/src/site/resources/images/rugged-architecture.odg differ
diff --git a/src/site/resources/images/rugged-architecture.png b/src/site/resources/images/rugged-architecture.png
index 70458ba77935fc4ca3828cad54f5aa9f587afcb4..35550675f2676faa6ca353d81ec1096c5e3ba924 100644
Binary files a/src/site/resources/images/rugged-architecture.png and b/src/site/resources/images/rugged-architecture.png differ
diff --git a/src/test/java/org/orekit/rugged/TestUtils.java b/src/test/java/org/orekit/rugged/TestUtils.java
index fa0f3400a6737def026a538a0be68269b5730747..538d1416de4b60e3102dc0cd4ddbd834bebb5e6e 100644
--- a/src/test/java/org/orekit/rugged/TestUtils.java
+++ b/src/test/java/org/orekit/rugged/TestUtils.java
@@ -53,7 +53,7 @@ import org.orekit.orbits.FieldEquinoctialOrbit;
 import org.orekit.orbits.FieldKeplerianOrbit;
 import org.orekit.orbits.Orbit;
 import org.orekit.orbits.OrbitType;
-import org.orekit.orbits.PositionAngle;
+import org.orekit.orbits.PositionAngleType;
 import org.orekit.propagation.Propagator;
 import org.orekit.propagation.SpacecraftState;
 import org.orekit.propagation.analytical.KeplerianPropagator;
@@ -223,7 +223,7 @@ public class TestUtils {
                                  -4.029194321683225E-4, 0.0013530362644647786,
                                  FastMath.toRadians(98.63218182243709),
                                  FastMath.toRadians(77.55565567747836),
-                                 FastMath.PI, PositionAngle.TRUE,
+                                 FastMath.PI, PositionAngleType.TRUE,
                                  eme2000, date, mu);
     }
  
diff --git a/src/test/java/org/orekit/rugged/adjustment/InterSensorOptimizationProblemBuilderTest.java b/src/test/java/org/orekit/rugged/adjustment/InterSensorOptimizationProblemBuilderTest.java
index 32bd04330ca87563c141e46be3d9eb7e543d2d68..5361fc9be2dd1afe901fa2631b7ebc4f0dfde3ea 100644
--- a/src/test/java/org/orekit/rugged/adjustment/InterSensorOptimizationProblemBuilderTest.java
+++ b/src/test/java/org/orekit/rugged/adjustment/InterSensorOptimizationProblemBuilderTest.java
@@ -89,7 +89,7 @@ public class InterSensorOptimizationProblemBuilderTest {
         Assert.assertEquals(expectedRMS, optimum.getRMS(), 1.0e-6);
 
         final double expectedCost = 3.597082e+00;
-        Assert.assertEquals(expectedCost, optimum.getCost(), 1.0e-6);
+        Assert.assertEquals(expectedCost, optimum.getCost(), 2.5e-6);
 
         Assert.assertTrue(numberOfParameters == optimum.getPoint().getDimension());
         
@@ -139,7 +139,7 @@ public class InterSensorOptimizationProblemBuilderTest {
         double[] arrayBodyPostponed  = listBodyPostponed.stream().mapToDouble(Double::doubleValue).toArray();
 
         Assert.assertEquals(listBody.size(), listBodyPostponed.size());
-        Assert.assertArrayEquals(arrayBody, arrayBodyPostponed, 1.e-3);
+        Assert.assertArrayEquals(arrayBody, arrayBodyPostponed, 3.e-3);
 
         List<Double> listLos = arraySensorToSensorMapping.getLosDistances();
         double[] arrayLos = listLos.stream().mapToDouble(Double::doubleValue).toArray();
@@ -168,8 +168,8 @@ public class InterSensorOptimizationProblemBuilderTest {
                 SensorPixel valuePost = currentPost.getValue();
 
                 // Comparison of each SensorPixel (for the key part and the value part)
-                if (TestUtils.sameSensorPixels(key, keyPost, 1.e-3) &&
-                    TestUtils.sameSensorPixels(value, valuePost, 1.e-3)) {
+                if (TestUtils.sameSensorPixels(key, keyPost, 3.e-3) &&
+                    TestUtils.sameSensorPixels(value, valuePost, 3.e-3)) {
                     // we found a match ...
                     found = true;
                 }
diff --git a/src/test/java/org/orekit/rugged/adjustment/util/PleiadesOrbitModel.java b/src/test/java/org/orekit/rugged/adjustment/util/PleiadesOrbitModel.java
index cca8dbc4d0a7e557a8f0ca387aeeab0826b79243..a246cd23cff616c710af855a23a0a4fba4501fd8 100644
--- a/src/test/java/org/orekit/rugged/adjustment/util/PleiadesOrbitModel.java
+++ b/src/test/java/org/orekit/rugged/adjustment/util/PleiadesOrbitModel.java
@@ -19,7 +19,7 @@ import org.orekit.frames.FramesFactory;
 import org.orekit.frames.LOFType;
 import org.orekit.orbits.CircularOrbit;
 import org.orekit.orbits.Orbit;
-import org.orekit.orbits.PositionAngle;
+import org.orekit.orbits.PositionAngleType;
 import org.orekit.propagation.Propagator;
 import org.orekit.propagation.analytical.KeplerianPropagator;
 import org.orekit.time.AbsoluteDate;
@@ -77,7 +77,7 @@ public class PleiadesOrbitModel {
                                  FastMath.toRadians(98.2), // Pleiades inclination 98.2 deg
                                  FastMath.toRadians(-86.47 + 180),
                                  FastMath.toRadians(135.9 + 0.3),
-                                 PositionAngle.TRUE,
+                                 PositionAngleType.TRUE,
                                  eme2000,
                                  date,
                                  mu);
diff --git a/src/test/java/org/orekit/rugged/api/RuggedBuilderTest.java b/src/test/java/org/orekit/rugged/api/RuggedBuilderTest.java
index ef47fe0dd5d69ea3d1c325e90bc2f754b73ebf58..f46aa1727faaa38626c444f6509dc56480f30f5f 100644
--- a/src/test/java/org/orekit/rugged/api/RuggedBuilderTest.java
+++ b/src/test/java/org/orekit/rugged/api/RuggedBuilderTest.java
@@ -58,7 +58,7 @@ import org.orekit.frames.Transform;
 import org.orekit.orbits.CircularOrbit;
 import org.orekit.orbits.Orbit;
 import org.orekit.orbits.OrbitType;
-import org.orekit.orbits.PositionAngle;
+import org.orekit.orbits.PositionAngleType;
 import org.orekit.propagation.Propagator;
 import org.orekit.propagation.SpacecraftState;
 import org.orekit.propagation.analytical.KeplerianPropagator;
@@ -763,7 +763,7 @@ public class RuggedBuilderTest {
                                  -4.029194321683225E-4, 0.0013530362644647786,
                                  FastMath.toRadians(98.63218182243709),
                                  FastMath.toRadians(77.55565567747836),
-                                 FastMath.PI, PositionAngle.TRUE,
+                                 FastMath.PI, PositionAngleType.TRUE,
                                  eme2000, date, mu);
     }
 
diff --git a/src/test/java/org/orekit/rugged/api/RuggedTest.java b/src/test/java/org/orekit/rugged/api/RuggedTest.java
index 5c19b72cd724aed75241b1ce7eef7d8d1631b1b3..7a7ba6ed31beec6fcaa5f39650fdfa55d6bfcf30 100644
--- a/src/test/java/org/orekit/rugged/api/RuggedTest.java
+++ b/src/test/java/org/orekit/rugged/api/RuggedTest.java
@@ -1105,21 +1105,21 @@ public class RuggedTest {
     public void testInverseLocationDerivativesWithLightTimeCorrection()
         {
         doTestInverseLocationDerivatives(2000, true, false,
-                                         3.0e-9, 9.0e-9, 2.1e-12, 9.0e-8);
+                                         3.0e-9, 9.0e-9, 2.1e-12, 7e-6);
     }
 
     @Test
     public void testInverseLocationDerivativesWithAberrationOfLightCorrection()
         {
         doTestInverseLocationDerivatives(2000, false, true,
-                                         4.2e-10, 3.0e-10, 3.4e-12, 7.0e-8);
+                                         1e-9, 3.0e-10, 3.4e-12, 7.0e-8);
     }
 
     @Test
     public void testInverseLocationDerivativesWithAllCorrections()
         {
         doTestInverseLocationDerivatives(2000, true, true,
-                                         7.0e-10, 5.0e-10, 2.0e-12, 7.0e-8);
+                                         1e-8, 5.0e-10, 2.0e-12, 7.0e-8);
     }
 
     /**
@@ -1408,8 +1408,8 @@ public class RuggedTest {
         double expectedDistanceBetweenLOS = 3.88800245;
         double expectedDistanceToTheGround = 6368020.559109;
 
-        Assert.assertEquals(expectedDistanceBetweenLOS, distancesBetweenLOS[0], 1.e-8);
-        Assert.assertEquals(expectedDistanceToTheGround, distancesBetweenLOS[1], 1.e-5);
+        Assert.assertEquals(expectedDistanceBetweenLOS, distancesBetweenLOS[0], 2.e-6);
+        Assert.assertEquals(expectedDistanceToTheGround, distancesBetweenLOS[1], 3.e-5);
      }
 
     @Test
@@ -1438,16 +1438,16 @@ public class RuggedTest {
         // Minimum distance to the ground
         Gradient dCentralBody = distancesBetweenLOSGradient[1];
 
-        Assert.assertEquals(expectedDistanceBetweenLOS, dMin.getValue(), 1.e-8);
-        Assert.assertEquals(expectedDistanceToTheGround, dCentralBody.getValue() , 1.e-5);
+        Assert.assertEquals(expectedDistanceBetweenLOS, dMin.getValue(), 2.e-6);
+        Assert.assertEquals(expectedDistanceToTheGround, dCentralBody.getValue() , 4.e-5);
 
 
         for (int i = 0; i < dMin.getFreeParameters(); i++) {
-            Assert.assertEquals(expectedDminDerivatives[i], dMin.getPartialDerivative(i), 1.e-8);
+            Assert.assertEquals(expectedDminDerivatives[i], dMin.getPartialDerivative(i), 3e-5);
         }
 
         for (int i = 0; i < dCentralBody.getFreeParameters(); i++) {
-            Assert.assertEquals(expectedDcentralBodyDerivatives[i], dCentralBody.getPartialDerivative(i), 3.e-8);
+            Assert.assertEquals(expectedDcentralBodyDerivatives[i], dCentralBody.getPartialDerivative(i), 3.e-4);
         }
     }
 
diff --git a/src/test/java/org/orekit/rugged/linesensor/SensorMeanPlaneCrossingTest.java b/src/test/java/org/orekit/rugged/linesensor/SensorMeanPlaneCrossingTest.java
index 753d103f0412d5986370dc00d694ccc6aac153a0..2dc83efc35b63d283e6969d6b74baa48a420a558 100644
--- a/src/test/java/org/orekit/rugged/linesensor/SensorMeanPlaneCrossingTest.java
+++ b/src/test/java/org/orekit/rugged/linesensor/SensorMeanPlaneCrossingTest.java
@@ -42,7 +42,7 @@ import org.orekit.frames.FramesFactory;
 import org.orekit.frames.Transform;
 import org.orekit.orbits.CircularOrbit;
 import org.orekit.orbits.Orbit;
-import org.orekit.orbits.PositionAngle;
+import org.orekit.orbits.PositionAngleType;
 import org.orekit.propagation.Propagator;
 import org.orekit.propagation.analytical.KeplerianPropagator;
 import org.orekit.rugged.TestUtils;
@@ -304,7 +304,7 @@ public class SensorMeanPlaneCrossingTest {
                                         -4.029194321683225E-4, 0.0013530362644647786,
                                         FastMath.toRadians(98.63218182243709),
                                         FastMath.toRadians(77.55565567747836),
-                                        FastMath.PI, PositionAngle.TRUE,
+                                        FastMath.PI, PositionAngleType.TRUE,
                                         FramesFactory.getEME2000(), sensor.getDate(1000),
                                         Constants.EIGEN5C_EARTH_MU);
         BodyShape earth = new OneAxisEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS,
diff --git a/src/test/java/org/orekit/rugged/utils/RoughVisibilityEstimatorTest.java b/src/test/java/org/orekit/rugged/utils/RoughVisibilityEstimatorTest.java
index e0740bb7e800d9b87804ee78419713844da8a900..07ad5df0db1918a163263d8e4029c18d1f688fe4 100644
--- a/src/test/java/org/orekit/rugged/utils/RoughVisibilityEstimatorTest.java
+++ b/src/test/java/org/orekit/rugged/utils/RoughVisibilityEstimatorTest.java
@@ -46,7 +46,7 @@ import org.orekit.frames.FramesFactory;
 import org.orekit.orbits.CircularOrbit;
 import org.orekit.orbits.Orbit;
 import org.orekit.orbits.OrbitType;
-import org.orekit.orbits.PositionAngle;
+import org.orekit.orbits.PositionAngleType;
 import org.orekit.propagation.Propagator;
 import org.orekit.propagation.SpacecraftState;
 import org.orekit.propagation.numerical.NumericalPropagator;
@@ -134,7 +134,7 @@ public class RoughVisibilityEstimatorTest {
                                  -4.029194321683225E-4, 0.0013530362644647786,
                                  FastMath.toRadians(98.63218182243709),
                                  FastMath.toRadians(77.55565567747836),
-                                 FastMath.PI, PositionAngle.TRUE,
+                                 FastMath.PI, PositionAngleType.TRUE,
                                  eme2000, date, mu);
     }