CN105987692B - 一种导航方法及装置 - Google Patents
一种导航方法及装置 Download PDFInfo
- Publication number
- CN105987692B CN105987692B CN201510092480.3A CN201510092480A CN105987692B CN 105987692 B CN105987692 B CN 105987692B CN 201510092480 A CN201510092480 A CN 201510092480A CN 105987692 B CN105987692 B CN 105987692B
- Authority
- CN
- China
- Prior art keywords
- travel
- user
- moment
- step number
- traveling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Navigation (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明实施例公开了一种导航方法及装置,涉及通信技术领域,用以在GPS不能覆盖的环境中为用户导航。具体方案为:实时识别用户的行进方向;实时记录用户的行进步数;若识别到用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数;其中,第一时刻为当前时刻,第二时刻在第一时刻之前,第二时刻与第一时刻间隔预设时间。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种导航方法及装置。
背景技术
随着智能手机、平板电脑等用户终端的发展,越来越多的用户终端开始为用户提供导航功能。
现有技术中,用户终端主要通过全球定位系统(英文:Global PositioningSystem,缩写:GPS)为用户提供导航功能。用户终端可以通过GPS实时获取用户的位置,并记录用户从出发地到目的地所经过的路线,当用户需要从目的地返回出发地时,用户终端可以通过GPS获取用户的当前位置,并结合之前记录的路线,计算出用户从目的地返回出发地的路线,并提示用户按照计算出的路线返回出发地,从而为用户导航。
但是,对于室内或地下停车场等GPS不能覆盖的环境,上述导航方法不可用。因此,需要提出一种可以在GPS不能覆盖的环境中为用户导航的方法。
发明内容
本发明实施例提供一种导航方法及装置,用以在GPS不能覆盖的环境中为用户导航。
本发明实施例的第一方面,提供一种导航方法,所述方法包括:
实时记录所述用户的行进步数;
若识别到所述用户在第一时刻的行进方向与所述用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数;
其中,所述第一时刻为当前时刻,所述第二时刻在所述第一时刻之前,所述第二时刻与所述第一时刻间隔预设时间。
结合第一方面,在第一方面的第一种可能的实现方式中,所述保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数,包括:
获取记录的所述用户在所述第二时刻的行进方向上的行进步数;
若记录的所述用户在所述第一时刻的行进方向上的行进步数大于等于第一预设步数阈值,则保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数。
结合第一方面,在第一方面的第二种可能的实现方式中,在所述保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数之后,所述方法还包括:
获取记录的所述用户在所述第一时刻的行进方向上的行进步数;
若识别到所述用户在第三时刻的行进方向与所述用户在所述第一时刻的行进方向之间的偏移角度大于所述预设角度阈值,则保存所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数,所述第三时刻在所述第一时刻之后;
若所述用户在所述第一时刻的行进方向上的行进步数小于所述第一预设步数阈值,且所述用户在所述第三时刻的行进方向与所述用户在所述第二时刻的行进方向之间的偏移角度大于所述预设角度阈值,则将保存的所述用户在所述第二时刻的行进方向上的行进步数更新为所述用户在所述第二时刻的行进方向上的行进步数与所述用户在所述第一时刻的行进方向上的行进步数之和,并删除保存的所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数。
结合第一方面,在第一方面的第三种可能的实现方式中,在所述保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数之后,所述方法还包括:
获取记录的所述用户在所述第一时刻的行进方向上的行进步数;
若识别到所述用户在第三时刻的行进方向与所述用户在所述第一时刻的行进方向之间的偏移角度大于所述预设角度阈值,则保存所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数,所述第三时刻在所述第一时刻之后;
若所述用户在所述第一时刻的行进方向上的行进步数小于所述第一预设步数阈值,且所述用户在所述第三时刻的行进方向与所述用户在所述第二时刻的行进方向之间的偏移角度小于等于所述预设角度阈值,则将保存的所述用户在所述第二时刻的行进方向上的行进步数更新为所述用户在所述第二时刻的行进方向上的行进步数、所述用户在所述第一时刻的行进方向上的行进步数以及所述用户在所述第三时刻的行进方向上的行进步数之和,并删除保存的所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数。
结合第一方面和上述可能的实现方式,在第一方面的第四种可能的实现方式中,所述方法还包括:
若接收到终止指令,则保存终止方向和所述用户在所述终止方向上的行进步数,所述终止方向为接收到所述终止指令时识别到的所述用户的行进方向。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,在所述保存终止方向和所述用户在所述终止方向上的行进步数之后,所述方法还包括:
获取接收到所述终止指令时所述用户的位置信息,并保存所述位置信息。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述方法还包括:
根据保存的行进方向和所述用户在所述行进方向上的行进步数,生成路线记录,所述路线记录用于为所述用户导航。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述路线记录中包含多条记录,所述多条记录中的每一条记录包含所述用户的一个行进方向和所述用户在所述一个行进方向上的行进步数;
在所述根据保存的行进方向和所述用户在所述行进方向上的行进步数,生成路线记录之后,所述方法还包括:
读取所述路线记录中的第一记录和第二记录,所述第一记录为所述路线记录中的任意一条记录,所述第二记录为与所述第一记录相邻的一条记录,所述第一记录中包含第一行进方向和所述用户在所述第一行进方向上的行进步数,所述第二记录中包含第二行进方向和所述用户在所述第二行进方向上的行进步数;
计算所述第一行进方向和所述第二行进方向之间的偏移角度;
根据所述用户在所述第一行进方向上的行进步数、所述用户在所述第二行进方向上的行进步数以及所述第一行进方向和所述第二行进方向之间的偏移角度,结合预设公式,计算偏移步数;
若所述偏移步数小于第二预设步数阈值,则用第三记录替换所述路线记录中的所述第一记录和所述第二记录,所述第三记录中包含第三行进方向和所述用户在所述第三行进方向上的行进步数;
其中,所述预设公式为:
h表示所述偏移步数,a表示所述用户在所述第一行进方向上的行进步数,b表示所述用户在所述第二行进方向上的行进步数,C表示所述第一行进方向和所述第二行进方向之间的偏移角度,sin表示正弦,cos表示余弦;
所述第三行进方向为以所述用户在所述第一行进方向上的行进步数为大小、以所述第一行进方向为方向的矢量,与以所述用户在所述第二行进方向上的行进步数为大小、以所述第二行进方向为方向的矢量的矢量和所表示的矢量的方向,所述用户在所述第三行进方向上的行进步数为所述矢量和所表示的矢量的大小。
本发明实施例的第二方面,提供一种导航装置,所述导航装置包括:
方向识别单元,用于实时识别用户的行进方向;
步数记录单元,用于实时记录所述用户的行进步数;
保存单元,用于若识别到所述用户在第一时刻的行进方向与所述用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数;
其中,所述第一时刻为当前时刻,所述第二时刻在所述第一时刻之前,所述第二时刻与所述第一时刻间隔预设时间。
结合第二方面,在第二方面的第一种可能的实现方式中,所述保存单元,包括:
获取模块,用于获取所述步数记录单元记录的所述用户在所述第二时刻的行进方向上的行进步数;
保存模块,用于若所述步数记录单元记录的所述用户在所述第一时刻的行进方向上的行进步数大于等于第一预设步数阈值,则保存所述方向识别单元识别到的所述用户在所述第二时刻的行进方向和所述获取模块获取的所述步数记录单元记录的所述用户在所述第二时刻的行进方向上的行进步数。
结合第二方面,在第二方面的第二种可能的实现方式中,所述导航装置还包括:
步数获取单元,用于在所述保存单元保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数之后,获取所述步数记录单元记录的所述用户在所述第一时刻的行进方向上的行进步数;
所述保存单元,具体用于若所述方向识别单元识别到所述用户在第三时刻的行进方向与所述用户在所述第一时刻的行进方向之间的偏移角度大于所述预设角度阈值,则保存所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数,所述第三时刻在所述第一时刻之后;
优化单元,用于若所述步数获取单元获取的所述用户在所述第一时刻的行进方向上的行进步数小于所述第一预设步数阈值,且所述方向识别单元识别到所述用户在所述第三时刻的行进方向与所述用户在所述第二时刻的行进方向之间的偏移角度大于所述预设角度阈值,则将保存的所述用户在所述第二时刻的行进方向上的行进步数更新为所述用户在所述第二时刻的行进方向上的行进步数与所述用户在所述第一时刻的行进方向上的行进步数之和,并删除保存的所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数。
结合第二方面,在第二方面的第三种可能的实现方式中,所述导航装置还包括:
步数获取单元,用于在所述保存单元保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数之后,获取所述步数记录单元记录的所述用户在所述第一时刻的行进方向上的行进步数;
所述保存单元,具体用于若所述方向识别单元识别到所述用户在第三时刻的行进方向与所述用户在所述第一时刻的行进方向之间的偏移角度大于所述预设角度阈值,则保存所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数,所述第三时刻在所述第一时刻之后;
优化单元,用于若所述步数获取单元获取的所述用户在所述第一时刻的行进方向上的行进步数小于所述第一预设步数阈值,且所述方向识别单元识别到所述用户在所述第三时刻的行进方向与所述用户在所述第二时刻的行进方向之间的偏移角度小于等于所述预设角度阈值,则将保存的所述用户在所述第二时刻的行进方向上的行进步数更新为所述用户在所述第二时刻的行进方向上的行进步数、所述用户在所述第一时刻的行进方向上的行进步数以及所述用户在所述第三时刻的行进方向上的行进步数之和,并删除保存的所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数。
结合第二方面和上述可能的实现方式中,在第二方面的第四种可能的实现方式中,所述导航装置还包括:
接收单元,用于接收终止指令;
所述保存单元,还用于保存终止方向和所述用户在所述终止方向上的行进步数,所述终止方向为接收到所述终止指令时识别到的所述用户的行进方向。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述导航装置还包括:
位置获取单元,用于在所述保存单元保存终止方向和所述用户在所述终止方向上的行进步数之后,获取接收到所述终止指令时所述用户的位置信息;
所述保存单元,还用于保存所述位置信息。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述导航装置还包括:
路线生成单元,用于根据保存的行进方向和所述用户在所述行进方向上的行进步数,生成路线记录,所述路线记录用于为所述用户导航。
结合第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述路线记录中包含多条记录,所述多条记录中的每一条记录包含所述用户的一个行进方向和所述用户在所述一个行进方向上的行进步数;
所述导航装置,还包括:
读取单元,用于在所述路线生成单元根据保存的行进方向和所述用户在所述行进方向上的行进步数,生成路线记录之后,读取所述路线记录中的第一记录和第二记录,所述第一记录为所述路线记录中的任意一条记录,所述第二记录为与所述第一记录相邻的一条记录,所述第一记录中包含第一行进方向和所述用户在所述第一行进方向上的行进步数,所述第二记录中包含第二行进方向和所述用户在所述第二行进方向上的行进步数;
计算单元,用于计算所述第一行进方向和所述第二行进方向之间的偏移角度;
所述计算单元,还用于根据所述用户在所述第一行进方向上的行进步数、所述用户在所述第二行进方向上的行进步数以及所述第一行进方向和所述第二行进方向之间的偏移角度,结合预设公式,计算偏移步数;
替换单元,用于若所述偏移步数小于第二预设步数阈值,则用第三记录替换所述路线记录中的所述第一记录和所述第二记录,所述第三记录中包含第三行进方向和所述用户在所述第三行进方向上的行进步数;
其中,所述预设公式为:
h表示所述偏移步数,a表示所述用户在所述第一行进方向上的行进步数,b表示所述用户在所述第二行进方向上的行进步数,C表示所述第一行进方向和所述第二行进方向之间的偏移角度,sin表示正弦,cos表示余弦;
所述第三行进方向为以所述用户在所述第一行进方向上的行进步数为大小、以所述第一行进方向为方向的矢量,与以所述用户在所述第二行进方向上的行进步数为大小、以所述第二行进方向为方向的矢量的矢量和所表示的矢量的方向,所述用户在所述第三行进方向上的行进步数为所述矢量和所表示的矢量的大小。
本发明实施例提供的导航方法和装置,实时识别用户的行进方向;实时记录用户的行进步数;若识别到用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数,即当用户的行进方向发生改变时,保存行进方向改变之前用户的行进方向以及用户在该方向上的行进步数。当用户需要返回出发地时,只需按照已保存的行进方向的反方向行进与保存的行进步数相同的步数即可返回出发地,整个过程中不需要使用GPS,因此,本发明实施例的方法可以在GPS不能覆盖的环境中为用户进行导航。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种导航方法的流程图;
图2为本发明实施例提供的另一种导航方法的流程图;
图3为本发明实施例提供的一种路线记录的示意图;
图4为本发明实施例提供的另一种导航方法的流程图;
图5为本发明实施例提供的另一种导航方法的流程图;
图6为本发明实施例提供的一种用户的行进方向和行进步数的示意图;
图7为本发明实施例提供的另一种导航方法的流程图;
图8为本发明实施例提供的另一种路线记录的示意图;
图9为本发明实施例提供的一种导航装置的组成示意图;
图10为本发明实施例提供的另一种导航装置的组成示意图;
图11为本发明实施例提供的另一种导航装置的组成示意图;
图12为本发明实施例提供的另一种导航装置的组成示意图;
图13为本发明实施例提供的另一种导航装置的组成示意图;
图14为本发明实施例提供的另一种导航装置的组成示意图;
图15为本发明实施例提供的另一种导航装置的组成示意图;
图16为本发明实施例提供的另一种导航装置的组成示意图;
图17为本发明实施例提供的另一种导航装置的组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种导航方法,如图1所示,该方法包括:
S101、导航装置实时识别用户的行进方向。
其中,导航装置可以通过电子罗盘来识别用户的行进方向,也可以通过导航装置中的其他具有方向识别功能的模块来识别用户的行进方向。导航装置可以为智能手机、平板电脑等。
S102、导航装置实时记录用户的行进步数。
其中,导航装置可以通过计步器来实时记录用户的行进步数,也可以通过导航装置中的其他具有计步功能的模块来记录用户的行进步数。
S103、若导航装置识别到用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数。
其中,第一时刻为当前时刻,第二时刻在第一时刻之前,第二时刻与第一时刻间隔预设时间。预设时间可以根据需要进行设置,例如,预设时间可以设为100毫秒。预设角度阈值也可以根据需要进行设置,例如,预设角度阈值可以为60°,本发明实施例这里对预设角度阈值的具体值不做限定。
若导航装置识别到用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则表示用户的行进方向发生改变。用户在第二时刻的行进方向即行进方向改变之前用户的行进方向,用户在第一时刻的行进方向即行进方向改变之后用户的行进方向。当用户的行进方向发生改变时,保存行进方向改变之前用户的行进方向以及用户在该方向上的行进步数。例如,用户的行进方向由向东方向改变为向南方向时,则保存向东方向和用户在向东方向上的行进步数,假设用户向东行进20步后,向南行进,则用户在向东方向上的行进步数为20步。假设用户向南行进30步后又向西行进,则当用户的行进方向由向南方向改变为向西方向时,保存向南方向和用户在向南方向上的行进步数(30步)。
需要说明的是,第一时刻为当前时刻,第一时刻随着时间的推移不断变化。S103可能会重复执行,即当用户的行进方向发生改变时,就保存行进方向改变之前用户的行进方向以及用户在该方向上的行进步数。
本发明实施例提供的导航方法,导航装置实时识别用户的行进方向;导航装置实时记录用户的行进步数;若导航装置识别到用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数,即当用户的行进方向发生改变时,保存行进方向改变之前用户的行进方向以及用户在该方向上的行进步数。当用户需要返回出发地时,只需按照已保存的行进方向的反方向行进与保存的行进步数相同的步数即可返回出发地,整个过程中不需要使用GPS,因此,本发明实施例的方法可以在GPS不能覆盖的环境中为用户进行导航。
本发明实施例还提供一种导航方法,如图2所示,该方法包括:
S201、导航装置接收启动记录指令。
其中,启动记录指令用于指示导航装置开始识别用户的行进方向和记录用户的行进步数。用户可以通过按键输入启动记录指令,或者通过语音输入启动记录指令。本发明实施例对启动记录指令的具体形式不做限定。
S202、导航装置实时识别用户的行进方向。
S203、导航装置实时记录用户的行进步数。
S204、导航装置判断用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度是否大于预设角度阈值。
其中,第一时刻为当前时刻,第二时刻在第一时刻之前,第二时刻与第一时刻间隔预设时间。预设时间可以根据需要进行设置,例如,当预设时间为100毫秒时,导航装置需要周期性的判断用户在当前时刻的行进方向与用户在100毫秒之前的行进方向之间的偏移角度是否大于预设角度阈值。
当用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值时,表示用户的行进方向发生改变,执行S205;当用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度小于等于预设角度阈值时,表示用户的行进方向未发生改变,导航装置则继续记录用户在当前时刻的行进方向上的行进步数。
S205、导航装置保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数。
S206、导航装置判断是否接收到终止指令。
其中,终止指令用于指示导航装置终止记录用户的行进方向和行进步数。用户可以通过按键输入终止指令,或者通过语音输入终止指令。本发明实施例对终止指令的具体形式不做限定。
当导航装置接收到终止指令时,执行S207;当导航装置未接收到终止指令时,导航装置继续识别用户在当前时刻的行进方向和记录用户在当前时刻的行进方向上的行进步数,导航装置重复执行S204-S206,其中,第一时刻实时变化,第一时刻始终为当前时刻。
S207、导航装置保存终止方向和用户在终止方向上的行进步数。
其中,终止方向为导航装置接收到终止指令时识别到的用户的行进方向。
S208、导航装置获取接收到终止指令时用户的位置信息,并保存该位置信息。
其中,位置信息为目的地的位置信息。位置信息可以通过文字、图片或者语音的形式记录。当导航装置接收到终止指令时,导航装置可以指示用户手动输入文字,以记录该位置信息;或者可以提示用户用相机拍照,以记录该位置信息;或者可以提示用户通过录音记录该位置信息。示例性的,当导航装置接收到终止指令时,用户位于1号电梯负一层,导航装置可以指示用户手动输入“1号电梯负一层”这几个文字,以记录该位置信息;导航装置还可以提示用户用相机拍照,用相机拍下电梯号和楼层;导航装置还可以提示用户录音,以语音的形式记录用户的位置信息。
S209、导航装置根据保存的行进方向和用户在该行进方向上的行进步数,生成路线记录。
其中,路线记录用于为用户导航,路线记录中包含多条记录,每一条记录包含用户的一个行进方向和用户在该行进方向上的行进步数。路线记录可以通过用户界面呈现给用户,具体的,路线记录可以以文字的形式呈现,也可以以图形的形式呈现,本发明实施例对路线记录的形式不做限定。
示例性的,如图3所示,路线记录以图形的形式呈现。由图3可知,用户从出发地出发,先沿A方向行进30步,再沿B方向行进40步,再沿C方向行进20步,再沿D方向行进50步后到达目的地。假设出发地为用户的停车位,目的地为商场入口(1号电梯负一层))。当用户从商场返回停车位时,可以根据导航装置中保存的位置信息,走到相应的位置(即1号电梯负一层),再按照导航装置根据路线记录生成的导航指令的指示,沿D方向的反方向行进50步,再沿C方向的反方向行进20步,再沿B方向的反方向行进40步,再沿A方向的反方向行进30步,即可到达出发地。
本发明实施例提供的导航方法,导航装置接收启动记录指令,导航装置实时识别用户的行进方向;导航装置实时记录用户的行进步数;导航装置判断用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度是否大于预设角度阈值;当用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值时,导航装置保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数;导航装置判断是否接收到终止指令;当导航装置接收到终止指令时,保存终止方向和用户在终止方向上的行进步数;导航装置获取接收到终止指令时用户的位置信息,并保存该位置信息;导航装置根据保存的行进方向和用户在行进方向上的行进步数,生成路线记录。由于导航装置根据保存的行进方向和行进步数可以唯一确定出用户的行进路线,因此,当用户需要从目的地返回出发地时,只需按照路线记录中保存的行进方向的反方向行进与保存的行进步数相同的步数即可返回出发地,整个过程中不需要使用GPS,因此,本发明实施例的方法可以在GPS不能覆盖的环境中为用户进行导航。
进一步的,如图4所示,图2中的S205可以替换为S205a-S205c。
S205a、导航装置获取记录的用户在第二时刻的行进方向上的行进步数。
S205b、导航装置判断记录的用户在第一时刻的行进方向上的行进步数是否大于第一预设步数阈值。
其中,第一预设步数阈值可以根据需要进行设置,例如,第一预设步数预设可以为5步、10步等。
当导航装置记录的用户在第一时刻的行进方向上的行进步数大于第一预设步数阈值时,执行S205c。
S205c、导航装置保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数。
示例性的,用户在第二时刻的行进方向为向东方向,导航装置获取记录的用户在向东方向上的行进步数为20步,假设第一预设步数为5步。导航装置实时记录用户在向南方向上的行进步数,当导航装置记录的用户在向南方向上的行进步数大于5步时,保存向东方向和用户在向东方向上的行进步数(20步)。当用户在向南方向上行进1步后,又开始在向东方向上行进时,用户向南方向上行进的这1步可以认为是干扰,在这种情况下,导航装置并不保存向东方向和用户在向东方向上的行进步数(20步),而是继续记录用户在向东方向上的行进步数,这样可以避免由于干扰(如,用户走偏或走错路)导致的记录不准确的问题。
本发明实施例还提供一种导航方法,如图5所示,该方法包括:
S301、导航装置接收启动记录指令。
S302、导航装置实时识别用户的行进方向。
S303、导航装置实时记录用户的行进步数。
S304、导航装置判断用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度是否大于预设角度阈值。
其中,第一时刻为当前时刻,第二时刻在第一时刻之前,第二时刻与第一时刻间隔预设时间。当用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值时,表示用户的行进方向发生改变,执行S305。
S305、导航装置保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数。
S306、导航装置获取记录的用户在第一时刻的行进方向上的行进步数。
S307、导航装置判断用户在第三时刻的行进方向与用户在第一时刻的行进方向之间的偏移角度是否大于预设角度阈值。
其中,第三时刻在第一时刻之后。
S308、导航装置保存用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数。
S309、导航装置判断用户在第一时刻的行进方向上的行进步数是否小于第一预设步数阈值。
当用户在第一时刻的行进方向上的行进步数小于第一预设步数阈值时,执行S310。
S310、导航装置判断用户在第三时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度是否大于预设角度阈值。
其中,第二时刻在第一时刻之前,第三时刻在第一时刻之后。当用户在第三时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值时,执行S311。当用户在第三时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度小于等于预设角度阈值时,执行S312。
S311、导航装置将保存的用户在第二时刻的行进方向上的行进步数更新为用户在第二时刻的行进方向上的行进步数与用户在第一时刻的行进方向上的行进步数之和,并删除保存的用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数。
S312、导航装置将保存的用户在第二时刻的行进方向上的行进步数更新为用户在第二时刻的行进方向上的行进步数、用户在第一时刻的行进方向上的行进步数以及用户在第三时刻的行进方向上的行进步数之和,并删除保存的用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数。
示例性的,如图6(a)和6(b)所示,用户在第二时刻的行进方向为A方向,用户在第一时刻的行进方向为B方向,用户在第三时刻的行进方向为C方向。假设预设角度阈值为60°,第一预设步数阈值为5步。
如图6(a)所示,A方向与B方向之间的偏移角度为∠1,∠1大于60°,B方向与C方向之间的偏移角度为∠2,∠2大于60°,则导航装置保存A方向和用户在A方向上的行进步数(30步),导航装置还保存B方向和用户在B方向上的行进步数(3步)。导航装置判断出用户在B方向上的行进步数小于5步,则判断C方向与A方向之间的偏移角度是否大于60°。图6(a)中,C方向与A方向之间的偏移角度(∠3)大于60°,则导航装置将保存的用户在A方向上的行进步数(30步)更新为用户在A方向上的行进步数(30步)与用户在B方向上的行进步数(3步)之和,即33步,并删除保存的B方向和用户在B方向上的行进步数。
如图6(b)所示,A方向与B方向之间的偏移角度为∠1,∠1大于60°,B方向与C方向之间的偏移角度为∠2,∠2大于60°,则导航装置保存A方向和用户在A方向上的行进步数(30步),导航装置还保存B方向和用户在B方向上的行进步数(3步)。导航装置判断出用户在B方向上的行进步数小于5步,则判断C方向与A方向之间的偏移角度是否大于60°。图6(b)中,C方向与A方向相同,即C方向与A方向之间的偏移角度小于60°,则导航装置将保存的用户在A方向上的行进步数(30步)更新为用户在A方向上的行进步数(30步)、用户在B方向上的行进步数(3步)以及用户在C方向上的行进步数(15步)之和,即48步,并删除保存的B方向和用户在B方向上的行进步数。
S313、导航装置判断是否接收到终止指令。
当接收到终止指令时,执行S314。
S314、导航装置保存终止方向和用户在终止方向上的行进步数。
其中,终止方向为导航装置接收到终止指令时识别到的用户的行进方向。
S315、导航装置获取接收到终止指令时用户的位置信息,并保存该位置信息。
S316、导航装置根据保存的行进方向和用户在该行进方向上的行进步数,生成路线记录。
本发明实施例提供的导航方法,导航装置保存了用户的每一个行进方向和用户在每一个行进方向上的行进步数。由于导航装置根据保存的行进方向和行进步数可以唯一确定出用户的行进路线,因此,当用户需要从目的地返回出发地时,只需按照路线记录中保存的行进方向的反方向行进与保存的行进步数相同的步数即可返回出发地,整个过程中不需要使用GPS,因此,本发明实施例的方法可以在GPS不能覆盖的环境中为用户进行导航。
本发明实施例还提供一种导航方法,如图7所示,该方法包括:
S401、导航装置接收启动记录指令。
S402、导航装置实时识别用户的行进方向。
S403、导航装置实时记录用户的行进步数。
S404、导航装置判断用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度是否大于预设角度阈值。
其中,第一时刻为当前时刻,第二时刻在第一时刻之前,第二时刻与第一时刻间隔预设时间。
当用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值时,表示用户的行进方向发生改变,执行S405;当用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度小于等于预设角度阈值时,表示用户的行进方向未发生改变,导航装置则继续记录用户在当前时刻的行进方向上的行进步数。
S405、导航装置保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数。
S406、导航装置判断是否接收到终止指令。
其中,终止指令用于指示导航装置终止记录用户的行进方向和行进步数。用户可以通过按键输入终止指令,或者通过语音输入终止指令。本发明实施例对终止指令的具体形式不做限定。
当接收到终止指令时,执行S407;当未接收到终止指令时,导航装置继续识别用户在当前时刻的行进方向和记录用户在当前时刻的行进方向上的行进步数,重复执行S404-S406,其中,第一时刻实时变化,第一时刻始终为当前时刻。
S407、导航装置保存终止方向和用户在终止方向上的行进步数。
其中,终止方向为导航装置接收到终止指令时识别到的用户的行进方向。
S408、导航装置获取接收到终止指令时用户的位置信息,并保存该位置信息。
S409、导航装置根据保存的行进方向和用户在该行进方向上的行进步数,生成路线记录。
其中,路线记录的具体描述可以参考S209中的相关描述,本发明实施例这里不再赘述。路线记录中包含多条记录,每一条记录包含用户的一个行进方向和用户在该行进方向上的行进步数。
S410、导航装置读取路线记录中的第一记录和第二记录。
其中,第一记录为路线记录中的任意一条记录,第二记录为与第一记录相邻的一条记录,第一记录中包含第一行进方向和用户在第一行进方向上的行进步数,第二记录中包含第二行进方向和用户在第二行进方向上的行进步数。
S411、导航装置计算第一行进方向和第二行进方向之间的偏移角度。
S412、导航装置根据用户在第一行进方向上的行进步数、用户在第二行进方向上的行进步数以及第一行进方向和第二行进方向之间的偏移角度,结合预设公式,计算偏移步数。
其中,预设公式为:
h表示偏移步数,a表示用户在第一行进方向上的行进步数,b表示用户在第二行进方向上的行进步数,C表示第一行进方向和第二行进方向之间的偏移角度,sin表示正弦,cos表示余弦。
S413、导航装置判断偏移步数是否小于第二预设步数阈值。
当偏移步数小于第二预设步数阈值时,执行S414。
S414、导航装置用第三记录替换路线记录中的第一记录和第二记录。
其中,第三记录中包含第三行进方向和用户在第三行进方向上的行进步数;第三行进方向为以用户在第一行进方向上的行进步数为大小、以第一行进方向为方向的矢量,与以用户在第二行进方向上的行进步数为大小、以第二行进方向为方向的矢量的矢量和所表示的矢量的方向,用户在第三行进方向上的行进步数为矢量和所表示的矢量的大小。
示例性的,如图8所示,第一记录中包含A方向和用户在A方向上的行进步数(40步),第二记录中包含B方向和用户在B方向上的行进步数(10步),A方向和B方向之间的偏移角度为65°。第二预设步数阈值可以根据需要进行设置,本实施例中以第二预设步数阈值为10步为例进行说明。
导航装置根据用户在A方向上的行进步数(40步)、用户在B方向上的行进步数(10步)以及A方向和B方向之间的偏移角度(65°),计算出的偏移步数为:
由于计算出的偏移步数(8步)小于第二预设步数阈值(10步),因此,导航装置用第三记录替换路线记录中的第一记录和第二记录。第三记录中包含第三行进方向和用户在第三行进方向上的行进步数。其中,第三行进方向为图8中的C方向,用户在第三行进方向上的行进步数为45(根据计算得到)步。
本发明实施例提供的导航方法,导航装置保存了用户的每一个行进方向和用户在每一个行进方向上的行进步数。由于导航装置根据保存的行进方向和行进步数可以唯一确定出用户的行进路线,因此,当用户需要从目的地返回出发地时,只需按照路线记录中保存的行进方向的反方向行进与保存的行进步数相同的步数即可返回出发地,整个过程中不需要使用GPS,因此,本发明实施例的方法可以在GPS不能覆盖的环境中为用户进行导航。
本发明实施例还提供一种导航装置,如图9所示,该导航装置包括:方向识别单元51、步数记录单元52、保存单元53。
方向识别单元51,用于实时识别用户的行进方向。
步数记录单元52,用于实时记录用户的行进步数。
保存单元53,用于若识别到用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数。
其中,第一时刻为当前时刻,第二时刻在第一时刻之前,第二时刻与第一时刻间隔预设时间。
进一步的,如图10所示,在本发明实施例的一种情形中,保存单元53,可以包括:获取模块53a和保存模块53b。
获取模块53a,用于获取步数记录单元52记录的用户在第二时刻的行进方向上的行进步数。
保存模块53b,用于若步数记录单元52记录的用户在第一时刻的行进方向上的行进步数大于等于第一预设步数阈值,则保存方向识别单元51识别到的用户在第二时刻的行进方向和获取模块53a获取的步数记录单元52记录的用户在第二时刻的行进方向上的行进步数。
进一步的,如图11所示,在本发明实施例的另一种情形中,该导航装置还包括:步数获取单元54和优化单元55。
步数获取单元54,用于在保存单元53保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数之后,获取步数记录单元52记录的用户在第一时刻的行进方向上的行进步数。
保存单元53,具体用于若方向识别单元51识别到用户在第三时刻的行进方向与用户在第一时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数,第三时刻在第一时刻之后。
优化单元55,用于若步数获取单元54获取的用户在第一时刻的行进方向上的行进步数小于第一预设步数阈值,且方向识别单元51识别到用户在第三时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则将保存的用户在第二时刻的行进方向上的行进步数更新为用户在第二时刻的行进方向上的行进步数与用户在第一时刻的行进方向上的行进步数之和,并删除保存的用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数。
在本发明实施例的另一种情形中,步数获取单元54,用于在保存单元53保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数之后,获取步数记录单元52记录的用户在第一时刻的行进方向上的行进步数。
保存单元53,具体用于若方向识别单元51识别到用户在第三时刻的行进方向与用户在第一时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数,第三时刻在第一时刻之后。
优化单元55,用于若步数获取单元54获取的用户在第一时刻的行进方向上的行进步数小于第一预设步数阈值,且方向识别单元51识别到用户在第三时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度小于等于预设角度阈值,则将保存的用户在第二时刻的行进方向上的行进步数更新为用户在第二时刻的行进方向上的行进步数、用户在第一时刻的行进方向上的行进步数以及用户在第三时刻的行进方向上的行进步数之和,并删除保存的用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数。
进一步的,如图12所示,该导航装置还包括:接收单元56。
接收单元56,用于接收终止指令。
保存单元53,还用于保存终止方向和用户在终止方向上的行进步数,终止方向为接收到终止指令时识别到的用户的行进方向。
进一步的,如图13所示,该导航装置还包括:位置获取单元57。
位置获取单元57,用于在保存单元53保存终止方向和用户在终止方向上的行进步数之后,获取接收到终止指令时用户的位置信息。
保存单元53,还用于保存位置信息。
进一步的,如图14所示,该导航装置还包括:路线生成单元58。
路线生成单元58,用于根据保存的行进方向和用户在行进方向上的行进步数,生成路线记录,路线记录用于为用户导航。
进一步的,路线记录中包含多条记录,多条记录中的每一条记录包含用户的一个行进方向和用户在该行进方向上的行进步数。如图15所示,该导航装置还包括:读取单元59、计算单元510、替换单元511。
读取单元59,用于在路线生成单元58根据保存的行进方向和用户在行进方向上的行进步数,生成路线记录之后,读取路线记录中的第一记录和第二记录,第一记录为路线记录中的任意一条记录,第二记录为与第一记录相邻的一条记录,第一记录中包含第一行进方向和用户在第一行进方向上的行进步数,第二记录中包含第二行进方向和用户在第二行进方向上的行进步数。
计算单元510,用于计算第一行进方向和第二行进方向之间的偏移角度。
计算单元510,还用于根据用户在第一行进方向上的行进步数、用户在第二行进方向上的行进步数以及第一行进方向和第二行进方向之间的偏移角度,结合预设公式,计算偏移步数。
替换单元511,用于若偏移步数小于第二预设步数阈值,则用第三记录替换路线记录中的第一记录和第二记录,第三记录中包含第三行进方向和用户在第三行进方向上的行进步数。
其中,预设公式为:
h表示偏移步数,a表示用户在第一行进方向上的行进步数,b表示用户在第二行进方向上的行进步数,C表示第一行进方向和第二行进方向之间的偏移角度,sin表示正弦,cos表示余弦。
第三行进方向为以用户在第一行进方向上的行进步数为大小、以第一行进方向为方向的矢量,与以用户在第二行进方向上的行进步数为大小、以第二行进方向为方向的矢量的矢量和所表示的矢量的方向,用户在第三行进方向上的行进步数为矢量和所表示的矢量的大小。
需要说明的是,本发明实施例提供的导航装置中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的导航装置,导航装置实时识别用户的行进方向;导航装置实时记录用户的行进步数;若导航装置识别到用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数,即当用户的行进方向发生改变时,保存行进方向改变之前用户的行进方向以及用户在该方向上的行进步数。当用户需要返回出发地时,只需按照已保存的行进方向的反方向行进与保存的行进步数相同的步数即可返回出发地,整个过程中不需要使用GPS,因此,本发明实施例的方法可以在GPS不能覆盖的环境中为用户进行导航。
本发明实施例还提供一种导航装置,如图16所示,该导航装置包括:处理器61和存储器62。
处理器61,用于实时识别用户的行进方向;实时记录用户的行进步数。
存储器62,用于若识别到用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数。
其中,第一时刻为当前时刻,第二时刻在第一时刻之前,第二时刻与第一时刻间隔预设时间。
进一步的,在本发明实施例的一种情形中,处理器61,具体用于获取记录的用户在第二时刻的行进方向上的行进步数。
存储器62,具体用于若记录的用户在第一时刻的行进方向上的行进步数大于等于第一预设步数阈值,则保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数。
进一步的,在本发明实施例的另一种情形中,处理器61,还用于在存储器62保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数之后,获取记录的用户在第一时刻的行进方向上的行进步数。
存储器62,还用于若识别到用户在第三时刻的行进方向与用户在第一时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数,第三时刻在第一时刻之后。
处理器61,还用于若用户在第一时刻的行进方向上的行进步数小于第一预设步数阈值,且用户在第三时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则将保存的用户在第二时刻的行进方向上的行进步数更新为用户在第二时刻的行进方向上的行进步数与用户在第一时刻的行进方向上的行进步数之和,并删除保存的用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数;若用户在第一时刻的行进方向上的行进步数小于第一预设步数阈值,且用户在第三时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度小于等于预设角度阈值,则将保存的用户在第二时刻的行进方向上的行进步数更新为用户在第二时刻的行进方向上的行进步数、用户在第一时刻的行进方向上的行进步数以及用户在第三时刻的行进方向上的行进步数之和,并删除保存的用户在第一时刻的行进方向和用户在第一时刻的行进方向上的行进步数。
进一步的,如图17所示,该导航装置包括:接收器63。
接收器63,用于接收终止指令。
存储器62,还用于保存终止方向和用户在终止方向上的行进步数,终止方向为接收到终止指令时识别到的用户的行进方向。
进一步的,处理器61,还用于在保存终止方向和用户在终止方向上的行进步数之后,获取接收到终止指令时用户的位置信息。
存储器62,还用于保存位置信息。
进一步的,处理器61,还用于根据保存的行进方向和用户在行进方向上的行进步数,生成路线记录,路线记录用于为用户导航。
进一步的,路线记录中包含多条记录,多条记录中的每一条记录包含用户的一个行进方向和用户在一个行进方向上的行进步数。
处理器61,还用于在根据保存的行进方向和用户在行进方向上的行进步数,生成路线记录之后,读取路线记录中的第一记录和第二记录,第一记录为路线记录中的任意一条记录,第二记录为与第一记录相邻的一条记录,第一记录中包含第一行进方向和用户在第一行进方向上的行进步数,第二记录中包含第二行进方向和用户在第二行进方向上的行进步数;计算第一行进方向和第二行进方向之间的偏移角度;根据用户在第一行进方向上的行进步数、用户在第二行进方向上的行进步数以及第一行进方向和第二行进方向之间的偏移角度,结合预设公式,计算偏移步数;若偏移步数小于第二预设步数阈值,则用第三记录替换路线记录中的第一记录和第二记录,第三记录中包含第三行进方向和用户在第三行进方向上的行进步数。
其中,预设公式为:
h表示偏移步数,a表示用户在第一行进方向上的行进步数,b表示用户在第二行进方向上的行进步数,C表示第一行进方向和第二行进方向之间的偏移角度,sin表示正弦,cos表示余弦。
第三行进方向为以用户在第一行进方向上的行进步数为大小、以第一行进方向为方向的矢量,与以用户在第二行进方向上的行进步数为大小、以第二行进方向为方向的矢量的矢量和所表示的矢量的方向,用户在第三行进方向上的行进步数为矢量和所表示的矢量的大小。
其中,处理器61、存储器62和接收器63之间通过总线连接并完成相互间的通信。
处理器61可以为中央处理器(英文:central processing unit,缩写:CPU),也可以为CPU和数字信号处理器(英文:digital signal processor,缩写:DSP)的组合。
需要说明的是,本发明实施例提供的导航装置中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
本发明实施例提供的导航装置,导航装置实时识别用户的行进方向;导航装置实时记录用户的行进步数;若导航装置识别到用户在第一时刻的行进方向与用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存用户在第二时刻的行进方向和用户在第二时刻的行进方向上的行进步数,即当用户的行进方向发生改变时,保存行进方向改变之前用户的行进方向以及用户在该方向上的行进步数。当用户需要返回出发地时,只需按照已保存的行进方向的反方向行进与保存的行进步数相同的步数即可返回出发地,整个过程中不需要使用GPS,因此,本发明实施例的方法可以在GPS不能覆盖的环境中为用户进行导航。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,缩写:ROM)、随机存取存储器(英文:Random AccessMemory,缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种导航方法,其特征在于,所述方法包括:
实时识别用户的行进方向;
实时记录所述用户的行进步数;
若识别到所述用户在第一时刻的行进方向与所述用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数;
其中,所述第一时刻为当前时刻,所述第二时刻在所述第一时刻之前,所述第二时刻与所述第一时刻间隔预设时间;
其中,在所述保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数之后,所述方法还包括:
获取记录的所述用户在所述第一时刻的行进方向上的行进步数;
若识别到所述用户在第三时刻的行进方向与所述用户在所述第一时刻的行进方向之间的偏移角度大于所述预设角度阈值,则保存所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数,所述第三时刻在所述第一时刻之后;
若所述用户在所述第一时刻的行进方向上的行进步数小于第一预设步数阈值,且所述用户在所述第三时刻的行进方向与所述用户在所述第二时刻的行进方向之间的偏移角度大于所述预设角度阈值,则将保存的所述用户在所述第二时刻的行进方向上的行进步数更新为所述用户在所述第二时刻的行进方向上的行进步数与所述用户在所述第一时刻的行进方向上的行进步数之和,并删除保存的所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数。
2.根据权利要求1所述的方法,其特征在于,所述保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数,包括:
获取记录的所述用户在所述第二时刻的行进方向上的行进步数;
若记录的所述用户在所述第一时刻的行进方向上的行进步数大于等于第一预设步数阈值,则保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数。
3.根据权利要求1所述的方法,其特征在于,
若所述用户在所述第一时刻的行进方向上的行进步数小于所述第一预设步数阈值,且所述用户在所述第三时刻的行进方向与所述用户在所述第二时刻的行进方向之间的偏移角度小于等于所述预设角度阈值,则将保存的所述用户在所述第二时刻的行进方向上的行进步数更新为所述用户在所述第二时刻的行进方向上的行进步数、所述用户在所述第一时刻的行进方向上的行进步数以及所述用户在所述第三时刻的行进方向上的行进步数之和,并删除保存的所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
若接收到终止指令,则保存终止方向和所述用户在所述终止方向上的行进步数,所述终止方向为接收到所述终止指令时识别到的所述用户的行进方向。
5.根据权利要求4所述的方法,其特征在于,在所述保存终止方向和所述用户在所述终止方向上的行进步数之后,所述方法还包括:
获取接收到所述终止指令时所述用户的位置信息,并保存所述位置信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据保存的行进方向和所述用户在所述行进方向上的行进步数,生成路线记录,所述路线记录用于为所述用户导航。
7.根据权利要求6所述的方法,其特征在于,所述路线记录中包含多条记录,所述多条记录中的每一条记录包含所述用户的一个行进方向和所述用户在所述一个行进方向上的行进步数;
在所述根据保存的行进方向和所述用户在所述行进方向上的行进步数,生成路线记录之后,所述方法还包括:
读取所述路线记录中的第一记录和第二记录,所述第一记录为所述路线记录中的任意一条记录,所述第二记录为与所述第一记录相邻的一条记录,所述第一记录中包含第一行进方向和所述用户在所述第一行进方向上的行进步数,所述第二记录中包含第二行进方向和所述用户在所述第二行进方向上的行进步数;
计算所述第一行进方向和所述第二行进方向之间的偏移角度;
根据所述用户在所述第一行进方向上的行进步数、所述用户在所述第二行进方向上的行进步数以及所述第一行进方向和所述第二行进方向之间的偏移角度,结合预设公式,计算偏移步数;
若所述偏移步数小于第二预设步数阈值,则用第三记录替换所述路线记录中的所述第一记录和所述第二记录,所述第三记录中包含第三行进方向和所述用户在所述第三行进方向上的行进步数;
其中,所述预设公式为:
h表示所述偏移步数,a表示所述用户在所述第一行进方向上的行进步数,b表示所述用户在所述第二行进方向上的行进步数,C表示所述第一行进方向和所述第二行进方向之间的偏移角度,sin表示正弦,cos表示余弦;
所述第三行进方向为以所述用户在所述第一行进方向上的行进步数为大小、以所述第一行进方向为方向的矢量,与以所述用户在所述第二行进方向上的行进步数为大小、以所述第二行进方向为方向的矢量的矢量和所表示的矢量的方向,所述用户在所述第三行进方向上的行进步数为所述矢量和所表示的矢量的大小。
8.一种导航装置,其特征在于,所述导航装置包括:
方向识别单元,用于实时识别用户的行进方向;
步数记录单元,用于实时记录所述用户的行进步数;
保存单元,用于若识别到所述用户在第一时刻的行进方向与所述用户在第二时刻的行进方向之间的偏移角度大于预设角度阈值,则保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数;
其中,所述第一时刻为当前时刻,所述第二时刻在所述第一时刻之前,所述第二时刻与所述第一时刻间隔预设时间;
所述导航装置还包括:
步数获取单元,用于在所述保存单元保存所述用户在所述第二时刻的行进方向和所述用户在所述第二时刻的行进方向上的行进步数之后,获取所述步数记录单元记录的所述用户在所述第一时刻的行进方向上的行进步数;
所述保存单元,具体用于若所述方向识别单元识别到所述用户在第三时刻的行进方向与所述用户在所述第一时刻的行进方向之间的偏移角度大于所述预设角度阈值,则保存所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数,所述第三时刻在所述第一时刻之后;
优化单元,用于若所述步数获取单元获取的所述用户在所述第一时刻的行进方向上的行进步数小于第一预设步数阈值,且所述方向识别单元识别到所述用户在所述第三时刻的行进方向与所述用户在所述第二时刻的行进方向之间的偏移角度大于所述预设角度阈值,则将保存的所述用户在所述第二时刻的行进方向上的行进步数更新为所述用户在所述第二时刻的行进方向上的行进步数与所述用户在所述第一时刻的行进方向上的行进步数之和,并删除保存的所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数。
9.根据权利要求8所述的导航装置,其特征在于,所述保存单元,包括:
获取模块,用于获取所述步数记录单元记录的所述用户在所述第二时刻的行进方向上的行进步数;
保存模块,用于若所述步数记录单元记录的所述用户在所述第一时刻的行进方向上的行进步数大于等于第一预设步数阈值,则保存所述方向识别单元识别到的所述用户在所述第二时刻的行进方向和所述获取模块获取的所述步数记录单元记录的所述用户在所述第二时刻的行进方向上的行进步数。
10.根据权利要求8所述的导航装置,其特征在于,
所述优化单元,还用于若所述步数获取单元获取的所述用户在所述第一时刻的行进方向上的行进步数小于所述第一预设步数阈值,且所述方向识别单元识别到所述用户在所述第三时刻的行进方向与所述用户在所述第二时刻的行进方向之间的偏移角度小于等于所述预设角度阈值,则将保存的所述用户在所述第二时刻的行进方向上的行进步数更新为所述用户在所述第二时刻的行进方向上的行进步数、所述用户在所述第一时刻的行进方向上的行进步数以及所述用户在所述第三时刻的行进方向上的行进步数之和,并删除保存的所述用户在所述第一时刻的行进方向和所述用户在所述第一时刻的行进方向上的行进步数。
11.根据权利要求8-10中任一项所述的导航装置,其特征在于,所述导航装置还包括:
接收单元,用于接收终止指令;
所述保存单元,还用于保存终止方向和所述用户在所述终止方向上的行进步数,所述终止方向为接收到所述终止指令时识别到的所述用户的行进方向。
12.根据权利要求11所述的导航装置,其特征在于,所述导航装置还包括:
位置获取单元,用于在所述保存单元保存终止方向和所述用户在所述终止方向上的行进步数之后,获取接收到所述终止指令时所述用户的位置信息;
所述保存单元,还用于保存所述位置信息。
13.根据权利要求12所述的导航装置,其特征在于,所述导航装置还包括:
路线生成单元,用于根据保存的行进方向和所述用户在所述行进方向上的行进步数,生成路线记录,所述路线记录用于为所述用户导航。
14.根据权利要求13所述的导航装置,其特征在于,所述路线记录中包含多条记录,所述多条记录中的每一条记录包含所述用户的一个行进方向和所述用户在所述一个行进方向上的行进步数;
所述导航装置,还包括:
读取单元,用于在所述路线生成单元根据保存的行进方向和所述用户在所述行进方向上的行进步数,生成路线记录之后,读取所述路线记录中的第一记录和第二记录,所述第一记录为所述路线记录中的任意一条记录,所述第二记录为与所述第一记录相邻的一条记录,所述第一记录中包含第一行进方向和所述用户在所述第一行进方向上的行进步数,所述第二记录中包含第二行进方向和所述用户在所述第二行进方向上的行进步数;
计算单元,用于计算所述第一行进方向和所述第二行进方向之间的偏移角度;
所述计算单元,还用于根据所述用户在所述第一行进方向上的行进步数、所述用户在所述第二行进方向上的行进步数以及所述第一行进方向和所述第二行进方向之间的偏移角度,结合预设公式,计算偏移步数;
替换单元,用于若所述偏移步数小于第二预设步数阈值,则用第三记录替换所述路线记录中的所述第一记录和所述第二记录,所述第三记录中包含第三行进方向和所述用户在所述第三行进方向上的行进步数;
其中,所述预设公式为:
h表示所述偏移步数,a表示所述用户在所述第一行进方向上的行进步数,b表示所述用户在所述第二行进方向上的行进步数,C表示所述第一行进方向和所述第二行进方向之间的偏移角度,sin表示正弦,cos表示余弦;
所述第三行进方向为以所述用户在所述第一行进方向上的行进步数为大小、以所述第一行进方向为方向的矢量,与以所述用户在所述第二行进方向上的行进步数为大小、以所述第二行进方向为方向的矢量的矢量和所表示的矢量的方向,所述用户在所述第三行进方向上的行进步数为所述矢量和所表示的矢量的大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510092480.3A CN105987692B (zh) | 2015-03-02 | 2015-03-02 | 一种导航方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510092480.3A CN105987692B (zh) | 2015-03-02 | 2015-03-02 | 一种导航方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105987692A CN105987692A (zh) | 2016-10-05 |
CN105987692B true CN105987692B (zh) | 2019-02-12 |
Family
ID=57038530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510092480.3A Active CN105987692B (zh) | 2015-03-02 | 2015-03-02 | 一种导航方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105987692B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107504979A (zh) * | 2017-07-31 | 2017-12-22 | 上海斐讯数据通信技术有限公司 | 运动距离计算方法及装置及可穿戴设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464156A (zh) * | 2007-12-19 | 2009-06-24 | 联想(北京)有限公司 | 记录行进轨迹的装置、便携式电子设备和方法 |
CN102692224A (zh) * | 2011-03-24 | 2012-09-26 | 昆达电脑科技(昆山)有限公司 | 附于载具的导航系统及其导航方法 |
CN104501808A (zh) * | 2014-11-19 | 2015-04-08 | 广东欧珀移动通信有限公司 | 路径追踪方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2601569C (en) * | 2005-03-18 | 2015-08-18 | Gatekeeper Systems, Inc. | Navigation systems and methods for wheeled objects |
JP5249556B2 (ja) * | 2007-11-06 | 2013-07-31 | 三菱重工業株式会社 | 走行経路検出用の車載器 |
-
2015
- 2015-03-02 CN CN201510092480.3A patent/CN105987692B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464156A (zh) * | 2007-12-19 | 2009-06-24 | 联想(北京)有限公司 | 记录行进轨迹的装置、便携式电子设备和方法 |
CN102692224A (zh) * | 2011-03-24 | 2012-09-26 | 昆达电脑科技(昆山)有限公司 | 附于载具的导航系统及其导航方法 |
CN104501808A (zh) * | 2014-11-19 | 2015-04-08 | 广东欧珀移动通信有限公司 | 路径追踪方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105987692A (zh) | 2016-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105283775B (zh) | 移动机器人以及音源位置推定系统 | |
CN102016857B (zh) | 虚拟空间提供装置、程序和虚拟空间提供系统 | |
CN105528359B (zh) | 用于存储行进轨迹的方法和系统 | |
CN108389264B (zh) | 坐标系统确定方法、装置、存储介质及电子设备 | |
EP3168571B1 (en) | Utilizing camera to assist with indoor pedestrian navigation | |
EP3477971A1 (en) | Method and apparatus for generating, managing, and sharing moving path | |
CN105241446B (zh) | 一种室内导航路线生成方法及用户终端 | |
CN106767772B (zh) | 地磁指纹分布图的构建方法和装置及定位方法和装置 | |
CN106705984B (zh) | 兴趣点搜索方法及装置 | |
JP2013533671A5 (zh) | ||
WO2009089196A3 (en) | Systems and methods to provide navigational assistance using an online social network | |
CN102338639A (zh) | 信息处理设备和信息处理方法 | |
CN105466414B (zh) | 一种导航路线的推荐方法及服务器 | |
WO2015187474A1 (en) | Visibility of a point of interest based on environmental conditions | |
CN104618581A (zh) | 一种终端 | |
CN108680196A (zh) | 一种时延校正方法、系统及计算机可读介质 | |
CN109218982A (zh) | 景点信息获取方法、装置、移动终端以及存储介质 | |
US20130314443A1 (en) | Methods, mobile device and server for support of augmented reality on the mobile device | |
CN105917329B (zh) | 信息显示装置和信息显示程序 | |
CN109615360A (zh) | 一种图形编码展示方法和装置 | |
CN105987692B (zh) | 一种导航方法及装置 | |
CN113610702B (zh) | 一种建图方法、装置、电子设备及存储介质 | |
CN107766476B (zh) | 基于楼块数据的众包数据处理方法、装置、设备及存储介质 | |
CN105973254A (zh) | 一种在导航设备中确定导航信息的方法和装置 | |
US11692829B2 (en) | System and method for determining a trajectory of a subject using motion data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |