1. 引言
随着智能工厂和智能物流的普及,工厂和物流仓库对货物搬运提出了更高的要求,智能搬运机器人的出现极大提高了搬运工作效率,降低了人力成本。本文设计了一台智能搬运机器人。该机器人能够自动对运动路径进行实时规划,自主避开路上固定以及随机障碍。通过单目相机能自动识别抓取的物体信息,实现智能分拣和搬运。
2. 系统整体方案设计
根据搬运任务需求,机器人需要实现自主避障、定位、路径规划、视觉识别、抓取等功能。根据上述功能,设计出机器人系统的整体方案(图1),方案中将机器人单元化,包括避障定位单元、运动单元、控制单元、视觉单元、抓取单元以及供电单元。避障定位单元由激光定位模块和电子罗盘块组成,运动单元由四个麦克纳姆轮和直流减速电机组成,控制单元包括树莓派主控、拓展板和电机器控制板,拓展板用于电源稳压以及串口通讯转接,树莓派与电机控制板通过总线通讯,视觉单元由单目相机和激光测距模块组成,抓取单元为五轴机械臂。
3. 机器人机械结构设计
3.1. 机械结构示意
由钣金件组成机器人的主体,即车身,机械臂放置在机器人的前方,实现更大范围的抓取。四组电机麦轮驱动机器人全向移动,机器人主体四周分别放置激光测距模块,用来实现全场定位和避障,机器人车身内部的电子罗盘能够实时监测车身的偏航角,主控板放置在车身上方并加盖保护。其中视觉单元(单目相机和激光测距模块)位于机械臂末端,手眼协同能提高抓取灵活性。结构示意图如图2所示。
3.2. 机器人底盘设计
机器人在运动过程中,需要直线移动和转向两种运动方式,普通转向机构需要较大的工作空间,而采用麦克纳姆轮就使得机器人更加灵活,能在工作平面上实现全向移动。由于其结构的特殊性,不同的组合会有不同的运动效果。最常使用的安装方式如图3所示,轮子转动可以产生转动力矩,而且转动力矩的力臂也比较长。

Figure 1. Overall scheme of robot system
图1. 机器人系统整体方案

Figure 2. Schematic diagram of robot structure
图2. 机器人结构示意图

Figure 3. Mecanum wheel installation method
图3. 麦克纳姆轮安装方式
3.3. 机械臂设计
为了适应多种抓取方式,设计的机械臂采用舵机驱动,能够实现五自由度运动,该结构有相对大的工作空间,能满足多种不同任务要求。舵机采用总线舵机,总线舵机可以减少占用控制板接口数目,并且能实现角度回读,可以根据回读的角度来实现闭环控制。机械臂结构图如图2所示。
4. 系统硬件组成
4.1. 主控板
主控板选用树莓派4B。树莓派(英文名为“Raspberry Pi”,简写为RPi)的系统基于Linux。它是一款基于ARM的微型电脑主板,以MicroSD卡为内存硬盘,卡片主板周围有4个USB接口和一个以太网接口,并且具备1.5 Ghz运行的64位四核处理器。借助树莓派强大的运算能力,可以容易的实现对图像数据的处理和展示,且板身自带WIFI、蓝牙,方便进行无线通讯。除树莓派自身外设丰富外,还可以在树莓派上运行ROS (Robot Operating System)来高效地进行机器人控制系统的开发工作。树莓派采用总线的方式控制驱动电机和机械臂舵机,通过USB接收单目相机画面数据等。
4.2. 单目相机
单目相机以一定速率拍摄周围环境,形成一个连续的视频流,即视频由连续照片组成,每一个照片即为一帧。其结构简单,成本低。
单目相机的画面原理是利用拍照时的场景在相机的成像平面上留下一个投影,以二维的形式反映三维的世界,对获得的照片进行处理,就能获得物体的信息。增加激光模块后,可以达到深度相机的效果,能够比较准确的确定物体的三维空间坐标。机器人上安装的单目相机分辨率为480P,30万像素,120˚广角。
4.3. 驱动单元
驱动模块由麦克纳姆轮和直流减速电机组成,麦克纳姆轮可以实现全向移动。实际运动中,直流减速电机需要闭环控制,因此需要具有H桥电路的电机驱动板以及可以测速的霍尔编码器来辅助。主控板可以根据编码器获取的转速信息,通过PID处理,就可以准确控制电机的转速。
5. 软件算法设计
5.1. 软件控制流程图
根据场地及搬运任务,制定了机器人的软件控制逻辑,其程序流程如图4所示。
5.2. 电机PID控制
直流减速电机在工作时,其转速会受到电源电压、摩擦以及惯性的影响,导致转速不可控。所以需要引入闭环控制,保证实际转速与设定转速相同。电机闭环控制策略中最常用的就是PID控制。
PID即:Proportional (比例)、Integral (积分)、Differential (微分)的缩写。顾名思义,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,PID控制的实质就是根据输入的偏差值,按照比例、积分、微分的函数关系进行运算,运算结果用以控制输出。
位置式PID的数学公式:
(1)
公式(1)中,
——比例增益,
与比例度成倒数关系;
——积分时间常数;
——微分时间常数;
——PID控制器的输出信号;
——给定值
与测量值之差。
在电机转速控制中,更常使用的为增量式PID控制。
增量式PID数学公式:
(2)
在实际控制中,由编码器获取电机实际转速,与设定速度作差后进入PID控制器,即利用公式(2),运算后,主控根据PID计算结果控制电机驱动板来驱动电机转动。PID控制原理见图5所示。

