机器人标定方法、装置及计算机可读存储介质与流程

文档序号:17477866发布日期:2019-04-20 06:14阅读:245来源:国知局
机器人标定方法、装置及计算机可读存储介质与流程

本发明涉及机器人技术领域,特别涉及一种机器人标定方法、装置及计算机可读存储介质。



背景技术:

随着科学技术的发展,机器人越来越多的应用到各个领域中,比如,在物流仓储领域,可以通过机器人搬运货物,在智能家居领域,可以通过扫地机器人打扫地面等等。其中,定位与导航是机器人实现自主运动的核心环节。定位是实现机器人导航的前提。目前可以通过包括机器人左右轮和编码器的里程计实现机器人的定位。但是,由于诸如轮式的移动机器人的左右车轮半径大小可能不一样,或者,机器人总轮距不一样,导致定位不准确。因此,在通过里程计进行定位之前,需要对机器人标定,从而后续能够根据标定的机器人的参数进行准确的定位。

目前,对机器人的标定方式普遍为umbmark法,具体地,可以控制机器人分别以顺时针方向和逆时针方向按照正方形路径进行移动;在机器人移动过程中,通过高精度的测速计测量机器人的移动速度,并和编码器获得的移动速度进行对比,同时结合编码器换算系数的计算公式,测量得到机器人的左轮半径和右车轮的半径。

但是,如果机器人的左右轮半径差异较大,那么机器人可能会因场地限制无法走完整个正方形路径,且通过上述方式进行标定时操作复杂,从而可能导致机器人标定失败,降低了机器人标定的效率和成功率。



技术实现要素:

本发明实施例提供了一种机器人标定方法、装置及计算机可读存储介质,可以解决相关技术中标定机器人的效率低和成功率低,以及机器人定位的准确性不高的问题。所述技术方案如下:

第一方面,提供了一种机器人标定方法,所述方法包括:

控制机器人的左轮和右轮在当前所处的第一位置以相同的速度反向进行旋转;

获取所述机器人在所述第一位置处旋转时的第一左右轮运动参数和第一机器人运动参数;

控制所述机器人的左轮和右轮从所述第二位置以相同的速度同向转动至第三位置;

获取所述机器人从所述第二位置移动至所述第三位置时的第二左右轮运动参数和第二机器人运动参数;

基于所述第一左右轮运动参数、所述第一机器人运动参数、所述第二左右轮运动参数和所述第二机器人运动参数,确定所述机器人的左轮半径、右轮半径和总轮距。

可选地,所述获取所述机器人在所述第一位置处旋转时的第一左右轮运动参数和第一机器人运动参数,包括:

读取所述机器人的左轮编码器转动的第一圈数,以及所述机器人的右轮编码器转动的第二圈数;

确定所述第一圈数和所述第二圈数为所述第一左右轮运动参数;

通过所述机器人上安装的摄像头拍摄位于所述第一位置的第一位置信标;

确定第一角度与第二角度之间的第一角度差值,所述第一角度为所述机器人旋转之前拍摄得到的所述第一位置信标的角度,所述第二角度为所述机器人旋转之后拍摄得到的所述第一位置信标的角度;

将所述第一角度差值确定为所述第一机器人运动参数。

可选地,所述获取所述机器人旋转至所述第二位置时的第二左右轮运动参数和第二机器人运动参数,包括:

读取所述机器人的左轮编码器转动的第三圈数,以及所述机器人的右轮编码器转动的第四圈数;

确定所述第三圈数和所述第四圈数为所述第二左右轮运动参数;

通过所述机器人上安装的摄像头分别拍摄位于所述第二位置的第二位置信标和位于所述第三位置的第三位置信标;

确定第三角度与第四角度之间的第二角度差值,所述第三角度为拍摄得到的所述第二位置信标的角度,所述第四角度为拍摄得到的所述第三位置信标的角度;

确定所述机器人从所述第二位置移动至所述第三位置的移动距离;

将所述第二角度差值和所述移动距离确定为所述第二机器人运动参数。

可选地,所述确定所述机器人从所述第二位置移动至所述第三位置的移动距离,包括:

确定所述机器人从所述第二位置移动至所述第三位置的移动速度和移动时间;

用所述移动速度乘以所述移动时间,得到所述移动距离。

可选地,所述基于所述第一左右轮运动参数、所述第一机器人运动参数、所述第二左右轮运动参数和所述第二机器人运动参数,确定所述机器人的左轮半径、右轮半径和总轮距,包括:

