CN116933357A - 一种基于点云数据的几何线形参数化道路建模方法 - Google Patents
一种基于点云数据的几何线形参数化道路建模方法 Download PDFInfo
- Publication number
- CN116933357A CN116933357A CN202310648356.5A CN202310648356A CN116933357A CN 116933357 A CN116933357 A CN 116933357A CN 202310648356 A CN202310648356 A CN 202310648356A CN 116933357 A CN116933357 A CN 116933357A
- Authority
- CN
- China
- Prior art keywords
- road
- point
- angle
- math
- list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 239000000463 material Substances 0.000 claims abstract description 6
- 239000002344 surface layer Substances 0.000 claims description 9
- 239000007787 solid Substances 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 3
- 238000013499 data model Methods 0.000 abstract description 8
- 238000012937 correction Methods 0.000 abstract description 5
- 230000000007 visual effect Effects 0.000 abstract description 4
- 230000011218 segmentation Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000010276 construction Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Computational Mathematics (AREA)
- Architecture (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于点云数据的几何线形参数化道路建模方法,包括步骤:S1、根据道路中线点集和函数拟合曲线,计算标准差,结合预设工程精度得到拟合道路中线;S2、根据道路中心线的点集的三维坐标,计算道路的偏角;S3、设计计算方法,得到道路模型横断面各节点的三维坐标信息;S4、生成一系列横断面并在横断面间放样,得到道路结构实体;S5、赋予道路实体结构材质信息及其他属性信息,导入Civil3d得到数据模型。本发明借助Civil3d内置的可视化编程平台Dynamo,对导入Civil3d的点云进行偏差修正和分段建模,实现由点云数据自动化构建道路实体模型,并赋予属性信息得到完整的道路模型数据。
Description
技术领域
本发明涉及点云、几何线形、道路建模技术领域,尤其涉及一种基于点云数据的几何线形参数化道路建模方法。
背景技术
BIM(Building Information Modeling,建筑信息模型)是一种智能三维模型的建筑信息管理系统,是新一代信息技术与工程领域深度结合的应用方式。
依托BIM技术构建的三维数据模型可以很好地反应已建或未建项目的实体结构,统计建设所需的材料和时间,模拟工程建设实施过程。因此利用BIM技术可以实现从施工到养护的全生命周期管理。
依托BIM技术构建的三维数据模型不仅可以用于指导实际工程如道路的施工建设,还可以在搭建无人驾驶系统测试场景,复原古建筑指导修复工程等多个方面得到应用。
道路工程建设周期长,工程难度较大,需要多个专业进行协作,且道路工程建设完成以后的养护和改造需求比其他的建筑工程更高,因此BIM技术在道路领域有着非常广阔的研究前景和应用空间。
Dynamo是BIM参数化建模中经常采用的辅助插件。基于可视化编程语言和程序化设计,设计人员可以利用Dynamo对特定的需求编写出一个由不同功能的节点和连接线构成的程序,并在BIM平台中应用,从而提高建模的自动化水平。
LiDAR(Light Detection and Ranging,激光雷达)是通过三维激光扫描仪器对测量目标或地点进行扫描,并以海量点数据的形式返回收集到的信息,获得目标表征点云数据的技术手段。借助激光雷达技术对道路场景进行扫描可以获得高精度、高密度的点云数据。
在建设智慧交通,实现基础设施数字化的大背景下,道路工程的养护、改造和道路几何信息二次利用将会越来越频繁地被提上日程。但是要完成这些工作往往需要对整条道路甚至整个路网进行测量和记录。面对这样的工作量,传统的测量手段效率很低而且对测绘人员的要求较高,而激光雷达扫描可以更快更好地胜任这些工作。
当前,由点云到BIM数据模型的技术在建筑领域的应用较多,但是在道路领域的应用还比较稀少。道路的横向距离很长,由点云提取的道路几何信息误差相对较大,需要进行偏差修正。而且道路的几何线形复杂,要根据点云数据在Civil3d中自动化地构建完整的道路模型依然是一个难点。
通过激光雷达扫描提取道路场景的信息,并在BIM平台中构建三维数据模型也是目前研究的热点方向。然而目前基于点云数据构建道路三维数据模型的依然存在以下问题:
根据点云数据构建的三维模型与基于图纸的三维模型相比误差更大,且存在对齐方面的问题。这是点云数据的自身属性带来的偏差,只能通过提高建模参数化水平,降低人工操作量来减小误差。
此外,比较常见的点云到BIM建模手段包括从点云提取特征线,构建二维图纸再建模;对点云数据表面进行拟合生成网络模型,再利用BIM进行二次开发生成三维模型;对点云进行特征值提取并构建标准件集合,通过特征值识别和调用标准件构建三维数据模型。然而这些方法各自存在缺陷,第一种方法存在大量的人工操作,容易带来误差;第二种方法在数据提取和拟合方面依然存在误差,最终生成的道路三维模型边界存在“锯齿”,不符合实际;第三种方法适用于房屋,建筑和一些基础设施等垂直结构的建模,但是在道路等水平结构的建模中较难应用。这些方法都不适合进行有复杂几何线形的道路建模,因此有必要开发一种基于点云数据的几何线形参数化道路建模方法。
发明内容
本发明所要解决的技术问题在于:针对现有的复杂几何线形的道路建模中粗在的各种缺陷和问题,提供了一种基于点云数据的几何线形参数化道路建模方法。
为解决以上技术问题,本发明提供如下技术方案:一种基于点云数据的几何线形参数化道路建模方法,包括如下步骤:
S1、根据道路中心线点数据生成点集,对点集拟合得到平滑曲线,根据点到平滑曲线的距离计算标准差,结合预设工程精度得到拟合道路中线;
S2、在拟合得到的道路中线上进行插值,得到桩号点,再基于桩号点的三维坐标,计算道路偏角;
S3、根据道路横断面的结构对道路模型断面进行划分,然后根据桩号点的坐标和所划分的其他横断面基点的位置关系,计算得到道路模型横断面各基点的三维坐标信息;
S4、根据道路模型横断面各基点的三维坐标信息,生成各个横断面轮廓,之后在各个横断面轮廓之间进行放样,得到道路实体模型;
S5、利用道路实体模型,以道路属性信息为输入,获得道路几何模型。
进一步地,前述的步骤S1中,根据道路中心线点数据生成点集,具体为:根据曲率将道路中线点数据分割成直线段,缓和曲线段、圆曲线段并分类储存,顺序读取直线段,缓和曲线段和、圆曲线段的点云数据。
进一步地,前述的步骤S1包括如下子步骤:
S1.1、将点云的三维坐标分别储存在三个列表中,将点云三维坐标数据整合并可视化;S1.2、清理道路中线点数据中距离过近或重叠的冗余点;
S1.3、针对直线段数据,拟合直线;
针对圆曲线段,拟合圆曲线;
针对缓和曲线,将缓和曲线段数据编写函数,然后拟合缓和曲线;编写函数如下:
y=(p1×x4+p2×x3+p3×x2+p4×x+p5)/(q1×x2+q2×x) (1)
其中p1、p2、p3、p4、q1、q2分别为拟合函数参数;
S1.4、提取道路中线点到道路中线曲线的距离,将道路中线点到拟合曲线的距离与点的三维坐标连接起来,创建距离列表;
S1.5:计算点到拟合曲线的距离的平均值,计算公式如下:
其中,di为各点到拟合曲线的距离,n为道路中线点集中的点的数量;
计算道路中线点到拟合曲线的距离的总体标准差,计算公式如下:
然后,判断总体标准差是否小于预设工程精度,是则得到拟合道路中线,执行步骤S1.7,否则执行步骤S1.6;
S1.6、筛选并删除到拟合曲线距离最大的预设比例的点数据,然后返回执行步骤S1.5;S1.7、在拟合好的道路中线上以预设值为间隔取桩号点,并获得桩号点的三维坐标。
进一步地,前述的步骤S2包括以下子步骤:
S2.1、将桩号点的三维坐标分别储存在X1列表,Y1列表和Z1列表中;令X1列表和Y1列表内所有项整体后移一个元素得到X2列表和Y2列表;
S2.2、令X1列表与X2列表相减得到X3列表,Y1列表与Y2列表相减得到Y3列表,通过List.DropItems删去X1列表和Y1列表的第一项;
S2.3、编写脚本,验证X3列表中的项是否全部为0,如果为全部为0则赋值道路偏角angle=90°;否则执行步骤S2.4;
S2.4、令Y3列表与X3列表各项相除,得到除了起始点外其他桩号点的道路偏角的Tan值,算出桩号点处的道路偏角;
S2.5、将路段的起、终点分别导入桩号点列表的开头和结尾中,并使起点和终点的道路偏角与桩号点列表中的第一个点和最后一个点相同。
进一步地,前述的步骤S3具体为:
直线段基点计算如下:
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z);
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z-h);
Point.ByCoordinates(x-D/2*Math.Sin(angle),y-D/2*Math.Cos(angle),z-h);
Point.ByCoordinates(x-D/2*Math.Sin(angle),y-D/2*Math.Cos(angle),z);
其中,x、y、z分别为道路中线点的三维坐标,D为道路的宽度,h为道路面层的厚度,angle为道路偏角;
圆曲线基点计算如下:
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z+H);
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z+H-h);
Point.ByCoordinates(x-(D/2+d)*Math.Sin(angle),y-(D/2+d)*Math.Cos(angle),z-H-h);
Point.ByCoordinates(x-(D/2+d)*Math.Sin(angle),y-(D/2+d)*Math.Cos(angle),z-H);
其中x、y、z分别为道路中线点的三维坐标,D为道路的宽度,H是面层厚度,d为道路加宽,h为道路超高;
缓和曲线基点计算如下:
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z);
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z-h);
Point.ByCoordinates(x-(D/2+d*a/s)*Math.Sin(angle),y-(D/2+d*a/s)*Math.Cos(angle),z-
h);
Point.ByCoordinates(x-(D/2+d*a/s)*Math.Sin(angle),y-(D/2+d*a/s)*Math.Cos(angle),z);其中,x、y、z分别为道路中线点的三维坐标,D为道路的宽度,H是面层厚度d为道路加宽,h为道路超高,a为当前点到缓和曲线起点的距离,s为缓和曲线长度。
进一步地,前述的步骤S4、根据道路模型横断面各基点的三维坐标信息,生成各个横断面轮廓,之后在各个横断面轮廓之间进行放样,得到道路实体模型;
步骤S4包括以下子步骤:
S4.1:创建连接各个横断面基点的直线,获得横断面轮廓;
S4.2:在各个横断面轮廓之间进行放样,得到道路实体模型。
进一步地,前述的步骤S5具体为:将实体模型应用于Civil3d平台,并设置道路属性性质信息。
进一步地,前述的道路属性性质信息包括道路名称、材质以及类别。
相较于现有技术,本发明采用以上技术方案的有益技术效果如下:本发明一种基于点云数据的几何线形参数化道路建模方法建模过程更加可控,可以通过修改拟合曲线和横断面基点调整模型的几何形状。此外,与现有技术方案相比,本发明的建模结果更加精确。通过对道路中线点的偏差修正和曲线拟合,得到的中线线形会更加平滑,更符合实际的道路情况。借助对横断面基点的设计,可以更完整地还原道路结构。并且,与现有技术相比,本发明还提高了道路建模的自动化水平。将数据进行分割、拟合和导入即可得到完整的道路实体模型,减少了设计人员的操作量。
附图说明
图1是本发明的流程图;
图2是本发明中Dynamo节点链流程图;
图3是本发明中偏差修正流程图;
图4是本发明中道路偏角计算流程图及示意图;
图5是本发明中道路横断面基点横坐标计算示意图;
图6是本发明中道路横断面基点纵坐标计算示意图;
图7是本发明中MatLab拟合缓和曲线函数示意图;
图8是本发明中拟合道路中线示意图;
图9是本发明中道路中线和横断面实例图;
图10是本发明中道路实体模型实例图。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
在本发明中参照附图来描述本发明的各方面,附图中示出了许多说明性实施例。本发明的实施例不局限于附图所述。应当理解,本发明通过上面介绍的多种构思和实施例,以及下面详细描述的构思和实施方式中的任意一种来实现,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。
本发明实施例中的“Dynamo”,是指Civil3d软件的可视化编程平台。实施例公开的“BIM”,是指建筑信息模型。本发明充分利用Civil3d内置的可视化编程平台(Dynamo),对导入Civil3d的点云进行偏差修正和分段建模,从而实现由点云数据自动话构建道路实体模型,并赋予属性信息得到完整的道路模型数据。
如图1所示,一种基于点云数据的几何线形参数化道路建模方法,包括如下步骤:S1、根据道路中心线点数据生成点集,对点集拟合得到平滑曲线,根据点到平滑曲线的距离并计算标准差,结合预设工程精度得到拟合道路中线;
S2、在拟合得到的道路中线上进行插值,得到桩号点,再基于桩号点的三维坐标,计算道路偏角;
S3、根据道路横断面的结构对道路模型断面进行划分,并根据桩号点的坐标和所划分的其他横断面基点的位置关系计算得到道路模型横断面各基点的三维坐标信息;
S4、根据道路模型横断面各基点的三维坐标信息,生成各个横断面轮廓,之后在各个横断面轮廓之间进行放样,得到道路实体模型;
S5、利用道路实体模型,以道路属性信息为输入,获得道路几何模型。
作为本发明提出的一种基于点云数据的几何线形参数化道路建模方法的一个优选实施例,步骤S1中,根据道路中心线点数据生成点集,具体为:根据曲率将道路中线点数据分割成直线段,缓和曲线段、圆曲线段并分类储存,利用File Path、File From Path顺序读取直线段,缓和曲线段和、圆曲线段的点云数据。
如图2所示,步骤S1包括如下子步骤:
S1.1、将点云的三维坐标分别被储存在三个列表中,即X列表,Y列表和Z列表,道路几何信息则被储存在其他列,在“File Path”节点中,找到储存道路数据的文件路径并读取。通过Point.ByCoordinates节点将点云三维坐标数据整合并可视化;
S1.2、通过Point.PruneDuplicates节点清理道路中线点数据中距离过近或重叠的冗余点;S1.3、针对直线段数据,通过Line.ByBestFitThroughPoints节点拟合直线;
针对圆曲线段,通过Arc.ByBestFitThroughPoints节点拟合圆曲线;
如图7的本发明中MatLab拟合缓和曲线函数示意图,以及图8本发明中拟合道路中线示意图所示,针对缓和曲线,将缓和曲线段数据导入MatLab中通过Code Block节点编写函数,如下式,然后拟合缓和曲线;
y=(p1×x4+p2×x3+p3×x2+p4×x+p5)/(q1×x2+q2×x) (1)
其中,p1,p2,p3,p4,p5,q1,q2分别为拟合函数参数;实施例中,p1=04,p2=1.2405,p3=-573.5684,p4=-2.1379,p5=0.2215,q1=-655.6192x2,q2=-7.4682,拟合函数1的拟合评价指标如表1所示。
表1
SSE | 18.0851 |
R2 | 0.9988 |
RMSE | 0.5584 |
S1.4、利用Geometry.DistanceTo节点提取道路中线点到道路中线曲线的距离,用Dictionary.ByKeysValues将道路中线点到拟合曲线的距离与点的三维坐标连接起来,创建距离列表。
结合图3的本发明中偏差修正流程图,
S1.5:利用Code Block计算点到拟合曲线的距离的平均值如下式:
其中,di为各点到拟合曲线的距离,n为道路中线点集中的点的数量。
利用Code Block计算道路中线点到拟合曲线的距离的总体标准差,如下式:
然后判断总体标准差是否小于预设工程精度,是则得到拟合道路中线,执行步骤S1.7,否则执行步骤S1.6;
S1.6、利用List.Sort筛选并删除到拟合曲线距离最大的预设比例的点数据,本实施例中可以选5%,然后返回执行步骤S1.5;
S1.7、通过Curve.PointAtSegmentLength节点在拟合好的道路中线上以预设值为间隔取桩号点,,并获得桩号点的三维坐标,本实施例中选取5米为间隔。
结合图4发明中道路偏角计算流程图及示意图,步骤S2包括以下子步骤:
S2.1、将桩号点的三维坐标分别储存在X1列表,Y1列表和Z1列表中;通过List.ShiftIndices节点令X1列表和Y1列表内所有项整体后移一个元素得到X2列表和Y2列表;
S2.2、令X1列表与X2列表相减得到X3列表,Y1列表与Y2列表相减得到Y3列表,通过List.DropItems删去X1列表和Y1列表的第一项;
S2.3、利用Python Script编写脚本,验证X3列表中的项是否全部为0,如果为全部为0则赋值道路偏角angle=90°;否则执行步骤S2.4;
S2.4、令Y3列表与X3列表各项相除,得到除了起始点外其他桩号点的道路偏角的Tan值,借助Math.Atan节点算出桩号点处的道路偏角;
S2.5、通过List.FirstItem、List.LastItem和List.Create节点将路段的起、终点分别导入桩号点列表的开头和结尾中,并使起点和终点的道路偏角与桩号点列表中的第一个点和最后一个点相同。
参考图5本发明中道路横断面基点横坐标计算示意图和图6本发明中道路横断面基点纵坐标计算示意图;
步骤S3具体为:
直线段基点计算如下:
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z);
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z-h);
Point.ByCoordinates(x-D/2*Math.Sin(angle),y-D/2*Math.Cos(angle),z-h);
Point.ByCoordinates(x-D/2*Math.Sin(angle),y-D/2*Math.Cos(angle),z);
其中,x、y、z分别为道路中线点的三维坐标,D为道路的宽度,h为道路面层的厚度,angle为道路偏角;
圆曲线基点计算如下:
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z+H);
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z+H-h);
Point.ByCoordinates(x-(D/2+d)*Math.Sin(angle),y-(D/2+d)*Math.Cos(angle),z-H-h);
Point.ByCoordinates(x-(D/2+d)*Math.Sin(angle),y-(D/2+d)*Math.Cos(angle),z-H);
其中x、y、z分别为道路中线点的三维坐标,D为道路的宽度,h为道路面层的厚度,d为道路加宽,h为道路超高;
缓和曲线基点计算如下:
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z);
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z-h);
Point.ByCoordinates(x-(D/2+d*a/s)*Math.Sin(angle),y-(D/2+d*a/s)*Math.Cos(angle),z-
h);
Point.ByCoordinates(x-(D/2+d*a/s)*Math.Sin(angle),y-(D/2+d*a/s)*Math.Cos(angle),z);其中,x、y、z、分别为道路中线点的三维坐标,D为道路的宽度,h为道路面层的厚度,d为道路加宽,h为道路超高,a为当前点到缓和曲线起点的距离,s为缓和曲线长度。
拟合道路横断面轮廓并放样,参见图9本发明中道路中线和横断面实例图;以及图10本发明中道路实体模型实例图。
根据提取的道路中心线上各点的三维坐标和设计的算法,在每一个道路中心线点的位置都生成一个横断面。在这一连串横断面之间放样,便可以生成一个均匀变化的道路实体模型。具体实施为以下步骤:通过“PolyCurve.ByPoints”创建连接各个横断面节点的直线,从而获得横断面轮廓;
通过“Solid.ByLoft”在各个横断面轮廓之间进行放样,得到道路实体模型;
对模型赋予属性信息并将图形导入Civil3d。在上一步中生成的道路实体模型是格空白的模型,必须对模型添加属性信息才能得到完整的可以体现道路实际情况的数据模型。具体实施为以下步骤:
通过“Autodesk>”类别下的各个选项给模型赋予属性信息;
通过“ObjectExtensions.SetMaterial”节点给模型赋予材质信息;
通过“Object.ByGeometry”节点将实体模型应用于Civil3d平台,并将上述截图点连接到对应的接口中。模型同步在Civil3d中显示,可保存为标准格式,能通过Revit或其他三维建模软件中的编辑命令进行二次编辑或改造,还能导入相应的应用软件使用。
虽然本发明已以较佳实施例阐述如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。
Claims (8)
1.一种基于点云数据的几何线形参数化道路建模方法,其特征在于,包括如下步骤:
S1、根据道路中心线点数据生成点集,对点集拟合得到平滑曲线,根据点到平滑曲线的距离计算标准差,结合预设工程精度得到拟合道路中线;
S2、在拟合得到的道路中线上进行插值,得到桩号点,再基于桩号点的三维坐标,计算道路偏角;
S3、根据道路横断面的结构对道路模型断面进行划分,然后根据桩号点的坐标和所划分的其他横断面基点的位置关系,计算得到道路模型横断面各基点的三维坐标信息;
S4、根据道路模型横断面各基点的三维坐标信息,生成各个横断面轮廓,之后在各个横断面轮廓之间进行放样,得到道路实体模型;
S5、利用道路实体模型,以道路属性信息为输入,获得道路几何模型。
2.根据权利要求1所述的一种基于点云数据的几何线形参数化道路建模方法,其特征在于,步骤S1中,根据道路中心线点数据生成点集,具体为:根据曲率将道路中线点数据分割成直线段,缓和曲线段、圆曲线段并分类储存,顺序读取直线段,缓和曲线段和、圆曲线段的点云数据。
3.根据权利要求1所述的一种基于点云数据的几何线形参数化道路建模方法,其特征在于,所述步骤S1包括如下子步骤:
S1.1、将点云的三维坐标分别储存在三个列表中,将点云三维坐标数据整合并可视化;
S1.2、清理道路中线点数据中距离过近或重叠的冗余点;
S1.3、针对直线段数据,拟合直线;
针对圆曲线段,拟合圆曲线;
针对缓和曲线,将缓和曲线段数据编写函数,然后拟合缓和曲线;编写函数如下:
y=(p1×x4+p2×x3+p3×x2+p4×x+p5)/(q1×x2+q2×x) (1)
其中p1、p2、p3、p4、q1、q2分别为拟合函数参数;
S1.4、提取道路中线点到道路中线曲线的距离,将道路中线点到拟合曲线的距离与点的三维坐标连接起来,创建距离列表;
S1.5:计算点到拟合曲线的距离的平均值,计算公式如下:
其中,di为各点到拟合曲线的距离,n为道路中线点集中的点的数量;
计算道路中线点到拟合曲线的距离的总体标准差,计算公式如下:
然后,判断总体标准差是否小于预设工程精度,是则得到拟合道路中线,执行步骤S1.7,否则执行步骤S1.6;
S1.6、筛选并删除到拟合曲线距离最大的预设比例的点数据,然后返回执行步骤S1.5;
S1.7、在拟合好的道路中线上以预设值为间隔取桩号点,并获得桩号点的三维坐标。
4.根据权利要求3所述的一种基于点云数据的几何线形参数化道路建模方法,其特征在于,步骤S2包括以下子步骤:
S2.1、将桩号点的三维坐标分别储存在X1列表,Y1列表和Z1列表中;令X1列表和Y1列表内所有项整体后移一个元素得到X2列表和Y2列表;
S2.2、令X1列表与X2列表相减得到X3列表,Y1列表与Y2列表相减得到Y3列表,通过List.DropItems删去X1列表和Y1列表的第一项;
S2.3、编写脚本,验证X3列表中的项是否全部为0,如果为全部为0则赋值道路偏角angle=90°;否则执行步骤S2.4;
S2.4、令Y3列表与X3列表各项相除,得到除了起始点外其他桩号点的道路偏角的Tan值,算出桩号点处的道路偏角;
S2.5、将路段的起、终点分别导入桩号点列表的开头和结尾中,并使起点和终点的道路偏角与桩号点列表中的第一个点和最后一个点相同。
5.根据权利要求4所述的一种基于点云数据的几何线形参数化道路建模方法,其特征在于,步骤S3具体为:
直线段基点计算如下:
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z);
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z-h);
Point.ByCoordinates(x-D/2*Math.Sin(angle),y-D/2*Math.Cos(angle),z-h);
Point.ByCoordinates(x-D/2*Math.Sin(angle),y-D/2*Math.Cos(angle),z);
其中,x、y、z分别为道路中线点的三维坐标,D为道路的宽度,h为道路面层的厚度,angle为道路偏角;
圆曲线基点计算如下:
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z+H);
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z+H-h);
Point.ByCoordinates(x-(D/2+d)*Math.Sin(angle),y-(D/2+d)*Math.Cos(angle),z-H-h);
Point.ByCoordinates(x-(D/2+d)*Math.Sin(angle),y-(D/2+d)*Math.Cos(angle),z-H);
其中x、y、z分别为道路中线点的三维坐标,D为道路的宽度,H是面层厚度,d为道路加宽,h为道路超高;
缓和曲线基点计算如下:
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z);
Point.ByCoordinates(x+D/2*Math.Sin(angle),y+D/2*Math.Cos(angle),z-h);
Point.ByCoordinates(x-(D/2+d*a/s)*Math.Sin(angle),y-(D/2+d*a/s)*Math.Cos(angle),z-h);
Point.ByCoordinates(x-(D/2+d*a/s)*Math.Sin(angle),y-(D/2+d*a/s)*Math.Cos(angle),z);
其中,x、y、z分别为道路中线点的三维坐标,D为道路的宽度,H是面层厚度d为道路加宽,h为道路超高,a为当前点到缓和曲线起点的距离,s为缓和曲线长度。
6.根据权利要求5所述的一种基于点云数据的几何线形参数化道路建模方法,其特征在于,步骤S4、根据道路模型横断面各基点的三维坐标信息,生成各个横断面轮廓,之后在各个横断面轮廓之间进行放样,得到道路实体模型;
步骤S4包括以下子步骤:
S4.1:创建连接各个横断面基点的直线,获得横断面轮廓;
S4.2:在各个横断面轮廓之间进行放样,得到道路实体模型。
7.根据权利要求6所述的一种基于点云数据的几何线形参数化道路建模方法,其特征在于,步骤S5具体为:将实体模型应用于Civil3d平台,并设置道路属性性质信息。
8.根据权利要求7述的一种基于点云数据的几何线形参数化道路建模方法,其特征在于,所述道路属性性质信息包括道路名称、材质以及类别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310648356.5A CN116933357A (zh) | 2023-06-02 | 2023-06-02 | 一种基于点云数据的几何线形参数化道路建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310648356.5A CN116933357A (zh) | 2023-06-02 | 2023-06-02 | 一种基于点云数据的几何线形参数化道路建模方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116933357A true CN116933357A (zh) | 2023-10-24 |
Family
ID=88385333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310648356.5A Pending CN116933357A (zh) | 2023-06-02 | 2023-06-02 | 一种基于点云数据的几何线形参数化道路建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116933357A (zh) |
-
2023
- 2023-06-02 CN CN202310648356.5A patent/CN116933357A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112560154B (zh) | 一种基于Unity平台的公路隧道工程BIM模型动态创建方法 | |
CN108875177B (zh) | 基于bim模型创建单波束测点下内河航道疏浚图形的方法 | |
CN110210120B (zh) | 基于参数化的铁路工程自动化建模方法 | |
CN110362887B (zh) | 一种基于Revit的快速建模方法 | |
US7830376B2 (en) | Method for detecting two dimensional sketch data from source model data for three dimensional reverse modeling | |
CN102800052B (zh) | 非标准地图的半自动数字化方法 | |
CN113094784B (zh) | 基于建筑信息模型的邻接复杂地下工程参数化建模方法 | |
CN110276732B (zh) | 一种顾及地形特征线要素的山区点云空洞修复方法 | |
CN112633657B (zh) | 一种施工质量管理方法、装置、设备及存储介质 | |
CN110427653B (zh) | 基于bim的参数化碰撞检测及修正的方法 | |
CN104679954A (zh) | 将bim模型轻量化的方法和系统 | |
CN109859317B (zh) | 一种基于cass和catia的3dgis地形模型快速建模方法 | |
CN110060342B (zh) | 一种三维曲面拟合方法 | |
CN113204812A (zh) | 一种采用Dynamo创建桥梁预应力管道模型的方法 | |
CN103902343A (zh) | 一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法 | |
CN101694726B (zh) | 一种基于多源地形数据的融合与绘制方法 | |
CN101796519B (zh) | 用于预测船段组装的装配精度的系统、方法及其介质 | |
CN115560690A (zh) | 一种基于三维激光扫描技术的结构物整体变形分析方法 | |
CN117523403A (zh) | 一种宅基地图斑变化检测方法、系统、设备及介质 | |
CN116933357A (zh) | 一种基于点云数据的几何线形参数化道路建模方法 | |
CN109002626B (zh) | 一种基于bim技术的空间构件快速仿真布局方法 | |
CN111914329A (zh) | 一种路基bim模型与三维地形自动融合的方法 | |
He et al. | Digital protection of historic buildings in urban planning | |
Shoaib Khan et al. | Methodology for voxel-based earthwork modeling | |
CN113779684B (zh) | 一种基于Revit的路基边坡格构梁施工模型建造方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |