基于视觉系统的自主导航搬运机器人的设计

2024-01-25 11:16孙慧霞毛世彤柳长叶乔文宇王沁欣马紫微
运城学院学报 2023年6期
关键词:激光雷达摄像头物品

孙慧霞,毛世彤,柳长叶,乔文宇,王沁欣,马紫微

(1运城学院 物理与电子工程系,山西 运城 044000;2 太原师范学院 计算机科学与技术学院, 山西 晋中 030619)

随着技术的不断进步和社会需求的不断演变,人们对于更便捷、更安全的自动化和智能化产品的需求与日俱增,搬运机器人成了提高生产效率、改善产品质量、解决劳动力短缺以及改善工作条件的重要工具。本文设计并开发了一款基于视觉系统的自主导航搬运机器人,该机器人硬件设计包括避障模块、物品识别模块、机械臂抓取等,通过不同感知模块的协同工作使机器人能够高效地感知周围环境,识别物体,执行精准的分拣搬运任务。避障模块通过传感器实时监测环境,确保机器人在操作过程中能够自动避障,提高了操作的安全性和可靠性。物品识别模块结合图像识别算法,使机器人能够准确地辨别各种物体,为后续的抓取和搬运提供了可靠的数据支持。而机械臂抓取放置装置则能够根据物体的特征和位置进行灵活的抓取和放置。在软件方面,采用了改进A*路径规划算法,使机器人能够智能地规划路径,并且目标抓取算法使机器人能够准确地抓取目标物体,高效地完成搬运任务。同时,开发了手机App,采用了TCP协议,将手机App与机器人连接起来,用户可以通过手机App对机器人进行远程控制,下达任务指令,实时监控机器人的运动状态,并且与机器人进行信息交流。既提升了机器人的灵活性,也为用户提供了更便捷的操作体验,能够灵活应对各类生产需求,对于推动工业自动化、信息化发展以及产业数字化具有重要意义[1]。

1 系统架构

基于视觉系统的自主导航搬运机器人系统的结构架构如图1所示,该系统由多个关键组件组成,包括STM32单片机、树莓派控制主板、机械臂、摄像头、激光雷达、语音模块以及智能机器人[2]。通过组件协同工作,为机器人提供全面的感知和控制能力。树莓派控制主板和STM32单片机构成了机器人的核心控制中枢。通过树莓派与STM32之间的高效通信,实现了对机械臂动作和机器人运动的分别控制。这种分层控制结构使得机器人的运动与操控更为灵活,可根据具体任务对机械臂和底盘进行独立或联动控制,从而适应不同的工作场景。激光雷达是该系统中的关键感知器件,负责实现智能避障与路径规划。一方面,它能够高精度地感知周围环境,通过实时获取距离信息,帮助机器人规避障碍物,确保其在复杂环境中安全导航。另一方面,激光雷达还能协助实现路径规划,使机器人能够智能选择最优路径,提高搬运效率。摄像头模块用于完成对物品视觉特征信息的获取,从而实现对物品的智能识别。通过摄像头获取的视觉信息,机器人能够准确判断物体的位置、形状等特征,为后续的抓取和放置提供重要的视觉反馈。为了实现远程监控和操控,开发了配套的Web网页和语音控制模块。用户可以通过Web网页端实时查看MySQL数据库与树莓派通信后的信息,了解机器人的状态、任务进度等关键信息。同时,语音控制模块使得用户可以通过语音指令实现对机器人运动的远程控制,增加了操控的灵活性。

图1 系统结构设计图

2 系统硬件设计

2.1 机械结构

智能搬运机器人的机械结构部分主要由机械臂和机器人组成。机械臂采用全铝合金,具有6个自由度,获取信息后进行货物的分拣,支持手柄与App两种控制方式,满足用户多样化的需求。机器人由底盘、麦克纳姆轮、驱动组成,麦克纳姆轮可以更灵活方便地实现全方位移动[3]。四个电机位于底盘之下,通过分层布局可以对电机起保护作用。机身设计了活动滑盖,方便开关。整体采用SolidWorks进行建模设计并3D打印实物,如图2所示。

图2 整体结构图

