异构低能耗的跟随机器人系统设计

2022-10-15 03:47汪庆海杨芳艳
电子科技 2022年10期
关键词:行人算法模块

汪庆海,杨芳艳

(上海理工大学 机械工程学院,上海 200093)

随着机器人技术的发展,服务机器人得到了越来越多的关注,日常生活与生产对服务机器人的需求日益增加。自主跟随机器人作为服务机器人中重要的一员也得到了广泛的重视[1]。跟随机器人研究的主要目的是使其智能化。近年来,随着深度学习技术的快速崛起,跟随机器人技术也向前迈出了一大步。在机器人上使用这些技术需要高性能、强算力的计算平台来支撑,这也引发了机器人能耗大、续航时间短的问题。在机器人中引入嵌入式计算平台可以节约成本、降低功耗,有助于机器人实现更长时间的巡航。

目前,关于导航与视觉跟随的研究工作集中于单一的导航或者行人跟随。跟随机器人的工作环境一般是复杂且未知的,在这种情况下智能导航技术就可以发挥它的优势,使机器人具有从当前位置智能、安全地移动到目标位置的能力。在智能导航领域,研究者提出了多种算法,例如以Dijkstra[2]算法和A*[3]算法为代表的全局路径规划算法,以DWA(Dynamic Window Approach)算法和TEB[4](Timed Elastic Band)算法[5]为代表的局部路径规划算法。这些算法均推动了自主导航技术的快速发展。在机器人视觉跟随当中,主要利用人脸检测[6]、头肩检测[7]、目标人手持彩色版[8]以及在衣服上粘贴二维码来实现机器人对目标人的跟随[9]。然而,视觉跟随的精度易受到机器人底盘响应速度与精度、光照、相机抖动等因素影响,从而诱发目标跟丢问题。以上问题说明单一的视觉跟随方式过于单一化、非智能化,在实际应用上具有较大的局限性。

本文提出了异构低能耗的跟随机器人系统,在低能耗异构计算平台下,将自主导航技术和视觉跟随技术进行融合并应用到机器人上,通过自主导航技术使机器人实现多目标点巡航。在巡航过程中,利用感知模块和跟随算法,实时对行人进行检测与识别。根据识别结果,利用基于马尔可夫状态转移的控制方法实现机器人在导航与目标跟随两种任务下的实时切换。

1 系统概述

1.1 系统总体框架

本系统框架主要由硬件层、算法层和业务层组成,其系统框架如图1所示。

图1 系统框架

作为系统框架的最底层,该系统的硬件框架是基于X86以及(ARM+GPU)的异构计算平台。在此之上,机器人操作系统对底层硬件进行封装,并实现更高层次的计算与逻辑控制。首先,通过ROS将所需的硬件如机器人底盘、激光雷达、相机虚拟化为相应的节点和话题;然后,利用算法层中相应的算法模块(如图2所示)实时订阅传感器的信息来实现机器人的导航与跟随功能;最后,各个算法模块之间通过使用基于马尔可夫状态转移的控制方法来实现实时的业务数据通讯与逻辑处理,以满足机器人灵活的状态切换。

1.2 算法框架

算法框架由3个模块组成:自主导航模块、视觉模块以及智能切换模块。算法框架如图2所示。

图2 算法框架

2 低能耗异构计算平台设计

低能耗是机器人设计的首要核心问题,实现性能与能耗的平衡是其中的重难点。近年来,人工智能技术被广泛应用在机器人上,然而这些技术通常需要高性能、高能耗的硬件支持,这对机器人的续航非常不利。为了平衡计算量与能耗之间的矛盾,由不同架构模组构成的计算平台被越来越多的研究者所采用。

本文采用X86架构的计算模组和(ARM+GPU)的计算模组来实现异构计算平台搭建。其中,CPU(Central Processing Unit)负责处理串行计算任务,GPU负责数据的高密度并行计算任务。考虑到系统所涉及算法的特性,本文将不同类型的算法部署到不同的计算模组中。定位导航算法以及逻辑控制算法具有典型的串行计算特征,因此被部署在基于X86架构的计算模组上。视觉跟随相关算法是基于深度神经网络来实现的,且对实时性要求较高,因此本文将其部署在(ARM+GPU)的计算模组上,以此来提高异构计算平台的执行效率和整体性能。

本文所设计的异构计算平台具有以下两方面优点:(1)硬件层面。该系统是一个低耦合的模块化平台,具有较强的可伸缩性、组合自由性。因此可以灵活地根据算法需要、场景特点进行硬件配置,实现能耗与成本的双优化;(2)软件层面。系统所采用的ROS主-从机框架能够实现软件逻辑的高度紧耦合。向上可实现对算法层的透明计算服务,向下可实现不同架构硬件的同一封装。