Figure 5. PID control schematic diagram of DC geared motor
图5. 直流减速电机PID控制原理图
5.3. 路径规划
机器人在场地中需要根据起点和目标点自主规划出一条最合理的移动路径,该路径应该能够避开场地中的固定和随机的障碍物,且用时最短。常用的路径规划算法有人工势场法和A*法等。我们基于上述的两种方法,提出了一种新的规划算法,能够结合两种方法的优点,又能别开两者各自的缺点。
5.3.1. 人工势场法
人工势场法作为一种经典的机器人等二维局部路径规划的方法,被广泛的使用。其原理为模拟引力(目标点)与斥力(障碍物),建立“力学模型”,通过此模型规划出机器人等的一个从起始点到终点的最短路径。如图6所示。
通过调节障碍物斥力大小,来确定障碍物的影响范围。但其方法有相关缺陷,在面对“最小值陷阱” [1] 和障碍物在目标点附近时,会出现“合力”为0,以及与目标点偏差等问题,导致机器人无法移动到目标点。如图7所示。

Figure 6. Force analysis of artificial potential field method
图6. 人工势场法受力分析

Figure 7. The deviation simulated by the artificial potential field method in MATLAB
图7. 人工势场法在MATLAB中模拟的偏差
5.3.2. A*法
A*法是将所有可能的路径都遍历一遍,再计算哪条路径是起始到终点的最短路径,最终确定机器人的路径。
A*算法的代价函数 [2] [3] 为:
(3)
其中:n表示栅格地图中当前节点周围任意方向的拓展节点;
表示当前节点到n节点所需要的实际代价;
为启发函数,表示节点n到目标点所需要的实际代价.如图8所示:

Figure 8. A* method simulated in MATLAB
图8. A*法在MATLAB中仿真
但该方法需要完整遍历整个地图,如图9所示:

Figure 9. A* image simulation in MATLAB
图9. A*在MATLAB形象仿真
从绿点出发到黄点,黑线为路径,黑色方块为障碍物,颜色由蓝到红表示不同步数(步数增加);由此可以看出,通过A*法虽然能精确找到最短路径,但需要遍历整个地图,若对于复杂地图和多种障碍物,运行时间会大幅度上升。
5.3.3. 基于人工势场与A相结合法
为了解决人工势场法中的“最小值陷阱”,目标点误差以及A*法中过多运算。且保证运行时效和运算精确性。在此改进两者算法,将其相结合。
以人工势场法为整体框架,确定目标点对机器人的引力,使其不偏于特定方向;当遇到障碍物时,利用A*算法在障碍物周边寻找跨过障碍物的最短距离。使得,A*遍历的区域大幅缩减,也能弥补了由人工势场法产生的“最小值陷阱”和目标点误差的问题。具体流程,如图10所示:
改良后的路径规划算法在MATLAB中仿真结果,如图11所示。
以8 × 8的地图为例,红圈为障碍物和边界,坐标(0, 0)为起点,(8, 8)为终点,黑色×为机器人运动轨迹,红色×为寻迹过程。图11(a)中,机器人在没有遇见障碍物(或不在障碍物影响范围内)时,没有寻迹;图11(b)中,机器人在经过障碍物影响引力范围时,出现寻迹,但因前进方向没有障碍物,仍保持原方向前进;图11(c)中,机器人在前进方向上遇见障碍物时,开始寻迹,此时在两个方向上出现黑色×,表示开始遍历此障碍物附近到目标点的最短距离,最终找到绕过此障碍物的路径;图11(d)中,表明在多障碍物且在目标点附近时,能够实现精准达到目标点且能够经得住多障碍物的影响。
仿真结果表明,将人工势场与A*法相结合后,能够快速,准确,消耗短地到达目标点。

