1. 引言
随着社会的发展和时代的需求,智能物流机器人形成了以人为本、自动化运转的模式,在一定程度上可以代替人体劳动,节约人力、物力,提高工作效率,可以说是市场前景一片光明。回顾历史,我国对智能物流机器人的研究持续不断,2005年北京理工大学的付梦印将GPS与数字地图结合制作出了第一个智能小车,并实现了自动导航 [1];2007年哈尔滨工业大学与香港工业大学两单位合作共同设计出了一种红外避障小车,可以利用红外技术实现自主对障碍物的躲避与无线控制 [1];2014年中南大学郑海华研究出了一种借助CCD探测器采集图像数据进行避障的智能小车,通过CCD图像中的激光点进行障碍物的确认并躲避 [1];直到2017年时我国的极客嘉与快仓智能研发出商用的小型搬运机器人,标志着我国的智能物流机器人又上了一个台阶 [2],各种形式的机器人应运而生 [3] [4]。
本文的智能物流搬运机器人采用四轮小车底盘作为基本框架,如图1所示,微处理器采用基于ARM框架拥有丰富的外部处理设备接口和极高的数据运算能力的STM32F103ZET6芯片作为系统主控。在进行工作时,移动路径的规划与姿态维持使用三轴加速度传感器与带有光电编码的四驱麦克纳姆轮底盘进行相互配合,通过设立站点实现对二维地图划分。小车的目标搜寻与特征识别采用STM32H7系列芯片为主控的且具有丰富资源库的openmv摄像模块 [5],同时采用1.8寸的TFTLCD串口屏对获取信息与任务目标进行显示,并采用六轴机械臂实现对任务目标的抓取与放置。整体来说可以分为3个部分,分别是任务读取、路径规划和机械臂设计。下面针对这款智能物流小车进行简单的介绍。
![](//html.hanspub.org/file/3-2610285x7_hanspub.png?20220424092359969)
Figure 1. The overall framework of intelligent logistics handling robot
图1. 智能物流搬运小车的整体框架
任务读取
机器人在执行任务时可能会遇到两种模式,一种是扫描二维码,另外一种是接入网络。不管是哪种模式,机器人都是运用OpenMV模块接收任务信息,在这个过程中,OpenMV模块可以担任一个独立的信息处理MCU,但是需要主控在某时间节点对其进行唤醒操作,整个软件操作流程如图2所示。
针对第一种二维码扫描模式,当机器人到达任务识别站点需要识别二维码领取任务时主控通过串口发送唤醒指令,唤醒OpenMV进行二维码任务读取,读取完成后,OpenMV将会进行信息处理,待完成后通过串口将信息发送至主控MCU并设置标志位,同时OpenMV将信息发送完成之后就会进入休眠状态等待下一次的唤醒。 在第二次唤醒前,OpenMV将会对标志位进行判断,根据标志位是否存在,如果存在,寻找任务目标进行校准位置;如果不存在,进行扫描获取任务信息,然后继续往下进行。
![](//html.hanspub.org/file/3-2610285x8_hanspub.png?20220424092359969)
Figure 2. The process of software design
图2. 软件设计流程
另外一种采用ESP8266模块接入目标信息广播网络,并接收任务信息,将信息通过串口传递主控,当主控接收到任务信息后,首先会唤醒OpenMV设置标志位,直接进入颜色识别与目标追踪状态,机器人就不在任务站点停留,直接控制底盘移动至物料搬运区站点,并通过OpenMV的颜色追踪使整个车体针对目标位置,然后对物料进行抓取与搬运。
2. 姿态解算与路径规划
2.1. 底盘结构的选型与运动原理
在本设计中,将四个带有光电编码的直流减速电机作为驱动源以及四个麦克纳姆轮作为移动转向动力轮,整体可以实现智能物流机器人的任意方向和位置的移动。在实际工作过程中,由于麦克纳姆轮的外观具有两种不同的结构,如图3(a)和图3(b)所示,分别称为A类麦克纳姆轮和B类麦克纳姆轮(简称A类轮子和B类轮子),在外形上A类轮子与B类轮子互为镜像关系 [6]。
![](//html.hanspub.org/file/3-2610285x9_hanspub.png?20220424092359969)
Figure 3. Left: The structure of A class Mecanum; Right: The structure of B class Mecanum
图3. 左图:A类麦克纳姆轮结构;右图:B类麦克纳姆轮结构
不管是A型麦克纳姆轮还是B型麦克纳姆轮,其轮毂在滚动的同时都会传递给行星子动轮一个力使其相对于地面运动,同时由于子动轮轴线与主动轮轴线之间存在夹角,使得轮子整体的运动方向发生偏移,在实际应用中此夹角一般为45˚。如若此时设行星子动轮上一点到轮毂中心的距离为r,轮毂此时的角速度为ω,则行星子动轮上这一点的线速度为V = ωr,方向沿运动轨迹的切线方向,此时对子动轮的
速度进行分解,可以得到平行于中心轮毂轴线速度分量为
,同时垂直于轮毂中心轴线的速度分量为
,如图4和图5所示两种情况。
一般情况下,当A型麦克纳姆轮向前转动时同时具有向前与向左的速度,由矢量法则其合速度斜向左上方,当A型麦克纳姆轮向后转动时,其同时具有水平向左的速度,此时的和速度为斜向左下方;当B型麦克纳姆轮向前运动时B型麦克纳姆轮同时具有向前和向右的速度,其合速度斜向右上方。当B型麦克纳姆轮向后运动时,B型麦克纳姆轮同时具有水平向右的速度,此时B型麦克纳姆轮合速度为斜向右下方。因此,将两种类型的麦克纳姆轮进行组合并对四个轮子的速度进行合理的搭配就可
![](//html.hanspub.org/file/3-2610285x12_hanspub.png?20220424092359969)
Figure 4. Schematic diagram of type A wheel moving counterclockwise and type B wheel moving clockwise
图4. A型轮逆时针运动和B型轮顺时针运动示意图
![](//html.hanspub.org/file/3-2610285x13_hanspub.png?20220424092359969)
Figure 5. Schematic diagram of type A wheel moving clockwise and type B wheel moving counterclockwise
图5. A型轮顺时针运动和B型轮逆时针运动示意图
![](//html.hanspub.org/file/3-2610285x14_hanspub.png?20220424092359969)
Figure 6. Schematic diagram of X-square layout and O-rectangular layout
图6. X-正方形布局和O-长方形布局示意图
以实现不同的移动效果,目前最主要的同时也是最适合全方位运动的布局主要分为:X-正方形布局、X-长方形布局即BAAB型与O-正方形布局、O-长方形布局即ABBA型,如图6所示。
在对这几种组合方式进行运动分析发现,各有特点,X-正方形组合的主动轮产生的力矩经过摩擦力分解后,行星子动轮分解的力一部分沿辊子中心轴线,但是这部分力会导致棍子空转,造成力的浪费,因此只有垂直于辊子的那部分力才对机器人的移动起到驱动作用。但是,这种X-正方形轮子组合,在机器人进行旋转运动时无论怎样改变主动轮的方向,摩擦力始终都会通过同一点,无法控制机器人围绕中心进行一定角度的旋转,这对机器人的定位转向功能就会造成巨大的影响。如果采用X-长方形组合方式的轮子,发现轮子转动虽然可以产生沿航向角(yaw)轴的转动力矩,但此种组合的转动力矩较小;O-正方形组合方式需要将四个轮子安装在正方形的四个顶点,因此对底盘的形状、尺寸与轮子安装的位置要求很高;O-长方形的组合不仅可以产生航向角的轴力矩,而且转动力矩的力臂也会比较长,经过实际测试研究对比发现,这种组合状态的驱动效果最好,此物流机器人采用O-长方形的轮子布局结构。
2.2. 底盘运动状态的组合与分析
此物流机器人的轮子布局采用O-长方形结构,设轮子顺时针旋转为+,逆时针为−,停止为0,则四轮运动状态组合可以描述为以下几种:
由于速度的矢量性,当四个轮子的转速相同时,底盘处于状态A−B+B−A+ (前进)时水平方向和速度为0,底盘合速度方向竖直向前,如图7的左图所示;
当底盘处于状态A−B−B+A+ (右移)时,竖直方向合速度为0,水平方向合速度为水平向右,底盘合速度水平向右,如图7的右图所示;
处于A+B−B+A− (后退)时,底盘竖直方向的合速度竖直向下,水平方向的分速度相互抵消,合速度为0,如图8的左图所示;
处于状态A+B+B−A− (左移)时,底盘竖直方向的速度相互抵消,水平方向的速度为水平向左,合速度为水平向左,如图8的右图所示。
![](//html.hanspub.org/file/3-2610285x15_hanspub.png?20220424092359969)
Figure 7. Schematic diagram of moving forward and moving right
图7. 向前移动和向右移动示意图
![](//html.hanspub.org/file/3-2610285x16_hanspub.png?20220424092359969)
Figure 8. Schematic diagram of moving backward and moving left
图8. 向后移动和向左移动示意图
处于状态A−B0B0A+ (斜向右前方运动)时,前轮与后轮都将提供给底盘一个向上与向右速度,此时底盘合速度方向为斜向右前方,如图9的左图所示;
当底盘处于状态A0B−B+A0 (斜向右后方运动)时,前轮与后轮都将提供给底盘一个向后与向右的速度,此时底盘合速度方向为斜向右后方,如图9的右图所示;
当底盘处于状态A+B0B0A− (斜向左后方运动)时,前轮与后轮都将提供给底盘一个向后与向左的速度,此时底盘合速度方向为斜向左后方,如图10的左图所示;
当底盘处于状态A0B+B−A0 (斜向左前方运动)时,前轮与后轮都将提供给底盘一个向前与向左的速度,此时底盘合速度方向为斜向左前方,如图10的右图所示。
![](//html.hanspub.org/file/3-2610285x17_hanspub.png?20220424092359969)
Figure 9. Schematic diagram of oblique right front motion and oblique right rear motion
图9. 斜向右前方运动和斜向右后方运动示意图
![](//html.hanspub.org/file/3-2610285x18_hanspub.png?20220424092359969)
Figure 10. Schematic diagram of oblique left and rear motion and oblique left and front motion
图10. 斜向左后方运动和斜向左前方运动示意图
当底盘处于状态A−B−B−A− (原地顺时针旋转)时,四个轮子状态相邻的两两不尽相同,但整体构成了一个顺时针速度环,所以底盘会在原地进行顺时针转向,如图11的左图所示;
当底盘处于状态A+B+B+A+ (原地逆时针旋转)时,四个轮子状态相邻的两两不尽相同,但整体构成了一个逆时针速度环,所以底盘会在原地进行逆时针转向运动,如图11的右图所示。
2.3. 移动站点的建立与小车路径规划
由于机器人的工作空间是固定的,所以可以对机器人的工作路线进行人为干预划分,从而提升机器人的工作效率。在本设计中地图划分为出发区、任务区、物料区、加工区、成品放置区以及待命区六部分,并在这几个区的平面内建立二维坐标系,以机器人的出发点为原点,将出发区、任务区、物料区、加工区、成品放置区设为坐标系中的站点,以此为基础建立的路径如图12所示。在下图所示的坐标系中,每一个站点都有一个自己的坐标(x, y),机器人在路径中移动可以分割为在站点与站点之间转移,也即在两个坐标之间的转移。通过对站点实际坐标的测量,并将其输入机器人程序内,机器人按照输入的站点坐标进行移动。
![](//html.hanspub.org/file/3-2610285x19_hanspub.png?20220424092359969)
Figure 11. Schematic diagram of clockwise and counterclockwise turn in place
图11. 顺时针原地转向和逆时针原地转向示意图
![](//html.hanspub.org/file/3-2610285x20_hanspub.png?20220424092359969)
Figure 12. Schematic diagram of trolley route site display
图12. 小车路径站点展示示意图
2.4. 站点间移动的姿态解算与维持
由于底盘整体的结构特点,机器人可以在不转动车体的情况下不再需要机器人在原地转向,直接通过切换前进方向(如向前、向后、向左或者向右)就可以实现前后左右方向切换,极大的简化路径,同时也会将移动运输的时间减少。但这种结构的特点对姿态的解算与维持十分的依赖。此物流机器人通过MPU-6050三轴加速度传感器对机器人的姿态进行采集,利用MPU6050的内部驱动引擎DMP (Digital Motion Processor)直接输出四元数,这样可以减轻外围微处理器的工作负担,同时可以避免繁琐的滤波和数据融合 [5],如图13所示。
![](//html.hanspub.org/file/3-2610285x21_hanspub.png?20220424092359969)
Figure 13. Heading Angle (+Y), Roll Angle (+X), pitch Angle (+Z) in MPU6050
图13. MPU6050航向角(+Y)、横滚角(+X)、俯仰角(+Z)
四元数基本表示形式:
,四元数与航向角(yaw)、横滚角(roll)、俯仰角(pitch)转换关系:
其中,q0、q1、q2、q3可以通过下面关系得到:
由于机器人移动轨迹始终在二维平面内,所以不再考虑车体的俯仰角变化,所以只对物流机器人的横滚角(roll)与航向角(yaw)进行监控,同时为了保证四个轮子的分速度与合速度可以在实际应用时达到要求效果,需要使用光电编码器对电机的转速进行输出。电机的频率测量法速度计算:N = M0/C * T0,其中C为编码器单圈总脉冲数(常数);T0为统计时间(固定值,单位秒);M0为该时间内统计到的编码器脉冲数(测量值)。
为保持机器人整体姿态的稳定需要在建立方向对机器人姿态监控的同时也要建立PID速度环对四个电机的速度进行控制,为实现精准的姿态调节,姿态解算处理过程共设置六个PID数据处理环,如图14所示。电机编码数据信息首先进入一级PID环,由一级PID环对电机编码的数据进行初步的解算(其中PID控制流程图如图15所示),经过处理后的数据进入二级PID环汇集,进行二次PID处理,二级PID对四个PID环的误差结合姿态角信息进行进一步处理后将数据进行反馈给各个一级PID环,由各个一级PID环对其闭环电机的速度进行调节控制。
电机PWM速度调控PID计算公式:
:本次测量值和目标值的偏差;
:上次测量值和目标值的偏差;
:
及之前的所有偏差的累积和,
;
Pwm:输出计算出的PWM控制信号。
3. 机械臂的设计与运动规划
在这款智能物流机器人中,最后物料的夹取和搬运工作都是借助机械臂完成的,可以说机械臂是机器人的重要组成部分,其灵活性和强度两个指标丰富了机器人的功能和形状,决定着机器人与外界交互的能力,趋于机器人的发展方向多元化。在本设计中,机械臂采用六个可旋转180度的舵机作为动力源,不锈钢支架作为框架支撑,末端执行器采用机械爪的结构,共同组成六自由度机械臂如图16所示。通过旋转任意舵机任意角度,就可以实现对机械臂整体运动的规划。但是由于物料仓储的位置是固定的,机器人每次搬运物料时都要移动到物料仓储区,所以,相对于机器人来说,物料的位置并没有发生改变。设六个电机的旋转角度
,坐标系下的目标坐标为(
)机械臂目标姿态为(α,β,γ),对机械臂进行逆运动学分析(i为舵机编号,
为舵机角度偏移量,
为舵机间的距离,
为舵机需要转动的角度)。
![](//html.hanspub.org/file/3-2610285x38_hanspub.png?20220424092359969)
Figure 16. Basic structure of the mechanical arm
图16. 机械臂的基本结构
目标坐标与目标姿态使用变换矩阵表示 [7]:
因此,
又因为
所以
如表1所示,通过机械臂DH表信息可对舵机转动量进行求解,计算出的结果就是各个舵机在初始位置到达目标位置时需要旋转的角度。通过路径规划与姿态的维持可以保证舵机与物料的起始相对位置始终不变且不考虑机械臂与物料之间的障碍物问题。但在选择姿态组合时要在保证能够到达目标状态的前提下尽可能的选择目标姿态与初始状态最接近的变换方式,以节省整体的运动时间及能量损耗。
![](Images/Table_Tmp.jpg)
Table 1. The Denavit-Hartenberg of mechanical arm
表1. 机械臂DH
4. 总结
智能物流搬运机器人的实物图如图17所示,在实际测试中发现,麦克纳姆轮作为驱动轮时虽然通过不同的组合就可以进行方向的变换,但在实际应用过程中,麦克纳姆轮对地面的平整度及光滑度要求较高,在移动过程中很有可能发生打滑,发生丢步现象。而且麦克纳姆轮的组成材质要求也很高,其结构特点在对应用产生便利的同时,在应用过程中对自身会产生一定损伤,所以并不适合在工业中进行大规模推广应用。但其灵活的运动特点可以使其在一些特殊的场景下发挥独特的作用,其发展前景非常的广阔。
![](//html.hanspub.org/file/3-2610285x43_hanspub.png?20220424092359969)
Figure 17. The picture of intelligent logistics handling robot
图17. 智能物流搬运机器人的实物图
基金项目
河南省高等学校重点科研项目(21B140006, 22A510016);河南省科技攻关项目(212102310905, 222102310286);教育部产学合作协同育人项目(202102575010, 202102575030, 202102575044);河南省智慧照明重点实验开放基金项目。