桌面级机械臂的智能控制方法
2020-03-02李洪成张淑丽郝昕刘胜辉
李洪成 张淑丽 郝昕 刘胜辉
摘 要:提供一种桌面级机械臂的智能控制方法,对其控制系统方案进行整体设计,使用树莓派来驱动电机,在其上安装机器人操作系统ROS,使用YOLO算法来实现目标物体的检测与识别,并将此整合到OpenCV中,用ROS系统的MoveIt!工具包进行运动路径规划。结果表明,该方法满足桌面级机械臂智能抓取物体的需求。
关键词:机械臂;树莓派;YOLO算法;OpenCV;ROS
中图分类号:TP241 文献标志码:A 文章编号:2095-2945(2020)05-0042-02
Abstract: This paper provides a smart control method of desktop-level robotic arm, design the overall control system solution, use Raspberry Pi to drive the motor, install the robot operating system ROS on it, and use YOLO algorithm to achieve the detection and recognition of target objects And integrate this into OpenCV, use MoveIt! Toolkitof ROS system for motion path planning. The results show that this method meets the needs of desktop-level robotic arms to grasp objects intelligently.
Keywords: robot arm; Raspberry Pie; YOLO Algorithm; OpenCV; ROS
随着“工业4.0”和“中国制造2025”的持续推进,机械臂的相关领域得到快速发展。桌面级机械臂不同于工业机械臂在特定环境下进行抓取物体,桌面级机械臂具有环境多变、人机智能交互、精准抓取等特点[1]。因此,针对此需求,建立以树莓派作为微型计算机,搭载ROS系统和OpenCV,在其上运行YOLO算法进行目标物体识别与检测,利用MoveIt!机械臂仿真包进行其路径规划的方法。
1 桌面级机械臂的整体控制方案
在树莓派(Raspberry Pi 3)微型计算机安装上ROS操作系统,利用机械臂摄像头拍摄的照片,对其进行目标物体的识别与检测,将目标物体的坐标位置转化为控制参数,进行对目标物体的抓取。控制系统方案图如图1所示。
2 基于Raspberry Pi 3的步进电机控制
机械臂通过Raspberry Pi 3驱动步进电机,从而实现机械臂在三维坐标系中自由活动。首先,通过Python和C++的编程来控制步进电机,此方式有效避免传统方式对机器操作的复杂性,降低了控制其运动的风险性。其次,通过GPIO引脚精确接受传感的信息和不同的频次的脉冲,能有效提高操作机械臂的精度和准确性[2]。与顶部组件的Arduino组合,不同的传感信息和执行结果在两者之间传送,实现步进电机和舵机的信息通信,从而实现机械臂的多用途、高效率、高精度的作业。
3 使用YOLO算法进行目标物体识别
3.1 YOLO(You Only Look Once)算法
YOLO算法是基于深度学习的多目标识别物体深度神经网络模型, 该算法任务是在机械臂的摄像头拍摄图片后,利用深度卷积神经网络进行特征提取,对图片上的这些物体分类和确认出物体在图片中的中心位置,图片检测速度达到实时检测的要求[3],其算法的流程框架模型如图2所示。
公式(1)中,Pr(Object)表示当前网络目标边框中存在物体的可能性,Object表示目标对象,IoU(Intersection over Union,交并比)展示了当前模型预测到的目标边框位置的准确性,其中pred表示预测的目标边框,truth表示真实的目标边框。boxt表示图像中真实目标的边框情况,boxp表示图像中预测目标的边框情况。
3.2 在OpenCV上运行YOLO算法
摄像头控制采用开源的OpenCV跨平台视觉库,运行环境配置完毕后,利用前述的YOLO算法整合到OpenCV程序中,通过图像中物体的位置信息来跟踪到指定物品,然后通过机械手抓取实现机械臂固定位置抓取,其信号的输入采集依靠摄像头,通过嵌入式平台进行信息交换,最后将采集的信息送入树莓派中[4]。基于视觉的物体识别系统框架图如图3所示。
为了精确并简便的处理图像识别问题,使得机械臂在视觉处理方面更智能,可以将视觉处理的复杂问题分解成简单的,易于实现的子问题进行分治处理,自顶向下的处理每一个子过程。
4 利用ROS系统的MoveIt!进行路径规划
ROS系统是构建在Ubuntu系统上的一种应用程序框架,能够实现节点间的信息传递或提供服务,从而降低了精准控制机械臂的难度[5]。
利用前述YOLO算法可以获得目标物体在空间坐标系的三维坐标,在这里采用ROS的3D可视化工具Rviz和機械臂仿真包Movelt!,构建机械臂的仿真平台。Movelt!是一款可用于正逆运动学求解、集成运动规划、感知检测等方面的机械臂软件包,可对其运动路径进行规划。
5 控制方法的相关验证
桌面级机械臂的控制方法利用摄像头拍摄的照片,基于树莓派(Raspberry Pi 3)的微型计算机,搭载机器人操作系统(ROS),将深度学习的YOLO算法搭载在OpenCV跨平台视觉库上,MoveIt!作为机械臂运动规划的工具包,对桌面上的物体实现定位抓取。利用该方法抓取过程如图4所示。
通过以上论述,该方法有效提高了桌面级的机械臂的自主学习能力、识别物体能力和精准抓取物体能力。并通过实践,验证了该控制方法是可行的。
参考文献:
[1]张伟业,张炜,华龙新,等.一种新型的桌面级机械臂[J].中国科技信息,2018(16):53-55.
[2]王亚腾.视觉控制的机械臂在家庭自动化中的应用[J].科技创新与应用,2015(17):14-15.
[3]高军,朱宏辉,Yi Lu Murphey.基于YOLO和RRN的运动目标跟踪方法[J].计算机工程与设计,2019,40(07):2019-2025.
[4]李娜,安彦波,余志伟,等.基于OpenCV的物体定位与捕捉系统设计[J].机械设计与制造工程,2019,48(03):85-88.
[5]李凤.基于ROS的机械臂控制系统设计[J].自动化技术与应用,2018,37(11):72-76.