
在实际项目中,存在着人工叉车和AGV混用的场景,尤其是同一个工位,托盘由人工叉车随机摆放,AGV进站装载时,需要先识别出托盘位置,再生成动态路径,移动到准确位置,完成装载操作。托盘识别的方法有很多种,ndc8lib中已经适配了两款相机,IFM O3R222和SICK Visionary-T Mini,当然您也可以使用任意第三方解决方案,本文正是基于此,介绍U-Zone的使用方法。
在Vehicle Application Designer软件中,UserDefined变量区,添加以下参数。
•PalletSensorType(INTEGER32),1=ifm camera,2=SICK Visionary-T Mini,使用第三方托盘识别,此处设0.
•PalletSensorIpAddress(String),设置ifm/SICK相机的IP地址,第三方空白。
•PalletSensor_X/ PalletSensor_Y/ PalletSensor_Angle(INTEGER32),这三个参数是指相机在车体上的安装位置,基于车体参考点坐标系,单位分别是mm,mm,0.01°.
•DockingPosition_X/DockingPosition_Y/DockingPosition_Angle(INTEGER32),如果使用ifm/SICK相机,这三个参数是指,车体参考点在托盘坐标系中,应当停车的位置。如果使用第三方,此处设0.
SimulationPallet_X/SimulationPallet_Y/SimulationPallet_Angle(INTEGER32),当使用第三方时,这三个参数定义了托盘基于相机坐标系所在的位置。
注意,这里涉及到坐标转换,有地图布局(Layout,全局)坐标系,车体参考点坐标系,相机视野坐标系。最终想实现的是,让车体参考点移动到,布局坐标系下,托盘所在的坐标位置。
因此,简单起见,可以将PalletSensor坐标组全部设0,而关联到SimulationPallet坐标组的位置,是经过换算后的,车体最终需要到达的,托盘在布局坐标系下的,目标位置。
坐标转换,可以在第三方应用中提前完成,也可以在PLC中处理后,赋予SimulationPallet坐标组。
•DockingStraightDistance(INTEGER32),该参数定义了动态路径中,最后一段直线段的长度(mm)。设置值一般应大于货叉的长度,这样可以保证,在进叉前,车体已经调正,货叉与托盘孔已对齐。
•IfmPdsDepthHint/IfmPdsPalletIndex/IfmPdsMode/IfmPdsOffset(INTEGER32),当使用ifm相机时,设置相关参数。使用第三方时,设0。
•CameraRequest(BOOL),当AGV停在拍照点时,将该变量置1,同时关联到第三方应用中,触发托盘识别流程。
•CameraDone(BOOL),当第三方应用输出托盘坐标位置后,将该变量置1,作为动态路径移动执行的启动信号。
当AGV开始移动到托盘目标位置时,将CameraDone及CameraRequest置0,以便下次操作请求。
02
布局设计:简单设置,适配复杂场景
在布局设计工具(Layout Designer)中,将进入/驶出托盘站点的两个段,都设为外部路径段。