基于双目视觉的双臂协作教学机器人研究与设计

2021-06-28 06:59温秀兰胡仰姚波赵艺兵宋爱国崔伟祥
南京信息工程大学学报 2021年3期
关键词:控制板舵机上位

温秀兰 胡仰 姚波 赵艺兵 宋爱国 崔伟祥

1 南京工程学院 自动化学院,南京,211167 2 南京工程学院 工业中心/创新创业学院,南京,211167 3 东南大学 仪器科学与工程学院,南京,211196

0 引言

随着全球产业竞争格局的重大调整,重视制造业成为世界主要大国促进经济转型发展的战略选择,欧美等发达国家纷纷以制造业作为振兴实体经济的重要抓手.德国率先提出“工业4.0”概念,美国推行“先进制造伙伴关系”计划,2015年我国提出了《中国制造2025》规划[1],全球制造业的发展正在集中指向智能化制造、精密制造.为实现《中国制造2025》宏伟目标,教育部针对机器人及智能制造人才缺乏问题,分别于2015年和2017年批准成立“机器人工程”专业和“智能制造工程”专业.2015年东南大学获批设置国内首个“机器人工程”专业,至2020年全国已有302所高校获批“机器人工程”专业,212所高效获批“智能制造工程”专业.这两个专业涉及新技术多,综合性、实践性强.为满足新专业建设要求,提升学生实践创新能力,亟需教学实验平台支撑[2-3].

机器人作为高新技术的载体,集机、电、控、图像处理于一体,涉及多门课程理论知识和实践教学,且易于激发学生学习兴趣,易于进行拓展实验,可以提升学生创新能力,为此在实践教学中越来越受到重视,成为近两年研究热点[4-10].考虑到轨迹规划及控制是机器人核心技术,文献[4]设计了一种平面二自由度的机器人实验平台,用于开展机器人的轨迹规划和控制实验.为模拟病人颈部和脊柱的运动和力学特性,文献[5]开发设计了一种旋提操作教学机器人.针对工业机器人控制系统封闭和现有实验教学设备功能有限的现状,文献[6]设计了一款机器人手臂开放式控制实验平台,基于该平台能够开展机器人关节运动控制、手臂协调控制实验.为了解决实验教学过程中机器人结构复杂、成本高、编程效率低等问题,文献[7]设计了一种基于上位机控制的拖动示教教学机器人系统,该系统在设置好相关参数后只需根据上位机操作界面提示拖动机械臂运动就可以对机器人进行快速编程.文献[8]将双目视觉、搬运机器人和工业无线网等技术相结合,设计开发了一款智能搬运机器人实验平台;文献[9]介绍了一种基于计算机视觉开源数据库OpenCV,使用Python语言进行集成开发的管道巡检机器人视觉系统实验教学平台设计;文献[10]设计了一款俯视相机辅助的地面机器人导航系统综合实验平台,旨在解决复杂地形造成的各种不确定性.目前有关机器人实验教学平台多是针对特定应用对象或完成特定功能而研发的.“机器人工程”专业、“智

能制造工程”专业综合性、实践性强,为使学生能够更好地掌握理论知识和实践技能,提升实践创新能力,本文研究设计了集机、电、控、图像处理于一体,兼具拖动示教与开放性实验特点的双臂协作教学机器人.

1 机械结构设计

本研究机器人组成如图1所示,由机器人本体、控制装置、视觉装置组成.其中机器人本体包括左机械臂、右机械臂、末端机械手、总线舵机、舵机连接件,控制装置包括树莓派4B、舵机控制板、PC机及串口通信电路,视觉装置由双目摄像头、光源等组成.

图1 机器人系统组成Fig.1 Robot system composition

为了提高机械臂稳定性、降低设计成本,机械臂底座设计成大面积,双臂呈对称结构[11],在不增加机械制造难度的前提下达到示教的任务要求.左、右机械臂分别由6个舵机、舵机控制板、舵机连接件以及末端执行机构组成,机械结构如图2所示.该机器人左、右臂共12个舵机均由上位机控制,可以在上位机里通过拖动各舵机对应的滑动按钮改变各舵机的角度值,或者是编辑一系列动作构成动作组,烧录上传至舵机控制板.为了使机器人末端执行机构更具适应性,选取了可拆卸的机械手掌,可以针对不同工作场合变换末端执行机构,以节省成本、提高工作效率.

图2 双臂机器人机械结构Fig.2 Mechanical structure diagram of the dual-arm robot

2 软硬件设计

2.1 硬件设计

