机器人领域的SLAM是什么

前言

本文将详细讲解机器人领域中的SLAM技术——同步定位与建图(Simultaneous Localization and Mapping,简称SLAM)。读者将学习到如下内容:无人机概述、SLAM概述、项目实例。在项目实例中,以卡耐基梅隆大学(CMU)机器人团队的项目为例,进行详细地讲解,指导大家配置环境,并运行项目的仿真代码,带大家感受SLAM的无穷乐趣。

 一、无人机概述

1.1  无人机飞行器的定义

无人驾驶飞行器(unmanned aerial vehicle)简称无人机是一种由自身程序控制或无线电遥控的,用来执行特定任务的。无人驾驶飞行器,“平台无人,系统有人”是无人机的基本特征。在执行3D任务—枯燥(Dull)、恶劣(Dirty)和危险(Dangerous)任务时,无人机相比有人机能够体现出更大优势。

1.2  无人机的分类

无人飞行器的种类繁多,主要包括飞艇、固定翼无人机、伞翼无人机、扑翼无人机、变翼无人机、旋翼式无人机等。

1.3  无人机的应用领域

无人飞行器的应用非常广泛,可以用于军事,也可以用于民用和科学研究。在民用领域,无人飞行器已经和即将使用的领域多达40多个,例如影视航拍、农业植保、海上监视与救援、环境保护、电力巡线、渔业监管、消防、城市规划与管理、气象探测、交通监管、地图测绘、国土监察等。

二、SLAM概述

2.1  基本概念

同步定位与建图(Simultaneous Localization and Mapping,简称SLAM)问题可以描述为:机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。

2.2  自主导航框架

自主导航框架包括定位、建图、运动规划(包括路径规划和轨迹优化)、控制等部分,如下所示:

2.2.1  定位部分

传感器包括:惯性测量单元(Inertia Measure Uint,简称IMU)、惯性里程计(视觉&激光)等

定位包括:GPS、动作捕捉仪等

2.2.2  建图部分

地图有很多种类型,包括点云地图、栅格地图、欧氏距离场、八叉树地图等,常用的地图主要是点云地图和栅格地图。

 2.2.3  运动规划部分

运动规划主要包括路径规划和轨迹优化:路径规划指的是机器人自主导航循迹的算法(包括Dijkstra算法、A*算法、RRT算法、人工势场法等),其中Dijkstra算法和A*算法为基于搜索的算法,RRT算法为基于采样的算法;轨迹优化指的是机器人在规划好的路径上进行移动,但由于路况、天气等环境影响,可能不完全循迹,存在误差,需要通过优化轨迹来使得机器人运动更加平滑和完善。

路径规划如下所示:

轨迹优化如下所示:

 2.2.4  控制部分

  • 线性控制
  • 非线性控制:自适应、滑模等

  • 抗干扰控制:ESO、NOB

  • 鲁棒控制
  • 智能控制(强化学习控制等)

三、项目实例

接下来,我们将了解一个实际的自主导航项目,对于无人机的自主导航,读者可以看看之前本人写的一篇文章:

在Docker上运行ROS(melodic版本)机器人项目_猪猪的超超的博客-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_65688914/article/details/133520612?spm=1001.2014.3001.5501上面文章运行的是港科大的一个叫做 FUEL 的无人机项目。

接下来,我将给读者展示一下CMU团队的项目仿真结果,而具体的运行指南,请大家参考官方网站,后续我将撰写中文版的项目运行指南,还请各位读者关注:Development Environment

下面是运行该团队的自主导航项目的仿真结果:

校园环境(Gazebo):

DSVP算法在校园环境下的运行(Rviz):


森林环境(Gazebo):

DSVP算法在森林环境下的运行(Rviz):

 总结

本文从无人机的基本概念开始,讲解无人机的分类和应用领域,引出SLAM自主导航框架,并详细讲解了定位、建图、运动规划(包括路径规划和轨迹优化)、控制这几个部分,最后以CMU团队的自主导航项目为例,展示了仿真结果,从实例的角度讲解SLAM。

后续我将撰写中文版的项目运行指南,还请各位读者关注!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部