本发明涉及机器人,具体来说,涉及一种识别悬崖的方法、装置及机器人。
背景技术:
1、装有多线激光雷达的机器人,通常用多线激光雷达中,用能够打到地面的激光束,来识别悬崖区域,节省成本的同时,也能够识别到悬崖区域,使得机器人绕开悬崖区域,正常行驶。但是多线雷达的线束之间,能够打到地面的激光点,其线与线之间的激光点间隙,会随着距离雷达越远,间隙变大。
2、参考图1,图1是激光雷达点云示意图,其中白色是激光点。但使得基于激光雷达识别到的悬崖区域有一定的盲区,机器人避障有可能会走近盲区从而掉下悬崖。如图2所示,
3、其中激光雷达1,有一束激光点打在地面2上,有一束激光点打在悬崖上3,而由于激光雷达的稀疏性,会导致部分悬崖底部4并无实际的激光点,导致产生识别的盲区。
4、本文提供的背景描述用于总体上呈现本公开的上下文的目的。除非本文另外指示,在该章节中描述的资料不是该申请的权利要求的现有技术并且不要通过包括在该章节内来承认其成为现有技术。
技术实现思路
1、针对相关技术中的上述技术问题,本发明提出了一种识别悬崖的方法,其包括如下步骤:
2、s1,对激光雷达数据进行悬崖识别获取悬崖的点云pc;
3、s2,获取悬崖点云pc中的每个点与激光雷达z轴垂直方向的夹角angle;
4、s3,根据悬崖点云pc中每一个悬崖点云与激光雷达z轴垂直方向的夹角angle以及悬崖深度获取膨胀距离;
5、s4,根据膨胀距离对悬崖点云pc中每一个悬崖点pi(xi,yi,zi)进行膨胀获取膨胀后的悬崖点云pc’。
6、具体的,所述膨胀距离dis=ph*tan(angle)+dis_th,其中ph为悬崖深度,dis_th为预设值。
7、具体的,所述步骤s4具体为:根据膨胀距离对悬崖点云pc中每一个悬崖点pi(xi,yi,zi)进行正方形膨胀获取膨胀后的悬崖点云pc’。
8、具体的,所述步骤s4还包括:根据膨胀的正方形左下角点为p_lb、左上角点为p_lf、右上角点为p_rf、右下角点为p_rb,由p_lb、p_lf组成左线段,对左线段进行线性插值,得到一系列左线段上的点,并加入到悬崖点云中;对p_lf、p_rf组成的线段,p_rf、p_rb组成的线段,p_rb、p_lb组成的线段进行插值后得到的点加入到悬崖点云中,获取膨胀后的悬崖点云。
9、具体的,所述angle=0.5*π+arctan(z/(sqrt(x*x+y*y))),其中,x,y,z为悬崖点云的x,y,z轴的坐标值。
10、第二方面,本发明的另一个实施例公开了一种识别悬崖装置,其包括如下单元:
11、悬崖点云获取单元,用于对激光雷达数据进行悬崖识别获取悬崖的点云pc;
12、角度获取单元,用于获取悬崖点云pc中的每个点与激光雷达z轴垂直方向的夹角angle;
13、膨胀距离获取单元,用于根据悬崖点云pc中每一个悬崖点云与激光雷达z轴垂直方向的夹角angle以及悬崖深度获取膨胀距离;
14、膨胀悬崖点云单元,用于根据膨胀距离对悬崖点云pc中每一个悬崖点pi(xi,yi,zi)进行膨胀获取膨胀后的悬崖点云pc’。
15、具体的,所述膨胀距离dis=ph*tan(angle)+dis_th,其中ph为悬崖深度,dis_th为预设值。
16、具体的,所述膨胀悬崖点云单元具体为:根据膨胀距离对悬崖点云pc中每一个悬崖点pi(xi,yi,zi)进行正方形膨胀获取膨胀后的悬崖点云pc’。
17、具体的,所述膨胀悬崖点云单元还包括:根据膨胀的正方形左下角点为p_lb、左上角点为p_lf、右上角点为p_rf、右下角点为p_rb,由p_lb、p_lf组成左线段,对左线段进行线性插值,得到一系列左线段上的点,并加入到悬崖点云中;对p_lf、p_rf组成的线段,p_rf、p_rb组成的线段,p_rb、p_lb组成的线段进行插值后得到的点加入到悬崖点云中,获取膨胀后的悬崖点云。
18、第三方面,本发明的另一个实施例公开了一种机器人,所述机器人包括:一处理模块,一底盘,一激光雷达,一存储模块,所述存储模块存储有指令,在所述指令被执行时,用于实现上述的一种识别悬崖的方法。
19、本发明通过根据悬崖点云pc中每一个悬崖点云与激光雷达z轴垂直方向的夹角angle以及悬崖深度获取膨胀距离;并对获取的悬崖点云进行膨胀,获取膨胀后的悬崖点云,可以有效的避免因激光雷达带来的盲区。进一步的,本发明在膨胀时,根据膨胀的区域对点云进行插值,从而获取膨胀后的悬崖点云。本发明的方法,对多线激光雷达的悬崖点进行膨胀,补全稀疏雷达的识别盲区,进一步的,对其悬崖点进行正方向膨胀,起到一定的封锁作用,避免机器人掉下悬崖。
1.一种识别悬崖的方法,其包括如下步骤:
2.根据权利要求1所述的方法,所述膨胀距离dis=ph*tan(angle)+dis_th,其中ph为悬崖深度,dis_th为预设值。
3.根据权利要求1所述的方法,所述步骤s4具体为:根据膨胀距离对悬崖点云pc中每一个悬崖点pi(xi,yi,zi)进行正方形膨胀获取膨胀后的悬崖点云pc’。
4.根据权利要求3所述的方法,所述步骤s4还包括:根据膨胀的正方形左下角点为p_lb、左上角点为p_lf、右上角点为p_rf、右下角点为p_rb,由p_lb、p_lf组成左线段,对左线段进行线性插值,得到一系列左线段上的点,并加入到悬崖点云中;对p_lf、p_rf组成的线段,p_rf、p_rb组成的线段,p_rb、p_lb组成的线段进行插值后得到的点加入到悬崖点云中,获取膨胀后的悬崖点云。
5.根据权利要求1所述的方法,所述angle=0.5*π+arctan(z/(sqrt(x*x+y*y))),其中,x,y,z为悬崖点云的x,y,z轴的坐标值。
6.一种识别悬崖装置,其包括如下单元:
7.根据权利要求6所述的装置,所述膨胀距离dis=ph*tan(angle)+dis_th,其中ph为悬崖深度,dis_th为预设值。
8.根据权利要求6所述的装置,所述膨胀悬崖点云单元具体为:根据膨胀距离对悬崖点云pc中每一个悬崖点pi(xi,yi,zi)进行正方形膨胀获取膨胀后的悬崖点云pc’。
9.根据权利要求8所述的装置,所述膨胀悬崖点云单元还包括:根据膨胀的正方形左下角点为p_lb、左上角点为p_lf、右上角点为p_rf、右下角点为p_rb,由p_lb、p_lf组成左线段,对左线段进行线性插值,得到一系列左线段上的点,并加入到悬崖点云中;对p_lf、p_rf组成的线段,p_rf、p_rb组成的线段,p_rb、p_lb组成的线段进行插值后得到的点加入到悬崖点云中,获取膨胀后的悬崖点云。
10.一种机器人,所述机器人包括:一处理模块,一底盘,一激光雷达,一存储模块,所述存储模块存储有指令,在所述指令被执行时,用于实现权利要求1-5中任一项所述的一种识别悬崖的方法。