|
| 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 | + |
1 | 12 | # gnss_preprocessing
|
2 | 13 |
|
3 | 14 | 
|
@@ -41,6 +52,72 @@ N = -sin(Lat * PI / 180) * cos(Lon * PI / 180) * (Xe - x0) - sin(Lat * PI / 180)
|
41 | 52 | 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);
|
42 | 53 | ```
|
43 | 54 |
|
| 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 | + |
44 | 121 | https://memo--randum.blogspot.com/2010/06/gps.html
|
45 | 122 |
|
46 | 123 | # Estimate Yaw Angle
|
|
0 commit comments