栅格地图生成方法、装置、系统、存储介质及电子设备与流程

文档序号:27832835发布日期:2021-12-07 22:44阅读:107来源:国知局
栅格地图生成方法、装置、系统、存储介质及电子设备与流程

1.本技术涉及机器人视觉领域,特别的涉及一种栅格地图生成方法、装置、系统、存储介质及电子设备。


背景技术:

2.随着科技的快速发展,越来越多的行业视野中开始出现便于向用户提供服务的机器人。机器人可通过自身携带的传感器感知外部信息,并同时进行定位和建立栅格地图的过程,其中传统的视觉技术使用摄像头作为传感器,利用图像特征点(如orb,sift等等)计算图像之间的匹配关系,并通过将这些特征点投影到二维平面建立地图。
3.然而在现有机器人构建的栅格地图过程中,当机器人经过爬坡等移动场景时易使数据产生较大误差,进而降低栅格地图的精度,影响了用户对机器人的使用体验。


技术实现要素:

4.本技术实施例提供了一种栅格地图生成方法、装置、系统、存储介质及电子设备,可在机器人经过爬坡等移动场景时减少二维点云数据的误差,以便于保障生成的栅格地图的精确性。
5.第一方面,本技术实施例提供了一种栅格地图生成方法,包括:
6.获取多个位置各自对应的三维位姿数据;
7.获取每个三维位姿数据对应的二维点云数据;
8.根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图。
9.第二方面,本技术实施例提供了一种栅格地图生成装置,包括:
10.第一获取模块,用于获取多个位置各自对应的三维位姿数据;
11.第二获取模块,用于获取每个所述位姿数据对应的二维点云数据;
12.第一处理模块,用于根据每个所述三维位姿数据以及与所述三维位姿数据对应的二维点云数据生成栅格地图。
13.第三方面,本技术实施例提供了一种电子设备,包括处理器以及存储器;
14.处理器与存储器相连;
15.存储器,用于存储可执行程序代码;
16.处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行本技术实施例第一方面或第一方面的任意一种实现方式提供的栅格地图生成方法。
17.第四方面,本技术实施例提供了一种栅格地图生成系统,包括:
18.第一采集单元,用于获取多个位置各自对应的三维位姿数据;
19.第二采集单元,用于获取每个所述三维位姿数据对应的二维点云数据;
20.处理单元,用于根据每个所述三维位姿数据以及与所述三维位姿数据对应的二维点云数据生成栅格地图。
21.第五方面,本技术实施例还提供了一种栅格地图生成系统,包括:
22.电机编码器,用于获取多个位置各自对应的三维位姿数据;
23.激光雷达,用于获取每个所述三维位姿数据对应的二维点云数据;
24.处理器,用于根据每个所述三维位姿数据以及与所述三维位姿数据对应的二维点云数据生成栅格地图。
25.第六方面,本技术实施例提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,可实现本技术实施例第一方面或第一方面的任意一种实现方式提供的栅格地图生成方法。
26.在本技术实施例中,获取多个位置各自对应的三维位姿数据,获取每个三维位姿数据对应的二维点云数据,并根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图。可在构建栅格地图的过程中利用三维位姿数据减少二维点云数据在不同方向的精度损失,以提升栅格地图的准确性和稳定性,给用户带来更好的使用体验。
附图说明
27.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
28.图1为本技术实施例提供的一种栅格地图生成系统的架构示意图;
29.图2为本技术实施例提供的一种基于栅格地图生成系统的足式机器人结构示意图;
30.图3为本技术实施例提供的一种栅格地图生成方法的流程示意图;
31.图4为本技术实施例提供的一种坐标系旋转角度示意图;
32.图5为本技术实施例提供的又一种栅格地图生成方法的流程示意图;
33.图6为本技术实施例提供的一种运动轨迹优化处理示意图;
34.图7为本技术实施例提供的又一种栅格地图生成方法的流程示意图;
35.图8为本技术实施例提供的又一种栅格地图生成方法的流程示意图;
36.图9为本技术实施例提供的一种栅格地图生成装置的结构示意图;
37.图10为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
38.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
39.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
40.请参阅图1,图1示出了本技术实施例提供的一种栅格地图生成系统的架构示意图。
41.如图1所示,该栅格地图生成系统至少可以包括第一采集单元101、第二采集单元102以及处理单元103,其中:
42.第一采集单元101可获取多个位置各自对应的三维位姿数据,每个三维位姿数据包括对应位置在坐标系下的坐标以及姿态角。其中,每个位置所处的坐标系在应用该栅格地图生成系统100的执行体中各不相同,此处以应用该栅格地图生成系统100为足式机器人为例,第一采集单元101可基于电机编码器获取每个位置在足式机器人坐标系下的三维坐标以及对应的姿态角,该足式机器人坐标系可理解为以足式机器人某固定位置为原点建立的三维直角坐标系,也即是说获取的每个位置对应的位姿数据可表示为(x,y,z,θ),x可表示位置在足式机器人坐标系中x轴上的数值,y可表示位置在足式机器人坐标系中y轴上的数值,z可表示位置在足式机器人坐标系中z轴上的数值,θ可表示位置在足式机器人坐标系下的姿态角。此处提到的足式机器人某固定位置可以但不局限于为足式机器人的任意一个足底中心点,本实施例不限定于此。
43.需要说明的是,基于电机编码器直接获取的姿态角误差较大,本技术实施例还可通过惯性传感器对姿态角进行校正,例如可通过加速度传感器、陀螺仪传感器以及磁力传感器对姿态角进行校正,计算得到每一个位置对应的姿态角可表示为(roll,pitch,yaw),roll可表示当前位置围绕x轴旋转的角度(也可称为俯仰角),pitch可表示当前位置围绕y轴旋转的角度(也可称为偏航角),yaw可表示当前位置围绕z轴旋转的角度(也可称为翻滚角),基于此获取的每一个位置对应的三维位姿数据还可表示为(x,y,z,roll,pitch,yaw)。
44.还可以理解的是,第一采集单元101可基于预设时段获取该多个位置各自对应的三维位姿数据,其中预设时段可划分为多个时间戳,每一个时间戳可对应有一个位置以及相应的三维位姿数据,以保障多个位置对应的三维位姿数据的有效性和实时性。例如,以预设时段为以当前时刻到当前时刻的下一秒为例,该一秒内可划分为10个时间戳,每个时间戳对应的时间为0.1秒,也即是说第一采集单元101可基于该预设时段每隔0.1秒获取一个位置所对应的三维位姿数据。
45.第二采集单元102可获取与每个三维位姿数据对应的二维点云数据,也可以理解为每个位置可对应有三维位姿数据以及二维点云数据。其中,二维点云数据可基于激光雷达获取,每帧二维点云数据所包括的点可基于雷达坐标系进行表示。具体地,以雷达坐标系为激光雷达中心作为原点建立的二维直角坐标系为例,每帧二维点云数据所包括的点均为在雷达坐标系下的坐标,例如可表示为(x,y)。可以理解的是,参照上述以应用该地图生成系统100的执行体为足式机器人为例,雷达坐标系与足式机器人坐标系不为同一个坐标系,两个坐标系之间存在有偏移量,也即各坐标系原点位置的不同以及各坐标系中任意相邻轴所在平面的夹角不同。
46.还可以理解的是,第二采集单元102也可参照上述提到的在预设时段内获取与多个位置各自对应的二维点云数据,其中预设时段可划分为多个时间戳,每一个时间戳可对应有一个位置以及相应的二维点云数据。例如,以预设时段为以当前时刻到当前时刻的下一秒为例,该一秒内可划分为10个时间戳,每个时间戳对应的时间为0.1秒,也即是说第二采集单元102可基于该预设时段每隔0.1秒获取一个位置所对应的二维点云数据。
47.处理单元103可根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图,其中,处理单元103可根据每个三维位姿数据生成相应的运动轨迹,并结合
对该运动轨迹的处理,根据与处理后的运动轨迹中包括的每个三维位姿数据所对应的二维点云数据生成地图。
48.此处以将该地图生成系统作为足式机器人的栅格地图组成部分为例,请参阅图2示出的本技术实施例提供的一种基于栅格地图生成系统的足式机器人结构示意图。
49.如图2所示,该足式机器人200至少可以包括激光雷达201、电机编码器202、处理器203、机器人关节204以及电源205,其中:
50.激光雷达201可在预设时段内获取每帧雷达数据的时间戳以及获取每个时间戳在雷达坐标系下的二维点云数据,其中每帧雷达数据的时间戳可理解为该激光雷达在预设时段内的数据采集频率,例如在预设时段当前时刻与当前时刻下一秒内获取10帧雷达数据,每一帧雷达数据对应的时间戳为0.1秒,也即可理解为获取在预设时段内每隔0.1秒在雷达坐标系下的二维点云数据。
51.可以理解的是,本实施例中激光雷达201可为单线激光雷达,其获取的二维点云数据可表示为(x,y)。
52.电机编码器202可获取对应于上述激光雷达201提到的每个时间戳在足式机器人坐标系下的三维位姿数据,例如参照上述提到的在预设时段当前时刻与当前时刻下一秒内获取10帧雷达数据,电机编码器202获取每隔0.1秒在足式机器人坐标系下的三维位姿数据。可以理解的是,电机编码器202获取的每个三维位姿数据可表示为(x,y,z,θ)。
53.此外,本实施例中的电机编码器202还可替换为电机编码器和惯性传感器,由于电机编码器获取的姿态角误差较大,可引入惯性传感器对电机编码器获取的姿态角进行校正,并通过卡尔曼滤波得到的三维位姿数据可表示为(x,y,z,roll,pitch,yaw)。
54.处理器203可根据电机编码器202获取的多个三维位姿数据与每个三维位姿数据对应的二维点云数据生成点云栅格地图,并结合足式机器人获取的操作指令控制机器人关节204转动。例如,处理器203在生成点云栅格地图之后可将该点云栅格地图发送至足式机器人控制终端,接收由该足式机器人控制终端发送的操作指令,并根据操作指令控制机器人关节204进行前进或后退等操作。
55.电源205可用于分别向激光雷达201、电机编码器202、处理器203以及机器人关节204供电。
56.需要说明的是,本技术提出的栅格地图生成系统可不局限于应用在上述提到的足式机器人领域,例如还可应用在自动驾驶领域或视觉分析领域,且接下来本技术将以足式机器人作为执行体对栅格地图生成方法进行详细说明。
57.请参阅图3,图3示出了本技术实施例提供的一种栅格地图生成方法的流程示意图。
58.如图3所示,该栅格地图生成方法至少包括以下步骤:
59.步骤301、获取多个位置各自对应的三维位姿数据。
60.具体地,足式机器人可基于电机编码器获取多个位置在足式机器人坐标系下的三维位姿数据,该足式机器人坐标系可为以足式机器人某固定位置为原点建立的三维直角坐标系。其中,每个三维位姿数据可包括相应位置对应在足式机器人坐标系下的坐标以及姿态角,例如但不局限于表示为(x1,y1,z1,θ),该x1、y1以及z1可理解为相应位置在足式机器人坐标系中x轴、y轴以及z轴分别对应的数值,该姿态角θ可理解为相应位置相较于足式机
器人坐标系转动的角度。可以理解的是,本实施例中多个位置可为足式机器人在行进路线中遍历过的多个位置,例如但不局限于在足式机器人历史行进路线中包括的多个位置或在足式机器人实时行进路线中包括的多个位置。另,此处提到的足式机器人某固定位置可以但不局限于为足式机器人的任意一个足底中心点,本实施例不限定于此。
61.需要说明的是,基于电机编码器直接获取的姿态角误差较大,本技术实施例还可通过惯性传感器对姿态角进行校正,例如可通过加速度传感器、陀螺仪传感器以及磁力传感器对姿态角进行校正,计算得到每一个位置对应的姿态角可表示为(roll,pitch,yaw),roll可表示当前位置围绕x轴旋转的角度(也可称为俯仰角),pitch可表示当前位置围绕y轴旋转的角度(也可称为偏航角),yaw可表示当前位置围绕z轴旋转的角度(也可称为翻滚角),基于此获取的每一个位置对应的三维位姿数据还可表示为(x1,y1,z1,roll,pitch,yaw)。
62.步骤302、获取每个三维位姿数据对应的二维点云数据。
63.具体地,足式机器人可基于单线激光雷达获取与每个三维位姿数据对应的二维点云数据,该二维点云数据可包括多个基于雷达坐标系生成的点的坐标。其中,雷达坐标系可为以单线激光雷达中心作为原点建立的二维直角坐标系,二维点云数据中包括的每个点在雷达坐标系中可表示为(x2,y2),该x2以及y2可理解为二维点云数据中每个点在雷达坐标系中x轴以及y轴分别对应的数值。可以理解的是,雷达坐标系与上述提到的足式机器人坐标系不为同一个坐标系,两个坐标系之间存在有偏移量,也即各坐标系原点位置的不同以及各坐标系中x轴与y轴所在平面的夹角不同。
64.步骤303、根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图。
65.具体地,足式机器人在分别获取每个三维位姿数据以及与每个三维位姿数据对应的二维点云数据之后,可根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成点云栅格地图。
66.可以理解的是,在根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成点云栅格地图时,可对每个二维点云数据进行栅格化处理(也可以理解为网格化处理)。其中,该栅格化处理可为将每个二维点云数据中包括的所有点的坐标应用在规则划分的多个栅格点云中,每个栅格点云可包括有多个二维点云数据中的点。进一步的,在将每个二维点云数据中包括的所有点应用在规则划分的多个栅格点云之后,根据该多个包括有每个二维点云数据中所有点的多个栅格点云生成点云栅格地图。
67.在本技术实施例中,可在构建栅格地图的过程中利用三维位姿数据减少二维点云数据在不同方向的精度损失,以提升栅格地图的准确性和稳定性,给用户带来更好的使用体验。
68.作为本技术的一个实施例,每帧二维点云数据对应一个时间戳;
69.获取多个位置各自对应的三维位姿数据,包括:
70.在预设时段内获取多个位置各自对应的三维位姿数据;每个三维位姿数据分别对应一个时间戳;
71.获取每个三维位姿数据对应的二维点云数据,包括:
72.获取与每个三维位姿数据的时间戳一致的二维点云数据。
73.具体地,足式机器人可在预设时段内采集多帧三维位姿数据,每帧三维位姿数据可对应一个位置,且每帧三维位姿数据在该预设时段内对应有一个时间戳。其中,多个位置可为多帧三维位姿数据各自对应的多个位置中的部分或全部,例如以足式机器人在预设时段当前时刻与当前时刻下一秒内采集10帧位姿数据为例,多个位置可为10帧三维位姿数据各自对应的10个位置中部分或全部的位置,作为优选的可将10个位置全部作为多个位置,以提高数据处理效率。
74.进一步的,足式机器人在确定与多个位置各自对应的三维位姿数据的时间戳之后,可基于激光雷达获取与每个三维位姿数据的时间戳一致的二维点云数据。
75.可以理解的是,足式机器人可在预设时段内获取多个位置各自对应的三维位姿数据之前,先确定三维位姿数据的采集频率,也即确定每帧三维位姿数据对应的时间戳,进而可在预设时段内确定多个位置,以及获取与多个位置各自对应的三维位姿数据。
76.需要说明的是,本实施例可不局限于先确定三维位姿数据的采集频率,例如还可先确定激光雷达的采集频率,根据激光雷达的采集频率确定每帧二维点云数据对应的时间戳,并根据该每帧二维点云数据对应的时间戳获取在预设时段内多个位置各自对应的三维位姿数据,其中每个位置数据对应的时间戳与该每帧二维点云数据对应的时间戳一致。
77.在本技术实施例中,可通过在获取三维位姿数据之前确定每帧三维位姿数据对应的时间戳,并基于每帧三维位姿数据对应的时间戳获取与时间戳一致的二维点云数据,以使获取的三维位姿数据与二维点云数据在时间戳上存在对应关系,保障了生成的点云栅格地图的稳定性。
78.作为本技术的又一个实施例,在预设时段内获取多个位置各自对应的三维位姿数据之后,根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图之前,还包括:
79.将每个三维位姿数据转换为基于世界坐标系生成的三维位姿数据;
80.根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图,包括:
81.根据每个基于世界坐标系生成的三维位姿数据以及与基于世界坐标系生成的三维位姿数据对应的二维点云数据生成栅格地图。
82.具体地,足式机器人在根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成地图之前,可将基于足式机器人坐标系生成的多个位置各自对应的三维位姿数据转换为基于世界坐标系生成的三维位姿数据。其中,足式机器人坐标系可为足式机器人以某固定位置作为原点建立的三维直角坐标系,世界坐标系可为足式机器人以所在平面某固定位置作为原点建立的三维直角坐标系。可以理解的是,本实施例中足式机器人坐标系以及世界坐标系各自对应的原点可由足式机器人程序默认设定或由操作人员人工设定。
83.以某一位置对应的三维位姿数据在足式机器人坐标系下生成的坐标为(x,y,z,roll,pitch,yaw)为例,可基于如下公式(1)得到该位置在世界坐标系下的坐标(x,y,z):
[0084][0085]
其中,r为旋转矩阵,t为足式机器人坐标系的原点在世界坐标系中对应的坐标所
表示的平移矩阵。
[0086]
此处由于该位置在足式机器人坐标系下生成的坐标受x轴、y轴以及z轴三个方向上的分量共同控制,因此旋转矩阵r可通过如下公式(2)

(5)得到:
[0087]
r=r1
×
r2
×
r3
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0088][0089][0090][0091]
其中,公式(3)中的α可为足式机器人坐标系对应的y轴与z轴所在平面与世界坐标系对应的y轴与z轴所在平面的夹角,具体可参阅图4示出的本技术实施例提供的一种坐标系旋转角度示意图中a所对应的旋转角度示意图。公式(4)中的β可为足式机器人坐标系对应的x轴与z轴所在平面与世界坐标系对应的x轴与z轴所在平面的夹角,具体可参阅图4示出的本技术实施例提供的一种坐标系旋转角度示意图中b所对应的旋转角度示意图。公式(5)中的γ可为足式机器人坐标系对应的y轴与x轴所在平面与世界坐标系对应的y轴与x轴所在平面的夹角,具体可参阅图4示出的本技术实施例提供的一种坐标系旋转角度示意图中c所对应的旋转角度示意图。
[0092]
需要说明的是,每个位置对应的足式机器人坐标系对应在世界坐标系中的原点位置不同以及各坐标系中任意相邻轴所在平面的夹角不同,也即每个位置对应的三维位姿数据在转换为世界坐标系的过程中对应的旋转矩阵r以及平移矩阵t各不相同。
[0093]
可以理解的是,上述提到的足式机器人坐标系与世界坐标系之间的转换可基于编辑代码实现,例如但不局限于python代码,此处不过多赘述。
[0094]
在本技术实施例中,将多个位置各自对应的三维位姿数据进行坐标系转换,以便于提高对三维位姿数据的处理效率,进而在保障点云栅格地图的精确性同时提高整体数据处理效率。
[0095]
作为本技术的又一个实施例,可参阅图5示出的本技术实施例提供的又一种栅格地图生成方法的流程示意图。
[0096]
如图5所示,该栅格地图生成方法至少包括以下步骤:
[0097]
步骤501、获取多个位置各自对应的三维位姿数据。
[0098]
具体地,步骤501与步骤301一致,此处不再赘述。
[0099]
步骤502、获取每个三维位姿数据对应的二维点云数据。
[0100]
具体地,步骤502与步骤301一致,此处不再赘述。
[0101]
步骤503、将每个三维位姿数据转换为基于世界坐标系生成的三维位姿数据。
[0102]
具体地,步骤503可参照上述提到的实施例,此处不过多赘述。
[0103]
步骤504、根据多个基于世界坐标系生成的三维位姿数据生成在预设时段内的运
动轨迹。
[0104]
具体地,足式机器人可在获取在预设时段内的多个位置各自对应的三维位姿数据,并将每个三维位姿数据转换为基于世界坐标系生成的三维位姿数据之后,例如可根据该多个基于世界坐标系生成的三维位姿数据在世界坐标系中各自对应的多个坐标点,通过相邻坐标点连线的方式在世界坐标系中生成在预设时段内的运动轨迹。
[0105]
可以理解的是,本技术可不局限于上述通过坐标点相连的方式生成在预设时段内的运动轨迹,例如还可通过其他模型建立运动轨迹。
[0106]
步骤505、对运动轨迹进行回环检测。
[0107]
具体地,足式机器人在确定多个位置中第一个位置对应的三维位姿数据之后,可通过递推计算出后续每个位置对应的三维位姿数据,但后续计算出的每个位置对应的三维位姿数据都会存在误差,且相邻两个位置对应的三维位姿数据的误差会累加到下个位置对应的三维位姿数据的误差。
[0108]
基于此,本实施例中足式机器人为了消除三维位姿数据的误差,可对预设时段内的运动轨迹进行回环检测,该方式可理解为检测该运动轨迹是否存在回环轨迹(也即该运动轨迹是否存在相同的两个位置)。需要注意的是,运动轨迹中相同的两个位置不一定局限于第一个位置和最后一个位置,也即是说运动轨迹可为在运动过程中出现回环轨迹且其最后一个位置不与第一个位置相同。
[0109]
需要说明的是,此处本实施例对运动轨迹采用回环检测的方式可为将该运动轨迹输入至词袋模型,将对应运动轨迹的词袋向量与利用逆序索引获取的具有回环检测向量进行相似度计算,将相似度最高的最为回环对,并对该回环对进行验证,校验是否为正确的回环。当然,本技术实施例还可采用其他视觉算法对运动轨迹进行回环检测。
[0110]
步骤506、若回环检测结果为存在回环,则对运动轨迹进行非线性处理,得到优化运动轨迹。
[0111]
具体地,足式机器人若检测到运动轨迹的回环检测结果为回环,则表明该运动轨迹中存在回环轨迹,则可该运动轨迹进行非线性处理优化,得到优化后的运动轨迹。其中,优化后的运动轨迹相较于进行回环检测的运动轨迹更加平滑,误差更小,且优化后的运动轨迹所对应的多个位置的数量小于或等于进行回环检测的运动轨迹所对应的多个位置的数量。
[0112]
此处可参阅图6示出的本技术实施例提供的一种运动轨迹优化处理示意图。如图6中6a所示的检测到回环的运动轨迹,其第一个位置与最后一个位置重合,若以位置a作为第一个位置,该运动轨迹可按照轨迹顺序依次包括位置a、位置a、位置b、位置b、位置c、位置d、位置c、位置d、位置e、位置e、位置f、位置g、位置a。图6中6b所示为对6a中运动轨迹进行优化后的运动轨迹,该优化后的运动轨迹可按照轨迹顺序依次包括位置a、位置b。位置c、位置d以及位置e。可以理解的是,6b所示的优化后的运动轨迹相较于6a所示的运动轨迹可消除位置a、位置b、位置c、位置d、位置e以及位置f给运动轨迹带来的误差影响。
[0113]
步骤507、根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据生成栅格地图。
[0114]
具体地,足式机器人可在得到优化运动轨迹之后,重新确定优化运动轨迹所对应的多个三维位姿数据,并根据该每个三维位姿数据所对应的二维点云数据生成点云栅格地
图。
[0115]
在本技术实施例中,可对每个三维位姿数据生成的运动轨迹进行回环检测,在检测到回环的情况下对该运动轨迹进行优化,以筛除运动轨迹中误差较大的三维位姿数据,进一步保障生成的点云栅格地图的精确性。
[0116]
作为本技术的又一个实施例,二维点云数据基于雷达坐标系生成;
[0117]
根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据生成栅格地图,包括:
[0118]
将根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据转换为基于世界坐标系生成的二维点云数据;
[0119]
根据每个基于世界坐标系生成的二维点云数据生成栅格地图。
[0120]
具体地,足式机器人可将每个基于雷达坐标系生成的二维点云数据转换为基于世界坐标系生成的二维点云数据,以使根据基于世界坐标系生成的二维点云数据生成的点云栅格地图应用在世界坐标系下,此处基于世界坐标系生成的坐标数据在足式机器人运动过程中保持固定,可保障生成的点云栅格地图适用性更强。需要注意的是,在足式机器人运动过程中每帧二维点云数据所对应的雷达坐标系的位置在发送变化(也可理解为每帧二维点云数据对应的雷达坐标系的原点以及坐标轴均发生改变),若根据基于雷达坐标系生成的二维点云数据生成点云栅格地图,易导致点云栅格地图的精确性不高。
[0121]
还需要说明的是,此处世界坐标系可为以足式机器人以所在平面某固定位置作为原点建立的二维直角坐标系,其对应的x轴、y轴所在平面可为上述提到的将每个三维位姿数据转换为基于世界坐标系生成的三维位姿数据中的世界坐标系对应的x轴、y轴所在平面。
[0122]
可以理解的是,每帧二维点云数据对应的雷达坐标系与世界坐标系的旋转矩阵以及偏移矩阵不一致,基于此需先对每帧二维点云数据对应的旋转矩阵以及偏移矩阵进行计算,其次再分别得到每帧二维点云数据转换为基于世界坐标系的二维点云数据。
[0123]
在本技术实施例中,可对二维点云数据进行坐标系转换,以使转换后的二维点云数据所生成的点云栅格地图适用性更广,进而提高用户的多元化使用体验。
[0124]
作为本技术的又一个实施例,对运动轨迹进行回环检测之后,还包括:
[0125]
若回环检测结果为不存在回环,则根据每个与运动轨迹对应的三维位姿数据所对应的二维点云数据生成栅格地图。
[0126]
具体地,足式机器人若检测到运动轨迹的回环检测结果为不存在回环,则表明运动轨迹中没有回环轨迹,例如该运动轨迹为直线轨迹或不回环曲线轨迹。此处以运动轨迹为直线轨迹为例,在公知技术中可知直线轨迹中各个位置的三维位姿变化量较小(仅存在对应坐标数值的改变),其相邻的两个位置之间的位姿误差较小,因此可直接根据每个与运动轨迹对应的三维位姿数据所对应的二维点云数据生成点云栅格地图。
[0127]
在本技术实施例中,当运动轨迹未检测出回环时,可将运动轨迹视为常规线性轨迹,在误差较小的情况下可直接根据与每个三维位姿数据对应的二维点云数据生成点云栅格地图,以提高点云栅格地图的整体生成效率。
[0128]
作为本技术的又一个实施例,可参阅图7示出的本技术实施例提供的又一种栅格地图生成方法的流程示意图。
[0129]
如图7所示,该栅格地图生成方法至少包括以下步骤:
[0130]
步骤701、获取多个位置各自对应的三维位姿数据。
[0131]
具体地,步骤701与步骤501、步骤301一致,此处不再赘述。
[0132]
步骤702、获取每个三维位姿数据对应的二维点云数据。
[0133]
具体地,步骤702与步骤502、步骤301一致,此处不再赘述。
[0134]
步骤703、将每个三维位姿数据转换为基于世界坐标系生成的三维位姿数据。
[0135]
具体地,步骤703与步骤503一致,此处不再赘述。
[0136]
步骤704、根据多个基于世界坐标系生成的三维位姿数据生成在预设时段内的运动轨迹。
[0137]
具体地,步骤704与步骤504一致,此处不再赘述。
[0138]
步骤705、对运动轨迹进行回环检测。
[0139]
具体地,步骤705与步骤505一致,此处不再赘述。
[0140]
步骤706、若回环检测结果为不存在回环,则在对应于预设时段的下一时段内获取多个位置各自对应的三维位姿数据。
[0141]
具体地,足式机器人若检测到运动轨迹的回环检测结果为不存在回环,还可确定对应于预设时段的下一时段,并在下一时段内获取每一个时间戳对应的三维位姿数据。其中,下一时段可为与预设时段时长相等且与预设时段相邻的时段,例如以预设时段为0