基于所述第一左右轮运动参数包括的第一圈数和第二圈数、所述第一机器人运动参数包括的第一角度差值、所述第二左右轮运动参数包括的第三圈数和第四圈数、以及所述第二机器人运动参数包括的第二角度差值和移动距离,确定所述机器人的左轮半径、右轮半径和总轮距。

可选地,所述基于所述第一左右轮运动参数包括的第一圈数和第二圈数、所述第一机器人运动参数包括的第一角度差值、所述第二左右轮运动参数包括的第三圈数和第四圈数、以及所述第二机器人运动参数包括的第二角度差值和移动距离,确定所述机器人的左轮半径、右轮半径和总轮距,包括:

基于所述第一圈数、所述第二圈数、所述第一角度差值、所述第三圈数、所述第四圈数、所述第二角度差值和所述移动距离,通过如下指定运动学模型确定所述机器人的左轮半径、右轮半径和总轮距:

其中,所述θ1为所述第一角度差值,所述θ2为所述第二角度差值,所述c1为所述第一圈数,所述c2为所述第二圈数,所述c3为所述第三圈数,所述c4为所述第四圈数,所述ls为所述预设距离,所述rl为所述左轮半径,所述rr为所述右轮半径,所述b为所述总轮距。

可选地,所述确定所述机器人的左轮半径、右轮半径和总轮距之后,还包括:

基于所述第一机器人运动参数,确定所述机器人中心位置的位置偏移量;

当所述位置偏移量不为0时,基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,确定所述机器人的左轮距和右轮距。

可选地,所述确定所述机器人的左轮半径、右轮半径和总轮距之后,还包括:

控制所述机器人的左轮和右轮在所述第三位置以相同的速度反向进行旋转;

确定所述机器人的中心位置的位置偏移量;

当所述位置偏移量不为0时,基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,确定所述机器人的左轮距和右轮距。

可选地,所述基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,确定所述机器人的左轮距和右轮距,包括:

基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,通过下述指定公式确定所述机器人的左轮距和右轮距;

其中,所述bl为所述左轮距,所述br为所述右轮距,所述δs为所述位置偏移量。

第二方面,提供了一种机器人标定装置,所述装置包括:

第一控制模块,用于控制机器人的左轮和右轮在当前所处的第一位置以相同的速度反向进行旋转;

第一获取模块,用于获取所述机器人在所述第一位置处旋转时的第一左右轮运动参数和第一机器人运动参数;

第二控制模块,用于控制所述机器人的左轮和右轮从第二位置以相同的速度同向转动至第三位置;

第二获取模块,用于获取所述机器人从所述第二位置移动至所述第三位置时的第二左右轮运动参数和第二机器人运动参数;

第一确定模块,用于基于所述第一左右轮运动参数、所述第一机器人运动参数、所述第二左右轮运动参数和所述第二机器人运动参数,确定所述机器人的左轮半径、右轮半径和总轮距。

可选地,所述第一获取模块包括:

第一读取子模块,用于读取所述机器人的左轮编码器转动的第一圈数,以及所述机器人的右轮编码器转动的第二圈数;

第一确定子模块,用于确定所述第一圈数和所述第二圈数为所述第一左右轮运动参数;

第一拍摄子模块,用于通过所述机器人上安装的摄像头拍摄位于所述第一位置的第一位置信标;

第二确定子模块,用于确定第一角度与第二角度之间的第一角度差值,所述第一角度为所述机器人旋转之前拍摄得到的所述第一位置信标的角度,所述第二角度为所述机器人旋转之后拍摄得到的所述第一位置信标的角度;

第三确定子模块,用于将所述第一角度差值确定为所述第一机器人运动参数。

可选地,所述第二获取模块包括:

第二读取子模块,用于读取所述机器人的左轮编码器转动的第三圈数,以及所述机器人的右轮编码器转动的第四圈数;

第四确定子模块,用于确定所述第三圈数和所述第四圈数为所述第二左右轮运动参数;

第二拍摄子模块,用于通过所述机器人上安装的摄像头分别拍摄位于所述第二位置的第二位置信标和位于所述第三位置的第三位置信标;

第五确定子模块,用于确定第三角度与第四角度之间的第二角度差值,所述第三角度为拍摄得到的所述第二位置信标的角度,所述第四角度为拍摄得到的所述第三位置信标的角度;

第六确定子模块,用于确定所述机器人从所述第二位置移动至所述第三位置的移动距离;

第七确定子模块,用于将所述第二角度差值和所述移动距离确定为所述第二机器人运动参数。

可选地,所述第六确定子模块用于:

确定所述机器人从所述第二位置移动至所述第三位置的移动速度和移动时间;

用所述移动速度乘以所述移动时间,得到所述移动距离。

可选地,所述第一确定模块用于:

基于所述第一左右轮运动参数包括的第一圈数和第二圈数、所述第一机器人运动参数包括的第一角度差值、所述第二左右轮运动参数包括的第三圈数和第四圈数、以及所述第二机器人运动参数包括的第二角度差值和移动距离,确定所述机器人的左轮半径、右轮半径和总轮距。

可选地,所述第一确定模块用于:

基于所述第一角度差值、所述第二角度差值、所述第一圈数、所述第二圈数、所述第三圈数、所述第四圈数和所述移动距离,通过如下指定运动学模型确定所述机器人的左轮半径、右轮半径和总轮距:

其中,所述θ1为所述第一角度差值,所述θ2为所述第二角度差值,所述c1为所述第一圈数,所述c2为所述第二圈数,所述c3为所述第三圈数,所述c4为所述第四圈数,所述ls为所述移动距离,所述rl为所述左轮半径,所述rr为所述右轮半径,所述b为所述总轮距。

可选地,所述装置还包括:

第二确定模块,用于基于所述第一机器人运动参数,确定所述机器人中心位置的位置偏移量;

第三确定模块,用于当所述位置偏移量不为0时,基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,确定所述机器人的左轮距和右轮距。

可选地,所述装置还包括:

第三控制模块,用于控制所述机器人的左轮和右轮在所述第三位置以相同的速度反向进行旋转;

第四确定模块,用于确定所述机器人的中心位置的位置偏移量;

第三确定模块,用于当所述位置偏移量不为0时,基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,确定所述机器人的左轮距和右轮距。

可选地,所述第三确定模块用于:

基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,通过下述指定公式确定所述机器人的左轮距和右轮距;

其中,所述bl为所述左轮距,所述br为所述右轮距,所述δs为所述位置偏移量。

第三方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的任一所述的方法。

本发明实施例提供的技术方案带来的有益效果是:在本发明实施例中,可以控制机器人的左轮和右轮先后分别以相同的速度进行反向旋转和同向旋转,从而可以确定机器人的第一左右轮运动参数、第一机器人运动参数、第二左右轮运动参数和第二机器人运动参数。由于在通常情况下,对机器人标定是为了使机器人准确的进行移动,因此,在确定机器人的第一左右轮运动参数、第一机器人运动参数、第二左右轮运动参数和第二机器人运动参数后,可以基于机器人的第一左右轮运动参数、第一机器人运动参数、第二左右轮运动参数和第二机器人运动参数,直接标定机器人左轮半径、右轮半径和总轮距,简化了标定机器人的操作,提高了机器人标定的效率,从而后续在控制机器人移动时,保证机器人移动的准确性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种机器人标定系统架构示意图;

图2是本发明实施例提供的一种机器人标定方法的流程图;

图3a是本发明实施例提供的第一种机器人标定装置的结构示意图;

图3b是本发明实施例提供的一种第一获取模块的结构示意图;

图3c是本发明实施例提供的一种第二获取模块的结构示意图;

图3d是本发明实施例提供的第二种机器人里程计标定装置的结构示意图;

图3e是本发明实施例提供的第三种机器人里程计标定装置的结构示意图;

图4是本发明实施例提供的一种终端的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

在对本发明实施例进行详细的解释说明之前,先对本发明实施例中涉及到的名词、应用场景及系统架构分别进行解释说明。

首先,对本发明实施例中涉及到的名词进行介绍。

机器人里程计

机器人里程计用于估计机器人相对于初始位置移动的距离,由车轮和编码器等部件组成。

左轮距

左轮距是指机器人左轮中心点与机器人几何中心的距离。

右轮距

右轮距是指机器人右轮中心点与机器人几何中心的距离。

总轮距

总轮距是指左轮着地点和右轮着地点之间的距离。

其次,对本发明实施例涉及的应用场景进行介绍。

目前,机器人应用的领域越来越广泛,比如,在物流仓储领域,可以通过机器人搬运货物,在智能家居领域,可以通过扫地机器人打扫地面等等。由于大部分机器人依靠车轮进行移动,因此,为了能够控制机器人准确地按照预定行程进行移动,需要保证机器人的运动参数的准确性,也即是,需要对机器人进行标定。而机器人包括机器人的车轮,因此,对机器人的标定即是对机器人车轮的相关参数(左轮半径、右轮半径、总轮距、左轮距和右轮距)进行标定。基于这样的场景,本发明实施例提供了一种能够准确标定机器人,提高机器人标定效率的方法。

接下来,对本发明实施例涉及的系统架构进行介绍。

