CN113029201B - 双轮差速模型的里程校准方法和装置、设备及存储介质 - Google Patents
双轮差速模型的里程校准方法和装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113029201B CN113029201B CN202110373157.9A CN202110373157A CN113029201B CN 113029201 B CN113029201 B CN 113029201B CN 202110373157 A CN202110373157 A CN 202110373157A CN 113029201 B CN113029201 B CN 113029201B
- Authority
- CN
- China
- Prior art keywords
- wheel
- encoder
- turns
- value
- actual
- 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
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C25/00—Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
Landscapes
- Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Measurement Of Distances Traversed On The Ground (AREA)
Abstract
本申请涉及一种基于双轮差速模型的里程校准方法,该基于双轮差速模型的里程校准方法包括采集设置在所述机器人或所述车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距,基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息,通过所述里程计信息校准机器人或车辆的位置。可以采用的传感器为轮子上自带霍尔、光电编码器、磁角度传感器,无需外加传感器,在不增加成本的情况下提高了校准精度。
Description
技术领域
本公开涉及双轮差速校准技术领域,尤其涉及一种双轮差速模型的里程校准方法和装置、设备及存储介质。
背景技术
当前双轮差速移动底盘里程计的计算多采用获取电机转速并用时间做积分获得。有的则使用6轴或9轴对底盘姿态进行解算,并使用惯性积分方法获得底盘的里程信息。
电机转速加时间积分形式,其中转速误差、时间误差、轮半径误差、轮间距误差会随着时间积分误差越来越大。误差源有4个并且很难消除。
6轴或9轴做姿态解算后对加速度进行两次时间积分得到底盘的里程信息,这样做对加速计的精度要求较高,如果加速度有误差,则对时间做两次积分后,误差会增大,从而影响里程计精度。外力加速度对姿态解算也会产生影响,从而影响里程计精度。如果想要得到较理想的里程信息,可以使用精度较高价格较贵的传感器,从而使得成本增加。
发明内容
有鉴于此,本公开提出了一种基于双轮差速模型的里程校准方法,用于对机器人或车辆的轨迹进行校准,包括:
采集设置在所述机器人或所述车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距;
基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距;
根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角;
根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息;
通过所述里程计信息校准机器人或车辆的位置。
在一种可能的实现方式中,校准实际轮半径包括:
获取左轮或者右轮转一圈时对应的编码器的第一数值;
依据所述第一数值和所述理论半径得到所述编码器的一个单位对应的距离;
在左轮和右轮走相同的所述单位时,获取底盘行走的距离;
依据所述底盘行走的距离、所述第一数值和所述编码器的一个单位对应的距离得到所述实际轮半径。
在一种可能的实现方式中,校准实际轮间距包括:
实际轮间距在左轮和右轮走相同的所述单位时,获取旋转弧度;
根据所述理论实际轮间距、所述编码器的一个单位对应的距离和所述旋转弧度得到实际轮间距。
在一种可能的实现方式中,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角包括:
依据所述实际轮半径和所述实际轮间距计算车辆模型原地旋转一周时轮子旋转的第一圈数;
依据所述编码器数据计算左轮行走的左轮圈数;
依据所述编码器数据计算右轮行走的右轮圈数;
通过左轮圈数和右轮圈数得到圈数差值;
依据所述圈数差值和所述第一圈数得到所述航向角。
在一种可能的实现方式中,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角包括:
若所述左轮圈数的绝对值和所述右轮圈数的绝对值均大于所述第一圈数;
则判断所述左轮圈数和所述右轮圈数的正负;
若所述左轮圈数为负值,则将所述左轮圈数加上所述第一圈数;
若所述左轮圈数为正值,则将所述左轮圈数减去所述第一圈数;
若所述右轮圈数为负值,则将所述右轮圈数加上所述第一圈数;
若所述右轮圈数为正值,则将所述右轮圈数减去所述第一圈数;
将新的左轮圈数转换为编码器数值并加上对应的编码器剩余的数值得到左轮编码器数值;
将新的右轮圈数转换为编码器数值并加上对应的编码器剩余的数值得到右轮编码器数值;
将所述左编码器数值减去所述右编码器数值得到所述圈数差值;
依据所述圈数差值和所述第一圈数的商得到所述航向角。
在一种可能的实现方式中,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息包括:
在单位时间内采集所述编码器数据;
依据单位时间所述编码器数据计算得到行走距离;
依据所述行走距离和所述航向角得到所述里程计信息。
在一种可能的实现方式中,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息包括:
在单位时间内采集左轮编码器的第一增量;
在单位时间内采集右轮编码器的第二增量;
求所述第一增量和所述第二增量的平均值得到平均增量;
将所述平均增量依据编码器的一个单位对应的距离转换为所述行走距离;
将所述行走距离乘以所述航向角的余弦值得到X轴里程信息;
将所述行走距离乘以所述航向角的正弦值得到Y轴里程信息。
根据本公开的另一方面,提供了一种基于双轮差速模型的里程校准装置,其特征在于,包括数据采集模块、轮子参数校准模块、航向角计算模块、里程计信息计算模块和路线校准模块;
所述数据采集模块,被配置为采集设置在所述机器人或所述车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距;
所述轮子参数校准模块,被配置为基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距;
所述航向角计算模块,被配置为根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角;
所述里程计信息计算模块,被配置为根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息;
所述里程计信息计算模块,被配置为通过所述里程计信息校准机器人或车辆的位置。
根据本公开的另一方面,提供了一种基于双轮差速模型的里程校准设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现前面任一所述的方法。
通过采集设置在所述机器人或所述车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距,基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息,通过所述里程计信息校准机器人或车辆的位置。可以采用的传感器为轮子上自带霍尔、光电编码器、磁角度传感器,无需外加传感器,在不增加成本的情况下提高了校准精度。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出本公开的实施例的基于双轮差速模型的里程校准方法的流程图;
图2示出本公开的实施例的基于双轮差速模型的里程校准装置的框图;
图3示出本公开的实施例的基于双轮差速模型的里程校准设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的基于双轮差速模型的里程校准方法的流程图。如图1所示,该基于双轮差速模型的里程校准方法包括:
步骤S100,采集设置在所述机器人或所述车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距,步骤S200,基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距,步骤S300,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角,步骤S400,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息,步骤S500,通过所述里程计信息校准机器人或车辆的位置。
通过采集设置在所述机器人或所述车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距,基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息,通过所述里程计信息校准机器人或车辆的位置。可以采用的传感器为轮子上自带霍尔、光电编码器、磁角度传感器,无需外加传感器,在不增加成本的情况下提高了校准精度。
具体的,参见图1,执行步骤S100,采集设置在所述机器人或所述车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距。
在一种可能的实现方式中,在机器人的轮子上设置有霍尔传感器、绝对值编码器、增量式编码器和磁角度传感器,在机器人行进的过程中,编码器和传感器的的数据随着轮子的运动进行更新,即可实时采集编码器的数值。
进一步的,参见图1,执行步骤S200,基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距。
在一种可能的实现方式中,依据编码器数据计算实际轮半径包括:获取理论半径,获取左轮或者右轮转一圈时对应的编码器的第一数值,依据第一数值和理论半径得到编码器的一个单位对应的距离,在左轮和右轮走相同的单位时,获取底盘行走的距离,依据底盘行走的距离、第一数值和编码器的一个单位对应的距离得到实际轮半径。举例来说,左轮和右轮为相同的轮子,轮子的理论半径为R毫米,轮子转一圈编码器旋转过的格数为固定量N,让车两个轮子速度相同方向相反,同时走10000mm的距离。即两个轮子同时走过的编码器格数T计算如下,首先计算每格编码器对应的距离P,其中,P=2πR/N,T=10000/P,接着,使两个轮子同时行走T个编码器格,获取底盘行走的距离,底盘实际行走了Xmm,则可计算出实际的实际轮半径R1,R1=X×N/(T×2π)。
需要说明的是,可多次进行实际轮半径的计算,得到多个R1,取多个R1的平均值作为实际的实际轮半径,可以增加精确度。
在一种可能的实现方式中,依据编码器数据计算实际轮间距包括:获取理论实际轮间距,在左轮和右轮走相同的单位时,获取旋转弧度,根据理论实际轮间距、编码器的一个单位对应的距离和旋转弧度得到实际轮间距。举例来说,左轮和右轮的理论值实际轮间距为Dmm,让两个轮子速度相同,但转向相同,让车自身旋转10圈,即两个轮子同时走过的编码器个数T1计算为:T1=10πD/P,实际矫正中,使两个轮子同向、同时并同速行走T1个编码器格,获取机器人的旋转弧度,机器人实际旋转Y弧度,则可通过以下计算,计算出实际的实际轮间距D1,D1=T1*P*2/Y。同样的,可多次重复进行实际轮间距的计算,得到多个D1,取多个D1的平均值作为实际的实际轮间距。
进一步的,参见图1,执行步骤S300,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角。
在一种可能的实现方式中,根据编码器数据、实际轮半径和实际轮间距计算航向角包括:依据实际轮半径和实际轮间距计算车辆模型原地旋转一周时轮子旋转的第一圈数,依据编码器数据计算左轮行走的左轮圈数,依据编码器数据计算右轮行走的右轮圈数,通过左轮圈数和右轮圈数得到圈数差值,依据圈数差值和第一圈数得到航向角。
进一步的,根据编码器数据、实际轮半径和实际轮间距计算航向角具体包括:若左轮圈数的绝对值和右轮圈数的绝对值均大于第一圈数,则判断左轮圈数和右轮圈数的正负,若左轮圈数为负值,则将左轮圈数加上第一圈数,若左轮圈数为正值,则将左轮圈数减去第一圈数,若右轮圈数为负值,则将右轮圈数加上第一圈数,若右轮圈数为正值,则将右轮圈数减去第一圈数,将新的左轮圈数转换为编码器数值并加上对应的编码器剩余的数值得到左轮编码器数值,将新的右轮圈数转换为编码器数值并加上对应的编码器剩余的数值得到右轮编码器数值,将左编码器数值减去右编码器数值得到圈数差值,依据圈数差值和第一圈数的商得到航向角。举例来说,左轮和右轮为相同的轮子,轮子的理论半径为R毫米,轮子转一圈编码器旋转过的格数为固定量N,让车两个轮子速度相同方向相反,同时走10000mm的距离。即两个轮子同时走过的编码器格数T计算如下,首先计算每格编码器对应的距离P,其中,P=2πR/N,T=10000/P,接着,使两个轮子同时行走T个编码器格,获取底盘行走的距离,底盘实际行走了Xmm,则可计算出实际的实际轮半径R1,R1=X×N/(T×2π),左轮和右轮的理论值实际轮间距为Dmm,让两个轮子速度相同,但转向相同,让车自身旋转10圈,即两个轮子同时走过的编码器个数T1计算为:T1=10πD/P,实际矫正中,使两个轮子同向、同时并同速行走T1个编码器格,获取机器人的旋转弧度,机器人实际旋转Y弧度,则可通过以下计算,计算出实际的实际轮间距D1,D1=T1*P*2/Y,进一步的,则可计算出车辆原地旋转一周轮子旋转的圈数num=D/B,底盘在行走过程中通过采集编码器的值,增量计算左右轮各自行走的总圈数及编码器当前个数,c1定义为左轮行走的总圈数,n1定义为左轮行走的不到一圈的编码器个数,c2定义为右轮行走的总圈数,n2定义为右轮行走的不到一圈的编码器个数,可取c1和c2的最小值的绝对值与num比较,如果绝对值的最小值比num大,则可以消除圈数,如果|c1|>num并且|c2|>num则进行进一步的判断,如果c1小于0,则将c1的值替换为c1+num,如果c1大于0,则将c1的值替换为c1-num,同样的,如果c2小于0,则将c2的值替换为c2+num,如果c2大于0,则将c2的值替换为c2-num,进一步的,计算左轮编码器数值TotalN1=c1*N+n1,计算右轮编码器数值TotalN2=c2*N+n2,计算左轮编码器数值和右轮编码器数值的差值得到圈数差值diffN=TotalN1-TotalN2,也就是左轮编码器和右轮编码器的格数差值,接着,将圈数差值转换为轮子的圈数diffCircle=diffN/N,最后,通过圈数差值即可计算得到航向角yaw=diffCircle/num*2π。
进一步的,参见图1,执行步骤S400,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息。
在一种可能的实现方式中,根据航向角和单位时间内编码器数据的增量值计算里程计信息包括:在单位时间内采集编码器数据,依据单位时间编码器数据计算得到行走距离,依据行走距离和航向角得到里程计信息。
进一步的,在一种可能的实现方式中,根据航向角和单位时间内编码器数据的增量值计算里程计信息具体包括:在单位时间内采集左轮编码器的第一增量,在单位时间内采集右轮编码器的第二增量,求第一增量和第二增量的平均值得到平均增量,将平均增量依据编码器的一个单位对应的距离转换为行走距离,将行走距离乘以航向角的余弦值得到X轴里程信息,将行走距离乘以航向角的正弦值得到Y轴里程信息。举例来说,左轮和右轮为相同的轮子,轮子的理论半径为R毫米,轮子转一圈编码器旋转过的格数为固定量N,让车两个轮子速度相同方向相反,同时走10000mm的距离。即两个轮子同时走过的编码器格数T计算如下,首先计算每格编码器对应的距离P,其中,P=2πR/N,T=10000/P,接着,使两个轮子同时行走T个编码器格,获取底盘行走的距离,底盘实际行走了Xmm,则可计算出实际的实际轮半径R1,R1=X×N/(T×2π),左轮和右轮的理论值实际轮间距为Dmm,让两个轮子速度相同,但转向相同,让车自身旋转10圈,即两个轮子同时走过的编码器个数T1计算为:T1=10πD/P,实际矫正中,使两个轮子同向、同时并同速行走T1个编码器格,获取机器人的旋转弧度,机器人实际旋转Y弧度,则可通过以下计算,计算出实际的实际轮间距D1,D1=T1*P*2/Y,进一步的,则可计算出车辆原地旋转一周轮子旋转的圈数num=D/B,底盘在行走过程中通过采集编码器的值,增量计算左右轮各自行走的总圈数及编码器当前个数,c1定义为左轮行走的总圈数,n1定义为左轮行走的不到一圈的编码器个数,c2定义为右轮行走的总圈数,n2定义为右轮行走的不到一圈的编码器个数,可取c1和c2的最小值的绝对值与num比较,如果绝对值的最小值比num大,则可以消除圈数,如果|c1|>num并且|c2|>num则进行进一步的判断,如果c1小于0,则将c1的值替换为c1+num,如果c1大于0,则将c1的值替换为c1-num,同样的,如果c2小于0,则将c2的值替换为c2+num,如果c2大于0,则将c2的值替换为c2-num,进一步的,计算左轮编码器数值TotalN1=c1*N+n1,计算右轮编码器数值TotalN2=c2*N+n2,计算左轮编码器数值和右轮编码器数值的差值得到圈数差值diffN=TotalN1-TotalN2,也就是左轮编码器和右轮编码器的格数差值,接着,将圈数差值转换为轮子的圈数diffCircle=diffN/N,最后,通过圈数差值即可计算得到航向角yaw=diffCircle/num*2π。接着,单位时间内采集左轮编码器的增量值和右轮编码器的增量值,分别定义为detn1,detn2,通过增量值可以计算车辆模型行走的距离detS=detN*P,其中,detN=(detn1+detn2)/2,新的X轴的值为x+detS*cos(Yaw),新的Y轴的值为y=y+detS*sin(Yaw),这样也就得到了里程计信息。通过这样计算的里程信息,计算方式简单,计算量少,可直接应用于单片机中进行计算。
进一步的,参见图1,执行步骤S500,通过所述里程计信息校准机器人或车辆的位置。
在一种可能的实现方式中,在得到里程计信息后,即可根据里程计信息进行路线计算,举例来说,将得到的里程计信息与激光slam定位算法做融合处理,即,将里程计信息种的各项参数:X值、Y值和航向角带入slam可以得到更优的定位效果。
在一种可能的实现方式中,使机器人在周长为40m的回形走廊进行测试,从起点出发再次回到起点,航向角的误差为3°,x坐标的的偏差为5cm,y偏差为4cm。
需要说明的是,尽管以上述各个步骤作为示例介绍了基于双轮差速模型的里程校准方法如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定基于双轮差速模型的里程校准方法,只要达到所需功能即可。
这样,通过采集设置在所述机器人或所述车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距,基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息,通过所述里程计信息校准机器人或车辆的位置。可以采用的传感器为轮子上自带霍尔、光电编码器、磁角度传感器,无需外加传感器,在不增加成本的情况下提高了校准精度。
进一步的,根据本公开的另一方面,还提供了一种基于双轮差速模型的里程校准装置100。由于本公开实施例的基于双轮差速模型的里程校准装置100的工作原理与本公开实施例的基于双轮差速模型的里程校准方法的原理相同或相似,因此重复之处不再赘述。参见图2,本公开实施例的基于双轮差速模型的里程校准装置100包括数据采集模块110、轮子参数校准模块120、航向角计算模块130、里程计信息计算模块140和路线校准模块150;
数据采集模块110,被配置为采集设置在机器人或车辆上的各编码器数据,并获取机器人或车辆上所安装的轮子的理论半径和理论轮间距;
轮子参数校准模块120,被配置为基于各编码器数据对理论半径和理论轮间距进行校准得到实际轮半径和实际轮间距;
航向角计算模块130,被配置为根据编码器数据、实际轮半径和实际轮间距计算航向角;
里程计信息计算模块140,被配置为根据航向角和单位时间内编码器数据的增量值计算里程计信息;
里程计信息计算模块150,被配置为通过里程计信息校准机器人或车辆的位置。
更进一步地,根据本公开的另一方面,还提供了一种基于双轮差速模型的里程校准设备200。参阅图3,本公开实施例基于双轮差速模型的里程校准设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一所述的基于双轮差速模型的里程校准方法。
此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本公开实施例的基于双轮差速模型的里程校准设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的基于双轮差速模型的里程校准方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行基于双轮差速模型的里程校准设备200的各种功能应用及数据处理。
输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。
根据本公开的另一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器210执行时实现前面任一所述的基于双轮差速模型的里程校准方法。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (6)
1.一种基于双轮差速模型的里程校准方法,用于对机器人或车辆的轨迹进行校准,其特征在于,包括:
采集设置在所述机器人或所述车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距;
基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距;
根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角;
根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息;
通过所述里程计信息校准机器人或车辆的位置;
其中,校准得到实际轮半径包括:
获取左轮或者右轮转一圈时对应的编码器的第一数值;
依据所述第一数值和所述理论半径得到所述编码器的一个单位对应的距离;
在左轮和右轮走相同的所述单位时,获取底盘行走的距离;
依据所述底盘行走的距离、所述第一数值和所述编码器的一个单位对应的距离得到所述实际轮半径;
其中,校准得到实际轮间距包括:
实际轮间距在左轮和右轮走相同的所述单位时,获取旋转弧度;
根据所述理论轮间距、所述编码器的一个单位对应的距离和所述旋转弧度得到实际轮间距;
其中,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角包括:
依据所述实际轮半径和所述实际轮间距计算车辆模型原地旋转一周时轮子旋转的第一圈数;
依据所述编码器数据计算左轮行走的左轮圈数;
依据所述编码器数据计算右轮行走的右轮圈数;
通过左轮圈数和右轮圈数得到圈数差值;
依据所述圈数差值和所述第一圈数得到所述航向角;
根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角包括:
若所述左轮圈数的绝对值和所述右轮圈数的绝对值均大于所述第一圈数;
则判断所述左轮圈数和所述右轮圈数的正负;
若所述左轮圈数为负值,则将所述左轮圈数加上所述第一圈数;
若所述左轮圈数为正值,则将所述左轮圈数减去所述第一圈数;
若所述右轮圈数为负值,则将所述右轮圈数加上所述第一圈数;
若所述右轮圈数为正值,则将所述右轮圈数减去所述第一圈数;
将新的左轮圈数转换为编码器数值并加上对应的编码器剩余的数值得到左轮编码器数值;
将新的右轮圈数转换为编码器数值并加上对应的编码器剩余的数值得到右轮编码器数值;
将所述左轮编码器数值减去所述右轮编码器数值得到所述圈数差值;
依据所述圈数差值和所述第一圈数的商得到所述航向角;
其中,底盘在行走过程中通过采集编码器的值,增量计算左右轮各自行走的总圈数及编码器当前个数,c1定义为左轮行走的总圈数,n1定义为左轮行走的不到一圈的编码器个数,c2定义为右轮行走的总圈数,n2定义为右轮行走的不到一圈的编码器个数,取c1和c2的最小值的绝对值与num比较,如果绝对值的最小值比num大,则:如果|c1|>num并且|c2|>num则进行进一步的判断,如果c1小于0,则将c1的值替换为c1+num,如果c1大于0,则将c1的值替换为c1-num,同样的,如果c2小于0,则将c2的值替换为c2+num,如果c2大于0,则将c2的值替换为c2-num,进一步的,计算左轮编码器数值TotalN1=c1*N+n1,计算右轮编码器数值TotalN2=c2*N+n2,计算左轮编码器数值和右轮编码器数值的差值得到圈数差值diffN=TotalN1-TotalN2,也就是左轮编码器和右轮编码器的格数差值,接着,将圈数差值转换为轮子的圈数diffCircle=diffN/N,最后,通过圈数差值即可计算得到航向角yaw=diffCircle/num*2π;其中,N为轮子转一圈编码器旋转过的格数,num为车辆原地旋转一周轮子旋转的圈数。
2.根据权利要求1所述的方法,其特征在于,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息包括:
在单位时间内采集所述编码器数据;
依据单位时间所述编码器数据计算得到行走距离;
依据所述行走距离和所述航向角得到所述里程计信息。
3.根据权利要求2所述的方法,其特征在于,根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息包括:
在单位时间内采集左轮编码器的第一增量;
在单位时间内采集右轮编码器的第二增量;
求所述第一增量和所述第二增量的平均值得到平均增量;
将所述平均增量依据编码器的一个单位对应的距离转换为所述行走距离;
将所述行走距离乘以所述航向角的余弦值得到X轴里程信息;
将所述行走距离乘以所述航向角的正弦值得到Y轴里程信息。
4.一种基于双轮差速模型的里程校准装置,其特征在于,包括数据采集模块、轮子参数校准模块、航向角计算模块、里程计信息计算模块和路线校准模块;
所述数据采集模块,被配置为采集设置在机器人或车辆上的各编码器数据,并获取所述机器人或所述车辆上所安装的轮子的理论半径和理论轮间距;
所述轮子参数校准模块,被配置为基于各所述编码器数据对所述理论半径和所述理论轮间距进行校准得到实际轮半径和实际轮间距;
所述航向角计算模块,被配置为根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角;
所述里程计信息计算模块,被配置为根据所述航向角和单位时间内所述编码器数据的增量值计算里程计信息;
所述里程计信息计算模块,被配置为通过所述里程计信息校准机器人或车辆的位置;
其中,校准得到实际轮半径包括:
获取左轮或者右轮转一圈时对应的编码器的第一数值;
依据所述第一数值和所述理论半径得到所述编码器的一个单位对应的距离;
在左轮和右轮走相同的所述单位时,获取底盘行走的距离;
依据所述底盘行走的距离、所述第一数值和所述编码器的一个单位对应的距离得到所述实际轮半径;
其中,校准得到实际轮间距包括:
实际轮间距在左轮和右轮走相同的所述单位时,获取旋转弧度;
根据所述理论轮间距、所述编码器的一个单位对应的距离和所述旋转弧度得到实际轮间距;
其中,根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角包括:
依据所述实际轮半径和所述实际轮间距计算车辆模型原地旋转一周时轮子旋转的第一圈数;
依据所述编码器数据计算左轮行走的左轮圈数;
依据所述编码器数据计算右轮行走的右轮圈数;
通过左轮圈数和右轮圈数得到圈数差值;
依据所述圈数差值和所述第一圈数得到所述航向角;
根据所述编码器数据、所述实际轮半径和所述实际轮间距计算航向角包括:
若所述左轮圈数的绝对值和所述右轮圈数的绝对值均大于所述第一圈数;
则判断所述左轮圈数和所述右轮圈数的正负;
若所述左轮圈数为负值,则将所述左轮圈数加上所述第一圈数;
若所述左轮圈数为正值,则将所述左轮圈数减去所述第一圈数;
若所述右轮圈数为负值,则将所述右轮圈数加上所述第一圈数;
若所述右轮圈数为正值,则将所述右轮圈数减去所述第一圈数;
将新的左轮圈数转换为编码器数值并加上对应的编码器剩余的数值得到左轮编码器数值;
将新的右轮圈数转换为编码器数值并加上对应的编码器剩余的数值得到右轮编码器数值;
将所述左轮编码器数值减去所述右轮编码器数值得到所述圈数差值;
依据所述圈数差值和所述第一圈数的商得到所述航向角;
其中,底盘在行走过程中通过采集编码器的值,增量计算左右轮各自行走的总圈数及编码器当前个数,c1定义为左轮行走的总圈数,n1定义为左轮行走的不到一圈的编码器个数,c2定义为右轮行走的总圈数,n2定义为右轮行走的不到一圈的编码器个数,取c1和c2的最小值的绝对值与num比较,如果绝对值的最小值比num大,则:如果|c1|>num并且|c2|>num则进行进一步的判断,如果c1小于0,则将c1的值替换为c1+num,如果c1大于0,则将c1的值替换为c1-num,同样的,如果c2小于0,则将c2的值替换为c2+num,如果c2大于0,则将c2的值替换为c2-num,进一步的,计算左轮编码器数值TotalN1=c1*N+n1,计算右轮编码器数值TotalN2=c2*N+n2,计算左轮编码器数值和右轮编码器数值的差值得到圈数差值diffN=TotalN1-TotalN2,也就是左轮编码器和右轮编码器的格数差值,接着,将圈数差值转换为轮子的圈数diffCircle=diffN/N,最后,通过圈数差值即可计算得到航向角yaw=diffCircle/num*2π;其中,N为轮子转一圈编码器旋转过的格数,num为车辆原地旋转一周轮子旋转的圈数。
5.一种基于双轮差速模型的里程校准设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现权利要求1至3中任意一项所述的方法。
6.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至3中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110373157.9A CN113029201B (zh) | 2021-04-07 | 2021-04-07 | 双轮差速模型的里程校准方法和装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110373157.9A CN113029201B (zh) | 2021-04-07 | 2021-04-07 | 双轮差速模型的里程校准方法和装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113029201A CN113029201A (zh) | 2021-06-25 |
CN113029201B true CN113029201B (zh) | 2023-04-07 |
Family
ID=76454429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110373157.9A Active CN113029201B (zh) | 2021-04-07 | 2021-04-07 | 双轮差速模型的里程校准方法和装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113029201B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114442617A (zh) * | 2022-01-06 | 2022-05-06 | 东风柳州汽车有限公司 | 一种agv小车的控制方法及装置 |
CN114932951B (zh) * | 2022-06-29 | 2023-08-25 | 广州高新兴机器人有限公司 | 机器人底盘前轮等效转向角度的校准方法及*** |
CN117663026B (zh) * | 2024-01-29 | 2024-04-12 | 广东熠日照明科技有限公司 | 一种双编码器锚定电机转动角度的设计方法及舞台灯 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080007793A (ko) * | 2006-07-18 | 2008-01-23 | 현대자동차주식회사 | 차량의 체감연비 개선을 위한 오도메타 오차율 보정방법 |
CN104316059B (zh) * | 2014-11-05 | 2017-08-25 | 中国科学院嘉兴微电子与***工程中心 | 由里程计获得车辆经纬度的航位推算导航定位方法及*** |
CN106393104B (zh) * | 2016-08-25 | 2019-06-28 | 北京创想智控科技有限公司 | 一种移动机器人的行程校准方法 |
CN107219542B (zh) * | 2017-04-14 | 2020-07-31 | 北京克路德人工智能科技有限公司 | 基于gnss/odo的机器人双轮差速定位方法 |
CN107339991A (zh) * | 2017-07-25 | 2017-11-10 | 上海俏动智能化科技有限公司 | 一种飞行器航向角的检测方法及装置 |
CN111380562A (zh) * | 2018-12-28 | 2020-07-07 | 深圳市优必选科技有限公司 | 一种双轮差速机器人里程计参数的校准方法及装置 |
CN112050809B (zh) * | 2020-10-08 | 2022-06-17 | 吉林大学 | 轮式里程计与陀螺仪信息融合的无人车定向定位方法 |
-
2021
- 2021-04-07 CN CN202110373157.9A patent/CN113029201B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113029201A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113029201B (zh) | 双轮差速模型的里程校准方法和装置、设备及存储介质 | |
CN110968087B (zh) | 车辆控制参数的标定方法、装置、车载控制器和无人车 | |
CN102168977B (zh) | 使用全球定位***的车轮定位诊断 | |
CN110515381B (zh) | 用于定位机器人的多传感器融合算法 | |
CN109141410A (zh) | Agv组合导航的多传感器融合定位方法 | |
TW201940370A (zh) | 基於車輛量測資料處理之車輛操作 | |
CN109405837A (zh) | 物体定位方法、应用和车辆 | |
JPWO2018173907A1 (ja) | 車両制御装置 | |
CN112904884B (zh) | 足式机器人轨迹跟踪方法、设备及可读存储介质 | |
Ivanjko et al. | Simple off-line odometry calibration of differential drive mobile robots | |
CN112577512A (zh) | 一种基于轮速融合的状态量误差确定方法及车载终端 | |
Zunaidi et al. | Positioning system for 4-wheel mobile robot: encoder, gyro and accelerometer data fusion with error model method | |
CN112577513A (zh) | 一种状态量误差确定方法及车载终端 | |
CN111781931B (zh) | 机器人轮长和轮距的自动标定方法、装置、设备和介质 | |
CN111380562A (zh) | 一种双轮差速机器人里程计参数的校准方法及装置 | |
CN107962568A (zh) | 一种机器人的实时定位方法及*** | |
Rhoades et al. | A Novel Terrain Topology Classification and Navigation for an Autonomous CAN Based All-Terrain Vehicle | |
CN115342830A (zh) | 用于定位装置和里程计的标定方法、程序产品和标定装置 | |
CN111964676A (zh) | 航姿解算方法、装置、电子设备及计算机可读存储介质 | |
CN112506190A (zh) | 一种机器人定位方法、机器人定位装置及机器人 | |
CN112394190B (zh) | 角速度的确定方法及装置、存储介质、电子装置 | |
CN103673983B (zh) | 一种隧道三维线形测量***及其测量方法 | |
CN115388914B (zh) | 传感器的参数标定方法、装置、存储介质和电子装置 | |
Zhang | Towards IMU-based Full-body Motion Estimation of Rough Terrain Mobile Manipulators | |
CN117415858B (zh) | 单舵轮移动机器人舵角补偿标定方法及***、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |