HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

位姿确定方法、装置及机器人与流程

2021-01-19 19:01:27|327|起点商标网
位姿确定方法、装置及机器人与流程

本申请属于机器人的位姿确定技术领域,尤其涉及位姿确定方法、装置、机器人及计算机可读存储介质。



背景技术:

为了适应不同的用户需求,具有不同功能的机器人越来越多。而具有四轮独立、转向独立的底盘,由于其高度的灵活性和适应性,已在机器人上取得了越来越广泛的应用。如图1所示,该种类的底盘具有8个可控输入:4个轮子独立转向的可控输入以及4个轮子的独立转动的可控输入。

为完成目标任务,机器人在移动过程中需要确定自身的位姿。现有的位姿确定方法需要综合考量多种传感器的测量值,而具有8个可控输入的驱动底盘的机器人,由于其8个可控输入的控制量之间相互耦合,即机器人的系统模型较为复杂,因此导致该机器人确定其自身在移动过程中的位姿时更复杂,进而导致位姿确定的效率低下。

故,需要提供一种新的方法以解决上述技术问题。



技术实现要素:

本申请实施例提供了位姿确定方法,可以提高位姿的确定的效率及准确度。

第一方面,本申请实施例提供了一种位姿确定方法,所述位姿确定方法应用于机器人,所述机器人的底盘包括至少3个轮子的独立转向的可控输入以及至少3个轮子的独立转动的可控输入,所述位姿确定方法包括:

分别获取各个轮子在底盘坐标系的转向角和转动速度,所述底盘坐标系为以底盘建立的坐标系;

根据所述各个轮子的转向角和转动速度计算所述底盘的线速度和角速度;

根据所述底盘的线速度和角速度确定所述底盘在相邻时刻的位姿变换矩阵,所述相邻时刻是指得到相邻的转向角或相邻的转动速度所对应的两个时刻;

根据初始位姿和所述底盘在相邻时刻的位姿变换矩阵确定所述底盘在全局坐标系下的指定时刻的位姿,其中,所述底盘在全局坐标系下的指定时刻的位姿与所述机器人在全局坐标系下的指定时刻的位姿相同,所述初始位姿为所述底盘在初始状态的位姿,所述底盘在初始状态时,所述底盘坐标系与所述全局坐标系重合。

本申请实施例与现有技术相比存在的有益效果是:由于底盘在相邻时刻的位姿变换矩阵是根据底盘的线速度和角速度确定,而该底盘的线速度和角速度则是根据各个轮子在底盘坐标系的转向角和转动速度计算得到,即底盘在相邻时刻的位姿变换矩阵只需获取各个轮子在底盘坐标系的转向角和转动速度就能确定,无需进行坐标系变换,且获取各个轮子的转向角和转动速度的方法简单,因此,在结合底盘在相邻时刻的位姿变换矩阵、初始位姿确定底盘在全局坐标系下的指定时刻的位姿时,减少了计算量,从而极大提高了位姿的确定效率。另外,通过利用底盘坐标系与全局坐标系在初始位姿时的重合特性,能够结合初始位姿以及位姿变换矩阵准确计算出底盘(或机器人)在全局坐标系下指定时刻的位姿。

第二方面,本申请实施例提供了一种位姿确定装置,所述位姿确定装置应用于机器人,所述机器人的底盘包括至少3个轮子的独立转向的可控输入以及至少3个轮子的独立转动的可控输入,所述位姿确定装置包括:

转向角获取单元,用于分别获取各个轮子在底盘坐标系的转向角和转动速度,所述底盘坐标系为以底盘建立的坐标系;

线速度计算单元,用于根据所述各个轮子的转向角和转动速度计算所述底盘的线速度和角速度;

相邻时刻的位姿变换矩阵确定单元,用于根据所述底盘的线速度和角速度确定所述底盘在相邻时刻的位姿变换矩阵,所述相邻时刻是指得到相邻的转向角或相邻的转动速度所对应的两个时刻;

位姿确定单元,用于根据初始位姿和所述底盘在相邻时刻的位姿变换矩阵确定所述底盘在全局坐标系下的指定时刻的位姿,其中,所述底盘在全局坐标系下的指定时刻的位姿与所述机器人在全局坐标系下的指定时刻的位姿相同,所述初始位姿为所述底盘在初始状态的位姿,所述底盘在初始状态时,所述底盘坐标系与所述全局坐标系重合。

第三方面,本申请实施例提供了一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法。

第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面所述的方法。

可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1是现有技术提供的四轮独立转向、独立转动的驱动底盘的示意图;

图2是本申请实施例一提供的一种位姿确定方法的流程图;

图3是本申请实施例一提供的四轮独立转向、独立转动的驱动底盘的俯视示意图;

图4是本申请实施例一提供的另一种位姿确定方法的流程图;

图5是本申请实施例一提供的机器人的仿真示意图;

图6是本申请实施例一提供的确定的位姿与真实位姿的比较示意图;

图7是本申请实施例二提供的位姿确定装置的结构示意图;

图8是本申请实施例三提供的机器人的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

实施例一:

目前,现有的位姿确定方法通常需要结合复杂的模型,而复杂的模型的计算量较大,从而导致位姿的确定效率低下。为此,本申请实施例提供了一种新的位姿确定方法,在本申请实施例中,结合机器人的底盘的至少3个轮子的转向角和转动速度进行位姿的推算,由于至少3个轮子的转向角和转动速度都位于同一个底盘坐标系下,模型简单,因此,减少了计算复杂度,从而极大提高了位姿的确定效率,详述如下:

图2示出了本申请实施例提供的一种位姿确定方法的流程图,本申请实施例的位姿确定方法应用于机器人,所述机器人的底盘包括至少3个轮子(如3个轮子,4个轮子、5个轮子等)的独立转向的可控输入以及至少3个轮子(如3个轮子,4个轮子、5个轮子等)的独立转动的可控输入,所述位姿确定方法包括:

步骤s21,分别获取各个轮子在底盘坐标系的转向角和转动速度,所述底盘坐标系为以底盘建立的坐标系。

本实施例中,由于底盘的各个轮子是独立转向和独立转动的,因此,需要分别获取各个轮子对应的转向角和转动速度,这些转向角和转动速度的具体数值都是基于底盘坐标系得到,该底盘坐标系以底盘建立,比如,将底盘的中心点作为该底盘坐标系的原点进行建立。

具体地,机器人从其自身的处理器发送的(或从其他设备接收的)控制输入中获取该机器人的各个轮子对应的转向角和转动速度。或者,预先在机器人的各个轮子上设置对应的传感器,根据设置的传感器获取对应的转向角和转动速度。

步骤s22,根据所述各个轮子的转向角和转动速度计算所述底盘的线速度和角速度。

该步骤中,由于底盘是通过至少3个轮子的移动来实现移动的,因此,底盘的线速度和角速度可通过各个轮子的转向角和转动速度确定。

步骤s23,根据所述底盘的线速度和角速度确定所述底盘在相邻时刻的位姿变换矩阵,所述相邻时刻是指得到相邻的转向角或相邻的转动速度所对应的两个时刻。

本实施例中,为了提高底盘在相邻时刻的位姿变换矩阵的准确性,相邻时刻之间的时间差通常很小,比如,设置相邻时刻之间的时间差小于0.1秒,或小于0.05秒等。

步骤s24,根据初始位姿和所述底盘在相邻时刻的位姿变换矩阵确定所述底盘在全局坐标系下的指定时刻的位姿,其中,所述底盘在全局坐标系下的指定时刻的位姿与所述机器人在全局坐标系下的指定时刻的位姿相同,所述初始位姿为所述底盘在初始状态的位姿,所述底盘在初始状态时,所述底盘坐标系与所述全局坐标系重合。

本实施例中,底盘在初始状态时,全局坐标系xoy与固结在底盘的底盘坐标系xpopyp重合,随着底盘运动的进行,每次得到新的轮子的转向角或转动速度都会更新底盘在相邻时刻的位姿变换矩阵,将得到的从0时刻(即底盘在初始状态的时刻)到t时刻(即指定时刻)的所有底盘在相邻时刻的位姿变换矩阵累乘,累乘结果作为底盘从0时刻到t时刻的位姿变换矩阵。再根据计算得到的底盘从0时刻到t时刻的位姿变换矩阵、初始位姿就能确定底盘在全局坐标系下的指定时刻的位姿。

