论文部分内容阅读
摘 要:由于二维激光传感器成本比较昂贵,不是所有的导航实验条件都能够满足购买此设备。所以有必要考虑采用虚拟仿真二维激光传感器的方法,代替此扫描设备。此虚拟仿真方法是基于不同应用场景的栅格地图信息,模拟二维激光扫描周围现场场景,并可以将扫描后的激光信息传递给导航控制器。该应用结果表明,二维激光导航模拟器能够很好的模拟激光扫描周围场景,并将应用场景的描述信息准确地提供给导航控制器,为导航控制器实现建图、避障等功能提供依据
关键词:二维激光;传感器;虚拟仿真;栅格地图;导航控制器
文献标志码: TP242 中图分类号: A
1 引言
随着移动机器人[1]在物流等行业的推广和使用,二维激光设备[2]变的尤为重要。在验证导航、建图、避障等算法时,二维激光设备又是必不可缺少的核心设备。所以需要开发出一种模拟器代替二维激光传感器的使用,以便进行大量的实验。
本文建立了一整套的二维激光导航模拟器,使得开发人员更加直观的观察二维激光导航状态,同时模拟器向导航控制器传递激光导航信息,以便验证移动机器人的相关算法。
2 环境模拟
激光模拟仿真前,需要对周围场景进行描述,从而使得激光模拟器可以根据这些描述,扫描周围场景,确定场景物体位置。场景环境描述(即栅格地图[3])是由实物二维激光传感器扫描周围复杂环境[4]而建立。
3 激光模拟
二维激光如何扫描周围场景,跟激光点的位置、角度和环境有关,同时也跟激光传感器的参数有关。通常情况下,激光传感器的参数和现场环境都是确定的,模拟算法只跟激光点的位置和角度有关。
3.1 激光模拟计算
激光模拟是基于栅格地图进行扫描,所以首先需要对栅格地图进行分析[5]。栅格地图的属性文件包括地图左下角点在世界坐标系中的坐标值、栅格地图的行数和列数、栅格直径大小。首先需要获取每个栅格在世界坐标系中的位置,如公式(1)。
Lx和Ly是栅格在世界坐标系中x、y方向的数值,per是栅格直径大小,Column是栅格所在地图的列数,Row是栅格所在地图的行数,Scale是世界坐标系与地图坐标系的比例系数。
(1)
激光模拟计算时,面积较大的地图,栅格数会比较多,导致算法复杂度增加,导致程序效率降低,无法在一个循环周期内处理完所有数据。故本文采用局部优化方法,先排除无效数据,得到有用数据,再进行算法处理,加快算法速度。
排除激光传感器无法扫描到栅格地图的方法,需要确定激光可达到区域。可达区域是以激光位置为圆心,激光扫描长度为半径的圆形范围内,如下方法。
Lx和Ly是栅格在世界坐标系中x、y方向的数值,Len是栅格与激光点的长度,LaserX和LaserY是二维激光点在世界坐标系中x、y方向的位置数值。Len如果小于激光扫描长度,此栅格就为激光线可达到的点。如公式(2)计算求得Len。
(2)
判断每个栅格到激光点的角度与激光朝向所成夹角在90度范围内,以排除激光的后面、侧面激光扫描线不能达到位置。如图2所示,两条扫描线都与Y轴夹角小于90度。如公式(3)所示,x是栅格与激光点之间的角度值,atan是C语言中的反正切函数,返回方向角度,fabs是C语言中的求绝对值的函数,是激光朝向角度,就是最终求的夹角,当小于等于90时,即为有效的栅格点。
(3)
获取有效的栅格点后,需要将有效的栅格点当作阻挡激光扫描线的障碍点,传递给导航控制器。传递信息包括每个栅格阻挡扫描线的序号、扫描线的长度。求扫描线的长度如公式(2)所示,求阻挡扫描线的序号,以下公式所示。
LaserID是激光扫描线的序号,fetep是两条扫描之间的角度。
(4)
3.1.1 阻挡激光扫描线问题
在现实场景中,很多情况下,障碍物放置都是多层次的[5]。所以激光扫描时,部分扫描线会被障碍物阻挡,无法扫描到此障碍物后面的障碍物,需要考虑算法与实际情况保持一致。
根据公式(2)可得到某条扫描线上从障碍物到激光点的长度,最小的长度即为这条激光扫描线最终可达到的长度。在仿真模擬器中,需要描绘此线条,并传递此序号激光的长度给导航控制器。如果激光未扫到障碍物,无需描绘此线。
3.1.2 激光扫描线丢失问题
在仿真过程中,发现激光点与栅格离的很近时,很多扫描线会丢失。通过大量实验分析,激光点与栅格离的越近时,一个栅格内会有更多条扫描线穿过,计算这些扫描线的方法如下。
求导一个栅格内,由哪些序号的激光扫描线经过。首先利用公式(3)求出每个顶点的与激光点之间的角度值,并比对出最小角度值min和最大角度值max,再通过公式(5)得出此栅格内激光扫描线最小序号Lmin和最大序号Lmax,最小序号与最大序号的区间即为穿过栅格所有激光的序号区间。
(5)
3.2 噪声抑制
在实际应用中,激光扫描线扫描的距离值并不会跟数学计算公式得出的结论一模一样,是有噪声[6]存在的,目前市场上常用的激光SLAM噪声的误差范围为(-3cm,3cm),并且此误差随机产生的。模拟器模拟数值要与实际情况要保持一致,就必须要抑制此误差的影响。最佳的办法是在计算出的激光扫描距离上加上噪声处理。
Lend是某个序号扫描线的最终长度,L是通过计算所得的某个序号扫描线的最终长度。
(6)
4 模拟激光实现
二维激光导航模拟器实现激光的模拟,首先需要导入栅格地图,实现对现场环境进行描述。激光SLAM移动到栅格地图中任意位置,扫描周围场景。如图1所示,二维激光点在不同的位置和不同的朝向时,激光的扫描信息会不同。
5 结语
模拟器很好的模仿二维激光导航传感器,在不同的场景、空间位置与激光不同的朝向,模拟器都能精准的模拟出激光,给予导航控制器算法支持。随着模拟器的应用,开发人员无需购买昂贵的二维激光导航传感器,节省大量物力成本。
参考文献:
[1]袁明. 柔性复合机器人的设计与应用[J].物流科技, 2018,18(6):63-65.
[2]周星林, 吕文莎, 伍洋, 伊皓晖. 二维激光扫描车辆行驶跑偏量测量研究[J]. 汽车技术, 2016,1(10):7-10.
[3]王启宇, 李刚俊. 基于典型栅格地图的轮式移动机器人路径规划与跟踪[J].西南科技大学学报, 2017,32(4):54-57.
[4]秦玉鑫, 张高峰, 王裕清. 针对复杂环境的模块化栅格地图构建算法[J]. 控制工程, 2016,23(10):1627-1633.
[5]于晓天, 高秀花, 张俊, 郑冰环, 费雯凯. 基于分层栅格地图的移动机器人路径规划[J].导航与控制,2017,16(4):30-36.
[6]唐娴, 李鸿雁. 激光成像跟踪系统的图像噪声抑制分析[J].激光杂志, 2016,37(6):106-108.
关键词:二维激光;传感器;虚拟仿真;栅格地图;导航控制器
文献标志码: TP242 中图分类号: A
1 引言
随着移动机器人[1]在物流等行业的推广和使用,二维激光设备[2]变的尤为重要。在验证导航、建图、避障等算法时,二维激光设备又是必不可缺少的核心设备。所以需要开发出一种模拟器代替二维激光传感器的使用,以便进行大量的实验。
本文建立了一整套的二维激光导航模拟器,使得开发人员更加直观的观察二维激光导航状态,同时模拟器向导航控制器传递激光导航信息,以便验证移动机器人的相关算法。
2 环境模拟
激光模拟仿真前,需要对周围场景进行描述,从而使得激光模拟器可以根据这些描述,扫描周围场景,确定场景物体位置。场景环境描述(即栅格地图[3])是由实物二维激光传感器扫描周围复杂环境[4]而建立。
3 激光模拟
二维激光如何扫描周围场景,跟激光点的位置、角度和环境有关,同时也跟激光传感器的参数有关。通常情况下,激光传感器的参数和现场环境都是确定的,模拟算法只跟激光点的位置和角度有关。
3.1 激光模拟计算
激光模拟是基于栅格地图进行扫描,所以首先需要对栅格地图进行分析[5]。栅格地图的属性文件包括地图左下角点在世界坐标系中的坐标值、栅格地图的行数和列数、栅格直径大小。首先需要获取每个栅格在世界坐标系中的位置,如公式(1)。
Lx和Ly是栅格在世界坐标系中x、y方向的数值,per是栅格直径大小,Column是栅格所在地图的列数,Row是栅格所在地图的行数,Scale是世界坐标系与地图坐标系的比例系数。
(1)
激光模拟计算时,面积较大的地图,栅格数会比较多,导致算法复杂度增加,导致程序效率降低,无法在一个循环周期内处理完所有数据。故本文采用局部优化方法,先排除无效数据,得到有用数据,再进行算法处理,加快算法速度。
排除激光传感器无法扫描到栅格地图的方法,需要确定激光可达到区域。可达区域是以激光位置为圆心,激光扫描长度为半径的圆形范围内,如下方法。
Lx和Ly是栅格在世界坐标系中x、y方向的数值,Len是栅格与激光点的长度,LaserX和LaserY是二维激光点在世界坐标系中x、y方向的位置数值。Len如果小于激光扫描长度,此栅格就为激光线可达到的点。如公式(2)计算求得Len。
(2)
判断每个栅格到激光点的角度与激光朝向所成夹角在90度范围内,以排除激光的后面、侧面激光扫描线不能达到位置。如图2所示,两条扫描线都与Y轴夹角小于90度。如公式(3)所示,x是栅格与激光点之间的角度值,atan是C语言中的反正切函数,返回方向角度,fabs是C语言中的求绝对值的函数,是激光朝向角度,就是最终求的夹角,当小于等于90时,即为有效的栅格点。
(3)
获取有效的栅格点后,需要将有效的栅格点当作阻挡激光扫描线的障碍点,传递给导航控制器。传递信息包括每个栅格阻挡扫描线的序号、扫描线的长度。求扫描线的长度如公式(2)所示,求阻挡扫描线的序号,以下公式所示。
LaserID是激光扫描线的序号,fetep是两条扫描之间的角度。
(4)
3.1.1 阻挡激光扫描线问题
在现实场景中,很多情况下,障碍物放置都是多层次的[5]。所以激光扫描时,部分扫描线会被障碍物阻挡,无法扫描到此障碍物后面的障碍物,需要考虑算法与实际情况保持一致。
根据公式(2)可得到某条扫描线上从障碍物到激光点的长度,最小的长度即为这条激光扫描线最终可达到的长度。在仿真模擬器中,需要描绘此线条,并传递此序号激光的长度给导航控制器。如果激光未扫到障碍物,无需描绘此线。
3.1.2 激光扫描线丢失问题
在仿真过程中,发现激光点与栅格离的很近时,很多扫描线会丢失。通过大量实验分析,激光点与栅格离的越近时,一个栅格内会有更多条扫描线穿过,计算这些扫描线的方法如下。
求导一个栅格内,由哪些序号的激光扫描线经过。首先利用公式(3)求出每个顶点的与激光点之间的角度值,并比对出最小角度值min和最大角度值max,再通过公式(5)得出此栅格内激光扫描线最小序号Lmin和最大序号Lmax,最小序号与最大序号的区间即为穿过栅格所有激光的序号区间。
(5)
3.2 噪声抑制
在实际应用中,激光扫描线扫描的距离值并不会跟数学计算公式得出的结论一模一样,是有噪声[6]存在的,目前市场上常用的激光SLAM噪声的误差范围为(-3cm,3cm),并且此误差随机产生的。模拟器模拟数值要与实际情况要保持一致,就必须要抑制此误差的影响。最佳的办法是在计算出的激光扫描距离上加上噪声处理。
Lend是某个序号扫描线的最终长度,L是通过计算所得的某个序号扫描线的最终长度。
(6)
4 模拟激光实现
二维激光导航模拟器实现激光的模拟,首先需要导入栅格地图,实现对现场环境进行描述。激光SLAM移动到栅格地图中任意位置,扫描周围场景。如图1所示,二维激光点在不同的位置和不同的朝向时,激光的扫描信息会不同。
5 结语
模拟器很好的模仿二维激光导航传感器,在不同的场景、空间位置与激光不同的朝向,模拟器都能精准的模拟出激光,给予导航控制器算法支持。随着模拟器的应用,开发人员无需购买昂贵的二维激光导航传感器,节省大量物力成本。
参考文献:
[1]袁明. 柔性复合机器人的设计与应用[J].物流科技, 2018,18(6):63-65.
[2]周星林, 吕文莎, 伍洋, 伊皓晖. 二维激光扫描车辆行驶跑偏量测量研究[J]. 汽车技术, 2016,1(10):7-10.
[3]王启宇, 李刚俊. 基于典型栅格地图的轮式移动机器人路径规划与跟踪[J].西南科技大学学报, 2017,32(4):54-57.
[4]秦玉鑫, 张高峰, 王裕清. 针对复杂环境的模块化栅格地图构建算法[J]. 控制工程, 2016,23(10):1627-1633.
[5]于晓天, 高秀花, 张俊, 郑冰环, 费雯凯. 基于分层栅格地图的移动机器人路径规划[J].导航与控制,2017,16(4):30-36.
[6]唐娴, 李鸿雁. 激光成像跟踪系统的图像噪声抑制分析[J].激光杂志, 2016,37(6):106-108.