使用自定义估计器实时估计速度和步态特征的制作方法

文档序号:18667378发布日期:2019-09-13 20:21阅读:182来源:国知局
使用自定义估计器实时估计速度和步态特征的制作方法

本公开涉及估计描述用户移动的参数并且,更具体地,涉及用于提供准确、实时估计用户的速度和步态特征的系统和方法。



背景技术:

这里提供的背景描述是为了总体上呈现本公开的背景。在某种程度上在此背景技术部分所描述的当前署名发明人的工作、以及在提交申请时可能不另外构成现有技术的说明书的各方面,都不被明示或者暗示地承认为针对本公开的现有技术。

许多跑步者希望监控速度或步速,以便评估表现,确定是否达到个人目标,并最终提高跑步表现。为此,许多跑步者携带包括全球导航卫星系统(gnss)接收器的智能手机和/或智能手表。gnss可包括美国的全球定位系统(gps)、俄罗斯的glonass、中国的北斗、欧洲的伽利略、日本的qzss和/或印度的irnss中的一个或多个。速度估计是从gnss位置、或从gnss信号的多普勒频移导出的。不幸的是,基于gnss的速度测量往往是嘈杂的,因此是不准确的。噪音/不准确由因子引起,该因子诸如是gnss信号的阻塞(例如,在建筑物内或桥下跑步时)、gnss信号的多径反射(例如,在一个城市的市区跑步时)、以及臂摆动(例如,如果设备被手持或穿戴在手腕或上臂上)。这些因子可以很容易地使得瞬时的、基于gnss的速度测量与任何给定时刻的用户的真实速度相比,达到低于50%,或高于100%。为了降低噪声水平,一些设备对于gnss速度测量采用重度平滑(heavysmoothing)/平均。虽然这可以在用户的步速相当恒定时减小速度测量误差的幅度,但是该技术对速度的大而突然的变化没有足够的响应,例如当用户间隔跑时,或在人行横道上短暂停止时等。



技术实现要素:

在一个示例实施例中,在计算设备中实施用于准确估计用户的步态特征的方法。该方法包括监测指示所述用户的移动的第一多个参数。监测第一多个参数包括监测(i)用户的第一gnss导出速度和(ii)用户的步数。该方法还包括处理监测到的第一多个参数的值,以确定指示所述用户移动的第二多个参数的值。处理所述监测到的第一多个参数的值包括:将以下中的一个或两者(i)所述监测到的第一多个参数中的至少一个的值、以及(ii)从所述监测到的第一多个参数中的一个或多个导出的至少一个参数的值,作为输入应用于具有作为估计器状态的第二多个参数的估计器(例如,卡尔曼滤波器)。第二多个参数中的至少两个参数共同指示所述用户的步频与所述用户的步长之间的映射。该方法还包括使得所述计算设备或另一计算设备的图形用户界面显示以下中的一个或两者的值:(i)所述第二多个参数中的至少一个参数、以及(ii)从所述第二多个参数中的一个或多个导出的至少一个参数。

在另一个实施例中,一种存储指令的非暂时性计算机可读介质,指令在由计算设备的一个或多个处理器执行时,使所述计算设备:监测指示用户的移动的第一多个参数。第一多个参数包括(i)所述用户的第一gnss导出速度和(ii)所述用户的步数。该指令还使得计算设备处理处理监测到的第一多个参数的值,以确定指示所述用户移动的第二多个参数的值。处理所述监测到的第一多个参数的值包括:将以下中的一个或两者(i)所述监测到的第一多个参数中的至少一个的值、以及(ii)从所述监测到的第一多个参数中的一个或多个导出的至少一个参数的值,作为输入应用于具有作为估计器状态的所述第二多个参数的估计器(例如,卡尔曼滤波器)。第二多个参数中的至少两个参数共同指示所述用户的步频与所述用户的步长之间的映射。该指令还使得计算设备在所述计算设备的图形用户界面上显示,或使得另一计算设备的图形用户界面显示以下中的一个或两者的值:(i)所述第二多个参数中的至少一个参数、以及(ii)从所述第二多个参数中一个或多个导出的至少一个参数。

在另一示例实施例中,移动计算设备包括显示屏,一个或多个处理器和存储器。存储器存储指令,当由一个或多个处理器执行时,使得移动计算设备监测指示所述移动计算设备的用户的移动的第一多个参数。第一多个参数包括(i)所述用户的第一gnss导出速度和(ii)所述用户的步数。该指令还使移动计算设备处理监测到的第一多个参数的值,以确定指示所述用户的移动的第二多个参数的值。处理所述监测到的第一多个参数的值包括:将以下中的一个或两者(i)所述监测到的第一多个参数中的至少一个的值、以及(ii)从所述监测到的第一多个参数中的一个或多个导出的至少一个参数的值,作为输入应用于具有作为估计器状态的所述第二多个参数的估计器(例如,卡尔曼滤波器)。第二多个参数中的至少两个参数共同指示所述用户的步频与所述用户的步长之间的映射。该指令还使移动计算设备在所述显示屏上呈现的图形用户界面上显示以下中的一个或两者的值:(i)所述第二多个参数中的至少一个参数、以及(ii)从所述第二多个参数中的一个或多个导出的至少一个参数。

附图说明

图1是可以实施用于实时估计用户的速度和步态特性的技术的示例系统的框图。

图2是图1的系统的第一示例实施方式的框图。

图3是图1的系统的第二示例实施方式的框图。

图4描绘了可以使用图1、图2、或图3的示例系统而生成、更新、和/或显示的单个用户的步态模型的示例集。

图5是用于实时估计用户的速度和步态特征的示例过程的数据流程图。

图6描绘了图1、图2、或图3的示例系统可以呈现给用户的各种绘图。

图7是根据一个实施方式的用于准确地估计用户的步态特性的示例方法的流程图。

具体实施方式

概述

为了以降低的噪声/误差水平来估计用户的速度,同时还保持对用户速度的大且突然的变化的高水平响应,使用诸如卡尔曼滤波器的自定义估计器。作为输入,估计器利用多种不同类型的观测值/测量值,包括用户的一个或多个gnss导出速度和用户的步数。在一个实施方式中,例如,卡尔曼滤波器利用从用户的gnss位置导出的第一观测速度、从gnss信号的多普勒频移导出的第二观测速度、以及观测到的用户的步数。

由于诸如卡尔曼滤波器的最佳估计器的固有属性,可以使每个估计器状态(即,估计器提供/输出的估计)的估计误差最小化。下面的描述中很多对应于卡尔曼滤波器被用作估计器的实施方式。然而,本领域技术人员将认识到,在本发明的范围内也可以使用替代的最佳估计器,例如非线性估计器,粒子滤波器等。

自定义卡尔曼滤波器的状态包括用户的步态模型的特征,并且还可能包括与用户移动(例如,用户的速度)有关的一个或多个其他特征。在一些实施方式在,步态模型构成或包括用户的步频(节奏)和用户的步长之间的关系。在一个实施方式中,例如,自定义卡尔曼滤波器产生(1)表示用户的节奏与步长的线的斜率的估计、以及(2)表示用户的节奏与步长的线的x或y截距的估计。对于大多数人来说,作为节奏的函数,步长变化很大。此外,基于各种因子,步长及其与节奏的关系通常会在整个跑步或步行过程中发生变化,各自因子诸如是用户的疲劳程度、以及用户是在平地上跑步/步行、还是在上山或下山。通过估计指示步长和节奏之间的关系的参数(例如,实时地),自定义卡尔曼滤波器可以在跑步和/或步行的整个过程中密切追踪这些变化。在一些实施方式中,可以在显示器上向用户提供该信息,并使用该信息来修改他或她的步态并改善未来的表现。

取决于用户是正在步行还是跑步,单个用户的步态特征(例如,步长对比给定的节奏)也可能变化很大。考虑到这种差异,在一些实施方式中,一些或全部卡尔曼滤波器状态/估计可能是特定于用户“步行”步态模型或用户的“跑步”步态模型,基于一个或多个因子(例如,指示用户可能正在步行的当前节奏,或者检测与跑步更一致的影响的加速度计等)来选择适当的步态模型。此外,在一些实施方式中,可以基于一个或多个因子(例如,步数是否指示用户已经停止,和/或是否测量至少一些速度变化的阈值水平等)来动态调整自定义卡尔曼滤波器的过程噪声协方差。当用户的步速是相当恒定时,动态改变过程噪声协方差通常可以降低卡尔曼滤波器估计的噪度/误差,而不会过度降低对用户的速度的大而突然的变化的估计的响应。下面讨论本发明的其他潜在特征和益处。

