发明内容
有鉴于此,本发明提出了一种基于UWB和激光雷达混合定位的行人跟随系统及方法,满足复杂环境下行人的精确跟随以及定位,采用UWB对行人进行初步的定位与识别,然后利用激光雷达对行人进行精确的定位与识别,最终使机器人能够无碰撞地精确地跟随行人,精度更高,稳定性更强。
本发明的技术方案是这样实现的:本发明提供了一种基于UWB和激光雷达混合定位的行人跟随系统,其包括至少三个UWB基站、UWB标签、数据处理装置和机器人运动控制装置,还包括激光雷达,其中,
UWB标签置于跟随目标上,接收从UWB基站发来的UWB信号;
UWB基站发送UWB信号,机器人上固定至少三个位置成三角形的UWB基站;
激光雷达,测量跟随目标与机器人之间的距离及角度,测量机器人周围环境信息;
数据处理装置,通过UWB基站和UWB标签计算跟随目标与机器人之间的UWB距离及UWB角度,并根据激光雷达测量的跟随目标与机器人之间的距离及角度,对UWB距离及UWB角度进行校正,并生成一条参考路径;根据激光雷达测量的机器人周围环境信息,在参考路径的基础上生成一条无碰撞的最终路径;针对最终路径生成速度控制指令,并对生成的速度控制指令进行滤波处理,得到平滑的速度控制指令;
机器人运动控制装置,将数据处理装置处理的速度控制指令转化为运动执行机构的执行指令。
第二方面,本发明提供了一种基于UWB和激光雷达混合定位的行人跟随方法,包括以下步骤,
S1,通过UWB基站向UWB标签发送UWB信号,计算跟随目标与机器人之间的UWB距离及UWB角度;
S2,通过激光雷达测量跟随目标与机器人之间的距离及角度,对UWB距离及UWB角度进行校正,假设机器人周围无障碍物,生成一条最近的参考路径;
S3,通过激光雷达测量机器人周围环境信息,创建局部地图,然后根据校正后的机器人相对于跟随目标的距离及角度,在参考路径的基础上生成一条无碰撞的最终路径;
S4,针对最终路径生成速度控制指令,并对生成的速度控制指令进行滤波处理,得到平滑的速度控制指令;
S5,机器人运动控制装置将平滑的速度控制指令转化为运动执行机构的执行指令。
在以上技术方案的基础上,优选的,所述步骤S1中,根据三角测量原理测量机器人相对于UWB标签的UWB距离S1及UWB角度θ1,得到UWB标签相对于机器人的位置(S1,θ1)。
进一步优选的,所述步骤S2中,通过激光雷达采集一帧激光雷达数据然后根据UWB角度θ1确定跟随目标在激光雷达测量范围内的大小(θ1-Δ/2,θ1+Δ/2),其中,Δ为跟随目标的宽度对应的激光雷达的测量范围;然后,在(θ1-Δ/2,θ1+Δ/2)范围内搜索跟随目标相对于机器人的位置,加入测量到的n个激光雷达的点,在这n个点内首先去除在范围(S1-Δs,S1+Δs)内的干扰点,其中,其中S1为UWB距离,Δs为2倍人体腿部的最大宽度,得n1个点,然后求跟随目标到激光雷达的平均距离并将作为机器人与跟随目标校正后的距离,进一步计算机器人与跟随目标校正后的角度其中Δθ为激光雷达的分辨率,则最终跟随目标在机器人坐标下的位置为
更进一步优选的,所述步骤S2中,参考路径为过机器人坐标系的原点指向点的直线,其控制线速度和角速度为其中K1为距离与线速度的比例关系,K2为机器人角速度与机器人正前方和跟随目标测量宽度的法线角度比例关系。
在以上技术方案的基础上,优选的,所述步骤S3中,采用动态窗口法来进行机器人行进路径上的避障,从而得到最终路径,动态窗口法包括以下步骤,
S3-1,将激光雷达搜索空间约束为机器人可控的控制指令空间;
S3-2,使用目标函数对搜索空间内的命令进行评价,选择使目标函数最大化的指令作为最优指令。
进一步优选的,所述步骤S3-1中,采用以下公式确定机器人速度范围,
θt=θt+ωΔt
Vm={v∈[vmin,vmax],ω∈[ωmin,ωmax]}
其中,r为机器人做圆弧运动的半径;v为机器人线速度;ω为机器人旋转速度;
机器人坐标为(x,y),θt为机器人在t时刻的航向角,t为当前时刻;
Vm为机器人起始速度空间,Vd为机器人可达速度空间,vc,ωc是机器人的当前速度,为机器人的最大减速度,为机器人的最大加速度,为机器人的最大角加速度,为机器人的最大角减速度,Va为机器人不撞击障碍物的可行速度空间,dist(v,ω)为速度(v,ω)对应轨迹距离障碍物最近的距离。
在以上技术方案的基础上,优选的,所述步骤S3-2中,采用以下公式对每条轨迹进行评价,
其中,H(v,ω)用来评价机器人在当前设定的采样速度下,达到模拟轨迹末端时的朝向和目标之间的角度差;
G(v,ω)是轨迹评价函数,偏差越小,评价值越高,距离越大,评价值越高,速度越大,评价值越高;
D(v,ω)代表机器人在当前轨迹上与最近障碍物之间的距离;
V(v,ω)用来评价当前轨迹的速度大小,α,β,γ是加权系数;
n为采样的所有轨迹,i为待评价的当前轨迹;
h(i)为机器人在第i条轨迹末端的朝向与目标之间的角度差距,d(i)为机器人在第i条轨迹上与最近障碍物之间的距离,v(i)为机器人在第i条轨迹上的速度。
在以上技术方案的基础上,优选的,所述步骤S4中,采用Kalman滤波对生成的速度控制指令进行滤波处理,预先建立的信号与噪声的状态空间模型,执行过程中,根据现时刻的观测值和前一时刻地估计值来更新对状态变量的估计,达到线性最优效果。
本发明的基于UWB和激光雷达混合定位的行人跟随系统方法相对于现有技术具有以下有益效果:
(1)采用UWB对行人进行初步的定位与识别,然后利用激光雷达对行人进行精确的定位与识别,有效避障,满足复杂环境下行人的精确跟随以及定位;
(2)采用动态窗口法来进行避障,精准度更高;
(3)采用Kalman滤波对机器人的运动进行滤波处理,稳定性更强。
具体实施方式
下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
如图1所示,本发明的UWB和激光雷达混合定位的行人跟随系统,其包括激光雷达1、至少三个UWB基站2、UWB标签3、数据处理装置4和机器人运动控制装置5。
UWB标签3置于跟随目标上,接收从UWB基站2发来的UWB信号;
UWB基站2发送UWB信号,机器人上固定至少三个位置成三角形的UWB基站2;
激光雷达1,测量跟随目标与机器人之间的距离及角度,测量机器人周围环境信息;
数据处理装置4,通过UWB基站2和UWB标签3计算跟随目标与机器人之间的UWB距离及UWB角度,并根据激光雷达1测量的跟随目标与机器人之间的距离及角度,对UWB距离及UWB角度进行校正,并生成一条参考路径;根据激光雷达1测量的机器人周围环境信息,在参考路径的基础上生成一条无碰撞的最终路径;针对最终路径生成速度控制指令,并对生成的速度控制指令进行滤波处理,得到平滑的速度控制指令;
机器人运动控制装置5,将数据处理装置4处理的速度控制指令转化为运动执行机构的执行指令。
本发明的基于UWB和激光雷达混合定位的行人跟随方法,包括以下步骤,
S1,通过UWB基站2向UWB标签3发送UWB信号,计算跟随目标与机器人之间的UWB距离及UWB角度。
具体的,根据三角测量原理测量机器人相对于UWB标签3的UWB距离S1及UWB角度θ1,得到UWB标签3相对于机器人的位置(S1,θ1)。
三角测量原理:双向飞行时间法,UWB基站2在其时间戳上的Ta1发射请求性质的脉冲信号,被UWB标签3在Ta2时刻接收,UWB标签3在Tb1时刻发射一个响应性质的信号,被UWB基站2在自己的时间戳Tb2时刻接收。依次可以计算出脉冲信号在UWB基站2和UWB标签3之间的飞行时间,从而确定飞行距离S。S=C×[(Ta2-Ta1)-(Tb2-Tb1)](C为光速),然后通过在机器人上多个不同位置布置UWB基站2就可以通过三角测量原理测量出UWB标签3相对于机器人的位置(S1,θ1)。
S2,通过激光雷达1测量跟随目标与机器人之间的距离及角度,对UWB距离及UWB角度进行校正,假设机器人周围无障碍物,生成一条最近的参考路径。
通过激光雷达1采集一帧激光雷达数据然后根据θ1确定跟随目标在激光雷达测量范围内的大小(θ1-Δ/2,θ1+Δ/2),其中,Δ为跟随目标的宽度对应的激光雷达1的测量范围;然后在(θ1-Δ/2,θ1+Δ/2)范围内搜索跟随目标相对于机器人的位置,加入测量到的n个激光雷达1的点,在这n个点内首先去除在范围(S1-Δs,S1+Δs)内的干扰点,其中,其中S1为UWB距离,Δs为2倍人体腿部的最大宽度,得n1个点,然后求跟随目标到激光雷达1的平均距离并将作为机器人与跟随目标校正后的距离,进一步计算机器人与跟随目标校正后的角度其中Δθ为激光雷达1的分辨率,则最终跟随目标在机器人坐标下的位置为
参考路径为过机器人坐标系的原点指向点的直线,其控制线速度和角速度为其中K1为距离与线速度的比例关系,K2为机器人角速度与机器人正前方和跟随目标测量宽度的法线角度比例关系。
S3,通过激光雷达1测量机器人周围环境信息,创建局部地图,然后根据校正后的机器人相对于跟随目标的距离及角度,在参考路径的基础上生成一条无碰撞的最终路径。
机器人在跟踪目标的,可能会出现与目标不相关的的障碍物,会影响机器人跟踪目标,本发明采用动态窗口法(dwa)来进行避障,动态窗口法是直接在控制指令空间内搜索使目标函数取最大值的最佳控制指令的自主避障算法。该方法可概括为两步:一是将激光雷达1搜索空间约束为机器人可控的控制指令空间;二是使用目标函数对搜索空间内的命令进行评价,选择使目标函数最大化的指令作为最优指令。具体原理如下:
假设机器人不是全向运动机器人,只能进行前进何旋转,一对(v,ω)就代表一个圆弧轨迹,它做圆弧运动的半径为,
其中,r为机器人做圆弧运动的半径;v为机器人线速度;ω为机器人旋转速度。
当旋转速度ω不等于0时,机器人坐标为,
θtt=θt+ωΔt
其中,机器人坐标为(x,y),θt为机器人在t时刻的航向角,t为当前时刻;
根据速度就可以推算出轨迹,然后评价这些轨迹。
移动机器人受自身的运动学约束,即最大速度和最小速度的的限制:
Vm={v∈[vmin,vmax],ω∈[ωmin,ωmax]}
其中,Vm为机器人起始速度空间。
由于机器人的电机力矩有限,存在最大的加减速限制,因此移动机器人在一个计算周期内,存在一个动态窗口,在该窗口内的速度是机器人能够实际达到的速度:
Vd为机器人可达速度空间,vc,ωc是机器人的当前速度,为机器人的最大减速度,为机器人的最大加速度,为机器人的最大角加速度,为机器人的最大角减速度;
还考虑机器人能在碰到障碍物之前能停下来,因此在最大减速度条件下,速度有一个范围:
其中,Va为机器人不撞击障碍物的可行速度空间,dist(v,ω)为速度(v,ω)对应轨迹距离障碍物最近的距离。
在采样的速度组中,有若干组轨迹是可行的,因此采用评价函数的方式为每条轨迹进行评价。评价函数为:
H(v,ω)是用来评价机器人在当前设定的采样速度下,达到模拟轨迹末端时的朝向和目标之间的角度差;
G(v,ω)是轨迹评价函数,偏差越小,评价值越高,距离越大,评价值越高,速度越大,评价值越高;
D(v,ω)代表机器人在当前轨迹上与最近障碍物之间的距离,如果在这条轨迹上没有障碍物,那就将其设定为一个常数;
V(v,ω)用来评价当前轨迹的速度大小,α,β,γ是加权系数;
为了避免出现某一项在评价函数中太占优势,对评价函数的每一项进行归一化处理:
其中,n为采样的所有轨迹,i为待评价的当前轨迹;
h(i)为机器人在第i条轨迹末端的朝向与目标之间的角度差距,d(i)为机器人在第i条轨迹上与最近障碍物之间的距离,v(i)为机器人在第i条轨迹上的速度。
每一个计算周期内,通过激光雷达1获取机器人周围的障碍物信息和目标信息,得到可行的轨迹,并通过计算每条轨迹对应的评价函数的值,使评价函数取得最大值相应的轨迹所对应的(v,ω)下一周期速度和角速度的给定值。
S4,针对最终路径生成速度控制指令,并对生成的速度控制指令进行滤波处理,得到平滑的速度控制指令。
机器人在跟踪目标人运动时候,速度会受噪声影响出现抖动现象,同时还有测量误差,这里使用Kalman滤波对机器人运动进行滤波。Kalman滤波采用的是递归算法,预先建立的信号与噪声的状态空间模型,执行过程中,根据现时刻的观测值和前一时刻地估计值来更新对状态变量的估计,达到线性最优效果。该算法简洁明了,并且只用到了前一时刻的数据,所以卡尔曼滤波适合与计算机实时运算。滤波原理如下:
系统的运动状态方程
X(k)=AX(k-1)+Wk
其中,Wk是过程噪声量,此种噪声为高斯白噪声,符合wk~(0,Q(k))。
X(k)=[lk,vl.k,θk,vθ.k]T状态变量分别为跟随目标k时刻的长度、线速度、角度、角速度。
状态转移矩阵:为系统的控制周期。
系统的观测方程为:
Z(k)=HX(k)+υk
其中,υk是观测的噪声向量,此种噪声为高斯白噪声符合υk~(0,R(k))。
观测矩阵:
假如我们已知系统k-1时刻的系统的状态X(k-1|k-1)和其对应的协方差P(k-1|k-1),可以预测下一时刻的系统的状态X(k|k-1)和其对应的协方差P(k|k-1)
预测方程为
X(k|k-1)=AX(k-1|k-1)
P(k|k-1)=AP(k-1|k-1)AT+Q (1)
然后我们可以得到k时刻的观测值Z(k),并由预测值X(k|k-1)和其对应的协方差P(k|k-1)得到X(k|k)和其对应的协方差P(k|k)。其中X(k|k)是对系统真实值的估计值。
令卡尔曼增益
Kg(k)=P(k|k-1)HT(HP(k|k-1)HT+R)-1 (2)
那么可以更新X(k|k),P(k|k),更新方程如下:
X(k|k)=c+Kg(k)[Z(k)-HX(k|k-1)]
P(k|k)=[I-Kg(k)H]·P(k|k-1) (3)
在每个的k时刻我们通过使用人体的测量位置Z(k)和(2)(3)更新卡尔曼方程,并得到人体位置的估计值X(k|k),然后根据式(1)得到预测值X(k+1|k),并以此点作为预测值。如此反复循环达到滤波效果。
S5,机器人运动控制装置5将平滑的速度控制指令转化为运动执行机构的执行指令。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。