当前位置:首页 期刊杂志

OpenMV 智能物料搬运方向的开发

时间:2024-05-04

李虹 张宇晨 苗旭焘

(南开大学滨海学院电子科学系 天津市 300270)

在化工、工业制造、医药、仓储物流等方面以及机场、码头等场景,智能搬运机器人使用广泛。

智能搬运机器人不仅可以减少繁重的体力劳动,以提高企业的生产率和降低劳动成本。现今,智能物流搬运机器人除了需要完成路径规划的任务还要实现识别任务等一系列功能,在扫描不同任务后可进行多任务工作,并不是单一路线。特别在一些高危生产线上,工人们冒着生命危险干活,而采用智能搬运平台搬运,就不用担心出现这种问题。它所涉及的知识也是十分丰富,涵盖了机械、电子、计算机、传感器等,其最重要的是对运行路径进行规划。

相较于欧美各国、日本我国起步较晚。国内现阶段,大部分机器人仅可单线程工作,无法进行场景转换,较少智能物流搬运机器人能够在多场景下良好运行。而且对于突发事件没有对应的应对措施。再者,其成本问题影响到智能物流搬运机器人的铺盖面,其效率即使比人高,但其费用高昂,很多企业都难以设置设备。

1 智能物流搬运机器人整体方案设计

1.1 系统总体设计

基于工厂固定作业路线重复性、繁琐性的工作,制作出一款能够在固定路线上进行工厂物料识别、搬取和放置。由控制模块、运动模块、机械臂模块、识别模块、控制模块、任务显示模块共同组成智能物流搬运机器人。通过控制模块控制各个模块同时由18650 锂电池组为稳压模块供电后,使其正常工作。

在识别路线程序烧录后,移动到识别区识别二维码进行任务领取,后到物料区抓取物料,再移动至放置区放置物料,最后到达停车区,从而完成全任务。

智能物流搬运机器人由STM32-f103C8T6 模块作为主控控制TB6612 电机驱动模块驱动直流无刷编码电机使得机器人运动;主控控制灰度传感器进行循迹、控制OpenMV 进行二维码识别;主控模块还可通过OpenMV 对二维码进行识别。主控模块对PWM 舵机实现金属机械爪的抓取、串行总线舵机实现机械臂的运动、OLED12864 模块实现任务显示模块。如图1 所示。

图1:系统总体模块设计图

1.2 系统结构框图

由STM32-f103C8T6 核心控制器控制红外传感器超声波模块进行循迹以及避障,控制摄像头识别读取任务信息,后将任务显示至LED 显示屏,控制降压模块控制三自由度机械臂对物料进行抓取放置,驱动电机控制直流编码电机使智能物料机器人移动到指定位置完成任务。如图2 所示。

图2:系统结构框图

2 主要硬件模块设计

2.1 控制模块

STM32f103C8T6 作为控制模块,以其最小系统为基础,其是基于Cortex-M core STM32 系列的32 位微处理器。64KB 的内存,6V 的电压,工作温度为-40°C~85°C。其封装体积小、性价比高,相比8 位单片机性能更优。

增加 IIC、串口、I/O 口、PWM 口等接口电路,便于与外设连接;使用控制芯片、传感器、电机独立供电模式,确保各模块供电电源稳定,工作性能优良;采用主控芯片与电机驱动控制芯片、寻迹传感器采集芯片相分离的主从控制模式,提高系统资源利用率,图3、图4 为自主绘制的STM32f103C8T6 的最小系统以及Wi-Fi 模块原理图和PCB。

图3:STM32F103C8T6 最小系统原理图

图4:STM32F103C8T6 最小系统PCB

2.2 运动模块

由于传统的轮式运动其存在转弯半径大、灵活性较差同时转弯后不易获取运动单元的横纵坐标的缺点。相较于传统的轮式运动,在不更改运动单位的情况下,其过度运动能向360°的方向运动。与此同时,为能够实现智能物料搬运机器人其移动性和跟踪算法的简单可靠性,安装四个骨轮以及四个减速直流电机,来搭建机器人的运动模块。

其中图5 为麦克纳姆轮的工作原理图。

图5:麦克纳姆轮工作原理图