示例系统

图1是示例系统10的框图,其中可以实施用于实时估计用户的速度和步态特性的技术。示例系统10包括计算设备12和三个移动检测单元20,22,24。在一些实施方式中,计算设备12是用户在行走或跑步时穿戴或携带的移动计算设备。例如,计算设备12可以是智能手机(例如,手持在用户手中,或者携带在臂带或腰带等中),或者是诸如智能手表、智能眼镜或智能衣服的可穿戴计算设备。计算设备12可以是通用计算设备,或专用设备(例如,完全专用于健身追踪的设备)。在其他实施方式中,计算设备12是固定或半固定计算设备,诸如台式计算机或膝上型计算机或服务器。下面将更详细地讨论这些可选实施方式中的每个实施方式的示例。

在图1的示例实施例中,计算设备12包括处理器30,存储器32和用户界面34。处理器30可以是单个处理器(例如,中央处理单元(cpu)),或者可以包括一组处理器(例如,一个或多个cpu和图形处理单元(gpu))。存储器32计算机可读的、非临时性存储单元或设备,或可以包括持久性(例如,硬盘)和/或非持久存储器组件的单元/设备的集合。存储器32存储在处理器30上可执行以进行各种操作的指令,包括各种软件应用的指令,以及由这样的应用产生和/或使用的数据。在图1的示例实施方式中,存储器32至少存储活动追踪应用40。通常,并且如下面更详细讨论的,活动追踪应用40由处理器30执行,以基于由移动检测单元20,22,24提供的测量/观测来追踪用户的跑步和/或行走表现。

用户界面34包括被配置为使用户能够与(即,提供输入和感知的输出)计算设备12交互的硬件,固件和/或软件。例如,用户界面34可以包括具有显示器和手动输入能力的触摸屏。用户界面34还可以或替代地包括其他类型的组件,诸如向用户提供输入/输出能力的键盘和监测器(具有关联的处理组件)。

每个移动检测单元20,22,24由用户穿戴和/或携带,并且观测(例如,检测或感测)用户的移动并生成表示该移动的参数。在一个实施方式中,例如,移动检测单元20使用gnss信号来确定用户的位置,并且基于那些位置随时间的变化来生成用户速度值,移动检测单元22使用gnss信号中的多普勒频移来生成其他的、独立的用户速度值,并且移动检测单元24检测用户的脚步并提供用户的步数。

移动检测单元20,22,24中的每一个可以包括硬件组件和/或软件组件,并且可以在计算设备12外部或集成在计算设备12内。外部移动检测单元可以经由计算设备12的有线或无线(例如,蓝牙,wifi等)网络接口(图1中未示出)与计算设备12通信。在计算设备12是智能电话或智能手表并且移动检测单元24是计步器的实施方式中,例如,移动检测单元24可以是经由蓝牙与计算设备12通信的底脚(foot-mounted)附件设备,或者是计算设备12的加速度计组件。通常,移动检测单元20,22,24可以在由用户穿戴或携带在任何位置(例如,手,手腕,手臂,腰带等)的任何设备上实施。在一个实施方式中,例如,加速度计和/或计步器在用户穿戴在他或她的手腕、手臂、腰带或任何其他合适位置的设备上实施。

尽管图1中示出了三个不同的移动检测单元,但其他实施方式可以包括更多(例如,四个,五个等)或更少(两个)这样的单元,和/或两个或更多个移动检测单元可被包括在单个设备或组件中。在移动检测单元22提供从gnss位置导出的速度并且移动检测单元24提供从gnss多普勒频移导出的速度的实施方式中,例如,移动检测单元22和移动检测单元24两者都包括在计算设备12外部的单个有gnss能力的设备中,或者包括在计算设备12的单个gnss组件中(例如,如果计算设备12是智能手机或智能手表)。

如上所述,计算设备12可以是固定的或半固定计算设备,诸如台式计算机,膝上型计算机,或服务器。例如,计算设备12可以是远离用户和移动检测单元20,22,24的服务器。在这样的实施例中,移动检测单元20,22,24中的每一个可以包括网络接口,该网络接口经由图1中未示出的无线(或部分无线)网络(假设用户已经明确同意共享他或她的数据)与计算设备12的网络接口进行通信。仅作为一个特定示例,网络可以包括蜂窝式网络、因特网和服务器侧lan。或者,移动检测单元20,22,24中的一些或全部可以与图1中未示出的移动计算设备通信(例如,经由有线连接和/或蓝牙),并且移动计算设备可以经由网络与远程计算设备12进行通信,从而将测量/观测中继到计算设备12(假设用户已经明确同意共享他或她的数据)。

当由处理器30执行时,活动追踪应用40监测由移动检测单元20,22,24生成的观测/测量,并将这些观测/测量(和/或从其导出的值)作为输入应用到卡尔曼滤波器42。如上所述,其它实施方式可以使用不同类型的估计器,而不是卡尔曼滤波器。卡尔曼滤波器42的状态包括用户的估计速度44和用户的估计步态模型46。在其他实施方式中,估计速度44不被包括作为卡尔曼滤波器42的状态。估计步态模型46可以包括与用户的步态有关的多个参数。在一个实施方式中,例如,估计步态模型46包括两个参数,这两个参数共同指示用户的节奏作为用户的步长的函数(例如,模拟节奏和步长之间的关系的线的斜率和x截距或y截距)。以下结合图4进一步讨论示例步态模型。

在将这些观测/测量作为输入到卡尔曼滤波器42之前,活动追踪单元40可以预处理来自移动检测单元20,22,24的观测/测量中的一个、一些或全部。而且,活动追踪单元42可以在跑步和/或步行期间动态地调整卡尔曼滤波器42本身(例如,过程噪声协方差)的一个或多个参数。下面结合图5所示的具体实施方式更详细地讨论卡尔曼滤波器42的操作以及预处理和动态参数调整的特定示例。

在一些实施方式中,由卡尔曼滤波器42产生的估计(更新状态)和/或从其导出的值(例如,估计速度44的值、步长对比时间的值、估计步态模型46的一个或多个图的值等)显示给用户。当用户正在跑步和/或行走时(例如,如果计算设备12是智能手机或可穿戴计算设备,则经由用户界面34),可以实时地显示一些或所有信息。可选地,或另外,一些或全部的信息可以在跑步/步行完成后显示给用户。例如,当他或她稍后使用计算设备12的网页浏览器应用或另一计算设备(或活动追踪应用40,或图1中未示出的另一活动追踪应用)、以便访问从计算设备12收集估计/状态的服务器(如果用户明确同意共享他或她的数据)并打包用于显示的数据时,可以向用户显示一些或所有信息。以下结合图6讨论一些示例用户显示器。

图2和3示出了系统10的两种可选实施方式,其中计算设备12是由用户携带或穿戴的移动计算设备。首先参考图2,系统100包括移动计算设备102,以及远离移动计算设备102并经由网络106通信地耦接到移动计算设备102的服务器104。虽然图2将移动计算设备102示为智能电话,但是在其他实施方式中,移动计算设备102可以是由用户穿戴或携带的智能手表,或另一种类型的移动计算设备(例如,智能眼镜或智能服装)。此外,虽然图2仅示出了一个移动计算设备102,但是应该理解,服务器104还可以与其他用户的许多其他类似的移动计算设备进行通信。此外,虽然在本文中称为“服务器”,但是在一些实施方式中,服务器104可以包括多个共同定位(co-located)或远程分布的计算设备。网络106可以包括一个或多个有线和/或无线通信网络的任何合适的组合,诸如一个或多个局域网(lan),城域网(man)和/或广域网(wan)。仅作为一个特定示例,网络106可以包括蜂窝网络,因特网和服务器侧lan。

移动计算设备102通信地耦接到gnss单元110和计步器单元112。gnss单元110可集成在移动计算设备102之内,或者也可以是由用户穿戴或携带的外部单元(例如,用户的智能手表内的gnss单元)。在一个实施方式中,gnss单元110提供从gnss信号导出的速度的观测值。例如,在gnss单元110对应于图1的移动检测单元20的实施方式中,gnss单元110可以基于用户的gnss位置来计算速度,并且将那些速度观测提供给移动计算设备102。作为另一个示例,在gnss单元110对应于图1的移动检测单元20和移动检测单元22两者的实施方式中,gnss单元110可以基于用户的gnss位置来计算第一速度,并基于gnss信号的多普勒频移来计算第二速度,并向移动计算设备102提供两个速度观测。

与gnss单元110类似,计步器单元112可以集成在移动计算设备102内,或者可以是由用户穿戴或携带的外部单元(例如,物理地安装在或以其他方式耦接到用户的髋部,手臂或脚上的设备)。计步器单元112可以包括加速度计,磁摆,和/或适合于检测脚步的任何其他硬件和/或软件。在不同的实施方式中,计步器单元112可以提供累积的步数给移动计算设备102,或者可以提供单个计数(即,脚步检测信号),该单个计数可以被添加到由移动计算设备102保持的总的步数。

移动计算设备102包括处理器120,存储器122,用户界面124和网络接口126。例如,处理器120,存储器122和用户界面124可以类似于图1的处理器30,存储器32和用户界面34。网络接口126包括硬件、固件和/或软件,其被配置为使移动通信设备102能够经由网络106与服务器104交换电子数据。例如,网络接口126可以包括蜂窝和/或wifi收发器。

存储器122个存储活动追踪应用130,其实施具有估计速度134和估计步态模型136作为滤波器状态的自定义卡尔曼滤波器132。例如,活动追踪应用130和卡尔曼滤波器132可以分别类似于图1中的活动追踪应用40和卡尔曼滤波器42。

服务器104包括网络接口140,存储器142,和处理器144。网络接口140包括硬件,固件和/或软件,被配置为使服务器104能够经由网络106与移动计算设备102和其他类似的移动计算设备(图2中未示出)交换电子数据。例如,网络接口140可以包括有线或无线路由器和调制解调器。

存储器142是计算机可读的、非暂时性存储单元或设备,或单元/设备的集合,可包括持久性(例如,硬盘)和/或非持久性存储器组件。存储器142存储活动追踪管理器150的软件指令,并且处理器144包括被配置为执行那些指令的一个或多个处理器。在操作中,如果用户明确同意共享他或她的数据,则活动追踪应用130可以使移动计算设备102将估计速度和步态模型参数发送到服务器104(例如,当估计那些参数时实时地,或者在由活动追踪应用130等支持的活动后的会话上传过程中等等)。活动追踪管理器150可以将所接收的数据存储在表现数据库152中(例如,与使数据与移动计算设备102的用户的账户相关联的元数据一起)。表现数据库152可以存储在存储器142或其他合适的存储器中。当用户访问他或她的帐户时(例如,经由网页浏览器应用,活动追踪应用130和/或另一专用应用),他或她可以查看估计的参数(例如,在跑步/步行过程中作为时间函数的瞬时速度和步长)、基于估计的参数而计算的参数、和/或其他参数(例如,直接从计步器单元112提供的步数导出的节奏与时间的关系)。

在一些实施方式中,系统100不包括服务器104。例如,活动追踪管理器150可以是活动追踪应用130的组件,和/或表现数据库152可以存储在存储器122中。在另一替代实施方式中,活动追踪应用130代替地存储在存储器142的服务器104中。例如,gnss单元110和计步器单元112可以包括允许与服务器104通信(或经由移动计算设备102可与服务器104进行通信)的各自的网络接口,并且如果用户明确同意分享他或她的数据,则服务器104可以生成估计速度134和估计步态模型136的值,而不是移动计算设备102。在这样的实施方式中,服务器104可以将估计的参数(和/或从其导出的值)发送到移动计算设备102,用于经由用户界面124实时地显示给用户,和/或用户可以在跑步/步行之后(经由网络浏览器应用或专用应用)访问服务器104,以查看他或她的表现。

接下来参考图3,系统200包括第一移动计算设备202(例如,智能电话),第二可穿戴计算设备203(例如,智能手表),以及远离移动计算设备202和移动计算设备204两者的服务器204。服务器204经由网络206通信地耦接到移动计算装置202,网络206可以类似于图2的网络106。虽然图3将移动计算设备202示为智能手机并将移动计算设备203示为智能手表,但是在其他实施方式中,移动计算设备202可以是不同的移动计算设备(例如,智能手表)和/或移动计算设备203可以是不同的移动计算设备(例如,智能眼镜或其他可穿戴电子设备)。此外,虽然图3仅示出了由单个用户携带和/或穿戴的一对移动计算设备202,203,但是应当理解,服务器204还可以与许多其他用户的许多其他类似的移动计算设备通信。此外,虽然本文称为“服务器”,但是在一些实施方式中,服务器204也可以包括多个共同定位或远程分布的计算设备。

移动计算设备202包括或耦接到gnss单元210和计步器212,其可以类似于图2中的类似命名的元件,并且包括处理器220,存储器222,用户界面224和网络接口226,其也可以类似于图2中的类似命名的元件。此外,活动追踪应用230,卡尔曼滤波器232,估计速度234和估计步态模型236可以类似于图2中所示的类似命名的元件,除了下面关于系统200的操作所讨论的。

服务器204包括网络接口240,存储器242和处理器244,其可以类似于图2中的类似命名的元件。此外,存储器242可以存储活动追踪管理器250,其可以类似于图2中的类似命名的元件,表现数据库252可以类似于图2的表现数据库152,并且可以存储或不存储在存储器242中。

移动计算设备203包括处理器260,用户界面262,网络接口264和存储器270。处理器260可以是单个处理器(例如,单个cpu),或者可以包括一组处理器(例如,一个或多个cpu和gpu)。用户界面262包括被配置为使得用户能够与移动计算设备203交互(即,既提供输入又感知输出)的硬件,固件和/或软件。例如,用户界面262可以包括具有显示和手动输入功能两者的触摸屏。用户界面262还可以包括其他组件,诸如向用户提供语音控制/输入能力的麦克风(具有相关联的处理组件),一个或多个物理输入键或按钮等。

网络接口264包括硬件,固件和/或软件,被配置为使得移动计算设备203经由短距离链接266与移动计算设备202交换电子数据。例如,网络接口264网络接口226可以各自包括蓝牙收发器。在其它实施方式中,其它短程技术代替使用(例如,wifi,rfid等)。

存储器270是计算机可读的、非暂时性存储单元或设备,或单元/设备的集合,其可包括持久性和/或非持久性存储器组件。存储器270存储可由处理器260执行以进行各种操作的指令,包括各种软件应用的指令,以及由这些应用生成和/或使用的数据。在图3的示例实施方式中,存储器270存储活动追踪应用272。活动追踪应用272与移动计算设备202的活动追踪应用230一起进行工作。例如,当活动追踪应用230的卡尔曼滤波器232生成估计速度234和估计步态模型236的值时,移动计算设备202可以将这些值发送到移动计算设备203(经由短程链接266),并且活动追踪应用272可以使得用户界面262在用户跑步/行走时向用户显示实时值。在一些实施方式中,活动追踪应用272还支持或替代地支持一个或多个用户控制功能。例如,活动追踪应用272可以使用户界面262显示交互式控件,该交互式控件在被用户激活时暂停追踪用户的跑步/步行(例如,响应于活动追踪应用230暂停追踪哪个,通过经由短程链接266将激活传送给移动计算设备202)。

在一些实施方式中,系统200不包括服务器204。例如,活动追踪管理器250可以是活动追踪应用230的组件,和/或表现数据库252可以存储在存储器222中。在另一替代实施方式中,活动追踪应用230代替地存储在移动计算设备203的存储器270中(代替活动追踪应用272)。例如,移动计算设备202可以从gnss单元210和计步器单元212接收数据,并且在接收到数据时经由短程链接266将该数据发送到移动计算设备203,以允许移动计算设备203生成实时步态模型参数、速度和/或其他估计。

在又一替代实施方式中,活动追踪应用230替代地存储在服务器204的存储器242中。例如,gnss单元210和计步器单元212可以包括允许与服务器204通信的各自的网络接口(或者可以经由移动计算设备202与服务器204通信),并且如果用户已经明确同意共享他或她的数据,则服务器204可以生成估计速度234和估计步态模型236的值,而不是移动计算设备202。在这样的实施方式中,服务器204可以将估计的参数(和/或由其导出的值)发送到移动计算设备202,以经由用户界面224和/或用户界面262实时显示给用户,和/或用户可以在跑步/步行之后(经由网络浏览器应用或专用应用)访问服务器204,以查看他或她的表现。

示例步态模型

如上所述,所估计的步态模型(例如,图1的步态模型46,图2的步态模型136,或图3的步态模型236)可以表示用户的步态的各种特征。此外,由于用户的步态的特性可以根据用户正在跑步还是步行而发生很大变化,所以在一些实施方式中,活动追踪应用(例如,图1的活动追踪应用40,图2的活动追踪应用130,或图3的活动追踪应用230)可以选择“跑步”步态模型或“步行”步态模型作为在任何给定时间要被卡尔曼滤波器(例如,图1的卡尔曼滤波器42,图2的卡尔曼滤波器132、或图3的卡尔曼滤波器232)更新/估计的模型。

图4描绘了用于单个用户的步态模型的示例集250,包括步行步态模型252和跑步步态模型254。步行步态模型252与第一区域262a、第二区域262b以及第三区域262c相关联,在第一区域262a中,步长随着节奏的增加而增加,在第二区域262b中,步长在一节奏范围内是恒定的,在第三区域262c中,步长在另一节奏范围内是恒定的。类似地,跑步步态模型254与第一区域264a、第二区域264b、以及第三区域264c相关联,在第一区域264a中,步长随着节奏的增加而增加,在第二区域264b中,步长在一节奏范围内是恒定的,在第三区域264c中,步长在另一节奏范围内是恒定的。因此,示例步态模型252,254都包括非线性。在其他实施方式中,步态模型252,254不试图捕获步长和/或节奏的极限,并且是纯线性的。在一些实施方式中,步态模型可以是二次函数或可以由多项式,指数函数,对数函数或其组合表示的其他函数。

如图4所示,步行步态模型252和跑步步态模型254都显示了,当用户的脚步频率(节奏)增加时,用户的步长通常会增加。然而,两个模型之间的步长范围、节奏范围和关系的斜率在两个模型之间变化很大。虽然图3中的示例步态模型252,254沿x轴不重叠,但是在其他实施方式和/或场景中可以重叠。

在一个实施方式中,由自定义卡尔曼滤波器估计的步态模型参数(例如,图1的步态模型46,图2的步态模型136,或图3的步态模型236)包括共同指示步态模型的线性、倾斜部分(例如,图4中的区域262a或264a,取决于当前正在使用的哪个步态模型)的参数。例如,步态模型参数可以包括倾斜线部分的斜率和x截距或y截距,或者完全由倾斜线部分的斜率和x截距或y截距组成。

当活动追踪应用确定用户已经从跑步改变为步行,或反之亦然时,旧的步态模型可以存储在高速缓冲存储器中(例如,在图1的存储器32,图2的存储器122,或者图3的存储器222中),并且新的步态模型可以从高速缓冲存储器加载。活动追踪应用在任何给定时间确定用户是在跑步还是在步行的方式可以根据实施方式而变化。在一个实施方式中,例如,如果用户当前具有从已知时间间隔观测的步数导出的、小于阈值节奏的节奏(例如,在图4的场景中低于每秒2.5步),则活动追踪应用确定他或她正在步行,并且如果他或她当前具有高于上述阈值的节奏,则确定该用户正在跑步。在替代实施方式中,基于由加速度计(例如,如上文结合图1至图3所讨论的,用于测量步数的相同加速度计)进行测量的大小来进行确定。例如,如果加速度大小(或平均大小水平等)是高于阈值水平,那么活动追踪应用可确定用户正在跑步,并且如果加速度大小(或平均大小水平等)低于阈值水平,那么确定用户正在步行。阈值的滞后(用于节奏或加速度)可用于防止步态模型之间的快速反弹。也可以使用或替代地使用其他合适的技术。例如,活动追踪应用可以将步态模型选择基于加速度大小或加速度大小的模式,以及一个或多个其他因子(例如,横向加速度,垂直加速度,节奏等)。在一些实施方式中,机器学习用于基于三维加速度和/或其他测量来确定测量值和/或范围的哪些组合指示特殊用户的步行与跑步。

在其他实施方式中,集250仅包括始终由自定义卡尔曼滤波器采用的单个步态模型,或者包括多于两个的步态模型。例如,除了步态模型252和254之外,当活动追踪应用确定用户正在“慢跑”(跑地很慢)或“劲走”等时,可以使用第三步态模型。此外,在一些实施方式中,步态模型252,254可以与图4中所示的不同。仅作为一个示例,步态模型252,254可以仍然指示步长对节奏,但也可以通过绘制步长对节奏的倒数(即,脚步周期)的图来实现这个。

自定义卡尔曼滤波器的示例处理

图5是用于实时估计用户的速度和步态特征的示例过程300的数据流程图。例如,过程300可全部或部分地由图1的活动追踪应用40、图2的活动追踪应用130、或图3的活动追踪应用230来实施。应理解,过程300仅表示一种可能的实施方式,并且许多其他实施方式在本发明的范围内。

根据一个实施方式,过程300对应于自定义卡尔曼滤波器(例如,图1的卡尔曼滤波器42,图2的卡尔曼滤波器132,或图3的卡尔曼滤波器232)的操作、以及相关联的观测/测量数据的预处理。在解决图5中所示的数据流之前,描述自定义卡尔曼滤波器(对应于过程300的具体实施方式)。卡尔曼滤波器的系统模型可表示为:

在等式1至4中,k表示时间,其中每个整数增量为k表示下一个时间间隔(例如,下一半秒,下一秒,接下来的两秒等,取决于实施方式)。同样在等式1到4中,xk是表示在时间k的卡尔曼滤波器状态的矢量,fk是表示在时间k的卡尔曼滤波器状态转移模型的矩阵,wk是表示在时间k的过程噪声的矢量(这里,正态分布具有零均值和协方差),zk是表示表示在时间k的观测(对卡尔曼滤波器的输入)的矢量,hk是表示在时间k的观测模型(即,测量/观测到卡尔曼滤波器状态的映射)的矩阵,并且vk是表示在时间k的观测噪声的矢量(这里,正态分布具有零均值和协方差rk)。“过程噪声”wk表示对估计/状态有影响但是没有在系统模型中直接捕获的参数(在这种情况下,是加速度),并且“观测噪声”vk表示输入到卡尔曼滤波器的测量/观测中的噪声。

在示例过程300中,卡尔曼滤波器状态xk是具有三个元素的矢量:用户的真实速度(s),用户的步态模型的斜率(m),以及用户的步态模型的y截距(n),其中步态模型包括表示作为节奏函数的步长的线。在等式2的观测模型hk不是线性函数的实施例中(例如,如以下在等式18和19中所见),自定义卡尔曼滤波器是扩展卡尔曼滤波器,使得等式2被替换为以下等式:

zk=h(xk)+vk(等式5)

出于预测的目的,过程300的卡尔曼滤波器假设用户的速度和步态模型参数不会从一个时间增量改变到下一个时间增量。该假设是由于过程300的卡尔曼滤波器不对加速度建模的事实。为了反映这个假设,fk是3x3单位矩阵,对于k的所有值都是固定的。

卡尔曼滤波器的操作通常在每个时间间隔(即,每个k值)包括两个步骤/阶段:先验(priori)预测步骤,和后验(posteriori)更新步骤。在预测步骤中,卡尔曼滤波器基于时间k-1的系统模型生成下一个状态x和状态协方差p的预测,如下:

状态协方差p可以被看作是等式6的预测中的不确定性的度量。由于fk是单位矩阵,所以等式6和7导致预测的状态与先前状态估计相同,并且状态协方差是先前的状态协方差加上协方差qk(它捕获了自上一个时间间隔以来状态可能进一步改变的程度)。在过程300中,过程噪声wk的协方差qk可以被动态地设置为反映由于加速度未被系统建模而导致的不确定性的水平,如下面进一步讨论的。

在预测步骤之后,在后验更新步骤,该估计是基于当前的(时间k)观测被如下更新的:

在等式8和9中,kk在时间k的卡尔曼滤波器增益(标量值),dzk是表示在时间k的观测残差的矢量,并且i是单位矩阵。卡尔曼滤波器增益kk,所述观测残差dzk,和用于计算卡尔曼滤波器增益的残差协方差(sk)被计算如下:

因此,观测残差dzk是测量值zk和预期测量值之间的差。由于等式8中的乘数dzk,卡尔曼滤波器增益kk确定新的测量值(更精确地,新的测量值和预期测量值之间的差)将会影响状态的当前估计的程度。新的/当前状态估计是卡尔曼滤波器在时间k的输出(即,在该实施方式中,新速度,步态模型斜率和步态模型截距)。也存储用于下一个时间间隔的预测步骤,此时将用作等式6中量如等式9所示,卡尔曼滤波器增益kk也确定状态协方差预测pk|k-1和观测噪声协方差rk将影响当前的协方差pk|k的程度。新的/当前协方差pk|k还存储用于下一个时间间隔的预测步骤,此时pk|k将用作等式7中的量pk-1|k-1。

该示例过程300对应于其中三个观测值/测量值被输入到卡尔曼滤波器的实施方式:从gnss信号的多普勒频移导出的第一用户速度,从gnss位置导出的第二用户速度,和用户节奏(例如,基于测量的用户步数和已知时间间隔所计算的)。如上面的等式2所示,hk将测量值/观测值zk映射到卡尔曼滤波器状态xk。三种不同的测量值中的每一种(基于多普勒的速度,基于位置的速度,基于步数的节奏)与其自身的hk相关联。如果xk表示为列矢量[smn](k),那么:

hk(多普勒)=[100](等式13)

hk(位置)=[100](等式14)

因此,等式13和14,使各个测量的/观测的速度被直接映射到状态xk的速度s。

对于该节奏测量(或者,如下面所讨论,从节奏测量确定的平均的节奏),hk是更复杂的。当计算的步长在具有非零斜率的步态模型的范围内时(例如,图4的区域262a或264a),以下等式成立:

在这种情况下,观测函数是二次的:

为了简化等式18的解,可以通过采用在的梯度h(s,m,n)来进行近似(即,在最近状态估计周围的泰勒级数):

对于等式20到22,g定义为:

当所计算的步长在步态模型具有零斜率的范围(例如,在图4的区域262b,262c,264b,或264c)内时,步长是恒定的(csl)并且节奏是:

在这种情况下,将节奏测量值映射到速度的hk(节奏)就是:

为了避免由于g或m接近零而导致的不稳定性(或节奏停留在恒定值),g和/或m都可以受到下限值的约束。

如上所述,在过程300中,观测噪声vk具有均值为零和协方差为rk的正态分布。从等式10和12看出,协方差rk用于计算卡尔曼滤波器增益kk。此外,从等式10和12看出,较大的协方差rk导致较小的卡尔曼滤波器增益kk。因此,更加嘈杂的观测通常使得观测对状态具有较小的影响。

rk的值可以反映过程300中三种观测值中的每种观测值的不同的不确定性的量(即,基于多普勒的速度,基于位置的速度,和基于步数的节奏)。对于基于多普勒的速度,活动追踪应用可以将rk(多普勒)设置为固定的协方差值(例如,0.36m2/s2),其对测量噪声的水平做出某些假设。在其他实施方式中,多普勒导出速度的源(例如,图1的移动检测单元22,图2的gnss单元110,或图3的gnss单元210)可以提供rk(多普勒),作为固定或动态变化的值。在一个实施方式中,可以将rk(多普勒)设置为等于在一段时间(例如,最近的10秒)内在多普勒导出的速度样本中观测到的方差(或将rk(多普勒)以其他方式从该方差导出),其中由活动追踪应用和/或多普勒导出速度的源来测量和/或计算该方差。

对于基于位置的速度,活动追踪应用可以基于位置的方差(用于第一维的和用于第二维的)来计算rk(位置)。例如,对于位置l1和l2,经过时间微分dt测量,速度可以被计算为并且rk(位置)可被近似为:

在等式26中,cf2是相关因子,指示gnss位置测量值l1和l2之间的相关性的强度(例如,其中,位置在一致的方向上并通过一致的量从真实位置偏移)。在一些实施方式中,l1和l2不是相邻的测量值,而是相隔一段预定的时间(例如,10秒)。这通常可以减少与位置导出的速度测量值相对应的观测噪声量。活动追踪应用可将相关因子设置为固定值(例如,0.25),或在位置导出速度的源(例如,图1的移动检测单元20,图2的gnss单元110,或图3的gnss单元210)可以提供相关因子,作为固定或动态变化的值。同样在等式26中,uf是路径不确定因子,其反映了这样一个事实,即,随着这些位置变得更加分开,用户在两个位置之间采用直线路径的可能性越来越小。活动追踪应用可基于位置之间的距离来设定或计算路径不确定性因子,或者位置导出的速度的源(例如,图1的移动检测单元20,图2的gnss单元110,或图3的gnss单元210)可以将路径不确定因子提供为固定或动态变化的值。

对于节奏,活动追踪应用可假定计步器(从其导出节奏)是高度准确可靠的,最坏的情况是,该计步器错过了给定时间间隔的第一步和最后一步。在此假设下,活动追踪应用可以将rk(节奏)计算为:

在其他实施方式中,活动追踪应用可以从计步器测量的源(例如,图1的移动检测单元24,图2的计步器单元112,或者图3的计步器单元212)接收rk(节奏)的值,作为固定或动态变化的值。

如上面还指出,在过程300,该过程噪声wk具有均值为零、协方差为qk的正态分布。qk反映了状态估计的不确定性,并且在自定义卡尔曼滤波器中用于控制状态从先前更新变化了多少。一般地,当qk较小时,对状态估计有更大的置信度,并且状态由于新的测量结果被更新更多。相反,当qk较大时,对状态估计有较小的置信度,并且状态由于新的测量结果被更新更少。通常,较小的qk有助于平滑来自gnss测量的噪声,但使得状态对用户速度的实际变化的响应更少,而较大的qk提供较少的平滑,但使状态对用户速度的实际变化的响应更多(即,允许状态估计更快地收敛到新的速度)。

在示例过程300中,过程噪声协方差定义如下:

qs=(accs*dt)2(等式29)

qm=(accm*dt)2(等式30)

qn(accn*dt)2(等式31)

可以基于各种因子动态地设置值accs,accm和accn中的一个或多个。在示例过程300中,值accs具有标称值,但是如果已经检测到停止或者如果检测到大的和突然的速度变化,则将值accs设置为更高的值。在一个实施方式中,例如,如果最近检测到停止(预定时间量,例如15秒,10秒等),则accs从标称值0.01m/s2增加到值0.3m/s2,以及如果检测到大的突然的速度变化(例如,仅在发生大的速度变化时,或者在一些稍长的时间段内,等等),则从标称值0.01m/s2的增加到值0.05m/s2。另外或替代地,当用户刚刚开始追踪活动时(例如,在“冷启动”时),并且此后预定的一段时间(例如,20秒),在降低到标称值之前,可以将accs设置为更高的值(例如,0.3m/s2)。下面参考图5更详细地讨论用于检测停止和大速度变化的技术。

此外,在示例过程300中,值accm具有标称值,但如果节奏是零(或,在一些实施方式中,如果节奏低于低的预定阈值),则值accm被设置为新值。例如,accm在正常操作期间可以具有标称值(0.1/120),但是如果节奏低于预定阈值,则降低到零。在一个实施方式中,值accn是accm和/或节奏的函数。例如,可以将accn设置为等于accm与测量(或平均节奏)的乘积。

现在再次参考图5中所示的数据流图,可以看出,gnss数据310和计步器数据312被作为输入提供给过程300。gnss数据310和计步器数据312可以包括每个时间间隔(例如,上面讨论的k值的每个增量)的新的观测值/测量值。在一些实施方式中,过程300还被设计为处理一些或所有观测值在一个或多个时间间隔内丢失的情况,和/或在可获得额外观测值的情况。例如,gnss数据310可以通过诸如图2的gnss单元110或图3的gnss单元210的设备或组件来提供,并且计步器数据312可以通过诸如图2的计步器单元112或图3的计步器单元212的设备或组件来提供。

gnss数据310包括表示两个独立的速度测量值的数据:从gnss信号的多普勒频移导出的第一速度,和从gnss位置位移(例如,连续gnss位置之间的距离)导出的第二速度。计步器数据312包括指示用户进行的步数的数据(例如,自上一个测量间隔以来的累积步数)。在过程阶段320,gnss数据310的多普勒导出速度被转换为多普勒速度332,其被添加到观测队列330的第一队列中的速度。在过程阶段322,gnss数据310的位置导出速度被转换为位置位移速度334,其被添加到观测队列330的第二队列中的速度。在过程阶段324,计步器数据312被转换为节奏336,该节奏336被添加到观测队列330的第三队列中的节奏。观测队列330通常保留最近速度和节奏信息的历史,其可用于识别用户可能快速且实质上改变他或她的速度的时间(如下面进一步讨论的)。

在一些实施方式中,gnss数据310提供原始数据(例如,多普勒频移信息和/或位置,或位置位移),在这种情况下,过程阶段320和/或过程阶段322可以进行确定速度值所需的计算。在其他实施方式中,gnss数据310已经包括多普勒导出的和位置导出的速度值。例如,过程阶段324可以通过将预定时间间隔中的步数除以该时间间隔的长度来将计步器数据312转换为节奏值。在计步器数据312仅包括指示没有累积计数的每个新脚步(可以被视为“计数”到一个,在每个检测到的脚步之后计数被重置为零)的实施方式中,过程阶段324还可以确定在预定时间间隔内的累积步数。过程阶段320,322,324中的一个、一些或全部还可以或替代地将所接收的数据转换为更适合于过程300中的稍后处理的格式。

