diff --git a/assets/css/custom.css b/assets/css/custom.css index d4be65b..411a5c9 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -8,12 +8,13 @@ border-radius: 16px; box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); backdrop-filter: blur(8px); + animation: backdropShift 10s linear infinite; -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(18, 47, 101, 0.35); padding: 2rem; margin-bottom: 2rem; position: relative; - filter: saturate(0.9); + filter: saturate(0.7); z-index: 2; } @@ -73,18 +74,14 @@ header button[id^="search-button"]:hover { box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); } -@keyframes gradientShift { +@keyframes backdropShift { 0% { - filter: saturate(0.9) hue-rotate(-15deg); + backdrop-filter: blur(8px) hue-rotate(-15deg); } 50% { - filter: saturate(0.9) hue-rotate(15deg); + backdrop-filter: blur(8px) hue-rotate(15deg); } 100% { - filter: saturate(0.9) hue-rotate(-15deg); + backdrop-filter: blur(8px) hue-rotate(-15deg); } -} - -article.glass { - animation: gradientShift 30s linear infinite; } \ No newline at end of file diff --git a/config/_default/languages.en.toml b/config/_default/languages.en.toml index 1cc1812..ea51fb9 100644 --- a/config/_default/languages.en.toml +++ b/config/_default/languages.en.toml @@ -16,7 +16,7 @@ copyright = "This website is open source. You can find the source code **[here]( name = "Jeremy Karst" image = "img/sd_eye_icon.webp" headline = "I see patterns where others see noise" - bio = "Seeming smart is easy when you learn for fun." + bio = "People think you are smart when you learn for fun." links = [ { email = "mailto:DataScienceDIY@proton.me" }, { github = "https://code.karsttech.com" }, diff --git a/content/professional-projects/usm-magnetics/T7_Magnet_Parallel_Observed_vs_Simulated_Detrended_feature.png b/content/professional-projects/usm-magnetics/T7_Magnet_Parallel_Observed_vs_Simulated_Detrended_feature.png new file mode 100644 index 0000000..8277409 Binary files /dev/null and b/content/professional-projects/usm-magnetics/T7_Magnet_Parallel_Observed_vs_Simulated_Detrended_feature.png differ diff --git a/content/professional-projects/usm-magnetics/index.md b/content/professional-projects/usm-magnetics/index.md index 407eb3d..03e7d88 100644 --- a/content/professional-projects/usm-magnetics/index.md +++ b/content/professional-projects/usm-magnetics/index.md @@ -1,9 +1,9 @@ +++ -title = 'USM Magnetics' +title = 'USM Magnetics - Sensor Fusion' date = 2025-02-27T07:17:00-05:00 draft = false categories = ['references'] -tags = ['USM', 'magnetics', 'data science', 'KarstTech', 'UUV'] +tags = ['USM', 'magnetics', 'data science', 'KarstTech', 'UUV', 'sensor fusion'] +++ ## Getting Started @@ -24,10 +24,15 @@ Before we can even attempt to detect targets, we need to convert the vehicle ref )") -While the Earth's scale magnetic field is complex, many people assume that on the local scale, the magnetic field is constant. This is not the case, and local variations can be large enough to throw off the vehicle's orientation estimate. +While the Earth's scale magnetic field is complex, many people assume that on the local scale, the magnetic field is constant. This is not the case, and local variations can be large enough to throw off the vehicle's orientation estimate. In a surface vehicle, this can be mitigated by using GPS to correct for long term drift of the compass / magnetic measurements, but underwater it becomes much more complicated without a detailed map of local magnetic anomalies. Designing a method for planning underwater missions which can correct for these local variations is a problem that is being addressed in the near future, but in short it involves some calibration using surface data, and then using that calibration to improve underwater navigation.  +The sensor fusion process attempts to take the best aspects of each sensor and combine them in a way that provides the most accurate estimate of the vehicle's orientation and position. For Gyroscopes, which are very accurate at measuring short term rotations, but suffer from drift over time, we can use the magnetometer to correct for the drift. We can use accelerometers to correct for quick movements, and to measure the long term orientation relative to gravity, while using GPS to provide long term movement and position data. Magnetometers are immune to the errors introduced into accelerometers by quick movements, especially in surface waves, and so they provide a very accurate measurement of the vehicle's orientation, but are subject to small errors due to local magnetic anomalies, and due to magnetic interference from the vehicle itself. + +The exact method used to fuse the data is highly platform specific and needs to be tuned for the physical characteristics of the vehicle, and its sensors. The diagram below shows the general process, but the exact implementation details will not be discussed here. + + {{< mermaid >}} flowchart TD subgraph "Input Sensors" @@ -94,8 +99,5 @@ flowchart TD MAG_CORR --> TARGET {{< /mermaid >}} - - - - +Once the vehicle know's it's own position and orientation through sensor fusion, we can use that information to convert the location of detected objects near the vehicle into the Earth's reference frame. This allows combining measurements from multiple passes over the same area, by multiple vehicles, or even on different days. diff --git a/layouts/partials/home/page.html b/layouts/partials/home/page.html index 068f9cd..2ce3653 100644 --- a/layouts/partials/home/page.html +++ b/layouts/partials/home/page.html @@ -1,5 +1,5 @@