一种悬崖检测方法、智能车辆、机器人和存储介质与流程

文档序号:30583062发布日期:2022-06-29 13:31阅读:297来源:国知局
一种悬崖检测方法、智能车辆、机器人和存储介质与流程

1.本发明涉及机器人导航技术领域,进一步地涉及一种悬崖检测方法、智能车辆、机器人和存储介质。


背景技术:

2.随着机器人导航技术的发展,可移动性已经不仅仅是对应用于生产的机器人的需求。如今,包括智能扫地机器人在内的机器人对导航和避障的稳定性有越来越高的要求。然而,机器人工作环境比较复杂,特别是室内环境中有台阶、楼梯、陡坡、凹坑等环境因素,如果没有有效的防跌落方法,机器人很容易在跌落中受到巨大损坏。
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.判断是否存在候选激光扫描点对应的第二距离值大于第二距离阈值,判断是否存在候选激光扫描点对应的第三距离值是否大于自身最大轮廓直径;
29.若存在候选激光扫描点对应的第二距离值大于第二距离阈值,且存在候选激光扫描点对应的第三距离值大于最大轮廓直径,确定所述待测区域存在悬崖。
30.在一些实施方式中,所述根据两个激光数组对应的激光数据判断所述待测区域是否存在悬崖之后包括步骤:
31.若所述待测区域存在悬崖,根据所述候选激光扫描点的位置坐标在环境地图中的待测区域处标记生成虚拟数据墙4。
32.在一些实施方式中,所述根据所述候选激光扫描点的位置坐标在环境地图中的待测区域处标记生成虚拟数据墙4包括步骤:
33.根据所述候选激光扫描点的位置坐标中的高度值计算得到预测数值;
34.根据所述候选激光扫描点的位置坐标,在环境地图中标记生成高度为所述预测数值的虚拟数据墙4。
35.根据本发明的另一方面,本发明进一步提供一种智能车辆,包括三维激光传感器、处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处
理器,用于执行所述存储器上所存放的计算机程序,实现所述的悬崖检测方法所执行的操作。
36.根据本发明的另一方面,本发明进一步提供一种机器人,包括三维激光传感器、处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器,用于执行所述存储器上所存放的计算机程序,实现所述的悬崖检测方法所执行的操作。
37.根据本发明的另一方面,本发明进一步提供一种存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述的悬崖检测方法所执行的操作。
38.与现有技术相比,本发明所提供的悬崖检测方法、智能车辆、机器人和存储介质,能够通过三维激光传感器采集的激光点云数据来识别出待测区域是否存在悬崖(台阶、楼梯、陡坡、凹坑等),提高机器人或智能车辆判断悬崖的准确度,减少悬崖检测误判率,提升行驶安全性。
附图说明
39.下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明的上述特性、技术特征、优点及其实现方式予以进一步说明。
40.图1是本发明一种悬崖检测方法的一个实施例的流程图;
41.图2是本发明激光点云数据的示意图;
42.图3是本发明目标单帧激光数据的示意图;
43.图4是本发明第一、第二分簇数组的示意图;
44.图5是本发明一种悬崖检测方法的标记虚拟数据墙的示意图。
具体实施方式
45.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本技术。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
46.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所述描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素、组件和/或集合的存在或添加。
47.为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
48.还应当进一步理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
49.另外,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
50.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明
本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
51.参考说明书附图1-图4,一种悬崖检测方法,具体地,包括步骤:
52.s100通过三维激光传感器2对待测区域进行扫描得到激光点云数据;所述激光点云数据包括若干组单帧激光数据;
53.具体的,激光传感器是一种以发射激光束的方式,来采集获取机器人1周围的激光点云数据的设备。激光传感器采集到的激光点云数据包括若干组待测区域对应的单帧激光数据,其中,每组单帧激光数据包括激光扫描点及其特征属性数据,特征属性数据包括激光扫描点在激光坐标系o2-xyz下的坐标数据、激光扫描点的属性特征等,这样就可以根据激光扫描点的坐标数据和属性特征,分析得到机器人1或者智能车辆周围的环境特征信息,环境特征信息包括但是不限于障碍物类型、障碍物距离、角度、轮廓特征。激光传感器可以采用任何能够发射激光光束的设备实现,例如可以采用激光雷达。
54.机器人1或者智能车辆上安装有三维激光传感器2,上述机器人1或者智能车辆上的三维激光传感器2的具体安装位置可以根据业务需求设置,在此不作限定。本发明的机器人1或智能车辆在行驶过程中,通过三维激光传感器2对行驶方向上前方的待测区域进行发射激光光束,以便扫描获取激光点云数据。
55.示例性的,mid 70激光雷达为三维激光传感器2的一种,mid 70激光雷达与一般传统的3d激光雷达不同,其为非重复式扫描激光雷达的,通过激光数据的累积,机器人1或智能车辆能够实现前方全覆盖探测。例如,mid 70激光雷达采集到的激光点云数据如图2所示,其采集到的激光点云数据是由如图3所示的单帧激光数据组成的,例如,图3所示的一组单帧激光数据m1,另一组单帧激光数据m2,需要知道的是,图3中的其他单帧激光数据并未进行标识,激光点云数据包括大量的单帧激光数据。也就是说,本发明的激光点云数据包括围绕着激光中心点o的多组单帧激光数据,其中,围绕着激光中心点o的多组单帧激光数据最终全覆盖前方,以实现前方环境的探测。
56.s200从所述激光点云数据中查找目标单帧激光数据;所述目标单帧激光数据包括在预设二维坐标系o-uv下高度值最小的目标激光扫描点p;
57.具体的,预设二维坐标系o-uv与激光坐标系o2-xyz之间的转换关系可以计算获取,这种计算方式类似于相机坐标系与像素坐标系之间的转换关系,可以将激光坐标系o2-xyz进行降维度操作,即将激光坐标系o2-xyz投影至激光坐标系o2-xyz的xz轴平面。这样,通过三维激光传感器2采集获取到包括若干组单帧激光数据的激光点云数据后,可以根据各激光扫描点在激光坐标系o2-xyz下的坐标数据,计算获取各激光扫描点分别在预设二维坐标系o-uv下的空间坐标,进而比较各激光扫描点分别在预设二维坐标系o-uv下的空间坐标,查找出高度值最小的目标激光扫描点p,确定包括目标激光扫描点p的单帧激光数据就是目标单帧激光数据。
58.s300根据所述激光点云数据的激光中心点o和所述目标激光扫描点p在所述预设二维坐标系o-uv上的空间坐标,对所述目标单帧激光数据中的激光扫描点进行分组得到第一、第二激光数组;其中,第一、第二激光数组中的所有激光扫描点围合形成所述目标单帧激光数据;
59.具体的,以激光点云数据的激光中心点o和目标激光扫描点p为临界节点,将目标单帧激光数据中的激光扫描点进行分组,进而得到包括从所述激光中心点o指向所述目标激光扫描点p范围内的激光扫描点的第一激光数组,以及包括从所述目标激光扫描点p指向所述激光中心点o范围内的激光扫描点的第二激光数组。
60.其中,由于各组单帧激光数据中所有相邻激光扫描点围合连接得到的形状为封闭环状或花瓣状。每组单帧激光数据中所有激光扫描点在所述预设二维坐标系o-uv上的空间坐标的分布特征如图3所示,是从激光中心点o(0,0)到顶点d(ud,vd)后再回到激光中心点o(0,0),因此,可以根据激光扫描点和激光中心点o连接生成划分线段l3,根据划分线段将目标单帧激光数据中的激光扫描点进行分组得到第一、第二激光数组。
61.示例性的,如图3所示,将激光扫描点和激光中心点o连接生成划分线段l3,根据激光扫描点和激光中心点o,将单帧激光数据mt划分为图3所示的第一激光数组s1,以及图3所示的第二激光数组s2。
62.s400对第一激光数组和第二激光数组中的激光扫描点,分别进行分簇处理得到第一、第二分簇数组;
63.s500根据所述目标激光扫描点p、激光中心点o和第一、第二分簇数组,判断所述待测区域是否存在悬崖。
64.具体的,对第一激光数组中的激光扫描点进行分簇处理得到第一分簇数组和第二激光数组,并对第二激光数组中的激光扫描点进行分簇处理得到第二分簇数组。然后,机器人1或智能车辆根据所述目标激光扫描点p、激光中心点o和第一、第二分簇数组进行分析判断所述待测区域是否存在悬崖。
65.本发明在机器人1或智能车辆的前方安装三维激光传感器2,由于机器人1或智能车辆在运行过程中有可能运动到楼梯间、扶梯后,如果没有及时检测到前方台阶高度落差,有跌落风险,本发明通过三维激光传感器2采集的激光点云数据来识别出待测区域是否存在悬崖(台阶、楼梯、陡坡、凹坑等)。本发明根据地面的状态变化信息动态设置悬崖检测的限定条件,将现有技术中使用红外传感器或超声波传感器因环境反光或者噪音导致影响悬崖检测的干扰因素排除,以提高机器人1或智能车辆判断悬崖的准确度,减少悬崖检测误判率。
66.在一个实施例中,一种悬崖检测方法,具体地,包括步骤:
67.s100通过三维激光传感器2对待测区域进行扫描得到激光点云数据;所述激光点云数据包括若干组单帧激光数据;
68.s210获取所述单帧激光数据中所有激光扫描点在激光坐标系o2-xyz下的坐标数据;
69.s220根据所述坐标数据和转换矩阵,计算得到各个激光扫描点在预设二维坐标系o-uv下的空间坐标;所述转换矩阵为所述激光坐标系o2-xyz与所述预设二维坐标系o-uv之间的转换关系;
70.s230根据所述空间坐标比较所有激光扫描点在所述预设二维坐标系o-uv下的高度值,查找出所述高度值最小的目标激光扫描点p;
71.s240确定所述目标激光扫描点p所属的单帧激光数据为所述目标单帧激光数据;所述目标单帧激光数据包括在预设二维坐标系o-uv下高度值最小的目标激光扫描点p;
72.具体的,预设二维坐标系o-uv与激光坐标系o2-xyz之间的转换关系可以计算获取,这种计算方式类似于相机坐标系与像素坐标系之间的转换关系,可以将激光坐标系o2-xyz进行降维度操作,即将激光坐标系o2-xyz投影至预设二维坐标系o-uv的xz轴平面。这样,通过三维激光传感器2采集获取到包括若干组单帧激光数据的激光点云数据后,可以根据各激光扫描点在激光坐标系o2-xyz下的坐标数据,计算获取各激光扫描点分别在预设二维坐标系o-uv下的空间坐标,进而比较各激光扫描点分别在预设二维坐标系o-uv下的空间坐标,查找出高度值最小的目标激光扫描点p,确定包括目标激光扫描点p的单帧激光数据就是目标单帧激光数据。
73.假设激光坐标系o2-xyz的x轴为机器人1或智能车辆的左右方向,y轴为机器人1或智能车辆的高度方向,z轴为机器人1或智能车辆的前进方向。预设二维坐标系o-uv的u轴为机器人1或智能车辆的左右方向,y轴为机器人1或智能车辆的高度方向。如果,激光点云数据中任意一个激光扫描点n在激光坐标系o2-xyz下的坐标数据为(xn,yn,zn),那么通过上述转换计算可以得到激光扫描点n在预设二维坐标系o-uv下的空间坐标为(un,vn),这样,就可以计算获取激光点云数据中所有激光扫描点在预设二维坐标系o-uv下的空间坐标,比较所有激光扫描点在v轴上的坐标值,v轴上的坐标值就代表的是在预设二维坐标系o-uv下的高度值,因此,查找出v轴上的坐标值对应的激光扫描点就是目标激光扫描点p,那么,确定包括目标激光扫描点p的单帧激光数据是目标单帧激光数据。
74.示例性的,机器人1或智能车辆采集到的激光点云数据如图2所示,在预设二维坐标系o-uv下,单帧激光数据mt中的激光扫描点在v轴上的坐标值最小,因此,激光扫描点(up,vp)就是目标激光扫描点p。
75.s300根据所述激光点云数据的激光中心点o和所述目标激光扫描点p在所述预设二维坐标系o-uv上的空间坐标,对所述目标单帧激光数据中的激光扫描点进行分组得到第一、第二激光数组;其中,第一、第二激光数组中的所有激光扫描点围合形成所述目标单帧激光数据;
76.s400对第一激光数组和第二激光数组中的激光扫描点,分别进行分簇处理得到第一、第二分簇数组;
77.s500根据所述目标激光扫描点p、激光中心点o和第一、第二分簇数组,判断所述待测区域是否存在悬崖。
78.具体的,本实施例是上述实施例的优化实施例,本实施例中与上述实施例相同的部分不再一一赘述。本发明在机器人1或智能车辆的前方安装三维激光传感器2,由于机器人1或智能车辆在运行过程中有可能运动到楼梯间、扶梯后,如果没有及时检测到前方台阶高度落差,有跌落风险,本发明通过三维激光传感器2采集的激光点云数据来识别出待测区域是否存在悬崖(台阶、楼梯、陡坡、凹坑等)。本发明根据地面的状态变化信息动态设置悬崖检测的限定条件,将现有技术中使用红外传感器或超声波传感器因环境反光或者噪音导致影响悬崖检测的干扰因素排除,以提高机器人1或智能车辆判断悬崖的准确度,减少悬崖检测误判率。
79.在一个实施例中,一种悬崖检测方法,具体地,包括步骤:
80.s100通过三维激光传感器2对待测区域进行扫描得到激光点云数据;所述激光点云数据包括若干组单帧激光数据;
81.s210获取所述单帧激光数据中所有激光扫描点在激光坐标系o2-xyz下的坐标数据;
82.s220根据所述坐标数据和转换矩阵,计算得到各个激光扫描点在预设二维坐标系o-uv下的空间坐标;所述转换矩阵为所述激光坐标系o2-xyz与所述预设二维坐标系o-uv之间的转换关系;
83.s230根据所述空间坐标比较所有激光扫描点在所述预设二维坐标系o-uv下的高度值,查找出所述高度值最小的目标激光扫描点p;
84.s240确定所述目标激光扫描点p所属的单帧激光数据为所述目标单帧激光数据;所述目标单帧激光数据包括在预设二维坐标系o-uv下高度值最小的目标激光扫描点p;
85.s300根据所述激光点云数据的激光中心点o和所述目标激光扫描点p在所述预设二维坐标系o-uv上的空间坐标,对所述目标单帧激光数据中的激光扫描点进行分组得到第一、第二激光数组;其中,第一、第二激光数组中的所有激光扫描点围合形成所述目标单帧激光数据;
86.s410获取第一、第二激光数组中各激光扫描点在载体坐标系o1-xyz下的位置坐标;
87.具体的,载体坐标系o1-xyz是指机器人坐标系(例如以机器人中心点为原点建立的三维坐标系)或者智能车辆坐标系(例如以智能车辆点为原点建立的三维坐标系)。由于载体坐标系o1-xyz与激光坐标系o2-xyz之间的转换关系可以计算获取,载体坐标系o1-xyz与激光坐标系o2-xyz之间的转换为现有技术,在此不再详细说明。总之,三维激光传感器2所扫描得到激光点云数据后,根据激光点云数据中各激光扫描点在激光坐标系o2-xyz下的坐标数据,可以转换计算得到第一、第二激光数组中各激光扫描点在载体坐标系o1-xyz下的位置坐标。
88.s420根据所述位置坐标判断所述第一、第二激光数组中每对相邻激光扫描点之间的第一距离值是否大于预设第一距离阈值,并判断所述每对相邻激光扫描点之间的高度值是否大于预设高度阈值;
89.具体的,任一激光扫描点n在激光坐标系o2-xyz下的坐标数据为(xn,yn,zn),那么转换计算得到的激光扫描点n在载体坐标系o1-xyz下的位置坐标为(xn,yn,zn)。根据三维坐标系下的两点距离公式可以计算得到第一对相邻激光扫描点之间的第一距离值,同理,可以计算得到所有相邻激光扫描点之间的第一距离值。故而,计算出所有相邻激光扫描点之间的第一距离值后,再判断每对相邻激光扫描点之间的第一距离值是否大于预设第一距离阈值,并输出对应的判断结果。
90.另外,根据激光扫描点n在载体坐标系o1-xyz下的位置坐标为(xn,yn,zn),将相邻激光扫描点在载体坐标系o1-xyz下y轴的坐标值进行差值,差值的绝对值就是相邻激光扫描点之间的高度值,同理,可以计算得到所有相邻激光扫描点之间的高度值。故而,计算出所有相邻激光扫描点之间的高度值后,再判断每对相邻激光扫描点之间的高度值是否大于预设高度阈值,并输出对应的判断结果。
91.示例性的,假设第一激光数组的集合表示为s1={t1,t2,
……
,ti},第二激光数组的集合表示为s2={k1,k2,
……
,kj},ti为第一激光数组中激光扫描点的标号,kj为第二激光数组中激光扫描点的标号,i和j均为自然数。并且,第一激光数组s1={t1,t2,
……
,ti}
中的所有激光扫描点按照标号的大小顺序排列,第二激光数组s2={k1,k2,
……
,kj}中的所有激光扫描点按照标号的大小顺序排列。若激光扫描点k1在载体坐标系o1-xyz下的位置坐标为(xk1,yk1,zk1),与激光扫描点k1相邻的激光扫描点k2在载体坐标系o1-xyz下的位置坐标为(xk2,yk2,zk2),那么相邻激光扫描点k1和k2之间的距离值可以根据两点距离公式计算得到,并且,相邻激光扫描点k1和k2之间的高度值

h=|yk1-yk2|。
92.s430根据判断结果查找出第一、第二激光数组分别对应的分簇点对;所述分簇点对为第一距离值大于预设第一距离阈值,且高度值大于预设高度阈值的两个相邻激光扫描点;
93.具体的,根据上述判断结果查找出第一激光数组中第一距离值大于预设第一距离阈值,且高度值大于预设高度阈值的两个相邻激光扫描点,确定这两个相邻激光扫描点就是第一激光数组对应的分簇点对,同理,根据判断结果查找出第二激光数组中第一距离值大于预设第一距离阈值,且高度值大于预设高度阈值的两个相邻激光扫描点,确定这两个相邻激光扫描点就是第二激光数组对应的分簇点对。
94.示例性的,如图4所示,q1和q3是第一激光数组中第一距离值大于预设第一距离阈值,且高度值大于预设高度阈值的两个相邻激光扫描点,q2和q3是第二激光数组中第一距离值大于预设第一距离阈值,且高度值大于预设高度阈值的两个相邻激光扫描点。也就是说,第一激光数组对应的第一分簇点对是q1和q3,第一激光数组对应的第二分簇点对是q2和q4。
95.s440根据所述分簇点对和目标激光扫描点p,将所述第一、第二激光数组进行分组得到第一、第二分簇数组;
96.具体的,如图4所示,根据第一激光数组对应的第一分簇点对包括分簇点q1和分簇点q3,以及将第二激光数组对应的第二分簇点对包括分簇点q2和分簇点q4,将第一激光数组和第二激光数组进行分组得到第一分簇数组和第二分簇数组。其中,第一分簇数组如图4所示为包括从分簇点q1

目标激光扫描点p

分簇点q2范围内的激光扫描点,第二分簇数组如图4所示为包括从分簇点q3

激光中心点o

分簇点q4范围内的激光扫描点。
97.s510根据所述第一、第二激光数组分别对应的分簇点对,确定靠近所述目标激光扫描点p的两个目标分簇点;
98.具体的,根据第一、第二激光数组分别对应的分簇点对在载体坐标系o1-xyz下的位置坐标,以及目标激光扫描点p在载体坐标系o1-xyz下的位置坐标,计算并比较第一激光数组对应的两个分簇点(即上述第一分簇点对)分别与目标分簇点之间的距离,确定距离更小的分簇点就是第一激光数组中靠近目标激光扫描点p的目标分簇点。同理,可以确定第二激光数组中靠近目标激光扫描点p的目标分簇点。
99.示例性的,如图4所示,第一激光数组对应的分簇点对包括分簇点q1和分簇点q3,并且第二激光数组对应的分簇点对包括分簇点q2和分簇点q4。其中,由于分簇点对中的分簇点q1靠近目标激光扫描点p,分簇点对中的分簇点q3远离目标激光扫描点p,因此,第一激光数组的目标分簇点就是分簇点q1。由于分簇点对中的分簇点q2靠近目标激光扫描点p,分簇点对中的分簇点q4远离目标激光扫描点p,因此,第二激光数组的目标分簇点就是分簇点q2。
100.s520根据所述目标激光扫描点p和所述两个目标分簇点的位置坐标,分别连线生
成第一、第二坡度线段;
101.s530根据所述目标激光扫描点p和所述两个目标分簇点的位置坐标,投影至所述激光中心点o所在的中心平面3得到第一、第二投影点;
102.s540根据所述第一、第二投影点生成投影分簇线段l2;
103.具体的,在载体坐标系o1-xyz下根据目标激光扫描点p和两个目标分簇点的位置坐标,将目标激光扫描点p与第一激光数组的目标分簇点(例如分簇点q1)进行连线生成第一坡度线段,并将目标激光扫描点p与第二激光数组的目标分簇点(例如分簇点q2)进行连线生成第二坡度线段。
104.然后,根据第一激光数组的目标分簇点(例如分簇点q1),以及第二激光数组的目标分簇点(例如分簇点q2)进行连线生成目标分簇线段l1,绘制生成经过目标激光扫描点p并垂直于目标分簇线段l1的参考线段l4。连线生成经过第一激光数组的目标分簇点(例如分簇点q1)并平行于参考线段l4的第一投射线段l5,以及连线生成经过第二激光数组的目标分簇点(例如分簇点q2)并平行于参考线段l4的第二投射线段l6,将第一投射线段l5延长至与所述激光中心点所在的中心平面3相交得到第一投影分簇点q1

,并将第二投射线段l6延长至与所述激光中心点所在的中心平面3相交得到第二投影分簇点q2

。最后,将第一投影分簇点q1

与第二投影分簇点q2

进行连线生成投影分簇线段l2。
105.具体的,以图4和图5为例,计算出p点至q1点或q2点分别对应第一、第二坡度线段的簇坡度,由于p点是靠近机器人1或智能车辆的目标激光扫描点,可以认为p点至q1点或q2点分别对应第一、第二坡度线段的簇坡度就是地面的坡度,相当于在点云中找到了地面的数据。其中,计算目标激光扫描点p所在簇的坡度时是通过直线拟合的方式,即假设目标激光扫描点p所在的簇为点集q={p,p1,p2,

,q2},若点集q中各个激光扫描点的坐标为p=(x1,y1,z1),p2=(x2,y2,z2),

,q2=(xn,yn,zn),利用最小二乘法拟合空间直线得到直线方程ax+by+cz+d=0,其中参数a,b,c,d就是第一或第二坡度线段对应直线方程的系数,而其对应路面坡度就是arctan(-b/a)。例如,利用点集q中p点到q1之间的激光扫描点和最小二乘法拟合空间直线得到p点到q1点的第一坡度直线方程。同理,可以利用点集q中p点到q2之间的激光扫描点和最小二乘法拟合空间直线得到p点到q2点的第二坡度直线方程。
106.s550根据所述投影分簇线段l2从第二分簇数组中,筛选出位于所述投影分簇线段l2下方预设距离数值范围内的候选激光集合;
107.具体的,如图4所示,第二分簇数组为包括从分簇点q3

激光中心点o

分簇点q4范围内的激光扫描点,然后,从第二分簇数组中筛选出位于投影分簇线段l2下方内的候选激光集合(例如从第一投影分簇点q1
′→
第二投影分簇点q2
′→
分簇点q4

分簇点q3范围内的候选激光扫描点),或者从第二分簇数组中筛选出位于投影分簇线段l2下方预设距离数值范围内的候选激光集合。
108.s560计算所述候选激光集合中各激光扫描点与所述投影分簇线段l2之间的第二距离值,并计算所述候选激光集合中各激光扫描点与任一目标分簇点之间的第三距离值;
109.s560判断是否存在候选激光扫描点对应的第二距离值大于第二距离阈值,判断是否存在候选激光扫描点对应的第三距离值是否大于自身最大轮廓直径;
110.s570若存在候选激光扫描点对应的第二距离值大于第二距离阈值,且存在候选激光扫描点对应的第三距离值大于最大轮廓直径,确定所述待测区域存在悬崖;
111.s600若所述待测区域存在悬崖,根据所述候选激光扫描点的位置坐标在环境地图中的待测区域处标记生成虚拟数据墙4。
112.在一些实施方式中,s600若所述待测区域存在悬崖,根据所述候选激光扫描点的位置坐标在环境地图中的待测区域处标记生成虚拟数据墙4包括步骤:
113.s610若所述待测区域存在悬崖,根据所述候选激光扫描点的位置坐标中的高度值计算得到预测数值;
114.s620根据所述候选激光扫描点的位置坐标,在环境地图中标记生成高度为所述预测数值的虚拟数据墙4。
115.具体的,参照上述实施例计算p点到q1点及p点到q2点的坡度直线方程,并延长其坡度直线方程对应的线段投影到o点所在平面,进而从候选激光集合中查找出第二距离值大于第二距离阈值,且第三距离值大于最大轮廓直径的候选激光扫描点w。若有候选激光扫描点w位于投影分簇线段l2下方预设距离数值范围(例如5cm)以下,且候选激光扫描点w距离q1或q2点距离大于最大轮廓直径(例如机器人1或智能车辆最大轮廓的直径),则将候选激光扫描点w在载体坐标系o1-xyz下的高度值进行直线高度反转计算,然后将候选激光扫描点w转移到q1,q2点处,以便最终在最近的台阶处形成具有一定高度的虚拟数据墙4。示例性的,如下图5所示线段l4的高度就是虚拟数据墙4的高度,虚拟数据墙44在环境地图中会进行标记,这样容易被机器人1或智能车辆视为障碍,可以防止机器人1或智能车辆跌落。
116.候选激光扫描点w在载体坐标系o1-xyz下的高度值进行直线高度反转计算,然后将候选激光扫描点w转移到q1,q2点处的具体流程为,通过上述实施例计算得到p点到q1点的第一坡度直线方程(或者p点到q2点的第二坡度直线方程),将图5中从第一投影分簇点q1
′→
第二投影分簇点q2
′→
分簇点q4

分簇点q3范围内的候选激光扫描点w的位置坐标代入第一坡度直线方程(或第二坡度直线方程),根据点到空间直线的距离公式,计算得到各个候选激光扫描点w到直线的距离就是候选激光扫描点w在载体坐标系o1-xyz下的高度值h。计算出候选激光扫描点w在载体坐标系o1-xyz下的高度值h后,如果候选激光扫描点w在载体坐标系o1-xyz下的高度值h》5cm且该候选激光扫描点w在载体坐标系中的z轴坐标值z《0时,利用q2点在载体坐标系下的位置坐标进行取反计算得到反转点w’对应的位置坐标。例如,若q2点的位置坐标为(x,y,z),那么q2点对应的反转点w’坐标为(x,y,z+h),这样w’这个点就反转到q2正上方,形成一堵虚拟数据墙4。
117.示例性的,将图4中p点到q1’点对应的第一坡度直线向xz平面进行投影,也就是第一坡度直线方程ax+by+cz+d=0中y=0的情况,这样第一坡度直线从三维的空间直线变成了二维的平面直线,也就是说,第一坡度直线方程投影到xz平面得到的投影直线方程为ax+cz+d=0。如果点q2’到点q1’之间的候选激光扫描点的位置坐标为(x’,y’,z’),由于y轴的数据可以忽略,那么点q2’到点q1’之间的候选激光扫描点投影在xz平面时的位置坐标为(x’,z’),从而可以根据点到直线距离公式计算得到候选激光扫描点w在世界坐标系下的高度值。
118.优选的,第三激光传感器的视角范围为70
°
,为确保悬崖识别结果准确,安装时应确保第三激光传感器所发射的激光束投射的激光扫描点投影到地面时,目标激光扫描点p点距离机器人1或智能车辆的距离不大于设定值(例如0.5m),并且第三激光传感器在机器人1或智能车辆上的安装高度(第三激光传感器距离地面的高度值)不小于机器人1或智能
车辆高度的2/3。
119.具体的,本实施例是上述实施例的优化实施例,本实施例中与上述实施例相同的部分不再一一赘述。本发明在机器人1或智能车辆的前方安装三维激光传感器2,由于机器人1或智能车辆在运行过程中有可能运动到楼梯间、扶梯后,如果没有及时检测到前方台阶高度落差,有跌落风险,本发明通过三维激光传感器2采集的激光点云数据来识别出待测区域是否存在悬崖(台阶、楼梯、陡坡、凹坑等)。
120.本发明根据地面的状态变化信息动态设置悬崖检测的限定条件,将现有技术中使用红外传感器或超声波传感器因环境反光或者噪音导致影响悬崖检测的干扰因素排除,以提高机器人1或智能车辆判断悬崖的准确度,减少悬崖检测误判率。本发明将探测到的激光点云数据解析成线段数据进行分析判断待测区域是否存在悬崖,如果存在悬崖就根据所述候选激光扫描点的位置坐标在环境地图中的待测区域处标记生成虚拟数据墙4,这样,就可以自动规避绕开障碍物或洼地,提高了机器人1或智能车辆避障效率,大大提升机器人1或智能车辆的行驶安全性。
121.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的程序模块完成,即将所述装置的内部结构划分成不同的程序单元或模块,以完成以上描述的全部或者部分功能。实施例中的各程序模块可以集成在一个处理单元中,也可是各个单元单独物理存在,也可以两个或两个以上单元集成在一个处理单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序单元的形式实现。另外,各程序模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。
122.本发明的一个实施例,一种机器人,包括处理器、存储器,其中,存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的计算机程序,所述计算机程序被所述处理器执行时实现包括上述任意一个或者多个实施例所述悬崖检测方法的步骤。
123.本发明的一个实施例,一种智能车辆,包括三维激光传感器、处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器,用于执行所述存储器上所存放的计算机程序,实现所述的悬崖检测方法所执行的操作。
124.所述智能车辆/机器人可包括,但不仅限于处理器、存储器。本领域技术人员可以理解,上述仅仅是智能车辆/机器人的示例,并不构成对智能车辆/机器人的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如:智能车辆/机器人还可以包括输入/输出接口、显示设备、网络接入设备、通信总线、通信接口等。通信接口和通信总线,还可以包括输入/输出接口,其中,处理器、存储器、输入/输出接口和通信接口通过通信总线完成相互间的通信。该存储器存储有计算机程序,该处理器用于执行存储器上所存放的计算机程序,实现上述所对应方法实施例中的悬崖检测方法。
125.所述处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
126.所述存储器可以是所述智能车辆/机器人的内部存储单元,例如:智能车辆/机器人的硬盘或内存。所述存储器也可以是所述智能车辆/机器人的外部存储设备,例如:所述智能车辆/机器人上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器还可以既包括所述智能车辆/机器人的内部存储单元也包括外部存储设备。所述存储器用于存储所述计算机程序以及所述智能车辆/机器人所需要的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。
127.通信总线是连接所描述的元素的电路并且在这些元素之间实现传输。例如,处理器通过通信总线从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序编程接口(application programming interface,api)和应用。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。输入/输出接口转发用户通过输入/输出接口(例如感应器、键盘、触摸屏)输入的命令或数据。通信接口将该智能车辆/机器人与其它网络设备、用户设备、网络进行连接。例如,通信接口可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(wifi),蓝牙(bt),近距离无线通信技术(nfc),全球卫星定位系统(gps)和蜂窝通信等等。有线通信可以包括以下至少一种:通用串行总线(usb),高清晰度多媒体接口(hdmi),异步传输标准接口(rs-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。智能车辆/机器人可以通过通信接口连接网络,智能车辆/机器人和其它网络设备通信所用的协议可以被应用、应用程序编程接口(api)、中间件、内核和通信接口至少一个支持。
128.本发明的一个实施例,一种存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现上述悬崖检测方法对应实施例所执行的操作。例如,存储介质可以是只读内存(rom)、随机存取存储器(ram)、只读光盘(cd-rom)、磁带、软盘和光数据存储设备等。
129.它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
130.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述或记载的部分,可以参见其他实施例的相关描述。
131.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
132.在本技术所提供的实施例中,应该理解到,所揭露的智能车辆/机器人和方法,可以通过其他的方式实现。例如,以上所描述的智能车辆/机器人实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方
式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其他的形式。
133.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
134.另外,在本技术各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
135.所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序发送指令给相关的硬件完成,所述的计算机程序可存储于一存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述存储介质可以包括:能够携带所述计算机程序的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如:在某些司法管辖区,根据立法和专利实践,计算机可读的存储介质不包括电载波信号和电信信号。
136.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
137.应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1