单舵轮移动装置的参数标定方法、装置及可读存储介质与流程

文档序号:33630062发布日期:2023-03-28 22:35阅读:47来源:国知局
单舵轮移动装置的参数标定方法、装置及可读存储介质与流程

1.本技术涉及移动机器人标定领域,特别是涉及一种单舵轮移动装 置的参数标定方法、装置及可读存储介质。


背景技术:

2.装载有多传感器的移动机器人以其高效性和高精度而被广泛应用。 移动机器人通常融合多个传感器的数据进行定位,例如激光雷达和编 码器是移动机器人中最常用的两个传感器,在实际应用中,为了方便 装配,两个传感器被装配在移动机器人的不同位置上,他们的坐标系 并不重叠,需对两个传感器的坐标系以及编码器的内参进行校准。


技术实现要素:

3.本技术主要提供一种单舵轮移动装置的参数标定方法、装置及可 读存储介质,解决了现有技术中单舵轮移动装置标定准确度低的问题。
4.为解决上述技术问题,本技术第一方面提供了一种单舵轮移动装 置的参数标定方法,包括:获取待标定单舵轮移动装置按设定路径移 动生成的激光雷达数据序列和舵轮编码数据序列;将所述激光雷达数 据序列和舵轮编码数据序列整合得到舵轮移动数据序列,其中所述舵 轮移动数据序列包括多组按照时间顺序排列的舵轮移动数据,每组舵 轮移动数据包括由两个激光雷达数据的采样时刻所确定的所述舵轮移 动数据的起始时间和终止时间以及激光雷达位姿变换数据,以及由所 述舵轮编码数据所确定的位于所述起始时间和终止时间之间的至少一 初始舵轮偏航角以及舵轮平均转速;以同一所述舵轮移动数据中的基 于所述初始舵轮偏航角以及舵轮平均转速计算的第一旋转角度与由所 述激光雷达位姿变换数据确定第二旋转角度相等为旋转约束条件,确 定舵轮编码器内参中的舵轮零偏值;基于手眼标定的平移约束条件确 定所述舵轮编码器内参中的舵轮半径、车体轴距,以及确定激光雷达 与所述舵轮编码器之间的外参。
5.为解决上述技术问题,本技术第二方面提供了一种单舵轮移动装 置标定装置,所述装置包括相互耦接的处理器和存储器;所述存储器 中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如 上述第一方面提供的单舵轮移动装置的参数标定方法。
6.为解决上述技术问题,本技术第三方面提供了一种计算机可读存 储介质,计算机可读存储介质存储有程序数据,所述程序数据被处理 器执行时,实现上述第一方面提供的单舵轮移动装置的参数标定方法。
7.本技术的有益效果是:区别于现有技术的情况,本技术获取待标 定单舵轮移动装置按设定路径移动生成的激光雷达数据序列和舵轮编 码数据序列,然后将激光雷达数据序列和舵轮编码数据序列整合得到 舵轮移动数据序列,其中,舵轮移动数据序列包括多组按照时间顺序 排列的舵轮移动数据,每组舵轮移动数据包括由两个激光雷达数据的 采样时刻所确定的舵轮移动数据的起始时间和终止时间以及激光雷达 位姿变换数据,以及由舵轮编码数据所确定的位于起始时间和终止时 间之间的至少一初始舵轮偏航角以及舵轮
平均转速,最后以同一舵轮 移动数据中的基于初始舵轮偏航角以及舵轮平均转速计算的第一旋转 角度与由激光雷达位姿变换数据确定第二旋转角度相等为旋转约束条 件,确定舵轮编码器内参中的舵轮零偏值,并基于手眼标定的平移约 束条件确定舵轮编码器内参中的舵轮半径、车体轴距,以及确定激光 雷达与舵轮编码器之间的外参。通过上述方式,本技术能够仅获取激 光雷达的数据序列和舵轮编码的数据序列,实现单舵轮移动装置外参 和编码器内参的联合标定,准确度高,误差小,实现方式简单可靠。
附图说明
8.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例 描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的 附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在 不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
9.图1是本技术单舵轮移动装置一实施例的结构示意简图;
10.图2是本技术单舵轮移动装置的参数标定方法一实施例的流程示 意框图;
11.图3是本技术步骤s13一实施例的流程示意框图;
12.图4是本技术对外参进行优化一实施例的流程示意框图;
13.图5是本技术舵轮移动装置标定装置一实施例的结构示意框图;
14.图6是本技术单舵轮移动装置标定装置另一实施例的结构示意框 图
15.图7是本技术计算机可读存储介质一实施例的结构示意框图。
具体实施方式
16.下面将结合本技术实施例中的附图,对本技术实施例中的技术方 案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部 分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普 通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例, 都属于本技术保护的范围。
17.本技术中的术语“第一”、“第二”仅用于描述目的,而不能理 解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。 由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至 少一个该特征。本技术的描述中,“多个”的含义是至少两个,例如 两个,三个等,除非另有明确具体的限定。此外,术语“包括”和
ꢀ“
具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含 了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已 列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可 选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
18.在本文中提及“实施例”意味着,结合实施例描述的特定特征、 结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各 个位置出现该短语不一定均是指相同的实施例,也不是与其它实施例 互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解 是,本文所描述的实施例可以与其他实施例结合。
19.本文提供的标定方法用于单舵轮装置的参数标定,单舵轮装置为 包括一个舵轮的可移动装置,请参阅图1,该单舵轮移动装置其包括一 个舵轮a及两个从动轮b、c,该单舵轮装置定义舵轮a偏离正前方的 角为偏航角度θ,舵轮a与两个从动轮b、c连线之间的垂直
距离为车 体轴距b。
20.请参阅图2,图2是本技术单舵轮移动装置的参数标定方法一实施 例的流程示意框图。需注意的是,若有实质上相同的结果,本实施例 并不以图2所示的流程顺序为限。本实施例包括以下步骤:
21.步骤s11:获取待标定单舵轮移动装置按设定路径移动生成的激光 雷达数据序列和舵轮编码数据序列。
22.本步骤通过控制单舵轮移动装置按照设定路径移动,并在舵轮移 动装置的移动过程中,控制激光雷达传感器发出激光,同步采集激光 雷达点云数据,以及采集舵轮编码器生成的舵轮编码数据序列,将点 云数据匹配得到激光雷达数据序列。
23.设定路径例如可包括直线路径、弯曲路径。例如是“8”字型封闭 路径,其既包括直行路径,也包括弯曲路径,获取到的数据序列更加 全面。
24.其中,点云数据序列可表示为:{s1,s2,...,sn},点云数据序列中的每 帧点云数据中至少包括采样时间戳t以及激光点云c。
25.本步骤可按照设定帧数间隔对两帧点云数据进行配准,以得到激 光雷达数据序列。例如,从{s1,s2,...,sn}中第一帧数据开始,每隔6帧匹 配一次,即s1与s7进行匹配得到位姿t1=[δx
l δy
l δθ
l
]
t
,该位姿对应的 开始时间和结束时间分别为s1的采样时间戳和s7的采样时间戳,之后s7与s
13
进行匹配并依次类推直至数据序列末尾,最终可以得到激光雷达 数据序列{t1,t2,...,tr},激光雷达数据序列中的每组激光雷达数据包括激 光位姿变换信息(δx
l
,δy
l
,δθ
l
)以及该组数据采集的起始时间t
start
和终止时 间t
end

[0026]
舵轮编码数据序列可表示为{e1,e2,...,em}。舵轮编码数据序列中的 每个舵轮编码数据至少包括起始时间t
start
、舵轮转速n以及舵轮偏航角 度θ。
[0027]
步骤s12:将激光雷达数据序列和舵轮编码数据序列整合得到舵轮 移动数据序列。
[0028]
其中,舵轮移动数据序列包括多组按照时间顺序排列的舵轮移动 数据,每组舵轮移动数据包括由两个激光雷达数据的采样时刻所确定 的舵轮移动数据的起始时间和终止时间以及激光雷达位姿变换数据, 以及由舵轮编码数据所确定的位于起始时间和终止时间之间的舵轮平 均转速和至少一初始舵轮偏航角。
[0029]
舵轮移动数据序列可表示为:
[0030]
{d1,d2,...,dr}
[0031]
其中,di=(ti,{es,e
s+1
,...,ee}),i=1

r,{es,e
s+1
,...,ee}为对应于起始 时间和终止时间之间的舵轮编码数据序列,{es,e
s+1
,...,ee}的时间戳分别 为ti的起始时间t
start
和终止时间t
end
,e-s≥0,即,每组舵轮编码数据所 确定的位于起始时间和终止时间之间对应至少一组舵轮编码数据。故, 每组舵轮移动数据di包含起始时间t
start
、终止时间t
end
、激光位姿变换信 息(δx
l
,δy
l
,δθ
l
),以及由舵轮编码数据序列确定的舵轮平均转速nw以及 t
start
时刻初始舵轮偏航角θw。
[0032]
在步骤s12之前,可对舵轮编码数据序列进行插值,使得每个激 光雷达数据对应的t
start
和终止时间t
end
均对应一舵轮编码数据。例如,以 激光雷达数据序列中的每个数据的起始和终止时间戳t
start
和t
end
为基准, 采用匀加速模型对时间戳在t
start
和t
end
周围的舵轮编码数据进行插值计算, 得到插值后的舵轮编码数据序列。
[0033]
可选地,本实施例还包括:去除舵轮移动数据序列中不符合设定 规则的舵轮移动数据。
[0034]
在一实施例中,可去除舵轮移动数据序列中舵轮平均转速小于设 定速度阈值的舵轮移动数据。可以理解地,该数据表示在该时间段内 装置几乎处于静止状态,可以去除。
[0035]
在一实施例中,可去除舵轮移动数据序列中激光雷达偏转方向与 舵轮编码器偏转方向相反的舵轮移动数据。也即,激光旋转角度δθ
l
和 舵轮编码器旋转角度所表征的旋转方向相反时,该数据表示装 置异常或者数据延迟,可以去除。
[0036]
在一实施例中,可去除舵轮移动数据序列中,从起始时间到终止 时间的舵轮偏转角变化超过设定角度偏差阈值的舵轮移动数据。由于 较大的数据会导致编码器轨迹积分的过程中有较大误差,可以 去除。
[0037]
步骤s13:以同一舵轮移动数据中的基于初始舵轮偏航角以及舵轮 平均转速计算的第一旋转角度与由激光雷达位姿变换数据确定的第二 旋转角度相等为旋转约束条件,确定舵轮编码器内参中的舵轮零偏值。
[0038]
一组舵轮移动数据di=(ti,{es,e
s+1
,...,ee})中,t
start
到t
end
时间段内,由 激光雷达位姿变换数据确定的第二旋转角度为δθ
l
,由初始舵轮偏航角 以及舵轮平均转速计算的第一旋转角度为δθo,则旋转约束可表示为 δθ
l
=δθo。
[0039]
请参阅图3,图3是本技术步骤s13一实施例的流程示意框图。需 注意的是,若有实质上相同的结果,本实施例并不以图3所示的流程 顺序为限。本实施例可根据以下步骤确定舵轮编码器内参中的舵轮零 偏值:
[0040]
步骤s131:利用初始舵轮偏航角和舵轮零偏值的求和结果的正弦 值、舵轮平均转速以及舵轮半径的乘积结果与车体轴距的比值所计算 获得的第一旋转角度与对应的第二旋转角度构建等量关系式。
[0041]
其中,等量关系式可表示为式(1):
[0042][0043]
其中,k1、k2为待计算参数,θ
l
、θw、nw分别 为第二旋转角度、起始时间的初始舵轮偏航角、起始时间和终止时间 之间的舵轮平均转速,r为舵轮半径,b为车体轴距,t
end
和t
start
分别为 终止时间和起始时间。
[0044]
步骤s132:基于至少两组等量关系式,确定舵轮零偏值。
[0045]
可基于至少两组舵轮移动数据结合前一步骤确定的等量关系式, 确定出至少两组等量关系式组成的方程组,根据方程组可计算出待计 算参数的k1、k2,并基于以下公式计算得到舵轮零偏值:
[0046]
其中,舵轮移动数据包括与起始时间和终止时间对应的两个舵轮 编码数据以及位于两个舵轮编码数据之间的至少一个舵轮编码数据, 利用一组舵轮移动数据可将上述等量关系式利用中值积分方法表示为 式(2)的形式:
[0047][0048]
其中,m为舵轮编码数据的数量,θ
l
为第二旋转角度,t
k+1
和tk分 别是第k+1个舵轮编码数据和第k个舵轮编码数据的采样时间, 是由在t
k+1
和tk所采集的舵轮转速和计算的舵轮平均转 速,和在t
k+1
和tk时刻所采集到的初始舵轮偏航角。
[0049]
在一舵轮移动数据对应的舵轮编码数据序列中,上述m与上述 {es,e
s+
1,...,ee}中的舵轮编码数据等同,可以理解地,在实际应用时,t
k+1
和tk的所表征的时间在总的时间序列上与上述舵轮编码数据序列 {es,e
s+1
,...,ee}中各数据对应的时间信息相对应。
[0050]
步骤s14:基于手眼标定的平移约束条件确定舵轮编码器内参中的 舵轮半径、车体轴距,以及确定激光雷达与舵轮编码器之间的外参。
[0051]
数据di=(ti,{es,e
s+1
,...,ee})中每组数据从t
start
到t
end
时间段内,激光平 移向量为编码器平移向量为
[0052]
平移约束在二维平面可表示为:
[0053][0054]
其中,x
o_l
为激光雷达与舵轮编码器之间的外参在x方向的分量, 为外参在y方向的分量,θ
o_l
为外参的角度分量。
[0055]
其中编码器的平移向量待求解,采用中值积分和闭式积分方 法求解比编码器平移向量,可表示为式(4)的形式:
[0056][0057]
其中:
[0058][0059]
[0060][0061]
其中,θ
o_k
、、均为中间参数。
[0062]
进一步地,舵轮移动数据序列{d1,d2,...,dr}中的每组数据对都满足 式(3),将其做矩阵展开并化简得到式(5):
[0063][0064]
构建如下有约束的最小二乘方程:
[0065][0066]
其中:
[0067]
m=∑q
kt
qk[0068][0069][0070]
求解上述式(6)的优化方程,可以得到: [0071]
随后利用式(7)求解外参中的舵轮半径:
[0072][0073]
区别于现有技术,本实施例根据安装于单舵轮移动装置的激光雷 达传感器和舵轮编码器的数据序列处理得到舵轮移动数据序列,根据 单舵轮移动装置的移动规则上在数据序列上的表现,计算得出舵轮编 码器内参以及激光雷达与舵轮编码器之间的外参,提高单舵轮移动装 置的标定准确性,且只需输入激光雷达传感器和舵轮编码器的数据序 列即可实现,简便且可靠。
[0074]
利用上述方式初步得到激光雷达与舵轮编码器之间的外参初值 (x
o_l
,y
o_l

o_l
),
本文还可利用下述方式对该外参初值进行优化。
[0075]
请参阅图4,图4是本技术对外参进行优化一实施例的流程示意框 图。需注意的是,若有实质上相同的结果,本实施例并不以图4所示 的流程顺序为限。本实施例可根据以下步骤对外参进行优化:
[0076]
步骤s21:计算每个舵轮移动数据所对应的激光位姿增量矩阵和由 外参构建的外参矩阵的乘积与外参矩阵和编码器位姿增量矩阵的乘积 的差值。
[0077]
其中,每一组舵轮移动数据的激光位姿增量矩阵可表示为: [δx
l δy
l δθ
l
]
t
;编码器位姿增量矩阵可根据上述式(4)以及式(2) 求得,可表示为:[δx
o δy
o δθo]
t
。该差值可表示为:
[0078]
[δx
l δy
l δθ
l
]
t
*[x
o_l y
o_l θ
o_l
]-[x
o_l y
o_l θ
o_l
]*[δx
o δy
o δθo]
t
[0079]
步骤s22:以舵轮移动数据序列中的多个舵轮移动数据所对应的差 值之和最小化为目标对外参进行优化。
[0080]
优化函数可表示为:min∑(ax-xb),其中,a为激光位姿增量矩 阵,x为外参矩阵,b为编码器位姿增量矩阵。
[0081]
该无约束优化可利用最小二乘法、梯度法等方式解得优化外参。
[0082]
步骤s23:将差值不符合判定条件的舵轮移动数据去除,得到新的 舵轮移动数据序列。
[0083]
对于舵轮移动数据序列中的每个舵轮移动数据,根据ax-xb计算 激光位姿增量矩阵和由优化外参构建的优化外参矩阵的乘积ax与优化 外参矩阵和编码器位姿增量矩阵的乘积xb的差值,差值不符合预设判 定条件的,则去除相应的舵轮移动数据,未去除的舵轮移动数据组成 新的舵轮移动数据序列,利用新的舵轮移动数据序列继续迭代优化。
[0084]
确定差值是否符合预设判定条件,例如是确定差值是否超过设定 差异阈值,若超过,则确定该差值不符合预设判定条件。
[0085]
步骤s24:返回步骤s21。
[0086]
重复执行上述步骤s21-s24,直到满足迭代结束条件,迭代结束条 件例如是本次优化结果与上次的优化结果差值小于设定值,迭代结束 条件还可根据实际需求设定。
[0087]
区别于现有技术,上述方式在确定外参初值后,对该外参初值进 行迭代优化,进而得到优化外参,提高算法可靠性,进而提高本法取 得外参的可信度。
[0088]
请参阅图5,图5是本技术舵轮移动装置标定装置一实施例的结构 示意框图。本实施例单舵轮移动装置标定装置100包括:获取模块110、 数据处理模块120以及参数计算模块130,其中,获取模块110用于获 取待标定单舵轮移动装置按设定路径移动生成的激光雷达数据序列和 舵轮编码数据序列,数据处理模块120用于将激光雷达数据序列和舵 轮编码数据序列整合得到舵轮移动数据序列,其中舵轮移动数据序列 包括多组按照时间顺序排列的舵轮移动数据,每组舵轮移动数据包括 由两个激光雷达数据的采样时刻所确定的舵轮移动数据的起始时间和 终止时间以及激光雷达位姿变换数据,以及由舵轮编码数据所确定的 位于起始时间和终止时间之间的至少一初始舵轮偏航角以及舵轮平均 转速,参数计算模块130用于以同一舵轮移动数据中的基于初始舵轮 偏航角以及舵轮平均转速计算的第一旋转角度与由激光雷达位姿变换 数据确定第二旋转角度相等为旋转约束条件,确定舵轮编码器内参中 的舵轮零偏值,以及基于手眼标定的平移约束条件确定舵轮编码
器内 参中的舵轮半径、车体轴距,以及确定激光雷达与舵轮编码器之间的 外参。
[0089]
其中,单舵轮移动装置标定装置100可以是连接于舵轮移动装置 本身,用于数据处理的处理单元或模块,也可以是可连接于单舵轮移 动装置激光雷达传感器数据输出接口和舵轮编码器数据输出接口的处 理单元或模块。
[0090]
关于各处理执行的各步骤的具体方式请参照上述本技术单舵轮移 动装置的参数标定方法实施例的各步骤的描述,在此不再赘述。
[0091]
请参阅图6,图6是本技术单舵轮移动装置标定装置另一实施例的 结构示意框图。该单舵轮移动装置标定装置200包括相互耦接的处理 器210和存储器220,存储器220中存储有计算机程序,处理器210用 于执行计算机程序以实现上述各实施例所述的单舵轮移动装置的参数 标定方法。
[0092]
关于处理执行的各步骤的描述请参照上述本技术单舵轮移动装置 的参数标定方法实施例的各步骤的描述,在此不再赘述。
[0093]
存储器220可用于存储程序数据以及模块,处理器210通过运行 存储在存储器220的程序数据以及模块,从而执行各种功能应用以及 数据处理。存储器220可主要包括存储程序区和存储数据区,其中, 存储程序区可存储操作系统、至少一个功能所需的应用程序(比如数据 序列整合处理功能等)等;存储数据区可存储根据单舵轮移动装置标定 装置200的使用所创建的数据(比如激光雷达数据序列、舵轮编码数据 序列、舵轮移动数据序列等)等。此外,存储器220可以包括高速随机 存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器 件、闪存器件、或其他易失性固态存储器件。相应地,存储器220还 可以包括存储器控制器,以提供处理器210对存储器220的访问。
[0094]
在本技术的各实施例中,所揭露的方法、装置,可以通过其它的 方式实现。例如,以上所描述的单舵轮移动装置标定装置200的各实 施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻 辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组 件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不 执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连 接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是 电性,机械或其它的形式。
[0095]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开 的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位 于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需 要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0096]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理 单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单 元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现, 也可以采用软件功能单元的形式实现。
[0097]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产 品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这 样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部 分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该 计算机软件产品存储在一个存储介质中。
[0098]
参阅图7,图7是本技术计算机可读存储介质一实施例的结构示意 框图,计算机可读存储介质300存储有程序数据310,程序数据310被 执行时实现如上述单舵轮移动装置的
参数标定方法各实施例的步骤。
[0099]
关于处理执行的各步骤的描述请参照上述本技术单舵轮移动装置 的参数标定方法实施例的各步骤的描述,在此不再赘述。
[0100]
计算机可读存储介质300可以是u盘、移动硬盘、只读存储器 (rom,read-only memory)、随机存取存储器(ram,random accessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0101]
以上所述仅为本技术的实施例,并非因此限制本技术的专利范围, 凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换, 或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专 利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1