图1为本发明实施例提供的一种机器人标定系统的架构示意图,参见图1,该系统包括机器人1和终端2。其中,终端2可以与机器人1通过网络、蓝牙等进行通信,并控制机器人1的左轮和右轮在第一位置以相同的速度反向旋转,并获取第一左右轮运动参数和第一机器人运动参数。之后,终端2可以继续控制机器人1的左轮和右轮从第二位置以相同的速度同向转动至第三位置,并获取第二左右轮运动参数和第二机器人运动参数。最后,终端2可以根据该基于第一左右轮运动参数、第一机器人运动参数、第二左右轮运动参数和第二机器人运动参数,确定机器人1的左轮半径、右轮半径和总轮距,完成对机器人的标定。

需要说明的是,在本发明实施例中,该机器人标定系统中也可以不包括终端,也即是,在本发明实施例中,机器人可以自身完成标定的操作。

图2是本发明实施例提供的一种机器人标定方法的流程图,参见图2,该方法具体包括如下步骤。

步骤201:控制机器人的左轮和右轮在当前所处的第一位置以相同的速度反向进行旋转。

其中,在控制机器人的左轮和右轮在当前所处的第一位置以相同的速度反向旋转时,可以控制机器人反向旋转第一预设角度或预设时长。

需要说明的是,机器人的左轮和右轮在第一位置以相同的速度反向进行旋转,说明机器人在第一位置进行旋转移动,而第一预设角度用于指示机器人旋转的角度,该第一预设角度可以事先设置,比如,该第一预设角度可以为60度、360度、360度等等。预设时长用于指示机器人旋转的时长,该预设时长同样可以事先设置,比如,该预设时长可以为10s(秒)、20秒等等。

步骤202:获取机器人在第一位置处旋转时的第一左右轮运动参数和第一机器人运动参数。

其中,终端或机器人获取机器人在第一位置处旋转时的第一左右轮运动参数和第一机器人运动参数的操作可以为:读取机器人的左轮编码器转动的第一圈数,以及机器人的右轮编码器转动的第二圈数;确定第一圈数和第二圈数为第一左右轮运动参数;通过该机器人上安装的摄像头拍摄位于第一位置的第一位置信标;确定第一角度与第二角度之间的第一角度差值,第一角度为机器人旋转之前拍摄得到的第一位置信标的角度,第二角度为机器人旋转之后拍摄得到的第一位置信标的角度;将该第一角度差值确定为第一机器人运动参数。

由于机器人中包括里程计,该里程计中包括车轮和编码器,编码器可以随着车轮的转动而转动。当左轮的半径和右轮的半径不一样,且机器人发生移动时,左轮转动的圈数与右轮转动的圈数将会不同。因此,为了准确地确定机器人的左轮和右轮分别行走的路程,可以使机器人中的每个车轮对应一个编码器,即左轮对应左轮编码器,右轮对应右轮编码器,从而在机器人发生移动时,左轮编码器可以记录指示左轮转动的圈数,右轮编码器可以记录右轮转动的圈数。当需要获取第一左右轮运动参数时,可以分别读取左轮编码器记录的圈数和右轮编码器的圈数。

其中,在通常情况下,当机器人根据第一预设角度进行旋转移动时,机器人旋转的角度就是该第一预设角度。因此,可以直接将该第一预设角度确定为第一角度差值。但是,如果机器人按照预设时长进行旋转移动,则不能直接获知机器人旋转的角度,或者,如果机器人的左右车轮半径不同,那么机器人旋转的角度事实上并不为第一预设角度。因此,为了确定机器人实际上旋转的角度,可以在第一位置上事先设置第一位置信标,从而在机器人旋转之前拍摄该第一位置信标,并确定第一角度,在机器人旋转之后继续拍摄第一位置信标,并确定第二角度,之后,确定第一角度与第二角度之间的第一角度差值,并将第一角度差值确定为第一机器人运动参数。

另外,在本发明实施例中,不仅可以通过上述方式确定该第一角度差值,还可以通过其他方式确定,比如,可以设置第一位置信标中的任一线条为第一参考线,比如,设置第一位置信标中任一垂直的线条或水平的线条。当机器人通过底部的摄像机拍摄到第一位置信标后,可以确定第一位置信标中第一参考线的旋转角度,并将该第一参考线的旋转角度确定为第一角度差值。

需要说明的是,第一位置信标可以是条形码、二维码等,也可以是包括若干简单线条的图案。

步骤203:控制机器人的左轮和右轮从第二位置以相同的速度同向转动至第三位置。

