定位方法、装置、机器人及计算机可读存储介质
技术领域
本申请涉及视觉导航技术领域,特别涉及一种定位方法、装置、机器人及计算机可读存储介质。
背景技术
随着科学技术,如传感器技术、人工智能算法的迅速发展,基于视觉的即时定位与地图构建(VSLAM)的机器人的自主定位导航技术取得了一定成果,从而进一步丰富了机器人的功能,使得机器人的应用范围不断扩大,比如在物流行业使用的自动送货机器人,正逐步代替人完成部分作业或全部作业,使越来越多人得到更多的个人休闲时间,以便享受生活。
但是,发明人发现现有技术中至少存在如下问题:由于具备自主定位导航功能的机器人并非仅在室内等路面平坦的地方行走,还需要在室外等地面情况复杂的环境中行走,比如铺设有鹅卵石的路面。当在起伏不平的路面上行走时,机器人会不断颠簸,从而导致用于采集周围环境图像的图像采集装置(如照相机)长时间处于曝光状态,无法拍摄到清晰的图像。由于拍摄到的周围环境图像不清晰,无法与预先构建的地图进行匹配,定位出机器人当前所处的位置,使得机器人不能及时、准确的规划导航路线,完成工作,同时也严重影响了用户的使用体验。
发明内容
本申请部分实施例所要解决的一个技术问题在于提供一种定位方法、装置、机器人及计算机可读存储介质,以解决上述技术问题。
本申请的一个实施例提供了一种定位方法,该定位方法应用于具有自主定位导航功能的机器人,包括:在行驶达到预设距离的过程中,确定通过周围环境图像进行定位失败;控制机器人减速行驶,并在减速行驶的过程中通过周围环境图像进行定位,直至定位成功。
本申请的一个实施例提供了一种定位装置,该定位装置应用于具有自主定位导航功能的机器人,包括定位模块和控制模块;定位模块,用于在行驶达到预设距离的过程中,通过周围环境图像进行定位;控制模块,用于在定位模块确定通过周围环境图像定位失败后,控制机器人减速行驶,并在减速行驶过程中控制定位模块通过周围环境图像进行定位,直至定位成功。
本申请的一个实施例提供了一种机器人,该机器人包括至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本申请任意方法实施例中涉及的定位方法。
本申请的一个实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行本申请任意方法实施例中涉及的定位方法。
本申请实施例相对于现有技术而言,具有自主定位导航功能的机器人在行驶达到预设距离的过程中,通过获取周围环境图像进行定位操作,并在确定通过周围环境图像进行定位失败的时候,控制机器人减速行驶,并在减速行驶的过程中继续通过周围环境图像进行定位,直至定位成功。根据上述定位方法,使得机器人在行驶的过程中,能够根据其所处的环境,合理调整自己的运行速度,从而准确定位出其所处的位置,进而能够及时、准确的规划导航路线,完成工作。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请第一实施例中定位方法的流程图;
图2是本申请第一实施例中根据余弦或正弦速度曲线调整机器人的运行速度的示意图;
图3是本申请第一实施例中根据梯形速度曲线调整机器人的运行速度的示意图;
图4是本申请第一实施例中根据S型速度曲线调整机器人的运行速度的示意图;
图5是本申请第二实施例中定位方法的流程图;
图6是本申请第二实施例中根据余弦或正弦速度曲线调整机器人的运行速度的示意图;
图7是本申请第二实施例中根据梯形速度曲线调整机器人的运行速度的示意图;
图8是本申请第二实施例中根据S型速度曲线调整机器人的运行速度的示意图;
图9是本申请第三实施例中定位装置的方框示意图;
图10是本申请第四实施例中机器人的方框示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请部分实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请的第一实施例涉及一种定位方法,该定位方法主要应用于具有自主定位导航功能的机器人,其具体流程如图1所示。
在步骤101中,在行驶达到预设距离的过程中,确定通过周围环境图像进行定位失败。
具体的说,机器人在行驶达到预设距离的过程中,通过周围环境图像进行定位的操作具体可以通过以下方式实现:
首先,机器人需要按照预设周期(如每间隔5s)采集获得周围环境图像。
接着,机器人中的处理单元(如CPU)将获取到的周围环境图像与预先构建的地图样本集中的图像进行匹配,若周围环境图像与地图样本集中的图像均不匹配,确定定位失败;若周围环境图像与地图样本集中的任一图像匹配,确定定位成功。
另外,本实施例中所说的预先构建的地图样本集中的图像具体可以采用网络爬虫等数据抓取工具获取的,并且为了保证定位的准确性,在实际应用中可以定期更新,具体的实现方式此处不再赘述,本领域的技术人员可以根据需要合理设置,此处不做限制。
另外,在本实施例中,用于与预先构建的地图样本集中的图像进行匹配的周围环境图像,具体为利用图像采集装置(如摄像头)按照预设周期采集获得的。
另外,值得一提的是,在本实施例中,用于采集周围环境图像的图像采集装置不限制其设置位置,即图像采集装置可以是设置在机器人上的(针对直接在路面工作的机器人),也可以是设置在其他物体上的(针对在运动物体上工作的机器人),具体的实现方式,本领域的技术人员可以根据实际需要合理设置,此处不做限制。
另外,在本实施例中所说的机器人在行驶达到的预设距离,具体是基于视觉的即时定位与地图构建(VSLAM)的自主定位导航技术来设置的,比如针对某一机器人,该预设距离可以为10米,即在10米内只要采集到一张能够与地图样本集中的图像精确匹配的周围环境图像,就可以定位出机器人当前所处的位置,然后根据每一段预设距离内定位出的具体位置,绘制导航路线,从而实现自主导航。
需要说明的是,以上仅为举例说明,并不对本申请的技术方案及要保护的范围构成限定,在实际应用中,获取周围环境图像的方式以及根据获取到的环境图像与地图样本集中的图像进行匹配的具体实现方式,本领域的技术人员可以根据需要设置,此处不做限制。
在步骤102中,控制机器人减速行驶,并在减速行驶的过程中通过周围环境图像进行定位,直至定位成功。
具体的说,步骤102具体可以通过下述方式实现:
控制机器人从第一运行速度(机器人设置的正常工作运行速度,也是首次定位成功时的运行速度)减速到第二运行速度,在机器人减速至第二运行速度后,重新利用图像采集装置获取周围环境图像,然后进行定位。
若定位成功(重新获取的周围环境图像与地图样本集中的任一图像匹配),则停止减速行驶过程,以第二运行速度作为其工作所需的运行速度继续行驶。
若定位失败(重新获取的周围环境图像与地图样本集中的图像均不匹配),则控制机器人进一步减速行驶,如从第二运行速度减速到第三运行速度,并在机器人减速至第三运行速度后,重新利用图像采集装置获取周围环境图像,然后进行定位,直至定位成功,否则继续减速行驶。
需要说明的是,在本实施例中,上述控制机器人减速行驶操作,具体是根据速度曲线实现的。
其中,速度曲线具体是用于表示运行速度和时间的对应关系的。
另外,速度曲线具体可以为以下任意一种或任意组合:余弦速度曲线、正弦速度曲线、梯形速度曲线、S型速度曲线。
另外,在实际应用中,机器人在减速行驶中,其速度不可能降为负数(即小于0),因此,为了能够使根据速度曲线控制机器人减速行驶的过程更加符合实际使用情况,本实施例中提供的余弦速度曲线中的余弦值的角度在[0,π]之间取值,正弦速度曲线中的正弦值的角度在[π,2π]之间取值。
为了便于理解根据上述4种速度曲线控制机器人减速行驶的实现方式,以下结合图2至图4进行具体说明。
需要说明的是,由于余弦速度曲线是基于余弦函数绘制的,正弦速度曲线是基于正弦函数绘制的,而余弦函数和正弦函数之间可以相互置换,且余弦值的角度在[0,π]之间取值时绘制出的余弦速度曲线,与正弦值的角度在[π,2π]之间取值时绘制出的正弦速度曲线是相同的,因此基于余弦速度曲线或正弦速度曲线控制机器人减速行驶得出的曲线图均以图2表示,为了便于说明,以下以余弦速度曲线为例,结合图2进行具体说明。
具体的说,基于余弦速度曲线控制机器人减速行驶,具体是根据如下公式实现的:
其中,v0为机器人匀速运行的速度,T为余弦角度,其取值在[0,π]之间,并且包括端点。
根据上述公式,可以得到图2。具体的,图2表示的为:从某次定位成功t0时刻起,机器人以v0(本实施例所说的第一加速度)的速度进行巡逻,同时继续进行定位操作,如果机器人运行至预设距离D的距离后没有定位成功,则机器人在t′0至t1的时间内以余弦速度曲线减速至v1(即v0/2),然后匀速运行,并在匀速运行期间继续进行定位操作,如果机器人在v1的速度运行下定位成功,则完成此定位处理,如果没有则继续减速,并进行定位操作,直至定位成功为止。
图3为根据梯形速度曲线调整机器人的运行速度的示意图,从图3可以看出,根据梯形速度曲线调整机器人的运行速度的方式,具体是从匀速运行速度起按照匀减速、匀速的次序调整运行速度,直到根据重新获取到的周围环境图像能够定位出机器人当前所处的位置为止。
图4为根据S型速度曲线调整机器人的运行速度的示意图,从图4可以看出,根据S型速度曲线调整机器人的运行速度的方式,具体是从匀速运行速度起按照减减速、匀减速、加减速、匀速的次序调整运行速度,直到根据重新获取到的周围环境图像能够定位出机器人当前所处的位置为止。
需要说明的是,上述所说的减减速是指按照不断减小的加速度(用于控制运行速度减小的加速度)进行的减速运动,即次过程中加速度不是一个固定值,而是在一直减小。
上述所说的加减速则是指按照不断增大的加速度进行的减速运动,即从匀减速过程到匀速过程的一个微微加速过程。
另外,需要说明的是,以上仅为举例说明,并不对本申请的技术方案及要保护的范围构成限定,在实际应用中,基于上述几种速度曲线控制机器人减速行驶的操作,本领域的技术人员可以根据其掌握的技术手段合理设置。
另外,基于上述各种速度曲线控制机器人减速行驶以及恢复运行速度过程中所需的加速度值可以根据实际需要合理设置,此处也不做限制。
另外,每一次减速操作具体要减速至的运行速度,本领域的技术人员可以根据机器人的类型以及机器人实际要应用的场合,预先在机器人内存储一个运行速度调整表,从而方便机器人在每次需要减速操作时,能够根据预存的速度调整表进行减速操作,具体的实现方式此处不再赘述,也不做限制。
与现有技术相比,本实施例提供的定位方法,能够使机器人在行驶的过程中,根据其所处的环境,合理调整自己的运行速度,从而准确定位出其所处的位置,进而能够及时、准确的规划导航路线,完成工作。
本申请的第二实施例涉及一种定位方法。本实施例在第一实施例的基础上做了进一步改进,具体改进之处为:在确定定位成功之后,控制机器人加速至第一运行速度,具体流程如图5所示。
具体的说,在本实施例中,包含步骤501至步骤503,其中,步骤501、步骤502分别与第一实施例中的步骤101、步骤102大致相同,此处不再赘述,下面主要介绍不同之处,未在本实施方式中详尽描述的技术细节,可参见第一实施例所提供的定位方法,此处不再赘述。
在步骤503中,控制机器人加速至第一运行速度。
具体的说,在确定定位成功之后,控制机器人加速至第一运行速度的过程中,具体可以通过以下方式完成:
比如,在确定定位成功之后,机器人通过自身的速度检测装置获取当前时刻的运行速度,只要获取到的当前时刻的运行速度大于或等于0,就根据记录的第一运行速度、当前时刻的运行速度以及设置的需要恢复到第一运行速度所需的时间,计算一个加速度值,然后按照计算所得的加速度值控制机器人加速至第一运行速度。
另外,也可以根据实际情况,设置机器人正常工作的合理运行速度取值范围,如果获取到的当前时刻的运行速度仍然在机器人正常工作的合理运行速度取值范围内,可以恢复到第一运行速度,也可以继续按照当前时刻的运行速度行驶。
如果获取到的当前时刻的运行速度不在机器人正常工作的合理运行速度取值范围内,则控制机器人加速至第一运行速度。
需要说明的是,以上仅为举例说明,并不对本申请的技术方案及要保护的范围构成限定,在实际应用中,本领域的技术人员可以根据实际需要,合理设置,此处不做限制。
为了便于理解根据余弦速度曲线、正弦速度曲线、梯形速度曲线、S型速度曲线4种速度曲线控制机器人减速行驶的实现方式,以下结合图6至图8进行具体说明。
需要说明的是,由于余弦速度曲线是基于余弦函数绘制的,正弦速度曲线是基于正弦函数绘制的,而余弦函数和正弦函数之间可以相互置换,且余弦值的角度在[0,π]之间取值时绘制出的余弦速度曲线,与正弦值的角度在[π,2π]之间取值时绘制出的正弦速度曲线是相同的,因此基于余弦速度曲线或正弦速度曲线控制机器人减速行驶得出的曲线图均以图6表示,为了便于说明,以下以余弦速度曲线为例,结合图6进行具体说明。
具体的说,基于余弦速度曲线控制机器人减速行驶,具体是根据如下公式实现的:
其中,v0为机器人匀速运行的速度,T为余弦角度,其取值在[0,π]之间,并且包括端点。
根据上述公式,可以得到图6。具体的,图6表示的为:从某次定位成功t0时刻起,机器人以v0(本实施例所说的第一加速度)的速度进行巡逻,同时继续进行定位操作,如果机器人运行至预设距离D的距离后没有定位成功,则机器人在t′0至t1的时间内以余弦速度曲线减速至v1(即v0/2),然后匀速运行,并在匀速运行期间继续进行定位操作,如果机器人在v1的速度运行下定位成功,则机器人以余弦速度曲线升速至v0;如果没有定位成功,则继续减速,并进行定位操作,直至定位成功,然后以余弦速度曲线升速至v0为止。
需要说明的是,上述公式给出了一种极端的情况,即机器人在减速行驶,进行定位的过程中,直到运行速度降为0才定位成功,这种情况下,为了避免突然升速至v0导致机器人失衡跌倒,可以先控制机器人从0加速至v1,然后在从v1升速至v0。
在实际应用中,本领域的技术人员可以预先设置,具体的实现方式此处不做限制。
图7为根据梯形速度曲线调整机器人的运行速度的示意图,从图7可以看出,根据梯形速度曲线调整机器人的运行速度的方式,具体是从匀速运行速度起按照匀减速、匀速的次序调整运行速度,直到根据重新获取到的周围环境图像能够定位出机器人当前所处的位置为止,在定位成功后,控制机器人加速至v0的过程中,具体是按照匀加速的方式调整机器人当前时刻的运行速度,直至恢复初始运行速度v0。
图8为根据S型速度曲线调整机器人的运行速度的示意图,从图8可以看出,根据S型速度曲线调整机器人的运行速度的方式,具体是从匀速运行速度起按照减减速、匀减速、加减速、匀速的次序调整运行速度,直到根据重新获取到的周围环境图像能够定位出机器人当前所处的位置为止,在定位成功后,控制机器人加速至v0的过程中,具体是按照减加速、匀加速、加加速的次序调整机器人当前时刻的运行速度,直至恢复初始运行速度v0。
需要说明的是,上述所说的减加速是与加减速相反的一个过程,加加速是与减减速相反的一个过程。
另外,需要说明的是,以上仅为举例说明,并不对本申请的技术方案及要保护的范围构成限定,在实际应用中,基于上述几种速度曲线控制机器人减速行驶的操作,本领域的技术人员可以根据其掌握的技术手段合理设置。
另外,基于上述各种速度曲线控制机器人减速行驶以及恢复运行速度过程中所需的加速度值可以根据实际需要合理设置,此处也不做限制。
与现有技术相比,本实施例提供的定位方法,在确定定位成功之后,通过控制机器人加速至第一运行速度,即从当前运行速度恢复至初始运行速度,使得机器人能够尽量在预设时间内完成工作。
本申请的第三实施例涉及一种定位装置。该定位装置主要应用于具有自主定位导航功能的机器人,具体结构如图9所示。
如图9所示,定位装置包括定位模块901和控制模块902。
其中,定位模块901用于在行驶达到预设距离的过程中,通过周围环境图像进行定位。
控制模块902用于在定位模块901确定通过周围环境图像定位失败后,控制机器人减速行驶,并在减速行驶过程中控制定位模块901通过周围环境图像进行定位,直至定位成功。
具体的说,在本实施例中,装配有该定位装置的机器人在行驶达到预设距离的过程中,定位模块901可以采用下述方式来实现通过周围环境图像进行定位的操作,具体的:将周围环境图像与预先构建的地图样本集中的图像进行匹配,若周围环境图像与地图样本集中的图像均不匹配,确定定位失败;若周围环境图像与地图样本集中的任一图像匹配,确定定位成功。
另外,值得一提的是,在本实施例中,用于与预先构建的地图样本集中的图像进行匹配的周围环境图像,具体为利用图像采集装置按照预设周期采集获得的,比如每隔5s采集一次。
需要说明的是,以上仅为举例说明,并不对本申请的技术方案及要保护的范围构成限定,在实际应用中,图像采集装置采集周围环境图像的周期可以根据机器人实际所处的环境、传输性能等因素合理设置,此处不做限制。
另外,用于采集周围环境图像的图像采集装置不限制其设置位置,即图像采集装置可以是设置在机器人上的(针对直接在路面工作的机器人),也可以是设置在其他物体上的(针对在运动物体上工作的机器人),具体的实现方式,本领域的技术人员可以根据实际需要合理设置,此处不做限制。
另外,未在本实施方式中详尽描述的技术细节,可参见本申请任一实施例所提供的定位方法,此处不再赘述。
通过上述描述不难发现,本实施例中提供的定位装置,利用其包括的定位模块和控制模块相互配合,使得装配有该定位装置的机器人在行驶的过程中,能够根据其所处的环境,合理调整自己的运行速度,从而准确定位出其所处的位置,进而能够及时、准确的规划导航路线,完成工作。
以上所描述的装置实施例仅仅是示意性的,并不对本申请的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的,此处不做限制。
本申请的第四实施例涉及一种机器人,具体结构如图10所示。
该机器人可以是如智能扫地机器人、导航机器人、无人机、无人汽车等具有自主定位导航功能的设备。其内部具体包括一个或多个处理器1001以及存储器1002,图10中以一个处理器1001为例。
在本实施例中,上述实施例中涉及到的定位装置中的各功能模块均部署在处理器1001上,处理器1001和存储器1002可以通过总线或其他方式连接,图10中以通过总线连接为例。
存储器1002作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意方法实施例中涉及的定位方法对应的程序指令/模块。处理器1001通过运行存储在存储器1002中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现本申请任意方法实施例中涉及的定位方法。
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可建立历史数据库,用于存储地图样本集等。此外,存储器1002可以包括高速随机存取存储器,还可以包括可读写存储器(RandomAccess Memory,RAM)等。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在实际应用中,存储器1002中可以存储至少一个处理器1001执行的指令,指令被至少一个处理器1001执行,以使至少一个处理器1001能够执行本申请任意方法实施例涉及的定位方法,控制定位装置中的各个功能模块完成定位方法中的定位操作,未在本实施例中详尽描述的技术细节,可参见本申请任一实施例所提供的定位方法。
另外,值得一提的是,随着云计算技术的发展,为了进一步提升机器人的处理能力,本实施例中所说的机器人还可以是云端智能机器人,即用于进行处理操作的机器人“大脑”是位于云端的。
具体的说,云端智能机器人是利用安全快速的移动网络连接机器人躯体与云端“大脑”,使得云端的智能计算能力成为一种便捷的服务,从而极大地降低了智能机器人的研发成本与运营成本,并且利用云端的强大计算能力,可以更加方便快速的进行自主导航,实现快速定位。
需要说明的是,上述所说的两种类型的机器人仅为本实施例中的具体举例说明,并不对本申请的技术方案和要保护的范围构成限定,在实际应用中,本领域的技术人员可以根据现有机器设备的发展情况,基于上述定位方法的实现流程进行实现,此处不做限制。
本申请的第五实施例涉及一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令使计算机能够执行本申请任意方法实施例中涉及的定位方法。
本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。