韩 坤,李东琦
(1.商丘职业技术学院,河南 商丘 476000;2.安阳师范学院,河南 安阳 455000)
随着自动化的不断发展,机器人成为了学者的热门研究方向,机器人的智能化程度也越来越高,机器人是否智能主要是看其在作业过程中的运动能力,而路径规划能力又是不可或缺的。机器人运动规划是利用视觉传感器获取障碍物的信息,为机器人独立避开障碍物提供了可能。本文研究的小麦精播机器人路径规划,将计算机OpenCV视觉与嵌入式系统相结合,实现了小麦精播机器人路径规划和避障。
路径规划是机器人研究领域的重要模块,是对机器人自动控制和更深入应用的基础,机器人能够自主避障和进行路径规划是解决其在作业环境中安全行走的核心。小麦播种机器人和人类行走类似,采用传感器充当人类“双眼”,采用嵌入式处理器充当人类“大脑”,根据传感器信息、工作任务及具有优先级的管理策略,驱动机器人进行移动和作业。
本文采用人工势场法研究小麦播种机器人路径规划问题。人工势场法是机器人路径规划常用的一种算法,其将周边环境抽象成一个势场,叠加机器人目标方向引力和周边障碍物的斥力,根据势力函数的下降方向确定机器人最佳的路径移动方向,实现机器人的路径规划。传统人工势场法势力函数为
(1)
(2)
从式(2)可以看出:在小麦精播机器人作业中,负梯度会随着其与目标点的距离减小而减小至0。
本文研究的小麦精播机器人路径规划问题,是一种动态变化的场景,目标是非静止的。传统人工势场引力简单示意如图1所示。
图1 传统人工势场引力简单示意图Fig.1 The simple gravitational diagram of traditional artificial potential field
由于传统人工势场存在局部最小值分析,使得小麦精播机器人在离目标较近的时候,收到目标引力和障碍物斥力的双重势场力,反复形成局部最小值。因此,需要对其进行改进,改进人工势场定义为
(3)
其中,Uat(P,V)为改进人工势场;μ为势场系数;ρ为小麦精播机器人和障碍物之间的距离;ρ0为障碍物的影响半径;X和Xg分别为小麦精种机器人和目标地的坐标;n为常系数。此时改进的斥力为
(4)
其中
(5)
(6)
其中,Fat1和Fat2分别为障碍物指向机器人和机器人指向目标点的方向。改进人工势场小麦精播机器人收到的斥力示意如图2所示。
图2 改进人工势场小麦精播机器人收到的斥力示意Fig.2 The improving repulsion signal received by wheat sperm robot in artificial potential field
根据n值不同,改进人工势场力也不同,可以把目标和障碍物的坐标,确定为全局最小值的问题,有效解决局部最小值问题,为小麦精播机器人路径规划提供准确的坐标。
OpenCV作为一款强大的开源计算机视觉库,能够提供丰富的视觉处理算法,已被广泛应用于物体识别、人脸识别、运动跟踪机器人等多个领域。OpenCV具有标准的API接口,可以大大简化程序开发和方案设计,可在Linux、Windows等系统上运行,其内部核心采用C和C++开发,向外部提供C、C++、Python和MATLAB等接口。OpenCV结构由CXCORE、MHL、HighGUI和CV等组成,其整体构成框架图3所示。
图3 OpenCV整体构成框架图Fig.3 OpenCV overall composition framework
CXCORE是整个OpenCV计算机视觉的核心,包括重要的结构和算法,如矩阵转换、数据变换、程序运行内存管理、插件动态加载及绘图等。
CV是OpenCV视觉算法的高级算法,主要包括图像预处理和视觉处理算法。HighGUI是人机交互、图像和视频输入输出的接口。MHL是机器学习(Machine Learning)的简写,包括Bayes分类器、向量机、神经网络等分类、聚类和数据分析算法。
本文采用OpenCV计算机视觉算法,主要是利用其开源和移植性强的特点。一般情况下,为降低图像处理难度及轮廓提取的干扰,在对目标样本进行实物拍摄时需尽量降低周边环境影响,背景选择应与目标图像对比度较大,如纯色背景等。本文中,考虑到实际检测过程中各种复杂环境条件,增加算法适用性,对样本的采集采用外界实际环境,增加了如阴影、反光、色彩对比度不强等干扰。采集到图片后,对图片进行处理的流程如图4所示。
图4 OpenCV图像处理流程Fig.4 The OpenCV image processing flow
嵌入式系统是一种以应用为中心,软硬件可根据开发需求裁剪、移植,对功能、体积、成本及耗电量有着严格要求的系统。嵌入式系统常用于各种客制化场合,与Windows平台相比,其有如下特点:①当不需要某一功能模块时,可以除去该模块的软硬件;②对功能、体积、生产加工、成本、开发周期要求较高。嵌入式控制系统包括User space(用户空间)和Kernel space(内核空间),如图5所示。
图5 嵌入式控制系统架构Fig.5 The embedded control system architecture
Linux系统用户空间主要包括应用程序和使用java和C++调用的C语言程序库,内核空间则包括系统调用接口、Kernel及平台设备和驱动程序。其中,Kernel又可独立成一个系统,其主要由程序管理、内存管理、虚拟文件系统、ARCH、网络协议栈和设备驱动等组成。Linux Kernel体系结构如图6所示。
图6 Linux Kernel体系结构Fig.6 Linux hernel architecture
本文系统在两个不同机器上运行,OpenCV和嵌入式软件编写在PC机上完成,选用I5-8250处理器、8G内存、1T硬盘的Ubuntu系统PC机,可以非常流畅的执行OpenCV和快速编译嵌入式程序;另外一个机器是搭载嵌入式系统的ARM板,使用的ARM板搭载4颗SAMSUNG的Exynos4412处理器,每个核心的运行频率都有1.4GHz,运算能力可以达到2000DMIPS,同时带有1G RAM和4G ROM;平台还有1个DB9式RS232串口,可用于和计算机PC端之间的通讯。ARM开发板架构如图7所示。
图7 ARM开发板架构图Fig.7 Architecture of ARM Development Board
小麦精播机器人主要控制软件在Exynos4412上运行,主要的操作系统为嵌入式Linux,版本为kernel-3.14。软件搭建主要介绍ARM交叉工具链和嵌入式Linux移植等。
1)ARM交叉工具链安装。虽然采用Ubuntu的Linux计算机系统,但其实是X86架构,无法直接编译出在Exynos4412运行的软件,需要采用交叉编译。
交叉工具链一般需要根据嵌入式Linux源码进行安装,安装过程如下:
①解压gcc-4.6.4.tar.xz到/usr/local/toolchain
②添加环境变量,修改文件/etc/bash.bashrc添加如下内容,即
$ export PATH=$PATH:/home/linux/toolchain/gcc-4.6.4/bin;
③测试交叉工具链是否安装成功,即
$ arm-none-linux-gnueabi-gcc -v
若出现以下信息(见图8),则表示安装正确。
图8 交叉工具链版本信息Fig.8 The cross tool chain version information
2)嵌入式Linux移植。Linux是ARM开发板运行的基础,为了让系统在小麦精播机器人控制器中运行流程,需要对系统软件进行一定的裁剪和移植。将linux-3.14.tar.xz 拷贝到/home/linux 下并解压,然后运行make menuconfig,进入如图9所示的内核配置菜单。
图9 Linux内核配置Fig.9 Linux kernel configuration
依次对CPU、NANDFlash、Netwoking、USB及ramdisk 文件系统等进行配置与裁剪,最后将build出来的load烧录到控制板,既可正常工作。
以小麦精种播器人为实验平台,搭载两个USB摄像机,拍摄的视频由ARM板采用通过wifi发送给PC端;PC端利用OpenCV软件进行图像处理和障碍物识别,制定避障路径后,发送指令给小麦精种机器人进行转向作业。实验仿真结果如图10所示。
图10 试验仿真结果图Fig.10 The simulation results of the experiment
实验中,左边为机器人作业起点,右边为终点;中间阴影圆形为障碍物。实验结果表明:在两种布局中,小麦精播机器人都可以成功避开障碍物达到目标地点,没有出现局部极小区域震荡的情况,证明了小麦精播机器人路径规划系统具有可行性。
主要对人工势场法和OpenCV视觉处理进行了介绍和研究,并将其运用到小麦精播机器人路径规划的系统中,详细介绍了人工势场法的改进及在路径规划中的应用和OpenCV视觉图像的处理流程。实验结果表明:在两种布局中,小麦精播机器人都可以成功避开障碍物达到目标地点,证明了该路径规划系统具有较高的可行性。