本申请实施例中,由于底盘在相邻时刻的位姿变换矩阵是根据底盘的线速度和角速度确定,而该底盘的线速度和角速度则是根据各个轮子在底盘坐标系的转向角和转动速度计算得到,即底盘在相邻时刻的位姿变换矩阵只需获取各个轮子在底盘坐标系的转向角和转动速度就能确定,无需进行坐标系变换,且获取各个轮子的转向角和转动速度的方法简单,因此,在结合底盘在相邻时刻的位姿变换矩阵、初始位姿确定底盘在全局坐标系下的指定时刻的位姿时,减少了计算量,从而极大提高了位姿的确定效率。另外,通过利用底盘坐标系与全局坐标系在初始位姿时的重合特性,能够结合初始位姿以及位姿变换矩阵准确计算出底盘(或机器人)在全局坐标系下指定时刻的位姿。

在一些实施例中,若所述机器人的各个轮子的轮子半径都相同,则在计算底盘的线速度和角速度时,可根据该底盘所做的运动选择不同的计算方法。例如,当底盘做平移运动时,只需从底盘的各个轮子任意选择一个轮子,并根据选择的轮子的转向角、转动速度以及轮子的半径计算。即所述步骤s22包括:

若所述各个轮子的转向角都相同,且所述各个轮子的转动速度都相同,则根据任一轮子的转向角和转动速度以及轮子半径计算所述底盘的线速度和角速度。

本实施例中,假设底盘有4个轮子,4个轮子的转向角和转动速度为[αa,ωa,αb,ωb,αc,ωc,αd,ωd],底盘的运动状态通过线速度和角速度表示。其中,线速度pv在底盘坐标系xpopyp下的表示为[pvx,pvy]t,底盘的角速度为ωp。若αa=αb=αc=αd,且ωa=ωb=ωc=ωd,此时,表明该底盘在做平移运动,则底盘的线速度和角速度通过以下方式计算:

在实际情况下,由于可能存在控制误差,因此,各个轮子的转向角或者转动速度很可能不相等,此时,可将底盘中相差不大的各个转向角判定为各个相同的转向角,将底盘中相差不大的各个转动速度判定为各个相同的转动角。即:通过以下方式判断各个轮子的转向角是否都相同,以及,判断所述各个轮子的转动速度是否都相同:

若各个轮子中,任意两个转向角的差在预设的转向角差值范围内,则判定各个轮子的转向角都相同;若各个轮子中,任意两个转动速度的差在预设的转动速度差值范围内,则判定各个轮子的转动速度都相同。

本实施例中,对同一时刻获取的各个轮子的转向角,若任意两个转向角的差都在预设的转向角差值范围内,则机器人将判定各个轮子的转向角都相同,否则,判定各个轮子的转向角不完全相同。同理,对上述同一时刻获取的各个轮子的转动速度,若任意两个转动速度的差都在预设的转动速度差值范围内,则机器人将判定各个轮子的转动速度都相同,否则,判定各个轮子的转动速度不完全相同。

图4示出了本申请实施例提供的另一种位姿确定方法的流程图。在本实施例中,主要对上述的步骤s22进行细化,此外,在本实施例中,机器人的各个轮子的轮子半径r都相同、轴距l都相同、轮距w都相同以及所述底盘的角速度不为0,底盘做平移加选择或纯旋转运动,其中,轴距是指前后轴之间的距离,轮距是同一个轴上的两个轮子之间的距离。

步骤s41,分别获取各个轮子在底盘坐标系的转向角和转动速度,所述底盘坐标系为以底盘建立的坐标系。

步骤s42,若所述各个轮子的转向角不完全相同,或所述各个轮子的转动速度不完全相同,则根据所述各个轮子的转向角、轮子的轴距以及轮子的轮距,计算所述底盘的速度瞬心在底盘坐标系下的坐标。

参考图3,假设底盘具有4个轮子,当底盘运动的角速度ωp不为零时,底盘具有一速度瞬心or,可通过or在xpopyp坐标系下坐标(pxr,pyr)以及绕or旋转的角速度ωr来计算pv和ωp,易知ωp=ωr。

首先,通过4个轮子(轮子a、轮子b、轮子c、轮子d)的4个转向角:αa,αb,αc,αd,来计算or的坐标(pxr,pyr)。

显然,or为各个轮子的轴线的交点。为了综合4个轮子的信息,确定以下4个轮子的轴线方程,并确定一个最优的or,如使用线性最小二乘来确定,当然也可以采用其他的求解方法,此处不作限定。各个轮子的转向旋转中心坐标为a(l/2,w/2),b(l/2,-w/2),c(-l/2,-w/2),d(-l/2,w/2)。各直线方程为:

