范 卿 任会礼 曾 杨 郭纪梅 张 迁
0 概 述
吊装规划系统旨在实现在复杂作业环境中的大型吊装作业过程的预规划和安全计算,便于施工单位在吊装钱进行实际施工计划。由于工况的复杂性,为了实现安全吊装,在规划过程中碰撞检测成为重要的研究内容。在各种工程建设中,起重机吊装过程是否与障碍物碰撞决定着施工工程的安全性、可靠性、高效性。因此,研究一种判断起重机吊装作业规划及仿真系统中实时碰撞检测的可行且高效的计算方法,对吊装行业的施工具有重要意义。
根据起重机吊装作业的特性,起重机作业碰撞检测内容主要是检测吊装过程中,吊装物与障碍物之间、起重机臂架与障碍物之间以及臂架与吊装物之间是否碰撞。
1 吊装场景的平面投影
在吊装作业前对现场进行测量,并在吊装规划系统中搭建与实际作业相近的三维作业场景。为进行吊装规划及仿真过程动态碰撞检测的计算,应将吊装场景中的障碍物和吊装物使用类OBB 包围盒模型。将场景中的所有障碍物和吊装物,按其建模时选择的模型尺寸类型存储其长宽高信息。按照其模型尺寸类型将其投影为XY 平面的矩形或圆,且与场景坐标系中绕Z 轴正方向的夹角为α ,在投影生成障碍物时将障碍物按其设定的选择角度进行旋转。图1 为吊装系统场景的投影平面示意图,灰色圆环为起重机安全作业半径区域。
图1 吊装场景俯视投影平面
2 基于平面投影的碰撞检测
碰撞检测是判断物体与物体之间是否有相交。首先,在XY 平面内判断起重机臂架与障碍物、吊装物之间是否发生碰撞。其次,做Z 方向的碰撞判断。由于吊装系统中物体都是凸包络物体,为简化计算可认为吊装物和障碍物以及起重机投影到XY 平面上只有圆形和矩形2种形状。
2.1 吊装物和障碍物的碰撞检测
在做XY 平面投影的碰撞之前,首先,用球形包络盒实现初级的碰撞检测。球形的半径,可通过包络物体的类AABB 包络形状的长宽高计算而得来。例如,某个物体(包括障碍物和吊装物)的长宽高分别为L 、W和H,其包络半径R 为
利用球形包络检测对需要进行碰撞检测的障碍物进行筛选,以减少精确碰撞的障碍物个数。
根据障碍物和吊装物在XY 平面内投影的结果,在碰撞检测中存在3 种碰撞检测情况,即矩形与矩形的撞、圆与矩形的碰撞和圆与圆的碰撞,3 种情况如图2所示。
图2 平面内的3 种碰撞情况
1)矩形和矩形的相交检测
图2a 中分别设定为矩形1 和矩形2。设矩形1 在XY 平面的中心坐标为C 1,长为L 1,宽为W1。L 1 是未旋转时平行X 轴的边,W1 是未旋转时平行Y 的边, 绕Z 轴旋转的角度为α 1。
同理,矩形2 在XY 平面的中心坐标为C 2,长为L 2,宽为W2。根据以上条件,可分别计算出矩形1 和矩形2 的4 个顶点的XY 坐标。要判断矩形1 和矩形2是否有交会的部分,可判断其是否有相互包含的地方,即判断2 个矩形的任何一个顶点是否在对方区域内,需要进行交叉检测判断。2 个矩形的相交可大致分为如图3 所示的2 种情况。
(a)顶点包含相交 (b)沿边平行相交
图3 矩形相交的2 类情况
对于矩形1 和矩形2,先计算矩形2 的顶点是否与矩形1 相交。
如图4 所示,矩形2 的4 个顶点中V1´ 判断其是否位于矩形1 内。首先,作通过顶点V1´ 分别与矩形的长宽分别平行的直线为l L 和l W,然后计算矩形1 的中心点C 1 到直线l L 和l W 的距离分别为d L 和d W。如果d L ≤W/2,且d W ≤L /2,则可以判断V1´ 与矩形1 发生了相交,否则,V1´ 与矩形l 未发生相交。
图4 距离计算判断示意图
同理,计算矩形2 的其余3 个顶点。若任何一个顶点与矩形1 发生相交,则2 个物体发生相交。若矩形2中的任何顶点都不在矩形1 中,即出现矩形1 包含于矩形2,则需判断矩形1 的4 个顶点是否有在矩形2 中。因此,矩形之间需要交叉检测来判断,只要有成立的顶点,则2 个矩形发生相交。
2)圆和矩形的相交检测
图5 为圆与矩形相交的检测计算方法,圆的中心为C 1,矩形的中心为C 2,直线为l L 和l W 经过矩形中心且分别与长和宽平行的直线。可以计算得到圆中心到两条直线的距离分别为d L 和d w,圆的半径为r 。如果d L ≤(W/2 +r )且d w ≤(L /2 +r ),则圆与矩形发生相交,否则没有发生相交。
图5 圆和矩形相交判断示意图
3)圆和圆的相交检测
图6 所示的圆与圆相交,只需要计算两个圆心的距离,然后判断圆心之间距离是否小于2 个圆的半径之和。对于圆1 的中心为C 1,半径为r 1,圆2 的圆心为C 2,半径为r 2。2 个中心点距离为d 。如果d ≤(r 1 +r 2),2 个圆形发生相交,否则没有发生相交的情况。
图6 圆和园相交检测示意图
4)Z 轴方向相交检测
当在XY 平面检测到障碍物和吊装物发生相交,此时需判断障碍物和吊装物在Z 轴方向的相交情况。如图7 所示,假定吊装物其底面中心坐标在Z 轴方向的值为Z 0;障碍物底面中心坐标在Z 轴方向的值为Z b,其高为Hb。如果 Z 0 <(Hb +Z b),则表示吊装物和障碍发生碰撞。
图7 吊装物和障碍在Z 轴方向的碰撞示意图
2.2 起重机臂架和障碍物的碰撞检测
根据前面所讲,障碍物投影只考虑圆形和矩形2 种情况,起重机臂架和障碍物之间的碰撞检测分为直线与圆和直线与矩形的相交检测两类。
1)起重机臂架和圆形投影物相交情况如图8 所示,起重机臂架投影直线l 与中心为C 、半径为r 的障碍物投影圆相交情况。O 点为起重机回转中心在XY 平面的投影。判断是否发生相交的准则为:
①筛选。筛选条件为投影圆是否与起重机工作半径所形成的圆形区域有相交,与前述计算2 个圆是否相交的情况相同。
②如果投影圆与起重机工作半径相交,则计算投影圆圆心到到直线的距离d 。
③判断是否相交。如果d ≤r ,则直线l 与投影圆有相交。
④计算起重机回转中心离交点的最短距离R min。
式中:OC 为圆心C 和起重机回转中心投影点O 之间的距离。
图8 起重机臂架投影和圆投影物的相交情况
2)起重机臂架和矩形投影物相交情况
起重机臂架投影直线与障碍物矩形投影的相交情况如图9 所示。其中,O 点为起重机回转中心在XY 平面的投影, l 为起重机臂架在XY 平面的投影。V1 ~V4分别表示矩形的4 个顶点,C 为矩形的中心。
①筛选。筛选条件1 为矩形以包围圆进行半径检测是否相交,计算方法与圆和直线相交计算法相同。筛选条件2 为矩形是否与起重机工作半径区域是否有相交区域,计算方法与圆和矩形相交计算法相同。
②计算起重机回转中心到障碍物4 个顶点的射线OV1、OV2、OV3 和OV4,并求4 条射线两两之间的夹角,取最大夹角为β max。 ③计算起重机臂架在XY 平面投影的直线与上述的4 条射线之间的夹角,取最大夹角为φ max。④当β max ≥φ max 时,发生相交,否则未发生相交,图8a 为发生相交的情况,图8b 为未发生相交或即将发生相交的情况; ⑤对于图9a 的情况,首先分别计算4 个顶点到直线l 垂点与O 连线的长度,然后,取最小的长度为R min。对于图9b 情况,分别计算4 个顶点到直线l 的距离,取最小的距离为d min,如最小的距离d min 对应的顶点为V1,设此时设定的安全距离为d safe,当d min <d safe 时,则需求取O 到点V1 到直线l 垂点连线的距离为
图9 起重机臂架投影和矩形投影物的相交情况
3)Z 轴方向相交检测
如图10 所示,起重机当前工作幅长为R work,若R work >R min,则需判断Z 轴方向的情况。假定此时起重机主臂与水平面的夹角为α first,辅助臂与水平面的夹角为α second,主臂长度为L first,辅助臂长度为L second,此时起重机偏心距为R crane,R min 对应起重机臂架高度为h min。 Z 轴方向相交具体判断流程为: ①判断R min 是否位于主臂投影的区域,如果(R min+R crane)≤L firstcosα first, 则是位于主臂投影内,此时有
否则有
②判断是否符合安全距离,Z 轴方向的安全距离为d zsafe,如果h min ≤(Hb +Z b +d zsafe),则臂架和障碍物将发生碰撞,否则不会碰撞。
图10 碰撞检测Z 方向判断示意图
2.3 起重机臂架和吊装物的碰撞检测
如图11 所示,根据吊装物尺寸类型,XY 平面内可将起重机臂架和吊装物的投影情况分投影直线和圆相交的检测及投影直线与矩形相交检测2 个类型。其中,O是起重机的回转中心投影点,C 是吊装物中心的投影点。当吊装物在XY 平面的投影是圆时,直接计算回转中心O 到相交点最短距离为min R = OC − r。当吊装物投影是矩形时,可按前述计算方法计算出R min,再根据相应的流程进行Z 轴方向的相交判断。
2.4 实例
以一实际吊装场景为例,根据场景信息进行平面投影,再进行起重机臂架与障碍物、起重机臂架与吊装物,以及吊装物与障碍物间的碰撞检测计算,其结果及预警信息如图12、图13 所示。
图11 起重机臂架投影和吊装物投影相交情况
图12 碰撞检测结果显示
图13 碰撞检测预警提示
3 总结
针对起重机工程吊装仿真规划系统,提出一种基于平面投影的碰撞检测方法。根据场景中吊装物和障碍物的类型,将其在XY 平面内投影为圆和矩形、起重机臂架投影为XY 平面的直线。通过分别在XY 平面及Z 方向上进行相交判断来进行碰撞检测,从而实现安全有效的吊装路径规划。