基于SLAM算法的清洁设备研究*
2024-01-03崔志鹏曾祥明李佳睿薛培延乔俊福
王 琦,崔志鹏,曾祥明,李佳睿,薛培延,乔俊福
(太原工业学院 自动化系,山西 太原 030008)
0 引言
随着社会的发展以及人们生活节奏的加快,越来越多的人想要把自己从繁琐的家务中解脱出来,市场对于扫地机器人的需求也越来越大。而当下市面上的扫地机器人大多为随机式、LDS激光式和视觉导航式,这些扫地机器人路径规划方式不仅低效,还有着扫描不全面、抗干扰能力弱、功能较为单一等缺陷,无法满足一些特殊的需求,为此研发了一种扫描更全面、路径规划更精准、功能更加齐全的清洁机器人。
1 设备介绍
我们设计的基于SLAM算法的多功能清洁机器人由底盘、爬楼机构、清洁机构、激光雷达及控制系统等组成。通过激光雷达及时检测机器人周围环境,从而实现清洁机器人的防跌落以及障碍物的检测;由吸尘装置结合毛刷反复清洁以增强清洁能力,可以带走墙体死角等处难以清除的灰尘细毛;通过合理地设计机器人的机械结构,使机器人更加多功能化,可以清洁大教室、会议室等难以清洁的地方。
2 结构设计
2.1 爬楼机构
爬楼机构如图1所示,主要由机械臂、舵机、滑轨、齿条等组成。
图1 爬楼机构
(1) 当机器人检测到前方有楼梯时,上端机械臂通过舵机控制逆时针旋转,同时下端机械臂通过舵机控制顺时针旋转将机器人支撑起来。
(2) 将机器人支撑起来后,通过齿轮齿条传动机构将机器人前半部分伸出;通过齿轮反向旋转,使机器人后半部分向前运动。
(3) 后半部分向前运动之后,机器人重心前倾,通过后轮摩擦力的作用使机器人成功攀爬上台阶,完成爬楼。
清洁机器人爬楼过程如图2所示。
图2 清洁机器人爬楼过程
2.2 清洁机构
清洁机构(如图3所示)的扫帚叶片由电机驱动,两个电机相对转动将灰尘等垃圾扫至中间灰尘吸入口处,通过抽风机将垃圾吸入到尘盒中,完成对地面的清洁。
图3 清洁机构
3 控制部分及工作原理
清洁机器人控制部分的底层架构由单片机控制中心、电机调速系统、PID算法控制器等构成,下面依次介绍各个部分原理及其作用。
3.1 单片机控制中心
清洁机器人由旭日X3派作为开发板,它兼容了以前的树莓派接口,具有更强的算力与处理能力且支持Ubuntu20系统。
3.2 电机PWM调速
电机调速使用直流电机脉冲宽度调制(Pulse Width Modulation),简称PWM。在驱动控制的调整系统中,可以根据需要的速度改变一个周期内电平接通和断开的时间长短,即通过改变占空比来改变平均电压的大小,从而控制电机的转速。
3.3 机器人的移动控制
使用开环控制的电机当发出速度等于0的指令后,由于惯性存在,电机会继续转动一段时间,所以我们利用PID算法实现快、准、稳的速度控制。PID(Proportion Integration Differentiation)其实就是指比例、积分、微分控制,可以利用如下公式根据误差值e(t)控制变量和获取反馈去不断修正控制函数U(t):
其中:kP、TI、TD分别为比例增益、积分增益及微分增益。
4 SLAM建图及路径规划算法
由于摄像头在室外工作时受环境、光照影响较大,而激光雷达受光照影响较小,即使在黑暗条件下也能很好地工作,所以我们选择用激光雷达感知环境。激光雷达通过向目标环境发射激光数据,并对接收反射回来的数据进行分析,进而完成环境地图和位置的计算。
使用卡尔曼滤波(KF)和人工神经网络算法对多种传感器的数据进行信息融合,进而将处理后的数据运用 Gmapping 算法和 AMCL 定位系统进行SLAM 建图,最后使用Move_base功能包实时规划出最优的全局与局部路径,使设备实现自主导航与自动避障。
4.1 AMCL定位系统
AMCL即自适应蒙特卡洛定位,其核心是一种利用粒子表示置信度的自适应蒙特卡罗算法,主要原理是:根据环境地图,采样粒子估计机器人位姿的概率分布,其可靠程度由粒子权重决定。
这种方法会在机器人可能的定位位置周围假设多个前进方向,然后在机器人行进过程中,依据激光雷达和编码器等信息对这些假设的前进方向进行筛选,逐步剔除明显不可信的假设前进方向,留下可信度较高的前进方向。在机器人运动过程中,那些假设前进方向会逐渐收敛,最终汇聚成一个机器人最可信的定位位置。
4.2 SLAM建图
为了在 SLAM 建图过程中能够生成最佳效果的二维地图,我们参考了文献[1],在原有 AMCL 算法的基础上,添加了动态参数,使其粒子群收敛速度根据机器人速度的改变而改变,使清洁机器人的实时定位更加精确。
我们用Gazebo软件仿真场景,得到的Gazebo仿真场景如图4所示。图4中,有两个虚拟墙壁(正方形)、两个障碍物(小圆)和激光雷达(大圆)。激光雷达扫描环境,并在Rviz中显示计算后的SLAM建图结果,如图5所示。
图4 Gazebo仿真场景
图5 Rviz中显示的SLAM建图结果
由此可见,使用各种传感器和激光雷达能够成功检测到障碍物和周围环境,并准确建出此场景的地图。
4.3 路径规划
所谓路径规划,是指达到机器人行走路线最短、行走时间最短等目标并避开障碍物(DWA算法)到目标点的最优路径。
关于全局最优路径规划问题,我们使用了A*(A-Star)算法[2]。A*是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。它结合了BFS和dijkstra算法的优点,在进行启发式搜索提高算法效率的同时,可以基于评估函数保证找到一条最优路径。
关于机器人需要具备的自动避障功能,我们选用DWA算法作为机器人的局部路径规划算法,其流程为:首先使用激光雷达扫描来寻找一切即将到来的障碍物,并将数据传递给机器人,接着对数据进行解析,提前规划好最优路线,最后评价每一个方案后择优实现,一直重复上述步骤至遍历完成。
Move_Base是 Navigation 系统里扮演核心中枢的 ROS 包,它将机器人导航需要用到的地图、坐标、路径和行为规划器连接到了一起,同时还提供了导航参数的设置接口。使用此功能包可以实时规划出最优的全局与局部路径,清洁机器人可以实现自主导航与自动避障的功能。
5 样机效果
制作的清洁机器人样机如图6所示,经测试机器人可实现运动控制和SLAM建图,并给出最优路径规划方案。
图6 制作的清洁机器人样机
6 产品适用范围及推广前景
在一些大型工厂中,往往需要清洁一些对人体不太友好的废弃物,使用大型设备极大地浪费了资源,并且建造成本极高。在阶梯大教室及会议厅等频繁使用的大型场所更是如此,因此外形小巧、可自动避障、高效率的智能清洁机器人就显得颇为合适了。故该机器人不论在车间、火车站还是大型会议厅均有很广阔的应用前景。