本发明属于装车,具体涉及一种适用于多车型的袋装物料装车垛形的建模方法。
背景技术:
1、袋装物料(下称物料)是大宗物流发运货物的主要形式之一,包括面粉、饲料、水泥、化肥等产品。随着技术的发展,传统的采用人工装车的作业形式,越来越无法满足企业袋装形态物料的发运效率需要。相关企业逐渐选择具有自动装车功能的智能装备,替代传统的人工装车作业方式。
2、近年来,多家企业推出自动化的装车系统,一定程度上提高了装车作业的效率和质量。
3、自动化的装车系统中,需要首先建立垛形模型,垛形模型精确到每个袋装物料的位姿,装车系统根据垛形模型完成装车。
4、所以,垛形模型与车辆车厢的匹配度就很重要,否则,会出现袋装物料与车厢板之间的缝隙较大或者部分袋装物料装不下的问题。
技术实现思路
1、本发明要解决的技术问题为:如何设计出一种适用于多车型的袋装物料装车垛形的建模方法,优化垛形模型与车辆车厢的匹配度。
2、具体方案如下:
3、一种适用于多车型的袋装物料装车垛形的建模方法,包括如下步骤:
4、s10、扫描物料:通过激光雷达扫描待装物料,获取袋装物料尺寸信息:袋长l、袋宽w、袋高h;
5、s20、扫描车辆:通过激光雷达扫描待装车辆,获取车辆长l、宽w、高h的数据,及车辆前栏板高度h1、后栏板高度h2、左栏板高度h3、右栏板高度h4的数据,以及车辆车厢顶部的四个角点lf、rf、lt、rt的坐标位置数据;
6、s21、根据步骤s20激光雷达扫描的数据,判断车辆是否具有拉筋,如果没有拉筋,进入步骤s30;如果有拉筋,进入步骤s70;
7、s30、执行无拉筋车型码垛规则,包括步骤s31-s60;
8、s31、获取人工设定的安全冗余参数:厢左侧冗余距离s1、右侧冗余距离s2、前侧冗余距离s3、后侧冗余距离s4;
9、s40、确定每排包数、每放排数:设定为横排码放,根据车厢宽度w、长度l和物料的袋长l、袋宽w确定每排可放包数,每层可放排数;包括步骤s41-s42:
10、s41、确定每层的每排可放包数countinrow = 可码放宽度w1/包长l;若countinrow为小数时,按照四舍五入进行取整;
11、其中,可码放宽度w1=车宽w-s1-s2;
12、如果为向上取整,此时,横向压包量m的计算如下:
13、m = (包长l-横向余数r)/ (countinrow-1);
14、s42、确定底层的可放排数countinlength = 可码放长度l1/包宽w,若countinlength为小数时,判断“余数r是否大于w/5”,如果“y”按照“进一法”取整,如果“n”按照“去尾法”取整;
15、其中可码放长度l1=车长l-s3-s4;
16、如果为向上取整,此时,纵向压包量m的计算如下:
17、m = (包宽w-纵向余数r)/(countinlength-1);
18、s51、根据每排可放包数countinrow、可放排数countinlength,获取任务总装车包数bagcount,计算预估需码放层数totallayer:
19、totallayer = bagcount/(countinlength*countinrow);
20、如果totallayer为小数,按照“进一法”取整;
21、s52、判断是否梯形缩进,如果“n”,totallayer不变,如果“y”,预估层数需要增加“2”,即:totallayer = totallayer+2;
22、s53、取车厢栏板高度最小值min_height,计算车厢栏板高度内可放层数layerin:
23、layerin = min_height/h;
24、如果layerin为小数,按照按照“去尾法”取整;
25、s54、比较totallayer与layerin,如果计算码垛点坐标的层数在车栏板高度内,进入步骤s55,如果计算码垛点坐标的层数超出车栏板高度,进入步骤s56;
26、s55、不需要进行梯形缩进,码垛点坐标计算方法包括步骤s550-s555;
27、s550、建立垛形模型坐标的坐标编号:
28、以车尾向车头方向为x轴正方向,排序号从车头往车尾方向,从1依次增加;
29、以车厢右侧指向车厢左侧以为y轴正方向,列序号从车厢右侧向车厢左侧,从1依次增加
30、以向上方向为z轴正方向,层数序号从车厢底部开始往上,从1依次增加;
31、根据上述坐标系,对垛形模型内的每一包物料包均确定一组坐标编号;
32、以每一包物料包的下表面几何中心做为其码放坐标;
33、s551、取前栏板x方向坐标值front_x,第n排码放点x方向坐标值为:
34、row_n_x = front_x - s3 – w/2–(n-1)*(w- m);
35、s552、取车厢右栏板y方向坐标值right_y,第n列码放点y方向坐标值为:
36、column_n_y = right_y + s2 + l/2 +(n-1)*(l- m);
37、s553、取车厢底板z方向坐标z0,第k层码放点z轴坐标为:
38、layer_k_z = z0 + (k-1)*h;
39、s554、按层循环执行步骤s851-s853,遍历计算所有排、所有列、所有层的码垛点坐标数据,直到码垛点数量达到bagcount或者车内的最大载货数量,计算完毕后进入步骤s555;
40、s555、进入步骤s60;
41、s56、进行梯形缩进,码垛点坐标计算方法包括步骤s57-s594;
42、s57、设置最大纵向缩进量为max_l,则每层平均缩进量为avr_l:
43、avr_l = max_l/(totallayer-layerin-1) ;
44、s58、第n层可码放长度变为l_n :
45、l_n= l1-(n-layerin-1)* avr_l;
46、s59、车栏板高度以上的层数码垛点坐标计算方法,包括步骤s590-594;
47、s590、执行步骤550;
48、s591、取车厢右栏板y方向坐标值right_y,第n列码放点y方向坐标值为:
49、column_n_y = right_y + s2 + l/2 +(n-1)*(l- m);
50、s592、取车厢底板z方向坐标z0,第k层码放点z轴坐标为:
51、layer_k_z = z0 + (k-1)*h;
52、s593、取前栏板x方向坐标值front_x,第n排码放点x方向坐标值为:
53、row_n_x = front_x - s3 –avr_l/2 - w/2–(n-1)*(w- m);
54、s594、按层循环执行步骤s881-883,遍历计算剩余的所有排、所有列、所有层的码垛点坐标数据,直到码垛点数量达到bagcount,计算完毕后进入步骤s60;
55、s60、进入步骤s100;
56、s70、包括步骤s71-s75;
57、s71、根据激光雷达扫描得到的车厢数据,获取每根拉筋位置的三维坐标,并按照距前栏板的距离,从近到远排序;
58、s72、根据前、后栏板和车厢中间的拉筋位置信息,将整个车厢划分为若干个独立的区域,栏板和拉筋位置作为各区域的分界线;
59、s73、在每个独立区域内,按照步骤s40计算可放排数和每排可放包数,每个独立区域可放排数的总和,即为车厢总可放排数sumcountinlength。
60、s74、获取任务总装车包数bagcount,计算需码放层数totallayer:
61、totallayer = bagcount/(sumcountinlength*countinrow);
62、如果totallayer为小数,按照“进一法”取整;
63、s75、每个独立区域内码垛坐标计算,包括步骤s750-s755:
64、s750、执行步骤550;
65、s751、取前分界线x方向坐标值front_x,第n排码放点x方向坐标值为:
66、row_n_x = front_x - s3 – w/2–(n-1)*(w- m);
67、s752、取车厢右栏板y方向坐标值right_y,第n列码放点y方向坐标值为:
68、column_n_y = right_y + s2 + l/2 +(n-1)*(l- m);
69、s753、取车厢底板z方向坐标(就是高度方向的数字)z0,第k层码放点z轴坐标为:
70、layer_k_z = z0 + (k-1)*h;
71、s754、按层循环执行步骤s751-s753,遍历所有独立区域,计算所有排、所有列、所有层的码垛点坐标数据,直到码垛点数量达到bagcount;
72、s755、进入步骤s100;
73、s100、建立模型完毕。
74、s80、在步骤s60中,判断“是否需要进行顶层压包确保垛形稳定性”,如果“y”,则进入步骤s81后、再进入步骤s100,否则直接进入步骤s100;
75、s81、当每排放三包、需要两列进行压包时,判断“最高层码放包数是否小于等于该层最大码放包数的2/3”,如果“y”,则进入步骤s82,否则进入步骤s83;
76、s82、修改最高层坐标点数据进行顶层骑缝压包,压包策略为:每排两包,居中压包,从车尾向车头依次压包,直到总包数达到bagcount;
77、坐标计算方法为具体为:
78、z方向坐标不变;
79、y方向:第一列坐标col_1_y=车厢中心center_y-l/2;
80、第二列坐标col_2_y=车厢中心center_y+l/2;
81、x方向:假设最高层为超出车栏板高度的第k层,从车尾向车头方向,第n排x坐标为:
82、row_n_x = front_x – s4 –avr_l/2 –[l-(k-1)* avr_l)]+ w/2+(n-1)*(w- m);
83、s83、总层数增加一层,totallayer = totallayer+1,修改totallayer层、totallayer-1层坐标点数据进行顶层骑缝压包:
84、压包策略为:totallayer-1层每排两包,totallayer层每排一包,居中压包,从车尾向车头依次压包,直到总包数达到bagcount;
85、totallayer-1层坐标计算按照步骤s91的坐标计算方法进行计算;
86、totallayer 层坐标计算:
87、z方向坐标:layer_k_z = z0 + (k-1)*h;
88、y方向坐标:col_n_y=车厢中心center_y;
89、x方向坐标:totallayer层第n排x坐标为:
90、row_n_x = front_x – s4 –avr_l/2 -(l-(k-1)* avr_l)+ w/2+(n-1)*(w- m)。
91、在步骤s20中,当检查到“车辆停靠位置与基准线存在夹角”时,应该对码垛点坐标进行偏移量修正,修正具体为:
92、定义偏移角度:定义偏移角度为车厢左侧从左前点到左后点连线与基准线的夹角α;
93、坐标矫正处理:
94、z方向:偏移不影响z轴,z方向坐标值计算结果不变;
95、x方向增量:deltax = x*cosα,其中x代表α=0时x方向每排的增量;
96、y方向增量:deltay = y*cosα,其中y代表α=0时y方向每列的增量;
97、对步骤s55、步骤s75、步骤s88、步骤s82、步骤s83计算出的坐标值,按照x方向增量、y方向增量进行修正。
98、有益效果:相对于现有技术,本发明设有多种情况的建模,适应了袋装物料的自动化装车需要。
1.一种适用于多车型的袋装物料装车垛形的建模方法,其特征在于:包括如下步骤:
2.如权利要求1所述的适用于多车型的袋装物料装车垛形的建模方法,其特征在于:
3.如权利要求2所述的适用于多车型的袋装物料装车垛形的建模方法,其特征在于: