基于BIM的建筑机器人自主导航策略优化研究
2022-08-09刘子毅李铁军孙晨昭史家浩刘今越
刘子毅,李铁军,孙晨昭,史家浩,刘今越
河北工业大学,天津 300131
当前中国的建筑业体量较大,但信息化和智能化程度较低,与时代发展进步已不相适应,急需对行业进行创新改造[1],发展安全、高效、智能化的建筑机器人是传统建筑业的迫切需求。自主路径规划与避障是实现建筑机器人自主作业的关键技术。当前,针对建筑机器人导航的研究较少,SLAM(simultaneous localization and mapping)方法是传统移动机器人领域解决环境感知与定位导航的有效手段之一[2]。该方法需要机器人在未知环境下进行完整的巡视,应用自身传感器采集有效信息并建立环境地图,且数据计算量较大。现有建筑机器人的质量与体积较大且作业空间受限,传感器无法采集到完整的有效信息,并不适合应用传统SLAM方法建立完整的环境地图。在移动机器人的路径规划方面,分为全局路径规划算法与局部避障算法[3]。常用的全局路径规划算法有基于节点的A*算法和D*算法[4]、基于模型的人工势场法[5]等;局部避障算法有DWA(dynamic window approach)动态窗口法等[6]。其中,A*算法是一种有效的网格地图路径搜索方法,但传统A*算法规划的路径与障碍物相邻[7],不利于建筑机器人在路径跟踪时规避碰撞风险。文献[8]提出了一种结合了A*算法与DWA算法的路径规划方法,该方法既可获得全局最短路径又能实时避障,但未考虑机器人的安全性问题,将该方法应用于建筑机器人安全风险较高。文献[9]将安全A*算法与自适应窗口法结合,提高了机器人在复杂动态环境下安全避障的能力,但规划出的路径平滑度较低,建筑机器人惯性较大,在对该路径进行跟踪时会出现较大误差。文献[10]改进了A*算法,采用自适应圆弧算法与加权障碍物步长调节算法缩短了路径长度增加了平滑度,在地图较大时,该算法的搜索时间较长,不符合建筑机器人施工的实时性。文献[11]介绍了一种在适用于3D空间的改进型A*算法,提出了一种基于Unity3D引擎的机器人虚拟仿真方法,并证明了其方法的可行性与高效性,该物理引擎对建筑机器人的运动以及碰撞检测有较好的仿真能力,可用于构建建筑机器人施工的虚拟环境。
建筑机器人无法应用SLAM方法建立环境地图,且对路径的安全性以及平滑度要求较高,作业空间复杂,现有的路径规划算法无法满足该需求。本文在团队研究成果[12]的基础上,对A*算法进行改进,在路径规划时考虑建筑机器人的通过性与安全性,结合冗余节点的判定与剔除方法,保证全局路径最优。结合雷达获取的现实环境信息,对DWA算法进行改进,考虑了机器人轮廓信息,保证了局部路径最优。
1 基于BIM的导航地图构建
BIM(building information model)是一种创新的理念与方法,通过一个共同的数据标准IFC(industry foundation classes),集成整合建筑工程项目的各种相关信息[13]。以三维数字技术为基础,构建数字化、智能化建筑信息模型,被广泛应用于建筑规划设计、施工建设和运营管理的各个阶段[14]。因此,本文基于BIM构建了建筑机器人作业的导航地图,并应用BIM信息构建建筑机器人导航地图。
以本校某实验楼为场景,如图1所示,应用Autodesk Revit软件建立BIM模型,并给出了BIM信息提取的方法。
图1 建筑物BIM模型图Fig.1 BIM model
1.1 BIM信息提取
BIM信息精确提取是构建建筑机器人导航地图的前提条件,而IFC是BIM模型的共同数据标准,因此,本文给出了一种BIM模型信息的提取方法,通过对IFC文件进行解析,从而得到BIM模型中各个实体精确的位置信息。
根据BIM模型信息的提取方法,对IFC文件进行解析,提取出BIM模型中三楼的各个实体的2D/3D精确位置信息如图2所示。
图2 BIM实体位置信息Fig.2 BIM location information for entity
1.2 导航地图构建
建筑机器人由于其体积、质量较大,且作业空间受限,无法应用传统SLAM方法获取完整的地图信息,因此,本文提出了一种基于BIM模型的建筑机器人导航地图映射方法。
根据提取得到的BIM信息,在2维空间中映射为栅格地图,其映射规则如下:
(1)移动BIM模型所有实体到正坐标系:
其中,X、Y为实体坐标,Xmin、Ymin为未移动坐标系中最小坐标。
(2)栅格地图的行数、列数:
其中,N r为栅格地图行数,N c为栅格地图列数,Xmax、Ymax为坐标系移动后最大坐标,s为步长,考虑到可能出现的未除尽问题,应对障碍物进行补齐,将补齐的部分视为障碍物。
最终,可得到2维栅格化地图,由栅格Mij构成:
其中,M ij=0代表无障碍物栅格,M ij=1表示障碍物栅格,M ij=2表示起始点栅格,M ij=3表示终点栅格。
2 建筑机器人全局路径规划
A*算法是一种可实现全局路径规划的启发式搜索算法,通过定义全局路径搜索代价函数获取最优节点,其代价函数定义为:
式中,n代表当前节点,F(n)是当前节点n的代价函数,G(n)是移动机器人从初始节点到达节点n的实际代价值,H(n)是从当前节点n到达目标点的代价值,即A*的代价函数。选用Manhattan距离作为启发函数,即:
式中,(n x,n y)为当前节点栅格中心坐标,(g x,g y)为终点栅格中心坐标。
原始A*算法在搜索过程中,搜索出的路径往往贴近障碍物且冗余节点较多,未考虑移动机器人自身高度、宽度等因素对通过性的影响[15],建筑机器人应用该方法进行全局路径规划可能会造成不可挽回的碰撞损失,冗余节点较多造成建筑机器人频繁转向引起位置误差较大,未考虑轮廓信息可能会造成规划出的路径建筑机器人无法进行跟踪。因此,本文改进了原始A*算法,充分考虑了建筑机器人的轮廓特征,考虑其通过性与安全性,其改进方法为:
(1)设建筑机器人初始轮廓宽度w r、高度h r,虚拟空间中门的宽度w d、高度h d,σ为安全系数,如果:
则将该“门”的位置对应的栅格视为不可通过。
(2)如图3所示,设搜索过程openlist中F最小的节点为best,在best的后续节点subs中,设节点sub中心到障碍物栅格中心的距离为l s-o,δ为安全系数,如果l s-o<δw r+s,则不考虑该节点sub作为搜索对象。
图3 改进A*算法搜索策略图Fig.3 Improved A*algorithm search strategy
在栅格地图中,以栅格(142,20,0)为起点S,以栅格(30,8,0)为终点D,在Matlab环境下,使用不同A*算法进行搜索,得到的结果如图4所示。
图4(a)为原始A*算法搜索所得结果,可以看出,原始A*算法搜索出的路径贴近障碍物,且并未判断栅格地图中“门”的通过性问题。因此,原始的A*算法得出的路径不适合建筑机器人进行路径跟踪。
图4 不同A*算法搜索结果图Fig.4 Different A*algorithm search result
图4(b)中考虑了建筑机器的安全性,在机器人与障碍物之间预留了足够的安全距离,提升了搜索路径的安全性。将建筑机器人的轮廓与点云模型中“门1”的信息比较,将该门视为障碍物,考虑了建筑机器人的通过性后可得到图4(c)中路径。从图4(c)可以看出,搜索出的路径存在着大量的冗余节点,该路径并不适合机器人进行轨迹跟踪,本文给出了所得路径的优化方法:
设路径中节点为ni,节点的方向向量为n i如果:
(1)n i与n i-1为相邻节点且n i=n i-1,则n i为冗余转折点。
(2)n i与ni-1为相邻节点且n i≠n i-1,若连接n i+1与n i-1的直线可通过,则n i为冗余转折点。
删除冗余节点后的路径如图4(d)所示,另外,如表1所示,本文从转折角度、搜索时间、路径长度三个方面定量地对分析了改进A*算法的性能。
表1 原始A*算法与改进A*算法的性能比较Table 1 Performance comparison between original A*algorithm and improved A*algorithm
3 建筑机器人局部避障
当前,移动机器人依靠多种传感器融合技术感知周围环境信息,根据检测到的障碍物信息,采用局部路径规划算法完成局部避障。DWA是一种广泛应用的方法,在移动机器人高速运动时具有良好的性能[15]。
传统DWA算法未考虑机器人的机器人自身轮廓且在复杂环境下工作时容易陷入局部最小陷阱,建筑机器人体积与惯性较大且作业环境复杂,应用该方法进行导航容易引起不可挽回的碰撞损失且无法得到局部最优路径造成不必要的时间及能源消耗。因此,本文在改进A*算法得到全局路径的基础上改进DWA算法,A*算法与DWA算法的结合方式具体为:
改进A*算法根据地图搜索,经过对冗余节点的判断与删除后,得到的全局路径由关键节点、起点与终点组成即path={S,P1,P2,…,Pi,D},将path中的起点S与p1节点设置为改进DWA算法的起点与终点,如果机器人与节点距离小于临界值即R1≤τ,则判定机器人到达p1节点,并将改进DWA方法终点切换至p2,经过多次切换后最终切换至D并且R i≤τ时,认定为导航结束。在应用改进DWA算法进行局部避障过程中应用激光雷达获取真实局部信息并充分考虑了建筑机器人的轮廓特征,进而提升了机器人的安全性,并保证了局部路径最优。
原始DWA方法主要是在速度空间(v,w)中采样多组速度,并模拟机器人在这些速度下一定时间内的轨迹。在得到多组轨迹后,对这些轨迹进行评价,选择最优轨迹所对应的速度驱动机器人运动。
移动机器人在时间间隔Δt内运动的运动学模型为:
在速度空间(v,w)中,存在无穷多组速度,根据移动机器人自身以及移动环境设定移动机器人采样速度的限制条件:
(1)移动机器人本体速度约束:
其中,vmin、vmax为机器人的最小、最大线速度,wmin、wmax为机器人的最小、最大角速度。
(2)移动机器人加速度约束:
其中,vc、w c为移动机器人的当前速度,v̇a、v̇b为线速度的最大加、减速度,ẇa、ẇb为角速度的最大加、减速度。
(3)移动机器人安全约束:
其中,dist(v,w)为速度(v,w)对应轨迹上移动机器人相对障碍物的最近距离。
在采样的速度组中,有若干组轨迹可行,因此,采用评价函数对每组轨迹进行评价,选择最优轨迹所对应的速度驱动机器人,其评价函数如下:
其中,heading(v,w)方向角评价函数,表示移动机器人在当前的采样速度下,达到模拟轨迹末端时的朝向和目标之间的角度差距;dist(v,w)表示当前轨迹上移动机器人与障碍物之间的最近距离;velocity(v,w)为当前模拟速度的大小;ε为平滑函数;α、β、γ为加权系数。
本文改进了原始DWA算法,选用激光雷达作为传感器对现实环境进行实时监测。设激光雷达的最大测量范围为dmax,视场为[φmin,φmax],角度分辨率为Δφ,机器人航向对应的扫描角度为φrob,每次扫描后,得到的测量距离为{d1,d2,…,d n},测量角度为φi=φmin+(i-1)Δφ,测量到障碍物边缘的距离与角度为d j、φj,根据已知的建筑机器人轮廓参数rrob对障碍物边缘进行扩展,扩展角度θj=arctan(rrob/d j),设可通过的角度区间为[φj_1+θj,φj_2-θj]。
如图5所示,结合机器人的轮廓特征对原始DWA方法的评价函数进行改进,设可通过的角度区间的区间中点为φmid,速度轨迹对应的角度φi_o,在区间[φj_1+θj,φj_2-θj]中,其角度评价函数为:
图5 考虑机器人轮廓的激光雷达信息图Fig.5 Lidar information map of considering robot profile
因此,改进DWA的安全评价函数为:
4 仿真与分析
为了验证本文改进A*算法与改进DWA方法的有效性,应用Unity3D引擎构建了建筑机器人工作的虚拟环境,并对建筑机器人、激光雷达进行了仿真模拟,进而分析算法的有效性。
4.1 作业空间仿真
以本校某实验楼为仿真场景,将该实验楼的BIM模型导入Unity3D引擎进行分析。根据BIM中族的分组情况,对不同的实体添加碰撞体,门实体可通过,视为非碰撞体,墙实体不可通过,视为碰撞体,如图6所示。碰撞体可应用于仿真环境下的碰撞检测,进而构建建筑机器人作业的仿真环境。
图6 建筑机器人作业仿真环境Fig.6 Work simulation environment of construction robot
4.2 建筑机器人模型仿真
应用SW软件建立建筑机器人模型,并将该模型导入到Unity3D引擎,如图7所示。按照表2中的参数对移动机器人底盘进行设置,并依据底盘的运动学模型控制底盘模型运动。为了获取机器人自身的运动状态信息与仿真环境信息,本文根据2D激光雷达的工作原理进行激光雷达仿真,应用Unity3D引擎中的光线投射模拟激光,根据表3进行参数设置,最终可由仿真激光雷达获得虚拟环境中障碍物的距离与角度信息。
表2 移动机器人底盘参数Table 2 Mobile robot parameters
表3 激光雷达参数Table 3 Lidar parameters
图7 Unity3D引擎下的建筑机器人模型Fig.7 Construction robot model under Unity3D engine
4.3 改进算法仿真验证
应用Unity3D引擎,在虚拟环境中对改进A*算法与改进DWA算法进行仿真。根据虚拟空间信息,应用改进A*算法进行全局路径规划,建筑机器人初始轮廓宽度w r=730 mm、高度hr=1 600 mm,σ=1.2,δ=1.0,得到的全局路径与节点p i,如图8(a)所示,该全局路径考虑了机器人的轮廓特征对通过性的影响,同时为机器人与障碍物之间保留了足够的安全距离,并删除了冗余节点,提升了全局路径的平滑度。因此,全局路径的节点数由57降低至6,转折角由810°降低至270°。
评价函数各参数为:α=0.05,β=0.2,γ=0.1,ω=0.2,运动学时间间隔为0.1 s,预测周期为3.0 s,改进DWA方法以机器人的安全距离距离dist(v,w)与安全角度angle(v,w,φi_o)作为安全距离评价,并考虑了机器人轮廓的影响,提升了机器人的安全性。在Unity3D环境中,在改进A*算法得到的节点p i间应用改进DWA方法,当节点pi间无障碍物时,得到的轨迹如图8(b)~(d)所示。当节点p i间存在障碍物时,激光雷达探测到的障碍物信息如图8(e)所示,原始DWA算法与改进DWA算法得到的轨迹如图8(f)、(g)所示。
图8 仿真结果图Fig.8 Simulation results
如表4所示,从路径长度与运行时间两个方面对改进DWA算法进行评价,改进后的DWA算法考虑了机器人轮廓对安全性的影响,路径长度比原始DWA算法减少13.5%,所需时间仅比无障碍物时增加3.7%。
表4 原始DWA算法与改进DWA算法的性能比较Table 4 Performance comparison between original DWA algorithm and improved DWA algorithm
5 实验验证
本文采用的实验平台如图9(a)所示,移动机器人底盘采用松灵机器人,施工机械臂采用UR5机械臂,选用YDLIDAR G4 2D激光雷达感知周围信息,以及联想笔记本电脑i5-10210U处理器。通过提取出的BIM信息与激光雷达获取的现实环境信息结合,通过发送RS232串口数据控制移动机器人平台。考虑到机器人在运行过程中由于路面不平整、地面摩擦力等对机器人底盘运动的影响,可能使机器人坐标与改进A*节点坐标出现误差,因此,本文增加了UWB(ultra wideband)超宽频定位系统实时获取移动机器人的位置,如图9(b)所示,并进行实时的位置修正。
图9 实验结果图Fig.9 Experimental results
为了验证算法的可行性,应用该实验平台对改进后的算法进行验证。实验起点、实验终点、障碍物位置以及移动机器人参数设置与仿真场景中一致,如图9(c)所示,移动机器人从起点出发经过p1节点到达p2节点,为了保证机器人速度的连续性,当机器人与p2节点距离为0.3 m时,将目标节点由p2节点切换至p3节点,图9(d)表示移动机器人经过p2节点向p3节点运动的过程,图9(e)为机器人通过检测激光雷达到障碍物,图9(f)为机器人考虑自身轮廓对安全性的影响应用改进DWA算法并绕过障碍物,图9(g)为机器人到达可通过门的位置,通过门后经过图9(h)中的拐角后最后到达终点位置。整个过程历时约50 s,整个路径长度为37.4 m,由于使用UWB定位芯片对移动机器人进行位置修正,导致路径长度比仿真结果增加了约5 m。该实验验证了算法的可行性,行驶路径保持最优并保证局部路径最优,并引入了UWB定位模块解决了机器人移动时产生的累计误差问题。
6 结束语
本文通过BIM模型构建建筑机器人施工的虚拟环境,并给出了提取BIM信息的方法,并构建导航地图,使用经过改进A*算法进行全局路径规划,考虑了建筑机器人的外部轮廓对通过性的影响,为建筑机器人与障碍物间预留了足够的安全距离,提升了机器人的安全性,删除了冗余节点,改进后A*算法的搜索时间比改进前减少了107.19 s,路径转折角度减少50%。在节点间应用改进DWA算法,考虑了机器人的轮廓特征,提升了机器人的安全性,引入了DWA定位模块,使机器人可以实时校正位置误差,提升了机器人的精度。改进后的DWA算法考虑了机器人轮廓对安全性的影响,路径长度比原始DWA算法减少13.5%,所需时间仅比无障碍物时增加3.7%。
本文应用UWB定位模块获取机器人位置,但未对机器人的姿态进行实时评价,因此,未来可引入IMU模块进行信息融合方面的研究。