Figure 11. Simulation process of the improved path planning algorithm
图11. 改良后路径规划算法模拟仿真过程
5.4. 视觉识别
机器人抓取目标物体前需要知道其颜色与位置,即颜色识别与定位。要实现颜色识别与定位,其常用方案是采用单目相机和OpenCV视觉库。OpenCV是一套开源的计算机视觉和机器学习软件库,提供了丰富且功能稳定的图像处理API,借助OpenCV能方便快速的捕获并提取单目相机所拍摄的画面数据。
在定位目标物体时,单目相机的画面会丢失深度信息,所以在定位上会有难度。所以引入了激光模块辅助定位,激光模块用来测量物体与相机的距离,结合图像信息以及距离信息,就可以准确确定物体的三维空间坐标。
5.4.1. 物料颜色识别
单目相机只能获得前方画面,后续处理需要借助OpenCV来提取画面的各种信息。为了能够识别出目标物体的颜色信息,需要对捕获的图像进行颜色空间变换,降噪处理,以及颜色滤波等操作 [4] 。
颜色识别过程中使用较多的是HSV颜色空间,它比RGB更接近人们对彩色的感知经验,能非常直观地表达颜色的色调、鲜艳程度和明暗程度,方便进行颜色的对比。HSV中H表示色调,S表示饱和度,V表示明度,HSV颜色空间模型如图12所示。
颜色识别的程序由python实现。Python调用openCV视觉库对图像经过一系列处理步骤,最后获得相机画面内物体的自身颜色。利用单目相机颜色识别流程如图13所示。
颜色识别前需要提前设置待识别的颜色阈值,即HSV三个参数的各自的取值范围,程序将根据颜色阈值,过滤出对应的颜色。但在实际识别中,由于环境的光线原因,各颜色都会不同程度的出现失真现象,导致算法无法准确的识别颜色。为了解决这种问题,通常是采用白平衡处理,经过处理后的图像可以一定程度还原原始颜色,但白平衡算法在处理单一颜色时的效果并不理想。因此,在这里选择采用了手动调节阈值的方法,具体方式设置阈值滑动条,如图14所示。将不同颜色的物体分别放在相机画面内,滑动调节器内不同滑动条,直至找到能符合该环境下颜色的HSV阈值范围,对应图13里的第2~3步。
5.4.2. 物料视觉定位
在识别出目标物体的颜色后,还需要确定物体的相对于机器人坐标系的三维坐标 [5] 。
单目相机实现定位的方法有PnP方法,主要原理与相机的标定过程相似,最后能够获得相机相对于世界坐标系的位姿矩阵,通过坐标变换就可以得到目标物体在机器人坐标系下的坐标。但该方法实现起来比较复杂,运算量比较大,也比较费时。此外,还可以通过相似三角形的原理来计算目标物体的深度信息(摄像头与物体的距离),经过坐标变换也可以得到物体坐标。但相似三角形法需要提前知道物体的外形尺寸,而且误差比较大。相似三角形原理如图15所示。
为了能够快速准确的确定物体的空间位置,所以引入激光测距模块,激光测距模块与摄像头模块相叠放置在机械臂末端,如图16所示。

Figure 16. Installation method of vision positioning module
图16. 视觉定位模块安装方式
激光测距采用TOF法:TOF (Time of flight)直译为“飞行时间”。其测距原理是通过给目标连续发送光脉冲,再利用传感器接收从物体返回的光,通过感知光脉冲的飞行(往返)时间来得到目标物距离。
定位过程中首先对单目相机进行标定 [6] ,标定后可以获得相机的焦距f等内参信息,标定后对画面进行畸变校正,校正后将获得更准确的坐标。画面中物体图像中心的二维坐标(x, y)在颜色识别过程中即可获得,参考图13。获取中心点的平面坐标后,控制机械臂移动视觉单元,将激光点打到物体中心位置,获得物体与相机坐标系的距离,即
的值,利用公式(4):
(4)
就可以得到相机坐标系下物体中心的坐标,经过机械臂的齐次坐标变换得到机器人坐标系下的三维坐标。图17为公式(4)的几何原理。

Figure 17. Mapping relationship between 3D points and 2D images
图17. 三维点与二维图像映射关系
5.5. 机械臂运动学抓取
在获得物体在机器人坐标系下的三维坐标后,需要控制机械臂的各个舵机的角度,让机械臂夹爪到达目标位置。机械臂各舵机的转角需要通过你运动学公式来进行计算。由于该机械臂结构的特殊性,故采用几何法来推导机械臂的逆运动学模型。已知条件包括末端三维空间坐标(x, y, z)以及三级机械臂与xy平面的夹角(180˚),即抓取过程中三级机械臂始终保持水平。逆运动学公式推导过程如下 [7] :
根据简化模型(图18)得:
根据余弦定理得:
(5)
同理得:
(6)
(7)
根据俯视图(图19)可得:
(8)
推导出逆运动模型后,就可以根据物体空间坐标来计算获得各个舵机的角度,进而通过树莓派控制舵机进行转动,实现机械臂抓取动作。
6. 结论
针对智能物流场景,设计了一台以树莓派为控制器,能自动进行路径规划和视觉识别的智能搬运机器人。并针对路径规划和视觉识别分别提出了一种新的算法和方案,新的算法与方案能够弥补原有算法和方案的不足,并且经过仿真和测试,机器人能在陌生场景下自动规划一条时间最短的路线,可以准确识别物体颜色和坐标信息并进行抓取。