1. 绪论
1.1. 引言
机器人问世之后,工业的发展得到了新鲜血液的注入。近年来,无论是“中国制造2025”的提出,还是“5G时代”的到来,都与智能机器人的发展有着密切相关。高端科学技术,于机器人行业的运用越来越被人们所重视,在当前国家的“科教兴国”的背景下,高端的智能机器人的发展是大势所趋。
经过多年的发展,传统制造业逐渐为人们所摒弃,智能化、系统化的生产模式逐渐映入人们的眼帘,世界的经济发展这些年不断地进步,各国也逐渐从武器的数量种类攀比走向了尖端技术的较量 [1]。各个国家对智能机器人的运用已然成为一个国家的科创能力于制造水平的标志。在此背景下,机器人的智能制造被许多人称为为“第三次工业革命”。
如图1所示,随着各个国家对机器人智能化的投入越来越大,智能机器人的曝光度越来越高,无论是GOOGLE所展示的人工智能机器人,还是京东迎战“双11”使用的快递分拣机器人,都代表着智能机器人的发展逐渐走向顶峰 [2]。
1.2. 本文主要研究的内容
本文主要研究一种智能搬运机器人的设计与实现,对于搬运机器人,我国已有了多年的技术发展,但以下几个方面仍有不足:首先,目前市面大部分工厂的搬运机器人的定位性价比普遍较低,大部分普遍采用传感器对参考位置进行对比定位,其次对于物料的识别范围较小,速度参差不齐。并且机器人的自主规划路径的能力较弱,大部分只会沿预设的路径行走,甚至于路径上需要覆盖黑线或者磁条,这使得工厂环境的更改以及人员的进出会对机器人造成巨大的影响。
![](//html.hanspub.org/file/3-2340654x10_hanspub.png)
Figure 1. Sales trend chart of industrial robots
图1. 工业机器人销量趋势图
所以本文通过对OPENMV机器视觉以及舵机齿轮型机械手、正交编码器,以及可调速直流电机等系统的组合运用,同时对机器人的结构外形进行合理的建模与分析,设计并实现一款可自主识别、规划路径、夹取的智能机器人 [3]。
本文主要研究内容以下几点:
(1) 对于机器人各个模块的选取与分析,简单介绍各个模块的原理以及优缺点。
(2) 实现各个模块的组合,将机器人的系统模块化,便于与实际使用时模块的选取,并对定位系统的路径以及速度进行分析与计算 [4] [5]。
(3) 对机器人的整体结构进行三维建模与有限元分析,得出合理的结构与尺寸。
(4) 对应用场景进行假设,设计实验步骤,并根据实验得出推广范围以及性能指标。
2. 模块的选取与分析
2.1. 中央处理单元的选择
智能搬运机器人具有丰富的模块,对实时计算能力也有很高的要求 [6],这使得我们所使用的主控芯片需要具有较多的引脚接口以及性能较高的CPU。
目前市面上具有许多的主控芯片,例如ARM、FPGA等等,其中,我们需要一款开发周期短、编写语言简易、程序开源的芯片,据此我们在芯片中对比选择了一款实时性好,频率高,价格适中的核心处理器:ARM。
据此芯片,我们对CPU进行了选择,如图2所示,因为我们对数据处理的要求,Cortex-m4更满足我们的需求。
![](//html.hanspub.org/file/3-2340654x11_hanspub.png)
Figure 2. Performance comparison of various models of CPU
图2. 各型号CPU性能对比
在对CPU选择完成后,我们使用了市场占有率高达90%的ST公司旗下的一款处理器:STM32。而其满足我们要求,且具有AD/DA模块接口,编码器接口,RS232等通讯接口的CPU核心芯片为STM32F407ZGT6芯片,其原理图如图3所示,其具有以下优点:
![](//html.hanspub.org/file/3-2340654x12_hanspub.png)
Figure 3. Schematic diagram of STM32F407ZGT6
图3. STM32F407ZGT6原理图
传输速度快:其采用多个AHB总线以及多通道控制其,数据的收集与发送可并行,速率很大。
运算功能强:集成了高精度的浮点运算器,高达1M的储存器使得该芯片的处理性能极佳,运算功能强。
外部接口多:因为我们的机器人需要使用多种通道进行数据传输,例如:USB、CAN、I2C、USART等等,而该芯片全部具有我们所需要的接口以及外设。
2.2. 机器人视觉模块的选择
随着前段时间AlphaGo与柯洁的围棋大战,人工智能逐渐进入了大众的视野,计算机视觉作为人工智能最为成熟的技术,同样适用于我们所设计的智能搬运机器人,在机器人的视觉系统中,一款简单、开源、低成本、高性能的机器视觉模块是至关重要的。
笔者在流程设计中需要视觉模块在短时间内完成二维码、颜色等识别,这对视觉模块的处理芯片要求很高,同时对于体积的要求也很苛刻,针对以上要求,我们选择了OPENMV这款机器视觉模块作为我们视觉系统的核心。
OPENMV以STM32F427CPU为核心,集成了OV7725摄像头芯片,其主频400 MHz,其性能接近600 MHz主频的恩智浦RT1052,经过测试,STM32H7在做多点颜色追踪算法时,如果以VGA分辨率,即640 × 480,其速率可达到到80帧每秒;如果使用QQVGA,即120 × 160,就可达到200帧每秒;如果使用QQQVGA,即60 × 80,更可以达到400帧每秒。
同时OPENMV使用Python作为其编写语言,其开发周期短,性价比高的特点十分符合我们对于视觉模块的要求。其丰富的硬件资源,例如UART、I2C等等更适合我们对于各个模块的整合。
综上所述,我们采用OPENMV作为我们机器视觉系统的核心,借此可以完高效地完成如图4的颜色识别,以及二维码识别等等。
![](//html.hanspub.org/file/3-2340654x13_hanspub.png)
Figure 4. OPENMV color recognition example
图4. OPENMV颜色识别示例
2.3. 抓取模块的选择
作为一款搬运机器人,其抓取模块应具有较大扭矩、控制方便、价格便宜等特点,通过市场同类产品对比分析,我们选择了由舵机控制的齿轮型机械手。
这款机械手采用国产“驯龙者”舵机,该舵机程序控制简单,对于引脚占用较少,同时在7.4 V的供电下,其堵转力矩达到了34.6 KG/CM,完全满足常规搬运机器人对货物的要求,同时,其搭配的铝合金机械爪使得抓取范围达到了140 mm,同时该机械爪可以更换,针对不同的使用场景可进行修改。
综上所述我们采用了如图5的这款机械手,其搭配上文所述的OPENMV使得机器人的识别、抓取时间极大的缩短,更多的提升了工业生产搬运的效率。
![](//html.hanspub.org/file/3-2340654x14_hanspub.png)
Figure 5. Steering machine controlled gear type manipulator
图5. 舵机控制的齿轮型机械手
2.4. 移动模块的选择
机器人的移动模块一共包括两个部分:电机与车轮 [7]。其中对于电机的选择,笔者考虑到两点:
(1) 可控速
搬运机器人的移动需要完成由低速-高速-低速的过程,这样才能保证物料在移动过程中不会受到较大惯性的影响,同时减轻对机械手的损耗。并且于笔者设计的环境中,物料搬运机器人需要达到1 M/S以上的运行速度,这对于电机的转速以及转速比有较高的要求。
(2) 性价比高
搬运机器人的整体造价由各个模块决定,各个模块的成本应在完成相应性能的情况下尽可能地降低,对于市面上常见的可控速的电机中,光电编码器的直流减速电机随检测精准,但其价格过高,不宜选用,而对于霍尔传感器的直流减速电机,于工厂中的应用,其使用寿命经测试可达到1万小时,满足实际要求。
综上所述,我们采用如图6 ZGB37-520B这款带有霍尔编码器的直流减速电机,其空转转速可达到531 rpm,其扭矩也能达到2.5 kg∙cm,满足智能搬运机器人的使用要求。
而对于车轮,则需结合机器人整体进行考虑:笔者所研究的智能搬运机器人为基于工厂内二维空间移动的机器人,所以笔者采用快速、平稳、控制方便轮式移动而非履带和腿式等其他移动方式,为了更加高速快捷、智能的移动,笔者采用全方位型移动车轮。同时处于对机器人精准移动的控制,我们采用了如图7的麦克纳姆轮作为我们的移动轮,其多方向自由移动的特点可以使得机器人的效率得到极大的提升。
![](//html.hanspub.org/file/3-2340654x15_hanspub.png)
Figure 6. DC Geared Motor with Hall Encoder
图6. 带霍尔编码器的直流减速电机
2.5. 全场定位系统
对于搬运机器人来讲,定位是其搬运精度的核心,也是其开发应用的重中之重。现在的市面经过发展已经形成了许许多多的定位系统,例如:激光传感器,循迹传感器,陀螺仪等等,笔者所研究的机器人适用于各个工厂,所以对于路径的规划需要避免参照物的干扰,即使用相对定位 [8]。
由于受工厂环境的影响,市面上常见的信号引导定位、磁罗盘的定位可能并不精准,所以笔者采用里程法的定位模块 [9]。
针对以上特点,笔者最终采用了如图8所示OPS-9全方位平面定位系统作为我们的定位模块,该定位模块采用MEMS惯导技术与磁阻位移测量技术,通过扩展卡尔曼滤波算法等进行精准定位,同时由于其模块化的封装,使得更换和改进更为方便。其实时反馈速度可达200 HZ,满足机器人识别时间要求。其坐标误差为30 mm/5 m,可连续工作12 h以上,并且其轮径磨损每百公里仅为0.1%
如图9该定位模块通过正交编码器与陀螺仪的结合可实现对坐标的精准计算 [10],对于智能搬运机器人来说,其移动的自由空间得到放大,从而不用线条或者磁条的引导便可实现自主运动。其闭环系统的设计使得机器人具有较高的容错性,对于搬运以及移动来说,其正确率得到大范围提升。
![](//html.hanspub.org/file/3-2340654x17_hanspub.png)
Figure 8. Whole field positioning module
图8. 全场定位模块
3. 模块的组合设计
模块的组合使用是智能搬运机器人实现最重要的一环,笔者通过将OPENMV机器视觉模块与机械手结合形成识别抓取系统,通过麦克纳姆轮与带霍尔编码器的直流减速电机相结合形成移动系统,以上两个系统与全场定位模块的组合形成了整个机器人的组合系统,其模块化的设计使得各个模块可以根据实际使用场景进行更换或者增添而不影响机器人的整体设计。
![](//html.hanspub.org/file/3-2340654x18_hanspub.png)
Figure 9. Whole field positioning system workflow
图9. 全场定位系统工作流程
3.1. 识别抓取系统
将机械手与OPENMV相组合所形成抓取系统,其总控制为OPENMV内置的STM32F427芯片,将两者结合与一起使用更使得程序的运行更加快捷高效。
根据使用情况将OPENMV初始化:
import sensor, image, time, pyb #调用底层封装库
from pyb import UART
from pyb import LED
BLUE= LED(3) #设置提示灯
RED = LED(1)
GREEN = LED(2)
sensor.reset() #镜头初始化设置
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQVGA)
sensor.skip_frames(time = 2000)
sensor.set_auto_gain(False)
sensor.set_auto_whitebal(False)
clock = time.clock()
threshold_index = 3 #阈值初始化设置
thresholds = [(30, 100, 15, 127, 15, 127),
(30, 100, −64, −8, −32, 32),
(0, 30, 0, 64, −128, 0),
()]
uart = UART(3, 19200) #串口初始化设置
3.2. 移动系统的设计
对于机器人的移动系统,笔者通过麦克纳姆轮与带霍尔编码器的直流减速电机相结合,笔者通过一系列程序控制,从而实现一个渐变速的移动过程,从而保证物料的平稳移动。
if((TIM5CH1_CAPTURE_STA&0X80)==0)//还未成功捕获
{
if(TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET)//溢出
{
if(TIM5CH1_CAPTURE_STA&0X40)//捕获高电平
{
if((TIM5CH1_CAPTURE_STA&0X3F)==0X3F)//高电平溢出 {
TIM5CH1_CAPTURE_STA|=0X80; //成功捕获
TIM5CH1_CAPTURE_VAL=0XFFFFFFFF;
}else TIM5CH1_CAPTURE_STA++;
}
}
if(TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)//捕获1发生捕获
{
if(TIM5CH1_CAPTURE_STA&0X40) //捕获下降沿
{
TIM5CH1_CAPTURE_STA|=0X80; //标记
TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5);//获取捕获值
TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising);
}else
{
TIM5CH1_CAPTURE_STA=0; //清空
TIM5CH1_CAPTURE_VAL=0;
TIM5CH1_CAPTURE_STA|=0X40; //标记
TIM_Cmd(TIM5,DISABLE ); //关闭定时器
TIM_SetCounter(TIM5,0);
TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling);
TIM_Cmd(TIM5,ENABLE);
}
}
}
针对上面的程序,如图10,笔者通过MATLAB对增量式PID曲线进行仿真分析,通过对机器人速度的调节使得机器人的加速过程更加平滑。
如图11其输入e(t)与输出u(t)关系为:
其传递函数为:
其中kp为比例系数;TI为积分时间常数;TD为微分时间常数。
3.3. 总系统的设计
如图12、图13,笔者针对实际所需模块以及驱动板,集成制作了本机器人使用的PCB板,其搭配了L6470等驱动板以及STM32F407芯片,使得机器人的接线以及整理变得更加简单。同时笔者将通信功能集成于主芯片的使用,使得程序的编写周期缩短。
u8 len;
u16 times=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断分组设置
LED_Init(); //初始化设置
delay_init(168);
uart2_init(19200);
TIM1_PWM_Init(10000,0);
Encoder_Init();
A_pwmInit();
B_pwmInit();
AD4988_GPIO_Init();
TIM_SetCompare1(TIM1,0);//定时器设置
close_loop_control1(600);
4. 智能搬运机器人结构组成及有限元分析
4.1. 智能搬运机器人的结构组成
如图14,图15,所示一种智能搬运机器人包括视觉系统(6)、抓取系统(5)、驱动系统(9)和由步进电机(19)、丝杠(20)、滑轨(4)、滑块(3)组成的上升系统。其特征在于:所述视觉系统(6)与抓取系统(5)通过折弯件(13)连接,同时通过法兰联轴器(16),固定于所述上升系统上。所述电池(1)、步进电机(19)、直流电机(9)与全场定位系统(7)共同直接固定于机器人底盘(21)上。所述直流电机(9)外侧连接麦克纳姆轮(10),所述滑轨(4)由滑轨折弯固定件(8)固定于底盘(21)上,所述滑轨(4)上附有滑块(3)。两个所述滑轨(4)与丝杠(20)共同作为上升系统的支撑。所述步进电机(15)、PCB板(2)与副摄像头(18)共同固定于上升系统的承载平台(17)上。同时所述滑块(3)通过折弯件(14)固定于承载平台(17)上。
如图16所示所述两个滑轨(4)以及一个丝杠(20),通过折弯件(8)、法兰联轴器(16)等等共同支撑上升系统的承载平台。所述抓取系统(5)与视觉系统(6)由折弯件(13)通过直径为4的螺丝分别连接至两者预先设置好的螺纹孔中。所述带有霍尔传感器的直流减速电机(9)与麦克纳姆轮(10)和全场定位系统(7)搭配使用,其具体使用方式为:由直流减速电机(9)驱动麦克纳姆轮实现全方向移动,通过PID算法实现控制直流减速电机(9)的加速度以及速度,通过全场定位系统(7)提供的坐标搭配PID算法的直流减速电机(9)从而实现精准停放。所述主摄像头(6)配合机械手实现机器人前方的物料、二维码、路线的检测与纠正,其副摄像头(16)可在机器人前进时防止后半范围的碰撞,同时,在机器人夹取物料后,该摄像头和识别路径和目标靶纸,同时配合权利要求4中的直流减速电机(9)与麦克纳姆轮(10)和全场定位系统(7)共同实现精准停车、堆放物料。
![](//html.hanspub.org/file/3-2340654x25_hanspub.png)
Figure 14. Front view of the intelligent handling robot
图14. 智能搬运机器人正视图
![](//html.hanspub.org/file/3-2340654x26_hanspub.png)
Figure 15. Intelligent handling robot side view
图15. 智能搬运机器人侧视图
![](//html.hanspub.org/file/3-2340654x27_hanspub.png)
Figure 16. Intelligent handling robot upward system
图16. 智能搬运机器人上升系统
4.2. 智能搬运机器人有限元分析
机器人的受力零件有很多,对主要起承受作用的折弯件和滑轨进行静态载荷分析,折弯件和滑轨为机器人的主要支撑零部件,关系到机器人的精准度与使用寿命,笔者对其应力以及位移通过Solidworks Simulation进行了分析,定义了滑轨和折弯件的材料属性(见表1)。
在Solidworks Simulation中,软件本身进行了网格划分,并进行算例分析,得出算例结果,如图8、图9。与结果我们可知,滑轨分析结果为(见表2):最大应变0.00162173 mm,最大应力546760 pa,满足实际应用许用强度;折弯件分析结果为(见表3):最大应变0.0152395 mm,最大应力17672 pa,满足实际应用许用强度。如图17~20,因此,在实际生产环境中,折弯件及滑轨的可靠性得到保证。
![](Images/Table_Tmp.jpg)
Table 1. Material properties of slide and bending parts
表1. 滑轨和折弯件材料属性
![](Images/Table_Tmp.jpg)
Table 2. Static load analysis of slide track
表2. 滑轨静态载荷分析结果
![](Images/Table_Tmp.jpg)
Table 3. Static load analysis of bending parts
表3. 折弯件静态载荷分析结果
5. 应用场景假设
5.1. 模拟测试样例
在具体使用时,机器人的工作步骤分为以下几个步骤(见图21):
第一步:智能搬运机器人执行复位命令,机械手呈关闭状态,同时记录即时位置坐标为(0, 0)。
第二步:智能搬运机器人收到出发命令,经过中央处理器规划后获得前进轨迹 [8],机器人通过全场定位系统前往目标区域1,同时正副OPENMV开启避障功能。
第三步:智能搬运机器人进行姿态矫正,移动至二维码信息前方,调整上升系统并且旋转折弯件使得机械手上端的OPENMV读取信息。
第四步:智能搬运机器人中央处理器根据所得信息进行规划路径 [9],机器人前往目标区域2。
第五步:智能搬运机器人矫正姿态对目标区域2的物料进行巡视,通过主OPENMV所得图像与目标物料进行匹配,识别成功后移动至物料前方,调整上升系统并旋转机械手,通过主OPENMV进行矫正方向,并进行夹取。
第六步:智能搬运机器人成功夹取后,前往目标区域3进行物料堆放,此时坐标位置由中央处理器结合全场定位系统进行调整,精确堆放由副OPENMV对靶纸进行颜色识别,机器人结合上升系统,旋转机械手进行三维空间物料位置调整,达到目标位置后机械手松开。
第七步:智能搬运机器人返回初始坐标,执行复位命令直至接收到下一出发命令。
5.2. 机器人实物图
如图22、图23,笔者根据如上设计完成了物料搬运机器人,经反复实验,并整理计算可得,实际机器人运行误差为0~18 mm,满足市面上常见的机器人精度要求,同时,机器人的以上流程平均完成时间为4分32秒,亦满足机器人工作速度。同时机器人空间体积小于210 mm × 297 mm × 297 mm,满足工厂的要求。
6. 总结
伴随着工业4.0的临近,作为其基础的智能机器人得到了大力发展,这也使得中国在从制造业大国想着制造业强国转变。本分研究了一种智能搬运机器人的设计与实现,通过各个模块的结合,实现了高效、快捷、智能的机器人运行。
本文通过对各个模块的对比选取,分析系统需求,对机器人整体结构,有限元分析等完成了对机器人的设计,同时进行实物的制作与大量实验,试验结果表明,智能搬运机器人的运行速度、负载强度均达到预期要求,结构简单可靠,性价比高,适合推广使用。
基金资助项目
2018年大连工业大学教育教学改革研究项目(教发[2019]23号),资助编号:JGLX201804;大连市青年科技之星项目(2017RQ128)。
NOTES
*通讯作者。