波前边缘检测 Wavefront Frontier Detector

论文《Frontier Based Exploration for Autonomous Robot》

1

文章的重点时实现波前边界检测,在实时构建的地图上搜索边界,并通过一个规划算法引导机器人移动到最近的边界,直至创建整个环境。
一些概念:
Unknown Region:
Known Region:
Open-Space:不包含障碍物的已知区域。
Occupied-Space:包含障碍物的已知区域。
Occupancy Grid:
Frontier:已知区域与未知区域的交界。边界是一组未知区域点,每个点都包含Open-Space邻域点。

2

边界检测算法基于广度优先策略。首先在整个网格上运行BFS搜索,并将边界点添加到一个队列中。然后再边界点上运行第二个BFS搜索以获得最终边界(边界是连续的,是由边界点连接而成)。
边界按照与机器人当前位置的欧氏距离的递增顺序排列在队列中。因此,该算法引导机器人移动到最近的边界。

3

算法是在frontier-based exploration【1】上改进的,称为Wavefront Frontier Detector (WFD) 波前边界检测算法。WFD与原来的方法相似,基于两个嵌套的广度优先搜索。WFD算法相对于原始算法的主要优点是,它只扫描占用网格的已知区域,而不是在算法每次运行时扫描整个网格的原始方法。WFD方法是有效的,因为边界永远不会出现在未知区域。这一关键差异显著降低了算法的时间复杂度。为了确保每次调用算法时只扫描已知区域,WFD使用四种可能的指示之一对点进行分类:
Map-Open-List: 第一层BFS 队列中的点
Map-Close-List: 第一层BFS已经处理过的点
Frontier-Open-List: 第二层BFS 队列中的点
Frontier-Close-List: 第二次BFS处理过的点

代码:https://github.com/tpepels/turtlebot_slam

代码未能成功复现,但逻辑比较清晰.

总框图

在这里插入图片描述

波前边界检测算法

在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MATLAB中进行波前畸变仿真可以使用光学工具箱(Optics Toolbox)来模拟光线传播和波前畸变效应。下面是一个简单的示例代码,演示如何在MATLAB中进行波前畸变仿真: ```matlab % 定义系统参数 wavelength = 0.5; % 光波长(单位:微米) aperture_diameter = 1; % 光圈直径(单位:毫米) focal_length = 10; % 焦距(单位:毫米) % 创建光线传播对象 optSystem = opticalSystem; optSystem.SystemAperture = aperture('shape','circular','radius',aperture_diameter/2); % 光圈形状和大小 optSystem.ObjectDistance = Inf; % 物距无穷远(平行光入射) optSystem.ImageDistance = focal_length; % 成像距离等于焦距 optSystem.Wavelength = wavelength; % 设置光波长 % 添加畸变模型 % 这里以球面畸变为例,你可以根据需要选择其他畸变模型 optSystem.Surface{1}.Glass = glass('BK7'); optSystem.Surface{1}.Radius = focal_length; % 曲率半径等于焦距 % 计算波前畸变 wavefront = computeWavefront(optSystem); % 可视化波前畸变 figure; show(wavefront); % 显示像差图 figure; show(wavefront,'WavefrontPhase'); % 显示畸变后的光斑 figure; show(wavefront,'SpotDiagram'); % 显示畸变前后的光斑对比 figure; show(wavefront,'SpotDiagram','comparison'); ``` 上述代码首先定义了系统的参数,包括光波长、光圈直径和焦距。然后创建了光线传播对象,并设置光圈形状、物距和成像距离等参数。接着通过添加畸变模型来模拟波前畸变效应,这里使用了球面畸变模型。最后计算波前畸变并可视化结果,包括波前畸变图、像差图和光斑图。 你可以根据需要调整系统参数和畸变模型,以及进一步分析和可视化波前畸变效应。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值