目录
致谢:ROS赵虚左老师
一、【概述】二狗子找大水法
二、【SLAM】即时定位与地图构建
三、【AMCL】自适应蒙特卡洛定位
四、【Move_base】路径规划
五、【cmd_vel】运动控制
六、环境感知
致谢:ROS赵虚左老师
Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
参考赵虚左老师的实战教程
一、【概述】二狗子找大水法
关键技术有如下五点:
1.全局地图
2.自身定位
3.路径规划
4.运动控制
5.环境感知
ROS 官方为了提供了一张导航功能包Navigation的图示
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】路径规划
-
全局路径规划(gloable_planner)
根据给定的目标点和全局地图实现总体的路径规划,使用 Dijkstra 或 A* 算法进行全局路径规划,计算最优路线,作为全局路线
-
本地时时规划(local_planner)
在实际导航过程中,机器人可能无法按照给定的全局最优路线运行,比如:机器人在运行中,可能会随时出现一定的障碍物... 本地规划的作用就是使用一定算法(Dynamic Window Approaches) 来实现障碍物的规避,并选取当前最优路径以尽量符合全局最优路径
五、【cmd_vel】运动控制
导航功能包集假定它可以通过话题"cmd_vel"发布geometry_msgs/Twist
类型的消息,这个消息基于机器人的基座坐标系,它传递的是运动命令。这意味着必须有一个节点订阅"cmd_vel"话题, 将该话题上的速度命令转换为电机命令并发送。
六、环境感知
感知周围环境信息,比如: 摄像头、激光雷达、编码器...,摄像头、激光雷达可以用于感知外界环境的深度信息,编码器可以感知电机的转速信息,进而可以获取速度信息并生成里程计信息。
在导航功能包集中,环境感知也是一重要模块实现,它为其他模块提供了支持。其他模块诸如: SLAM、amcl、move_base 都需要依赖于环境感知。
2023.11.14
渝北仙桃数据谷