注意:做一个十字路口的方法是在道路分叉之后几米的位置画一条线(如图中绿色虚线),生成一个十字路口。
geoReference元素定义了该文件使用的投影坐标系,其中地理坐标系为WGS-84,而投影坐标系采用的是Transverse_Mercator,横轴墨卡托投影。
在OpenDRIVE数据中大量使用的位置信息都是投影后的xy坐标,而除了该投影坐标系,还定义了一种轨迹坐标系.
<header revMajor="1" revMinor="4" vendor="atlatec"> <geoReference><![CDATA[+proj=tmerc +a=6378137 +b=6378137 +lon_0=8.6121961962669307 +x_0=1.0621731827420435e-09 +y_0=-5572023.3775849724 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs]]></geoReference> </header>
绿色区域车道-1和车道3指的是路肩(shoulder)。
道路33781969的方向是:东到西。东边连接的是一个十字路口(predecessor=33554597),西边连接的也是一个十字路口(successor=33554492)。
首先看东边的十字路口的情况,id=33554597。
注:车道4->-4也许并不对,因为connectingRoad没有-4这个车道。
再看西边的十字路口的情况,id=33554597。
[注]关于contactpoint的确定:
问题1:多长的reference line进行一次参数三次多项式的拟合?
回答:也许跟道路的走向(下面截图的hdg反映的就是道路的走向,应该是和x轴(笛卡尔坐标系)的夹角)有关系,在走向发生较大变化的时候,重新进行reference line的拟合。hdg:笛卡尔坐标系中x轴正向逆时针旋转到道路的reference line的方向。
一个road的并不是只有一根reference line,因为假如一个road长度为100米,有可能这100米有些地方是直路,有些地方是拐弯的曲线,每一条都是一个geometry标签,通过s(起始位置)和长度进行连接(后一个s是前一个的length)。
而属性中的x,y,hdg分别是投影坐标系xy下的起始点位置以及起始点的角度(定义了曲线方程以及起始点坐标和长度,曲线肯定就能画出来了)。
参数三次多项式中参数的拟合方程如下:
5个参数,3个点即可解除方程未知数,一个点可以列出两个方程(u=f(p)和v=f(p)).
note: in order to stick to the start point and orientation according to the <geometry> node, the parameters au, av and bv will have to be zero. providing non-zero values for these parameters will lead to a shift and rotation of the s/t co-ordinates.
问题2:如何使参数bv=0?
问题3:reference line的偏移到底是不是偏移到道路中心那里?如果不是,到底偏移到哪里去了?又为什么偏移到那里?
回答3:应该是不一定偏移到了道路中心那里,偏移到了坐标(x="-1053.0754021436494" y="-1683.0963299330324")处( 图3)。
图1
图2
图3
<laneSection s="0"> <center> <lane id="0" type="driving" level="false"> <roadMark sOffset="0" color="standard" width="0.16130402690251466" weight="standard" type="solid"> <type name="solid"> <line length="2.933048469244568" space="0" width="0.161304" sOffset="0" tOffset="-0" /> </type> </roadMark> <roadMark sOffset="2.933048469244568" type="none" width="0" /> </lane> </center>
id=0代表是一条车道标线。
类型:可以驾驶
是否考虑超高:不
道路标线的颜色:标准
宽度:约16cm
实线,所以没有间隔。(space=0)