全向移动的送餐机器人控制系统研究与仿真

2022-05-26 13:00张大为代斌斌
制造业自动化 2022年5期
关键词:下位中继上位

夏 田,张大为,代斌斌

(陕西科技大学,西安 710021)

0 引言

服务机器人是新兴的一类智能机器人,其可以自主工作或全自主工作。通过智能化的工作以及网络技术的相互融合,从而促进人类生活的便捷、智能化[1,2]。在技术的不断发展中,服务型智能机器人的功能被逐步完善,可以胜任不同的任务[3]。

针对现有送餐机器人的轨迹固定、空间要求高、容易产生人机干涉的问题,本文提出了一种基于麦克纳姆轮的在餐厅天花板层运行的送餐机器人;建立送餐机器人硬件控制平台,使用机器人操作系统ROS和编程语言C++搭建软件平台;进行实时地图构建定位与路径规划仿真,结果证明机器人可以较好实现送餐机器人的相关功能,显著提高了送餐作业的效率。

1 全向移动送餐机器人的结构组成及工作原理

全向移动送餐机器人的主要结构由1.蜗轮绳辊联接架2.蜗轮;3.升降电机联轴器;4.蜗轮绳辊连接轴;5.升降电机;6、升降电机架;7.定滑轮;8.滑轮架;9.上托架;10.蜗杆;11.升降绳孔;12.升降绳;13.餐盘;14、限位孔;15.铝合金型材;16.麦克纳姆轮;17.轮组电机及对应的核心控制板和上位机等一系列软硬件组成组成。机器人的主要结构示意图如图1所示。

图1 送餐机器人主要结构示意图

全向移动送餐机器人的送餐工作原理如图2所示,机器人通过两组麦克纳姆轮16实现在天花板层的全向移动,通过升降结构实现餐品的投送和回收。此方式可以隔绝人机干涉,增加机器人的灵活性,送餐效率大幅度提升的同时降低了运行风险。

2 送餐机器人控制系统设计

2.1 控制系统总体设计

为准确完成送餐机器人作业,对送餐机器人的总体控制系统流程做出如下设计。

1)送餐任务开始,人工核对待送餐品和目标点并将其放在已收回餐盘上,之后选择自动或手动模式。

2)自动模式下,机器人上电开机并在远程pc指令控制下,根据预设路径规划算法计算出轨迹,随后下位机STM32驱动轮组电机运行,激光雷达反馈行驶路径与位置并修正,遇障碍时,通过激光雷达重新规划轨迹。到达目标点餐盘投送食物,待取餐后收回,随后返回起始点等待指令。

3)手动模式下,将已通过中继机树莓派解析的远程控制pc发布的键盘指令发送给下位机STM32,其运行对应的电机驱动程序实现机器人手动控制下的全向移动、送收餐盘。送餐完成后手动返回初始位置等待任务。

2.2 控制系统硬件设计

送餐机器人的控制系统硬件组成主要包括上位机远程控制pc、中继机树莓派微型电脑、下位机核心控制板STM32、激光雷达、轮组,餐盘升降电机及对应驱动模块、电机编码器等。

机器人控制系统硬件结构框图如图2所示。

图2 控制系统硬件结构框图

上位机远程控制pc安装Ubuntu 16.04系统与ROS操作系统,实现运动控制、实时地图构建与定位、轨迹规划导航、避障算法构建等复杂数据处理,其与中继机使用无线网络通讯。

中继机树莓派微型电脑安装Ubuntu 16.04系统与ROS操作系统。实现简单运算并接收激光雷达数据,将数据通过uart串口线发送至下位机STM32实现轮组、餐盘升降电机的控制。

下位机核心控制板STM32通过串口与各电机通讯,得到对应PWM信号脉宽值,并发送给电机驱动C620,其通过CAN总线控制电机转向和转速,使机器人按照控制要求运动。

2.3 控制系统软件设计

机器人的软件控制系统部分由上位机、中继机、下位机对应控制程序构成,自动模式下由预设程序控制机器人,手动模式下由人工在上位机实现控制。

机器人的软件控制系统流程如图3所示。

图3 机器人软件控制系统流程图

上位机控制程序主要有底盘目标点发布程序、运动控制程序、运动模型解算与位置反馈程序。当送餐开始时,上位机将控制指令通过无线网络发送给中继机,上位机与中继机都安装了ROS操作系统,利用系统中已有的工具、协议完成机器人的算法编程和仿真。中继机将接收到的相关指令进行解析并递送给下位机。