aor:cotαa·x+y-lcotαa/2-w/2=0

bor:cotαb·x+y-lcotαb/2+w/2=0

cor:cotαc·x+y+lcotαc/2+w/2=0

dor:cotαd·x+y+lcotαd/2-w/2=0

其中,上述公式中的“·”表示乘法运算。联立以上4个方程,得到ax=b,其中

使用线性最小二乘,有最优解:

x*=(ata)-1atb

通过求出x得到or的坐标(pxr,pyr)。

步骤s43,确定所述速度瞬心与各个轮子的切向的距离,并根据确定的切向的距离、各个轮子的转动速度以及轮子半径,确定所述底盘的角速度。

需要注意的是,该底盘的角速度是一个矢量,故需要确定该底盘的角速度所对应的数值以及对应的符号。

在一些实施例中,所述步骤s43中根据确定的切向的距离、各个轮子的转动速度以及轮子半径,确定所述底盘的角速度包括:

a1、根据确定的切向的距离、各个轮子的转动速度的绝对值以及轮子半径,确定所述底盘的角速度的绝对值。

a2、选取任一轮子,根据选取的轮子的转动速度、转向角以及轮子半径确定所述选取的轮子的切向速度矢量,根据所述切向速度矢量、所述速度瞬心与所述选取的轮子所在的直线的方向确定所述底盘的角速度的符号,所述底盘的角速度的符号为正或者为负。

a3、根据所述速度瞬心在底盘坐标系下的坐标和所述底盘的角速度确定所述底盘的线速度。

具体地,得到旋转中心or的坐标(pxr,pyr)后,机器人便可计算or与各个轮子切向的距离ra、rb、rc、rd。

再通过各个轮子的角速度的均值来近似ωr,即:

ωr的正负由or坐标和各个轮子的角速度的方向共同确定。规定底盘向前运动时,各个轮子的角速度的符号为正。各个轮子的切向速度矢量为:

底盘的角速度的符号为:

其中,sgn为符号函数。

最后,根据下式计算底盘的线速度pv:

步骤s44,根据所述底盘的线速度和角速度确定所述底盘在相邻时刻的位姿变换矩阵,所述相邻时刻是指得到相邻的转向角或相邻的转动速度所对应的两个时刻。

步骤s45,根据初始位姿和所述底盘在相邻时刻的位姿变换矩阵确定所述底盘在全局坐标系下的指定时刻的位姿,其中,所述底盘在全局坐标系下的指定时刻的位姿与所述机器人在全局坐标系下的指定时刻的位姿相同,所述初始位姿为所述底盘在初始状态的位姿,所述底盘在初始状态时,所述底盘坐标系与所述全局坐标系重合。

本实施例中,通过坐标变换并累积,计算底盘在全局坐标系下的位姿[xp,yp,γ],其中(xp,yp)为op(op为底盘坐标系的原点)在xoy下的坐标,γ为底盘坐标系xp轴相对于全局坐标系x轴的偏角。

设k时刻计算得到的速度(底盘的线速度和角速度)为[pvx,k,pvy,k,ωr,k],相邻时刻之间的时间差为δt(即转向角和转动速度的更新周期为δt)。故从k时刻到k+1时刻底盘的位姿变换矩阵为:

初始时全局坐标系xoy与底盘坐标系xpopyp重合。随着运动的进行,每次获得转向角(或转动速度)都会更新相邻时刻的位姿变换矩阵。将这些相邻时刻的位姿变换矩阵累乘,得到从0时刻到t时刻底盘的位姿变换矩阵:

结合:

由此即可得到底盘在全局坐标系下的位姿[xp,yp,γ]。

为了更清楚地描述本申请确定的位姿的精确性,下面以一具体例子进行描述:

使用数学软件matlab实现本申请的位姿确定方法,使用webots搭建仿真环境,仿真环境如图5所示,该webots是用于模拟机器人的开放源代码和多平台桌面应用程序。进行仿真得到结果如图6所示。从图6可以看出,机器人的里程计返回的位姿(位置和朝向角)与真实值相差较小,精度能够满足机器人的使用要求。

在一些实施例中,所述机器人的各个轮子的轮子半径都相同、轴距都相同、轮距都相同以及所述底盘的角速度不为0,所述步骤s22包括:

