1. 智能物料搬运机器人命题的意义及任务
1.1. 智能搬运机器人设计制作命题的意义
开展“智能物料搬运机器人”为主题的科技活动,题目来源于北京市大学生基础工程训练大赛,该赛事的目的为面向全球可持续发展人才培养的需求,围绕国家制造强国战略,坚持基础创新并举、理论实践融通、学科专业交叉、校企协同创新,构建面向工程实际、服务社会需求、校企协同创新的实践育人平台,培养服务制造强国的卓越工程技术后备人才。同时也是展示北京市高校工程训练中心的科技创新实践成果,推动高校人才培养模式改革。
1.2. 智能物料搬运机器人命题的设计制作任务
智能物料搬运机器人创新思维活动任务,以智能制造的现实和未来发展为主题,自主设计并制作一台按照给定任务完成物料搬运的智能机器人。该机器人能够通过扫描二维码或Wi-Fi网络通信等方式领取搬运任务,在指定的工业场景内行走与避障,并按任务要求将物料搬运至指定地点并精准摆放(色环或条形码)。功能上机器人应具有定位、移动、避障、读取条形码及二维码、Wi-Fi网络通信、物料位置和颜色识别、物料抓取与载运、上坡和下坡、路径规划等功能。图1为智能物料搬运机器人搬运轨迹示意图。

