一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于条件变分自动编码器的移动机器人避障方法及系统与流程

2021-10-19 20:43:00 来源:中国专利 TAG:机器人 编码器 条件 智能 方法


1.本发明涉及智能机器人技术领域,尤其是指基于条件变分自动编码器的移动机器人避障方法及系统。


背景技术:

2.人工智能技术的突破与计算机软硬件技术的飞速升级推动了移动型服务机器人的研究与进步。目前,智能服务机器人产业规模不断扩大,应用场景也在更加丰富,相关成熟的产品已经应用到家庭、酒店、医院、机场等多种环境。移动机器人动态避障技术是指机器人在无人干预的条件下,自动根据地图信息和所在环境中运动的行人信息采取相应运动规划防止机器人发生碰撞的过程,该运动规划可以是机器人选择绕行或者原地等待行人通过。相对于工业机器人来说,服务型移动机器人所在的人机共融环境复杂度更高,不确定性更大,对避障策略的实时性要求更高。目前导航框架中的动态避障模块通常将行人视为动态障碍物,如动态窗口法,或者根据特定的交互规则专注于对象的下一时刻运动,如相对速度障碍物算法和最优相对碰撞避免算法。这些方法使得机器人通过被动反应来躲避行人,生成的路径不安全且不自然,无法满足行人的要求。因此希望机器人在导航过程中提前检测到行人,并使用深度学习的方法生成自然连续且让行人感到舒适的路径。
3.以动态窗口算法(dynamic window approach,dwa)为例,简要说明基于机器人速度采样的动态避障算法的一般步骤:
4.步骤一:初始化,配置好机器人移动的最大最小速度、加速度,评价函数权重等;
5.步骤二:判断是否到达目的地。首先判断机器人现在所处的位置是不是目标点,如果不是就执行步骤三,如果是就终止;
6.步骤三:速度采样,基于移动机器人的运动模型计算当前采样的速度范围(动态窗口),如图1所示。其中移动机器人的运动模型大致分为两种:
7.模型一:机器人底盘不是全向移动的,只能前进(x轴线速度v)和旋转(z轴角速度w),如差速底盘,相邻时刻内(毫秒级)运动距离短,可将相邻两点之间的运动轨迹看成直线。机器人下一状态的位置可表示为
8.x=x vδt cos(θ
t
)
9.y=y vδt sin(θ
t
)
10.θ
t
=θ
t
ωδt
11.模型二:全向移动的,有x轴速度vx,y轴速度vy和角速度w,如麦轮车,这种模型中的下一状态位置可表示为
12.x=x v
x
δt cos(θ
t
)

v
y
δt sin(θ
t
)
13.y=y v
x
δt sin(θ
t
) v
y
δt cos(θ
t
)
14.θ
t
=θ
t
wδt
15.在有了底盘运动模型之后,当前底盘的速度(线速度v和角速度w)信息就可以表示出来,在当前速度的基础上设置一个速度范围;
16.步骤四:遍历,遍历所有范围内的线速度和角速度,根据模型模拟一段时间的路径,如图2所示;
17.步骤五:筛选路径,根据评价函数对

中的路径进行打分,其中评价函数g(v,w)由三部分组成,方位角评价函数heading(v,w),即小车与目标之间的角度差,底盘与最近障碍物距离dist(v,w),和轨迹速度大小velocity(v,w)。
18.g(v,ω)=σ(α
·
heading(v,ω) β
·
dist(v,ω) γ
·
velocity(v,ω))
19.这个评价函数的物理意义是使机器人避开障碍物、朝着目标、以较快的速度行驶;
20.步骤六:机器人运动,选取最优解(线速度和角速度),下发给运动底盘,驱动机器人继续移动;重复步骤二~六,直至机器人到达终点。
21.基于机器人速度采样的动态避障算法保证了在行人数量较少和行人运动速度较慢的环境中的可行性,然而,在拥挤的环境中,当前方法会导致机器人采取不自然、短视和不安全的运动。例如,在一个狭窄的走廊里,当机器人遇到迎面走来的行人时,它可能因为行人占据了一大半的通道而无法通行,但是由于导航目的地的吸引力,机器人无法停止路径规划,因此输出非常不连续的轨迹,导致机器人停滞,旋转或摇晃,从而影响行人的正常通行。
22.如图3所示,人机共融工作环境受导航目标点的引导,当前动态避障策略会根据速度采样形成路径1所示的路径规划结果,然而路径1需要通过正在行走的人群,在真实的导航环境中行人的移动速度可能会很快,采取该路径大概率会与行人运动产生冲突,甚至导致导航任务的失败。而路径2虽然距离长,但是远离环境中的行人,机器人的运动更加安全且更容易被行人接受,由于当前动态避障算法无法将行人与普通障碍物进行区分,所以无法生成满足行人需求的路径。
23.如前所述,当前动态避障算法仅仅将行人当成动态障碍物,生成的路径不自然,忽略导航的安全性和行人的心理感受。


技术实现要素:

24.为此,本发明所要解决的技术问题在于克服现有技术中动态避障算法仅仅将行人当成动态障碍物,生成的路径不自然,忽略导航的安全性和行人的心理感受的问题。
25.为解决上述技术问题,本发明提供了基于条件变分自动编码器的移动机器人避障方法,包括如下步骤:
26.步骤s1:初始化机器人的行人避障区域,以机器人为中心构建栅格矩阵并获取障碍点位置;
27.步骤s2:机器人根据栅格矩阵从起点向目标点进行导航并移动;
28.步骤s3:机器人对行人进行检测并获取行人位置信息和行人属性信息;
29.步骤s4:根据行人的位置判断行人是否在避障范围内,若否,则返回步骤s2,若是,则执行步骤s5;
30.步骤s5:根据行人位置信息,将行人的位置用坐标表示并存入行人位置数组中,根据行人的属性,将行人的属性用变量表示并存入行人属性数组,将障碍点位置、机器人的起点位置和目标点位置、行人位置数组、行人属性数组作为输入来训练条件变分自动编码器,生成坐标形式的临时避障点;
31.步骤s6:根据临时避障点筛选代价最低的最优临时避障点;
32.步骤s7:机器人根据最优临时避障点再次进行导航;
33.步骤s8:判断机器人是否到达最优临时避障点,若未到达,则机器人继续移动直至到达最优临时避障点,若到达,继续判断机器人是否到达目标点,若否则返回步骤s3,若是,则认为机器人到达目标点。
34.在本发明的一个实施例中,步骤s3中,所述进行行人检测并获取行人位置信息和行人属性信息的方法包括:
35.步骤s31:通过机器人搭载的深度相机实时捕获周围图像;
36.步骤s32:应用行人检测算法对周围图像内的行人进行检测,获取行人在像素坐标系下的位置,应用行人属性识别算法对周围图像内的行人进行识别,获取行人属性信息;
37.步骤s33:将行人在像素坐标系下的位置通过坐标变换,输出行人在全局坐标系下的位置;
38.步骤s34:根据行人在全局坐标系下的位置,通过行人移动的距离与经过的时间,计算出行人的移动速度和移动方向并根据恒速模型来预测出行人下一时刻的位置。
39.在本发明的一个实施例中,步骤s4中,所述根据行人的位置判断行人是否在避障范围内的方法包括:
40.步骤s41:根据行人在全局坐标系下的位置,计算其在横坐标和纵坐标下分别到机器人所在位置的距离d
x
和d
y

41.步骤s42:判断d
x
和d
y
是否都小于行人避障区域边长的一半,所述行人避障区域是在栅格地图中以机器人为中心的正方形区域,若是,则表示行人在避障区域内,若否,则表示行人不在避障区域内。
42.在本发明的一个实施例中,步骤s5中,所述根据行人位置信息,将行人的位置用坐标表示并存入行人位置数组中的方法为:将行人当前位置坐标以及接下来两个时刻的位置坐标分别通过全局到局部的坐标转换表示出来,并存入一个数组中,前两个数分别表示当时行人的x坐标和y坐标,后面四个数表示行人下两个时刻的坐标。
43.在本发明的一个实施例中,步骤s5中,所述根据行人的属性,将行人的属性用变量表示并存入行人属性数组的方法为:将行人的属性用四个0/1变量表示并存入数组,所述四个0/1变量中,第一个数值表示行人的性别,0表示男性,1表示女性;第二个数值表示体宽,0表示窄,1表示宽;第三个数值表示年纪,0表示中段年龄,1表示老人或小孩;第四个数值表示情绪,0表示开心或正常,1表示负面情绪。
44.在本发明的一个实施例中,步骤s6中,所述根据临时避障点筛选代价最低的最优临时避障点的方法包括:根据临时避障点到行人、最近障碍物以及原始目标点的距离设计代价函数,根据代价函数计算每个临时避障点的代价值并选取代价最低的临时避障点作为最优临时避障点。
45.在本发明的一个实施例中,所述代价函数为:
[0046][0047]
其中x
temp
表示临时避障点,x
pi
表示第i个行人的坐标,x
obs
表示最近障碍物的坐标,x
goal
表示原始目标点的坐标;ω1、ω2、ω3为权重。
[0048]
在本发明的一个实施例中,步骤s7中,所述机器人接收最优临时避障点进行导航的方法包括:最优临时避障点以ros中话题的形式发布给机器人,由机器人打断原来的导航,机器人优先向最优临时避障点的导航。
[0049]
在本发明的一个实施例中,步骤s8中,所述判断机器人是否到达最优临时避障点的方法包括:通过ros获取机器人的实时位置坐标,计算机器人的实时位置坐标与最优临时避障点的坐标的距离,若距离小于等于预设阈值,则表示已经到达,若大于预设阈值,则表示未到达。
[0050]
本发明还提供基于条件变分自动编码器的移动机器人避障系统,包括:
[0051]
初始化模块,用于初始化机器人的行人避障区域;
[0052]
导航模块,用于机器人接收原始目标点并进行导航;
[0053]
行人检测模块,用于进行行人检测并输出行人的位置和行人的属性;
[0054]
避障范围判断模块,用于根据行人的位置判断行人是否在避障范围内;
[0055]
条件变分自动编码器训练模块,用于生成坐标形式的临时避障点;
[0056]
临时避障点筛选模块,用于根据临时避障点筛选代价最低的最优临时避障点;
[0057]
接收最优临时避障点模块,用于机器人接收最优临时避障点进行导航;
[0058]
最优临时避障点到达判断模块,用于判断机器人是否到达最优临时避障点。
[0059]
本发明的上述技术方案相比现有技术具有以下优点:
[0060]
本发明全面考虑行人信息,将行人位置信息(位置、速度、方向)、行人属性信息(性别、体宽、年龄、情绪)、静态环境信息(障碍物位置)和机器人导航信息(起点、终点)编码到深度学习模型(条件变分自动编码器)中训练,在保证可以根据新的导航环境生成临时避障点,引导路径规划器生成满足行人舒适度路径的同时,当机器人面对不同性别、体宽、年龄、情绪的行人时会采取不同的避障策略;
[0061]
本发明将深度学习与导航动态避障相结合,训练出了有行人注意力的模型,在机器人识别到将会引起导航冲突的行人后,综合考虑行人的位置和属性,生成临时避障点,引导机器人规划出满足行人舒适度的路径,减少了由于环境的不确定性引起的机器人迷失、碰撞等问题,增强了移动机器人导航过程中的社会意识。
附图说明
[0062]
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
[0063]
图1是底盘运动模型图。
[0064]
图2是模拟路径图。
[0065]
图3是环境不确定性对于路径规划的影响图。
[0066]
图4为本发明的方法流程图。
[0067]
图5为模型生成临时避障点的示意图。
[0068]
图6为筛选临时避障点的示意图。
[0069]
图7为场景一由临时避障点引导的路径和原始路径的示意图。
[0070]
图8为本发明完成一次任务全部过程的示意图。
具体实施方式
[0071]
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0072]
实施例一
[0073]
参照图1所示,在本发明的其中一种实施方式中提供一种基于条件变分自动编码器的移动机器人避障方法,包括如下步骤:
[0074]
步骤s1:初始化机器人的行人避障区域,以机器人为中心构建栅格矩阵并获取障碍点位置;
[0075]
步骤s2:机器人根据栅格矩阵从起点向目标点进行导航并移动;
[0076]
步骤s3:机器人对行人进行检测并获取行人位置信息和行人属性信息;
[0077]
步骤s4:根据行人的位置判断行人是否在避障范围内,若否,则返回步骤s2,若是,则执行步骤s5;
[0078]
步骤s5:输入步骤s3中行人外部信息(位置、速度、方向)、行人内部信息(性别、体宽、年龄、情绪)、二维栅格地图形式的静态环境信息(障碍物位置)和步骤s2中机器人导航任务信息(起点、终点)到深度学习模型中,输出一组临时避障点;如图2所示,本实施例中输出的临时避障点个数为5;
[0079]
步骤s6:根据临时避障点筛选代价最低的最优临时避障点;如图3所示,通过设计的代价函数计算每个临时避障点的代价值,选取代价最低的作为最终的临时避障点。
[0080]
步骤s7:机器人根据最优临时避障点再次进行导航;图4中的路径1为我们通过临时避障点引导机器人产生的路径,路径2为用原来的方法生成的路径;
[0081]
步骤s8:判断机器人是否到达最优临时避障点,若未到达,则机器人继续移动直至最优临时避障点,若到达,则返回步骤s3,直至机器人到达目标点。
[0082]
图5是整个方法完成一次任务的全部过程,其中路径1为我们通过临时避障点引导机器人产生的路径,路径2为用原来的方法生成的路径;
[0083]
具体的,所述步骤s1中的行人避障区域是在栅格地图中以机器人为中心的正方形区域,大小可能根据地图分辨率以及用户希望机器人对行人的敏感程度来调节。行人避障区域主要是为了防止行人在离机器人较远时模型运行,导致避障不实时、效果不好的情况。
[0084]
具体的,所述步骤s2中导航所使用的算法可以是大部分路径规划算法,如a*算法和快速搜索随机树算法(rrt),本实施例采用的路径规划算法是快速搜索随机树算法。
[0085]
具体的,所述步骤s3中的行人信息捕获包括以下步骤:
[0086]
步骤s31:通过机器人搭载的深度相机实时捕获周围图像;
[0087]
步骤s32:应用行人检测算法对周围图像内的行人进行检测,输出行人在像素坐标系下的位置;
[0088]
步骤s33:根据摄像机标定结果,将输出行人在像素坐标系下的位置通过坐标变换,输出行人在全局坐标系下的位置;
[0089]
步骤s34:将步骤s33中t时刻内行人在全局坐标系下的位置变化进行计算,通过行人移动的距离与经过的时间,计算出行人的移动速度和移动方向,并根据恒速模型来预测出行人下一时刻的位置,本实施例中t的大小设置为1s;
[0090]
步骤s35:通过摄像机捕获行人图像,并应用行人属性识别算法,输出行人的属性。
[0091]
具体的,所述步骤s4中的行人位置判断包括以下步骤:
[0092]
步骤s41:根据步骤s3中输出的行人全局坐标系下的位置,计算它在横坐标和纵坐标下分别到机器人所在位置的距离d
x
和d
y

[0093]
步骤s42:判断d
x
和d
y
是否都小于行人避障区域边长l的一半,如果都小于则表示行人出现在避障区域内否则没有出现,本实施例中l的大小设置为11;
[0094]
具体的,所述步骤s5中的条件变分自动编码器是一种新的生成模型,主要分为编码和解码两个部分,我们把导航任务以及机器人、行人信息作为条件y,临时避障点作为标签x,编码部分将具有条件y的标签x压缩成低维空间的潜变量z;解码部分根据条件y将潜变量z重构成新的标签z’。条件变分自动编码器的功能就是形成一个条件y到标签x的映射关系。
[0095]
具体的,所述步骤s5中的条件变分自动编码器的编码部分的网络结构,其中编码部分由两个全连接层网络和一个dropout层网络组成,本实施例中第一个全连接层的神经元的数量为512个,dropout层连接在第一个全连接层之后,它保留了50%的节点。第二个全连接层也有512个神经元。编码器的输入为样本x和条件变量y,输出为潜在变量z,编码网络的参数为编码的过程可表示为其中解码网络具有与编码网络相同的网络结构,两个全连接层和一个dropout层。dropout层的设置是为了防止模型的过度拟合,解码器的输入为编码器中的潜在变量z和条件y,输出是新的重构样本z’,解码网络的参数为θ,解码过程可表示为p
θ
(x|z,y);整个网络的训练目标是最大化似然函数的下界evidence lower bound(elbo)
[0096][0097]
其中第一项kl表示相对熵kullback