机器人硬件由主控制器、舵机控制板、总线舵机、双目摄像头、末端机械手等组成.主控制器采用树莓派4B,搭载1.5 GHz的64位四核处理器,支持蓝牙5.0,为满足高速图像处理的要求,选用500 MHz的 GPU,也支持Wi-Fi与有线网络,并自带2个USB 3.0与2个USB 2.0,适用于不同场景下的数据传输需求,有双目摄像头的预留接口.该机器人的舵机控制板使用STM32F1,和8/16位设备相比,所采用的ARM Cortex-M3 32位RISC处理器提供了更高的浮点计算能力,最高工作频率72 MHz,其拓展I/O口可以满足高达32路舵机控制.总线舵机采用LDX-227和LDX-180型号,转动角度范围分别为0~270°与0~180°.双目摄像头采用小觅摄像头标准版,型号为S1030-IR-120/Mono,深度分辨率为60 fps.

2.2 软件设计

机器人软件系统由上位机和下位机两部分组成.上位机主要实现机器人的拖动示教、视觉引导、运动分析、在线编程、协作抓取5大实验功能,由QT语言编写,主要由操作界面程序、串口程序、舵机程序以及接口程序构成.在拖动示教实验模块中,操作人员可以在操作界面上通过拖动各个舵机参数的滑动按钮发送相应的舵机参数值到下位机,控制其实现不同的功能以及修改必要的运行参数值.在示教结束后,在按下“复位”按钮后,机械臂会恢复初始舵机角度值,实现机器人整体复位.在运动学分析实验模块中,操作人员能实现左、右机械臂的正逆运动学解算.在视觉引导实验模块中,操作人员通过选择标定方式、图像处理算法以及双目视觉算法,实现目标工件准确定位.为了提升学生创新能力,在线编程实验模块和协调抓取实验模块设计成开放性实验,由操作人员设计编写机械臂协作抓取工程项目文件,通过编译上传,来进行机械臂的协作抓取,并能在协作抓取界面中,清晰地观察到协作抓取的成功率.

下位机软件由C语言编写,主要分为示教程序和还原程序,上位机负责切换这两种模式.在上位机开始拖动示教时,该舵机控制板负责接收上位机软件传递的舵机参数及动作组文件,来控制舵机以一定速度旋转相应角度.如果接收到复位指令,舵机控制板负责将预先存储好的初始舵机参数调出,控制舵机复位至初始位置.

3 算法设计

3.1 示教动作还原算法

本设计由上位机为舵机控制板提供复位请求,由舵机控制板程序的中断服务函数负责执行复位操作,控制左、右机械臂各舵机恢复初始角度值.该舵机控制板是以STM32F1为核心,有6个普通定时器和2个高级定时器,可设置复位请求为最高中断优先级,置于中断向量表里的第1位.在还原示教动作前,舵机控制板首先需要将12个舵机的初始角度值加载到内存,初始化每个舵机的数据寄存器、GPIO引脚,然后,舵机控制板会进入还原示教动作的执行程序中,将12个舵机的初始角度值转化为PWM参数值,通过PWM参数值控制舵机转动至初始角度.当“复位”按钮按下时,舵机控制板会不断比较当前舵机角度值与初始角度值,直到两者相等,完成示教动作.还原程序流程如图3所示.

图3 动作还原程序流程Fig.3 Flow chart of the action restoring program

3.2 重投影误差最小化算法

在该基于双目视觉的双臂协调机器人系统中,目标工件的识别与定位是必不可少的一步.传统的目标识别常常使用迭代最近点的点云配准方,这种方法一般需要提供一个较好的初值,也就是需要粗配准,但是由于算法本身缺陷,最终迭代结果可能会陷入局部最优,导致配准失败,往往达不到想要的效果[12].

本设计采用重投影误差最小化[13]的方法,能够在一定程度上抑制重投影误差对目标工件定位过程带来的影响,可以得到更为准确的工件中心点坐标值.用于优化的目标函数[14]为

(1)

Step1:将双目摄像头获取的n组观测数据作为输入数据;

4 机器人原型系统及软件平台

为了验证设计方案的可行性,根据上述原理开发的机器人原型系统如图4所示.

图4 机器人原型系统Fig.4 Robot prototype system

基于软件系统的多任务要求,软件平台在Windows操作系统下通过QT开发工具对系统功能进行设计编程.上位机界面如图5所示,由拖动示教、视觉引导、运动分析、在线编程、协作抓取5大实验模块组成.下位机借助Keil5平台对舵机控制板进行开发调试.

图5 上位机界面Fig.5 Upper computer interface

5 实验功能测试

5.1 拖动示教实验

