Added some logos and content

This commit is contained in:
Jeremy Karst 2025-03-03 20:49:25 -05:00
parent 7070d5b262
commit d5b294f949
24 changed files with 122 additions and 12 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 443 KiB

After

Width:  |  Height:  |  Size: 402 KiB

View file

@ -21,8 +21,8 @@ fingerprintAlgorithm = "sha256"
[header]
layout = "basic" # valid options: basic, hamburger, hybrid, custom
# logo = "img/logo.jpg"
# logoDark = "img/dark-logo.jpg"
header.logo = "img/karsttech_logo_cube.png"
# logoDark = "img/karsttech_logo_cube.png"
showTitle = true
[footer]
@ -49,8 +49,8 @@ fingerprintAlgorithm = "sha256"
showPagination = true
invertPagination = false
showReadingTime = true
showTableOfContents = false
showTaxonomies = false
showTableOfContents = true
showTaxonomies = true
showWordCount = false
showComments = false
# sharingLinks = ["facebook", "x-twitter", "mastodon", "pinterest", "reddit", "linkedin", "email", "threads", "telegram", "line", "weibo", "xing", "bluesky"]
@ -58,7 +58,7 @@ fingerprintAlgorithm = "sha256"
[list]
showBreadcrumbs = false
showSummary = false
showTableOfContents = false
showTableOfContents = true
showTaxonomies = false
groupByYear = true
paginationWidth = 1

View file

@ -1,14 +1,14 @@
---
title: "Welcome to KarstTech!"
title: "Welcome!"
description: "KarstTech LLC is a company which provides Technical and Scientific Consulting and Data Science services."
---
{{< lead >}}
KarstTech LLC provides Technical and Scientific Consulting and Data Science services
{{< /lead >}}
{{< figure src="img/karsttech_logo_vert.png" class="m-auto mt-6 max-w-prose" >}}
{{< lead >}}
KarstTech LLC provides Technical and Scientific Consulting services with a wide range of expertise.
{{< /lead >}}
If you are here for *Business*, check out my professional [Projects]({{< ref "professional-projects" >}})
If you are here for *Pleasure*, head over to my [Blog]({{< ref "personal-blog" >}})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 KiB

View file

@ -3,7 +3,7 @@ title = 'Markdown Cheatsheet'
date = 2025-02-27T07:15:18-05:00
draft = false
categories = ['references']
tags = ['markdown']
tags = ['hugo', 'markdown']
+++
{{< lead >}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 KiB

View file

@ -6,9 +6,96 @@ categories = ['references']
tags = ['USM', 'magnetics', 'data science', 'KarstTech', 'UUV']
+++
## Getting Started
Several months ago I was referred to the University of Southern Mississippi [Marine Research Center](https://www.usm.edu/ocean-enterprise/marine-research-center.php) by a coworker. They wanted some assistance from someone with a Physics and Data Science background to work on an autonomous underwater vehicle for the purpose of developing a magnetic sensing platform.
The work sounded interesting, so I joined the team as a contractor. Fast forward several months, and we are making fantastic progress!
The work began with using data acquired from high quality magnetic sensors including from [QUSPIN](https://quspin.com/), and processing the data to detect magnetic objects of interest. For those without a background in physics, you should know that magnetic fields fall off as the cube of the distance from the source. This makes for a much more challenging problem since the size of the signals we are looking for are TINY compared to the noise in the data once we get to any significant distance from the source. This is made even more difficult by the fact that the Earth's magnetic field is a very strong signal, which changes from the perspective of the vector magnetic sensor as the vehicle moves. The final wrinkle is that the targets of interest are passive ferromagnetic objects, meaning their field is created by becoming magnetized by the Earth's magnetic field, and so they are extremely weak fields when measured at a distance.
The work began with using data acquired from high quality magnetic sensors including from [QUSPIN](https://quspin.com/), and processing the data to detect magnetic objects of interest. This magnetic sensing becomes a very difficult problem due to a combination of factors:
1. Magnetic fields fall off as the cube of the distance from the source (rather than the inverse square law that we all know from electromagnetic fields like light). This makes for a much more challenging problem since the size of the signals we are looking for are TINY compared to the noise in the data once we get to any significant distance from the source.
2. The Earth's magnetic field, while weak compared to some magnets that we use in everyday life, is very strong due to it's very large size and therefore slow falloff compared to small targets.
3. The targets of interest are passive ferromagnetic objects, meaning their field is created by becoming magnetized by the Earth's magnetic field. These induced magnetic fields are very weak compared to the Earth's magnetic field.
4. The sensing platform is moving, and so the vehicle's orientation, and it's vector magnetic sensor readings are changing rapidly. Imbalances in the readings between vector components due to sensor imperfections, and due to the magnetic properties of the vehicle itself make this motion difficult to filter out.
![Test Vehicle](surface-vehicle.png "Test Vehicle")
## Sensor Fusion
Before we can even attempt to detect targets, we need to convert the vehicle reference frame to the Earth's reference frame. This is a non-trivial problem because the vehicle is free to rotate around the z-axis (up/down), can pitch and roll due to surface conditions, and for an underwater vehicle it can move and orient itself in virtually any direction. In addition to the vehicle orientation quickly changing, the Earth's magnetic field is very complex, and varies from location to location on the surface of the Earth.
![Earth's Magnetic Field](earth-geomag.webp "Earth's Magnetic Field (courtesy of [Wikipedia](https://en.wikipedia.org/wiki/Earth%27s_magnetic_field))")
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.
![Local Magnetic Field Variations](gulfport-geomag.png "Local Magnetic Field Variations near Gulfport, MS")
{{< mermaid >}}
flowchart TD
subgraph "Input Sensors"
direction TB
GPS["GPS + RTK
(Position Data)
Note: Unavailable when underwater"]:::inputNode
QTFM["QTFM Magnetics
(X, Y, Z Magnetic Field)"]:::inputNode
IMU["Inertial Measurement Unit (IMU)"]:::inputNode
IMU_GYRO["IMU Gyroscope
(Roll, Pitch, Yaw Rates)
Only shows rate of change"]:::inputNode
IMU_ACCEL["IMU Accelerometer
(X, Y, Z Acceleration)
Note: Affected by quick movements"]:::inputNode
IMU_MAG["IMU Magnetometer
(X, Y, Z Magnetic Field)
Note: Affected by nearby magnetic fields"]:::inputNode
end
subgraph "Sensor Fusion Process"
direction TB
SF["Sensor Fusion Algorithm"]:::processingNode
GD["Geomagnetic Declination Correction
Note: Declination varies by location & time"]:::processingNode
OC["Orientation Correction"]:::processingNode
FILTER["Signal Filtering"]:::processingNode
end
subgraph "Output Data"
direction TB
POS["Geographic Position
(Earth Coordinates)"]:::outputNode
ROT["Platform Orientation
(Roll, Pitch, Yaw)"]:::outputNode
MAG_CORR["Orientation Corrected
Magnetic Data"]:::outputNode
TARGET["Target Detection
& Localization"]:::outputNode
end
classDef inputNode fill:#d4f1f9,stroke:#05386B,color:black
classDef processingNode fill:#f9e79f,stroke:#b7950b,color:black
classDef outputNode fill:#c8e6c9,stroke:#2e7d32,color:black
IMU --- IMU_GYRO
IMU --- IMU_ACCEL
IMU --- IMU_MAG
GPS --> SF
QTFM --> SF
IMU_GYRO --> SF
IMU_ACCEL --> SF
IMU_MAG --> SF
SF --> GD
GD --> OC
OC --> FILTER
SF --> POS
SF --> ROT
FILTER --> MAG_CORR
MAG_CORR --> TARGET
{{< /mermaid >}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

View file

@ -0,0 +1,2 @@
<link rel="shortcut icon" href="web-app-manifest-192x192.png">
<link rel="apple-touch-icon" sizes="192x192" href="/web-app-manifest-192x192.png">

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

BIN
static/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

BIN
static/favicon-96x96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
static/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

21
static/site.webmanifest Normal file
View file

@ -0,0 +1,21 @@
{
"name": "KarstTech",
"short_name": "KarstTech",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/wandroid-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}