leibler divergence,第二项是重建损失,θ和为参数向量。
[0098]
具体的,所述步骤s5中运行训练好的条件变分自动编码器包括以下步骤:
[0099]
步骤s51:初始化以机器人为中心的行人避障区域,以机器人为中心构建一个栅格矩阵,其中0表示没有障碍物,1表示有障碍物;本实施例中栅格矩阵的大小为11*11;
[0100]
步骤s52:将行人当前位置坐标以及接下来两个时刻t1和t2的位置坐标分别通过全局到局部的坐标转换(将行人在整个地图中的位置转换到行人避障区域内的位置。)表示出来,并存入行人位置数组中;本实施例中数组的前两个数分别表示当时行人的x坐标和y坐标,后面四个数表示行人下两个时刻的坐标,本实施例中t1取1s,t2取2s;
[0101]
步骤s53:将行人的属性用四个0/1变量表示并存入行人属性数组,其中第一个数值表示行人的性别,0表示男性,1表示女性;第二个数值表示体宽,0表示窄,1表示宽;第三个数值表示年纪,0表示中段年龄,1表示老人或小孩;第四个数值表示情绪,0表示开心或正常,1表示负面情绪;
[0102]
根据行人心理学研究,女性会比男性对行人空间要求更高,体宽较宽的会比窄的行人对空间的要求更高,老人和小孩会比中段年龄的用户对空间要求更高,有负面情绪的行人会比正常开心的行人对空间的要求高;所以模型会在面对空间要求高的行人时,生成距离行人更远的临时避障点;
[0103]
步骤s54:将上述表示环境信息的栅格矩阵、行人位置数组和行人属性数组以及导
航任务的起点和终点输入到训练好的模型中;生成坐标形式的临时避障点x
temp

[0104]
具体的,所述步骤s6中的代价函数时由临时避障点到行人、最近障碍物以及原始目标点的距离分别赋予权值ω1、ω2、ω3计算的,代价函数函数为:
[0105][0106]
其中x
pi
表示第i个行人的坐标,x
obs
表示最近障碍物的坐标,x
goal
表示原始目标点的坐标;通过比较所有临时避障点的代价,将代价最小的点作为最优临时避障点x
k
;ω1、ω2、ω3为权重,本实施例中ω1设置为4,ω2设置为

2,ω3设置为2.5。
[0107]
具体的,所述步骤s7中的最优临时避障点以ros中话题的形式发布给机器人,由机器人打断原来的导航,机器人优先向最优临时避障点的导航;
[0108]
具体的,所述步骤s8中判断机器人是否到达临时避障点,通过ros订阅机器人的实时位置坐标并与最优临时避障点坐标相比较,如果两坐标距离小于等于一个阈值则表示已经到达;本实施例中设置的坐标差阈值为0.3。
[0109]
实施例二
[0110]
基于同一发明构思,本实施例提供了基于条件变分自动编码器的移动机器人避障系统,其解决问题的原理与所述基于条件变分自动编码器的移动机器人避障方法类似,重复之处不再赘述。
[0111]
本实施例提供基于条件变分自动编码器的移动机器人避障系统,包括:
[0112]
初始化模块,用于初始化机器人的行人避障区域;
[0113]
导航模块,用于机器人接收原始目标点并进行导航;
[0114]
行人检测模块,用于进行行人检测并输出行人的位置和行人的属性;
[0115]
避障范围判断模块,用于根据行人的位置判断行人是否在避障范围内;
[0116]
条件变分自动编码器训练模块,用于生成坐标形式的临时避障点;
[0117]
临时避障点筛选模块,用于根据临时避障点筛选代价最低的最优临时避障点;
[0118]
接收最优临时避障点模块,用于机器人接收最优临时避障点进行导航;
[0119]
最优临时避障点到达判断模块,用于判断机器人是否到达最优临时避障点。
[0120]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0121]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0122]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0123]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0124]
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