一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机器人、VSLAM初始化方法、装置和可读存储介质与流程

2022-03-26 15:01:01 来源:中国专利 TAG:

机器人、vslam初始化方法、装置和可读存储介质
技术领域
1.本发明涉及机器人领域,特别涉及一种机器人、vslam初始化方法、装置和可读存储介质。


背景技术:

2.视觉同步定位和建图(visual simultaneous localization and mapping,vslam)是一种依靠相机等视觉设备进行定位和建图的方法,目前广泛应用于机器人等智能体。对于一个vslam系统,如何初始化至关重要,因为这涉及是否能够为vslam系统提供稳定的状态初值。现有的vslam初始化方法基本以纯视觉的初始化方案为主,即,位姿的初值只是源于对视觉设备获取的图像数据进行解算得到,这种初始化方法在面对弱纹理等视觉约束薄弱的环境时,初始化结果的表现往往比较欠佳,因而影响vslam系统在后续运行的精度。


技术实现要素:

3.本技术提供一种机器人、vslam初始化方法、装置和可读存储介质,以克服现有技术在面对弱纹理等视觉约束薄弱的环境时vslam初始化结果比较欠佳等缺陷。
4.一方面,本技术提供了一种机器人,所述机器人包括:
5.存储器,所述存储器存储有可执行程序代码;
6.处理器,与所述存储器连接,所述处理器调用所述存储器中存储的可执行程序代码时执行如下步骤:
7.将所述视觉类传感器获取的图像数据与所述运动类传感器获取的运动数据同步;
8.根据所述同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到所述特征点对应的地图点;
9.根据所述特征点和所述地图点,迭代优化所述预设帧数的图像数据对应于视觉类传感器的位姿,得到所述视觉类传感器的初始位姿;
10.通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算所述预设帧数的每一帧图像数据对应的速度和重力方向作为所述运动类传感器的初始位姿,所述第一初始位姿变化为所述运动类传感器的初始位姿的帧间变化值,所述第二初始位姿变化为所述视觉类传感器的初始位姿的帧间变化值。
11.另一方面,本技术提供了一种vslam初始化装置,所述装置包括:
12.同步模块,用于将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步;
13.三角化模块,用于根据所述同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到所述特征点对应的地图点;
14.优化模块,用于根据所述特征点和所述地图点,迭代优化所述预设帧数的图像数据对应于视觉类传感器的位姿,得到所述视觉类传感器的初始位姿;
15.解算模块,用于通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算所述预设帧数的每一帧图像数据对应的速度和重力方向作为所述运动类传感器的初始位姿,所述第一初始位姿变化为所述运动类传感器的初始位姿的帧间变化值,所述第二初始位姿变化为所述视觉类传感器的初始位姿的帧间变化值。
16.第三方面,本技术提供了一种vslam初始化方法,所述方法包括:
17.将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步;
18.根据所述同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到所述特征点对应的地图点;
19.根据所述特征点和所述地图点,迭代优化所述预设帧数的图像数据对应于视觉类传感器的位姿,得到所述视觉类传感器的初始位姿;
20.通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算所述预设帧数的每一帧图像数据对应的速度和重力方向作为所述运动类传感器的初始位姿,所述第一初始位姿变化为所述运动类传感器的初始位姿的帧间变化值,所述第二初始位姿变化为所述视觉类传感器的初始位姿的帧间变化值。
21.第四方面,本技术提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序用于被处理器执行时实现上述vslam初始化方法。
22.从上述本技术提供的技术方案可知,视觉类传感器的初始位姿计算的数据来源不仅包括视觉类传感器获取的图像数据,还包含运动类传感器获取的运动数据,在得到视觉类传感器获取的图像数据之后,通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算得到运动类传感器的初始位姿,不仅提供绝对的尺度矫正,而且利用运动类传感器获取的角速度计算机器人旋转运动,避免了纯视觉初始化鲁棒性不足,而且有利于运动类传感器在平面运动以及匀速运动等运动自由度受限的工作环境下,仍能达到快速且鲁棒的初始化效果。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本技术实施例提供的机器人的结构示意图;
25.图2是本技术实施例提供的vslam初始化方法的流程图;
26.图3是本技术实施例提供的将各传感器采集的数据对齐的示意图;
27.图4是本技术实施例提供的vslam初始化装置的结构示意图;
28.图5是本技术实施例提供的设备的结构示意图。
具体实施方式
29.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本技术保护的范围。
30.在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
31.在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。
32.请参阅附图1,本技术一实施例提供的机器人的结构示意图。为了便于说明,仅示出了与本技术实施例相关的部分。该机器人可包括:
33.存储器10和处理器20,处理器20为机器人的运算和控制核心,是信息处理、程序运行的最终执行单元。存储器10例如硬盘驱动存储器,非易失性存储器(例如闪存或用于形成固态驱动器的其它电子可编程限制删除的存储器等),易失性存储器(例如静态或动态随机存取存储器等)等,本技术实施例不作限制。
34.存储器10中存储有可执行程序代码;与存储器10耦合的处理器20调用存储器10中存储的所述可执行程序代码,执行如下vslam初始化方法:将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步;根据同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到特征点对应的地图点;根据特征点和地图点,迭代优化预设帧数的图像数据中视觉类传感器的位姿,得到视觉类传感器的初始位姿;通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算预设帧数的每一帧图像数据对应的速度和重力方向作为运动类传感器的初始位姿,其中,第一初始位姿变化为视觉类传感器的初始位姿的帧间变化值,第二初始位姿变化为运动类传感器的初始位姿的帧间变化值。
35.参阅图2,是本技术实施例提供的一种vslam初始化方法,主要包括步骤s201至步骤s204,说明如下:
36.步骤s201:将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步。
37.由于不同的传感器,即使硬件同步以后也存在采样频率不一致的差异,因此,必然存在视觉类传感器获取的图像数据与运动类传感器获取的运动数据在时间戳上不同步的问题。以运动类传感器包含惯性测量单元和轮式里程计为例,如图3所示,假设惯性测量单元在ti时刻获取的机器人运动数据为d
ti
,理想状态下是轮式里程计也能够在ti时刻获取机器人运动数据,然而,由于惯性测量单元的采样频率与轮式里程计的采样频率不一致等原因,轮式里程计只能在t

li
时刻获取到机器人运动数据d

li
,即传感器之间数据没有对齐;对于视觉类传感器,例如相机采集的图像数据也同样存在数据不对齐的情形,即由于视觉类传感器的采样频率与惯性测量单元的采样频率不一致等原因,惯性测量单元在ti时刻获取机器人运动数据为d
ti
时,视觉类传感器只能在t

xi
时刻获取到图像数据d

xi
。对于上述情形,需要将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步即数据对齐。
38.在本技术一个实施例中,当运动类传感器包括惯性测量单元和轮式里程计时,将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步可以是:使用惯性测量单元在与视觉类传感器获取的当前帧图像数据前后相邻时间戳获取的机器人运动数据对
机器人运动数据进行插值,以使插值后所得机器人运动数据与视觉类传感器获取的当前帧图像数据对齐;以及使用轮式里程计在与视觉类传感器获取的当前帧图像数据前后相邻时间戳获取的机器人运动数据对机器人运动数据进行插值,以使插值后所得机器人运动数据与当前帧图像数据对齐。仍然以图3为例,使用惯性测量单元在与当前帧图像数据前后相邻时间戳获取的机器人运动数据,即,使用t
i-1
时刻机器人运动数据d

ti-1
与ti时刻机器人运动数据d
ti
对机器人运动数据进行插值,得到t

xi
时刻的机器人运动插值数据从图3可以看出,经过上述插值操作,机器人运动插值数据与当前帧图像数据d

xi
已经对齐。同样地,使用轮式里程计在与视觉类传感器获取的当前帧图像数据前后相邻时间戳获取的机器人运动数据,即,使用t

li
时刻机器人运动数据d

li
与t

li 1
时刻机器人运动数据d

li 1
对机器人运动数据进行插值,得到t

xi
时刻的机器人位置插值数据从图3可以看出,经过上述插值操作,机器人运动插值数据与视觉类传感器获取的当前帧图像数据d

xi
已经对齐。
39.在本技术另一实施例中,当运动类传感器包括惯性测量单元和轮式里程计时,将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步也可以是:采用惯性测量单元获取的机器人运动数据和轮式里程计获取的机器人运动数据互相插值的方式,以使惯性测量单元获取的机器人运动数据与轮式里程计获取的机器人运动数据对齐,得到运动类传感器的机器人对齐位姿数据;使用与视觉类传感器获取的当前帧图像数据前后相邻时间戳的机器人对齐位姿数据对机器人对齐位姿数据进行插值,以使插值后所得机器人对齐位姿数据与视觉类传感器获取的当前帧图像数据对齐。本实施例中,使用与视觉类传感器获取的当前帧图像数据前后相邻时间戳的机器人对齐位姿数据对机器人对齐位姿数据进行插值,以使插值后所得机器人对齐位姿数据与视觉类传感器获取的当前帧图像数据对齐,其原理与图3实施例中使用惯性测量单元在与视觉类传感器获取的当前帧图像数据前后相邻时间戳获取的机器人运动数据对机器人姿态数据进行插值,以使插值后所得机器人运动数据与环境物的当前帧图像数据对齐;或者其原理与图3实施例中使用轮式里程计在与视觉类传感器获取的当前帧图像数据前后相邻时间戳获取的机器人运动数据对机器人运动数据进行插值,以使插值后所得机器人运动数据与视觉类传感器获取的当前帧图像数据对齐的原理相同,可参阅前述实施例的相关说明,此处不做赘述。需要说明的是,本实施例中,所谓采用惯性测量单元获取的机器人运动数据和轮式里程计获取的机器人运动数据互相插值的方式,指的是可以使用轮式里程计在与机器人当前运动数据前后相邻时间戳获取的机器人运动数据,对轮式里程计获取的移动机器人位置数据进行插值,以使插值后所得机器人位置数据与惯性测量单元获取的机器人当前运动数据对齐,或者,也可以使用惯性测量单元在与机器人当前运动数据前后相邻时间戳获取的机器人运动数据,对惯性测量单元获取的机器人运动数据进行插值,以使插值后所得移动机器人运动数据与轮式里程计获取的机器人当前运动数据对齐。
40.步骤s202:根据同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到该特征点对应的地图点。
41.在本技术实施例中,滑动窗口(sliding window)的尺寸即能够容纳的图像数据的帧数可以根据实际需要设定,例如,可以将其设置为10,即滑动窗口内预设帧数为10帧图像
数据;滑动窗口内预设帧数的图像数据中的特征点是从视觉类传感器获取的帧图像数据提取的特征点,例如,harris角点,这些harris角点包括关键点及其描述符。作为本技术一个实施例,当视觉类传感器包括相机时,根据同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到该特征点对应的地图点可以是:对同步后的运动数据进行预积分,得到滑动窗口内各帧的位姿;根据滑动窗口内各帧的位姿,先后三角化滑动窗口内末帧至第i帧中的特征点以及滑动窗口内首帧至第i-1帧中的特征点,得到滑动窗口内预设帧数的图像数据中的特征点对应的地图点,其中,第i-1帧为与末帧存在共视关系并且与末帧之间相机中心基线(baseline)大于预设阈值的一帧图像数据。这里各帧的位姿指各帧数据中机器人的位姿。上述实施例中,在根据滑动窗口内各帧的位姿,先后三角化滑动窗口内末帧至第i帧中的特征点以及滑动窗口内首帧至第i-1帧中的特征点之前,提取视觉类传感器获取的图像数据当前帧中的特征点(例如,harris角点),该特征点包括关键点及其描述符;将这些图像数据当前帧中关键点的描述符与图像数据当前帧之前一个关键帧中关键点的描述符匹配;若匹配成功,则建立图像数据当前帧与其他各帧图像数据的共视关系,其中,图像数据当前帧中关键点的描述符与图像数据当前帧之前一个关键帧中关键点的描述符的匹配过程可以是将图像数据当前帧中关键点和图像数据当前帧之前一帧中关键点的描述符均向量化,然后,通过余弦相似度计算两个向量的相似度,若相似度超过预设阈值,则两者匹配成功。
42.作为本技术一个实施例,根据滑动窗口内各帧的位姿,先后三角化滑动窗口内末帧至第i帧中的特征点以及滑动窗口内首帧至第i-1帧中的特征点可以是:根据滑动窗口内各帧的位姿,三角化滑动窗口内末帧和第i帧中存在共视关系的特征点以及末帧至第i帧之间其他帧中的特征点;然后,根据滑动窗口内各帧的位姿,三角化滑动窗口内首帧和第i-1帧中存在共视关系的特征点以及首帧至第i-1帧之间其他帧中的特征点。需要说明的是,滑动窗口内存在共视关系的特征点是存在共视关系的两帧图像数据中的特征点,而两帧图像数据存在共视关系,是指视觉类传感器处于两帧图像数据中记录的位姿时,视觉类传感器观测到的同一地图点(即三维空间中的某个点)的数量。按照图像数据之间共视关系的定义,两帧图像数据的共视关系在将一帧图像数据中关键点的描述符与该帧图像数据当之前一帧图像数据中关键点的描述符匹配时就已经确定。至于三角化滑动窗口内末帧和第i帧中存在共视关系的特征点以及末帧至第i帧之间其他帧中的特征点,实际是先三角化滑动窗口内末帧和第i帧中存在共视关系的特征点,然后,三角化滑动窗口内末帧和末帧至第i帧之间与末帧存在共视关系的一帧图像数据中的特征点,直至将滑动窗口内末帧和第i帧中存在共视关系的特征点以及末帧至第i帧之间其他帧中的特征点全部三角化。类似地,三角化滑动窗口内首帧和第i-1帧中存在共视关系的特征点以及首帧至第i-1帧之间其他帧中的特征点,实际也是先三角化滑动窗口内首帧和第i-1帧中存在共视关系的特征点,然后,三角化滑动窗口内首帧和首帧至第i-1帧之间与首帧存在共视关系的一帧图像数据中的特征点,直至将滑动窗口内首帧和第i-1帧中存在共视关系的特征点以及首帧至第i-1帧之间其他帧中的特征点全部三角化。
43.需要说明的是,上述实施例中,所谓三角化特征点,是指通过在两帧图像数据中找出匹配的关键点对,计算出这些匹配关键点对对应的地图点的3d位姿信息,例如,地图点的3d坐标、旋转角、朝向等。
44.步骤s203:根据特征点和特征点对应的地图点,迭代优化滑动窗口内预设帧数的图像数据对应于视觉类传感器的位姿,得到视觉类传感器的初始位姿。
45.具体地,步骤s203的实现可以是根据特征点对应的地图点,求取滑动窗口内预设帧数的图像数据中的帧间运动估计误差;以特征点对应的地图点的重投影误差和帧间运动估计误差为优化目标,联合优化滑动窗口内预设帧数的图像数据中视觉类传感器的位姿。所谓地图点的重投影误差,是指将像素坐标(即视觉类传感器观测到的地图点的投影)与地图点按照当前估计的视觉类传感器位姿进行投影得到的位置相比较得到的误差。考虑n个三维空间点p(地图点在三维空间的位置)和视觉类传感器观测到它们的投影p,假设某个空间点pi的三维坐标为pi=[xi,yi,zi]
t
,像素坐标(即视觉类传感器观测到的投影)为ui=[ui,vi]
t
,则该点的像素坐标和其三维坐标的关系如下:
[0046][0047]
其中,ξ∧是李代数表示的视觉类传感器的位姿的估计值,上述像素坐标和其三维坐标的关系写成矩阵形式即:siui=kexp(ξ∧)pi。
[0048]
由于视觉类传感器的位姿未知以及观测点的噪声,上述等式存在一个误差,这个误差也就是地图点的重投影误差,将误差求和,构建最小二乘问题,然后寻找视觉类传感器的最好位姿使该重投影误差最小化:
[0049][0050]
步骤s204:通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算滑动窗口内预设帧数的每一帧图像数据对应的速度和重力方向作为运动类传感器的初始位姿,其中,第一初始位姿变化为视觉类传感器的初始位姿的帧间变化值,第二初始位姿变化为运动类传感器的初始位姿的帧间变化值。
[0051]
作为本技术一个实施例,步骤s204的实现可以是:根据视觉类传感器的初始位姿,计算滑动窗口内各帧之间的帧间旋转rc;通过手眼标定(eye in hand),根据帧间旋转rc解算惯性测量单元的角速度上的bias参数;以惯性测量单元和轮式里程计联合构建的多帧运动变化大小与视觉类传感器的初始位姿得到的多帧之间的运动变化大小相等为约束,根据帧间旋转rc和惯性测量单元的角速度上的bias参数,多帧联合求解得到预设帧数的每一帧图像数据对应惯性测量单元的速度和重力方向。具体而言,首先判断是否需要进行运动类传感器、视觉类传感器之间的外参标定,若需要进行,则首先进行旋转外参的手眼标定,以视觉类传感器获取的图像数据和惯性测量单元获取的运动数据为例,根据视觉类传感器的初始位姿,计算滑动窗口内各帧之间的帧间旋转rc,通过对惯性测量单元获取的运动数据预积分,可以得到惯性测量单元计算的帧间旋转外参ri。假设视觉类传感器和惯性测量单元之间的旋转外参为r
ci
,则满足手眼标定公式:
[0052]
rc*r
ci
=r
ci
*ri[0053]
转化成四元数形式并令虚部相等,使用多帧数据svd解方程,求解出旋转外参为rci

[0054]
(qc*q
ci
)
xyz
=(q
ci
*qi)
xyz
[0055]
类似地,继续使用手眼标定的原理求出惯性测量单元的角速度上的bias参数,构建公式qc*q
ci
=q
ci
*(qi*0.5*w
bias
*δt)
[0056]
其中,δt表示两帧图像数据之间的时间间隔,w
bias
表示惯性测量单元的角速度上的bias参数;同样构建多帧约束,svd解方程求解。
[0057]
然后,松耦合对齐各个传感器数据,即,惯性测量单元和轮式里程计联合构建的多帧运动变化大小与视觉类传感器的初始位姿得到的多帧之间的运动变化大小应该相等,进一步精炼重力方向和惯性测量单元的速度方向,如以下公式:
[0058][0059]
其中,表示对第k 1帧到第k帧图像数据之间惯性测量单元的运动数据进行预积分得到的平移数据,表示对第k帧到k 1帧图像数据之间轮式里程计的运动数据进行预积分得到的平移数据,p
bo
表示惯性测量单元和轮式里程计之间的平移外参,δrik表示对第k 1帧到第k帧图像数据之间的运动数据进行预积分得到的旋转数据,表示两帧图像数据初始化计算的惯性测量单元坐标系下的旋转变化,表示第一帧图像数据时重力加速度向量的方向,δtk表示第k帧与第k 1帧之间的时间间隔,i是3*3的单位矩阵,b是由两个模长为1的互相正交的方向向量组成的3*2的矩阵,δg表示重力方向的修正量,表示惯性测量单元坐标系下第k帧的速度;通过多帧联合求解的方式求,解算其他各帧的应惯性测量单元的速度和重力方向。
[0060]
从上述附图2示例的vslam初始化方法可知,视觉类传感器的初始位姿计算的数据来源不仅包括视觉类传感器获取的图像数据,还包含运动类传感器获取的运动数据,在得到视觉类传感器获取的图像数据之后,通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算得到运动类传感器的初始位姿,不仅提供绝对的尺度矫正,而且利用运动类传感器获取的角速度计算机器人旋转运动,避免了纯视觉初始化鲁棒性不足,而且有利于运动类传感器在平面运动以及匀速运动等运动自由度受限的工作环境下,仍能达到快速且鲁棒的初始化效果。
[0061]
请参阅图4,是本技术实施例提供的一种vslam初始化装置,该装置可以是机器人的中央处理单元或者其中的功能模块,该装置可以包括同步模块401、三角化模块402、优化模块403和解算模块404,详述如下:
[0062]
同步模块401,用于将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步;
[0063]
三角化模块402,用于根据同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到特征点对应的地图点;
[0064]
优化模块403,用于根据滑动窗口内预设帧数的图像数据中的特征点和特征点对应的地图点,迭代优化预设帧数的图像数据对应于视觉类传感器的位姿,得到视觉类传感器的初始位姿;
[0065]
解算模块404,用于通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算预设帧数的每一帧图像数据对应的速度和重力方向作为运动类传感器的初始位姿,其中,第一初始位姿变化为视觉类传感器的初始位姿的帧间变化值,第二初始位姿变化为运动类传感器的初始位姿的帧间变化值。
[0066]
从附图4示例的装置可知,视觉类传感器的初始位姿计算的数据来源不仅包括视觉类传感器获取的图像数据,还包含运动类传感器获取的运动数据,在得到视觉类传感器获取的图像数据之后,通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算得到运动类传感器的初始位姿,不仅提供绝对的尺度矫正,而且利用运动类传感器获取的角速度计算机器人旋转运动,避免了纯视觉初始化鲁棒性不足,而且有利于运动类传感器在平面运动以及匀速运动等运动自由度受限的工作环境下,仍能达到快速且鲁棒的初始化效果。
[0067]
图5是本技术一实施例提供的设备的结构示意图。如图5所示,该实施例的设备5可以是一种机器人或者其中的模块,主要包括:处理器50、存储器51以及存储在存储器51中并可在处理器50上运行的计算机程序52,例如vslam初始化方法的程序。处理器50执行计算机程序52时实现上述vslam初始化方法实施例中的步骤,例如图2所示的步骤s201至s204。或者,处理器50执行计算机程序52时实现上述各装置实施例中各模块/单元的功能,例如图5所示同步模块401、三角化模块402、优化模块403和解算模块404的功能。
[0068]
示例性地,vslam初始化方法的计算机程序52主要包括:将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步;根据同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到特征点对应的地图点;根据滑动窗口内预设帧数的图像数据中的特征点和特征点对应的地图点,迭代优化预设帧数的图像数据中视觉类传感器的位姿,得到视觉类传感器的初始位姿;通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算预设帧数的每一帧图像数据对应的速度和重力方向作为运动类传感器的初始位姿,其中,第一初始位姿变化为视觉类传感器的初始位姿的帧间变化值,第二初始位姿变化为运动类传感器的初始位姿的帧间变化值。计算机程序52可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器51中,并由处理器50执行,以完成本技术。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序52在设备5中的执行过程。例如,计算机程序52可以被分割成同步模块401、三角化模块402、优化模块403和解算模块404(虚拟装置中的模块)的功能,各模块具体功能如下:同步模块401,用于将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步;三角化模块402,用于根据同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到特征点对应的地图点;优化模块403,用于根据滑动窗口内预设帧数的图像数据中的特征点和特征点对应的地图点,迭代优化预设帧数的图像数据中视觉类传感器的位姿,得到视觉类传感器的初始位姿;解算模块404,用于通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算预设帧数的每一帧图像数据对应的速度和重力方向作为运动类传感器的初始位姿,其中,第一初始位姿变化为视觉类传感器的初始位姿的
帧间变化值,第二初始位姿变化为运动类传感器的初始位姿的帧间变化值。
[0069]
设备5可包括但不仅限于处理器50、存储器51。本领域技术人员可以理解,图5仅仅是设备5的示例,并不构成对设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算设备还可以包括输入输出设备、网络接入设备、总线等。
[0070]
所称处理器50可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0071]
存储器51可以是设备5的内部存储单元,例如设备5的硬盘或内存。存储器51也可以是设备5的外部存储设备,例如设备5上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器51还可以既包括设备5的内部存储单元也包括外部存储设备。存储器51用于存储计算机程序以及设备所需的其他程序和数据。存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
[0072]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即,将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0073]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0074]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0075]
在本技术所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0076]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络
单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0077]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0078]
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非临时性计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,vslam初始化方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,将视觉类传感器获取的图像数据与运动类传感器获取的运动数据同步;根据同步后的运动数据,对滑动窗口内预设帧数的图像数据中的特征点三角化,得到特征点对应的地图点;根据滑动窗口内预设帧数的图像数据中的特征点和特征点对应的地图点,迭代优化预设帧数的图像数据中视觉类传感器的位姿,得到视觉类传感器的初始位姿;通过松耦合对齐第一初始位姿变化和第二初始位姿变化,解算预设帧数的每一帧图像数据对应的速度和重力方向作为运动类传感器的初始位姿,其中,第一初始位姿变化为视觉类传感器的初始位姿的帧间变化值,第二初始位姿变化为运动类传感器的初始位姿的帧间变化值。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。非临时性计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读内存(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,非临时性计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非临时性计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。以上所述的具体实施方式,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本技术的具体实施方式而已,并不用于限定本技术的保护范围,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献