室内智能无人清扫机的设计研究
2020-07-29张卫忠孙文芳
张 军,张卫忠,孙文芳
针对当前医院、地铁站、高铁站等室内区域清扫任务繁重,劳动力成本高的问题,本文基于低成本传感器,利用三维激光定位与地图构建、轨迹规划、运动控制等核心技术对现有传统清扫机进行智能改进设计.使无人清扫机具备自主路径规划、自主定位与地图构建、自主避障等功能[1],可以实现室内环境下地面清洁,提高了工作效率和效果.
1 机械结构与工作模式
清扫机一般工作在半开放环境下,且速度在5~30 km/h 之间.针对清扫机的工作环境和使用要求,在现有清扫机基础上进行了机械结构优化改进,主要机械结构如图1 所示.控制器接收激光雷达与摄像装置的信息进行运算处理后,控制转向电机工作,通过减速器、转向链轮和链条控制转向轮工作,从而实现无人清扫机运行,利用光栅完成转向轮转角的测量,雷达和摄像装置监测和获取清扫机周边的环境信息,其中核心部件是控制器部分,其必须能够及时处理获取的信息,并利用算法作出合理决策.但由于算法、传感器、基础设施、网络环境等因素尚不成熟,现阶段还无法实现全场景的完全自动驾驶,因此,针对不同工作环境研发与其相适应的软、硬件设备,成为了自动驾驶的主要实现路径.路径规划就是无人清扫机在具有障碍物的环境中按照一定的评价标准,寻找一条从给定点到达目标点的无碰路径[2].
图1 智能无人清扫机结构简图
2 控制器技术方案
为了提高无人清扫机自动驾驶的安全性与可靠性,降低计算功耗,无人清扫机的控制器采用主核“ARM”处理单元和辅核系统Freescale MCP 564xA 的主辅核双核系统架构.控制器在开发过程中,将充分考虑安全功能、失效模式、驾驶场景、可控性,以及安全目标、安全时间和安全状态等因素,最终努力做到控制器功能安全认证.
基于多个DCU 的多域控制器MDC(Multi-Domain Controller)能够处理来自不同域的传感器信号,从而满足自动驾驶技术对无人清扫机各域信息进行融合处理的需求.摄像头、雷达、GPS、轮速传感器等属于不同域的传感器信号在一个控制器中处理,保证控制器作出最优的驾驶决策.这种统一处理的方式也推进了系统功能的集成化,提高了处理器和存储器的利用效率[3].
2.1 主控制器设计
主处理器基于2 块Nvidia TX2 高性能嵌入式芯片,实时采集/监测高精度地图信息、摄像头信息、毫米波雷达信息、激光波雷达信息、GPS/惯导组合信息、清扫机状态信息、5G通讯信息等,实现数据融合及智能决策功能,通过CAN 总线向清扫机ECU 发出控制指令,最终实现清扫机安全有效的自动驾驶功能.此外,主控系统还可以对无人清扫机行驶状态的关键数据,通过存储单元进行保存.如图2 所示.
图2 主处理器结构框图
在主处理器系统中实现智能驾驶功能,发出控制指令,最终实现清扫机安全有效的自动驾驶功能.在系统启动时主处理器系统具备自检功能,在自动驾驶过程中主处理器系统有识别清扫机系统故障和通信故障的功能,并针对故障作出相应保护.
2.2 辅控制器
辅控制器系统可以实时监测主处理器系统的工作状态,当主处理器功能失常时,辅处理器可以完成无人清扫机的基本控制,控制无人清扫机进入跛行模式,并实现报警.辅处理器在系统运行后实时监测主处理器工作状态,并接受GPS 和毫米波雷达数据,当主处理器工作失常时辅处理器可以及时作出相应的保护措施,利用GPS 和毫米雷达信息进入跛行模式,并进行声光报警.辅处理器系统结构如图3 所示.
图3 辅处理器系统其结构图
辅处理器需要更高的可靠性,拟选用飞思卡尔Freescale MCP 564xA.MPC564xA 系列MCU,其具有增强的动力总成功能.辅控制器主要完成电源管理、报文、指令监听、主控制器监测、遥控数据处理等功能[4].
3 软件技术方案
针对典型低速工况自动驾驶需求,采用开放分层式体系结构,该结构拥有明确的接口体系,以及递进的性能表现,如图4 所示.根据该体系技术架构,将自动驾驶系统软件功能划分为四大部分:环境感知系统、决策规划系统、运动控制系统和执行系统.
图4 总体技术架构
3.1 环境感知系统
感知系统如同无人清扫机的“眼睛”,它通过处理激光雷达、毫米波雷达、相机和GPS/INSG 等传感器收集的信息,使自动驾驶平台“感觉”和“理解”自身与周围环境的相对关系,对工作环境各种局部场景进行表达.依据功能划分,感知系统包括:障碍物感知、环境建模、定位定向和信息融合.
采用车载高清相机、激光雷达和毫米波雷达实现多模态信息融合的目标检测跟踪和通行区域建模,由于各个传感器对场景要素的检测识别是相互独立的,为了给无人清扫机决策系统提供统一可靠表达,基于对高清相机数据和激光雷达数据的类别识别,本文拟利用分散式传感器融合框架(如图5 所示),基于D-S 理论[5],采用多维属性信息的分域、层次融合方式,利用初始信息确定高层融合所需的概率分布的近似算法对数据进行融合处理,并对可能存在的证据冲突问题,给出了算法的修正;最终给出驾驶场景关键要素的统一表达和管理,并通过相机、激光雷达等信息的融合,实现目标物体的检测与识别.
图5 分散式多源传感器融合框架
基于激光雷达检测数据、视觉传感器检测结果等进行多传感器信息融合,提高障碍物识别检测的准确性,生成带有障碍物、路沿、车道线等信息的栅格地图,对无人清扫机行驶的局部环境进行直观、有效的描述.如图6 所示.
图6 局部环境构建方法示意图
此外,为了使无人清扫机运行更加精确,本文还采用基于GPS/IMU 与激光雷达里程计融合算法,该算法核心在于激光雷达里程计的实现,它包含四个基本模块:基于编码器的速度/航向提取、基于激光雷达的扫描匹配算法、基于卡尔曼滤波器的信息融合算法,以及航迹推算算法.
基于编码器的速度/航向信息获取.基于无人清扫机本身的编码器信息(一般为无人清扫机转向轮的转动信息),可以获取清扫机本身航向,以及速度信息.
基于激光雷达的扫描匹配算法.为避免传统 ICP(Iterative Closest Point,最近点迭代)算法存在的实时性差的缺点,提出了基于NDT(Normal Distribution Transformation,正态分布变换)的扫描匹配算法,实现清扫机实时速度与航向的获取[6].
NDT 算法的关键在于将单帧点云转化为分段连续可微的概率分布(正态分布).
首先,将清扫机周围的3D 空间划分为规则的固定大小的栅格(体素,voxel).
然后,计算每个栅格内所有激光点的均值与协方差矩阵∑,基于均值与协方差矩阵,可以得到每个栅格的概率分布
当使用NDT 进行点云匹配时,目标是找到当前激光雷达(即无人清扫机)的姿态,使得当前扫描的点云位于参考扫描表面上的可能性最大化,那么需要优化的参数就是对当前扫描点云的变换(旋转与平移),用变换参数来表示. 设当前扫描点云为X={x1,x2,…,xn} ,给定扫描点集合X和,令空间变换函数表示使当前点云X通过变换参数转换到参考点云表面上.最好的变换应该是最大化这个变换,即:
最大化这个似然函数即最小化其最小负对数似然:
通过牛顿法,即可求得相应的最优参数,进而求得相应的速度和航向.
基于卡尔曼滤波器的信息融合算法.由于利用编码器,以及激光雷达点云匹配均能够获得无人清扫机的实时运动速度与航向,但是均存在估计误差,项目中采用卡尔曼滤波器进行信息融合,减少误差的累积.卡尔曼滤波包含状态预测和测量更新两个不断迭代更新的过程,具体如图7 所示.
图7 基于卡尔曼滤波的信息融合过程
3.2 决策规划系统
决策规划系统如同无人清扫机的“大脑”,是在分析环境感知系统提供的感知地图、全局路网等信息的基础上进行运动规划、行为决策的过程,实现障碍物避障与速度决策,并将期望轨迹与速度发送给运动规划系统.
无人清扫机的局部规划系统需要在应对每一种行为决策结果时,均能相应地生成一条清扫机可执行轨迹.而对于轨迹的规划事实上可以理解为一个约束优化问题.其约束条件包括无人清扫机当前状态(即规划初始状态)、行为确定的期望目标状态(行为决策指令)、无人清扫机运动学特性、动力学特性、横纵向最大加速度指标、安全距离指标、时效性等,这些构成了最终轨迹优化和评价的标准.通过算法得到的众多轨迹中,能满足这些标准要求的就可以作为最后的输出轨迹[7].
建立清扫机运动学模型,基于模型预测的轨迹规划算法可以生成一条便于控制又符合环境约束的可行运动轨迹.
首先采用自适应采样算法,根据道路几何特征自适应地对终端状态(即位置坐标、航向、曲率)进行采样,然后基于模型预测生成方法生成一个从初始状态开始的运动可行路径集.利用清扫机运动学模型作为预测运动模型.约束可以写成Xf=f(Xi,u) ,其中Xi是初始状态,Xf是终端状态.函数f() 是无人清扫机运动学模型,包括无人清扫机整体形成和控制约束,可以用下面的方程表示:
其中:x、y是位置坐标,θ是航向,k是曲率.空间路径的状态表示为相对于曲线长度s而不是时间t的函数.
连续曲率可以保证路径的平滑性,并且避免了干扰的转向行为.为确保每条路径曲率的连续性,曲率表示为弧长的多项式函数.为了获得唯一的解决方案,k(s)中未知参数的数量必须等于有用已知条件的数量.初始曲率k(0)确定了零阶参数a=k(0).其余的已知条件是终端状态和初始位置.因此,采用变量s的三次多项式函数. 未知参数包括q={b,c,d,sf}.由于这类强非线性微分方程的解析解是非平凡的,用牛顿法对方程进行数值求解.并通过找到误差的最小值(ΔXf(q))迭代计算未知参数.
作为一个非线性优化问题,未知参数q0的初始猜测会大大影响迭代的收敛性.因此,预先计算查找存储未知参数的初始猜测.如图8 所示,采样几个最终状态,然后根据无人清扫机中心坐标框架生成相应的路径.存储这些生成路径的参数作为初始猜测.
图8 生成的离线查找表
3.3 运动控制系统
运动控制系统如同无人清扫机的“手脚”,主要功能是实现无人清扫机的运动控制,其目标是尽可能精准地跟踪运动规划系统所规划的局部期望轨迹,将其转化为方向转角、速度、刹车、喇叭等控制量,并发送给底层执行系统执行.
运动控制系统的运动控制按照清扫机的相对坐标系,分为无人清扫机的横向运动和纵向运动.无人清扫机的横向运动包含了路径跟随、清扫机环道、弯道行驶等功能;无人清扫机的纵向控制包含了无人清扫机速度控制、停车控制等功能,能够提高控制器对速度的自适应能力[8].
(1)纵向控制.设计车速反馈串联矫正结构,如图9 所示.
其中设定车速由用户输入或者由决策系统给定.用户可以通过控制系统程序界面输入最高行驶速度.纵向控制采用PID 控制方法[9].PID 参数的整定通过实验进行.在无人清扫机执行机构调试完成和控制程序编写完成后,通过路试给定不同的初始状态和设定车速(包括从静止启动,从低速加速到高速,从高速降到低速,制动驻车),根据PID 控制器整定原则,调整PID 参数,达到预期的控制系统性能指标和总体指标.
图9 纵向控制结构
(2)横向控制.无人清扫机在行驶过程中,当道路的弯曲程度发生变化时,必然需要不断变换行驶方向,以此适应道路弯曲程度的变化,因此无人清扫机横向控制系统的实质就是对其行走方向的控制.无人清扫机首先需要收集前方道路情况,之后结合自身在道路中的位置、方向作出判断,进而转动方向盘,对无人清扫机姿态进行不断地修正,使其保持在期望的行驶轨迹上.
若将上述过程进行拆分,首先无人清扫机需要一条规划轨迹代替人眼识别的道路轨迹,规划轨迹来自于决策系统,为一个GPS 经纬度点集构成的线束;之后,横向运动控制算法仿照驾驶员的行为方式在即将经过的前方规划轨迹中获取道路信息,在本算法中称之为预瞄距离和预瞄点的选取;预瞄距离就好比是驾驶员向前方观察路径时所观察的距离,而预瞄点就是在预瞄距离处所获取的位于规划轨迹上的路点,并以此分析道路的弯曲程度;最后,通过将预瞄点的信息同清扫机本身的GPS 经纬度信息和航向角信息进行对比,就可以得出无人清扫机转向轮在每个控制周期所应当得到的姿态修正值,即无人清扫机应当转过的方向和角度.无人清扫机横向运动控制系统最终也是通过控制无人清扫机转向轮的转动角度来控制清扫机完成转向动作,从而完成在不同弯曲程度上的道路行驶.
由此,可以得到无人清扫机的基本控制原理:通过不断对比无人清扫机与所要经过的道路之间的相对位置、方向信息,判断无人清扫机与所要经过的路径的相对关系,并由此得出相应的方向盘转角,从而驱动无人清扫机向期望的方向移动,控制原理框图如图10 所示.
图10 横向控制原理框图
3.4 执行系统
执行系统主要负责接收来自运动控制系统的指令(如转向、速度、制动等),实现相关执行机构行为的控制.
(1)底层控制器.实现转向、制动等控制量到各分执行机构的协调控制;实现人工/自动/遥控三种模式切换.
(2)电源模块.确保清扫机各传感器及设备长期平稳运行.
(3)执行机构改造.实现转向、制动、油门线控化.
4 结论
综上所述,根据清扫机的工作环境和工作状态,通过对现有清扫机的机械部分进行改进,增加激光雷达定位、摄像装置与轮速传感器等设备,并从环境感知系统、决策规划系统、运动控制系统和执行系统四个方面对控制器进行软、硬件研发设计.实验表明,室内智能无人清扫机满足设计要求.