Figure 1. Handling track sketch map of material handling robot
图1. 智能物料搬运机器人搬运轨迹示意图
2. 智能物料搬运机器人的方案设计
2.1. 设计思路
驱动及控制:机器人各机构只能使用电驱动,采用电池(蓄电池除外)供电,供电电压限制在2 V以下(含12 V)。控制方面,通过Wi-Fi通讯采用Android系统与汇成HC-25WiFi模块搭配stm32的方式进行控制 [1] [2]。
1) Android系统手机在国内智能手机市场占有最大的市场份额,Android应用开发较其他系统方便,并且控制软件容易被客户接受。
2) 采用stm32芯片 [3] [4]:I/O口功能强大,资源丰富,且算力强于Arduion。
机械方面:将机器人定位为一辆具有较小体积、结构简单、高可靠性、高机动性、较好的操控性的搬运车辆,其机械部分主要可以分为五大结构:全向底盘,三轴移动平台,机械手爪,物料运送装置和货舱。
1) 底盘采用麦克纳姆轮驱动。相较于胶轮底盘,它具有结构紧凑,移动灵活,易于控制的特点。相较于斜45度安装的四轮全向轮底盘,在轮子半径和驱动电机输出转矩相同的情况下,麦克纳姆轮底盘可输出更高的牵引力,约为全向轮底盘的1.4倍。
2) 三轴移动平台采用三个大转矩电机带动丝杠驱动,配合顶部竖直向下的摄像头,可以实现物料的准确摆放与码垛。由于丝杠具有较好的传动精度并且可以产生很大的轴向力,故选择丝杠驱动平台运动。
3) 机械手爪的开合是通过一舵机驱动的曲柄滑块机构实现的。物料运送装置亦由舵机驱动,当手爪抓取完成后,运送装置翻转180度将物料运送至货舱。
4) 货舱主体为一类似托盘状结构,由舵机驱动,三个圆形置物空间均布在圆周上,每个置物空间对应特定颜色的物料。
2.1.1. 作品创意
软件及电路控制:
1) 采用stm32单片机:I/O口功能强大,资源丰富,且算力强于Arduino。
2) 自主设计的电路:电机由驱动板控制,机械手的运动由舵机控制,统一供电,简化电路。
机械结构:
1) 三轴移动平台:采用丝杠传动,其优秀的传动精度可保证物料准确地放置,Z轴采用同步带并联双丝杠结构,可保证平台拥有足够地运动空间并且垂直移动时运动平稳。
2) 机械手爪:主体为一舵机驱动的曲柄滑块机构,舵机带动曲柄旋转,使得滑块做直线运动,从而机械手张开或闭合。曲柄滑块机械手结构简单,易于维护与修改,抓取物料稳定,能够有效地完成任务。
3) 物料运输装置的设计利用了市赛物料为一对称形状且上下表面为平面的特点。机构在翻转180度后可以将物料平稳放置于货舱中。
4) 货舱由一舵机驱动,放置时只需要将对应的物料旋转至待抓取位置即可。
2.1.2. 基本机械结构及电路
电路部分:
为方便布线,避免杜邦线飞线,我们采用自制PCB的方式,控制模块和驱动模块设计在一个板子上。
电路结构包括:3个降压模块(12v-7.5v,12v-5v,5v-3.v),为不同驱动提供动力电;4路MOS管,控制4路电机;4路串口通讯接口,分别与OPENMV,遥控器SBUS,WIFI模块,舵机控制通讯;多路灰度传感器接口,USB转TTL等,详细电路图如图2,图3所示。PCB板3D图如图4所示。
机械部分:
由数控机床加工的3240环氧树脂板件组成了小车的主体结构,其具有较高的强度与刚度,而且加工精度高。由光固化加工的零件构成了小车的一些非承重且不宜用板材加工的零件,诸如机械爪的滑块部分、货舱等。相较于3D打印其精度更高,表面质量更好。45钢制成的长圆柱钢棒因其优秀的表面质量和刚度故被用作三轴平台的导轨。其它零件诸如联轴器、胀紧套和同步带则是用于传递动力。
2.1.3. 相关计算
丝杠推力计算(导程P:8 mm;电机输出转矩T:1.67 N·m;传动效率:0.3):
根据公式:
其中:F (N)为丝杠推力;T (N·m)为电机输出转矩;𝜂为传动效率;P (mm)为导程。
计算可得丝杠推力约为393.29 N。
2.2. 智能物料搬运机器人程序设计方案
智能物料搬运机器人采用stm32F405ZGTR芯片作为控制器,在程序中,采用主函数+定时器双线程方法,以任务分配的方式进行运行,这种方式可以保证不仅能循迹又能获取自身位置信息,并根据位置信息判断起停。
通讯代码初始化(部分):
my_uart_init(USART2,GPIOA,GPIO_PinSource3,USART_IT_RXNE,USART2_IRQn,115200);//openmv
my_uart_init(USART3,GPIOB,GPIO_PinSource11,USART_IT_RXNE,USART3_IRQn,115200);//wifi
UART4_Init(UART4,GPIOC,GPIO_PinSource11,USART_IT_IDLE,UART4_IRQn,115200); //SBUS
UART5_Init(115200); //舵机
电机驱动代码(部分) :
//电机初始化
//前左
GPIO_PWM_init(499,167,GPIOA,GPIO_PinSource8,TIM1,1);
GPIO_PWM_init(499,167,GPIOA,GPIO_PinSource9,TIM1,2);
TIM_SetCompare1(TIM1,0);
TIM_SetCompare2(TIM1,speed_start);
//前右
GPIO_PWM_init(499,167,GPIOA,GPIO_PinSource10,TIM1,3); GPIO_PWM_init(499,167,GPIOA,GPIO_PinSource11,TIM1,4);
TIM_SetCompare4(TIM1,0);
TIM_SetCompare3(TIM1,speed_start);
//后左
GPIO_PWM_init(499,167,GPIOC,GPIO_PinSource6,TIM8,1);
GPIO_PWM_init(499,167,GPIOC,GPIO_PinSource7,TIM8,2);
TIM_SetCompare1(TIM8,0);
TIM_SetCompare2(TIM8,speed_start);
//右后
GPIO_PWM_init(499,167,GPIOC,GPIO_PinSource8,TIM8,3);
GPIO_PWM_init(499,167,GPIOC,GPIO_PinSource9,TIM8,4);
TIM_SetCompare4(TIM8,0);
TIM_SetCompare3(TIM8,speed_start);
//编码器初始化
TIMx_COoder_Init(TIM2,GPIOA,GPIO_PinSource5,GPIOB,GPIO_PinSource3);
TIMx_COoder_Init(TIM3,GPIOB,GPIO_PinSource4,GPIOB,GPIO_PinSource5);
TIMx_COoder_Init(TIM4,GPIOB,GPIO_PinSource6,GPIOB,GPIO_PinSource7);
TIMx_COoder_Init(TIM5,GPIOA,GPIO_PinSource0,GPIOA,GPIO_PinSource1);
舵机代码(部分):
//舵机位置初始化
while( (!LIMIT_LOW))
{
LobotSerialServoSetMode(5,1,-400);
}
LobotSerialServoSetMode(5,1,0);
LobotSerialServoMove(DUOJI_ID1, 0, 1000);//舵机1用1000ms转动到0位置
LobotSerialServoMove(DUOJI_ID2, 0, 1000);//舵机2用1000ms转动到0位置
LobotSerialServoMove(DUOJI_ID3, 370, 1000);//舵机1用1000ms转动到370位置
LobotSerialServoMove(DUOJI_ID4, 560, 1000);//舵机1用1000ms转动到560位置
while( (!LIMIT_HIGH))//舵机的电机模式使用运行
{
LobotSerialServoSetMode(5,1,700);
}
LobotSerialServoSetMode(5,1,0);
在实际的设计当中,整车的底盘控制与升降台控制的配合是设计的难点。由于任务中,货架高度未定,搬运物流形状未定,再加上在小车运行过程中,停车前速度的大小和运动的方向不同,会使停车点距离理想位置有微小偏差,为稳定地抓到物块,保证取放物块时码环的准确性,需要升降台模块根据摄像头反馈的位置信息,结合PID控制算法,对升降台上X,Y轴的控制舵机进行校准。
3. 重要零件的加工
3240环氧树脂板件是构成车辆的主要组成部分,是重要的承受载荷的零件,其中有些零件需要和轴承配合,故对其加工精度有较高的要求,其加工方式选择CNC雕刻机进行加工。
首先使用试切法加工,直到得到符合要求的编程数据,将此数据导入SolidCAM编写刀路。选取合适厚度的板材毛坯(一般不超过4 mm),使用通用夹具装夹。
用游标卡尺检验零件是否符合设计要求。
程序示例:
%
O1000 (ASDASDASDASDASDAD_ MILLING)
N100 (COMPENSATION-WEAR)
N102 (REV-0.70)
N104 (MAR-26-2021-11:09:57AM)
N106 (TOOL 1 - DIA 2.38)
N1 G90 G17 G40 G80 G00
N108 M06 T1()
N110 (F-轮廓1)
N112 G00 G54 G90 X4.Y5.31 S10000 M03
N114 G43 H1 Z15.
4. 智能搬运机器人的装配与调试
智能物料搬运机器人完成从方案设计及优化、元器件优选后、机械手制作等任务后,进行了机器人的组装及调试。由于小车的传动部分采用丝杠结构,丝杠的线数决定传动的速度,采用单线螺杆影响了传动速度,在限制时间能,很难保证物料的运输并走完场地;丝杠和4个支持杆组成了多杆件结构,平行度对丝杠的传动精度影响较大;小车实际运行过程中,停车前速度的大小和运动的方向不同,会使停车点距离理想位置有微小偏差。
主要解决方案有:通过更换丝杠,增加线数提高传动速度;平行度问题的调试采用每个支撑板和支撑杆接触处增加调整结构,通过材料和整体的装配保证装配的刚度,保证多杆件的平行度问题;升降台模块根据摄像头反馈的位置信息,结合PID控制算法,对升降台上X,Y轴的控制舵机进行校准,保证停车和反馈位置的精准性。智能物料搬运机器人的总装图如图5和图6所示。

Figure 5. Final assembly rendering of material handling robot
图5. 智能搬运物料机器人总装渲染

Figure 6. Assembled object of material handling robot
图6. 智能搬运物料机器人装配实物
5. 设计总结和体会
智能物料搬运机器人的设计、制作和调试,在设计中必须要进行方案的总体规划、方案优选,方案对后期元器件的选择,功能的实现起着决定作用,通过不断的修改和实践获得理想的方案,元器件的选择也非常关键,对功能实践的速度、稳定性等都有较大影响;机械抓手设计与制作,绘图能力、加工技能等,其中尺寸精度对于装配和运动准确性的影响,尤为关键,进行严格的尺寸精度控制,会对作品的速度和稳定性等性能有很大改善。