SLAM学习 | 世界坐标系转经纬度误差分析
概要: SLAM研究过程中常常使用ENU(东、北、天)坐标系或NED(北、东、地)坐标系作为绝对世界坐标系,以便后续和经纬度相联系。本文从数量上简要分析ENU或NED坐标系与经纬度之间的转换误差,并得出一些初步的结论。
关键字: 世界坐标系; 经纬度; 转换误差
1 世界坐标系ENU和NED简介
ENU(东、北、天)坐标系就是分别以原点正东方、正北方和垂直地表正上方作为XYZ三轴正方向的坐标系,ENU坐标系又称为站心坐标系或站点坐标系;NED(北、东、地)坐标系就是分别以原点正北方、正东方和正下方作为XYZ三轴正方向的坐标系,NED坐标系ENU坐标系本质上是一体两面的。
ENU坐标系和NED坐标系如图1所示:
|
|
在北半球有如下事实:在ENU坐标系中,X正轴方向和Y轴正方向分别是经度和纬度增加的方向;NED坐标系中,X正轴方向和Y轴正方向分别是纬度和经度增加的方向。同时,如果把地球近似成一个规则的球体,那么再地球上的任何一个经度处,一个纬度之间的距离是恒定的;在地球上的不同纬度处,一个经度之间的距离是变化的。下面就以ENU为例,分析ENU与经纬度之间的转换所产生的误差。
2 ENU和经纬度的转换误差
已知纬度求该纬度处每一经度之间的距离有若干种估算方法,这里介绍两种将地球近似为标准球体的方法。
方法一:
将地球近似为标准球体,假定其半径 R=6371 千米,则纬度 x(角度制单位) 处的大圆半径是:
则在该大圆上每一度(角度制)圆心角对应的弧长,也就是该纬度处每一经度之间的距离是:
方法二:
将地球近似为标准球体,假定赤道周长为k = 111.130千米(一个比较准确的数值),则纬度 x(角度制单位) 处每一经度之间的距离是:
以上两种方法都是估算,那么我们选用什么数据作为某一纬度处每一经度之间的距离的真实值呢?推荐这样一个网页:GPSSPG,该网页具有测距功能,给出任意两点的经纬度,就可以得出两点之间的距离,且两点之间的距离可以拓展为多点的折线总长度,准确率较高。我们就用这个网页给出的结果作为GroundTruth。
现在进行实验对比。以北纬30.5365189634810度为例,测算该纬度上东经114度至东经115度之间的距离。首先是GPSSPG网页的结果,约为 95.754 千米,如图2所示:
然后再测算两种估算方法的误差:
方法一: 2*pi*6371*cos(30.5365189634810*pi/180)/360 = 95.773 (单位:千米)
方法二: 111.130*cos(30.5365189634810*pi/180) = 95.717 (单位:千米)
上述结果显示,两种估算方法和真实值之间的误差分别为19米和37米,每公里误差分别是19.8厘米和38.6厘米,基本上可以忽略不计。
上面的实验及结果表明,ENU坐标系和NED坐标系下的坐标转经纬度时可以使用上述的两种近似方法,并且误差极小,在绝大多数应用——包括SLAM——中都可以忽略不计。