裴宇昂,吴雯雯,陈 秀,徐扣敏,强红宾,刘凯磊
(江苏理工学院机械工程学院,江苏 常州 213000)
垃圾抓取机器人通常工作在布局多变、障碍因素较多的环境,整个环境由不平整且范围较广的空间组成。为适应该环境下机器人的移动,其底盘采用了履带式的行走底盘,采用直流电动机PWM控制技术,对速度及电流进行双闭环控制分析,实现机器人履带驱动直流伺服电动机的闭环控制算法,并采用差动驱动原理实现机器人在形态各异的地形下进行有效移动,通过调整左右电机的差速大小,使机器人能够实现转向、后退与直线行进等运动,适应各种复杂地形。
垃圾抓取在机器人对各种路况的环境路径规划过程中,需要利用算法规划全局道路和局部整体道路。常用的全局路径规划算法包括Dijkstra计算和RRT算法等。Dijkstra算法通过集合间的判断,以广度优先寻找最短路径,但遍历结果较多导致效率低。RRT算法规划路径方法具有高效率性,但随机点的生成容易陷入局部最优解。A*算法常采用启发式搜索方法,目的使搜索方向向目标点行进的同时兼顾优先搜索路径代价比较小的点,省去无意义的节点的计算,有效地提高算法效率。
全局路径规划可以获取完整路径轨迹,但不适用于快速避障,并且全局路径规划计算量相对比较庞大,因局部路径变化反复调整全局路径而增加计算量,将降低导航效率。应用动态窗口算法能够实现局部路径规划,提高路径规划算法效率。
本文设计的垃圾识别抓取机器人实验平台,由直流电动机驱动主动轮,通过围绕主动轮与从动轮的履带链环来实现机器人的移动,配备14 000 mAH电池向机器人系统供电,Arduino开发板作为核心数据处理器,HC-SR04型超声波传感器用于障碍采集与测距,搭配K210视觉检测模块进行实时垃圾信息采集,并传输给Arduino开发板,通过运动学逆解使机械臂末端执行器进行物体抓取。由安装了ubuntu 18.04虚拟机上位机作为计算机端通过Wi-Fi蓝牙模块实现与Arduino的实时通信,同时采用K210的视觉识别技术进行垃圾抓取后的分析与分类。
本文采用A*算法使机器人在路径规划中获取最优路径,利用启发式搜索算法,对于遍历的任意子节点或父节点采用评价函数f(n)计算通过该节点的代价,在每次施行搜索时选择当前位置周围f(n)值最小的点采取扩展,直至找到目标节点,生成最优路径[1]。f(n)的计算如式(1)所示:
f(n)=g(n)+h(n)
(1)
式(1)中,g(n)为初始节点到当前节点之间的时间价格,而不考虑所驶路径障碍物所占节点情况下的两点的距离;h(n)为启发函数,考虑路径障碍物时的距离;f(n)为机器人移动到目标点所需代价。
在计算f(n)函数计算时,仅需要考虑点到点之间的移动所需代价,因而选择曼哈顿距离算法计算距离,有利于提高路径计算的效率:
dist=|x1-x2|+|y1-y2|
(2)
一般A*算法常采用八邻域法[2],即搜索当前所在节点周围的8个均匀节点。A*算法进行路径规划算法的基本步骤可分为设置合适的栅格环境,定义起始所在位置与目标所在位置,确定启发函数h(n),执行A*启发式搜索算法和生成规划路径。程序流程如图1所示。
图1 A*算法实现流程图
同时,通过HC-SR04型超声波感应器,可以使用IO触发的方法进行测距,并通过使用超声波检测技术信号由控制端到接收端之间的最高电平时间,以及根据声音在空气中的传导原理,估算障碍物的间距,进而实现探测定位的功能。在本设计中,使用了HC-SR04和SG60舵机相互融合技术来收集障碍物的方位信息。当智能车辆遇到障碍物时,信息就可以反映到超声波信号感应器上,在完成了对障碍物方位信息的分析与数据处理之后再将信息反馈给Arduino处理芯片,使之调用对应的程序进行处理。
视觉模块Kendryte K210采用RISC-V双核64位处理器,以STM32F427CPU为核心,同时搭载了CSP三封装的OV2710摄像头传感器,通过与DVP-10bit的并行数据端口,可以进行1080p@30fps的视频信号拍摄,为后期KPU处理技术带来了超高识别率的输入值。使用C语言有效地完成了核心机器视觉算法,通过架设机器视觉系统实现了图形采集。机器视觉算法中涉及搜索色块、人脸图像检查、眼睛追踪、边界检查、标志追踪等,辅助机械臂进行自动视觉识别并采取抓取活动。
垃圾识别分类的核心技术是通过K210的神经网络实现对图像的处理与辨识,以Darknet作为深度学习开发的框架,通过YOLOv二模块对物体进行检索与分类,并拥有出色的mAP和FPS性能等指标,在训练的过程也采用了数据增强的技术,使得数据具有更强的适应性。
视觉系统的神经网络的设计思路来源于对抗神经网络:拥有2个神经网络,一个是用于图像切割和初次垃圾识别的YOLOv5神经网络,一个是用于特征提取和特征匹配的神经网络,然后将指令传递到STM32核心。该神经网络结构中使用的是基于VGG十六的卷积神经网络模式。通过2个神经网络的共同判断,可以实现垃圾的准确判别。
为考虑后期模型优化问题,以更适用于K210等轻量级终端,在本文中引入了剪枝项目[3]的理论模型,对YOLOv二模式提供了稀疏训练[4],其基本原理是对所有信道都引入比例因子β,使之乘以信道的输出值。将比率因子β和训练网络的权值结合,再经过稀疏正侧化的处理过程后,可以透过去掉比率因子通道,获得微调剪枝网,练习目标公式如下:
(3)
式中:x,y为训练数据信息和标记;W为网络的可练习参数。其中,l(f(x,W),y)表示训练的 loss函数;g(β)是在比例因子上的训练参数;λ则是稀疏系数。
在取g(β)=β时,即应用于稀疏化操作的L1-Norm(L1正则化)。经过设计后的模块有效减少了内部存储器占用和模型空间[5],从而可以在K210上进行更高效的部署、使用和管理。而后期导入培训完成后的模块在K210运行测试中,将必须重新调用其内部的神经网络处理器KPU,然后进行装载,并执行新构建的算法模型实现目标检测,内部分析过程如图2所示。
图2 智能垃圾分类流程图
使用K210所搭载的YOLOv2算法对图片中的目标物品加以侦测辨别,从而获得了目标物品在RGB图片中的正确定位信号;基于深度图像信息,使用K-means++聚类算法可以快速估计目标物体与摄像机之间的距离,并预测目标物体尺寸和姿势,同时可以在开环控制中,通过运动学逆解计算机械臂末端执行机的位移信号,再根据目标物体的尺寸、姿势和到末端执行机的距离等信号,并使用PID算法操控机械手臂捕获目标物体。
机臂运动学逆解(Analytical solution)是基于存在可解性(solvability)的情况下,通过驱动操舵设备等使机器人滑膜关节实现回转或平移动作,同时考虑当前的位置作为输入参数并设定权重比,得到控制程序执行至目标点时的最优值,在原本设计中需要考虑碰撞体积、路线规划等问题的基础上,得到了全部值。逆解个数决定了机器人的滑膜关节数量、自动化机器人的基本构造、对滑膜关节的控制范围,而决定自动化机器人结构的D-H参数表上的非零值愈来愈多,因此也有愈来愈多的解存在。具体控制流程如图3所示。
图3 机械臂控制流程图
本文主要通过全地形的履带式自动化机器人设计,在各类复杂多变道路下进行仿真,提升了自动化机器人一定的越障能力和机动性能,利用铆钉履带轮增强机器人的抓地力,使行驶更安全;同时在工作过程中利用自身传感器收集信息,对烧录的程序进行适当的处理,并调节相应的舵机或电动机运行,以便通过所有障碍。
为避免在管道路况的环境行驶时产生打滑现象,因此设计上采用了履带花纹,以增加与地面的摩擦系数,可在各种道路上灵活调节方向,但不适宜用于实现差速转弯。采用悬挂式构造,在折叠车前部使用了二组较大且独立的履轮,并使用了二标准操舵装置将机器人主体连接,在使用阶梯时有效减少了震动和卡顿。
采用三维建模软件Soliworks对垃圾抓取全地形智能避障小车进行车体结构、摄像头支撑结构、摄像头调整结构等设计,在保证满足功能需要和所用材料力学性能的同时,采用复合轻量级材料,车身更轻。
兼顾了搜索有效性与路径有效性,本设计通过MATLAB对于A*算法进行了全局路线规划的仿真检验,并通过MATLAB模拟流程,实现了对机器人在仿真场景中使用A*算法实现的全局路线规划和导航,结果如图4所示:Routing表示全局路径,Obstacle表示全局路径障碍目标点,结果表示实验平台能够根据上位机端发布的导航点自主规划通往目标点的路径,该仿真验证了本文路径规划方法的有效性。
图4 MATLAB路径规划仿真图
为实现多种复杂路况下垃圾抓取与识别,本文设计了一种针对复杂场景下的智能垃圾抓取分类机器人平台,从机器人机械臂、路径规划、视觉识别及机械结构方案等方面进行设计,采用基于运动学逆解的机械臂开环控制、基于K210下YOLOv2算法的物体视觉识别方法、基于A*算法的全局路径规划方法,较好地实现与全局路径规划、垃圾识别抓取与分类功能,通过超声波传感器实现避障。实验结果证明了本文的设计效果良好,具有广泛的应用前景。