传送带功能介绍
1. 功能介绍
在工业生产领域,传送带作为物料运输的关键设备,应用广泛。当它与机械臂搭配合作时,能够极大地优化生产流程,显著提升生产效率,发挥出很强的协同效应。而实现这一高效协作的核心要素,便是机械臂对传送带上物体的精确跟踪能力。
实际运行过程中,系统通过的光电同步开关来敏锐感知来料情况。当检测到物料进入作业区域时,光电同步开关便会迅速将信号传递给机械臂,触发跟踪作业流程。与此同时,编码器实时记录工件在传送带上的位移数据。这些数据会被传输至机械臂的控制系统,机械臂依托内置的高性能算法,依据位移数据迅速做出补偿调整,从而实现对传送带上工件的稳定、动态跟踪。
2. 器件清单
所需器件:机械臂 X 1 、传送带 X 1 、增量编码器 X 1 、光电开关 X 1
所需控制柜:IS控制柜
所需机械臂:CANLITE协议机械臂
软件版本:0.31.1-beta45及以上

编码器接线步骤:
本步骤主要使用“RS485 增量编码器 模拟输入输出“ 一栏。
将编码器的24V和0V接至的24V和0V。将编码器的A、A-接至ENC A+、ENC A-,编码器的B、B-接至ENC B+、ENC B-,编码器的Z、Z-接至ENC Z+、ENC Z-。
光电开关接线步骤:
将光电开关的0V接至控制柜上用户输入IO的0V,将光电开关的24V接至控制柜上用户输入IO的24V,将光电开关的信号输入线接至控制柜上用户输入IO的DI0X。
下图为iS控制柜的IO示例,用户可根据实际的控制柜和实际的IO去进行接线。

3. 传送带跟踪使用接口介绍
SDK接口链接:https://docs.aubo-robotics.cn/arcs_api/classarcs_1_1common__interface_1_1MotionControl.html
int setConveyorTrackSensorOffset(int encoder_id, double offset)
接口功能:设置传送带光电开关偏移值
int setConveyorTrackSyncSeparation(int encoder_id, double distance, double time)
接口功能:设置传送带同步分离
int setConveyorTrackCompensate(int encoder_id, double comp)
接口功能:设置传送带响应补偿值
int setConveyorTrackEncoder(int encoder_id, int tick_per_meter)
接口功能:设置传送带编码器每米跳数
int setConveyorTrackLimit(int encoder_id, double limit)
接口功能:设置传送带工作区域最大限制
int setConveyorTrackStartWindow(int encoder_id, double window_min, double window_max)
接口功能:设置传送带启动窗口区域
bool isConveyorTrackExceed(int encoder_id)
接口功能:判断机器人在传送带上的偏移距离是否超出工作区域最大限制
bool hasItemOnConveyorToTrack(int encoder_id)
接口功能:判断启动窗口内是否有可以跟踪的物品
conveyorTrackLine(int encoder_id, const std::vector
&direction) 接口功能:开启传送带线性跟随
conveyorTrackStop(int encoder_id, double a)
接口功能:传送带停止对当前物品的跟随
bool conveyorTrackSwitch(int encoder_id)
接口功能:切换传送带跟随物品(当前物品跟随完成后调用)
int conveyorTrackClearItems(int encoder_id)
接口功能:清空传送带跟随队列
int conveyorTrackCreatItem(int encoder_id, int item_id, const std::vector
&offset) 接口功能:增加传送带跟随物品
int getConveyorTrackNextItem(int encoder_id)
接口功能:获取传送带跟随标记物品的id
bool isConveyorTrackSync(int encoder_id)
接口功能:当前跟随的物品是否达到机器人与传送带相对同步的状态
std::vector
getConveyorTrackQueue(int encoder_id) 接口功能:获取传送带跟随队列的编码器值
4. 传送带标定
使用工程:[传送带标定]
配置文件中的全局变量可参考:[传送带标定ins]
1.传送带方向和每米脉冲数的标定
1>将工件放到传送带上(机械臂可达位置),将 "标定方向1" 解除抑制,设置路点1为工件上某点,运行工程。

2>将机械臂移动至安全位置,运行传送带使工件移动一段距离后停止传送带(不超过机械臂可达范围),抑制 "标定方向1" ,解除 “标定方向2” ,设置路点0为上次工件上某点,运行工程。此时 传送带的方向(direction) 和 每米脉冲数(tickPerMeter) 即标定完成。

2.启动窗口和工作区域的标定
将机械臂移动至安全位置,抑制 "标定方向2" ,解除 “启动窗口和工作区域” 。将工件摆放到同步开关刚好触发处,然后运行工程,按照提示完成标定。其中bd_tick1、 bd_tick2、 bd_tick3、bd_tick4分别记录的是同步开关、启动窗口开始和结束以及工作区域最大限制的编码器位置。

3.同步开关偏移值的标定
将机械臂移动至安全位置,抑制 "启动窗口和工作区域" ,解除 “同步开关偏移” 。将工件摆放到同步开关刚好触发处,然后运行工程,按照提示完成标定。其中bd_tick1、 bd_tick2分别记录的是同步开关、虚拟同步开关的编码器位置。
标定完成后,将机械臂移动到工件所需的第一个工作路点,并记录到 一般 ==> 变量 中,如下第二图所示。



4.补偿值的标定
将机械臂移动至安全位置,抑制 "同步开关偏移" ,解除 “补偿” 。其中 路点3 为待机点, 路点2 为 同步开关偏移值的标定 中的工作路点。运行工程后测量误差,并通过 setConveyorTrackCompensate 接口设置进去(修改全局变量中conveyor_comp的值)。

5. 建立传送带追踪工程
工程: [传送带工程]
1.设计跟随路径
如下图所示,假设工件上有四个跟随点,可以设计跟随路径为:从起始点出发,来到跟随点1,随后依次来到跟随点2、3、4、1,关闭传送带追踪后回到起始点位置。
上述跟随路径仅为示例,实际路径可根据实际需求进行设计。
2.建立跟随工程
目前有三种可选跟随实现逻辑
1>如下图中第一个流程图所示,该逻辑适用于机械臂在传送带抓取工件后,需要脱离传送带进行其他作业,最后返回待机点。
2>如下图中第二个流程图所示,该逻辑适用于连续对传送带上的工件进行作业,即不需要机械臂返回到待机点,处理完当前工件后立马处理下一个工件。
3>如下图中第三个流程图所示,该逻辑适用于机械臂在传送带对工件作业后,脱离传送带进行其他作业,然后对工件进行二次传送带跟随作业,最后返回待机 点。



逻辑1示例程序 [传送带正常跟踪]

逻辑2示例程序 [传送带不减速切换]

逻辑3示例程序 [传送带多次开关跟随]

3.传送带物品检测的方式
1>将同步开关连接至DI00(任何一个DIXX都可以),设置动作 开始传送带跟踪 (目前分为两种conveyorTrack和xconveyorTrack,conveyorTrack是IO为高时触发,xconveyorTrack是IO为低时触发)

2>通过工程的多线程来检测工件

4.传送带跟随超过工作区域处理
通过 gotoLine(行号) 将主线程还未执行的路点忽略,并将机械臂移动到安全位置(路点1)、弹窗提示和程序停止。其中行号是 路点1左边对应的行号

6. 注意事项
由于传送带追踪不存在视觉传感器,而工件与传送带边沿的距离无法确定,所以需要保证在固定位置上放置固定形状的工件。