麦克纳姆轮是一种能够360°全向转动的轮子,由轮毂和辊子组成:主轮立方支撑整个轮,鼓轮(小轮)安装在轮立方上,是一个整体大轮。理论上,夹角可以是任何值,但市场上的主流是45 度。

除了骨轮的动力学分析外,还应计算平台附近每个国家的速度,并控制平台的轨道。图6 为自制的运动控制底板。

图6:自制的运动控制底板

2.3 机械臂模块

机械臂模块主要补充各种材料任务的获取和执行,包括一只旋转手、一只机械手和一只爪。辊道应由360°的高扭矩转向装置控制,以实现机械手的全方位旋转;监视器是一个三组件结构,通过一个系列因子进行控制,以获得监视器的伸缩活动,同时可通过控制抓手的开合以及三者的配合完成整个抓取放置的动作。图7 为预期机械臂三维模型,图8 为实际搭建机械臂图。

图7:机械臂三维模型

图8:实际搭建机械臂图

如图9 所示,与机械臂模块配合的金属爪,其采用四组金属夹片,通过螺丝固定,不易变形,增加了抓取力度,保证了抓取物料的稳定性,让任务更加有序进行。其中金属机械臂也会存在精度的问题。由于机械臂不能精准抓取物料,会导致抓取失败或者抓取的不稳定等不确定因素。我们使用步进电机加一体闭环驱动以及使用0 背隙的谐波减速器同时在后续的算法实践中进行高精度补偿。

图9:金属爪模块

2.4 识别模块

我们使用灰度检测器、TFminiPlus 传感器分辨率检测器、OpenMV 元件和惯性导航检测器作为检测模块,其进行外部钥匙识别以及机器人位置的确定,帮助其获取任务以及确定目标和独立的路径规划。主要使用OpenMV,其搭载MircroPython 解释器,可通过Python 进行编程,通过Python 可使得机器视觉算法的编程变得更为简单。

当环境光干扰不是很严重时,它用于区分黑色和其他颜色,由此其可进行二维码的识别也可以在地面进行循迹。当环境光干扰严重时,在区分时可能存在一定的误差。在机器设计时,我们添加光补偿,经过测试设定可识别的光系数,在无法识别时进行光补偿,按照阶段提升光亮程度,直至识别成功为止。由此减小了环境光的干扰。

2.5 控制算法

麦克纳姆轮移动灵活,但滚轮上的力会定期变化。在运动过程中,辊子的形状发生变形,车轮的运动轮廓呈非圆形,使平台容易偏离。为了保证平台的正确跟踪,优化运动控制算法尤为重要。

如图11 所示,我们采用灰度传感器,为了助于理解,把O 点标记在传感器中间检测单元。左右两侧的检测单元分别标记为A、B、C、A`、B`、C`,如图11 所示。

图10:灰度传感器实物图

图11:灰度传感器

当经纬线位于中间检测单元下方,说明寻迹正常,反馈信息0;同理,当经纬线分别位于A、B、C、A`、B`、C`等点下方,说明方向偏离分别反馈信息1、2、3、-1、-2、-3。因此,后期我们希望编写出基于PID 控制策略的分级控制算法。

2.6 任务显示模块

如图12 所示,OLED12864 屏幕上可以显示获取的任务,厚度相较于LCD 屏幕更加薄并且更加轻盈。其性价比高,具有LCD 更加广阔的视角,画面更全面。反应速度更快。

图12:OLED12864 实物图

在识别模块扫描二维码后,可直接将任务显示到OLED屏幕上。

3 软件设计

系统采用模块化程序设计,依据全国大学生工程训练综合能力竞赛的场地,我们进行程序的编写。场地实验图如图13 所示。

图13:实验场地图1

智能搬运平台从上电初始化开始,用摄像头读取任务信息,平台运行到取货点,进行颜色的识别,按照任务信息抓取。随后平台行驶至卸货区(加工区),通过机械臂以及摄像头配合准确放置物料。程序设计流程图如图14。智能搬运平台开始工作后,首先进行摄像头串口初始化,根据光照强度对颜色LAB 参数进行微调,随后进行二维码的检测,如果未检测到则发送位置误差;如果监测到则进行颜色识别,识别后发送抓取目标的位置,观测物体与机械臂之间的距离,再次发送误差,收到完毕信息后结束作业,如若未收到完毕信息则再次循环发送抓取目标位置。