在过程阶段340,在最后的观测到的用户的“大”速度变化的时间基于观测队列330中的多普勒速度和/或位置位移速度而被识别。例如,可以基于最后的i个时间间隔(例如,最后10个间隔,100个间隔等)来计算多普勒速度测量值的平均值和标准偏差,并且过程阶段340可以检测何时新的多普勒速度测量值(或者某个数量的最近测量值的平均值等)是远离平均值的至少一些阈值量(例如,远离平均值的至少两个标准偏差等)。在一些实施方式中,过程阶段340以这种方式基于排队的多普勒速度和排队的位置位移速度来独立地识别速度变化,并且如果两个源都指示这种变化,则仅仅指示“有效”速度变化。在其他实施方式中,过程阶段340联合将算法应用于这些排队数据的两个源,以确定何时发生这样的速度变化,仅查看这些排队数据源中的一个,和/或另外基于排队的节奏数据确定最后一次大的速度变化的时间。

在过程阶段342,基于观察队列330中的节奏来识别用户最后一次停止的时间。例如,只有在最近的时间间隔中计数的脚步为零(或小于阈值步数等)时,才可以确定用户“停止”。在一些实施方式中,还使用或替代地使用其他信息来确定用户是否已经停止。例如,如果观测队列330中最近的多普勒速度、位置位移速度和节奏(或一定数量的最近值等)都确认用户已经停止时,则过程阶段342可以确定用户已经停止。在计步器不能或不会唤醒活动追踪应用(或负责检测停止的活动追踪应用的一部分)、以及计步器只能在步数改变时提供报告并且一些其他触发器已唤醒活动追踪应用的实施方式中,当(1)计步器尚未提供至少某个阈值时间量(例如,6秒)的更新并且(2)gnss多普勒速度和gnss位置速度中的至少一个低于某个阈值水平(例如,0.5米/秒)时,检测到停止。后一种情况可用于防止“误报”(即,实际上未发生的检测到的停止),其在估计误差方面通常比误报成本高得多。

在过程阶段350,基于观察队列330中的节奏值来计算平均节奏。在一个实施方式中,节奏在预定的时间窗口(例如,30秒)取平均值,但是不延伸超过由过程阶段340检测到的最后“大”速度变化的时间,并且不延长超过由过程阶段342检测到的上次停止的时间。换句话说,节奏的平均窗口可以设置为标称时间值或时间间隔数,但可以在上端受到(1)自上次大速度变化以来的时间和(2)自上次停止以来的时间中的较小者的限制。这种有界平均技术可以帮助防止紧接在停止和/或大的速度变化之后的时间段内的偏斜的平均节奏。在其他实施方式中,时间平均窗口以另一种方式界定(例如,仅仅自上次停止以来的时间),或者简单地固定在标称值。

卡尔曼滤波器系统模型的各种参数在图5中显示为参考数字360,362或364。具体地,模型参数360表示卡尔曼滤波器状态转移模型f,模型参数362代表观测模型h、观测残差dz、和观测噪声协方差r,并且模型参数364代表过程噪声协方差q。这些参数对应于上面的等式1至27中包括的参数(在等式1到27中的下标k或k-1表示相对时间间隔)。

如上所述,状态转移模型f(模型参数360)在示例过程300中是固定的。另一方面,参数h,dz和r(模型参数362)可以受到新的观测/测量的影响,如上面的等式和图5中从多普勒速度332、位置位移速度334和平均节奏350到模型参数362的箭头所反映的。同样如上所述,过程噪声协方差q(模型参数364)通常可被保持在相对低的标称值,但是如果最近检测到停止或观测到大的速度变化,也可以被改变为较高值。在图5中,这通过从过程阶段340和过程阶段342到模型参数364的箭头来反映。在一些实施方式中,过程阶段340可以区分两个或更多级别的“大”速度变化(例如,与第一级速度变化相对应的平均值的一到两个标准偏差,与第二级速度变化相对应的平均值的两到三个标准偏差,等等),并且基于识别的速度变化级别,模型参数364被设定为各个值。基于模型参数360,362和364,并且如上面的等式所反映,在过程阶段370估计卡尔曼滤波器状态。

示例用户显示

这里描述的技术(例如,结合图1的系统10,图2的系统100,图3的系统200,和/或图5的过程300)可以根据具体实施方式而用于输出诸如实时、瞬时速度、步长的信息和/或其他信息。例如,可以将由过程300和/或图1的卡尔曼滤波器42、图2的卡尔曼滤波器132或图3的卡尔曼滤波器232连续更新的一个或多个状态显示给用户。另外或替代地,可以实时显示从这些状态中的一个或多个状态导出的一个或多个参数。应当理解,如本文所使用的,术语“瞬时”可以用于表示不是精确瞬时的参数(例如,速度),而是涉及一些相对少量的平均。例如,如果输入到卡尔曼滤波器的gnss速度是平滑技术的产物,则某些平均可能是本文描述的技术所固有的。此外,在一些实施方式中,本文中所描述的技术自身添加一些量的平滑或平均(例如,在图5的过程300中,由于在过程阶段350对节奏进行平均,和/或如果在观测队列330中的gnss速度在被输入卡尔曼滤波器之前在短时间窗口内被平均等)。

实时速度和/或其它参数可以在他或她正在步行/跑步时显示给用户。例如,活动追踪应用可以使诸如图1的用户界面34、图2的用户界面124或图3的用户界面262(和/或用户界面224)之类的用户界面将实时参数显示给用户。另外或替代地,作为卡尔曼滤波器状态(和/或从其导出的参数)被连续更新的速度、步态模型参数和/或其他参数可以存储在存储器中(例如,图1的存储器32,图2的存储器122和/或表现数据库152,或图3的存储器222、存储器270和/或表现数据库252,用于稍后的呈现(例如,在跑步/步行完成之后,如果用户已经明确同意共享他或她的数据,则上传到图2的服务器104或图3的服务器204)。作为一个示例,如果用户已经明确同意共享他或她的数据,则响应于用户选择由活动追踪应用(例如,图2的活动追踪应用130或图3的活动追踪应用230)提供的交互式“上传”控件,诸如图1的服务器104或图2的服务器204的服务器可以从移动计算设备(例如,图2的移动计算设备102或图3的移动计算设备202)接收数据。此后,服务器可以将数据处理成适合于在图形用户界面(gui)上呈现的格式,用户可以通过在不同计算设备使用网页浏览器应用或专用应用来访问该数据(例如,在输入登录信息和密码之后)。

包括三个显示400,402和404的可能生成的示例呈现显示在图6中。第一显示400在大约20分钟的跑步过程中绘制了用户的步速412(以每英里分钟数为单位)与时间的关系,其中在第八和第十三分钟左右暂停/休息。例如,步速412可以是等于速度估计(或从速度估计导出,例如,速度估计的倒数),该速度估计是在多个不同时间卡尔曼滤波器在过程300中的状态。例如,在显示400中还可以看到gnss步速410,其可以等于(或导出自)基于多普勒的gnss速度或基于位置的gnss速度(或者两者的平均值等)。gnss步速410可被省略,并且在此示出主要是为了说明在自定义卡尔曼滤波器可提供的噪声水平的潜在改进、以及响应的潜在改进(例如,当用户停止或开始时由更陡的负或正的斜率所看出的)。

图6中的第二显示402绘制了在跑步/步行过程中用户的节奏420(以每秒步数为单位)和用户的步长422(以每步米数为单位)与时间的关系。节奏420可以是在多个不同时间在过程300的过程阶段350计算的平均节奏的值,并且步长422可以从在多个不同时间的卡尔曼滤波器状态的步态模型参数的值(例如,过程300中的斜率和截距)计算出,并且可以从在那些时间的平均节奏计算出。

第三显示404绘制用户的步态模型。步态模型430(单线)可以表示在跑步/步行的过程中用户的平均步态模型的至少一部分(例如,平均斜率和截距),并且多个步态模型432可以表示在跑步/步行中的多个不同时间中的每个时间的瞬时步态模型(或其一部分)。例如,可以使用如卡尔曼滤波器在多个不同时间更新的、卡尔曼滤波器的斜率和截距状态的值(在过程300中),来绘制步态模型432。在每个用户与步行和跑步步态模型相关联的一些实施方式中,第三显示404可以仅对应于步行步态模型,并且第四显示可以示出用户的跑步步态模型(或者第三显示404可以另外示出跑步步态模型,或者用户可以选择显示哪个步态模型等)。

诸如节奏和步长的准确的、瞬间步态特征随时间的显示(显示402),和/或诸如用户的节奏与用户的步长的关系的模型的显示(显示404),可帮助该用户将来修改他或她的步态以改善跑步表现。传统方法不允许以相当水平的准确度呈现这样的显示(至少,步长与时间以及步态模型与时间的关系)。应当理解,可以使用不同的单位和/或反向度量,诸如用于速度或步速的分钟/公里(例如,每小时公里数,每分钟公里数,每公里分钟数等)。类似地,可以使用不同的单元和/或反向度量(例如,脚步周期而不是节奏)来示出节奏和步长。

示例方法

根据一个实施方式的用于准确估计用户的步态特征的示例方法450在图7中示出。方法450可以被实施为指令,该指令存储在计算机可读介质上,并由计算设备的一个或多个处理器执行。参考图1至图3,例如,该方法450可以由活动追踪应用40,活动追踪应用130或活动追踪应用230来实施。

在框452,随时间监测第一多个参数。第一多个参数中的每个参数指示用户的移动。第一参数包括用户的第一gnss导出速度(例如,使用gnss位置或gnss多普勒频移确定的速度)和用户的步数。所监测的步数可以是累积计数,或者可以仅仅是每个新脚步的指示(其可以稍后累积,例如,在框454)。在一些实施方式中,还可以监测一个或多个其他参数。在一个实施方式中,例如,第一参数包括使用gnss位置确定的第一速度、使用gnss多普勒频移确定的第二速度和步数(或完全由使用gnss位置确定的第一速度、使用gnss多普勒频移确定的第二速度和步数组成)。

可以通过从外部设备和/或从实施方法450的计算设备中集成的组件接收那些参数的值来监测第一参数。在计算设备是移动计算设备(例如,智能手机或智能手表)的实施方式中,例如,框452可以包括接收由移动计算设备外部的一个或多个设备(例如,安装在脚上或脚附近的设备)生成的实时数据,和/或接收由移动计算设备的一个或多个组件(例如,gnss单元和/或加速度计)生成的实时数据。作为另一示例,在计算设备是远离用户的服务器并且用户已经明确同意共享他或她的数据的实施方式中,框452可以包括通过网络(例如,图2的网络106或图3的网络206)接收由用户携带的一个或多个移动计算设备(例如,智能电话和/或智能手表)生成的实时数据。

在框454,对监测到的第一多个参数的值进行处理,以确定第二多个参数的值。第二多个参数中的每一个也指示用户的移动。在块中的处理454包括将至少一个监测到的第一参数的值和/或从一个或多个监测到的第一参数导出的至少一个参数的值,作为输入应用到估计器(例如,卡尔曼滤波器)。估计器状态包括第二参数,第二参数的值在框454确定。也就是说,经由估计器提供的估计/更新来确定第二参数的值。

在一个实施方式中,第二参数包括至少两个参数,该至少两个参数共同地指示用户的步频(节奏)和用户的步长之间的映射。例如,第二参数可以包括表示用户的步频与步长之间的映射的线的斜率、以及那条线的x截距或y截距。第二参数还可以或替代地包括用户的速度、和/或一个或多个其他参数。

在估计器是卡尔曼滤波器的某些实施方式中,根据如上结合图5所讨论的过程300的任何一个实施方式来部分地或完全地进行框454的处理。因此,例如,该框454的处理可以包括:在多个时间间隔中的每个时间间隔,预测卡尔曼滤波器状态的值在最近的时间间隔并未从卡尔曼滤波器状态的相应值、和/或动态设置的卡尔曼滤波器使用的过程噪声协方差(q)的值产生变化。此外,动态设置的过程噪声协方差的值可以包括当至少用户的步数指示用户已经停止时增加过程噪声协方差,和/或当用户的至少第一gnss导出的速度指示用户已经加速或减速(并且因此增加/减小速度)超过阈值量时增加过程噪声协方差。作为另一示例,在框454的处理可以包括确定时间间隔窗口上的平均节奏,其中上窗口长度由(1)预定的最大窗口长度、(2)自检测到上次用户停止以来的时间、和/或(3)自检测到上次“大”用户速度变化(例如,至少一些阈值量)以来的时间中的最小值限定。

在框456,使得(由实施方法450的计算设备、或由另一计算设备呈现的)gui显示至少一个第二参数和/或从一个或多个第二参数导出的至少一个参数的值。例如,gui可以包括用户的步频和步长之间的映射的视觉表示,和/或用户的瞬时速度。其他示例包括平均速度(如使用当前、瞬时速度计算的),当前和/或平均步长,等。在实施方法450的计算设备是移动计算设备(例如,智能手机或智能手表)的一个实施方式中,例如,框456可以包括使移动计算设备的显示器上的gui显示适当的值。在计算设备是远离用户的服务器并且用户已经明确同意共享他或她的数据的一些实施方式中,框456可以包括经由无线网络(例如,图2的网络106或图3的网络206),将指示第二参数的值的数据(和/或指示从第二参数导出的一个或多个参数的值的数据)发送到用户的移动计算设备(例如,智能手机或智能手表),以使移动计算设备的gui显示适当的值。

在图7中所示的框的顺序并不一意味着严格按照那个顺序进行那些框。例如,在实时实施方式中,可以在框452继续监测参数,同时在框454处理那些参数的较早值和/或在框456显示值。此外,方法450可以包括图7中未示出的一个或多个附加框。例如,方法450可以在框454之前包括附加框,在附加框,从多个步态模型(例如,如以上结合图4所讨论的跑步步态模型和步行步态模型)中选择步态模型(对应于用户的当前步态类型)。在一个这样的实施方式中,步频和步长之间的映射(以上结合框454讨论的)特定于所选择的步态模型。此外,作为估计器输出的该映射的值可以用于更新所选择的步态模型(例如,实时地)。

在一些实施方式中,从方法450中省略框456。例如,方法450可以包括附加框(图7中未示出),在该附加框,处理第二参数,仅用于除显示之外的目的(例如,为特定用户生成自动的基于文本的建议,或自动确定特定用户的种族品种(raceseeding)等)。

发明的示例方面

虽然前述文字阐述了本发明的许多不同的方面和实施例的详细描述,但是应当理解的是,专利范围是由本专利结尾所阐述的权利要求书的言辞来限定。详细描述应被解释为仅是示例性的,并未描述每个可能的实施例,因为如果不是不可能的话,描述每个可能的实施例将是不切实际的。使用当前技术或在本专利申请日之后开发的技术可以实施方式许多替代实施例,这仍然落入权利要求的范围内。作为示例而非限制,本文的公开内容至少考虑以下方面。

方面1-一种在计算设备中实施的用于准确估计用户的步态特征的方法,所述方法包括:(1)检测指示所述用户的移动的第一多个参数,其中监测所述第一多个参数包括监测(i)所述用户的第一gnss导出速度和(ii)所述用户的步数;(2)处理监测到的第一多个参数的值,以确定指示所述用户移动的第二多个参数的值,其中处理所述监测到的第一多个参数的值包括:将以下中的一个或两者(i)所述监测到的第一多个参数中的至少一个的值、以及(ii))从所述监测到的第一多个参数中的一个或多个导出的至少一个参数的值,作为输入应用于具有作为估计器状态的所述第二多个参数的估计器,和所述第二多个参数中的至少两个参数共同指示所述用户的步频与所述用户的步长之间的映射;和使得所述计算设备或另一计算设备的图形用户界面显示以下中的一个或两者的值:(i)所述第二多个参数中的至少一个参数、以及(ii)从所述第二多个参数中的一个或多个导出的至少一个参数。

方面2-如方面1的方法,还包括:在处理所述监测到的第一多个参数的值之前:从多个步态模型中选择对应于所述用户的当前步态类型的第一步态模型,其中,所述用户的步频和所述用户的步长之间的所述映射特定于所述第一步态模型。

方面3-如方面2的方法,其中,所述多个步态模型包括跑步步态模型和步行步态模型。

方面4-如方面2或3的方法,进一步包括:使用所述用户的用户和步长的步频之间的映射的值,如由输出估计,更新第一步态模型。

方面5-如方面1-4中任一个的方法,所述第二多个参数中的至少两个参数包括:(i)表示所述用户的步频与所述用户的步长之间的所述映射的线的斜率、以及(ii)表示所述用户的步频和所述用户的步长之间的所述映射的所述线的截距。

方面6-如方面1-5中任一个的方法,其中,第二多个参数的附加参数是所述用户的速度。

方面7-如方面1-6中任一个的方法,其中:监测所述第一多个参数包括监测(i)所述用户的所述第一gnss导出速度,(ii)所述用户的第二gnss导出速度,以及(iii)所述用户的所述步数;所述用户的所述第一gnss导出速度是使用gnss位置确定的速度;和所述用户的所述第二gnss导出速度是使用gnss多普勒频移确定的速度。

方面8-如方面1-7中任一个的方法,其中,处理所述监测到的第一多个参数的值包括:在多个时间间隔中的每个时间间隔,预测所述估计器状态的值没有从最近时间间隔的所述估计器状态的相应值发生变化。

方面9-如方面1-8中任一个的方法,其中,估计器是卡尔曼滤波器。

方面10-如方面9的方法,处理所述监测到的第一多个参数的值还包括动态设置由所述卡尔曼滤波器使用的过程噪声协方差的值。

方面11-如方面10的方法,其中,动态设置所述过程噪声协方差的值包括:当至少所述用户的所述步数指示所述用户已经停止时,增加所述过程噪声协方差。

方面12-如方面10或11的方法,其中,动态设置所述过程噪声协方差的值包括:当至少所述用户的所述第一gnss导出速度指示所述用户已经加速或减速超过阈值量时,增加所述过程噪声协方差。

方面13-如方面1-12中任一个的方法,其中:所述计算设备是所述用户的移动计算设备;和监测指示所述用户移动的所述第一多个参数包括接收由所述移动计算设备外部的一个或多个设备生成的实时数据。

方面14-如方面1-12中任一个的方法,其中:所述计算设备是服务器;监测指示所述用户移动的所述第一多个参数包括经验无线网络从所述用户的移动计算设备接收由所述移动计算设备生成的实时数据;和使图形用户界面以显示值包括:经由所述无线网络,将以下中的一个或两者(i)指示所述第二多个参数的值的数据、以及(ii)指示从所述第二多个参数导出的一个或多个参数的值的数据,发送到所述移动计算设备,使所述移动计算设备的图形用户界面显示以下中的一个或两者的值:(i)所述第二多个参数中的至少一个参数、以及(ii)从所述第二多个参数中的一个或多个导出的至少一个参数。

方面15-如方面1-14中任一个的方法,包括:使所述计算设备或其他计算设备的图形用户界面显示所述用户的步频和所述用户的步长之间的所述映射的视觉表示。

方面16-一种存储指令的非暂时性计算机可读介质,所述指令在由计算设备的一个或多个处理器执行时,使所述计算设备:(1)监测指示用户的移动的第一多个参数,其中所述第一多个参数包括(i)所述用户的第一gnss导出速度和(ii)所述用户的步数;(2)处理监测到的第一多个参数的值,以确定指示所述用户移动的第二多个参数的值,其中处理所述监测到的第一多个参数的值包括:将以下中的一个或两者(i)所述监测到的第一多个参数中的至少一个的值、以及(ii)从所述监测到的第一多个参数中的一个或多个导出的至少一个参数的值,作为输入应用于具有作为估计器状态的所述第二多个参数的估计器,和所述第二多个参数中的至少两个参数共同指示所述用户的步频与所述用户的步长之间的映射;和在所述计算设备的图形用户界面上显示,或使得另一计算设备的图形用户界面显示以下中的一个或两者的值:(i)所述第二多个参数中的至少一个参数、以及(ii)从所述第二多个参数中一个或多个导出的至少一个参数。

方面17-如方面16的非暂时性计算机可读介质,其中,指令还使所述计算设备:(1)在处理所述监测到的第一多个参数的值之前,从多个步态模型中选择对应于所述用户的当前步态类型的第一步态模型,其中,所述用户的步频与所述用户的步长之间的所述映射特定于所述第一步态模型,并且其中所述多个步态模型包括跑步步态模型和步行步态模型;和(2)使用所述用户的步频和所述用户的步长之间的所述映射的值作为所述估计器的输出,以更新所述第一步态模型。

方面18-一种移动计算设备,包括:显示屏;一个或多个处理器;和存储指令的存储器,当由所述一个或多个处理器执行时,使得所述移动计算设备(1)监测指示所述移动计算设备的用户的移动的第一多个参数,其中所述第一多个参数包括(i)所述用户的第一gnss导出速度和(ii)所述用户的步数,(2)处理监测到的第一多个参数的值,以确定指示所述用户的移动的第二多个参数的值,其中处理所述监测到的第一多个参数的值包括:将以下中的一个或两者(i)所述监测到的第一多个参数中的至少一个的值、以及(ii)从所述监测到的第一多个参数中的一个或多个导出的至少一个参数的值,作为输入应用于具有作为估计器状态的所述第二多个参数的估计器,和所述第二多个参数中的至少两个参数共同指示所述用户的步频与所述用户的步长之间的映射;和在所述显示屏上呈现的图形用户界面上显示以下中的一个或两者的值:(i)所述第二多个参数中的至少一个参数、以及(ii)从所述第二多个参数中的一个或多个导出的至少一个参数。

方面19-如方面18的移动计算设备,还包括gnss单元,其中:所述第一多个参数包括(i)所述用户的所述第一gnss导出速度,(ii)所述用户的第二gnss导出速度,以及(iii)所述用户的所述步数;所述用户的所述第一gnss导出速度是使用gnss位置确定的速度;和所述用户的所述第二gnss导出速度是使用gnss多普勒频移确定的速度;和所述指令使所述移动计算设备(i)至少通过监测由所述gnss单元生成的所述第一gnss导出速度的值来监测所述用户的所述第一gnss导出速度;(ii)至少通过监测由所述gnss单元生成的所述第二gnss导出速度的值来监测所述用户的第二gnss导出速度。

方面20-如方面18或19的移动计算设备,还包括计步器单元,其中:所述指令使所述移动计算设备至少通过监测由所述计步器单元生成的所述步数的值来监测所述用户的步数。

方面21-如方面18-20中任一个的移动计算设备,其中,指令使所述移动计算设备在呈现在显示屏上的图形用户界面上显示,用户的步频和用户的步长之间的映射的视觉表示。

其他考虑

以下附加考虑适用于前述讨论。在整个说明书中,多个实例可以实施被描述为单个实例的组件,操作或结构。尽管一个或多个方法的各个操作被示出并描述为单独的操作,但是可以同时进行一个或多个单独的操作,并且不需要以所示的顺序进行操作。在示例配置中作为单独组件呈现的结构和功能可以实施为组合结构或组件。类似地,作为单个组件呈现的结构和功能可以实施为单独的组件。这些和其他变化,修改,添加,并且改进落入本公开的主题的范围内。

除非另有具体说明,在本发明中使用诸如“处理”,“计算”,“计算”,“确定”,“呈现”,“显示”等的讨论可以指机器(例如,计算机)的动作或处理,该机器操纵或转换在一个或多个存储器(例如,易失性存储器,非易失性存储器或其组合)、寄存器或接收、存储、传输或显示信息的其他机器组件内表示为物理(例如,电子,磁性或光学)量的数据。

作为用于在本公开中的任何参考“一个实施方式”或者“实施方式”意味着结合实施方式描述的特定元素,特征,结构,或特性被包括在至少一个实施方式或实施例。在说明书中各处出现的短语“在一个实施方式中”不一定都指的是相同的实施方式。

作为用于在本公开中,术语“包括”,“包含”,“包括”,“包括”,“具有”,“具有”或其任何其它变型均旨在涵盖非排他性的包括。例如,包括元素列表的过程,方法,物品或装置不一定仅限于那些元素,而是可以包括未明确列出的或者这种过程,方法,物品或装置固有的其他元素。此外,除非有相反的明确说明,“或”是指包含性的或不是排他性的。例如,条件a或b由以下任何一个满足:a为真(或存在)且b为假(或不存在),a为假(或不存在)且b为真(或存在),以及a和b都是真的(或存在)。

一旦阅读了本公开内容,本领域的技术人员将理解用于额外替代结构和功能设计是采用定制的实时估计速度和/或步态特征估计器通过在本公开中所公开的原理。因此,虽然已经说明和描述了特定实施例和应用,但是应该理解,所公开的实施例不限于本公开中公开的精确构造和部件。在不脱离所附权利要求限定的精神和范围的情况下,可以在本公开中公开的方法和装置的布置,操作和细节中进行对于本领域技术人员显而易见的各种修改,改变和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1