其中,终端或机器人可以控制机器人的左轮和右轮从第二位置以相同的速度同向转动至第三位置,说明机器人在进行直线移动,且第二位置到第三位置的距离是固定的。因此,可以事先设置一个预设距离,终端或机器人可以基于预设距离,控制机器人的左轮和右轮从第二位置以相同的速度同向移动到第三位置;

需要说明的是,第二位置可以是第一位置也可以是第一位置之外的其他位置。该预设距离可以事先设置,比如该预设距离可以为50厘米、1米、2米等等。

另外,本发明实施例中不仅可以通过设置预设距离,控制机器人从第二位置移动至第三位置,还可以通过其他方式控制机器人从第二位置移动至第三位置,比如,终端或机器人可以控制机器人的左轮和右轮从第二位置以相同速度开始进行同向转动,并在转动过程中实时通过底部的摄像机进行拍摄,当拍摄到第三位置信标时,确定机器人到达第三位置,此时控制机器人停止移动。

再者,第三位置信标可以是条形码、二维码等,也可以是包括若干简单线条的图案,其中,第三位置信标和第一位置信标可以相同,也可以不同,但是为了更准确的标定机器人,第三位置信标通常与第一位置信标相同。

值得说明的是,在本发明实施例中,对终端或机器人执行上述步骤201和步骤203的顺序不作限定,也即是,终端或机器人可以先控制机器人的左轮和右轮以相同的速度反向进行旋转,然后控制机器人的左轮和右轮以相同的速度同向进行转动,也可以先控制机器人左轮和右轮以相同的速度同向进行旋转,然后控制机器人的左轮和右轮以相同的速度反向进行转动。

步骤204:获取机器人从第二位置移动至第三位置时的第二左右轮运动参数和第二机器人运动参数。

其中,终端或机器人可以读取机器人的左轮编码器转动的第三圈数,以及机器人的右轮编码器转动的第四圈数;并确定第三圈数和第四圈数为第二左右轮运动参数;通过机器人上安装的摄像头分别拍摄位于第二位置的第二位置信标和位于第三位置的第三位置信标;确定第三角度与第四角度之间的第二角度差值,第三角度为拍摄得到的第二位置信标的角度,第四角度为拍摄得到的第三位置信标的角度;并确定机器人从第二位置移动至第三位置的移动距离;将第二角度差值和移动距离确定为第二机器人运动参数。

由上述可知,机器人中可以包括左轮编码器和右轮编码器,因此,当终端或机器人需要获取第二左右轮运动参数时,可以分别读取左轮编码器记录的圈数和右轮编码器的圈数。

另外,由于机器人底部设置有摄像头,因此,可以事先在第二位置处设置第二位置信标,在第三位置处设置第三位置信标。之后,可以控制机器人通过底部的摄像机扫描事先设置在第二位置的第二位置信标,确定对第二位置信标扫描得到的图像中第二参考线的第三角度,并控制机器人通过底部的摄像机扫描事先设置在第三位置的第三位置信标,确定对第三位置信标扫描得到的图像中第三参考线的第四角度。

需要说明的是,第二位置信标可以是条形码、二维码等,也可以是包括若干简单线条的图案,且第二位置信标可以与第三位置信标相同,也可以与第三位置信标不同,但为了更准确的标定机器人,第二位置信标通常与第三位置信标相同。

另外,由于第二位置可以为第一位置也可以为第一位置之外的其他位置,因此,当第二位置为第一位置时,第三角度即为上述确定的第二角度。

再者,由上述步骤203可知,终端或机器人控制机器人从第二位置移动至第三位置的方式可以包括两种方式,因此,终端或机器人确定移动距离的方式也包括两种方式。

第一种方式,当终端或机器人通过事先设置预设距离的方式,控制机器人从第二位置移动至第三位置时,终端或机器人可以直接确定该预设距离为机器人从第二位置移动至第三位置的移动距离。

第二种方式,当终端或机器人通过在直线移动过程中实时拍摄第三位置信标的方式,控制机器人从第二位置移动至第三位置时,终端或机器人可以确定机器人从第二位置移动至第三位置的移动速度和移动时间;用移动速度乘以移动时间,得到该移动距离。

步骤205:基于第一左右轮运动参数、第一机器人运动参数、第二左右轮运动参数和第二机器人运动参数,确定该机器人的左轮半径、右轮半径和总轮距。

由上述可知,终端或机器人可以将第一圈数和第二圈数确定为第一左右轮运动参数,将第一角度差值确定为第一机器人运动参数,将第三圈数和第四圈数确定为第二左右轮运动参数,将第二角度差值和移动距离确定为第二机器人运动参数。因此,终端或机器人可以基于第一左右轮运动参数包括的第一圈数和第二圈数、第一机器人运动参数包括的第一角度差值、第二左右轮运动参数包括的第三圈数和第四圈数、以及第二机器人运动参数包括的第二角度差值和移动距离,确定机器人的左轮半径、右轮半径和总轮距。