图14:程序设计流程图

3.1 机械臂控制

我们使用给总线舵机传送数据指令来控制舵机的转动,如下所示:

然后我们总共使用4 个串行总线舵机,提前定义好每个舵机的ID,然后提前调试抓取位置的舵机位置数据,进行编写。如下所示抓取程序:

3.2 平台移动

我们使用PWM 控制电机的驱动,具体原理在这不仔细讲解。

首先使能PWM,并进行重映射

4 难点及关键技术

4.1 灰度传感器配合麦克纳姆轮循迹

灰度传感器由发光二极管和光敏电阻组成,通过光敏电阻的阻值变化来体现灰度颜色的变化,因此可以通过组合两组以上的灰度传感器分布在机器人的不同角度以实现循迹。当机器人发生偏转时,相应方向灰度传感器被触发机器人反向偏转实现路线修正。控制相关平台稳定性的难点在于始终在驾驶过程中控制技术手的长度和材料。如果地面稍微不均匀,或者如果场景变化很大,它会导致相关平台重心的变化,增加落下材料的可能性。因此,会考虑使用麦克纳姆轮进行全方位运动。

我们采用上下位机同步控制周期的方法。下位机在控制电机和机械臂时要求有比较精准的周期而上位机线程受操作系统的负载和调度方式的影响无法达到精准控制,这时上下位机之间要如何同步是关键。利用下位机可以反馈精确的控制时间这一点来缓解上位机时间不准的问题。上位机的时间难以精准控制,在与具有精准控制周期的下位机进行同步时带来了挑战,利用下位机精准的反馈时间,现加上同步缓存,可以在很大程度上解决这个问题。

解决方案:

(1)在下位机上设置指令缓存,一次从上位机接收一定数量的指令,假设为N,减少上位机时间不准时带来影响;

(2)制定通信协议,下位机按固定周期(30ms)往上位机发送状态数据,数据包里包含下位机的时间信息或是这是第几个包,上位机收到这两种信息之后(任意一种),都能确定下位机的准确的时间;

(3)上位机拿到逻辑层的控制指令时(与接收下位机数据的线程不是一个线程),不立刻下发到下位机,而是记录到一个command house 里;

(4)上位机的接收线程,在收到下位机的message 之后,进行处理,由于tcp 存在粘包问题,这时候收到的可以不只一个包(下位机过了好几个发送周期),上位机要根据2 中协议里的数据来确定下位机的准确时间;

(5)将发送动作放到上位机的接收线程中,如里是第一次收到下位机的数据,则从3 里的command house 里拿N个指令数据发送到下位机,如是不是第一次收到下位机的数据,则收到几帧下位机的数据就从command house 中拿几帧指令发送到下位机,使下位机的指令缓存中始终保持为N。

4.2 软件延时+物理遮光实现数据防抖

外界光线会对光敏电阻产生较大影响,因此需要将传感器贴地放置并在传感器四周进行遮光操作且灰度传感器在通电瞬间会产生数据抖动,因此需要使用软件延时待数据稳定是继续进行采集。如果红外灰度探测器的轨迹与反射光的不同强度一致,则会影响外部光强度的变化。此外,由于平台中心对本征探测器灵敏度的严重变化,本征探测器与地面之间的距离也应受到影响。

因此,使用软件的延时以及硬件遮光的双重消抖来让红外灰度传感器反馈信息更加准确。

4.3 OpenMV配合机械臂抓取和放置物料

图像识别传感器以OpenMV 作为核心,使用颜色识别以及特征点检测算法进行物块识别以及机械臂的配合,最终达到目标。如图15 所示。

图15:控制结构图

5 结语

STM32f103C8T6 作为智能物料搬运机器人的核心处理器,能够独立完成任务识别、任务显示、物料抓取放置、机器人运动等一系列运动的设备。机器人上安装了控制模块、运动模块、机械臂模块、识别模块、控制模块、任务显示模块,综合所有模块实现最终功能。在工厂固定性路线进行重复性的工作,减轻人工负担以及成本。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!