APP下载

基于双控制器的家庭服务机器人实验系统设计

2021-04-27刘小军温宏愿何伟基崔宇豪

实验室研究与探索 2021年3期
关键词:移动机器人底盘电动机

刘小军,温宏愿,周 军,何伟基,崔宇豪

(1.南京理工大学泰州科技学院智能制造学院,江苏泰州 225300;2.南京理工大学电子工程与光电技术学院,南京 210094)

0 引言

服务机器人是一种半自主或全自主工作的机器人,能帮助人类完成除生产制造加工过程之外的工作[1],服务机器人市场空间巨大,未来可期[2]。近年来,服务机器人研究应用的领域非常广泛,如家庭服务机器人[3]、助老助残机器人[4]、医疗服务机器人[5]、教育娱乐机器人[6]和电力机器人[7]等。

机器人的研发效率一直受机器人应用场景多变、开发成本高、控制方法复杂等因素限制,因此借助合适的软硬件开发平台将会大大减少开发的难度,起到事半功倍的效果。目前主流的机器人软件开发平台有日本的开放式机器人技术中间件OpenRTM[8],欧洲的开源机器人控制软件OROCOS[9],韩国的OPRoS[10]以及机器人操作系统ROS[11],其中ROS由于具备社区活跃度高、丰富的资源库,以及开发的便利性等优势被广泛使用。

从成本和性能综合考虑,本文设计了一种基于双控制器的家庭服务机器人实验系统,并成功运用于中国机器人大赛。实验结果表明,该方案设计的服务机器人具有可靠性高、灵活性好、低成本等优点。

1 系统总体设计

图1 系统实物图

本系统主要包括控制器、输入设备、执行机构,以及底盘子系统等部分。实验系统实物如图1所示。控制器由主控制器和从控制器组成,通过RS-232进行通信,其中主控制器基于ROS开发平台实现人体骨架和物体的识别、同步定位与地图构建(Simultaneous Localization and Mapping,SLAM)[12]、语音识别等功能;从控制器基于FreeRTOS实时操作系统,控制底盘以及执行机构的运动;输入设备包括深度相机和麦克风,其中深度相机采集环境深度图像用于人体骨架和物体识别,麦克风实现语音信息的采集;执行机构主要包括升降式机械臂和机械爪,用于执行抓取目标物体等命令;底盘子系统由电源、电调及电动机、激光雷达以及全向轮等模块构成,实现机器人的移动、定位及导航等功能。系统结构框图如图2所示。

2 系统硬件设计

2.1 控制器

图2 系统结构框图

主控制器采用目前性能较为强劲且体积较小的mini机(Intel NUC),安装ubuntu16.04系统环境。在该环境下,通过深度相机以及激光雷达采集环境信息,对这些信息进行融合处理,并根据控制指令和位姿信息,借助ROS开源算法包实现机器人的即时定位与地图构建、路径规划以及导航避障等功能。主控制器实物图如图3所示。

从控制器采用面向机器人专用的RoboMaster开发板,该开发板主控芯片为STM32F427,板载IMU传感器,拥有丰富的扩展接口和通信接口,与底盘RoboMaster M3508无刷电动机配合使用。从控制器通过RS-232接口与主控制器通信,主要负责接收主控制器发送过来的控制指令,经过PID算法输出控制信号驱动底盘、机械臂以及机械爪等执行机构的电动机。从控制器实物图如图4所示。

图3 主控制器

图4 从控制器

2.2 底盘子系统

底盘子系统是机器人的重要组成部分,主要包括底盘骨架和安装在底盘内部的电源、全向轮、电调及电动机等部件,承载着机器人本身的移动、定位、导航及避障等基本功能,可帮助机器人实现智能行走。底盘结构上采用模块化、轻量化、灵活性设计思路,为保证底盘的强度并尽量减少底部车轮电动机的负荷,面板采用铝合金经激光切割而成。底盘骨架主要包括底盘外壳、机械臂支撑件、底盘中间支撑板和底盘上下面板4部分,每部分都进行了合理的布局,根据部位的不同分为1、5和3 mm 3种厚度,并与螺丝等零件相互配合组装完成,设计加工图如图5所示。

底盘采用三轮全向结构,赋予机器人更灵活的运动能力。无刷电动机与全向轮的连接采用高硬度铝合金联轴器,能够保证承受足够的扭矩。系统采用24 V锂电池作为电源提供能量,使用电调驱动无刷电动机,控制简单高效。此外选用高采样率、远测距的激光雷达采集环境二维地图信息用于激光SLAM导航。相关参数说明如表1所示。

图5 底盘骨架设计加工图

表1 底盘组件参数说明

2.3 执行机构

2.3.1 升降式机械臂

升降式机械臂作为机器人的执行机构部件之一,包括丝杆滑台和机械臂两部分,类似于人的胳膊,主要起到伸缩机械爪到所需位置和承受抓取物体质量等作用。

(1)丝杆滑台。丝杆滑台为机械臂的升降运动机构,主要包括滚珠滑杆、滑块、联轴器、步进电动机等部件,将步进电动机的旋转运动转化成上下直线运动,从而实现机械臂在不同高度进行作业。为降低机器人质量且具有足够的结构强度,选用欧标铝型材作为丝杆滑台背板。此外为方便运输,丝杆滑台通过手拧梅花螺母与底盘面板相连,在保证强度的前提下实现机械臂抬升机构的单人拆装。

(2)机械臂。机械臂主要由关节电动机和臂体组成。考虑到抓取重物的实用性和稳定性,选用恒转矩关节电动机,在机械臂完全展开的情况下末端仍可抓取0.7 kg左右的物品。机械臂与丝杆滑台的连接处采用拔插结构设计并通过手拧梅花螺母固定,机械臂外壳采用PLA塑料3D打印。机械臂设计图如图6所示。

图6 机械臂设计加工图

2.3.2 机械爪

机械爪作为机器人的末端执行机构,主要由爪片连杆和舵机组成,承载着对物体的抓取、放置等功能。机械爪采用可使爪片平行开合的连杆式结构,通过光敏树脂材料经紫外光固化3D打印。为保证机械手整体作业强度与灵活性,使用25 kg舵机驱动爪片开合以抓取物品,使用另一个舵机带动整个手爪上下俯仰,使机械爪能够平稳的放置物品。机械爪等轴测视图如图7所示。

图7 机械爪等轴测视图

3 系统软件设计

3.1 从控制器软件设计

从控制器软件架构基于FreeRTOS实时操作系统,利用FreeRTOS高效的任务调度机制将程序划分为多个重要性不同的任务,在各个任务之间合理地分配CPU资源[13]。本系统采用Keil工具实现从控制器软件的编程,主要包括底盘电动机、机械臂电动机以及机械爪舵机的控制任务、电动机编码器速度获取任务、电池电压检测任务以及与主控制器的信息交互任务等,运行流程如图8所示。

(1)电池电压检测任务。底盘电动机、机械臂关节电动机的驱动都是从锂电池获取的,电池电量的多少对电动机的驱动能力至关重要。从控制器通过AD采样模块获取并监测机器人搭载锂电池电压,并实时将电压值发送给主控器。若电池电压低于阈值,则说明电池不再适合继续驱动底盘电动机及机械臂关节电动机的运动,否则因电动机无法输出足够扭矩会造成动作走样甚至危险,且会降低电池组使用寿命。此时,从控制器会发出电压过低警报。

图8 从控制器运行流程图

(2)底盘电动机、机械臂电动机控制任务。从控制器实时采集底盘电动机编码器数据,并将其反馈给主控制器,判断机器人已经到达目标点后,向主控制器发布消息(Message),主控制器机械臂控制程序接收到消息后开始完成抓取物体等动作,在执行过程中,从控制器机械臂控制程序通过CAN总线实时采集机械臂各个关节电机反馈的角度信息,并通过串口将角度信息反馈至主控制器机械臂控制程序。当主控制器判断机械臂执行完一系列动作后会给从控制器发送一个消息(Message),通知机械臂动作完成,以便机械臂控制程序判断是否运行到下一目标位置。

机械臂关节电动机采用位置控制模式,使用15位绝对编码器,底盘电动机采用速度控制模式,配有编码器以实时回传数据。通过编码器反馈数据与主控制器路径规划出的目标数据之差得到实际偏差数据,主控制器根据实际偏差数据计算得到控制信号,回传给从控制器,进而控制电动机工作。从控制器底盘电动机控制程序实时将传感器数据通过消息(Message)发送给主控制器底盘控制系统和机械臂控制系统。

3.2 主控制器软件设计

主控制器软件架构基于ROS平台开发,主要实现即时定位与地图构建、路径规划以及导航避障等功能。

3.2.1 地图构建

主控制器软件系统使用Gmapping[14]软件包实现地图构建,涉及的基本组织元有:

(1)gmapping_slam。主要作用是根据激光传感器所测得的数据进行反馈,进而完成地图的构建。

(2)amcl。自适应蒙特卡洛定位。采用粒子滤波器来跟踪已知的地图中机器人位姿,是机器人在二维平面移动过程中的概率定位系统。该算法将传入的激光扫描数据转为里程计结果,从而在地图中输出位姿信息。

在实际地图构建过程中,由于基于二维激光雷达的Gmapping建图系统存在特殊环境下的建图失真情况,如无法探测到玻璃门、未知区域无法探测等问题。因此,本文使用一种人工标注栅格地图的方法来修正自动生成的地图。

3.2.2 路径规划与导航算法

导航是指机器人根据已知地图和自身的起点位置,自动规划出到预设目标点的最优路径,主要包含了全局路径规划和局部路径规划[15]。

全局路径规划采用A星算法,它具有启发式特点的全局路径规划算法,拥有最低的搜索成本。假设起始点为s,目标点为g,N为当前点,n为搜索点,其成本的评价函数为