b1、若所述各个轮子的转向角不完全相同,或所述各个轮子的转动速度不完全相同,则分别获取所述各个轮子的控制误差。

b2、若分别获取的各个轮子的控制误差都在预设的误差范围内,则根据任意2个轮子的转向角、轮子的轴距以及轮子的轮距,计算所述底盘的速度瞬心在底盘坐标系下的坐标;

本实施例中,各个轮子的控制误差是指机器人的处理器发出的转向角(或转动速度)与轮子实际的转向角(或转动速度)之间的误差。当各个轮子的控制误差都在预设的误差范围内时,表明机器人的各个轮子的控制处于理想状态,此时,机器人只根据底盘中的任意2个轮子的转向角、轮子的轴距以及轮子的轮距,计算所述底盘的速度瞬心在底盘坐标系下的坐标。由于减少了参与计算的轮子的数量,因此,极大提高了计算速度。

b3、确定所述速度瞬心与任一轮子的切向的距离,并根据确定的切向的距离、任一轮子的转动速度以及轮子半径,确定所述底盘的角速度。

若机器人的各个轮子的控制处于理想状态,则步骤a21中的底盘的角速度的绝对值可通过以下方式确定:

其中,角速度的符号的确定可参考步骤a3,此处不再赘述。

即只需要根据一个轮子的信息即可确定,从而提高了得到底盘的角速度的绝对值的速度。

b4、根据所述速度瞬心在底盘坐标系下的坐标和所述底盘的角速度确定所述底盘的线速度。

在一些实施例中,所述分别获取各个轮子在底盘坐标系的转向角和转动速度,包括:

若机器人当前所处的位置与指定位置的距离小于预设的距离阈值,则分别获取各个轮子在底盘坐标系的转向角和转动速度。

本实施例中,指定位置可以为机器人在初始状态时的位置,也可以为机器人上一次通过综合考量多种传感器的测量值得到的位姿时所在的位置。其中,综合考量多种传感器得到的位姿,此处不再赘述。由于限定在距离较小时采用本申请实施例提供的方法进行位姿的计算,因此,能够有效控制累计的误差。

在一些实施例中,若机器人当前所处的位置与指定位置的距离不小于预设的距离阈值,则通过综合考量多种传感器的测量值确定机器人的位姿。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

实施例二:

对应于上文实施例所述的位姿确定方法,图7示出了本申请实施例提供的位姿确定装置的结构框图,该位姿确定装置7应用于机器人中,所述机器人的底盘包括至少3个轮子的独立转向的可控输入以及至少3个轮子的独立转动的可控输入,为了便于说明,仅示出了与本申请实施例相关的部分。

参照图7,该位姿确定装置7包括:转向角获取单元71、线速度计算单元72、相邻时刻的位姿变换矩阵确定单元73、位姿确定单元74。其中:

转向角获取单元71,用于分别获取各个轮子在底盘坐标系的转向角和转动速度,所述底盘坐标系为以底盘建立的坐标系。

线速度计算单元72,用于根据所述各个轮子的转向角和转动速度计算所述底盘的线速度和角速度。

相邻时刻的位姿变换矩阵确定单元73,用于根据所述底盘的线速度和角速度确定所述底盘在相邻时刻的位姿变换矩阵,所述相邻时刻是指得到相邻的转向角或相邻的转动速度所对应的两个时刻。

位姿确定单元74,用于根据初始位姿和所述底盘在相邻时刻的位姿变换矩阵确定所述底盘在全局坐标系下的指定时刻的位姿,其中,所述底盘在全局坐标系下的指定时刻的位姿与所述机器人在全局坐标系下的指定时刻的位姿相同,所述初始位姿为所述底盘在初始状态的位姿,所述底盘在初始状态时,所述底盘坐标系与所述全局坐标系重合。

本申请实施例中,由于底盘在相邻时刻的位姿变换矩阵是根据底盘的线速度和角速度确定,而该底盘的线速度和角速度则是根据各个轮子在底盘坐标系的转向角和转动速度计算得到,即底盘在相邻时刻的位姿变换矩阵只需获取各个轮子在底盘坐标系的转向角和转动速度就能确定,无需进行坐标系变换,且获取各个轮子的转向角和转动速度的方法简单,因此,在结合底盘在相邻时刻的位姿变换矩阵、初始位姿确定底盘在全局坐标系下的指定时刻的位姿时,减少了计算量,从而极大提高了位姿的确定效率。另外,通过利用底盘坐标系与全局坐标系在初始位姿时的重合特性,能够结合初始位姿以及位姿变换矩阵准确计算出底盘(或机器人)在全局坐标系下指定时刻的位姿。

在一些实施例中,所述机器人的各个轮子的轮子半径都相同,所述线速度计算单元72,具体用于:

若所述各个轮子的转向角都相同,且所述各个轮子的转动速度都相同,则根据任一轮子的转向角和转动速度以及轮子半径计算所述底盘的线速度和角速度。

在一些实施例中,通过以下方式判断各个轮子的转向角是否都相同,以及,判断所述各个轮子的转动速度是否都相同:

若各个轮子中,任意两个转向角的差在预设的转向角差值范围内,则判定各个轮子的转向角都相同;若各个轮子中,任意两个转动速度的差在预设的转动速度差值范围内,则判定各个轮子的转动速度都相同。

在一些实施例中,所述机器人的各个轮子的轮子半径都相同、轴距都相同、轮距都相同以及所述底盘的角速度不为0,所述线速度计算单元72包括:

速度瞬心的坐标确定模块,用于若所述各个轮子的转向角不完全相同,或所述各个轮子的转动速度不完全相同,则根据所述各个轮子的转向角、轮子的轴距以及轮子的轮距,计算所述底盘的速度瞬心在底盘坐标系下的坐标;

底盘的角速度确定模块,用于确定所述速度瞬心与各个轮子的切向的距离,并根据确定的切向的距离、各个轮子的转动速度以及轮子半径,确定所述底盘的角速度;

底盘的线速度确定模块,用于根据所述速度瞬心在底盘坐标系下的坐标和所述底盘的角速度确定所述底盘的线速度。

在一些实施例中,所述底盘的角速度确定模块在根据确定的切向的距离、各个轮子的转动速度以及轮子半径,确定所述底盘的角速度时,具体用于:

根据确定的切向的距离、各个轮子的转动速度的绝对值以及轮子半径,确定所述底盘的角速度的绝对值;选取任一轮子,根据选取的轮子的转动速度、转向角以及轮子半径确定所述选取的轮子的切向速度矢量,根据所述切向速度矢量、所述速度瞬心与所述选取的轮子所在的直线的方向确定所述底盘的角速度的符号,所述底盘的角速度的符号为正或者为负。

在一些实施例中,所述机器人的各个轮子的轮子半径都相同、轴距都相同、轮距都相同以及所述底盘的角速度不为0,所述线速度计算单元72包括:

控制误差获取模块,用于若所述各个轮子的转向角不完全相同,或所述各个轮子的转动速度不完全相同,则分别获取所述各个轮子的控制误差。

速度瞬心的坐标快速计算模块,用于若分别获取的各个轮子的控制误差都在预设的误差范围内,则根据任意2个轮子的转向角、轮子的轴距以及轮子的轮距,计算所述底盘的速度瞬心在底盘坐标系下的坐标。

底盘的角速度快速计算模块,用于确定所述速度瞬心与任一轮子的切向的距离,并根据确定的切向的距离、任一轮子的转动速度以及轮子半径,确定所述底盘的角速度。

底盘的线速度快速计算模块,用于根据所述速度瞬心在底盘坐标系下的坐标和所述底盘的角速度确定所述底盘的线速度。

在一些实施例中,所述转向角获取单元71具体用于:

若机器人当前所处的位置与指定位置的距离小于预设的距离阈值,则分别获取各个轮子在底盘坐标系的转向角和转动速度。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

实施例三:

图8为本申请一实施例提供的机器人的结构示意图。如图8所示,该实施例的机器人8包括:至少一个处理器80(图8中仅示出一个处理器)、存储器81以及存储在所述存储器81中并可在所述至少一个处理器80上运行的计算机程序82,所述处理器80执行所述计算机程序82时实现上述任意各个方法实施例中的步骤:

分别获取各个轮子在底盘坐标系的转向角和转动速度,所述底盘坐标系为以底盘建立的坐标系;

根据所述各个轮子的转向角和转动速度计算所述底盘的线速度和角速度;

根据所述底盘的线速度和角速度确定所述底盘在相邻时刻的位姿变换矩阵,所述相邻时刻是指得到相邻的转向角或相邻的转动速度所对应的两个时刻;

根据初始位姿和所述底盘在相邻时刻的位姿变换矩阵确定所述底盘在全局坐标系下的指定时刻的位姿,其中,所述底盘在全局坐标系下的指定时刻的位姿与所述机器人在全局坐标系下的指定时刻的位姿相同,所述初始位姿为所述底盘在初始状态的位姿,所述底盘在初始状态时,所述底盘坐标系与所述全局坐标系重合。

可选地,所述机器人的各个轮子的轮子半径都相同,所述根据所述各个轮子的转向角和转动速度计算所述底盘的线速度和角速度,包括:

若所述各个轮子的转向角都相同,且所述各个轮子的转动速度都相同,则根据任一轮子的转向角和转动速度以及轮子半径计算所述底盘的线速度和角速度。

可选地,通过以下方式判断各个轮子的转向角是否都相同,以及,判断所述各个轮子的转动速度是否都相同:

若各个轮子中,任意两个转向角的差在预设的转向角差值范围内,则判定各个轮子的转向角都相同;

若各个轮子中,任意两个转动速度的差在预设的转动速度差值范围内,则判定各个轮子的转动速度都相同。

可选地,所述机器人的各个轮子的轮子半径都相同、任意两个轮子的轴距都相同、任意两个轮子的轮距都相同以及所述底盘的角速度不为0,所述根据所述各个轮子的转向角和转动速度计算所述底盘的线速度和角速度,包括:

若所述各个轮子的转向角不完全相同,或所述各个轮子的转动速度不完全相同,则根据所述各个轮子的转向角、轮子的轴距以及轮子的轮距,计算所述底盘的速度瞬心在底盘坐标系下的坐标;

确定所述速度瞬心与各个轮子的切向的距离,并根据确定的切向的距离、各个轮子的转动速度以及轮子半径,确定所述底盘的角速度;

根据所述速度瞬心在底盘坐标系下的坐标和所述底盘的角速度确定所述底盘的线速度。

可选地,所述确定所述速度瞬心与各个轮子的切向的距离,并根据确定的切向的距离、各个轮子的转动速度以及轮子半径,确定所述底盘的角速度,包括:

根据确定的切向的距离、各个轮子的转动速度的绝对值以及轮子半径,确定所述底盘的角速度的绝对值;

选取任一轮子,根据选取的轮子的转动速度、转向角以及轮子半径确定所述选取的轮子的切向速度矢量,根据所述切向速度矢量、所述速度瞬心与所述选取的轮子所在的直线的方向确定所述底盘的角速度的符号,所述底盘的角速度的符号为正或者为负。

可选地,所述机器人的各个轮子的轮子半径都相同、任意两个轮子的轴距都相同、任意两个轮子的轮距都相同以及所述底盘的角速度不为0,所述根据所述各个轮子的转向角和转动速度计算所述底盘的线速度和角速度,包括:

若所述各个轮子的转向角不完全相同,或所述各个轮子的转动速度不完全相同,则分别获取所述各个轮子的控制误差;

若分别获取的各个轮子的控制误差都在预设的误差范围内,则根据任意2个轮子的转向角、轮子的轴距以及轮子的轮距,计算所述底盘的速度瞬心在底盘坐标系下的坐标;

确定所述速度瞬心与任一轮子的切向的距离,并根据确定的切向的距离、任一轮子的转动速度以及轮子半径,确定所述底盘的角速度;

根据所述速度瞬心在底盘坐标系下的坐标和所述底盘的角速度确定所述底盘的线速度。

可选地,所述分别获取各个轮子在底盘坐标系的转向角和转动速度,包括:

若机器人当前所处的位置与指定位置的距离小于预设的距离阈值,则分别获取各个轮子在底盘坐标系的转向角和转动速度。

所述机器人8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该机器人可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是机器人8的举例,并不构成对机器人8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。

所称处理器80可以是中央处理单元(centralprocessingunit,cpu),该处理器80还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器81在一些实施例中可以是所述机器人8的内部存储单元,例如机器人8的硬盘或内存。所述存储器81在另一些实施例中也可以是所述机器人8的外部存储设备,例如所述机器人8上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器81还可以既包括所述机器人8的内部存储单元也包括外部存储设备。所述存储器81用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供了一种网络设备,该网络设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips