位姿信息确定方法及装置与流程

文档序号:21412482发布日期:2020-07-07 14:49阅读:241来源:国知局
位姿信息确定方法及装置与流程

本申请涉及机器视觉领域,特别涉及一种位姿信息确定方法及装置。



背景技术:

对于机器人、ar(augmentedreality,增强现实)设备和无人机等可移动设备来说,这些可移动设备可以通过视觉导航技术在陌生的环境中,依靠可移动设备中安装的三维图像拍摄部件拍摄的图像来确定位姿信息(位置信息和姿态信息),以实现导航定位。比如,机器人可以通过三维图像拍摄部件拍摄的图像来确定自身在环境中的位置,从而实现自主导航定位并进行移动;ar设备可以通过三维图像拍摄部件拍摄的图像将虚拟物体在现实环境中进行叠加,从而实现实时导航定位。

目前,可移动设备中安装的三维图像拍摄部件包括两个摄像头。通过这两个摄像头可以在可移动设备移动的过程中不断地采集的图像。之后,提取不同时刻采集的图像中的特征点,并对不同时刻采集的图像中的特征点进行匹配,然后根据同一特征点在不同时刻采集的图像中的相对运动变化来确定可移动设备的位姿信息。然而,当出现三维图像拍摄部件的摄像头受到遮挡、三维图像拍摄部件所处环境的光线较暗或者三维图像拍摄部件的拍摄范围中出现快速移动的物体等情况时,三维图像拍摄部件可能无法采集到纹理较为清楚的图像,进而导致确定出的位姿信息较为不准确。

申请内容

本申请实施例提供了一种位姿信息确定方法及装置,可以解决相关技术中因三维图像拍摄部件可能无法采集到纹理较为清楚的图像,进而导致确定出的位姿信息较为不准确的问题。所述技术方案如下:

第一方面,提供了一种位姿信息确定方法,应用于可移动设备,所述可移动设备包括至少两个三维图像拍摄部件和一个惯性测量单元imu,所述方法包括:

根据当前时刻与上一关键帧时刻之间的imu测量信息,以及第一时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息,所述上一关键帧时刻是指每个三维图像拍摄部件最近一次拍摄的能够作为关键帧图像的图像的拍摄时刻,所述第一时长是指所述imu的相邻两个测量时刻之间的时长;

根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵、所述imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻所述可移动设备的系统状态,以及所述可移动设备的实际重力向量,确定当前时刻所述可移动设备的系统状态,所述至少两个第一图像是指所述至少两个三维图像拍摄部件包括的第一摄像头当前时刻分别拍摄的图像,所述系统状态包括所述可移动设备的位姿信息和速度,以及所述imu的漂移误差。

可选地,所述根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵、所述imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻所述可移动设备的系统状态,以及所述可移动设备的实际重力向量,确定当前时刻所述可移动设备的系统状态,包括:

确定所述至少两个第一图像包括的特征点的图像坐标,以及与每个第一图像包括的特征点对应的地图点的三维位置信息;

根据所述至少两个第一图像包括的特征点的图像坐标、与每个第一图像包括的特征点对应的地图点的三维位置信息、存储的每个三维图像拍摄部件包括的第一摄像头的内参,以及每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵,构建第一重投影误差约束代价函数;

根据所述imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻所述可移动设备的系统状态,以及所述可移动设备的实际重力向量,构建imu运动预测代价函数;

最小化所述第一重投影误差约束代价函数与所述imu运动预测代价函数之和,以得到当前时刻所述可移动设备的系统状态。

可选地,所述imu包括陀螺仪和加速度计,所述imu测量信息包括所述陀螺仪测量得到的角速度和所述加速度计测量得到的加速度,所述imu预积分测量信息包括相对姿态增量、相对速度增量和相对位置增量;

所述根据当前时刻与上一关键帧时刻之间的imu测量信息,以及第一时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息,包括:

根据当前时刻与上一关键帧时刻之间所述陀螺仪测量得到的角速度、上一关键帧时刻所述陀螺仪的漂移误差和所述第一时长,确定当前时刻与上一关键帧时刻之间的相对姿态增量,以及上一关键帧时刻与至少一个测量时刻中每个测量时刻之间的相对姿态增量,所述至少一个测量时刻是指当前时刻与上一关键帧时刻之间的测量时刻;

根据上一关键帧时刻与所述至少一个测量时刻中每个测量时刻之间的相对姿态增量、当前时刻与上一关键帧时刻之间所述加速度计测量得到的加速度、上一关键帧时刻所述加速度计的漂移误差和所述第一时长,确定当前时刻与上一关键帧时刻之间的相对速度增量;

根据上一关键帧时刻与所述至少一个测量时刻中每个测量时刻之间的相对姿态增量、上一关键帧时刻与所述至少一个测量时刻中每个测量时刻之间的相对速度增量、当前时刻与上一关键帧时刻之间所述加速度计测量得到的加速度、上一关键帧时刻所述加速度计的漂移误差和所述第一时长,确定当前时刻与上一关键帧时刻之间的相对位置增量。

可选地,所述根据当前时刻与上一关键帧时刻之间的imu测量信息,以及第一时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息之前,所述方法还包括:

每隔所述第一时长获取一个imu数据包,所述imu数据包至少包括imu测量信息和对应的测量时间戳,其中,每个三维图像拍摄部件每隔第二时长拍摄一次图像,所述第二时长大于所述第一时长,且每隔所述第二时长获取的imu数据包还包括触发累加序号;

当每个三维图像拍摄部件当前时刻拍摄到图像时,确定拍摄累加序号,并根据所述拍摄累加序号从获取的imu数据包中获取目标imu数据包,所述目标imu数据包中的触发累加序号与所述拍摄累加序号相同;

将所述目标imu数据包中的测量时间戳与存储的时间偏置之和,确定为每个三维图像拍摄部件当前时刻拍摄的图像的拍摄时间戳;

从获取的imu数据包中,获取测量时间戳处于上一关键帧时刻拍摄的图像的拍摄时间戳与当前时刻拍摄的图像的拍摄时间戳之间的imu测量信息,以得到当前时刻与上一关键帧时刻之间的imu测量信息。

可选地,所述根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵、所述imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻所述可移动设备的系统状态,以及所述可移动设备的实际重力向量,确定当前时刻所述可移动设备的系统状态之后,所述方法还包括:

确定所述可移动设备当前时刻能够追踪到的地图点的比例,所述比例是指与所述至少两个第一图像包括的特征点对应的地图点的总量占所述至少两个第一图像包括的特征点的总量的比例;

当所述可移动设备当前时刻能够追踪到的地图点的比例小于比例阈值,或者当前时刻与上一关键帧时刻之间的时长大于时长阈值时,将每个三维图像拍摄部件当前时刻拍摄的图像确定为关键帧图像。

可选地,所述将每个三维图像拍摄部件当前时刻拍摄的图像确定为关键帧图像之后,所述方法还包括:

根据每个三维图像拍摄部件对应的至少一对特征点的图像坐标、存储的每个第一摄像头的焦距,以及每个三维图像拍摄部件包括的两个摄像头之间的基线距离,确定每个第一图像包括的特征点的深度,一对特征点是指一个三维图像拍摄部件包括的两个摄像头当前时刻拍摄的图像中对应同一实物点的两个特征点;

根据当前时刻所述可移动设备的位姿信息、每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵、每个第一摄像头的内参,以及每个第一图像包括的特征点的图像坐标和深度,确定每个第一图像包括的特征点对应的地图点的三维位置信息;

根据每个第一图像包括的特征点对应的地图点的三维位置信息,对已构建的地图进行更新。

可选地,所述根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵、所述imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻所述可移动设备的系统状态,以及所述可移动设备的实际重力向量,确定当前时刻所述可移动设备的系统状态之前,所述方法还包括:

确定所述可移动设备在n个关键帧时刻的位姿信息,以及所述n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,所述n个关键帧时刻是指每个三维图像拍摄部件在当前时刻之前拍摄的能够作为关键帧图像的图像的拍摄时刻,所述n为大于或等于4的正整数;

根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,以及惯性坐标系的重力方向向量,确定所述imu在第n个关键帧时刻的漂移误差和所述可移动设备的实际重力向量;

根据所述可移动设备在第n-1个关键帧时刻的位姿信息、所述可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的imu预积分测量信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和所述imu在第n-1个关键帧时刻测量得到的imu测量信息,确定所述可移动设备在第n个关键帧时刻的速度。

可选地,所述imu包括陀螺仪和加速度计,所述imu测量信息包括所述陀螺仪测量得到的角速度和所述加速度计测量得到的加速度,所述imu预积分测量信息包括相对姿态增量、相对速度增量和相对位置增量;

所述根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,以及惯性坐标系的重力方向向量,确定所述imu在第n个关键帧时刻的漂移误差和所述可移动设备的实际重力向量,包括:

根据所述可移动设备在所述n个关键帧时刻的姿态信息和所述n个关键帧时刻中相邻两个关键帧时刻之间的相对姿态增量,构建漂移误差代价函数;

最小化所述漂移误差代价函数,以得到所述陀螺仪在第n个关键帧时刻的漂移误差;

根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,以及所述惯性坐标系的重力方向向量,确定所述加速度计在第n个关键帧时刻的漂移误差和所述可移动设备的实际重力向量。

可选地,所述根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,以及所述惯性坐标系的重力方向向量,确定所述加速度计在第n个关键帧时刻的漂移误差和所述可移动设备的实际重力向量,包括:

根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长,以及所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定所述可移动设备的估计重力向量;

根据所述可移动设备的估计重力向量和所述惯性坐标系的重力方向向量,确定所述惯性坐标系到世界坐标系的旋转变换矩阵;

根据所述惯性坐标系到世界坐标系的旋转变换矩阵、所述惯性坐标系的重力方向向量、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述可移动设备在所述n个关键帧时刻的位姿信息,以及所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定所述加速度计在第n个关键帧时刻的漂移误差和所述可移动设备的重力方向修正量;

根据所述可移动设备的重力方向修正量、所述惯性坐标系到世界坐标系的旋转变换矩阵和所述惯性坐标系的重力方向向量,确定所述可移动设备的实际重力向量。

可选地,所述根据所述可移动设备在第n-1个关键帧时刻的位姿信息、所述可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的imu预积分测量信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和所述imu在第n-1个关键帧时刻测量得到的imu测量信息,确定所述可移动设备在第n个关键帧时刻的速度,包括:

根据所述可移动设备在第n-1个关键帧时刻的位姿信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、所述可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的相对位置增量,确定所述可移动设备在第n-1个关键帧时刻的速度;

根据所述可移动设备在第n-1个关键帧时刻的速度、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和所述加速度计在第n-1个关键帧时刻测量得到的加速度,确定所述可移动设备在第n个关键帧时刻的速度。

可选地,所述确定所述可移动设备在n个关键帧时刻的位姿信息,包括:

对于所述n个关键帧时刻中的任一关键帧时刻a,根据所述关键帧时刻a对应的初始关键帧图像包括的特征点的图像坐标、与所述关键帧时刻a对应的初始关键帧图像包括的特征点对应的地图点的三维位置信息、存储的每个第一摄像头的内参,以及每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵,构建第二重投影误差约束代价函数,所述关键帧时刻a对应的初始关键帧图像是指所述至少两个三维图像拍摄部件包括的第一摄像头在所述关键帧时刻a分别拍摄的图像;

最小化所述第二重投影误差约束代价函数,以得到所述可移动设备在所述关键帧时刻a的位姿信息。

第二方面,提供了一种位姿信息确定装置,应用于可移动设备,所述可移动设备包括至少两个三维图像拍摄部件和一个惯性测量单元imu,所述装置包括:

第一确定模块,用于根据当前时刻与上一关键帧时刻之间的imu测量信息,以及第一时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息,所述上一关键帧时刻是指每个三维图像拍摄部件最近一次拍摄的能够作为关键帧图像的图像的拍摄时刻,所述第一时长是指所述imu的相邻两个测量时刻之间的时长;

第二确定模块,用于根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵、所述imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻所述可移动设备的系统状态,以及所述可移动设备的实际重力向量,确定当前时刻所述可移动设备的系统状态,所述至少两个第一图像是指所述至少两个三维图像拍摄部件包括的第一摄像头当前时刻分别拍摄的图像,所述系统状态包括所述可移动设备的位姿信息和速度,以及所述imu的漂移误差。

可选地,所述第二确定模块包括:

第一确定子模块,用于确定所述至少两个第一图像包括的特征点的图像坐标,以及与每个第一图像包括的特征点对应的地图点的三维位置信息;

第一构建子模块,用于根据所述至少两个第一图像包括的特征点的图像坐标、与每个第一图像包括的特征点对应的地图点的三维位置信息、存储的每个三维图像拍摄部件包括的第一摄像头的内参,以及每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵,构建第一重投影误差约束代价函数;

第二构建子模块,用于根据所述imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻所述可移动设备的系统状态,以及所述可移动设备的实际重力向量,构建imu运动预测代价函数;

第一最小化运算子模块,用于最小化所述第一重投影误差约束代价函数与所述imu运动预测代价函数之和,以得到当前时刻所述可移动设备的系统状态。

可选地,所述imu包括陀螺仪和加速度计,所述imu测量信息包括所述陀螺仪测量得到的角速度和所述加速度计测量得到的加速度,所述imu预积分测量信息包括相对姿态增量、相对速度增量和相对位置增量;

所述第一确定模块包括:

第二确定子模块,用于根据当前时刻与上一关键帧时刻之间所述陀螺仪测量得到的角速度、上一关键帧时刻所述陀螺仪的漂移误差和所述第一时长,确定当前时刻与上一关键帧时刻之间的相对姿态增量,以及上一关键帧时刻与至少一个测量时刻中每个测量时刻之间的相对姿态增量,所述至少一个测量时刻是指当前时刻与上一关键帧时刻之间的测量时刻;

第三确定子模块,用于根据上一关键帧时刻与所述至少一个测量时刻中每个测量时刻之间的相对姿态增量、当前时刻与上一关键帧时刻之间所述加速度计测量得到的加速度、上一关键帧时刻所述加速度计的漂移误差和所述第一时长,确定当前时刻与上一关键帧时刻之间的相对速度增量;

第四确定子模块,用于根据上一关键帧时刻与所述至少一个测量时刻中每个测量时刻之间的相对姿态增量、上一关键帧时刻与所述至少一个测量时刻中每个测量时刻之间的相对速度增量、当前时刻与上一关键帧时刻之间所述加速度计测量得到的加速度、上一关键帧时刻所述加速度计的漂移误差和所述第一时长,确定当前时刻与上一关键帧时刻之间的相对位置增量。

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

第一获取模块,用于每隔所述第一时长获取一个imu数据包,所述imu数据包至少包括imu测量信息和对应的测量时间戳,其中,每个三维图像拍摄部件每隔第二时长拍摄一次图像,所述第二时长大于所述第一时长,且每隔所述第二时长获取的imu数据包还包括触发累加序号;

第二获取模块,用于当每个三维图像拍摄部件当前时刻拍摄到图像时,确定拍摄累加序号,并根据所述拍摄累加序号从获取的imu数据包中获取目标imu数据包,所述目标imu数据包中的触发累加序号与所述拍摄累加序号相同;

第三确定模块,用于将所述目标imu数据包中的测量时间戳与存储的时间偏置之和,确定为每个三维图像拍摄部件当前时刻拍摄的图像的拍摄时间戳;

第三获取模块,从获取的imu数据包中,获取测量时间戳处于上一关键帧时刻拍摄的图像的拍摄时间戳与当前时刻拍摄的图像的拍摄时间戳之间的imu测量信息,以得到当前时刻与上一关键帧时刻之间的imu测量信息。

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

第四确定模块,用于确定所述可移动设备当前时刻能够追踪到的地图点的比例,所述比例是指与所述至少两个第一图像包括的特征点对应的地图点的总量占所述至少两个第一图像包括的特征点的总量的比例;

第五确定模块,用于当所述可移动设备当前时刻能够追踪到的地图点的比例小于比例阈值,或者当前时刻与上一关键帧时刻之间的时长大于时长阈值时,将每个三维图像拍摄部件当前时刻拍摄的图像确定为关键帧图像。

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

第六确定模块,用于根据每个三维图像拍摄部件对应的至少一对特征点的图像坐标、存储的每个第一摄像头的焦距,以及每个三维图像拍摄部件包括的两个摄像头之间的基线距离,确定每个第一图像包括的特征点的深度,一对特征点是指一个三维图像拍摄部件包括的两个摄像头当前时刻拍摄的图像中对应同一实物点的两个特征点;

第七确定模块,用于根据当前时刻所述可移动设备的位姿信息、每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵、每个第一摄像头的内参,以及每个第一图像包括的特征点的图像坐标和深度,确定每个第一图像包括的特征点对应的地图点的三维位置信息;

更新模块,用于根据每个第一图像包括的特征点对应的地图点的三维位置信息,对已构建的地图进行更新。

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

第八确定模块,用于确定所述可移动设备在n个关键帧时刻的位姿信息,以及所述n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,所述n个关键帧时刻是指每个三维图像拍摄部件在当前时刻之前拍摄的能够作为关键帧图像的图像的拍摄时刻,所述n为大于或等于4的正整数;

第九确定模块,用于根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,以及惯性坐标系的重力方向向量,确定所述imu在第n个关键帧时刻的漂移误差和所述可移动设备的实际重力向量;

第十确定模块,用于根据所述可移动设备在第n-1个关键帧时刻的位姿信息、所述可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的imu预积分测量信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和所述imu在第n-1个关键帧时刻测量得到的imu测量信息,确定所述可移动设备在第n个关键帧时刻的速度。

可选地,所述imu包括陀螺仪和加速度计,所述imu测量信息包括所述陀螺仪测量得到的角速度和所述加速度计测量得到的加速度,所述imu预积分测量信息包括相对姿态增量、相对速度增量和相对位置增量;

所述第九确定模块包括:

第三构建子模块,用于根据所述可移动设备在所述n个关键帧时刻的姿态信息和所述n个关键帧时刻中相邻两个关键帧时刻之间的相对姿态增量,构建漂移误差代价函数;

第二最小化运算模块,用于最小化所述漂移误差代价函数,以得到所述陀螺仪在第n个关键帧时刻的漂移误差;

第五确定子模块,用于根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,以及所述惯性坐标系的重力方向向量,确定所述加速度计在第n个关键帧时刻的漂移误差和所述可移动设备的实际重力向量。

可选地,所述第五确定子模块包括:

第一确定单元,用于根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长,以及所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定所述可移动设备的估计重力向量;

第二确定单元,用于根据所述可移动设备的估计重力向量和所述惯性坐标系的重力方向向量,确定所述惯性坐标系到世界坐标系的旋转变换矩阵;

第三确定单元,用于根据所述惯性坐标系到世界坐标系的旋转变换矩阵、所述惯性坐标系的重力方向向量、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述可移动设备在所述n个关键帧时刻的位姿信息,以及所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定所述加速度计在第n个关键帧时刻的漂移误差和所述可移动设备的重力方向修正量;

第四确定单元,用于根据所述可移动设备的重力方向修正量、所述惯性坐标系到世界坐标系的旋转变换矩阵和所述惯性坐标系的重力方向向量,确定所述可移动设备的实际重力向量。

可选地,所述第十确定模块包括:

第六确定子模块,用于根据所述可移动设备在第n-1个关键帧时刻的位姿信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、所述可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的相对位置增量,确定所述可移动设备在第n-1个关键帧时刻的速度;

第七确定子模块,用于根据所述可移动设备在第n-1个关键帧时刻的速度、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和所述加速度计在第n-1个关键帧时刻测量得到的加速度,确定所述可移动设备在第n个关键帧时刻的速度。

可选地,所述第八确定模块包括:

第四构建子模块,用于对于所述n个关键帧时刻中的任一关键帧时刻a,根据所述关键帧时刻a对应的初始关键帧图像包括的特征点的图像坐标、与所述关键帧时刻a对应的初始关键帧图像包括的特征点对应的地图点的三维位置信息、存储的每个第一摄像头的内参,以及每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵,构建第二重投影误差约束代价函数,所述关键帧时刻a对应的初始关键帧图像是指所述至少两个三维图像拍摄部件包括的第一摄像头在所述关键帧时刻a分别拍摄的图像;

第三最小化运算模块,用于最小化所述第二重投影误差约束代价函数,以得到所述可移动设备在所述关键帧时刻a的位姿信息。

第三方面,提供一种可移动设备,所述可移动设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述第一方面所述的任一项方法的步骤。

第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的任一项方法的步骤。

第五方面,提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一项所述方法的步骤。

本申请实施例提供的技术方案至少可以带来以下有益效果:

先根据当前时刻与上一关键帧时刻之间的imu测量信息,以及imu的相邻两个测量时刻之间的时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息。然后根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、该imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻该可移动设备的系统状态,以及该可移动设备的实际重力向量,确定当前时刻该可移动设备的系统状态。由于系统状态包括可移动设备的位姿信息和速度,以及imu的漂移误差,因此,在确定当前时刻可移动设备的系统状态之后,即可确定当前时刻可移动设备的位姿信息。由于本申请实施例是将至少两个三维图像拍摄部件与imu进行联合,以共同对可移动设备的位姿信息进行确定,避免了因三维图像拍摄部件可能无法采集到纹理较为清楚的图像,而导致确定出的位姿信息较为不准确的问题,进而提高了确定位姿信息的准确性。

附图说明

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

图1是本申请实施例提供的一种可移动设备的结构示意图。

图2是本申请实施例提供的一种嵌入式硬件板卡的结构示意图。

图3是本申请实施例提供的第一种位姿信息确定方法的流程图。

图4是本申请实施例提供的第二种位姿信息确定方法的流程图。

图5是本申请实施例提供的第三种位姿信息确定方法的流程图。

图6是本申请实施例提供的一种位姿信息确定装置框图。

图7是本申请实施例提供的另一种可移动设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与本申请的一些方面相一致的装置和方法的例子。

在对本申请实施例进行详细的解释说明之前,先对本申请实施例的实施环境进行介绍:

本申请实施例提供的一种实施环境包括可移动设备。可移动设备用于采集图像和imu(inertialmeasurementunit,惯性测量单元)测量信息,并根据采集到的图像和imu测量信息确定可移动设备的位姿信息,以对可移动设备的位姿信息进行实时更新。其中,可移动终设备可以是扫地机、机器人、无人车等。

在本申请实施例中,可以在可移动设备中设置至少两个三维图像拍摄部件。图1是一种可移动设备的结构示意图。参见图1,可移动设备包括三个三维图像拍摄部件,每个三维图像拍摄部件包括两个摄像头,共六个摄像头,即,标号1-6对应的部件。每个三维图像拍摄部件还可以包括isp(imagesignalprocessing,图像信号处理),isp用于对每个三维图像拍摄部件拍摄的图像进行预处理。另外,在图1所示的可移动设备中,可移动设备还包括其他的部件。具体为,标号7对应的嵌入式硬件板卡。标号8对应的金属底板,在金属底板的上方可以设置有摄像头和嵌入式硬件板卡。在金属底板上还可以设置有如标号9-11对应的三个走线孔,走线孔可以用于将摄像头和嵌入式硬件板卡的相关电线输出到可移动设备的底座的下面。在金属底板上还可以设置有如标号12-17对应的六个矩形凹槽,矩形凹槽用于将摄像头固定在金属底板上。

六个摄像头可以是独立的工业摄像头,摄像头的种类可以包括普通的针孔摄像头、鱼眼摄像头等。两个相邻且摆放位置平行的摄像头为一对双目摄像头(三维图像拍摄部件)。不同对双目摄像头之间的视角可以重合也可以不重合。

金属底板可以设置为三角形,共有三条边,三对双目摄像头分别被设置在三条边中的一条边上,且一对双目摄像头中的两个摄像头拍摄方向一致。每对双目摄像头的基线距离可以设置为12厘米。可移动设备可以包括三个三维图像拍摄部件,任意两个三维图像拍摄部件与可移动设备的预设参考中心的连线之间的夹角等于120度,即不同对双目摄像头中相邻的两个摄像头的夹角可以设置为120度。

图2是嵌入式硬件板卡的结构示意图,参见图2,嵌入式硬件板卡包括imu、cpu(centralprocessingunit,中央处理器)、电气引脚、数据传输接口和电源输入接口。电源输入接口用于通过外部电源为可移动设备供电。

imu可以每隔第一时长测量一次数据,即imu测量信息。其中,imu包括陀螺仪和加速度计。陀螺仪用于测量可移动设备的角速度,加速度计用于测量可移动设备的加速度。

cpu可以每隔第二时长通过上述电气引脚向至少两个三维图像拍摄部件发送一次触发信号,以触发至少两个三维图像拍摄部件拍摄图像,并可以通过数据传输接口接收至少两个三维图像拍摄部件拍摄的图像。具体地,imu在每次测量得到imu测量信息时,向cpu发送测量得到的imu测量信息以及一个中断信号。cpu接收到该测量得到的imu测量信息以及该中断信号之后,根据该中断信号可以判断当前时刻与上一触发信号的发送时刻之间的时长是否达到第二时长,如果是,则cpu可以通过电气引脚向至少两个三维图像拍摄部件发送触发信号,以触发至少两个三维图像拍摄部件拍摄图像。另外,cpu还可以在接收到中断信号时,将当前时刻对应的时间戳作为imu测量信息的测量时间戳进行记录。再者,cpu在向至少两个三维图像拍摄部件发送触发信号时,可以记录触发累加序号。其中,触发累加序号是指可移动设备的cpu触发至少两个三维图像拍摄部件拍摄图像的次数,简单地,可以将可移动设备的cpu向至少两个三维图像拍摄部件发送触发信号的数量确定为触发累加序号。之后cpu可以将该imu测量信息、该测量时间戳以及该触发累积序号作为一个imu数据包进行打包并存储。如果当前时刻与上一触发信号的发送时刻之间的时长没有到达第二时长,则cpu可以将该imu测量信息以及该测量时间戳作为一个imu数据包进行打包并存储。

至少两个三维图像拍摄部件被cpu触发后,开始进行曝光,并将曝光后的图像通过数据传输接口发送给cpu,当然,也可以经过至少两个三维图像拍摄部件中的isp预处理,之后再通过数据传输接口发送给cpu。当cpu接收到至少两个三维图像拍摄部件拍摄的图像时,可以记录拍摄累加序号。其中拍摄累加序号可以是指cpu接收到至少两个三维图像拍摄部件拍摄的图像的次数,且至少两个三维图像拍摄部件在同一时刻拍摄的图像算作一次。比如,至少两个三维图像拍摄部件在4个时刻分别进行了图像拍摄。那么,cpu在每接收到一个时刻发送的图像时,即可将拍摄累加序号增加1。这样,cpu在接收到4个时刻拍摄的图像时,即可确定拍摄累加序号为4。

接下来对本申请实施例提供的位姿信息确定方法进行详细地解释说明。

图3是本申请实施例提供的一种位姿信息确定方法的流程图,该方法应用于可移动设备,该可移动设备包括至少两个三维图像拍摄部件和一个imu,参见图3,该方法包括:

步骤301:根据当前时刻与上一关键帧时刻之间的imu测量信息,以及第一时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息,该上一关键帧时刻是指每个三维图像拍摄部件最近一次拍摄的能够作为关键帧图像的图像的拍摄时刻,第一时长是指imu的相邻两个测量时刻之间的时长。

步骤302:根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、该imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻该可移动设备的系统状态,以及该可移动设备的实际重力向量,确定当前时刻该可移动设备的系统状态,该至少两个第一图像是指该至少两个三维图像拍摄部件包括的第一摄像头当前时刻分别拍摄的图像,该系统状态包括该可移动设备的位姿信息和速度,以及imu的漂移误差。

在本申请实施例中,先根据当前时刻与上一关键帧时刻之间的imu测量信息,以及imu的相邻两个测量时刻之间的时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息。然后根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、该imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻该可移动设备的系统状态,以及该可移动设备的实际重力向量,确定当前时刻该可移动设备的系统状态。由于系统状态包括可移动设备的位姿信息和速度,以及imu的漂移误差,因此,在确定当前时刻可移动设备的系统状态之后,即可确定当前时刻可移动设备的位姿信息。由于本申请实施例是将至少两个三维图像拍摄部件与imu进行联合,以共同对可移动设备的位姿信息进行确定,避免了因三维图像拍摄部件可能无法采集到纹理较为清楚的图像,而导致确定出的位姿信息较为不准确的问题,进而提高了确定位姿信息的准确性。

可选地,该根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、该imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻该可移动设备的系统状态,以及该可移动设备的实际重力向量,确定当前时刻该可移动设备的系统状态,包括:

确定该至少两个第一图像包括的特征点的图像坐标,以及与每个第一图像包括的特征点对应的地图点的三维位置信息;

根据该至少两个第一图像包括的特征点的图像坐标、与每个第一图像包括的特征点对应的地图点的三维位置信息、存储的每个三维图像拍摄部件包括的第一摄像头的内参,以及每个三维图像拍摄部件相对于imu的旋转平移变换矩阵,构建第一重投影误差约束代价函数;

根据该imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻该可移动设备的系统状态,以及该可移动设备的实际重力向量,构建imu运动预测代价函数;

最小化第一重投影误差约束代价函数与imu运动预测代价函数之和,以得到当前时刻该可移动设备的系统状态。

可选地,imu包括陀螺仪和加速度计,该imu测量信息包括陀螺仪测量得到的角速度和加速度计测量得到的加速度,该imu预积分测量信息包括相对姿态增量、相对速度增量和相对位置增量;

该根据当前时刻与上一关键帧时刻之间的imu测量信息,以及第一时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息,包括:

根据当前时刻与上一关键帧时刻之间陀螺仪测量得到的角速度、上一关键帧时刻陀螺仪的漂移误差和第一时长,确定当前时刻与上一关键帧时刻之间的相对姿态增量,以及上一关键帧时刻与至少一个测量时刻中每个测量时刻之间的相对姿态增量,该至少一个测量时刻是指当前时刻与上一关键帧时刻之间的测量时刻;

根据上一关键帧时刻与该至少一个测量时刻中每个测量时刻之间的相对姿态增量、当前时刻与上一关键帧时刻之间加速度计测量得到的加速度、上一关键帧时刻加速度计的漂移误差和第一时长,确定当前时刻与上一关键帧时刻之间的相对速度增量;

根据上一关键帧时刻与该至少一个测量时刻中每个测量时刻之间的相对姿态增量、上一关键帧时刻与该至少一个测量时刻中每个测量时刻之间的相对速度增量、当前时刻与上一关键帧时刻之间加速度计测量得到的加速度、上一关键帧时刻加速度计的漂移误差和第一时长,确定当前时刻与上一关键帧时刻之间的相对位置增量。

可选地,该根据当前时刻与上一关键帧时刻之间的imu测量信息,以及第一时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息之前,该方法还包括:

每隔第一时长获取一个imu数据包,该imu数据包至少包括imu测量信息和对应的测量时间戳,其中,每个三维图像拍摄部件每隔第二时长拍摄一次图像,第二时长大于第一时长,且每隔第二时长获取的imu数据包还包括触发累加序号;

当每个三维图像拍摄部件当前时刻拍摄到图像时,确定拍摄累加序号,并根据该拍摄累加序号从获取的imu数据包中获取目标imu数据包,目标imu数据包中的触发累加序号与该拍摄累加序号相同;

将目标imu数据包中的测量时间戳与存储的时间偏置之和,确定为每个三维图像拍摄部件当前时刻拍摄的图像的拍摄时间戳;

从获取的imu数据包中,获取测量时间戳处于上一关键帧时刻拍摄的图像的拍摄时间戳与当前时刻拍摄的图像的拍摄时间戳之间的imu测量信息,以得到当前时刻与上一关键帧时刻之间的imu测量信息。

可选地,该根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、该imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻该可移动设备的系统状态,以及该可移动设备的实际重力向量,确定当前时刻该可移动设备的系统状态之后,该方法还包括:

确定该可移动设备当前时刻能够追踪到的地图点的比例,该比例是指与该至少两个第一图像包括的特征点对应的地图点的总量占该至少两个第一图像包括的特征点的总量的比例;

当该可移动设备当前时刻能够追踪到的地图点的比例小于比例阈值,或者当前时刻与上一关键帧时刻之间的时长大于时长阈值时,将每个三维图像拍摄部件当前时刻拍摄的图像确定为关键帧图像。

可选地,该将每个三维图像拍摄部件当前时刻拍摄的图像确定为关键帧图像之后,该方法还包括:

根据每个三维图像拍摄部件对应的至少一对特征点的图像坐标、存储的每个第一摄像头的焦距,以及每个三维图像拍摄部件包括的两个摄像头之间的基线距离,确定每个第一图像包括的特征点的深度,一对特征点是指一个三维图像拍摄部件包括的两个摄像头当前时刻拍摄的图像中对应同一实物点的两个特征点;

根据当前时刻该可移动设备的位姿信息、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、每个第一摄像头的内参,以及每个第一图像包括的特征点的图像坐标和深度,确定每个第一图像包括的特征点对应的地图点的三维位置信息;

根据每个第一图像包括的特征点对应的地图点的三维位置信息,对已构建的地图进行更新。

可选地,该根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、该imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻该可移动设备的系统状态,以及该可移动设备的实际重力向量,确定当前时刻该可移动设备的系统状态之前,该方法还包括:

确定该可移动设备在n个关键帧时刻的位姿信息,以及该n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,该n个关键帧时刻是指每个三维图像拍摄部件在当前时刻之前拍摄的能够作为关键帧图像的图像的拍摄时刻,n为大于或等于4的正整数;

根据该可移动设备在该n个关键帧时刻的位姿信息、该n个关键帧时刻中相邻两个关键帧时刻之间的时长、该n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,以及惯性坐标系的重力方向向量,确定imu在第n个关键帧时刻的漂移误差和该可移动设备的实际重力向量;

根据该可移动设备在第n-1个关键帧时刻的位姿信息、该可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的imu预积分测量信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和imu在第n-1个关键帧时刻测量得到的imu测量信息,确定该可移动设备在第n个关键帧时刻的速度。

可选地,imu包括陀螺仪和加速度计,该imu测量信息包括陀螺仪测量得到的角速度和加速度计测量得到的加速度,该imu预积分测量信息包括相对姿态增量、相对速度增量和相对位置增量;

该根据该可移动设备在该n个关键帧时刻的位姿信息、该n个关键帧时刻中相邻两个关键帧时刻之间的时长、该n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,以及惯性坐标系的重力方向向量,确定imu在第n个关键帧时刻的漂移误差和该可移动设备的实际重力向量,包括:

根据该可移动设备在该n个关键帧时刻的姿态信息和该n个关键帧时刻中相邻两个关键帧时刻之间的相对姿态增量,构建漂移误差代价函数;

最小化该漂移误差代价函数,以得到陀螺仪在第n个关键帧时刻的漂移误差;

根据该可移动设备在该n个关键帧时刻的位姿信息、该n个关键帧时刻中相邻两个关键帧时刻之间的时长、该n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,以及该惯性坐标系的重力方向向量,确定加速度计在第n个关键帧时刻的漂移误差和该可移动设备的实际重力向量。

可选地,该根据该可移动设备在该n个关键帧时刻的位姿信息、该n个关键帧时刻中相邻两个关键帧时刻之间的时长、该n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,以及该惯性坐标系的重力方向向量,确定加速度计在第n个关键帧时刻的漂移误差和该可移动设备的实际重力向量,包括:

根据该可移动设备在该n个关键帧时刻的位姿信息、该n个关键帧时刻中相邻两个关键帧时刻之间的时长,以及该n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定该可移动设备的估计重力向量;

根据该可移动设备的估计重力向量和该惯性坐标系的重力方向向量,确定该惯性坐标系到世界坐标系的旋转变换矩阵;

根据该惯性坐标系到世界坐标系的旋转变换矩阵、该惯性坐标系的重力方向向量、该n个关键帧时刻中相邻两个关键帧时刻之间的时长、该可移动设备在该n个关键帧时刻的位姿信息,以及该n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定加速度计在第n个关键帧时刻的漂移误差和该可移动设备的重力方向修正量;

根据该可移动设备的重力方向修正量、该惯性坐标系到世界坐标系的旋转变换矩阵和该惯性坐标系的重力方向向量,确定该可移动设备的实际重力向量。

可选地,该根据该可移动设备在第n-1个关键帧时刻的位姿信息、该可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的imu预积分测量信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和imu在第n-1个关键帧时刻测量得到的imu测量信息,确定该可移动设备在第n个关键帧时刻的速度,包括:

根据该可移动设备在第n-1个关键帧时刻的位姿信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、该可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的相对位置增量,确定该可移动设备在第n-1个关键帧时刻的速度;

根据该可移动设备在第n-1个关键帧时刻的速度、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和加速度计在第n-1个关键帧时刻测量得到的加速度,确定该可移动设备在第n个关键帧时刻的速度。

可选地,该确定该可移动设备在n个关键帧时刻的位姿信息,包括:

对于该n个关键帧时刻中的任一关键帧时刻a,根据该关键帧时刻a对应的初始关键帧图像包括的特征点的图像坐标、与该关键帧时刻a对应的初始关键帧图像包括的特征点对应的地图点的三维位置信息、存储的每个第一摄像头的内参,以及每个三维图像拍摄部件相对于imu的旋转平移变换矩阵,构建第二重投影误差约束代价函数,该关键帧时刻a对应的初始关键帧图像是指该至少两个三维图像拍摄部件包括的第一摄像头在该关键帧时刻a分别拍摄的图像;

最小化第二重投影误差约束代价函数,以得到该可移动设备在该关键帧时刻a的位姿信息。

上述所有可选技术方案,均可按照任意结合形成本申请的可选实施例,本申请实施例对此不再一一赘述。

本申请实施例提供了一种位姿信息确定方法的流程图,该方法应用于可移动设备,该可移动设备包括至少两个三维图像拍摄部件和一个imu。本实施例将对图3所示的实施例进行展开说明,该方法包括如下几个步骤。

首先,参见图4,在确定可移动设备的位姿信息之前,可以对可移动设备中的至少两个三维图像拍摄部件和imu进行联合初始化,以确定可移动设备在初始状态下的系统状态。之后,便可根据可移动设备在初始状态下的系统状态来实时地确定可移动设备的位姿信息。也即是,也可以在每次启动可移动设备时进行联合初始化,获取可移动设备在初始状态下的系统状态并进行存储,之后在对可移动设备的位姿信息进行实时确定时就可以直接根据存储的可移动设备在初始状态下的系统状态,来实时地确定可移动设备的位姿信息。下面通过步骤401-步骤403对该联合初始化的过程进行说明。

步骤401:确定可移动设备在n个关键帧时刻的位姿信息,以及n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,n为大于或等于4的正整数。

需要说明的是,n个关键帧时刻是指每个三维图像拍摄部件在当前时刻之前拍摄的能够作为关键帧图像的图像的拍摄时刻。并且n个关键帧时刻中相邻两个关键帧时刻之间可能存在至少一个非关键帧时刻,即每个三维图像拍摄部件拍摄的不能作为关键帧图像的图像的拍摄时刻。示例性地,每个三维图像拍摄部件在时刻1和时刻4拍摄到的图像都可以作为关键帧图像,时刻1和时刻4之间的时刻拍摄到的图像不能作为关键帧图像,即,时刻2和时刻3拍摄到的图像不能作为关键帧图像,那么,时刻1和时刻4可以称为关键帧时刻,时刻2和时刻3可以称为非关键帧时刻。

值得注意的是,为了实现联合初始化,需要可移动设备运行一段时间,并通过这段时间内拍摄到的图像和测量到的imu测量信息来进行联合初始化。其中,n个关键帧时刻可以是从这段时间内的第一个关键帧时刻开始确定的n个关键帧时刻。

其中,位姿信息可以包括位置信息和姿态信息,imu可以包括陀螺仪和加速度计。n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息是指n个关键帧时刻中相邻两个关键帧时刻之间的相对姿态增量、相对位置增量和相对速度增量。n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息可以通过相邻两个关键帧时刻之间的imu测量信息来确定,其中,imu测量信息包括陀螺仪测量得到的角速度,以及加速度计测量得到的加速度。

接下来,通过如下步骤(1)-步骤(5)对上述步骤401的操作进行说明:

步骤(1):对于n个关键帧时刻中的任一关键帧时刻a,根据关键帧时刻a对应的初始关键帧图像包括的特征点的图像坐标、与关键帧时刻a对应的初始关键帧图像包括的特征点对应的地图点的三维位置信息、存储的每个第一摄像头的内参,以及每个三维图像拍摄部件相对于imu的旋转平移变换矩阵,构建第二重投影误差约束代价函数。

需要说明的是,关键帧时刻a对应的初始关键帧图像是指至少两个三维图像拍摄部件包括的第一摄像头在关键帧时刻a分别拍摄的图像。关键帧时刻a对应的初始关键帧图像的个数可以是至少两个。其中,第一摄像头可以是三维图像拍摄部件中位于左侧的摄像头。

另外,特征点指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点。初始关键帧图像包括的特征点的图像坐标可以是特征点在初始关键帧图像的像素坐标系下的像素坐标。该像素坐标系为二维坐标系,该像素坐标为二维坐标,也即特征点的图像坐标为二维坐标。

关键帧时刻a对应的初始关键帧图像包括的特征点可以通过orb(orientedfastandrotatedbrief,一种快速特征点提取和描述的算法)、daisy(一种特征点提取算法)和sift(scale-invariantfeaturetransform,尺度不变特征变换)等算法来确定。另外,在确定出关键帧时刻a对应的初始关键帧图像包括的特征点之后,还可以通过上述方法确定出特征点对应的描述子,其中,描述子用于描述特征点的属性,每个特征点对应唯一一个描述子。

需要说明的是,地图点的三维位置信息是指已构建的地图中的地图点在世界坐标系下的三维世界坐标,其中,世界坐标系是可移动设备的绝对坐标系,世界坐标系可以根据使用需求预先进行设置。

其中,已构建的地图中还可以包括地图点对应的描述子。这样,可以将关键帧时刻a对应的初始关键帧图像包括的特征点对应的描述子和已构建的地图中的地图点的描述子进行对比,从而在已构建的地图中确定描述子与特征点的描述子相同或者差值在预设阈值范围内的地图点,作为该特征点对应的地图点。该预设阈值范围可以预先进行设置,本申请实施例对此不做具体限定。

另外,每个三维图像拍摄部件包括的第一摄像头的内参可以通过对每个三维图像拍摄部件包括的每个摄像头进行内参标定来获得。可选地,可以通过张正友标定法来对每个三维图像拍摄部件包括的每个摄像头进行内参标定。

再者,每个三维图像拍摄部件相对于imu的旋转平移变换矩阵,可以通过对每个三维图像拍摄部件与imu之间进行外参标定来获得。当对每个三维图像拍摄部件与imu之间进行外参标定时,可以将每个三维图像拍摄部件看做一个整体,那么这个整体相对于imu就会存在一个旋转平移变换矩阵。可选地,可以通过kalibr算法来对每个三维图像拍摄部件与imu之间进行外参标定。

由于至少两个三维图像拍摄部件中的每个三维图像拍摄部件相对于imu都存在一个旋转平移变换矩阵。这样的条件下,每个三维图像拍摄部件在关键帧时刻a都对应着一个重投影误差约束代价函数,将每个三维图像拍摄部件对应的重投影误差约束代价函数相加,即可得到第二重投影误差约束代价函数。

在一种可能的实现方式中,重投影误差约束代价函数可以通过如下公式一表示,为了便于描述,以至少两个三维图像拍摄部件中的任一三维图像拍摄部件b为例,对关键帧时刻a的重投影误差约束代价函数进行说明,其中,三维图像拍摄部件b包括第一摄像头和第二摄像头。

公式一:

其中,m为三维图像拍摄部件b对应的初始关键帧图像包括的特征点中与已构建的地图中的地图点对应的特征点的个数,m为m中的任一数值,也即是公式一中的为三维图像拍摄部件b对应的初始关键帧图像包括的特征点中与已构建的地图中的地图点对应的第m个特征点的图像坐标,pm为与对应的地图点的三维世界坐标,当pm对应的地图点只能在三维图像拍摄部件b中的第一摄像头观测到时当pm对应的地图点在三维图像拍摄部件b中的第一摄像头和第二摄像头都能观测到时π为三维图像拍摄部件b对应的初始关键帧图像包括的特征点中与已构建的地图中的地图点对应的第m个特征点的投影函数,为三维图像拍摄部件b相对于imu的旋转平移变换矩阵的逆矩阵,为关键帧时刻a可移动设备的位姿矩阵的逆矩阵,其中为公式一中的未知量。

需要说明的是,twb为关键帧时刻a可移动设备的位姿矩阵,而位姿信息通常可以通过位姿矩阵来表示,位置信息通常可以通过位置矩阵来表示,姿态信息通常可以通过姿态矩阵来表示,也即,位姿矩阵可以包括位置矩阵和姿态矩阵。因此,twb也可以通过如下公式二来表示:

公式二:

其中,rwb为关键帧时刻a可移动设备的姿态矩阵,pwb为关键帧时刻a可移动设备的位置矩阵。

步骤(2):最小化第二重投影误差约束代价函数,以得到可移动设备在关键帧时刻a的位姿信息。

需要说明的是,在一种可能的实现方式中,最小化第二重投影误差约束代价函数可以通过高斯-牛顿迭代算法来实现,本申请实施例对高斯-牛顿迭代算法不做详细阐述。

另外,由于关键帧时刻a为n个关键帧时刻中的任一关键帧时刻,因此,不仅可以通过上述步骤(1)-步骤(2)来确定可移动设备在关键帧时刻a的位姿信息,还可以通过上述步骤(1)-步骤(2)来确定可移动设备在其他关键帧时刻的位姿信息,本申请实施例对其他关键帧时刻的位姿信息的确定过程不进行详细阐述。

下面对确定n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息的过程进行说明。

步骤(3):根据相邻两个关键帧时刻之间陀螺仪测量得到的角速度、相邻两个关键帧时刻中前一个关键帧时刻陀螺仪的漂移误差和第一时长,确定相邻两个关键帧时刻之间的相对姿态增量,以及相邻两个关键帧时刻中前一个关键帧时刻与至少一个测量时刻中每个测量时刻之间的相对姿态增量,该至少一个测量时刻是指相邻两个关键帧时刻之间的测量时刻,相邻两个关键帧时刻中前一个关键帧时刻是指相邻两个关键帧时刻中时间较早的一个关键帧时刻,第一时长是imu的相邻两个测量时刻之间的时长。

需要说明的是,陀螺仪的漂移误差可以是由于供电电源电压不稳、电子学元件老化、光电倍增管暗电流大和环境温度变化等原因造成的不可避免的误差,且陀螺仪的漂移误差在可移动设备的初始状态就存在,并随着时间而缓慢变化。

另外,相邻两个关键帧时刻之间的相对姿态增量,以及相邻两个关键帧时刻中前一个关键帧时刻与至少一个测量时刻中每个测量时刻之间的相对姿态增量可以通过如下公式三来确定。由于一个关键帧时刻也是一个测量时刻,且相邻两个关键帧时刻之间可能存在至少一个非关键帧时刻,也即是,相邻两个关键帧时刻之间可能存在至少一个测量时刻,因此,步骤401中是对可移动设备在运行过程中的所有测量时刻按照顺序进行编号,并不对关键帧时刻单独按照另一顺序进行编号。也即是,公式三中的i表示作为关键帧时刻的第i个测量时刻,公式三中的j表示作为关键帧时刻的第j个测量时刻,第i个测量时刻与第j个测量时刻是相邻的两个关键帧时刻,且第i个测量时刻早于第j个测量时刻,对于步骤401后续出现的第i个测量时刻与第j个测量时刻均是如此。

公式三:

其中,δrij为第i个测量时刻与第j个测量时刻之间的相对姿态增量,即,相邻两个关键帧时刻之间的相对姿态增量,为第i个测量时刻可移动设备的姿态矩阵的转置矩阵,rj为第j个测量时刻可移动设备的姿态矩阵,exp为以自然常数e为底的指数函数,为陀螺仪在第k个测量时刻测量得到的角速度,为第i个测量时刻陀螺仪的漂移误差,δt为imu的相邻两个测量时刻之间的时长,即第一时长。

例如,相邻的第i个测量时刻与第j个测量时刻之间间隔了两个测量时刻,将作为关键帧时刻的第i个测量时刻记为1,那么作为关键帧时刻的第j个测量时刻即为4,则通过上述公式三可以将第i个测量时刻与第j个测量时刻之间的相对位姿增量,即相邻两个关键帧时刻之间的相对位姿增量表示为:

且通过上述公式三可以将第i个测量时刻与间隔的两个测量时刻中每个测量时刻之间的相对姿态增量,即相邻两个关键帧时刻中前一个关键帧时刻与间隔的两个测量时刻中每个测量时刻之间相对姿态增量表示为:

步骤(4):根据相邻两个关键帧时刻中前一个关键帧时刻与该至少一个测量时刻中每个测量时刻之间的相对姿态增量、相邻两个关键帧时刻之间加速度计测量得到的加速度、相邻两个关键帧时刻中前一个关键帧时刻加速度计的漂移误差和第一时长,确定相邻两个关键帧时刻之间的相对速度增量。

需要说明的是,加速度计的漂移误差可以是由于供电电源电压不稳、电子学元件老化、光电倍增管暗电流大和环境温度变化等原因造成的不可避免的误差,且加速度计的漂移误差在可移动设备的初始状态就存在,并随着时间而缓慢变化。

在一种可能的实现方式中,相邻两个关键帧时刻之间的相对速度增量可以通过如下公式四来确定:

公式四:

其中,δvij为第i个测量时刻与第j个测量时刻之间的相对速度增量,即相邻两个关键帧时刻之间的相对速度增量,δrik为第i个测量时刻与第k个测量时刻之间的相对姿态增量,为第k个测量时刻加速度计测量得到的加速度,为第i个测量时刻加速度计的漂移误差,δt为第一时长。

例如,相邻两个关键帧时刻之间间隔了两个测量时刻,将作为关键帧时刻的第i个测量时刻记为1,那么作为关键帧时刻的第j个测量时刻即为4,则通过上述公式四可以将第i个测量时刻与第j个测量时刻之间的相对位姿增量,即相邻两个关键帧时刻之间的相对速度增量表示为:

其中,δr11为一个3×3的单位矩阵。

步骤(5):根据相邻两个关键帧时刻中前一个关键帧时刻与该至少一个测量时刻中每个测量时刻之间的相对姿态增量、相邻两个关键帧时刻中前一个关键帧时刻与该至少一个测量时刻中每个测量时刻之间的相对速度增量、相邻两个关键帧时刻之间加速度计测量得到的加速度、相邻两个关键帧时刻中前一个关键帧时刻加速度计的漂移误差和第一时长,确定相邻两个关键帧时刻之间的相对位置增量。

需要说明的是,在一种可能的实现方式中,相邻两个关键帧时刻之间的相对位置增量可以通过如下公式五来确定:

公式五:

其中,δpij为第i个测量时刻与第j个测量时刻之间的相对位置增量,即相邻两个关键帧时刻之间的相对位置增量,δvik为第i个测量时刻与第k个测量时刻之间的相对速度增量。

例如,相邻两个关键帧时刻之间间隔了两个测量时刻,将作为关键帧时刻的第i个测量时刻记为1,那么作为关键帧时刻的第j个测量时刻即为4,则通过上述公式五可以将第i个测量时刻与第j个测量时刻之间的相对位置增量,即相邻两个关键帧时刻之间的相对位置增量表示为:

其中,δv11为零,δv12和δv13可以通过公式四确定出。

至此,可以根据上述步骤(1)-步骤(5)将可移动设备在n个关键帧时刻的位姿信息,以及n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息确定出来,由于n是大于或等于4的正整数,所以,可以确定出多个imu预积分测量信息。例如当n等于4时,可以将该4个关键帧时刻中第一个关键帧时刻与第二个关键帧时刻、第二个关键帧时刻与第三个关键帧时刻,以及第三个关键帧时刻与第四个关键帧时刻之间的imu预积分测量信息通过上述步骤(1)-步骤(5)分别确定出来。

根据上述步骤401确定的可移动设备在该n个关键帧时刻的位姿信息,以及该n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息之后,可以通过如下步骤402继续对该n个关键帧时刻中第n个关键帧时刻的漂移误差和可移动设备的实际重力向量进行确定。

步骤402:根据可移动设备在n个关键帧时刻的位姿信息、n个关键帧时刻中相邻两个关键帧时刻之间的时长、n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,以及惯性坐标系的重力方向向量,确定imu在第n个关键帧时刻的漂移误差和可移动设备的实际重力向量。

需要说明的是,惯性坐标系是指对牛顿运动定律适用的定坐标系,在一种可能的实现方式中,惯性坐标系的坐标原点可以是世界坐标系的原点,惯性坐标系的z轴可以指向地心,惯性坐标系的重力方向向量可以是与惯性坐标系中的z轴平行,且在x轴和y轴没有分量的向量,也即惯性坐标系的重力方向向量可以表示为[0,0,1]。

另外,基于上述描述,imu包括陀螺仪和加速度计,因此,imu在n个关键帧时刻的漂移误差是指陀螺仪在n个关键帧时刻的漂移误差和加速度计在n个关键帧时刻的漂移误差。

再者,可移动设备的实际重力向量是该可移动设备在世界坐标系下的重力向量。

其中,步骤402的操作可以通过如下步骤(1)-步骤(3)来实现:

步骤(1):根据可移动设备在n个关键帧时刻的姿态信息和n个关键帧时刻中相邻两个关键帧时刻之间的相对姿态增量,构建漂移误差代价函数。

在一种可能的实现方式中,漂移误差代价函数可以通过如下公式六来表示:

公式六:

其中,上述步骤401是对可移动设备在运行过程中的所有测量时刻按照顺序编号,并不对关键帧时刻单独按照另一顺序编号,而在步骤402中,为了便于描述,对n个关键帧又重新编号,也即是,δri,i+1为n个关键帧时刻中第i个关键帧时刻和第i+1个关键帧时刻之间的相对姿态增量,为n个关键帧时刻中第i个关键帧时刻和第i+1个关键帧时刻之间的相对姿态增量对bg的雅克比函数,bg为陀螺仪的漂移误差,为n个关键帧时刻中第i+1个关键帧时刻的姿态矩阵的转置矩阵,ri为n个关键帧时刻中第i个关键帧时刻的姿态矩阵。其中,bg为公式六中的未知量。

需要说明的是,在进行联合初始化时,可以认为陀螺仪在n个关键帧时刻的漂移误差都相同,因此,在上述公式六中未对陀螺仪的漂移误差所处的时刻进行区分。

步骤(2):最小化漂移误差代价函数,以得到陀螺仪在第n个关键帧时刻的漂移误差。

需要说明的是,对漂移误差代价函数的最小化,可以通过高斯-牛顿迭代算法来实现。

步骤(3):根据可移动设备在n个关键帧时刻的位姿信息、n个关键帧时刻中相邻两个关键帧时刻之间的时长、n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,以及惯性坐标系的重力方向向量,确定加速度计在第n个关键帧时刻的漂移误差和可移动设备的实际重力向量。

其中,步骤(3)的操作可以通过如下步骤a-步骤d来实现:

步骤a:根据可移动设备在n个关键帧时刻的位姿信息、n个关键帧时刻中相邻两个关键帧时刻之间的时长,以及n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定可移动设备的估计重力向量。

需要说明的是,在一种可能的实现方式中,估计重力向量可以是在忽略加速度计的漂移误差的条件下确定出来的。可移动设备的估计重力向量可以通过如下公式七至公式九来确定,即,按照公式七至公式九,通过对n个关键帧时刻中每相邻的三个关键帧时刻之间的数据进行整合,然后将整合后得到的至少两组数据进行svd(singularvaluedecomposition,奇异值分解),从而确定出可移动设备的估计重力向量。为了方便描述,将公式中相邻的三个关键帧时刻记为第1个关键帧时刻、第2个关键帧时刻和第3个关键帧时刻,实际应用中不限于这三个关键帧时刻:

公式七:a(i)g=b(i)

公式八:

公式九:b(i)=(p3-p2)δt12-(p2-p1)δt23+r1δp12δt23-r2δp23δt12-r1δv12δt12δt23

其中,i3×3为一个三行三列的单位矩阵,δt12为n个关键帧时刻中第1个关键帧时刻与第2个关键帧时刻之间的时长,δt23为n个关键帧时刻中第2个关键帧时刻与第3个关键帧时刻之间的时长,p1为n个关键帧时刻中第1个关键帧时刻可移动设备的位置矩阵,p2为n个关键帧时刻中第2个关键帧时刻可移动设备的位置矩阵,p3为n个关键帧时刻中第3个关键帧时刻可移动设备的位置矩阵,p12为n个关键帧时刻中第1个关键帧时刻与第2个关键帧时刻之间的相对位置增量,p23为n个关键帧时刻中第2个关键帧时刻与第3个关键帧时刻之间的相对位置增量,r1为n个关键帧时刻中第1个关键帧时刻可移动设备的姿态矩阵,r2为n个关键帧时刻中第2个关键帧时刻可移动设备的姿态矩阵,δv12为n个关键帧时刻中第1个关键帧时刻与第2个关键帧时刻之间的相对速度增量。

例如,当n个关键帧时刻中n为4时,这4个关键帧时刻中,第1个关键帧时刻、第2个关键帧时刻和第3个关键帧时刻可以通过上述公式七至公式九整合出一组数据;第2个关键帧时刻、第3个关键帧时刻和第4个关键帧时刻可以通过上述公式七至公式九整合出一组数据,将这两组数据进行svd,就可以确定出可移动设备的估计重力向量。

步骤b:根据可移动设备的估计重力向量和惯性坐标系的重力方向向量,确定惯性坐标系到世界坐标系的旋转变换矩阵。

需要说明的是,在一种可能的实现方式中,惯性坐标系到世界坐标系的旋转变换矩阵可以根据如下公式十来确定:

公式十:

其中,rwi为惯性坐标系到世界坐标系的旋转变换矩阵,为惯性坐标系到世界坐标系的旋转轴的单位向量,θ为惯性坐标系到世界坐标系的旋转轴的旋转角度。

其中,和θ可以分别根据如下公式十一和公式十三来确定:

公式十一:

公式十二:

公式十三:

其中,g*为可移动设备的估计重力向量,|g*|为可移动设备的估计重力向量的模,为可移动设备的估计重力向量的单位向量,gi为惯性坐标系的重力方向向量的转置。可选地,gi可以为[0,0,1]t

步骤c:根据惯性坐标系到世界坐标系的旋转变换矩阵、惯性坐标系的重力方向向量、n个关键帧时刻中相邻两个关键帧时刻之间的时长、可移动设备在n个关键帧时刻的位姿信息,以及n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定加速度计在第n个关键帧时刻的漂移误差和可移动设备的重力方向修正量。

需要说明的是,在一种可能的实现方式中,重力方向修正量可以根据如下公式十四来表示,可移动设备的实际重力向量可以根据如下公式十五来表示:

公式十四:δθ=[δθx,δθy,0]t

公式十五:gw=rwigig

其中,δθ为可移动设备的重力方向修正量,δθx为可移动设备的重力方向修正量在x轴的分量,δθy为可移动设备的重力方向修正量在y轴的分量,gw为可移动设备的实际重力向量,g为重力加速度,即9.8m/s2(米/平方秒)。

另外,加速度计在第n个关键帧时刻的漂移误差和可移动设备的重力方向修正量可以根据如下公式十六至公式十九来确定,与步骤a类似地,按照公式十六至公式十九,通过对n个关键帧时刻中每相邻的三个关键帧时刻之间的数据进行整合,然后将整合后得到的至少两组数据进行svd,从而确定出加速度计在第n个关键帧时刻的漂移误差和可移动设备的重力方向修正量,为了方便描述,将公式中相邻的三个关键帧时刻记为第1个关键帧时刻、第2个关键帧时刻和第3个关键帧时刻,实际应用中不限于这三个关键帧时刻:

公式十六:

公式十七:

公式十八:

公式十九:

其中,δθ(1:2)为取δθ中第一行和第二行的元素组成的矩阵,为n个关键帧时刻中第2个关键帧时刻与第3个关键帧时刻之间的相对位置增量对ba的雅克比函数,为n个关键帧时刻中第1个关键帧时刻与第2个关键帧时刻之间的相对速度增量对ba的雅克比函数,为n个关键帧时刻中第1个关键帧时刻与第2个关键帧时刻之间相对位置增量对ba的雅克比函数。

例如,当n个关键帧时刻中n为4时,这4个关键帧时刻中,第1个关键帧时刻、第2个关键帧时刻和第3个关键帧时刻可以通过上述公式十六至公式十九整合出一组数据;第2个关键帧时刻、第3个关键帧时刻和第4个关键帧时刻可以通过上述公式十六至公式十九整合出一组数据,将这两组数据进行svd,就可以确定出加速度计在第n个关键帧时刻的漂移误差和可移动设备的重力方向修正量。

值得注意的是,加速度计在第n个关键帧时刻的漂移误差,可以作为加速度计在该联合初始化阶段的n个关键帧时刻中每个关键帧时刻的漂移误差。

步骤d:根据可移动设备的重力方向修正量、惯性坐标系到世界坐标系的旋转变换矩阵和惯性坐标系的重力向量,确定可移动设备的实际重力向量。

由于惯性坐标系到世界坐标系的旋转变换矩阵只有两个自由度,因此,为了提高可移动设备的实际重力向量的准确性,可以定义可移动设备的重力方向修正量。之后,根据可移动设备的重力方向修正量、惯性坐标系到世界坐标系的旋转变换矩阵和惯性坐标系的重力向量,确定的可移动设备的实际重力向量的准确性较高。

需要说明的是,在一种可能的实现方式中,可移动设备的实际重力向量可以通过如下公式二十来确定:

公式二十:gw=rwiexp(δθ)gig≈rwigig-rwi(gi)×gδθ

其中,(gi)×为gi的反对称矩阵。

将步骤a至步骤c确定出的惯性坐标系到世界坐标系的旋转变换矩阵rwi和可移动设备的重力方向修正量δθ,以及惯性坐标系的重力向量gi和重力加速度g代入公式二十即可确定出可移动设备的实际重力向量gw。

步骤403:根据可移动设备在第n-1个关键帧时刻的位姿信息、可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的imu预积分测量信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和imu在第n-1个关键帧时刻测量得到的imu测量信息,确定可移动设备在第n个关键帧时刻的速度。

具体地,步骤403的操作可以通过如下步骤(1)-步骤(2)来实现:

步骤(1):根据可移动设备在第n-1个关键帧时刻的位姿信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的相对位置增量,确定可移动设备在第n-1个关键帧时刻的速度。

需要说明的是,在一种可能的实现方式中,可移动设备在第n-1个关键帧时刻的速度可以根据如下公式二十一来确定,为了便于描述,将公式二十一中的i确定为n-2,则j即为n-1:

公式二十一:

其中,pj为n个关键帧中第j个关键帧时刻可移动设备的位置矩阵,pi为n个关键帧中第i个关键帧时刻可移动设备的位置矩阵,δpij为n个关键帧中第i个关键帧时刻与第j个关键帧时刻之间的相对位置增量,vi为n个关键帧中第i个关键帧时刻可移动设备的速度矩阵,δtij为n个关键帧中第i个关键帧时刻与第j个关键帧时刻之间的时长。其中vi为公式二十一中的未知量。

当公式二十一中的i为n-2时,可以确定出可移动设备在第n-1个关键帧时刻的速度。

步骤(2):根据可移动设备在第n-1个关键帧时刻的速度、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和加速度计在第n-1个关键帧时刻测量得到的加速度,确定可移动设备在第n个关键帧时刻的速度。

需要说明的是,在一种可能的实现方式中,可移动设备在第n个关键帧时刻的速度可以根据如下公式二十二来确定:

公式二十二:v(t+δtn-1,n)=v(t)+aw(t)δtn-1,n

对于确定可移动设备在第n个关键帧时刻的速度而言,公式二十二可以转变为如下公式二十三:

公式二十三:

其中,vn为第n个关键帧时刻可移动设备的速度,vn-1为第n-1个关键帧时刻可移动设备的速度,为第n-1个关键帧时刻可移动设备的加速度真值,δtn-1,n为第n-1个关键帧时刻与第n个关键帧时刻之间的时长。其中,vn和为公式二十三中的未知量。

其中,可以通过如下公式二十四来确定:

公式二十四:

其中,为第n-1个关键帧时刻加速度计测量得到的加速度,为第n-1个关键帧时刻可移动设备的姿态矩阵的转置矩阵,为第n个关键帧时刻加速度计的漂移误差,为第n个关键帧时刻加速度计的测量白噪声。其中为公式二十四中的未知量。

在通过公式二十四确定时,可以将设置为零,继而可以确定出然后再将确定出的代入公式二十三中即可确定出确定可移动设备在第n个关键帧时刻的速度。

至此,对可移动设备中的至少两个三维图像拍摄部件和imu进行联合初始化的过程已经完成,在该联合初始化过程中,确定出了可移动设备在n个关键帧时刻的位姿信息、imu在第n个关键帧时刻的漂移误差、可移动设备的实际重力向量以及可移动设备在第n个关键帧时刻的速度。对于第n个关键帧时刻之后的任一测量时刻,即当前时刻,可以根据第n个关键帧时刻可移动设备的位姿信息、速度、imu的漂移误差以及当前时刻与第n个关键帧时刻之间的imu预积分测量信息,通过如下步骤501-步骤504确定出当前时刻可移动设备的位姿信息、速度以及imu的漂移误差。但由于联合初始化的过程可能是在当前时刻较早之前进行的,所以当前时刻的上一个关键帧时刻可能不是该n个关键帧时刻中的第n个关键帧时刻,因此,对于步骤501-步骤504中提到的上一关键帧时刻不限于是该联合初始化中第n个关键帧时刻。

参见图5,在对可移动设备中的至少两个三维图像拍摄部件和imu进行联合初始化的过程进行说明之后,接下来通过步骤501-步骤504对可移动设备的位姿信息的实时更新过程进行说明。

步骤501:根据当前时刻与上一关键帧时刻之间的imu测量信息,以及第一时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息。

需要说明的是,上一关键帧时刻是指每个三维图像拍摄部件最近一次拍摄的能够作为关键帧图像的图像的拍摄时刻。

具体地,根据当前时刻与上一关键帧时刻之间陀螺仪测量得到的角速度、上一关键帧时刻陀螺仪的漂移误差和第一时长,确定当前时刻与上一关键帧时刻之间的相对姿态增量,以及上一关键帧时刻与至少一个测量时刻中每个测量时刻之间的相对姿态增量,至少一个测量时刻是指当前时刻与上一关键帧时刻之间的测量时刻。根据上一关键帧时刻与该至少一个测量时刻中每个测量时刻之间的相对姿态增量、当前时刻与上一关键帧时刻之间加速度计测量得到的加速度、上一关键帧时刻加速度计的漂移误差和第一时长,确定当前时刻与上一关键帧时刻之间的相对速度增量。根据上一关键帧时刻与该至少一个测量时刻中每个测量时刻之间的相对姿态增量、上一关键帧时刻与该至少一个测量时刻中每个测量时刻之间的相对速度增量、当前时刻与上一关键帧时刻之间加速度计测量得到的加速度、上一关键帧时刻加速度计的漂移误差和第一时长,确定当前时刻与上一关键帧时刻之间的相对位置增量。

需要说明的是,由于当前时刻与上一关键帧时刻之间可能存在至少一个测量时刻,也可能不存在测量时刻,当当前时刻与上一关键帧时刻之间存在至少一个测量时刻时,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息的步骤,与上述联合初始化过程中确定相邻两个关键帧时刻之间的imu预积分测量信息的类似。当当前时刻与上一关键帧时刻之间不存在测量时刻时,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息的步骤,与上述联合初始化过程中确定第i个测量时刻与第i+1个测量时刻之间的imu预积分测量信息的类似,所以此处对确定当前时刻与上一关键帧时刻之间的imu预积分测量信息的过程不再做详细说明。

进一步地,在步骤501之前,还可以包括如下步骤(1)-步骤(4):

步骤(1):可移动设备每隔第一时长获取一个imu数据包,imu数据包至少包括imu测量信息和对应的测量时间戳,其中,每个三维图像拍摄部件每隔第二时长拍摄一次图像,第二时长大于第一时长,且可移动设备获取的imu数据包还包括触发累加序号。

需要说明的是,测量时间戳是能表示imu测量信息在某个特定时间之前已经存在的、完整的、可验证的数据,通常测量时间戳是一个字符序列,唯一地标识某一刻的时间。在本申请实施例中,imu测量信息对应的测量时间戳用于指示imu测量信息的测量时刻。

步骤(2):当每个三维图像拍摄部件当前时刻拍摄到图像时,可移动设备确定拍摄累加序号,并根据拍摄累加序号从获取的imu数据包中获取目标imu数据包,目标imu数据包中的触发累加序号与拍摄累加序号相同。

步骤(3):可移动设备将目标imu数据包中的测量时间戳与存储的时间偏置之和,确定为每个三维图像拍摄部件当前时刻拍摄的图像的拍摄时间戳。

需要说明的是,由于至少两个三维图像拍摄部件被可移动设备触发后,需要进行曝光一段时间才能拍摄到图像,所以当可移动设备接收到每个三维图像拍摄部件当前时刻拍摄的图像对应的时间要比该图像对应的imu数据包中的测量时间戳对应的时间晚,这两个时间之间的差值即为时间偏置。

可选地,时间偏置可以通过对至少两个三维图像拍摄部件进行外参标定来获得。

步骤(4):可移动设备从获取的imu数据包中,获取测量时间戳处于上一关键帧时刻拍摄的图像的拍摄时间戳与当前时刻拍摄的图像的拍摄时间戳之间的imu测量信息,以得到当前时刻与上一关键帧时刻之间的imu测量信息。

在确定当前时刻与上一关键帧时刻之间的imu预积分测量信息之后,可以根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、当前时刻与上一关键帧时刻之间的imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻可移动设备的系统状态,以及可移动设备的实际重力向量,确定当前时刻可移动设备的系统状态。接下来将分成两个步骤进行说明。

步骤502:确定至少两个第一图像包括的特征点的图像坐标,以及与每个第一图像包括的特征点对应的地图点的三维位置信息,根据至少两个第一图像包括的特征点的图像坐标、与每个第一图像包括的特征点对应的地图点的三维位置信息、存储的每个三维图像拍摄部件包括的第一摄像头的内参,以及每个三维图像拍摄部件相对于imu的旋转平移变换矩阵,构建第一重投影误差约束代价函数。

需要说明的是,至少两个第一图像是指当前时刻至少两个三维图像拍摄部件包括的第一摄像头拍摄的图像。

另外,特征点的图像坐标、与每个第一图像包括的特征点对应的地图点的三维位置信息、存储的每个三维图像拍摄部件包括的第一摄像头的内参,以及每个三维图像拍摄部件相对于imu的旋转平移变换矩阵已在上述步骤401中做过类似说明,本申请实施例对此不再赘述。

再者,第一重投影误差约束代价函数与上述步骤401中的第二重投影误差约束代价函数类似,本申请实施例对此不再赘述。

步骤503:根据当前时刻与上一关键帧时刻之间的imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻可移动设备的系统状态,以及可移动设备的实际重力向量,构建imu运动预测代价函数,系统状态包括可移动设备的位姿信息和速度,以及imu的漂移误差。

需要说明的是,在一种可能实现方式中,imu运动预测代价函数可以通过如下公式二十五至公式二十九,为了方便描述,公式二十五至公式二十九中的i表示上一关键帧时刻,公式中的j表示当前时刻。

公式二十五:

公式二十六:

公式二十七:

公式二十八:

公式二十九:

其中,∑prv为关于p、r和v的协方差矩阵,∑b为关于bg和ba的协方差矩阵,δtij为当前时刻与上一关键帧时刻之间的时长,为上一关键帧时刻陀螺仪的漂移误差,为当前时刻陀螺仪的漂移误差,上一关键帧时刻加速度计的漂移误差,当前时刻加速度计的漂移误差,ri为上一关键帧时刻可移动设备的姿态矩阵,rj为当前时刻可移动设备的姿态矩阵,δri,j为当前时刻与上一关键帧时刻之间的相对姿态增量,为当前时刻与上一关键帧时刻之间的相对姿态增量相对于上一关键帧时刻陀螺仪的漂移误差的雅克比函数,vi为上一关键帧时刻可移动设备的速度,vj为当前时刻可移动设备的速度,δvij为当前时刻与上一关键帧时刻之间的相对速度增量,为当前时刻与上一关键帧时刻之间的相对速度增量相对于上一关键帧时刻陀螺仪的漂移误差的雅克比函数,为当前时刻与上一关键帧时刻之间的相对速度增量相对于上一关键帧时刻加速度计的漂移误差的雅克比函数,pi为上一关键帧时刻可移动设备的位置矩阵,pj为当前时刻可移动设备的位置矩阵,δpij为当前时刻与上一关键帧时刻之间的相对位置增量,为当前时刻与上一关键帧时刻之间的相对位置增量相对于上一关键帧时刻陀螺仪的漂移误差的雅克比函数,为当前时刻与上一关键帧时刻之间的相对位置增量相对于上一关键帧时刻加速度计的漂移误差的雅克比函数。其中rj、vj和pj公式二十五至公式二十九中的未知量。

步骤504:最小化第一重投影误差约束代价函数与imu运动预测代价函数之和,以得到当前时刻可移动设备的系统状态。

需要说明的是,最小化第一重投影误差约束代价函数与imu运动预测代价函数之和可以通过高斯-牛顿迭代法实现,通过该高斯-牛顿迭代法可以确定出当前时刻可移动设备的系统状态。

值得注意的是,可移动设备在对可移动设备的位姿信息进行确定后,可移动设备可以根据该位置信息进行地图的实时更新,以及确定与周围障碍物之间的相对位置等,其中,在确定与周围障碍物之间的相对位置后可以使可移动设备能够有效地避开障碍物进行移动。

进一步地,在步骤504之后,还可以通过如下步骤(1)-步骤(2)来判断至少两个三维图像拍摄部件当前时刻拍摄的图像是否可以作为关键帧图像,从而便于后续对可移动设备的位姿进行更新:

步骤(1):确定可移动设备当前时刻能够追踪到的地图点的比例。

需要说明的是,可移动设备当前时刻能够追踪到的地图点是指可移动设备中至少两个三维图像拍摄部件共同可以追踪到的地图点。也即是,可移动设备当前时刻能够追踪到的地图点的比例是指与至少两个第一图像包括的特征点对应的地图点的总量占至少两个第一图像包括的特征点的总量的比例。

步骤(2):当可移动设备当前时刻能够追踪到的地图点的比例小于比例阈值,或者当前时刻与上一关键帧时刻之间的时长大于时长阈值时,将每个三维图像拍摄部件当前时刻拍摄的图像确定为关键帧图像。

需要说明的是,比例阈值和时长阈值可以预先进行设置,本申请实施例对此不做具体限定。例如,比例阈值可以为75%等,时长阈值可以为2s(秒)等。

更进一步地,由于地图是通过关键帧图像中的特征点来构建的,因此,在确定至少两个三维图像拍摄部件当前时刻拍摄的图像可以作为关键帧图像之后,还可以通过如下步骤a-步骤c对已构建的地图进行更新:

步骤a:根据每个三维图像拍摄部件对应的至少一对特征点的图像坐标、存储的每个第一摄像头的焦距,以及每个三维图像拍摄部件包括的两个摄像头之间的基线距离,确定每个第一图像包括的特征点的深度。

需要说明的是,一对特征点是指一个三维图像拍摄部件包括的两个摄像头当前时刻拍摄的图像中对应同一实物点的两个特征点。

另外,特征点的深度可以是特征点在第一摄像头的相机坐标系中的深度,其中,相机坐标系是以相机光心为原点的三维坐标系。

在一种可能的实现方式中,每个第一图像包括的特征点的深度可以通过如下公式三十来确定,为了方便描述,将以至少两个三维图像拍摄部件中的任一三维图像拍摄部件b为例,对通过公式三十确定第一图像包括的特征点的深度进行说明。其中,三维图像拍摄部件b包括两个摄像头,分别为第一摄像头和第二摄像头,第一摄像头当前时刻拍摄的图像称为第一图像b,第二摄像头当前时刻拍摄的图像称为第二图像b:

公式三十:

其中,d为第一图像b包括的特征点的深度,f为三维图像拍摄部件b中的第一摄像头的焦距,b为三维图像拍摄部件b中两个摄像头之间的基线距离,u为第一图像b中包括的特征点在像素坐标系中u轴方向的坐标,u*第二图像b中包括的特征点在像素坐标系中u轴方向的坐标。f为第一摄像头的焦距,且为第一摄像头的内参中的一个元素,b可以通过对第一个三维图像拍摄部件进行外参标定来获得。

步骤b:根据当前时刻可移动设备的位姿信息、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、每个第一摄像头的内参,以及每个第一图像包括的特征点的图像坐标和深度,确定每个第一图像包括的特征点对应的地图点的三维位置信息。

需要说明的是,在一种可能的实现方式中,每个第一图像包括的特征点对应的地图点的三维位置信息可以通过如下公式三十一来确定,其中,每个第一图像包括的特征点对应的地图点的三维位置信息可以是该地图点的三维世界坐标。为了方便描述,将以至少两个三维图像拍摄部件中的任一三维图像拍摄部件b为例,对通过公式三十一确定每个第一图像包括的特征点对应的地图点的三维位置信息度进行说明。其中,三维图像拍摄部件b包括两个摄像头,分别为第一摄像头和第二摄像头,第一摄像头当前时刻拍摄的图像称为第一图像b:

公式三十一:

其中,um为第一图像b包括的特征点中与已构建的地图中的地图点对应的第m个特征点的在像素坐标系中u轴方向的坐标,vm为第一图像b包括的特征点中与已构建的地图中的地图点对应的第m个特征点的在像素坐标系中v轴方向的坐标,pm为已构建的地图中的地图点中与第一图像b包括的特征点对应的第m个地图点的三维世界坐标,twb为当前时刻可移动设备的位姿矩阵,tbc为三维图像拍摄部件b相对于imu的旋转平移变换矩阵,k-1为三维图像拍摄部件b包括的第一摄像头的内参。其中pm为公式三十一中的未知量。

步骤c:根据每个第一图像包括的特征点对应的地图点的三维位置信息,对已构建的地图进行更新。

需要说明的是,对已构建的地图进行更新可以是将步骤b中确定的每个第一图像包括的特征点对应的地图点的三维位置信息添加到已构建的地图中。

在本申请实施例中,先根据至少两个第一图像包括的特征点的图像坐标、与每个第一图像包括的特征点对应的地图点的三维位置信息、存储的每个三维图像拍摄部件包括的第一摄像头的内参,以及每个三维图像拍摄部件相对于imu的旋转平移变换矩阵,构建第一重投影误差约束代价函数。然后根据当前时刻与上一关键帧时刻之间的imu测量信息,以及imu的相邻两个测量时刻之间的时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息。之后再根据当前时刻与上一关键帧时刻之间imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻可移动设备的系统状态,以及可移动设备的实际重力向量,构建imu运动预测代价函数。由于系统状态包括可移动设备的位姿信息和速度,以及imu的漂移误差,因此,在最小化第一重投影误差约束代价函数与imu运动预测代价函数之和,得到当前时刻可移动设备的系统状态之后,即可确定当前时刻可移动设备的位姿信息。由于本申请实施例是将至少两个三维图像拍摄部件与imu进行联合,以共同对可移动设备的位姿信息进行确定,避免了因三维图像拍摄部件可能无法采集到纹理较为清楚的图像,而导致确定出的位姿信息较为不准确的问题,进而提高了确定位姿信息的准确性。

图6是本申请实施例提供的一种位姿信息确定装置的结构示意图,应用于可移动设备,该可移动设备包括至少两个三维图像拍摄部件和一个惯性测量单元imu。参见图6,该装置包括:第一确定模块601和第二确定模块602。

第一确定模块602,用于根据当前时刻与上一关键帧时刻之间的imu测量信息,以及第一时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息,所述上一关键帧时刻是指每个三维图像拍摄部件最近一次拍摄的能够作为关键帧图像的图像的拍摄时刻,所述第一时长是指所述imu的相邻两个测量时刻之间的时长;

第二确定模块602,用于根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵、所述imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻所述可移动设备的系统状态,以及所述可移动设备的实际重力向量,确定当前时刻所述可移动设备的系统状态,所述至少两个第一图像是指所述至少两个三维图像拍摄部件包括的第一摄像头当前时刻分别拍摄的图像,所述系统状态包括所述可移动设备的位姿信息和速度,以及所述imu的漂移误差。

可选地,第二确定模块602包括:

第一确定子模块,用于确定所述至少两个第一图像包括的特征点的图像坐标,以及与每个第一图像包括的特征点对应的地图点的三维位置信息;

第一构建子模块,用于根据所述至少两个第一图像包括的特征点的图像坐标、与每个第一图像包括的特征点对应的地图点的三维位置信息、存储的每个三维图像拍摄部件包括的第一摄像头的内参,以及每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵,构建第一重投影误差约束代价函数;

第二构建子模块,用于根据所述imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻所述可移动设备的系统状态,以及所述可移动设备的实际重力向量,构建imu运动预测代价函数;

第一最小化运算子模块,用于最小化所述第一重投影误差约束代价函数与所述imu运动预测代价函数之和,以得到当前时刻所述可移动设备的系统状态。

可选地,所述imu包括陀螺仪和加速度计,所述imu测量信息包括所述陀螺仪测量得到的角速度和所述加速度计测量得到的加速度,所述imu预积分测量信息包括相对姿态增量、相对速度增量和相对位置增量;

第一确定模块601包括:

第二确定子模块,用于根据当前时刻与上一关键帧时刻之间所述陀螺仪测量得到的角速度、上一关键帧时刻所述陀螺仪的漂移误差和所述第一时长,确定当前时刻与上一关键帧时刻之间的相对姿态增量,以及上一关键帧时刻与至少一个测量时刻中每个测量时刻之间的相对姿态增量,所述至少一个测量时刻是指当前时刻与上一关键帧时刻之间的测量时刻;

第三确定子模块,用于根据上一关键帧时刻与所述至少一个测量时刻中每个测量时刻之间的相对姿态增量、当前时刻与上一关键帧时刻之间所述加速度计测量得到的加速度、上一关键帧时刻所述加速度计的漂移误差和所述第一时长,确定当前时刻与上一关键帧时刻之间的相对速度增量;

第四确定子模块,用于根据上一关键帧时刻与所述至少一个测量时刻中每个测量时刻之间的相对姿态增量、上一关键帧时刻与所述至少一个测量时刻中每个测量时刻之间的相对速度增量、当前时刻与上一关键帧时刻之间所述加速度计测量得到的加速度、上一关键帧时刻所述加速度计的漂移误差和所述第一时长,确定当前时刻与上一关键帧时刻之间的相对位置增量。

可选地,该装置还包括:

第一获取模块,用于每隔所述第一时长获取一个imu数据包,所述imu数据包至少包括imu测量信息和对应的测量时间戳,其中,每个三维图像拍摄部件每隔第二时长拍摄一次图像,所述第二时长大于所述第一时长,且每隔所述第二时长获取的imu数据包还包括触发累加序号;

第二获取模块,用于当每个三维图像拍摄部件当前时刻拍摄到图像时,确定拍摄累加序号,并根据所述拍摄累加序号从获取的imu数据包中获取目标imu数据包,所述目标imu数据包中的触发累加序号与所述拍摄累加序号相同;

第二确定模块,用于将所述目标imu数据包中的测量时间戳与存储的时间偏置之和,确定为每个三维图像拍摄部件当前时刻拍摄的图像的拍摄时间戳;

第三获取模块,从获取的imu数据包中,获取测量时间戳处于上一关键帧时刻拍摄的图像的拍摄时间戳与当前时刻拍摄的图像的拍摄时间戳之间的imu测量信息,以得到当前时刻与上一关键帧时刻之间的imu测量信息。

可选地,该装置还包括:

第四确定模块,用于确定所述可移动设备当前时刻能够追踪到的地图点的比例,所述比例是指与所述至少两个第一图像包括的特征点对应的地图点的总量占所述至少两个第一图像包括的特征点的总量的比例;

第五确定模块,用于当所述可移动设备当前时刻能够追踪到的地图点的比例小于比例阈值,或者当前时刻与上一关键帧时刻之间的时长大于时长阈值时,将每个三维图像拍摄部件当前时刻拍摄的图像确定为关键帧图像。

可选地,该装置还包括:

第六确定模块,用于根据每个三维图像拍摄部件对应的至少一对特征点的图像坐标、存储的每个第一摄像头的焦距,以及每个三维图像拍摄部件包括的两个摄像头之间的基线距离,确定每个第一图像包括的特征点的深度,一对特征点是指一个三维图像拍摄部件包括的两个摄像头当前时刻拍摄的图像中对应同一实物点的两个特征点;

第七确定模块,用于根据当前时刻所述可移动设备的位姿信息、每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵、每个第一摄像头的内参,以及每个第一图像包括的特征点的图像坐标和深度,确定每个第一图像包括的特征点对应的地图点的三维位置信息;

更新模块,用于根据每个第一图像包括的特征点对应的地图点的三维位置信息,对已构建的地图进行更新。

可选地,该装置还包括:

第八确定模块,用于确定所述可移动设备在n个关键帧时刻的位姿信息,以及所述n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,所述n个关键帧时刻是指每个三维图像拍摄部件在当前时刻之前拍摄的能够作为关键帧图像的图像的拍摄时刻,所述n为大于或等于4的正整数;

第九确定模块,用于根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述n个关键帧时刻中相邻两个关键帧时刻之间的imu预积分测量信息,以及惯性坐标系的重力方向向量,确定所述imu在第n个关键帧时刻的漂移误差和所述可移动设备的实际重力向量;

第十确定模块,用于根据所述可移动设备在第n-1个关键帧时刻的位姿信息、所述可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的imu预积分测量信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和所述imu在第n-1个关键帧时刻测量得到的imu测量信息,确定所述可移动设备在第n个关键帧时刻的速度。

可选地,所述imu包括陀螺仪和加速度计,所述imu测量信息包括所述陀螺仪测量得到的角速度和所述加速度计测量得到的加速度,所述imu预积分测量信息包括相对姿态增量、相对速度增量和相对位置增量;

所述第九确定模块包括:

第三构建子模块,用于根据所述可移动设备在所述n个关键帧时刻的姿态信息和所述n个关键帧时刻中相邻两个关键帧时刻之间的相对姿态增量,构建漂移误差代价函数;

第二最小化运算子模块,用于最小化所述漂移误差代价函数,以得到所述陀螺仪在第n个关键帧时刻的漂移误差;

第五确定子模块,用于根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,以及所述惯性坐标系的重力方向向量,确定所述加速度计在第n个关键帧时刻的漂移误差和所述可移动设备的实际重力向量。

可选地,所述第五确定子模块包括:

第一确定单元,用于根据所述可移动设备在所述n个关键帧时刻的位姿信息、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长,以及所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定所述可移动设备的估计重力向量;

第二确定单元,用于根据所述可移动设备的估计重力向量和所述惯性坐标系的重力方向向量,确定所述惯性坐标系到世界坐标系的旋转变换矩阵;

第三确定单元,用于根据所述惯性坐标系到世界坐标系的旋转变换矩阵、所述惯性坐标系的重力方向向量、所述n个关键帧时刻中相邻两个关键帧时刻之间的时长、所述可移动设备在所述n个关键帧时刻的位姿信息,以及所述n个关键帧时刻中相邻两个关键帧时刻之间的相对位置增量和相对速度增量,确定所述加速度计在第n个关键帧时刻的漂移误差和所述可移动设备的重力方向修正量;

第四确定单元,用于根据所述可移动设备的重力方向修正量、所述惯性坐标系到世界坐标系的旋转变换矩阵和所述惯性坐标系的重力方向向量,确定所述可移动设备的实际重力向量。

可选地,所述第十确定模块包括:

第六确定子模块,用于根据所述可移动设备在第n-1个关键帧时刻的位姿信息、第n-1个关键帧时刻与第n-2个关键帧时刻之间的时长、所述可移动设备的实际重力向量、第n-1个关键帧时刻与第n-2个关键帧时刻之间的相对位置增量,确定所述可移动设备在第n-1个关键帧时刻的速度;

第七确定子模块,用于根据所述可移动设备在第n-1个关键帧时刻的速度、第n-1个关键帧时刻与第n个关键帧时刻之间的时长和所述加速度计在第n-1个关键帧时刻测量得到的加速度,确定所述可移动设备在第n个关键帧时刻的速度。

可选地,所述第八确定模块包括:

第四构建子模块,用于对于所述n个关键帧时刻中的任一关键帧时刻a,根据所述关键帧时刻a对应的初始关键帧图像包括的特征点的图像坐标、与所述关键帧时刻a对应的初始关键帧图像包括的特征点对应的地图点的三维位置信息、存储的每个第一摄像头的内参,以及每个三维图像拍摄部件相对于所述imu的旋转平移变换矩阵,构建第二重投影误差约束代价函数,所述关键帧时刻a对应的初始关键帧图像是指所述至少两个三维图像拍摄部件包括的第一摄像头在所述关键帧时刻a分别拍摄的图像;

第三最小化运算子模块,用于最小化所述第二重投影误差约束代价函数,以得到所述可移动设备在所述关键帧时刻a的位姿信息。

在本申请实施例中,先根据当前时刻与上一关键帧时刻之间的imu测量信息,以及imu的相邻两个测量时刻之间的时长,确定当前时刻与上一关键帧时刻之间的imu预积分测量信息。然后根据至少两个第一图像、存储的每个三维图像拍摄部件包括的第一摄像头的内参、每个三维图像拍摄部件相对于imu的旋转平移变换矩阵、该imu预积分测量信息、当前时刻与上一关键帧时刻之间的时长、存储的上一关键帧时刻该可移动设备的系统状态,以及该可移动设备的实际重力向量,确定当前时刻该可移动设备的系统状态。由于系统状态包括可移动设备的位姿信息和速度,以及imu的漂移误差,因此,在确定当前时刻可移动设备的系统状态之后,即可确定当前时刻可移动设备的位姿信息。由于本申请实施例是将至少两个三维图像拍摄部件与imu进行联合,以共同对可移动设备的位姿信息进行确定,避免了因三维图像拍摄部件可能无法采集到纹理较为清楚的图像,而导致确定出的位姿信息较为不准确的问题,进而提高了确定位姿信息的准确性。

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

图7是本申请实施例提供的一种可移动设备的结构示意图,该可移动设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)701和一个或一个以上的存储器702,其中,所述存储器702中存储有至少一条指令,所述至少一条指令由该处理器701加载并执行,以实现上述实施例中位姿信息确定方法。当然,该可移动设备700还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该可移动设备700还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由可移动设备中的处理器执行以完成上述实施例中位姿信息确定方法。例如,所述计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

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

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

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