式中:g(n)为s点移动到N点的实际移动成本;h(n)为从N点到移动到g点的启发式成本。

局部路径规划采用DWA算法。该算法是ROS系统常用的室内环境路径规划算法,对满足移动机器人的线速度和角速度进行采样;根据采样的结果结合机器人的运动模型,预测移动轨迹;通过评价函数对预测轨迹评分,选取最优的速度控制移动机器人的运动。

(1)速度采样。根据机器人自身的局限以及环境的制约,需要将机器人的速度控制在一定范围,以便进行采样。其中涉及以下速度因素:

式中:vs表示移动机器人的速度空间;vmin为移动机器人最小线速度;vmax为移动机器人最大线速度;wmin为移动机器人最小加速度;wmax为移动机器人最大线速度;vd表示移动机器人能够达到的速度空间;va、wa分别为移动机器人当前的线速度和角速度;为移动机器人线速度的最大的加速度;为移动机器人角速度的最大的加速度;t为时间间隔。

为保证机器人在碰到障碍物之前速度降为零,故约束:

式中:dist(v,w)为速度(v,w)对应的估计到最近障碍物的距离;vr机器人的速度空间。

(2)评价函数。轨迹评价函数的作用就是对若干组速度轨迹进行评价,选择最优路径避开障碍物。评价函数为

式中:heading(v,ω)表示在当前速度下,预测机器人在轨迹末端时的朝向和目标位置的角度差;dist(v,ω)表示机器人障碍物之间的距离;velocity(v,ω)使机器人尽保持最优速度;α,β,γ为权重系数,示意图如图9所示。

图9 机器人行走轨迹

4 实验结果与分析

4.1 地图构建测试

本文在ROS系统中通过执行Gmapping的软件包实现地图的构建,建图系统的各个节点及节点间的关系如图10所示。

图10 建图节点图

建图系统主要包括键盘控制节点、机器人底盘控制节点、激光雷达节点、Gmapping节点和地图服务节点;节点之间的矩形方框表示主题,主题指向节点则表示该节点订阅了相应的消息,节点指向主题表示该主题发布了相应的消息。

采用roslanuch启动节点相关,驱动激光雷达获取环境数据并发布到/scan主题上;运行Gmapping节点和地图服务节点,打开可视化地图界面rviz;主控制器启动键盘控制节点,通过键盘发送命令给底盘系统,实现机器人的移动;控制机器人在目标场所移动,从而实现地图的构建,本文选择实验楼层场景,建图效果如图11所示。

4.2 路径规划与导航测试

路径规划建立在图11所建栅格地图上。首先,需要对机器人位姿进行初始化设置,点击rviz地图,会出现一个箭头,箭头指向即为机器人初始位置的朝向,位姿初始化后可以为机器人选择目标点的朝向,此后全局规划器会为机器人规划出一条全局路径,从机器人初始位置出发,到目标点结束,如图12所示(带箭头的浅蓝色线)。

图11 地图构建效果

图12 实际规划效果

路径规划完成后,现实环境中机器人就会开始沿着规划好的全局路径进行移动,若中途不再出现障碍物,机器人会一直沿着该路径,直到目标点为止。同时在实际测试中,还进行了在已知地图中增加障碍物的试验,机器人在行进过程中如果检测到未知的障碍物,会启动局部规划器,绕开障碍物,实现动态避障,完成导航任务。

4.3 物品识别和抓取功能测试

对该家庭服务机器人实验系统进行物品的识别和抓取功能测试。方法为:在桌上摆放易拉罐、饮料瓶、零食等物品,机器人根据人的指令识别并抓取目标物品,如图13所示。

图13 现场测试

测试时,每个物品识别和抓取15次,求取系统执行的正确率。测试结果表明,该系统可以根据指令正确识别和抓取目标物品,相关测试结果见表2所示。

表2 物品识别和抓取功能测试

5 结语

本文设计和开发了一种低成本家庭服务机器人实验系统,采用主从控制器控制结构,主控制器基于ROS实现机器人的即时定位与地图构建、路径规划与导航、语音识别等功能;从控制器基于FreeRTOS主要实现对底盘、升降式机械臂以及机械手的实时控制以及电池电压检测等。该服务机器人成功应用于2019年中国机器人大赛家庭服务机器人非限定项目比赛,并取得一等奖的优异成绩,测试结果验证了系统设计的稳定性、可靠性及有效性。

·名人名言·

业精于勤荒于嬉,行成于思毁于随。

——韩愈《进学解》

猜你喜欢

移动机器人底盘电动机
移动机器人自主动态避障方法
浅析电动机日常维护与保养
永磁同步电动机的节能计算
基于Twincat的移动机器人制孔系统
轿车底盘评价调校初探
依维柯New Daily底盘改装房车中国首秀
基于KB0的电动机软启动控制系统
电动机的保护配合及CPS在民用建筑中的应用
底盘测功机的发展及应用
瑞风S5车底盘异响