Skip to content

Commit b09fd82

Browse files
authored
Update README.md
1 parent babf2c3 commit b09fd82

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

README.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML">
2+
</script>
3+
<script type="text/x-mathjax-config">
4+
MathJax.Hub.Config({
5+
tex2jax: {
6+
inlineMath: [['$', '$'] ],
7+
displayMath: [ ['$$','$$'], ["\\[","\\]"] ]
8+
}
9+
});
10+
</script>
11+
112
# gnss_preprocessing
213

314
![image](https://github.com/Arcanain/gnss_preprocessing/assets/52307432/4c48a288-4dc6-44d8-b03e-6482577bbfa8)
@@ -41,6 +52,72 @@ N = -sin(Lat * PI / 180) * cos(Lon * PI / 180) * (Xe - x0) - sin(Lat * PI / 180)
4152
U = cos(Lat * PI / 180) * cos(Lon * PI / 180) * (Xe - x0) + cos(Lat) * sin(Lon * PI / 180) * (Ye - y0) + sin(Lat * PI / 180) * (Ze - z0);
4253
```
4354

55+
### 一般的なBLHからENUへの変換
56+
57+
BLHからENUへの変換は、以下の一般的な手順に従って行われます。
58+
59+
1. **緯度経度をECEF座標に変換**
60+
地球中心固定座標系(ECEF)に変換することで、地球中心からの3次元座標を得ます。
61+
62+
```math
63+
\begin{align*}
64+
X &= (N + h) \cos(\phi) \cos(\lambda) \\
65+
Y &= (N + h) \cos(\phi) \sin(\lambda) \\
66+
Z &= \left( N \left( 1 - e^2 \right) + h \right) \sin(\phi)
67+
\end{align*}
68+
```
69+
ここで、\( N = \frac{a}{\sqrt{1 - e^2 \sin^2(\phi)}} \) は曲率半径、\( \phi \) は緯度、\( \lambda \) は経度、\( h \) は高さ、\( a \) は地球の半径、\( e \) は地球の離心率です。
70+
71+
3. **ECEF座標をENU座標に変換**
72+
基準点(参照点)からの相対位置を計算し、回転行列を使ってENU座標に変換します。
73+
```masth
74+
\begin{align*}
75+
E &= -\sin(\lambda) \Delta X + \cos(\lambda) \Delta Y \\
76+
N &= -\sin(\phi) \cos(\lambda) \Delta X - \sin(\phi) \sin(\lambda) \Delta Y + \cos(\phi) \Delta Z \\
77+
U &= \cos(\phi) \cos(\lambda) \Delta X + \cos(\phi) \sin(\lambda) \Delta Y + \sin(\phi) \Delta Z
78+
\end{align*}
79+
```
80+
ここで、\( \Delta X \)\( \Delta Y \)\( \Delta Z \) はECEF座標の差分です。
81+
82+
数式:
83+
```math
84+
E = -\sin(\text{Lon} \cdot \frac{\pi}{180}) \cdot (X_e - x_0) + \cos(\text{Lon} \cdot \frac{\pi}{180}) \cdot (Y_e - y_0)
85+
```
86+
```math
87+
N = -\sin(\text{Lat} \cdot \frac{\pi}{180}) \cdot \cos(\text{Lon} \cdot \frac{\pi}{180}) \cdot (X_e - x_0) - \sin(\text{Lat} \cdot \frac{\pi}{180}) \cdot \sin(\text{Lon} \cdot \frac{\pi}{180}) \cdot (Y_e - y_0) + \cos(\text{Lat} \cdot \frac{\pi}{180}) \cdot (Z_e - z_0)
88+
```
89+
```math
90+
U = \cos(\text{Lat} \cdot \frac{\pi}{180}) \cdot \cos(\text{Lon} \cdot \frac{\pi}{180}) \cdot (X_e - x_0) + \cos(\text{Lat} \cdot \frac{\pi}{180}) \cdot \sin(\text{Lon} \cdot \frac{\pi}{180}) \cdot (Y_e - y_0) + \sin(\text{Lat} \cdot \frac{\pi}{180}) \cdot (Z_e - z_0)
91+
```
92+
93+
回転行列:
94+
95+
```math
96+
\begin{bmatrix}
97+
E \\
98+
N \\
99+
U
100+
\end{bmatrix}
101+
=
102+
\begin{bmatrix}
103+
-\sin(\text{Lon}_\text{ref}) & \cos(\text{Lon}_\text{ref}) & 0 \\
104+
-\sin(\text{Lat}_\text{ref}) \cos(\text{Lon}_\text{ref}) & -\sin(\text{Lat}_\text{ref}) \sin(\text{Lon}_\text{ref}) & \cos(\text{Lat}_\text{ref}) \\
105+
\cos(\text{Lat}_\text{ref}) \cos(\text{Lon}_\text{ref}) & \cos(\text{Lat}_\text{ref}) \sin(\text{Lon}_\text{ref}) & \sin(\text{Lat}_\text{ref})
106+
\end{bmatrix}
107+
\begin{bmatrix}
108+
\Delta X \\
109+
\Delta Y \\
110+
\Delta Z
111+
\end{bmatrix}
112+
```
113+
114+
このように、回転行列はECEF座標差分(\(\Delta X, \Delta Y, \Delta Z\))を用いて、ENU座標を計算するためのものです。したがって、上記の数式は回転行列に基づいています。
115+
116+
### まとめ
117+
118+
BLHからENUへの変換は、緯度経度高さを使用して地球の表面上の点の位置を平面座標に変換する方法です。これは、測地学や地理学の基本的な技術であり、GPSデータの処理や地図上での位置表示に不可欠です。上記の数式は、この変換を正確に行うために必要な数学的な基礎を提供します。
119+
120+
44121
https://memo--randum.blogspot.com/2010/06/gps.html
45122

46123
# Estimate Yaw Angle

0 commit comments

Comments
 (0)