【ROS导航Navigation】一 | 概述

目录

致谢:ROS赵虚左老师

一、【概述】二狗子找大水法

二、【SLAM】即时定位与地图构建

三、【AMCL】自适应蒙特卡洛定位

四、【Move_base】路径规划

五、【cmd_vel】运动控制

六、环境感知


致谢:ROS赵虚左老师

Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程

参考赵虚左老师的实战教程

一、【概述】二狗子找大水法

关键技术有如下五点:

1.全局地图

2.自身定位

3.路径规划

4.运动控制

5.环境感知

ROS 官方为了提供了一张导航功能包Navigation的图示 

怎么画一张地图???

二、【SLAM】即时定位与地图构建

simultaneous localization and mapping

实时            定位           和            建图

SLAM问题可以描述为: 机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,以绘制出外部环境的完全地图。

边定位边建图

SLAM技术:gmapping、hector_slam、cartographer、rgbdslam、ORB_SLAM

要完成 SLAM ,机器人必须要具备感知外界环境的能力,尤其是要具备获取周围环境深度信息的能力。感知的实现需要依赖于传感器,比如: 激光雷达、摄像头、RGB-D摄像头

SLAM 可以用于地图生成,而生成的地图还需要被保存以待后续使用,在 ROS 中保存地图的功能包是 map_server

三、【AMCL】自适应蒙特卡洛定位

adaptiveMonteCarloLocalization

自适应的蒙特卡洛定位,是用于2D移动机器人的概率定位系统。它实现了自适应(或KLD采样)蒙特卡洛定位方法,该方法使用粒子过滤器根据已知地图跟踪机器人的姿态。

四、【Move_base】路径规划

  1. 全局路径规划(gloable_planner)

    根据给定的目标点和全局地图实现总体的路径规划,使用 Dijkstra 或 A* 算法进行全局路径规划,计算最优路线,作为全局路线

  2. 本地时时规划(local_planner)

    在实际导航过程中,机器人可能无法按照给定的全局最优路线运行,比如:机器人在运行中,可能会随时出现一定的障碍物... 本地规划的作用就是使用一定算法(Dynamic Window Approaches) 来实现障碍物的规避,并选取当前最优路径以尽量符合全局最优路径

五、【cmd_vel】运动控制

导航功能包集假定它可以通过话题"cmd_vel"发布geometry_msgs/Twist类型的消息,这个消息基于机器人的基座坐标系,它传递的是运动命令。这意味着必须有一个节点订阅"cmd_vel"话题, 将该话题上的速度命令转换为电机命令并发送。

六、环境感知

感知周围环境信息,比如: 摄像头、激光雷达、编码器...,摄像头、激光雷达可以用于感知外界环境的深度信息,编码器可以感知电机的转速信息,进而可以获取速度信息并生成里程计信息。

在导航功能包集中,环境感知也是一重要模块实现,它为其他模块提供了支持。其他模块诸如: SLAM、amcl、move_base 都需要依赖于环境感知。

2023.11.14

渝北仙桃数据谷

猜你喜欢

转载自blog.csdn.net/Akaxi1/article/details/134407313
今日推荐