精华内容
下载资源
问答
  • 大地坐标系(WGS-84)、地心地固坐标系(ECEF)与东北天坐标系(ENU)的相互转换C语言代码分享
    千次阅读
    2020-12-19 12:53:41

    //ECEF ---> WGS84

    //pcg为WGS-84坐标系结构体指针,pcc为ECEF坐标系结构体指针

    void ECEFToWGS(PWGS pcg, PECEF pcc)

    {

    double B0, R, N;

    double B_, L_;

    double X = pcc->x;

    double Y = pcc->y;

    double Z = pcc->z;

    R = sqrt(X * X + Y * Y);

    B0 = atan2(Z, R);

    while (1)

    {

    N = dSemiMajorAxis / sqrt(1.0 - e2 * sin(B0) * sin(B0));

    B_ = atan2(Z + N * e2 * sin(B0), R);

    if (fabs(B_ - B0) < 1.0e-10)

    break;

    B0 = B_;

    }

    L_ = atan2(Y, X);

    pcg->height = R / cos(B_) - N;

    //弧度转换成经纬度

    pcg->latitude = B_ * 180 / M_PI;

    pcg->longitude = L_ * 180 / M_PI;

    }

    //ECEF ---> ENU

    //pcc为ECEF坐标系结构体指针,center为东北天坐标原点的指针,pct为东北天坐标系结构体指针

    //坐标原点center要用GPS采到的第一个点的数据

    void ECEFToENU(PECEF pcc, PWGS center, PENU pct)

    {

    double dX, dY, dZ;

    PECEF Geodetic;

    Geodetic = (PECEF)malloc(sizeof(ECEF));

    WGSToECEF(center, Geodetic);

    dX = pcc->x - Geodetic->x;

    dY = pcc->y - Geodetic->y;

    dZ = pcc->z - Geodetic->z;

    double B, L, H;

    B = center->latitude;

    L = center->longitude;

    H = center->height;

    pct->easting = -sin(L) * dX + cos(L) * dY; //X轴

    pct->northing = -sin(B) * cos(L) * dX - sin(B) * sin(L) *

    dY + cos(B) * dZ; //Y轴

    pct->upping = cos(B) * cos(L) * dX + cos(B) * sin(L) * dY +

    sin(B) * dZ; //Z轴

    free(Geodetic);

    }

    //ENU ---> ECEF

    //pcc为ECEF坐标系结构体指针,center为东北天坐标原点的指针,pct为东北天坐标系结构体指针

    //坐标原点center要用GPS采到的第一个点的数据

    void ENUToECEF(PECEF pcc, PWGS center, PENU pct)

    {

    PECEF Geodetic;

    Geodetic = (PECEF)malloc(sizeof(ECEF));

    WGSToECEF(center, Geodetic);

    double B, L, H;

    B = center->latitude;

    L = center->longitude;

    H = center->height;

    pcc->x = -sin(B) * cos(L) * pct->northing - sin(L) *

    pct->easting + cos(B) * cos(L) * pct->upping +

    Geodetic->x;

    pcc->y = -sin(B) * sin(L) * pct->northing + cos(L) *

    pct->easting + cos(B) * sin(L) * pct->upping +

    Geodetic->y;

    pcc->z = cos(B) * pct->northing + sin(B) *

    pct->upping + Geodetic->z;

    free(Geodetic);

    }

    更多相关内容
  • 东北天坐标系转载体坐标系

    千次阅读 2021-02-08 13:46:08
    基本概念1.1欧拉角1.2左乘右乘1.3东北天坐标系1.4载体坐标系1.5捷联惯性导航系统2. 通过ECEF转换到参考点附近的ENU坐标系上3. 东北天坐标系到载体坐标系 1. 基本概念 1.1欧拉角 欧拉旋转定理指出:任何一个旋转都...

    1. 基本概念

    1.1欧拉角

    欧拉旋转定理指出:任何一个旋转都可以用三个旋转的参数来表示。

    1. 三个旋转角的组合方式(是xyz还是yzx还是zxy)

    为了方便,我们用x指代只绕x轴的旋转,用y指代只绕y轴进行的旋转。在描述欧拉角的时候可以有以下方式:xyz, yzx,zxy 或者是反向顺序 zyx xzy yxz,共六种。

    1. 旋转角度的参考坐标系统(旋转是相对于固定的坐标系还是相对于自身的坐标系)

    在描述这3个旋转角的时候,可以是相对于某个固定的坐标系统(称为extrinsic rotations),也可以是相对于物体自身的坐标系统(称为intrinsic rotations)

    1. 使用旋转角度是左手系还是右手系

    旋转角度是正还是负,如果是右手系,那么符合右手定则决定正负,左手系则符合左手定则决定正负。

    1. 三个旋转角的记法
      在这里插入图片描述
      图 旋转的记法

    1.2左乘右乘

    左乘还是右乘

    左乘——相对于固定坐标系进行变换,(固定坐标系—我们上面提到的固定x轴旋转……,这里的固定,其实我们已经暗暗地定义了一个坐标系,这个坐标系我们潜意识认为它是不变的,这也就是世界坐标系。除了平时我们假设了固定坐标系就是我们认识的世界坐标系,其他情况是我们需要将坐标系1变换到坐标系2,这时,我们的坐标系2可以设为该固定坐标系)
    在这里插入图片描述

    V’ = R * V = Rz * Ry * Rx V,变换顺序是先绕x转,再绕y转,最后绕z转。
    右乘——相对于自身坐标系进行变换,每变一次下一次需要以新坐标系为标准进行变换。比如第一次变换后,原x轴的位置变为y轴,那么下一次绕y轴的变换,就会绕之前的x轴变换。
    在这里插入图片描述

    参考 https://blog.csdn.net/silence1214/article/details/8634664

    https://blog.csdn.net/a6333230/article/details/88343282?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

    1.3东北天坐标系

    1. 姿态角范围

      (1) 俯仰角(-90 ~ 90deg);
       (2) 横滚角(-180 ~ 180deg);
       (3) 航向角(-180 ~ 180deg,可转换为0~360deg);

    2. 轴向

      X轴向东:绕此轴旋转决定俯仰角;
      Y轴向北:绕此轴旋转决定横滚角;
      Z轴向上:绕此轴旋转决定航向角。

    1.4载体坐标系

    在这里插入图片描述
     右手坐标系(正负符合右手定则):

      X轴向右:绕此轴旋转决定俯仰角;
      Y轴向前,速度的方向:绕此轴旋转决定横滚角;
      Z轴向上:绕此轴旋转决定航向角。
    

    1.5捷联惯性导航系统

    捷联惯性导航系统(Strap-down Inertial Navigation System)是把惯性仪表直接固连在载体上,用计算机来完成导航平台功能的惯性导航系统。

    将惯性测量器件直接固连在载体上,再将其输出通过数学平台(又称捷联矩阵之转换到导航坐标系的参量),进行导航解算。系统的惯性测量器件为角速率陀螺仪和加速度计,它们固连在载体上,测得的都是载体坐标系下的物理量。

    2. 通过ECEF转换到参考点附近的ENU坐标系上

    推导过程参考:导航中坐标系及坐标转换

    使用ECEF坐标系下求解三维度距离,并在参考点附近进行转换

    • 1.参考点P=[lat,lon,height],经纬度

    图转换过程
    在这里插入图片描述

    3. 东北天坐标系到载体坐标系

    • 使用右手定则确定正负
    • 转换使用右乘矩阵(矩阵左乘)的方式,即旋转时是绕载体自己的轴进行旋转,动态
    • 旋转顺序为 Z -> X -> Y ,第一次绕 Z 轴旋转,称为航向角 Yaw,第二次 X 绕 轴旋转,称为俯仰角 Pitch,
      第三次绕 Y 轴旋转,称为翻滚角 Roll

    各轴正向的旋转矩阵,如下图所示:
    在这里插入图片描述
    图 旋转矩阵

    因为偏航角的正方向与定义的方向相反,故矩阵有所变化,指导过程如下,以下为手写计算图:
    在这里插入图片描述
    图推导过程

    1. GPS坐标WGS84到东北天坐标系ENU
    2. 常用导航坐标系 及 转换关系 (理论+程序)
    3. 初等矩阵的左乘右乘与行列变换的关系
    4. 导航中坐标系及坐标转换
    5. 左乘右乘
    展开全文
  • GPS坐标WGS84到东北天坐标系ENU

    千次阅读 2020-09-07 20:03:43
    GPS坐标WGS84到东北天坐标系ENU简述一、从WGS-84坐标系到ECEF坐标系1.先将经纬度坐标转为弧度坐标2.转ECEF坐标二、 通过ECEF转换到参考点附近的ENU坐标系上1.在参考点P2=[lat,lon,height]P_2=[lat,lon,height]P2​=...

    简述

    由于东北天坐标系是站心系,随着坐标原点,相对坐标在变化,因此需要确定站心的参考坐标值,即想要转换WGS-84坐标系 P 1 P_1 P1到东北天坐标系时,需要给出东北天坐标系坐标原点所在的位置的WGS-84坐标值 P 2 P_2 P2.
    基本思路是首先将2个WGS84坐标系转换到地心地固坐标系ECEF中,计算两个参考坐标之间的差,而后在指定的参考点附近进行展开。

    一、从WGS-84坐标系到ECEF坐标系

    1.先将经纬度坐标转为弧度坐标

    2.转ECEF坐标

    WGS坐标为 P = [ l a t , l o n , h e i g h t ] P=[lat,lon,height] P=[lat,lon,height],ECEF坐标为 E = [ x , y , z ] E=[x,y,z] E=[x,y,z]

    x = a ∗ c o s ( l o n ) 1 + ( 1 − e 2 ) ∗ ( t a n ( l a t ) ) 2 + h e i g h t ∗ c o s ( l o n ) ∗ c o s ( l a t ) x=\frac{a*cos(lon)}{\sqrt{1+(1-e^2)*(tan(lat))^2}} +height*cos(lon)*cos(lat) x=1+(1e2)(tan(lat))2 acos(lon+heightcos(lon)cos(lat)
    y = a ∗ s i n ( l o n ) 1 + ( 1 − e 2 ) ∗ ( t a n ( l a t ) ) 2 + h e i g h t ∗ s i n ( l o n ) ∗ s i n ( l a t ) y=\frac{a*sin(lon)}{\sqrt{1+(1-e^2)*(tan(lat))^2}} +height*sin(lon)*sin(lat) y=1+(1e2)(tan(lat))2 asin(lon+heightsin(lon)sin(lat)
    z = a ∗ ( 1 − e 2 ) ∗ s i n ( l a t ) 1 − e 2 ∗ ( s i n ( l a t ) ) 2 + h e i g h t ∗ s i n ( l a t ) z=\frac{a*(1-e^2)*sin(lat)}{\sqrt{1-e^2*(sin(lat))^2}} +height*sin(lat) z=1e2(sin(lat))2 a(1e2)sin(lat+heightsin(lat)

    经过此步骤后获得地心地固坐标系下的坐标 E 1 , E 2 E_1,E_2 E1,E2

    #  ENU坐标系转换至WGS84坐标系,输入ENU坐标x,y,z和参考点经纬高,输出WGS84坐标
    def enu2llh( enu,  orgllh):		
    	for item in range(2):
    		orgllh[item]=orgllh[item]*PI/180	
    
    	xyz=enu2xyz(enu, orgllh)
    	result=xyz2llh(xyz)
    
    	for item in range(2):
    		result[item]=result[item]*180/PI
    	return result
    
    #  WGS84坐标系转换至ECEF坐标系,输入经纬高,输出ECEF坐标x,y,z
    
    def llh2xyz(llh):
    
    	lat = llh[0]
    	lon = llh[1]
    	height = llh[2]
    
    	slat = np.sin(lat)
    	clat = np.cos(lat)
    	slon = np.sin(lon)
    	clon = np.cos(lon)
    
    	t2lat = (np.tan(lat))*(np.tan(lat))
    	tmp = 1 - e * e
    	tmpden = np.sqrt(1 + tmp * t2lat)
    	tmp2 = np.sqrt(1 - e * e*slat*slat)
    
    	x = (a*clon) / tmpden + height * clon*clat
    	y = (a*slon) / tmpden + height * slon*slat
    	z = (a*tmp*slat) / tmp2 + height * slat
    	return [x,y,z]
    

    二、 通过ECEF转换到参考点附近的ENU坐标系上

    使用ECEF坐标系下求解三维度距离,并在参考点附近进行转换

    1.在参考点 P 2 = [ l a t , l o n , h e i g h t ] P_2=[lat,lon,height] P2=[lat,lon,height]附近的旋转矩阵 R R R

    R = [ − s i n ( l o n ) , c o s ( l o n ) , 0 − s i n ( l a t ) ∗ c o s ( l o n ) , − s i n ( l a t ) ∗ s i n ( l o n ) , c o s ( l a t ) c o ( l a t ) ∗ c o s ( l o n ) , c o s ( l a t ) s i n ( l o n ) , s i n ( l a t ) ] R=\begin{bmatrix} &-sin(lon) ,& cos(lon),&0 & \\ &-sin(lat)*cos(lon) ,&-sin(lat)*sin(lon) ,&cos(lat) & \\ & co(lat)*cos(lon) ,&cos(lat)sin(lon), &sin(lat) & \end{bmatrix} R=sin(lon),sin(lat)cos(lon),co(lat)cos(lon),cos(lon),sin(lat)sin(lon),cos(lat)sin(lon),0cos(lat)sin(lat)

    2.旋转到ENU上得到坐标 N = [ E , N , U ] N=[E ,N ,U] N=[E,N,U]

    N = [ E N U ] = R ∗ Δ x = R ∗ [ x 1 − x 2 y 1 − y 2 z 1 − z 2 ] N=\begin{bmatrix} &E &\\ &N&\\ &U & \end{bmatrix}=R* \Delta x=R*\begin{bmatrix} &x_1-x_2 &\\ &y_1-y_2 &\\ &z_1-z_2 & \end{bmatrix} N=ENU=RΔx=Rx1x2y1y2z1z2

    #  ECEF坐标系转换至ENU坐标系,输入ECEF坐标x,y,z和参考点经纬高,输出ENU坐标
    def xyz2enu( xyz,  orgllh):
    
    	lat = orgllh[0]
    	lon = orgllh[1]
    	height = orgllh[2]
    
    	slat = np.sin(lat)
    	clat = np.cos(lat)
    	slon = np.sin(lon)
    	clon = np.cos(lon)
    
    	tmpxyz=[0,0,0]
    	orgxyz=[0,0,0]
    	tmporg=[0,0,0]
    	difxyz= [0,0,0]
    	enu=[0,0,0]
    
    	orgxyz=llh2xyz(orgllh)
    
    
    	for i in range(3):
    		tmpxyz[i] = xyz[i]
    		tmporg[i] = orgxyz[i]
    		difxyz[i] = tmpxyz[i] - tmporg[i]
    
    	R_list = [[-slon,clon,0] , [-slat * clon,-slat * slon,clat ], [clat*clon,clat*slon,slat ] ]
    
    	for i in range(3):
    		enu[0] = enu[0] + R_list[0][i] * difxyz[i]
    		enu[1] = enu[1] + R_list[1][i] * difxyz[i]
    		enu[2] = enu[2] + R_list[2][i] * difxyz[i]
    	return enu
    
    展开全文
  • GPS经纬度坐标WGS84到东北天坐标系ENU的转换常用坐标系介绍地理坐标系 (Geographic Coordinate System, GCS)地心地固坐标系 (ECEF)当地东、北、上 (ENU) 坐标基坐标相互转化地理坐标系到地心地固坐标系 (GCS to ECEF...

    常用坐标系介绍

    地理坐标系 (Geographic Coordinate System, GCS)

    可以说是最为广泛应用的一个地球坐标系,它给出一点的大地纬度、大地经度和大地高程而更加直观地告诉我们该点在地球中的位置,故又被称作纬经高坐标系。WGS-84坐标系的X轴指向BIH(国际时间服务机构)1984.0定义的零子午面(Greenwich)和协议地球极(CTP)赤道的交点。Z轴指向CTP方向。Y轴与X、Z轴构成右手坐标系。

    一句话解释就是:把前面提到的ECEF坐标系用在GPS中,就是WGS-84坐标系。

    其中:
    (1):大地纬度是过用户点P的基准椭球面法线与赤道面的夹角。纬度值在-90°到+90°之间。北半球为正,南半球为负。
    (2):大地经度是过用户点P的子午面与本初子午线之间的夹角。经度值在-180°到+180°之间。
    (3):大地高度h是过用户点P到基准椭球面的法线距离,基准椭球面以内为负,以外为正。

    在这里插入图片描述
    参考资料:地理信息系统中常用坐标系

    地心地固坐标系 (ECEF)

    在GPS中使用的被称为地球中心,地球固定(ECEF)。ECEF使用三维XYZ坐标(以米为单位)来描述GPS用户或卫星。“地球”这个词来自于坐标轴的原点(0,0,0)位于质心处(通过多年的跟踪卫星确定轨迹)。“地球固定”这个词意味着坐标轴相对于地球是固定的(也就是说,它们随地球旋转)。其 x 轴延伸通过本初子午线(经度 0 度)和赤道(0度纬度)。z 轴延伸穿过真正的北极(即与地球自转轴重合)。y 轴完成右手坐标系,穿过赤道和 90 度经度,如图 1所示

    图1  ECEF直角坐标系
    图1 ECEF直角坐标系

    当地东、北、上 (ENU) 坐标

    站心坐标系也叫东北天坐标系 ENU,用于表示以观察者为中心的其他物体
    的运动规律。以站心为坐标系原点,z 轴与椭球法线重合,向上为正,y 与椭球
    短半轴重合(北向),x 轴与椭球长半轴重合(东向)
    在这里插入图片描述

    基坐标相互转化

    地理坐标系到地心地固坐标系 (GCS to ECEF)

    这里因为地球近似为一个椭球,所以沿着椭球表面的法线方向不在 O e O_{e} Oe M M M的连线方向,首先我们假设它的椭球表面的法线方向的反向延长线交 Z Z Z轴与于点 M ′ M{'} M,设 ∣ P Q ∣ = N , ∣ P M ∣ = h |PQ|= N,|PM| = h PQ=N,PM=h, 在 X E C E F − E C E F − E C E F 在X_{ECEF}-_{ECEF}-_{ECEF} XECEFECEFECEF基坐标系下,根据几何关系,M的坐标为
    ( ( N + h ) cos ⁡ ( φ ) cos ⁡ ( λ ) , ( N + h ) cos ⁡ ( φ ) sin ⁡ ( λ ) , ( N + h ) sin ⁡ ( φ ) ) − O Q ) \left((N+h)\cos \left(\varphi\right) \cos (\lambda), (N+h) \cos \left(\varphi\right) \sin (\lambda), (N+h) \sin \left(\varphi\right)\right)-OQ) ((N+h)cos(φ)cos(λ),(N+h)cos(φ)sin(λ),(N+h)sin(φ))OQ)

    在这里插入图片描述
    然后我们将 M M M点所在的子午圈椭圆投影到一个二维的平面上,如下图所示,(gps的高度h不是与地心在一条直线上)
    在这里插入图片描述

    首先设p点所在的子午圈的方程设为
    x 2 R e 2 + z 2 R p 2 = 1 ① \tag*{①}\frac{x^{2}}{R_{e}^{2}}+\frac{z^{2}}{R_{p}^{2}}=1 Re2x2+Rp2z2=1 椭圆的扁率定义为
    f = R e − R p R e f=\frac{R_{e}-R_{p}}{R_{e}} f=ReReRp 椭圆的离心率定义为
    e = R e 2 − R p 2 R e ② e=\tag*{②}\frac{\sqrt{R_{e}^{2}-R_{p}^{2}}}{R_{e}} e=ReRe2Rp2 由②式可得   R p = R e 1 − e 2   ③ \tag*{③}\ R_{p}=Re \sqrt{1-e^{2}}\,  Rp=Re1e2
    将椭圆方程①两边同时对 x   x\, x求导,并结合③式,可得 2 x R e 2 + 2 z   d z / d x R e 2 ( 1 − e 2 ) = 0 \frac{2 x}{R_{e}^{2}}+\frac{2 z \mathrm{~d} z / \mathrm{d} x}{R_{e}^{2}\left(1-e^{2}\right)}=0 Re22x+Re2(1e2)2z dz/dx=0移项整理得 d z   d x = − ( 1 − e 2 ) x z \frac{\mathrm{d} z}{\mathrm{~d} x}=-\left(1-e^{2}\right) \frac{x}{z}  dxdz=(1e2)zx式中 d z   d x \frac{\mathrm{d} z}{\mathrm{~d} x}  dxdz表示椭圆在P点的切线的斜率,显然切线PE ⊥   \bot \, 法线PQ,所以 K P E K P Q = − 1   K_{PE} K_{PQ}=-1\, KPEKPQ=1,因为 P Q PQ PQ的斜率为 tan ⁡ φ   \tan \varphi \, tanφ,则
    d z   d x tan ⁡ φ = − ( 1 − e 2 ) x z tan ⁡ φ = − 1   \frac{\mathrm{d} z}{\mathrm{~d} x} \tan \varphi =-\left(1-e^{2}\right) \frac{x}{z} \tan \varphi =-1\,  dxdztanφ=(1e2)zxtanφ=1
    整理可得 z = x ( 1 − e 2 ) tan ⁡ φ ④ \tag*{④}z=x\left(1-e^{2}\right) \tan \varphi z=x(1e2)tanφ
    结合③④带入椭圆方程①中,可得到以地理纬度 φ   \varphi \, φ的椭圆的参数方程 x = R e 1 − e 2 sin ⁡ 2 φ cos ⁡ φ z = R e ( 1 − e 2 ) 1 − e 2 sin ⁡ 2 φ sin ⁡ φ } ⑤ \tag*{⑤}\left.\begin{array}{l} x=\frac{R_{e}}{\sqrt{1-e^{2} \sin ^{2} \varphi}} \cos \varphi \\ z=\frac{R_{e}\left(1-e^{2}\right)}{\sqrt{1-e^{2} \sin ^{2} \varphi}} \sin \varphi \end{array}\right\} x=1e2sin2φ Recosφz=1e2sin2φ Re(1e2)sinφ
    根据子午圈投影的图可得 x = N c o s φ ⑥ \tag*{⑥} x =N cos \varphi x=Ncosφ 将⑤中的 x   x\, x带入⑥式中 N = R e 1 − e 2 sin ⁡ 2 φ N =\frac{R_{e}}{\sqrt{1-e^{2} \sin ^{2} \varphi}} N=1e2sin2φ Re
    因此参数方程可以简写为 x = N cos ⁡ φ z = N ( 1 − e 2 ) sin ⁡ φ } ⑥ \tag*{⑥}\left.\begin{array}{l} x=N\cos \varphi \\ z=N\left(1-e^{2}\right) \sin \varphi \end{array}\right\} x=Ncosφz=N(1e2)sinφ}
    通过上面的椭圆参数方程⑥,结合投影到 2 D 平 面 上 的 Z 轴 与 E C E F 的 Z 轴 2D平面上的Z轴与ECEF的Z轴 2DZECEFZ是同一个可得 M M M点的坐标系 z M = N ( 1 − e 2 ) sin ⁡ φ + h s i n φ = ( z_{M}=N\left(1-e^{2}\right) \sin \varphi + hsin \varphi =( zM=N(1e2)sinφ+hsinφ=(,结合之前所说的{ECEF坐标系下 P P P的坐标系为 ( ( N + h ) cos ⁡ ( φ ) cos ⁡ ( λ ) , ( N + h ) cos ⁡ ( φ ) sin ⁡ ( λ ) , ( N + h ) sin ⁡ ( φ ) ) − O Q ) \left((N+h)\cos \left(\varphi\right) \cos (\lambda), (N+h) \cos \left(\varphi\right) \sin (\lambda), (N+h) \sin \left(\varphi\right)\right)-OQ) ((N+h)cos(φ)cos(λ),(N+h)cos(φ)sin(λ),(N+h)sin(φ))OQ)
    可以得出
    x M = ( N + h ) c o s ( φ ) c o s ( λ ) x_{M} = (N+h)cos(φ)cos(λ) xM=(N+h)cos(φ)cos(λ)
    y M = ( N + h ) c o s ( φ ) s i n ( λ ) y_{M} = (N+h)cos(φ)sin(λ) yM=(N+h)cos(φ)sin(λ)
    z M = ( b 2 a 2 N + h ) sin ⁡ φ z_{M} =\left(\frac{b^{2}}{a^{2}} N+h\right) \sin \varphi zM=(a2b2N+h)sinφ

    附上各参数的含义
    φ = l a t i t u d e \varphi = latitude φ=latitude
    λ = l o n g i t u d e \lambda = longitude λ=longitude
    h = h e i g h t a b o v e e l l i p s o i d ( m e t e r s ) h = height above ellipsoid (meters) h=heightaboveellipsoid(meters)
    N = R a d i u s o f C u r v a t u r e ( m e t e r s ) , d e f i n e d a s : a 1 − e 2 sin ⁡ 2 φ N = Radius of Curvature (meters), defined as:\frac{a}{\sqrt{1-e^{2} \sin ^{2} \varphi}} N=RadiusofCurvature(meters),definedas:1e2sin2φ a,这里的a就是我们上面推导公式的 R e R_{e} Re,详细的参考 ⑥ ⑥ 下面的推导.

    WGS84 Parameters
    a = 6378137 a = 6378137 a=6378137(椭圆的长半轴)这里表示赤道椭圆的长半轴
    b = a ( 1 − f ) = 6356752.31424518 b = a (1 -f ) = 6356752.31424518 b=a(1f)=6356752.31424518
    f = 1 298.257223563   f =\frac{1}{298.257223563}\, f=298.2572235631
    e = a 2 − b 2 a 2 e=\frac{\sqrt{a^{2}-b^{2}}}{a^{2}} e=a2a2b2 详细含义参照②

    我们把 M M M点放大,来说说gps的高度
    在这里插入图片描述
    高度 h   , h \,, h,gps , 的 的 altitude,(从上面图中可知gps的测量高度是GPS天线与参考椭球面的垂直距离,WGS84椭球面在世界范围内近似大地水准面),地球的长半轴 a a a与短半轴 b b b是已知的,然后地理纬度 φ   \varphi \, φ也是已知的,所以M点在 E C E F ECEF ECEF坐标系下已知.

    地心地固坐标系到东北天、站心坐标系 ECEF to ENU

    这里采用几何意义的方式来讲这个转化关系,这里为了直观,我们在p点画ENU坐标系
    在这里插入图片描述因为 E a s t ( x L o c a l ) East(x Local) East(xLocal)的方向与M点所在的子午线(P点子午线)垂直,所以我们首先把绕着 Z E C E F Z_{ECEF} ZECEF旋转至 X E C E F X_{ECEF} XECEF E a s t ( x L o c a l ) East(x Local) East(xLocal)的方向一致① E C E F 坐 标 系 ECEF坐标系 ECEF绕着 Z E C E F Z_{ECEF} ZECEF逆时针旋转 ( π 2 + λ ) (\frac{π}{2} + \lambda) (2π+λ),然后绕着 X E C E F X_{ECEF} XECEF旋转至 Z E C E F Z_{ECEF} ZECEF U p ( Z L o c a l ) Up(Z Local) Up(ZLocal)方向一致②绕着 X E C E F X_{ECEF} XECEF逆时针旋转 ( π 2 − φ ) (\frac{π}{2} - \varphi) (2πφ)③平移的部分就是之前LLA转到ECEF坐标系下的 M M M的坐标
    R z e c e f [ ( π 2 + λ ) ] = ( cos ⁡ [ ( π 2 + λ ) ] sin ⁡ [ ( π 2 + λ ) ] 0 − sin ⁡ [ ( π 2 + λ ) ] cos ⁡ [ ( π 2 + λ ) ] 0 0 0 1 ) R_{z_{ecef}}[(\frac{π}{2} + \lambda)]=\left(\begin{array}{ccc}\cos [(\frac{π}{2} + \lambda)] & \sin [(\frac{π}{2} + \lambda)] & 0 \\ -\sin [(\frac{π}{2} + \lambda)] & \cos [(\frac{π}{2} + \lambda)] & 0 \\ 0 & 0 & 1 \end{array}\right) Rzecef[(2π+λ)]=cos[(2π+λ)]sin[(2π+λ)]0sin[(2π+λ)]cos[(2π+λ)]0001

    R x e c e f [ ( π 2 − φ ) ] = [ 1 0 0 0 cos ⁡ [ ( π 2 − φ ) ] sin ⁡ [ ( π 2 − φ ) ] 0 − sin ⁡ [ ( π 2 − φ ) ] cos ⁡ [ ( π 2 − φ ) ] ] R_{x_{ecef}}[(\frac{π}{2} - \varphi)]=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & \cos [(\frac{π}{2} - \varphi)] & \sin [(\frac{π}{2} - \varphi)] \\ 0 & -\sin [(\frac{π}{2} - \varphi)] & \cos [(\frac{π}{2} - \varphi)] \end{array}\right] Rxecef[(2πφ)]=1000cos[(2πφ)]sin[(2πφ)]0sin[(2πφ)]cos[(2πφ)]

    R x e c e f [ ( π 2 − φ ) ]   R z e c e f [ ( π 2 + λ ) ] = ( − sin ⁡ λ cos ⁡ λ 0 − cos ⁡ λ sin ⁡ φ − sin ⁡ λ sin ⁡ φ cos ⁡ φ cos ⁡ λ cos ⁡ φ sin ⁡ λ cos ⁡ φ sin ⁡ φ ) R_{x_{ecef}}[(\frac{π}{2} - \varphi)] \, R_{z_{ecef}}[(\frac{π}{2} + \lambda)] = \left(\begin{array}{ccc} -\sin \lambda & \cos \lambda & 0 \\ -\cos \lambda \sin \varphi & -\sin \lambda \sin \varphi & \cos \varphi \\ \cos \lambda \cos \varphi & \sin \lambda \cos \varphi & \sin \varphi \end{array}\right) Rxecef[(2πφ)]Rzecef[(2π+λ)]=sinλcosλsinφcosλcosφcosλsinλsinφsinλcosφ0cosφsinφ

    在车辆运动中,我们一般车辆启动假设gps天线的初始位置在 { X r , Y r , Z r } \left\{X_{r}, Y_{r}, Z_{r}\right\} {Xr,Yr,Zr},车辆运动的位置为 { X p , Y p , Z p } \left\{X_{p}, Y_{p}, Z_{p}\right\} {Xp,Yp,Zp},则基于启动为原点的ENU的坐标为:
    [ x y z ] = [ − sin ⁡ λ cos ⁡ λ 0 − cos ⁡ λ sin ⁡ φ − sin ⁡ λ sin ⁡ φ cos ⁡ φ cos ⁡ λ cos ⁡ φ sin ⁡ λ cos ⁡ φ sin ⁡ φ ] [ X p − X r Y p − Y r Z p − Z r ] \left[\begin{array}{l} x \\ y \\ z \end{array}\right]=\left[\begin{array}{ccc} -\sin \lambda & \cos \lambda & 0 \\ -\cos \lambda \sin \varphi & -\sin \lambda \sin \varphi & \cos \varphi \\ \cos \lambda \cos \varphi & \sin \lambda \cos \varphi & \sin \varphi \end{array}\right]\left[\begin{array}{c} X_{p}-X_{r} \\ Y_{p}-Y_{r} \\ Z_{p}-Z_{r} \end{array}\right] xyz=sinλcosλsinφcosλcosφcosλsinλsinφsinλcosφ0cosφsinφXpXrYpYrZpZr
    这里讲的也很好

    地理坐标系到东北天、站心坐标系(GCS to ENU)

    GCS和ENU之间的坐标系转换通过先转换为ECEF实现。
    代码有时间再放上来吧

    展开全文
  • 本Matlab代码提供了地理坐标丰富的转换功能:涵盖了经纬度坐标东北天坐标;经纬度坐标转地心直角坐标;地心直角坐标东北天;地心直角坐标转经纬度的功能;代码简洁易懂,高效
  • 经纬高坐标系转到东北天坐标系

    千次阅读 2020-10-22 12:14:58
    基本思路:首先把经纬高(大地坐标系、lla、llh)转到直角坐标系(地心地固直角坐标系(ECEF)、xyz),然后再转为局部坐标系下(东北天坐标系、以第一点作为东北天坐标系的原点) 比较好的博客: ...
  • 旋转矩阵 Givens rotation 逆时针 [c−ssc]\begin{bmatrix}c &-s\\s &c\end{bmatrix}[cs​−sc​] Jacobi rotation 顺时针 [cs−sc]\begin{bmatrix}c &...右乘: 点不动,坐标系动,则
  • 坐标系转换
  • matlab编写的两个代码,是两个坐标系之间的相互转换,是自己写的,和网上其他代码相比更为精简,容易理解
  • 导航坐标系常用的导航坐标系有北东地和东北天两种。两种坐标系的指向分别定义如下:1.1 北东地坐标系X轴:指北;Y轴:指东;Z轴:指地。1. 2 东北天坐标系X轴:指东;Y轴:指北;Z轴:指。2. 载体坐标系与导航坐标系...
  • Cesium 中常用的坐标是以椭球中心为原点的地心地固坐标系,在地学问题中,我们常常使用的坐标系为三个坐标轴分别指向东方、北方、地表垂直向上方向的东北天坐标系。本文介绍了如何将二者进行相互转换。 Cesium中有个...
  • 对需要用到大地坐标系、地心直角坐标系、站心坐标系、机体坐标系转换的,该文档能极大的答疑解惑,并有不同坐标系的转换方法
  • 经纬度坐标系转换

    2020-12-19 12:54:15
    各种坐标体系之间如何转换?到底有哪些坐标体系?...互联网地图的坐标系现状地球坐标 (WGS84)国际标准,从 GPS 设备中取出的数据的坐标系国际地图提供商使用的坐标系火星坐标 (GCJ-02)也叫国测局坐标系中国标准,从...
  • 参考资料: ... ECEF坐标系和ENU坐标系之间的关系如上图所示...ENU坐标:东北天坐标系下的坐标,该坐标系的原点需要指定,原点向东为x轴,原点向北为y轴,原点指向天为z轴,构成右手直角坐标系,该系下的坐标表示都是米制
  • 1.1 坐标系转换关系

    2021-08-05 09:41:53
    地心地固坐标系ECEF 笛卡尔坐标(x,y,z) 三个垂直的坐标轴 ...地心地固坐标系的特点是:对于整个地球来说ECEF是一个全局参考坐标系,所以可以将分布在各地的局部坐标系的坐标转换到ECEF坐标系下。 ...
  • 常用坐标系转换实现

    千次阅读 多人点赞 2020-12-04 17:09:16
    坐标系的转换Matlab实现 常用的几种导航坐标系 1. 大地坐标系,WGS84(WorldGeodeticCoordinateSystem1984) 这是为GPS全球定位系统建立的坐标系统。WGS-84坐标系的原点在地球质心,Z轴指向BIH1984.0定义的协定地球...
  • 无人驾驶-坐标系转化一、坐标系概念1.1 WGS-84坐标系1.1.1 简介1.1.2 角度范围1.1.3 基本参数1.1.4 坐标系图示1.2 ECEF地心坐标系1.2.1 简介1.2.2 坐标系图解1.3 ENU东北天坐标系1.3.1 简介1.3.2 坐标系图解1.3.3 ...
  • 本文主要实现的是利用python的serial库,通过串口读取组合惯导的相关数据并解析,然后将经纬度高程坐标转换为当地的北东天坐标系和utm坐标系。 组合惯导简介 组合惯导融合了卫星定位系统和基于陀螺仪的定位定向...
  • 常用导航坐标系 及 转换关系 (理论+程序)

    千次阅读 多人点赞 2020-12-01 15:33:23
    一、坐标系定义与符号约定 在捷联惯导中,涉及到多种坐标系,下面给出常用的坐标系的定义: 1)惯性坐标系(i 系): 以地球质心为原点, 轴指向地球自转轴, 轴位 于赤道面指向空间任意点, 轴与其构成右手系...
  • 导航系统中坐标系介绍

    千次阅读 2021-12-14 10:15:09
    日常开发中常用到八大坐标系: 1. 惯性坐标系 圆心是地球的原点,Z轴沿地轴方向朝向北极, X轴和Y轴位于赤道平面内,与Z轴满足右手法则,并且X轴和Y轴分别指向两个恒星。也就是说不随着地球的自转而发生变化。它是...
  • GNSS学习笔记-坐标转换

    千次阅读 2021-01-14 10:59:27
    GNSS 坐标转换GNSS计算主要涉及三个坐标系,地心地固坐标系,地理坐标系和站心坐标系。这里主要介绍一下三个坐标的含义和转换公式。地心地固坐标系如图X,Y,Z表示 (ECEF坐标系),以地心O为坐标原点,Z轴指向协议地球...
  • ENU: 世界坐标系东北天 ENU 和 UTM 的区别: ENU局部坐标系采用三维直角坐标系来描述地球表面,实际应用较为困难,因此一般使用简化后的二维投影坐标系来描述。 UTM: 在众多二维投影坐标系中,统一横轴墨卡托...
  • 一、简介 ...1.3 东北天坐标系(ENU) 二、坐标系间的转换 2.1 LLA坐标系转ECEF坐标系 2.2 ECEF坐标系转LLA坐标系 2.3 ECEF坐标系转ENU坐标系 2.4 ENU坐标系转ECEF坐标系 2.5 LLA坐标系直接转ENU坐标系
  • 1 坐标系定义及转换 1.1 坐标系定义 (1) ECEF坐标系 也叫地心地固直角坐标系。其原点为地球的质心,x轴延伸通过本初子午线(0度经度)和赤道(0deglatitude)的交点。 z轴延伸通过的北极(即,与地球旋转轴重合)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,621
精华内容 648
关键字:

东北天坐标系

友情链接: humms.rar