拖动示教实验通过调节滑条上滑块的位置来改变各舵机角度值,接着点击 “开始示教”按钮把机器人各舵机参数值直接上传到程序编辑窗口.本系统的示教程序格式统一为“舵机ID:参数”格式,每条程序以分号结尾.当“停止示教”按钮按下时,舵机参数值不变,机器人位姿也不会发生变化.示教过程结束后,可以通过点击“复位”按钮让机器人执行还原动作程序,恢复初始舵机角度值.该实验模块能同时实现动作组控制示教功能,在点击“添加动作”按钮后,会弹出动作组添加窗口,通过按序编辑多组“舵机ID:参数”的方法,程序会自动整合动作组文件.在点击“上传”按钮后,程序将控制动作组文件传输至下位机程序,由舵机控制板负责控制动作组文件的执行时间与循环次数.

5.2 视觉引导实验

视觉引导实验模块如图6所示,学生可以通过连接双目摄像头抓拍图像,来进行标定与图像处理.还可选择SAD、SSD以及SGBM等算法来识别目标工件的中心点坐标,然后反馈给舵机控制板,来引导机器人的一个机械臂准确、快速地抓取到目标工件.

图6 视觉引导实验Fig.6 Visual guidance experiment

5.3 运动学分析实验

该实验模块能够完成单臂运动学分析实验.该机器人左右臂结构相同,均由6个关节串联连接,根据Denavit-Hartenberg (DH)模型,可以得到机器人连杆相邻坐标系之间的变换关系[15],即

Ai=R(Zi,θi)T(Zi,di)T(Xi,ai)R(Xi,αi),

(2)

其中:ai,di,αi,θi分别表示机器人第i个关节的连杆长度、连杆偏距、连杆扭角及关节角的名义值;R(Zi,θi)表示绕Zi轴转动关节角θi的旋转矩阵,T(Zi,di)表示沿Zi轴移动距离di的平移矩阵.机器人正运动学分析,即由已知的6个关节转角θ1,θ2,θ3,θ4,θ5,θ6求末端的位姿矩阵Tn过程.

(3)

根据机械臂DH模型几何参数值及其末端的期望位姿,求解逆运动学方程可以得到6个关节角:

(4)

其中,IKP()表示工业机器人逆运动学求解函数.式(4)可以得到8组解.在实际运动过程中,根据机器人运动范围及以最小的能量消耗或者最短的行程到达的关节角,确定一组最优解关节角.该实验模块如图7所示.

图7 左机械臂逆运动学分析实验Fig.7 Inverse kinematics analysis experiment of left manipulator

5.4 在线编程实验

在线编程实验模块设计成开放式结构,如图8所示,学生可以在该实验中学习如何编写舵机控制板下位机程序,熟悉工程文件的创建规则、GPIO口的使用、库函数的调用、STM32的系统文件、位操作、时钟电路与PWM驱动舵机等有关代码及编程逻辑.

图8 在线编程实验Fig.8 Online programming experiment

5.5 协作抓取实验

协作抓取开放实验需要根据在线编程的实验结果进一步完成,如图9所示.学生可以通过标定结果示意图观察到被框出的工件轮廓以及中心点坐标,在点击“读取标定结果”按钮后,将所得的工件中心点坐标反馈给舵机控制板,由在线编程实验中设计编写的协作抓取工程文件,控制一只机械臂对目标工件的抓取;当按下“开始协作抓取”按钮后,控制另一机械臂仿照前一机械臂的运动轨迹运动至相同位置执行交换、组合与放置任务,来达到协作抓取的目的.该界面会显示自行设定好的协作抓取次数,并对抓取成功率做出显示,综合评估学生的实践设计能力.

图9 协作抓取实验Fig.9 Collaborative grasping experiment

6 结论

为解决智能制造、机器人工程等新专业实验装置短缺、学生创新实践能力亟待提升等问题,本文完成了基于双目视觉的双臂协作教学机器人机械结构设计、硬件设计、上位机软件和下位机控制软件研发.为提高机器人末端位姿数据采集精度,提出了重投影误差最小化算法用于该机器人使双臂协作抓取更准确稳定.经机器人原型系统设计制造及实验研究,验证了该系统不仅能够通过上位机拖动控制双臂运动完成示教编程及动作组实验,而且还能够进行基于视觉引导的图像处理及单臂抓取实验、运动分析实验、在线编程实验及协调抓取开放实验.该系统不仅兼具拖动示教编程效率高与开放灵活提升创新能力等特点,而且成本低,非常适于在新专业自主创新实践教学中推广应用.

猜你喜欢
控制板舵机上位
基于速度观测的双余度电液舵机系统容错同步控制
一场史无前例的乐队真人秀
谈谈DAM中波发射机的单元电路调整
一种集成脚本控制单元的设计与实现
一种全隔离的无刷直流电机的反馈制动控制板的研究
超音速舵机保护器
基础油“上位”
菜鸟看模型
舵机的应用
基于VC的PLC数据采集管理系统