10秒,每一帧三维位姿数据对应的时间戳为0.1秒为例,则可确定下一时段为10

20秒,在下一时段内每一帧三维位姿数据对应的时间戳也为0.1秒。
[0142]
可以理解的是,在预设时段内的运动轨迹可能不存在回环轨迹,但仍存在误差较大的三维位姿数据,根据该预设时段内对应的二维点云数据所生成的点云地图精确性不高。基于此,本实施例可获取对应于该预设时段的下一时段的多个三维位姿数据,并对该下一时段对应的运动轨迹进行回环检测。
[0143]
步骤707、将下一时段内获取的多个位置各自对应的三维位姿数据转换为多个基于世界坐标系生成的三维位姿数据。
[0144]
具体地,足式机器人可将下一时段内基于足式机器人坐标系生成的多个位置各自对应的三维位姿数据转换为基于世界坐标系生成的三维位姿数据。其中,足式机器人坐标系可为足式机器人以某固定位置作为原点建立的三维直角坐标系,世界坐标系可为足式机器人以所在平面某固定位置作为原点建立的三维直角坐标系。可以理解的是,本实施例中足式机器人坐标系以及世界坐标系各自对应的原点可由足式机器人程序默认设定或由操作人员人工设定。
[0145]
需要说明的是,每个位置对应的足式机器人坐标系对应在世界坐标系中的原点位置不同以及各坐标系中任意相邻轴所在平面的夹角不同,也即每个位置对应的三维位姿数据在转换为世界坐标系的过程中对应的旋转矩阵r以及平移矩阵t各不相同。
[0146]
可以理解的是,上述提到的足式机器人坐标系与世界坐标系之间的转换可基于编辑代码实现,例如但不局限于python代码,此处不过多赘述。
[0147]
步骤708、根据每个基于世界坐标系生成的三维位姿数据生成下一时段内的运动轨迹,并对下一时段内的运动轨迹进行回环检测。
[0148]
具体地,足式机器人在获取在下一时段内的多个位置各自对应的三维位姿数据,
并将每个三维位姿数据转换为基于世界坐标系生成的三维位姿数据之后,可根据该每个基于世界坐标系生成的三维位姿数据在世界坐标系中各自对应的多个坐标点,通过相邻坐标点连线的方式在世界坐标系中生成在下一时段内的运动轨迹。
[0149]
可以理解的是,本技术可不局限于上述对下一时段内的运动轨迹进行回环检测,例如还可在根据多个基于世界坐标系生成的三维位姿数据生成下一时段内的运动轨迹之后,对预设时段与下一时段所组成的运动轨迹进行回环检测。
[0150]
进一步的,足式机器人若检测到下一时段内的运动轨迹存在回环,则可对该运动轨迹进行非线性优化,并根据优化的运动轨迹中对应的多个三维位姿数据以及与该多个三维位姿数据各自对应的二维点云数据生成点云栅格地图。
[0151]
进一步的,足式机器人若检测到下一时段内的运动轨迹不存在回环,则可继续确定对应于下一时段内的时段,在该时段内获取多个位置各自对应的三维位姿数据以及生成对应的运动轨迹,并对该时段内对应的运动轨迹继续进行回环检测,直至在运动轨迹中检测到存在回环。需要注意的是,当足式机器人在某一时段检测到存在回环时,则可对该运动轨迹进行非线性优化,并根据优化的运动轨迹中对应的多个三维位姿数据以及与该多个三维位姿数据各自对应的二维点云数据生成点云栅格地图。
[0152]
在本技术实施例中,当运动轨迹未检测到回环时,还可基于预设时段获取对应下一时段内的三维位姿数据以及相应的运动轨迹,并继续对下一时段内的运动轨迹进行回环检测,直至存在回环再根据对应的二维点云数据生成点云栅格地图,以使生成的点云栅格地图在对运动轨迹的非线性处理下精确性更高。
[0153]
作为本技术的又一个实施例,可参阅图8示出的本技术实施例提供的又一种栅格地图生成方法的流程示意图。
[0154]
如图8所示,该栅格地图生成方法至少包括以下步骤:
[0155]
步骤801、获取在预设时段内每帧三维位姿数据的时间戳。
[0156]
步骤802、根据时间戳获取多个位置各自对应的三维位姿数据。
[0157]
步骤803、获取与每个三维位姿数据的时间戳一致的二维点云数据。
[0158]
步骤804、对根据多个位置对应的三维位姿数据生成的运动轨迹进行回环检测。
[0159]
步骤805、判断运动轨迹是否存在回环,若是则进入步骤907,若否则进入步骤802。
[0160]
步骤806、对运动轨迹进行非线性处理,得到优化运动轨迹。
[0161]
步骤807、根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据生成地图。
[0162]
具体地,足式机器人可获取在预设时段内每帧三维位姿数据的时间戳,并根据时间戳获取多个位置对应的三维位姿数据以及与每个三维位姿数据的时间戳一致的二维点云数据。可以理解的是,本技术实施例可不局限于获取在预设时段内每帧三维位姿数据的时间戳,例如还可为在预设时段内每帧二维点云数据的时间戳。进一步的,足式机器人可根据多个位置各自对应的三维位姿数据生成在世界坐标系下的运动轨迹,并对运动轨迹进行回环检测。可能的,若回环检测结果为不存在回环,则可继续根据时间戳获取多个位置各自对应的三维位姿数据以及与每个三维位姿数据的时间戳一致的二维点云数据,并对根据该多个位置各自对应的三维位姿数据生成在世界坐标系下的运动轨迹继续进行回环检测,直至检测结果为存在回环。可能的,若回环检测结果为存在回环,则对运动轨迹进行非线性处
理,得到优化运动轨迹,并根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据生成点云地图。
[0163]
在本技术实施例中,可结合时间戳获取每个三维位姿数据以及对应的二维点云数据,根据每个三维位姿数据生成的运动轨迹进行回环检测的结果对获取的三维位姿数据进行优化,以筛除误差较大的三维位姿数据,可提高机器人在遇到爬坡等移动场景时根据二维点云数据生成的栅格地图的准确性。
[0164]
请参阅图9,图9示出了本技术实施例提供的一种栅格地图生成装置的结构示意图。
[0165]
如图9所示,该栅格地图生成装置至少可以包括第一获取模块901、第二获取模块902以及第一处理模块903,其中:
[0166]
第一获取模块901,用于获取多个位置各自对应的三维位姿数据;
[0167]
第二获取模块902,用于获取每个位姿数据对应的二维点云数据;
[0168]
第一处理模块903,用于根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图。
[0169]
在一些可能的实施例中,每帧二维点云数据对应一个时间戳;
[0170]
第一获取模块901具体用于:
[0171]
在预设时段内获取多个位置各自对应的三维位姿数据;每个三维位姿数据分别对应一个时间戳;
[0172]
第二获取模块902具体用于:
[0173]
获取与每个三维位姿数据的时间戳一致的二维点云数据。
[0174]
在一些可能的实施例中,栅格地图生成装置900还包括:
[0175]
第二处理模块,用于在预设时段内获取多个位置各自对应的三维位姿数据之后,根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图之前,将每个三维位姿数据转换为基于世界坐标系生成的三维位姿数据;
[0176]
第一处理模块903,具体用于根据每个基于世界坐标系生成的三维位姿数据以及与基于世界坐标系生成的三维位姿数据对应的二维点云数据生成栅格地图。
[0177]
在一些可能的实施例中,第一处理模块903具体用于:
[0178]
根据多个基于世界坐标系生成的三维位姿数据生成在预设时段内的运动轨迹;
[0179]
对运动轨迹进行回环检测;
[0180]
若回环检测结果为存在回环,则对运动轨迹进行非线性处理,得到优化运动轨迹;
[0181]
根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据生成栅格地图。
[0182]
在一些可能的实施例中,二维点云数据基于雷达坐标系生成;
[0183]
第一处理模块903具体用于:
[0184]
将根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据转换为基于世界坐标系生成的二维点云数据;
[0185]
根据每个基于世界坐标系生成的二维点云数据生成栅格地图。
[0186]
在一些可能的实施例中,第一处理模块903具体用于:
[0187]
若回环检测结果为不存在回环,则根据每个与运动轨迹对应的三维位姿数据所对
应的二维点云数据生成栅格地图。
[0188]
在一些可能的实施例中,第一处理模块903具体用于:
[0189]
将根据每个与运动轨迹对应的三维位姿数据所对应的二维点云数据转换为基于世界坐标系生成的二维点云数据;
[0190]
根据每个基于世界坐标系生成的二维点云数据生成栅格地图。
[0191]
在一些可能的实施例中,第一处理模块903具体用于:
[0192]
若回环检测结果为不存在回环,则在对应于预设时段的下一时段内获取多个位置各自对应的三维位姿数据;每个三维位姿数据分别对应一个时间戳;
[0193]
将下一时段内获取的每个三维位姿数据转换为多个基于世界坐标系生成的三维位姿数据;
[0194]
根据每个基于世界坐标系生成的三维位姿数据生成下一时段内的运动轨迹,并对下一时段内的运动轨迹进行回环检测。
[0195]
请参阅图10,图10示出了本技术实施例提供的一种电子设备的结构示意图。
[0196]
如图10所示,该电子设备1000可以包括:至少一个处理器1001、至少一个网络接口1004、用户接口1003、存储器1005、激光雷达1006、电机编码器1007以及至少一个通信总线1002。
[0197]
其中,通信总线1002可用于实现上述各个组件的连接通信。
[0198]
其中,用户接口1003可以包括按键,可选用户接口还可以包括标准的有线接口、无线接口。
[0199]
其中,网络接口1004可以但不局限于包括蓝牙模块、nfc模块、wi

fi模块等。
[0200]
其中,激光雷达1006可以但不局限于为获取二维点云数据的单线激光雷达。
[0201]
其中,电机编码器1007还可替换为融合惯性传感器的电机编码器。
[0202]
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种接口和线路连接整个电子设备1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行路由设备1000的各种功能和处理数据。可选的,处理器1001可以采用dsp、fpga、pla中的至少一种硬件形式来实现。处理器1001可集成cpu、gpu和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
[0203]
其中,存储器1005可以包括ram,也可以包括rom。可选的,该存储器1005包括非瞬时性计算机可读介质。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及栅格地图生成应用程序。
[0204]
具体地,处理器1001可以用于调用存储器1005中存储的栅格地图生成应用程序,
并具体执行以下操作:
[0205]
获取多个位置各自对应的三维位姿数据;
[0206]
获取每个三维位姿数据对应的二维点云数据;
[0207]
根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图。
[0208]
在一些可能的实施例中,每帧二维点云数据对应一个时间戳;
[0209]
处理器1001获取多个位置各自对应的三维位姿数据时,具体用于执行:
[0210]
在预设时段内获取多个位置各自对应的三维位姿数据;每个三维位姿数据分别对应一个时间戳;
[0211]
处理器1001获取每个三维位姿数据对应的二维点云数据时,具体用于执行:
[0212]
获取与每个三维位姿数据的时间戳一致的二维点云数据。
[0213]
在一些可能的实施例中,处理器1001在预设时段内获取多个位置各自对应的三维位姿数据之后,根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图之前,还用于执行:
[0214]
将每个三维位姿数据转换为基于世界坐标系生成的三维位姿数据;
[0215]
处理器1001根据每个三维位姿数据以及与三维位姿数据对应的二维点云数据生成栅格地图时,具体用于执行:
[0216]
根据每个基于世界坐标系生成的三维位姿数据以及与基于世界坐标系生成的三维位姿数据对应的二维点云数据生成栅格地图。
[0217]
在一些可能的实施例中,处理器1001根据每个基于世界坐标系生成的三维位姿数据以及与基于世界坐标系生成的三维位姿数据对应的二维点云数据生成栅格地图时,具体用于执行:
[0218]
根据多个基于世界坐标系生成的三维位姿数据生成在预设时段内的运动轨迹;
[0219]
对运动轨迹进行回环检测;
[0220]
若回环检测结果为存在回环,则对运动轨迹进行非线性处理,得到优化运动轨迹;
[0221]
根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据生成栅格地图。
[0222]
在一些可能的实施例中,二维点云数据基于雷达坐标系生成;
[0223]
处理器1001根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据生成栅格地图时,具体用于执行:
[0224]
将根据每个与优化运动轨迹对应的三维位姿数据所对应的二维点云数据转换为基于世界坐标系生成的二维点云数据;
[0225]
根据每个基于世界坐标系生成的二维点云数据生成栅格地图。
[0226]
在一些可能的实施例中,处理器1001对运动轨迹进行回环检测之后,还用于执行:
[0227]
若回环检测结果为不存在回环,则根据每个与运动轨迹对应的三维位姿数据所对应的二维点云数据生成栅格地图。
[0228]
在一些可能的实施例中,处理器1001根据每个与运动轨迹对应的三维位姿数据所对应的二维点云数据生成栅格地图时,具体用于执行:
[0229]
将根据每个与运动轨迹对应的三维位姿数据所对应的二维点云数据转换为基于世界坐标系生成的二维点云数据;
[0230]
根据每个基于世界坐标系生成的二维点云数据生成栅格地图。
[0231]
在一些可能的实施例中,处理器1001对运动轨迹进行回环检测之后,还用于执行:
[0232]
若回环检测结果为不存在回环,则在对应于预设时段的下一时段内获取多个位置各自对应的三维位姿数据;每个三维位姿数据分别对应一个时间戳;
[0233]
将下一时段内获取的每个三维位姿数据转换为多个基于世界坐标系生成的三维位姿数据;
[0234]
根据每个基于世界坐标系生成的三维位姿数据生成下一时段内的运动轨迹,并对下一时段内的运动轨迹进行回环检测。
[0235]
本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述图3或图5或图7或图8所示实施例中的一个或多个步骤。上述电子设备的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中。
[0236]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(digital versatile disc,dvd))、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
[0237]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可存储程序代码的介质。在不冲突的情况下,本实施例和实施方案中的技术特征可以任意组合。
[0238]
以上所述的实施例仅仅是本技术的优选实施例方式进行描述,并非对本技术的范围进行限定,在不脱离本技术的设计精神的前提下,本领域普通技术人员对本技术的技术方案作出的各种变形及改进,均应落入本技术的权利要求书确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1