由于机器人左轮移动的距离可以通过左轮半径与左轮编码器转动的圈数表示,右轮移动的距离可以通过右轮半径与右轮编码器转动的圈数表示,因此,终端或机器人可以基于第一角度差值、第二角度差值、第一圈数、第二圈数、第三圈数、第四圈数和移动距离,通过如下指定运动学模型确定机器人的左轮半径、右轮半径和总轮距:

其中,在上述公式(1)中,θ1为第一角度差值(机器人旋转前后分别通过扫描第一位置信标得到的第一角度和第二角度之间的角度差),θ2为第二角度差值(对第三位置扫描得到的图像中第三参考线的第四角度与对第二位置信标图形码扫描得到的图像中第二参考线的第三角度之间的角度差),c1为第一圈数(控制机器人在第一位置进行旋转移动时,左轮编码器记录的圈数),c2为第二圈数(控制机器人在第一位置进行旋转移动时,右轮编码器记录的圈数),c3为第三圈数(控制机器人从第二位置移动至第三位置时,左轮编码器记录的圈数),c4为第四圈数(控制机器人从第二位置移动至第三位置时,右轮编码器记录的圈数),ls为移动距离,rl为左轮半径,rr为右轮半径,b为总轮距。

需要说明的是,由于在通常情况下,圆的周长为2π乘以圆的半径,因此,机器人小车左轮转动一圈的移动距离为2πrl,机器人小车右轮转动一圈的移动距离为2πrr。又由于机器人左轮编码器可以记录机器人左轮转动的圈数,右轮编码器可以记录机器人右轮转动的圈数,因此,机器人在第一位置进行旋转移动时,可以确定左轮的移动距离为2πc1rl,确定右轮的移动距离为2πc2rr。机器人从第二位置移动至第三位置时,可以确定左轮的移动距离为2πc3rl,确定右轮的移动距离为2πc4rr。

另外,由于机器人在第一位置进行旋转移动时,机器人旋转的角度不仅会受到左右轮半径的影响,还会受到总轮距的影响,因此,可以用2πc1rl加上2πc2rr后,除以总轮距b,得到的值即为第一角度差值θ1。由于机器人从第二位置直线移动至第三位置时,如果机器人在移动过程中可能会发生一定的旋转(也即是,第二角度差值),因此,2πc3rl减去2πc4rr后,除以总轮距b,得到的值即为第二角度差值θ2。又由于,机器人从第二位置移动至第三位置时,左轮移动距离和右轮移动距离可能不相同,因此,可以将左轮移动距离与右轮移动距离之和的平均值,确定为机器人从第二位置移动至第三位置的移动距离,也即是,ls=πc3rl+πc4rr。

值得说明的是,当终端或机器人对机器人的左轮半径、右轮半径和总轮距进行标定后,可以获知机器人在移动过程中的行程的偏移量,后续可以及时调整机器人的行程,保证了机器人能够准确地到达需要到达的地点,提高机器人移动的准确性。

进一步地,为了提高机器人标定的精确度,终端或机器人还可以对机器人的左轮距和右轮距进行标定。

其中,终端或机器人可以控制机器人的左轮和右轮在当前所处的第三位置以相同的速度反向进行旋转,并确定机器人的中心位置的位置偏移量;当该位置偏移量不为0时,基于该左轮半径、右轮半径、总轮距和位置偏移量,确定机器人的左轮距和右轮距。当然,为了减少对机器人的控制操作,终端或机器人还可以直接基于上述步骤中确定的第一机器人运动参数,确定机器人中心位置的位置偏移量;当该位置偏移量不为0时,基于左轮半径、右轮半径、总轮距和位置偏移量,确定机器人的左轮距和右轮距。

需要说明的是,终端或机器人可以控制机器人的左轮和右轮在当前所处的第三位置以相同的速度反向旋转第二预设角度,该第二预设角度可以事先设置,比如,该第二预设角度可以为90度、180度、270度等,通常情况下,为了便于后续确定位置偏移量,第二预设角度通常为180度。

其中,当终端或机器人控制机器人在第三位置原地进行旋转时,可以将摄像机设置在机器人的中心位置;在控制机器人进行原地旋转前,可以确定通过摄像机拍摄的第三位置信标在拍摄图像中的第一位置;在控制机器人进行原地旋转后,通过摄像机再一次拍摄第三位置信标,并确定此次拍摄的第三位置信标在拍摄图像中的第二位置;确定第一位置与第二位置之间的偏移量,并确定该偏移量为机器人的中心位置的位置偏移量。

由于在通常情况下,当机器人在旋转180度之后,如果中心位置的偏移量为0,说明机器人的左轮半径与右轮半径完全相同,且左轮距与右轮距完全相同。而当中心位置的偏移量不为0时,说明机器人的左轮半径与右轮半径不相同,或者左轮距与右轮距不相同。因此,终端或机器人需要基于左轮半径、右轮半径、总轮距和位置偏移量,确定该机器人的左轮距和右轮距。

其中,终端或机器人可以基于左轮半径、右轮半径、总轮距和该位置偏移量,通过下述指定公式确定该机器人的左轮距和右轮距;

其中,在上述公式(2)中,bl为左轮距,br为右轮距,δs为位置偏移量(上述第三位置信标拍摄图像中的第一位置和机器人旋转后第三位置信标在拍摄图像中的第二位置之间的偏移量),rl为通过上述公式(1)确定的左轮半径,rr为通过上述公式(1)确定的右轮半径,b为通过上述公式(1)确定的总轮距。

需要说明的是,由于左轮距是指机器人左轮中心点与机器人几何中心的距离,右轮距是指机器人右轮中心点与机器人几何中心的距离,因此,左轮距与右轮距的和即为总轮距。

在本发明实施例中,终端或机器人可以控制机器人的左轮和右轮先后分别以相同的速度进行反向移动(旋转移动)和同向移动(直线移动)。由于机器人的里程计中包括车轮和编码器,编码器可以随着车轮的转动而转动,在通常情况下,机器人的左轮移动距离可以通过机器人左轮编码器的圈数和左轮半径确定,机器人的右轮移动距离可以通过机器人右轮编码器的圈数和右轮半径确定。因此,控制机器人先后进行旋转移动和直线移动,可以直接标定机器人左轮半径、右轮半径和总轮距,简化了标定机器人的操作,提高了机器人标定的效率。另外,由于还可以控制机器人原地旋转,标定机器人的左轮距和右轮距,从而提高了机器人后续定位的准确性。

图3a为本发明实施例提供的一种机器人标定装置的框图,参见图3a,该机器人标定装置可以由软件、硬件或者两者的结合实现。该装置包括:第一控制模块301、第一获取模块302、第二控制模块303、第二获取模块304和第一确定模块305。

第一控制模块301,用于控制机器人的左轮和右轮在当前所处的第一位置以相同的速度反向进行旋转;

第一获取模块302,用于获取所述机器人在所述第一位置处旋转时的第一左右轮运动参数和第一机器人运动参数;

第二控制模块303,用于控制所述机器人的左轮和右轮从第二位置以相同的速度同向转动至第三位置;

第二获取模块304,用于获取所述机器人从所述第二位置移动至所述第三位置时的第二左右轮运动参数和第二机器人运动参数;

第一确定模块305,用于基于所述第一左右轮运动参数、所述第一机器人运动参数、所述第二左右轮运动参数和所述第二机器人运动参数,确定所述机器人的左轮半径、右轮半径和总轮距。

可选地,参见图3b,所述第一获取模块302包括:

第一读取子模块3021,用于读取所述机器人的左轮编码器转动的第一圈数,以及所述机器人的右轮编码器转动的第二圈数;

第一确定子模块3022,用于确定所述第一圈数和所述第二圈数为所述第一左右轮运动参数;

第一拍摄子模块3023,用于通过所述机器人上安装的摄像头拍摄位于所述第一位置的第一位置信标;

第二确定子模块3024,用于确定第一角度与第二角度之间的第一角度差值,所述第一角度为所述机器人旋转之前拍摄得到的所述第一位置信标的角度,所述第二角度为所述机器人旋转之后拍摄得到的所述第一位置信标的角度;

第三确定子模块3025,用于将所述第一角度差值确定为所述第一机器人运动参数。

可选地,参见图3c,所述第二获取模块304包括:

第二读取子模块3041,用于读取所述机器人的左轮编码器转动的第三圈数,以及所述机器人的右轮编码器转动的第四圈数;

第四确定子模块3042,用于确定所述第三圈数和所述第四圈数为所述第二左右轮运动参数;

第二拍摄子模块3043,用于通过所述机器人上安装的摄像头分别拍摄位于所述第二位置的第二位置信标和位于所述第三位置的第三位置信标;

第五确定子模块3044,用于确定第三角度与第四角度之间的第二角度差值,所述第三角度为拍摄得到的所述第二位置信标的角度,所述第四角度为拍摄得到的所述第三位置信标的角度;

第六确定子模块3045,用于确定所述机器人从所述第二位置移动至所述第三位置的移动距离;

第七确定子模块3046,用于将所述第二角度差值和所述移动距离确定为所述第二机器人运动参数。

可选地,所述第六确定子模块3045用于:

确定所述机器人从所述第二位置移动至所述第三位置的移动速度和移动时间;

用所述移动速度乘以所述移动时间,得到所述移动距离。

可选地,所述第一确定模块305用于:

基于所述第一左右轮运动参数包括的第一圈数和第二圈数、所述第一机器人运动参数包括的第一角度差值、所述第二左右轮运动参数包括的第三圈数和第四圈数、以及所述第二机器人运动参数包括的第二角度差值和移动距离,确定所述机器人的左轮半径、右轮半径和总轮距。

可选地,所述第一确定模块305用于:

基于所述第一角度差值、所述第二角度差值、所述第一圈数、所述第二圈数、所述第三圈数、所述第四圈数和移动距离,通过如下指定运动学模型确定所述机器人的左轮半径、右轮半径和总轮距:

其中,所述θ1为所述第一角度差值,所述θ2为所述第二角度差值,所述c1为所述第一圈数,所述c2为所述第二圈数,所述c3为所述第三圈数,所述c4为所述第四圈数,所述ls为所述移动距离,所述rl为所述左轮半径,所述rr为所述右轮半径,所述b为所述总轮距。

可选地,参见图3d,所述装置还包括:

第二确定模块306,用于基于所述第一机器人运动参数,确定所述机器人中心位置的位置偏移量;

第三确定模块307,用于当所述位置偏移量不为0时,基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,确定所述机器人的左轮距和右轮距。

可选地,参见图3e,所述装置还包括:

第三控制模块308,用于控制所述机器人的左轮和右轮在当第三位置以相同的速度反向进行旋转;

第四确定模块309,用于确定所述机器人的中心位置的位置偏移量;

第三确定模块307,用于当所述位置偏移量不为0时,基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,确定所述机器人的左轮距和右轮距。

可选地,所述第三确定模块307用于:

基于所述左轮半径、所述右轮半径、所述总轮距和所述位置偏移量,通过下述指定公式确定所述机器人的左轮距和右轮距;

其中,所述bl为所述左轮距,所述br为所述右轮距,所述δs为所述位置偏移量。

综上所述,在本发明实施例中,终端或机器人可以控制机器人的左轮和右轮先后分别以相同的速度进行反向移动(旋转移动)和同向移动(直线移动)。由于机器人的里程计中包括车轮和编码器,编码器可以随着车轮的转动而转动,在通常情况下,机器人的左轮移动距离可以通过机器人左轮编码器的圈数和左轮半径确定,机器人的右轮移动距离可以通过机器人右轮编码器的圈数和右轮半径确定。因此,控制机器人先后进行旋转移动和直线移动,可以直接标定机器人左轮半径、右轮半径和总轮距,简化了标定机器人的操作,提高了机器人标定的效率。另外,由于还可以控制机器人原地旋转,标定机器人的左轮距和右轮距,从而提高了机器人后续定位的准确性。

需要说明的是:上述实施例提供的机器人标定装置在标定机器人时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的机器人标定装置与机器人标定方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图4是根据一示例性实施例示出的一种终端400的框图。例如,终端400可以是移动电话,计算机,消息收发设备,平板设备,医疗设备,个人数字助理、机器人等。

参照图4,终端400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入/输出(i/o)的接口412,传感器组件414,以及通信组件416。

处理组件402通常控制终端400的整体操作,诸如与显示,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。

存储器404被配置为存储各种类型的数据以支持在终端400的操作。这些数据的示例包括用于在终端400上操作的任何应用程序或方法的指令,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

电源组件406为终端400的各种组件提供电源。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为终端400生成、管理和分配电源相关联的组件。

多媒体组件408包括在所述终端400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当终端400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(mic),当终端400处于操作模式,如记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。

i/o接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件414包括一个或多个传感器,用于为终端400提供各个方面的状态评估。例如,传感器组件414可以检测到终端400的打开/关闭状态,组件的相对定位,例如所述组件为终端400的显示器和小键盘,传感器组件414还可以检测终端400或终端400一个组件的位置改变,用户与终端400接触的存在或不存在,终端400方位或加速/减速和终端400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件416被配置为便于终端400和其他设备之间有线或无线方式的通信。终端400可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在示例性实施例中,终端400可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图2所示实施例提供的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(digitalsubscriberline,dsl))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(digitalversatiledisc,dvd))、或者半导体介质(例如:固态硬盘(solidstatedisk,ssd))等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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