3 各模块的算法设计与实现

3.1 自主导航模块

机器人自主导航模块的核心是move_base节点,它是导航过程中运动控制的最终执行机构。全局代价地图、局部代价地图、全路径规划、局部路径规划、恢复策略等都在这里得到具体的实现。其中,路径规划模块是实现机器人能够到达目标点与局部避障的核心算法。

全局规划器以全局静态代价地图作为输入,在执行路径规划时不考虑机器人的机械性能和运动学约束,通过A*算法规划出机器人从当前位置到目标位置的最优路径。A*算法是基于启发式的图搜索算法。通过评估函数f(n)=g(n)+h(n)来衡量节点n的代价,其中g(n)表示从起始点到当前节点n的累计代价,h(n)表示当前节点n到终点的预计代价[10]。具体的算法流程如图3所示。

图3 A*算法流程图

局部路径规划器使用基于图优化的TEB算法,将路径问题变成一个图优化问题。具体流程为:在生成的全局路径上采样路径点,并且优化机器人当前位置与采样路径点之间的全局路径子集。然后, 结合全局静态代价地图与局部动态代价地图,在跟随全局路径的同时考虑机器人的各种约束,从而实现避障。对于差分类型的机器人,TEB将机器人的一系列位姿轨迹模型抽象成带有时间信息的弹性带模型。机器人的第i个位姿状态可表示为Si=[xi,yi,θi],位姿包含位置信息xi、yi和方向角θi,则机器人在map坐标系下的序列可以表示为

C={Si},i=0,1,2,3,…,n;n∈N

(1)

ΔTi是机器人位姿Si和Si+1的过渡时间间隔,用于记录时间序列。

τ={ΔTi},i=0,1,2,3,…,n-1

(2)

TEB的轨迹序列如图4所示。

图4 TEB轨迹序列

将机器人在map坐标系的序列和时间序列合并可得

B:=(C,τ)

(3)

通过加权多目标优化获取最优的路径,即最优的C。

(4)

(5)

式中,B*为最优结果;fk为单个目标函数的权值;f(B)即为考虑各种约束的目标函数,例如非完整运动学约束。其约束条件为:差分机器人在平面运动只有两个自由度,其只能以朝向的方向直线运动或旋转。这种运动学约束使得机器人以由若干弧段组成的平滑轨迹运动。机器人轨迹如图5所示。

图5 运动轨迹

初始Si与运动方向di,i+1的夹角θi与θi+1相等。若βi为机器人在第i段弧段相对于map坐标系的绝对位姿[11],则有

θi=θi+1

(6)

(7)

其中,运动方向向量

(8)

相应的目标函数如式(9)所示。

(9)

3.2 行人目标检测算法

基于深度学习的目标检测算法分为两大类: Two-Stage检测算法(R-CNN)和One-Stage检测算法(YOLO系列)。前者在检测精度上占有优势,后者则在检测速度上占有优势[12]。YOLO的核心思想是将目标检测视为单一的回归问题,直接在输出层回归边框的坐标和所属类别。YOLOv4相较于YOLO以往版本有所更新,其骨干网络采用CSPDarknet53[13],并在CSPDarknet53上增加了深卷积网络的空间金字塔池(Spatial Pyramid Pooling,SPP)块[14],共包含72个卷积层和一个全连接层,采用3×3卷积核。针对不同级别的检测器,挑选PAN作为对不同骨干层进行参数聚合方法,并将PAN快捷连接的相加改为串联[15]。优化方法还包括马赛克更新图像,对图像进行改变扰动后继续训练、采用Mish激活函数和优化损失函数等操作,使得在目标检测中具有更好的表现能力。YOLOv4框架结构如图6所示。

图6 YOLOv4框架

本文采用COCO数据集的行人类训练数据集以及自行采集的行人图片进行训练。从COCO数据集中取出64 115张行人数据,其中59 000张图片用作训练,其余的用作测试。采集的行人图片有1 512张,其中室内场景916张,室外场景596张。本文随机取其中1 200张用作训练,312张用作测试集。采用YOLOv4算法在COCO行人数据集上训练的模型,记为YOLOv4-coco。采用YOLOv4算法在COCO数据集和采集的数据集上联合训练的模型,记为YOLOv4-our。YOLOv4算法的预训练模型记为yolov4。模型评测指标为AP(Average Precision),AP是PR(Precision Recall)曲线下的面积。目标检测实验对比了上述3种模型的AP值,结果如表1所示。

表1 目标检测结果

3.3 视觉目标追踪