2.2 硬件电路PCB

图3为主板控制电路PCB。该PCB主要有电机驱动模块、WiFi通信模块、电压转换模块、电源指示灯电路、复位电路等模块。电机驱动模块是整个电路的核心,负责接收控制信号并将其转换为电机动作。此外,主板还集成了WiFi通信模块,使用户可以通过无线网络远程控制和监测电机的运行状态。这项功能为系统提供了更大的灵活性和便利性,特别是在需要远程操作的场景下。电压转换模块是为了适应不同电源和电机的电压要求而设计的,能够有效地将输入电压转换为电机所需的适当电压,从而确保电机在各种工作条件下都能够正常运行。在整个主板上,还包含了电源指示灯电路,以便用户可以直观地了解电源状态。这一设计不仅提高了用户体验,还有助于故障排查和维护。同时,复位电路的加入确保了在需要时能够迅速恢复系统到初始状态,提高了系统的可靠性和稳定性。为了优化整体性能,该主板采用双层PCB板,并通过合理布局元器件来最小化电路板的复杂性。在设计过程中,特别关注了主控芯片和发热元件的布局,以确保它们能够获得良好的散热效果,从而提高系统的稳定性和寿命。

图3 硬件电路PCB

2.3 PID控制系统

自主导航搬运机器人采用520编码器电机测量和反馈麦克纳姆轮的运动信息,通过串口通信监测编码器输出脉冲的速率[4],从而实现麦克纳姆轮速度的实时测量,比较期望值和实际值,得到控制偏差,然后通过对偏差的比例、积分、微分进行控制运算[5],使偏差趋于零,达到机器人的预定运动状态。图4为实时监测到的使用printf函数串口连接上位机打印出来的波形,实现了电机运行状态的监测,图中I0是左轮转速,I1是右轮转速,I2是左轮PWM值,I3是右轮PWM值,正常工作时,I4为0,p2为右轮的PID比例项参数,i2为右轮的PID比例项参数,i为左轮的PID微分项参数,P为左轮的PID比例项参数,ltar是左轮目标值参数,rtar是右轮目标值参数。

图4 上位机监测情况

2.4 自主导航控制系统

自主导航搬运机器人采用STM32作为驱动控制板控制电机,采用树莓派4B来搭载ROS系统[6],通过串口与STM32通信,通过USB连接激光雷达与摄像头等主要传感器。该机器人采用的360度扫描测距激光雷达每秒采样可达3000次,采用ROS操作系统封装的Gmapping算法将定位与建图过程分离,先定位,再进行建图。Gmapping会订阅tf和scan两个话题,用于激光雷达坐标系、基坐标系、里程计坐标系之间的变换以及激光雷达扫描数据,Gmapping还会发布话题,如发布地图Meta数据、栅格数据、机器人姿态分布值估计,通过VNC软件连接机器人的控制系统,分别运行启动机器人底盘、启动Gmapping建图中的launch文件、启动键盘控制节点的指令后,实现如图5所示的环境建图,周围的白色和黑色就是正在建立的地图,从而实现机器人的自主导航与避障[7]。

图5 环境建图时的图像

2.5 图像处理技术

机器人的图像处理采用了OpenCV的函数库,可进行图像载入、保存和采集操作,实时处理图像。本文采用KCF(Kernelized Correlation Filters)跟踪算法和特征匹配算法,实现物体识别与跟踪任务。首先,对图像进行初始化,创建显示界面。随后,启动摄像头并进行初始化,初始化完成后拍摄图像[8],如图6所示为摄像头拍摄到的图像。摄像头捕捉到的图像可能受到光照和噪声等因素的干扰,因此利用OpenCV的图像处理功能对图像进行过滤和增强,提高视觉系统的鲁棒性。最终,对处理后的图像进行分析和处理,分辨出物品信息,计算完成后将相关结果发送给树莓派,最后由STM32单片机控制机械臂抓取物品。

图6 摄像头拍摄到的图像界面

3 系统软件设计

系统软件设计分为移动端和Web端,具体包括移动应用(App)和网页(Web)两个前端部分[9],以及后端数据管理的MySQL数据库。

3.1 App设计

