机器人跟踪方法、装置、设备及计算机可读存储介质
技术领域
本发明涉及智能机器人操控领域,特别涉及一种机器人跟踪方法、装置、设备及计算机可读存储介质。
背景技术
目前,智能机器人已经被应用在海洋探测、安防、医疗等各个领域,给科技发展和人们的生活带来了极大的便利,因此有必要对机器人进行实时跟踪。然而,当智能机器人在水下或室内工作时,无法使用卫星定位。视觉导航的方法具有获取信息完整,探测范围宽等优点,在机器人导航中占有重要地位,缺点是视觉图像处理时间长,实时性较差。因此行业内学者开展了基于射频识别(RFID)技术的移动机器人定位的研究,需要指出的是,上述无线定位技术的精度为米级,不能满足室内机器人高精度导航定位的要求利用智能机器人发射超声波。通过多超声波阵列接收机器人发射的声信号,经过处理获得机器人的观测位置,最后经跟踪算法滤波得到机器人的位置估计,此方法满足实时性的同时也具有较高的跟踪精度。
常见的跟踪算法主要有扩展卡尔曼滤波、无迹卡尔曼滤波、粒子滤波等,这些算法在目标运动模型已知且运动状态基本不变的情况下,具有良好的跟踪效果。然而在实际目标跟踪过程中,运动模型往往是未知的,机器人的运动状态也经常改变,上述算法的跟踪效果就会下降,甚至发散。相比于单超声波接收阵列,多阵列跟踪系统能够获取目标更多的运动状态信息,利用相应融合算法提高跟踪精度。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种机器人跟踪方法及装置,提高在室内跟踪机器人时的跟踪精度,跟踪误差小、计算量相对较低,从而实现智能机器人状态未知且多变的情况下也能对其进行稳定有效的跟踪,减少误跟或跟丢的现象发生。所述技术方案如下:
一方面,提供了一种机器人跟踪方法,所述方法包括:
在跟踪的每个时刻,获取至少两个超声波阵列对机器人的观测数据;
利用预设扩维IMM-EKF算法估计所述每个时刻机器人运动状态,通过与k时刻m种运动状态对应的m种运动模型相匹配的m个扩维EKF滤波器,分别获取k时刻每种运动模型下机器人对应的状态估计,获得m个状态,对所述m个状态进行加权计算得到k时刻机器人状态估计结果,其中所述每个时刻用k时刻表示,k、m均为大于0的整数。
进一步地,在跟踪的每个时刻,获取至少两个超声波阵列对机器人的观测数据,包括:
在k时刻,获取至少两个超声波阵列对机器人的观测数据
其中k、n均为大于0的整数,
均为所述至少两个超声波阵列测得的机器人角度、距离数据的向量。
进一步地,利用预设扩维IMM-EKF算法估计所述每个时刻机器人运动状态,通过与k时刻m种运动状态对应的m种运动模型相匹配的m个扩维EKF滤波器,分别获取k时刻每种运动模型下机器人的对应的状态估计,获得m个状态,对所述m个状态进行加权计算得到k时刻机器人状态估计结果,包括:
机器人跟踪系统建立步骤:建立所述机器人跟踪系统,所述机器人跟踪系统包括机器人的运动方程和观测方程,如下表示:
Cij=P(Mk=Mj|Mk-1=Mi);
其中i,j=1,2...m表示模型数量,n=1,2……n表示超声波阵列数量,m、n均为大于等于1的整数,k∈N表示时刻,C
ij表示k-1时刻目标从模型i转移到k时刻的模型j的概率,
表示k时刻第i个模型状态转移矩阵,
表示,k时刻第i个运动模型下的目标状态,
表示,k时刻第n个阵列的观测矩阵,
表示k时刻第n个阵列接收到的目标状态观测。
表示模型i的过程噪声,
表示为第n个阵列的观测噪声,两种噪声均假设为零均值,协方差分别为
的高斯白噪声;
模型输入交互步骤:设
为k-1时刻的扩维EKF滤波器i的状态估计,
为相应的协方差矩阵估计,
为k-1时刻模型i的概率,交互式计算后,扩维EKF滤波器j在k时刻的输入计算公式如下:
子模型滤波步骤:在各个扩维EKF滤波器计算得到相应的输入
利用获得量测
进行各个模型下对应的状态估计更新;
模型概率更新步骤:对各个模型i=1,2,...m计算模型概率,计算公式如下:
估计融合输出步骤:根据各个模型的更新概率和状态估计以及估计协方差矩阵估计,计算出当前时刻目标的状态估计和估计协方差矩阵估计,计算公式如下:
xk|k表示k时刻目标状态估计,Pk|k表示k时刻目标状态协方差矩阵估计。
进一步地,所述子模型滤波步骤包括:
状态预测子步骤:对于各个模型i=1,2...m,分别计算相应的预测状态和预测协方差矩阵,计算公式如下:
数据融合子步骤:利用扩维算法进行数据融合,各个相应变量公式如下:
对应于模型i=1,2...m,各自的量测预测残差和量测协方差计算公式如下:
同时计算与模型i对应的似然函数,在假定服从高斯分布的条件下,似然函数如下:
滤波更新子步骤:对应于模型i=1,2,...m,分别计算各自的滤波增益,状态估计更新,以及误差协方差矩阵,计算公式如下:
另一方面,提供了一种机器人跟踪装置,所述装置包括:
数据获取模块,用于:在跟踪的每个时刻,获取至少两个超声波阵列对机器人的观测数据;
计算模块,用于:利用预设扩维IMM-EKF算法估计所述每个时刻机器人运动状态,通过与k时刻m种运动状态对应的m种运动模型相匹配的m个扩维EKF滤波器,分别获取k时刻每种运动模型下机器人对应的状态估计,获得m个状态,对所述m个状态进行加权计算得到k时刻状态估计结果,其中所述每个时刻用k时刻表示,k、m均为大于0的整数。
进一步地,所述数据获取模块用于:
在k时刻,获取至少两个超声波阵列对机器人的观测数据
其中k、n均为大于0的整数,
均为所述至少两个超声波阵列测得的机器人角度、距离数据的向量。
进一步地,所述计算模块包括机器人跟踪系统建立模块,用于:
建立所述机器人跟踪系统,所述机器人跟踪系统包括机器人的运动方程和观测方程如下表示:
观测方程:
Cij=P(Mk=Mj|Mk-1=Mi);
其中i,j=1,2...m表示模型数量,n=1,2……n表示超声波阵列数量,m、n均为大于等于1的整数,k∈N表示时刻,C
ij表示k-1时刻目标从模型i转移到k时刻的模型j的概率,
表示k时刻第i个模型状态转移矩阵,
表示,k时刻第i个运动模型下的目标状态,
表示,k时刻第n个阵列的观测矩阵,
表示k时刻第n个阵列接收到的目标状态观测。
表示模型i的过程噪声,
表示为第n个阵列的观测噪声,两种噪声均假设为零均值,协方差分别为
的高斯白噪声;
模型输入交互模块,用于:设
为k-1时刻的扩维EKF滤波器i的状态估计,
为相应的协方差矩阵估计,
为k-1时刻模型i的概率,交互式计算后,扩维EKF滤波器j在k时刻的输入计算公式如下:
子模型滤波模块,用于:在各个扩维EKF滤波器计算得到相应的输入
利用获得的量测
进行各个模型下对应的状态估计更新;
模型概率更新模块,用于:对各个模型i=1,2,...m计算模型概率,计算公式如下:
其中,
估计融合输出模块,用于:根据各个模型的更新概率和状态估计以及协方差矩阵估计,计算出当前时刻目标的状态估计和协方差矩阵估计,计算公式如下:
xk|k表示k时刻目标状态估计,Pk|k表示k时刻目标状态协方差矩阵估计。
进一步地,所述子模型滤波模块包括:
状态预测子模块,用于:对于各个模型i=1,2...m,分别计算相应的预测状态和预测协方差矩阵,计算公式如下:
数据融合子模块,用于:利用扩维算法进行数据融合,各个相应变量公式如下:
对应于模型i=1,2...m,各自的量测预测残差和量测协方差计算公式如下:
同时计算与模型i对应的似然函数,在假定服从高斯分布的条件下,似然函数如下:
滤波更新子模块,用于:对应于模型i=1,2,...m,分别计算各自的滤波增益,状态估计更新,以及误差协方差矩阵,计算公式如下:
又一方面,一种机器人跟踪设备,包括:
处理器;
存储器,用于存储有所述处理器的可执行指令;
其中,所述处理器配置为经由所述可执行指令来执行上述方案任一项所述的机器人跟踪方法的步骤。
又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方案任一项所述的机器人跟踪方法的步骤。
本发明实施例提供的技术方案带来的有益效果:
1、通过布置多个超声波阵列,在机器人跟踪的每个时刻获取观测数据,通过预设扩维IMM-EKF算法在IMM-EKF算法基础上,对每一步迭代过程进行量测扩维,获取更多目标运动状态信息,适用于多超声波阵列;
2、充分利用原始观测数据,融合效果最优,提高在室内跟踪机器人时的跟踪精度,跟踪误差小、计算量相对较低,从而实现智能机器人状态未知且多变的情况下也能对其进行稳定有效的跟踪,减少误跟或跟丢的现象发生;
3、利用扩维IMM-EKF算法对智能机器人进行跟踪,能够有效地削弱混响和噪声对跟踪精度造成的影响,跟踪误差明显小于传统IMM-EKF算法,且对观测数据缺失的跟踪场景也具有良好的稳健性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的机器人跟踪方法流程图;
图2是图1中102步骤的子步骤流程图;
图3是图2中1023步骤的子步骤流程图;
图4是本发明实施例提供的机器人跟踪方法流程框图;
图5是本发明实施例提供的机器人跟踪方法中状态计算结果计算过程示意图;
图6是本发明实施例提供的机器人跟踪装置结构示意图;
图7是本发明实施例提供的机器人跟踪设备组成示意图;
图8是本发明实施例提供的机器人跟踪方案与现有方案的跟踪轨迹效果对比图;
图9是本发明实施例提供的机器人跟踪方案与现有方案的跟踪误差效果对比图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在本发明的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
本发明实施例提供的机器人跟踪方法、装置、设备及计算机可读存储介质,通过布置多个超声波阵列,在机器人跟踪的每个时刻获取观测数据,通过预设扩维IMM-EKF算法在IMM-EKF算法基础上,对每一步迭代过程进行量测扩维,获取更多目标运动状态信息,适用于多超声波阵列,充分利用原始观测数据,融合效果最优,提高在室内跟踪机器人时的跟踪精度,跟踪误差小、计算量相对较低,从而实现智能机器人状态未知且多变的情况下也能对其进行稳定有效的跟踪,减少误跟或跟丢的现象发生。因此,该机器人跟踪方法适用于涉及智能机器人操控应用领域,尤其适用于多超声波阵列应用场景。
下面结合具体实施例及附图,对本发明实施例提供的机器人跟踪方法、装置、设备及计算机可读存储介质作详细说明。
图1是本发明实施例提供的机器人跟踪方法流程图。图2是图1中102步骤的子步骤流程图。图3是图2中1023步骤的子步骤流程图。
如图1所示,本发明实施例提供的机器人跟踪方法,包括以下步骤:
101、在跟踪的每个时刻,获取至少两个超声波阵列对机器人的观测数据。
在跟踪的每个时刻,获取至少两个超声波阵列对机器人的观测数据,包括:
在k时刻,获取至少两个超声波阵列对机器人的观测数据
其中k、n均为大于0的整数,
均为测得机器人角度、距离数据的向量。
值得注意的是,步骤101的过程,除了上述步骤所述的方式之外,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。
102、利用预设扩维IMM-EKF算法估计每个时刻机器人运动状态,通过与k时刻m种运动状态对应的m种运动模型相匹配的m个扩维EKF滤波器,分别获取k时刻每种运动模型下机器人对应的状态估计获得m个状态,对m个状态进行加权计算得到k时刻机器人状态估计结果,其中每个时刻用k时刻表示,k、m均为大于0的整数。
如图2所示,上述102步骤进一步包括以下子步骤:
1021-随机混合系统计算步骤:机器人跟踪系统建立步骤:建立所述机器人跟踪系统,所述机器人跟踪系统包括机器人的运动方程和观测方程,如下表示:
Cij=P(Mk=Mj|Mk-1=Mi);
其中i,j=1,2...m表示模型数量,n=1,2……n表示超声波阵列数量,m、n均为大于等于1的整数,k∈N表示时刻,C
ij表示k-1时刻目标从模型i转移到k时刻的模型j的概率,
表示k时刻第i个模型状态转移矩阵,
表示,k时刻第i个运动模型下的目标状态,
表示,k时刻第n个阵列的观测矩阵,
表示k时刻第n个阵列接收到的目标状态观测。
表示模型i的过程噪声,
表示为第n个阵列的观测噪声,两种噪声均假设为零均值,协方差分别为
的高斯白噪声;
1022-模型输入交互步骤:设
为k-1时刻扩维EKF滤波器i的状态估计,
为相应的协方差矩阵估计,
为k-1时刻模型i的概率,交互式计算后,扩维EKF滤波器j在k时刻的输入计算公式如下:
1023-子模型滤波步骤:在各个扩维EKF滤波器计算得到相应的输入
利用获得的量测
进行各个模型下对应的状态估计更新;
1024-模型概率更新步骤:对各个模型i=1,2,...m计算模型概率,计算公式如下:
1025-估计融合输出步骤:根据各个模型的更新概率和状态估计以及估计协方差矩阵估计,计算出当前时刻目标的状态估计和协方差矩阵估计,计算公式如下:
xk|k表示k时刻目标状态估计,Pk|k表示k时刻目标状态协方差矩阵估计。
如图3所示,上述子模型滤波步骤又进一步包括以下子步骤:
1023a-状态预测子步骤:对于各个模型i=1,2...m,分别计算相应的预测状态和预测协方差矩阵,计算公式如下:
1023b-数据融合子步骤:利用扩维算法进行数据融合,各个相应变量公式如下:
对应于模型i=1,2...m,各自的量测预测残差和量测协方差计算公式如下:
同时计算与模型i对应的似然函数,在假定服从高斯分布的条件下,似然函数如下:
1023c-滤波更新子步骤:对应于模型i=1,2,...m,分别计算各自的滤波增益,状态估计更新,以及误差协方差矩阵,计算公式如下:
图4是本发明实施例提供的机器人跟踪方法流程框图,图5是本发明实施例提供的机器人跟踪方法中状态计算结果计算过程示意图,共同演示了一种选择采用两个超声波阵列的实施方式。
值得注意的是,上述步骤102的过程,除了上述步骤所述的方式之外,还可以通过其他方式实现该过程,本发明实施例对具体的方式不加以限定。
图6是本发明实施例提供的机器人跟踪装置结构示意图,如图6所示,本发明实施例提供的机器人跟踪装置包括数据获取模块1和计算模块2。
其中,数据获取模块1用于:在跟踪的每个时刻,获取至少两个超声波阵列对机器人的观测数据。具体地,数据获取模块1用于:在k时刻,获取至少两个超声波阵列对机器人的观测数据
其中k、n均为大于0的整数,
均为至少两个超声波阵列测得的机器人角度、距离数据的向量。
计算模块2用于:利用预设扩维IMM-EKF算法估计每个时刻机器人运动状态,通过与k时刻m种运动状态对应的m种运动模型相匹配的m个扩维EKF滤波器,分别获取k时刻每种运动模型下机器人对应的状态估计,获得m个状态,对m个状态进行加权计算得到k时刻状态估计结果,其中每个时刻用k时刻表示,k、m均为大于0的整数。
具体地,计算模块2包括机器人跟踪系统建立模块21、模型输入交互模块22、子模型滤波模块23、模型概率更新模块24和估计融合输出模块25。
其中,机器人跟踪系统建立模块21用于:
建立所述机器人跟踪系统,所述机器人跟踪系统包括机器人的运动方程和观测方程如下表示:
观测方程:
Cij=P(Mk=Mj|Mk-1=Mi);
其中i,j=1,2...m表示模型数量,n=1,2……n表示超声波阵列数量,m、n均为大于等于1的整数,k∈N表示时刻,C
ij表示k-1时刻目标从模型i转移到k时刻的模型j的概率,
表示k时刻第i个模型状态转移矩阵,
表示,k时刻第i个运动模型下的目标状态,
表示,k时刻第n个阵列的观测矩阵,
表示k时刻第n个阵列接收到的目标状态观测。
表示模型i的过程噪声,
表示为第n个阵列的观测噪声,两种噪声均假设为零均值,协方差分别为
的高斯白噪声。
模型输入交互模块22用于:
设
为k-1时刻扩维EKF滤波器i的状态估计,
为相应的协方差矩阵估计,
为k-1时刻模型i的概率,交互式计算后,扩维EKF滤波器j在k时刻的输入计算公式如下:
子模型滤波模块23用于:
在各个扩维EKF滤波器计算得到相应的输入
利用获得的量测
进行各个模型下对应的状态估计更新;
模型概率更新模块24用于:对各个模型i=1,2,...m计算模型概率,计算公式如下:
估计融合输出模块25用于:
根据各个模型的更新概率和状态估计以及协方差矩阵估计,计算出当前时刻目标的状态估计和协方差矩阵估计,计算公式如下:
xk|k表示k时刻目标状态估计,Pk|k表示k时刻目标状态协方差矩阵估计。
进一步地,子模型滤波模块23包括状态预测子模块231、数据融合子模块232和滤波更新子模块233。
其中,状态预测子模块231用于:
对于各个模型i=1,2...m,分别计算相应的预测状态和预测协方差矩阵,计算公式如下:
数据融合子模块232用于:
利用扩维算法进行数据融合,各个相应变量公式如下:
对应于模型i=1,2...m,各自的量测预测残差和量测协方差计算公式如下:
同时计算与模型i对应的似然函数,在假定服从高斯分布的条件下,似然函数如下:
滤波更新子模块233用于:
对应于模型i=1,2,...m,分别计算各自的滤波增益,状态估计更新,以及误差协方差矩阵,计算公式如下:
图7是本发明实施例提供的机器人跟踪设备组成示意图,如图7所示,本发明实施例提供的机器人跟踪设备,包括处理器3和存储器4,存储器4用于存储有处理器3的可执行指令;其中,所述处理器3配置为经由前述可执行指令来执行上述任一方案所述的机器人跟踪方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述任一方案所述的机器人跟踪方法的步骤。
需要说明的是:上述实施例提供的机器人跟踪装置在触发机器人跟踪业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的触发机器人跟踪业务的机器人跟踪装置、机器人跟踪设备、计算机可读存储介质与触发机器人跟踪业务的机器人跟踪方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
为说明本发明实施例提供的机器人跟踪方案在进行室内自动化设备跟踪方面的优势,通过本发明实施例提供的机器人跟踪方法、IMM-EKF方法以及加权IMM-EKF对机器人量测数据进行处理,实现机器人的状态估计,结果如图8所示。
图8是本发明实施例提供的机器人跟踪方案与现有方案的跟踪轨迹效果对比图。图9是本发明实施例提供的机器人跟踪方案与现有方案的跟踪误差效果对比图。
如图9所示,为进一步刻画不同方法的性能,计算上述估计结果的跟踪误差进行性能评估。tk时刻状态估计的误差公式为:
其中,
表示t
k时刻的目标状态估计得到的位置坐标,(x
k,y
k)表示t
k时刻目标的真实位置。
下表1示出了三种方法的目标平均跟踪误差,如下所示:
表1
由此可知,本发明实施例提供的机器人跟踪方法的跟踪精度明显优于IMM-EKF算法,并且,与加权IMM-EKF算法相比,跟踪误差减小将近50%。
综上所述,本发明实施例提供的机器人跟踪方法、装置、设备及计算机可读存储介质,相比现有技术,具有以下有益效果:
1、通过布置多个超声波阵列,在机器人跟踪的每个时刻获取观测数据,通过预设扩维IMM-EKF算法在IMM-EKF算法基础上,对每一步迭代过程进行量测扩维,获取更多目标运动状态信息,适用于多超声波阵列;
2、充分利用原始观测数据,融合效果最优,提高在室内跟踪机器人时的跟踪精度,跟踪误差小、计算量相对较低,从而实现智能机器人状态未知且多变的情况下也能对其进行稳定有效的跟踪,减少误跟或跟丢的现象发生;
3、利用扩维IMM-EKF算法对智能机器人进行跟踪,能够有效地削弱混响和噪声对跟踪精度造成的影响,跟踪误差明显小于传统IMM-EKF算法,且对观测数据缺失的跟踪场景也具有良好的稳健性。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。