随着目标检测技术的不断进步,基于检测的目标跟踪方法(Tracking-by-Detection)已逐渐成为目标跟踪算法研究的主导方向[16]。YOLOv4只能检测出行人或物体在图像中的像素信息(定位)与类别信息(分类),但这些信息量无法满足实际应用需求。本系统需要获得稳定的相机到目标行人的实际距离,但在实际检测中,外界的光照、遮挡以及相机的抖动会影响检测框的稳定性,因此在检测算法的输出加入视觉跟踪算法Deep SORT[17]模块,可使检测结果的输出相对稳定。Deep SORT算法属于基于预测轨迹的跟踪算法,可以根据上下文信息实时对检测目标进行跟踪。本文先获取YOLOv4算法在当前帧中得到的检测框以及卡尔曼滤波算法通过上一帧得到的当前帧的预测框;再计算两者之间的马氏距离和特征量最小的余弦距离,并对两种距离进行加权融合来表达匹配程度;最后通过匈牙利算法实现对多目标的匹配。

3.4 目标行人识别

在这个模块中,本文使用行人重识别算法来实时判断当前通过相机传回来的视频帧中是否存在数据库中待跟随的目标行人。识别算法的具体描述如文献[18]所述。为了能够更好地实现泛化,本文使用由跨域性能较好的IBN-a[19]所加持的ResNet50网络。

与此同时,使用多个数据集联合训练,将Market1501数据集、CUHK03数据集和MSMT17数据集进行了联合训练,然后在没有进行训练的DukeMTMC数据集进行测试,评测指标为mAP(mean Average Precision)和Rank-1。测试结果如表2所示。

表2 行人重识别网络识别结果

3.5 基于马尔可夫状态转移的逻辑控制与切换模块

机器人采用基于马尔可夫状态转移的方法实现自主巡航状态与跟随状态的快速智能化切换,其整体控制逻辑如图7所示。该控制由4个状态环组成,其中环①表示定点避障巡航下的状态转移过程;环②表示通过识别到目标人脸后进入跟踪状态11,在识别到目标跟随人员的背影后又进入跟随状态的状态转移过程;环③表示在目标人员跟丢后的异常处理的状态转移过程;环④表示只识别到目标人脸且未识别到目标人员背影情况下的状态转移过程。

图7 状态转移与切换

4 机器人系统的实验验证

本文的实验机器人主要由表3所示的硬件组成。

表3 系统硬件型号

4.1 异构低能耗计算平台实验

为了验证异构低能耗计算平台在能耗使用上的优势,本文分别在本计算平台(选用Intel NUC(X86)以及Nvidia Xavier(ARM+GPU))与Dell笔记本电脑上进行了机器人自主导航与视觉跟随算法的实验。计算平台相关的软、硬件参数如表4所示,所测得的电压、电流、功率以及CPU、GPU的使用情况如图8和图9所示,其相应的能耗对比如表5所示。

图8 测得的实时功率

图9 实时CPU、GPU使用情况

表4 计算平台参数

表5 实验测得的参数

通过表5可知,在CPU与GPU使用情况一定时,异构低功耗计算平台在运行算法时的总功率大约为38 W,而Dell笔记本电脑的功率却达到154 W,相当于运行相同算法时,本文所提计算平台能降低75%的功耗。该结果也表明,本文所提出的计算平台在降低能耗上可以达到理想的效果。

4.2 跟随机器人系统设计实验

行人重识别算法识别出的目标跟随人员应始终维持在相机视野的中间。利用该思路在验证异构低能耗跟随机器人系统有效性的过程中,来发布控制机器人

运动的指令,从而使机器人能实时跟随目标人移动。机器人利用深度相机实时获取目标行人的距离,为保证跟随的安全性与可靠性,设置目标行人与机器人的最短跟随距离为0.6 m。在如图10所示的实验场景下,通过使用差分机器人Scout Mini进行算法验证。实验的硬件架构如图11所示,计算平台采用Ubuntu18.04操作系统,ROS版本为Melodic。整个实验过程的视频链接为https://v.qq.com/x/page/j3236uf3viq.html。图12为实验过程中单人与多人情况下目标跟随的截图。

图10 实际场景与其对应的栅格地图

图11 实验硬件架构

图12 机器人系统的实验截图

5 结束语

本文设计的跟随机器人系统通过采用异构低能耗的计算平台,在采用相同导航与跟随算法的情况下,所提计算平台能节省75%的能耗,延长了机器人的续航时间。本文利用激光雷达和相机传感器的感知,在基于马尔可夫状态转移的逻辑控制下,实现了定点巡航与跟随两种状态间的智能切换。本文在实际场景中对所提出的系统进行了可行性验证。在今后的研究中,可以尝试缩小与改进视觉跟随模块的模型,提高其检测速度与可移植性,从而强化跟随机器人系统的鲁棒性。

猜你喜欢
行人算法模块
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
毒舌出没,行人避让
Travellng thg World Full—time for Rree
路不为寻找者而设
我是行人
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
必修模块相关知识过关训练