自主导航搬运机器人App界面如图7所示,用户可以远程监控机器人在工作环境中的状态,通过手机应用远程控制机器人的移动、抓取等操作[10],同时,为用户提供会员中心、使用操作、维护维修等服务。

图7 App主界面

3.2 网页设计

为了实现对机器人的在线控制等操作,基于Java设计了一种Client-Server模型的网页,用户可以通过浏览器访问Web控制界面,进行多车调控,如图8所示。同时,网页还提供了历史工作数据和日志,记录机器人的运行历史、执行任务的时间和完成状态等信息,用户可实时查询物品信息并进行录入和删除操作,以及调取物品历史记录,如图9所示。

图8 Web控制界面

图9 物品信息录入网页

3.3 MySQL数据库

自主导航搬运机器人采用如图10所示的MySQL数据库,该数据库具有安全、可跨平台、高效的特点,并与PHP、Java等主流编程语言紧密结合[11],用于存储和管理与机器人操作和监控相关的数据,包括物品信息、机器人执行的任务列表、任务状态等信息。当用户创建、编辑或删除任务的时候,相关信息可以在MySQL数据库中进行更新。

图10 MySQL数据库

4 测试分析

4.1 测试环境

在服务器端进行数据库的部署,利用阿里云linux服务器,使用SSH工具通过服务器的公网IP地址远程登录到云服务器,然后在该linux操作系统上安装python环境,安装并配置数据库。

4.2 测试结果及分析

所需环境搭建好后,通过设计自启动文件实现数据库在服务器端的持续运行。硬件端则通过摄像头将条形码等信息送到服务器端进行物品的识别,并将预测结果返回到硬件端对物品进行分拣。将硬件设备准备好,把如图11所示不同种类的物品条形码放于摄像头前进行数据读取,经过Zbar算法和特征匹配算法处理[12],分别将物品种类、条形码编号、轮廓信息与数据库进行匹配,反馈结果显示在屏幕中。经过测试得出该识别的平均识别准确率可达100%,具体数据如表1所示。

表1 条码识别率测试

图11 测试图片

5. 结语

本文针对搬运、分拣需求度高的场景,采用了MDK5、PyCharm等开发工具,结合前端框架和库、后端开发,设计并实现了一款基于视觉系统的自主导航搬运机器人。该机器人以自主导航、智能识别和远程控制等功能为特色,为高度自动化的生产场景提供了可靠的解决方案。在图像识别开发方面,采用了OpenCV技术,通过调用摄像头对采集到的图像进行轮廓、条码等信息的多途径高准确率分析处理,使机器人能够迅速而准确地理解周围环境,为机械臂的抓取和放置功能提供了精准的数据支持。摄像头的实时视觉反馈使得机器人能够识别不同形状和特征的物体,实现智能搬运操作。机器人的动力系统采用了PID控制算法驱动电机,同时结合激光雷达技术进行地图构建和路径规划,使得机器人能够智能避障,实现自主导航。通过对周围环境的高精度感知,机器人能够构建精确的地图,规划最优路径,从而在复杂的工作场景中高效运动,提高搬运效率。系统的远程控制功能通过前端框架和库的应用,以及后端的开发实现。用户可以通过远程控制界面实时监控机器人的状态,并通过远程指令调整机器人的运动轨迹,从而提升了机器人的操控灵活性,也使得操作者能够更加便捷地响应生产线上的变化。综上所述,本文所设计的基于视觉系统的自主导航搬运机器人充分发挥了图像识别、PID控制和激光雷达等技术的优势,能够实时感知环境、识别障碍物和目标位置,从而实现智能避障、自主导航、分拣搬运和远程控制,对于产业数字化转型发展具有重要价值。

猜你喜欢
激光雷达摄像头物品
手持激光雷达应用解决方案
浙江首试公路非现场执法新型摄像头
称物品
摄像头连接器可提供360°视角图像
法雷奥第二代SCALA?激光雷达
“双十一”,你抢到了想要的物品吗?
谁动了凡·高的物品
基于激光雷达通信的地面特征识别技术
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
基于激光雷达的多旋翼无人机室内定位与避障研究