中继机树莓派微型电脑通过rosserial协议将解析的运动指令以串口通讯递送至下位机STM32,使下位机实现对应电机的控制。

下位机控制程序主要包括电机控制程序、ROS串口通讯,机器人位姿读取程序。电机控制,由于送餐机器人采用麦克纳姆轮组,只需要控制各轮的速度和转向即可实现机器人的全向移动。通过PWM脉宽调制控制轮组电机实现转速和转向的调节,根据脉宽和速度的映射关系图可以得到PWM脉宽对应的电机的速度和转向,如图4所示。与ROS串口通讯同样是通过rosserial协议实现的[4]。在Windows环境下应用MDK5软件,C/C++语言完成下位机STM32的开发。

图4 脉宽和速度的映射关系

机器人的主要控制图如图5所示。

图5 送餐机器人主要控制图

3 机器人相关算法与仿真

送餐机器人主要算法包括运动底盘的SLAM和路径规划。在SLAM中,建图采用gmapping算法[5];定位采用蒙特卡罗算法[6]。全局路径规划使用基于栅格地图上的A*算法[7];局部路径规划算法使用ROS机器人操作系统中的DWA算法。

3.1 建图仿真

在上位机远程控制pc中,根据送餐机器人需要的参数配置slam_gmapping节点如表1所示。

表1 “slam_gmapping” 节点部分参数设置

启动后发布机器人状态信息,启动键盘控制、gmapping SLAM节点,使用激光雷达更新地图最终获得完整地图信息,建图仿真如图6所示,地图中设置了墙壁等固有障碍,机器人最终完成地图扫描构建。

图6 机器人建图仿真

3.2 蒙特卡罗定位仿真

在已有静态栅格地图上使用ROS中Amcl工具包进行蒙特卡罗定位仿真,其节点参数如表2所示。机器人启动建立相关节点后启动Amcl。蒙特卡罗定位过程如图7所示,可以看出粒子样本点收敛,定位趋于准确,地图右下角边框处线为实时雷达扫描范围。

图7 蒙特卡罗定位过程

表2 “Amcl”节点部分参数设置

3.3 路径规划仿真

此部分利用ROS中move_base功能包仿真,全局地图模型如图8所示;全局路径规划与导航如图9所示;避障地图如图10所示;避障过程如图11所示。

图8 全局地图模型

图9 全局路径规划与导航

图10 避障地图

由图9可见,机器人成功规划出全局路径并移动;由图10及图11可见,设置了临时的墙壁障碍,机器人在沿着已规划路径上运行时发现障碍并进行局部路径规划实现避障,完成行走过程。

图11 避障过程

由仿真结果可知,使用上述算法设计的全向移动送餐机器人可以准确实现实时地图构建与定位、路径规划等功能,在工作环境中有障碍物等影响因素时,机器人可以通过避障算法进行局部路径规划避障,从而较好地完成送餐任务。

4 结语

本文详细阐述了全向移动送餐机器人的主要结构、工作原理,并根据其控制要求,以STM32和中继机树莓派作为核心控制器,使用上位机pc进行远程操作,建立送餐机器人控制的硬件平台。采用Ubuntu mate 16.04作为嵌入式操作系统,同时使用机器人操作系统ROS和编程语言C++搭建系统的软件平台。利用ROS和相关算法进行仿真,结果表明所述送餐机器人能够完成全向移动,实时地图构建与定位,避障等送餐相关功能,验证了控制系统的可行性。该设备具有结构简单、易于维修、适用性强等优点,减少了人机干涉及服务员与顾客的直接接触。

猜你喜欢
下位中继上位
基于UDS协议的CAN BootLoader的开发与验证
基于Alamouti 码的OFDM 协作系统中继选择算法
自适应多中继选择系统性能分析
基于STM32和Zigbee的mini宠物智能喂养系统的设计
发射机房监控系统之下位机
特斯拉 风云之老阿姨上位
基于ZigBee和VC上位机的教室智能监测管理系统
一种基于无线蜂窝网络的共享中继模型
围观党“下位”,吐槽帝“登基”
基于AF/DF方式最优MIMO中继在同频干扰下的性能分析