编号:D628
大小:12M
环境:Matlab2023b
简介:SLAM代表同步定位和映射,在过去的二十年里,它一直是一个研究领域。该代码部分实现了基于扩展卡尔曼滤波器(EKF)的SLAM模拟器,这是90年代发现的第一个可用的解决方案。在过去的20年里,已经开发了许多更有效的SLAM算法,然而EKF SLAM仍然用于低计算能力的简单应用,并且它是更先进方法的基础。
以下是一些最重要的文件:
*MAIN:这是您将运行以启动模拟的脚本。在变量的配置和初始化之后,循环开始。每个循环执行预测EKF步骤,并且每当检测到地标时,它也执行EKF更新步骤。每个循环分为五个部分:
*机器人的控制和机器人真实位置的计算
*使用控件的预测步骤
*每当观察到地标时更新步骤
*用于后处理的数据存储
*动画
*configfile:该文件设置模拟的配置参数。代码中解释了每个参数,因此可以随意使用它们来观察不同的输出(例如,增加观察噪音,直到机器人迷路,或者减小最大转向角,直到机器人无法跟随轨迹)。
*initialization:这个脚本初始化一些变量以备将来使用。不是很有趣。
*compute_steering:这是一个用于机器人的简单控制器,用于将前轮转向下一个转向点,该函数的输出是在引入噪声之前移动机器人的实际转向角和速度。
**vehicle_model:更新实际机器人姿势的功能(在实际任务中未知,但我们知道,因为这是一个模拟)
**预测:EKF预测步骤。您将根据类注释来实现此函数。
*get_observations:测量传感器范围内地标的距离和方位。
*data_associate_aknown:假设提取的地标和我们正在构建的地图中的地标之间存在已知的对应关系。这从来不是模拟之外的真实情况,但这是一个很好的起点。
**data_associate:当假设对应关系不为已知时,这将替换data_assoiate_known,这就是真实世界数据的情况。您必须使用课堂上解释的最近邻算法来实现此函数。
**更新:EKF更新步骤。您将实现此功能。
*扩增:该函数将一些与先前映射的地标不相关的地标检测添加到状态向量中。它只添加那些检测到的与地图中其他地标相距足够远的地标作为新地标。这样做是为了避免在地图中只有一个地标的情况下创建多个地标。
该代码中还有许多其他函数,用于存储数据以进行后期处理并创建模拟。除非你知道自己在做什么,否则不要更改这些功能。
运行展示
main_ekf.m
main_ekf_slam.m
配套文件
我们提供完整项目文件清单如下:
文件目录
├ 1.项目源码
├ 2.运行截图
└ 3.演示视频
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者文档,可以与我们交换,分享有积分奖励和额外收入!
4. 本站提供的源码、文档等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.2zcode.com",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:网站内的所有源码都经过我们亲自测试,均可以正常使用.
索炜达.猿创 » 基于Matlab用于机器人运动过程的EKF-SLAM模拟器
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 你们有qq群吗怎么加入?