《鸿蒙机器人编程》课件-4-1-移动机器人SLAM与导航_第1页
《鸿蒙机器人编程》课件-4-1-移动机器人SLAM与导航_第2页
《鸿蒙机器人编程》课件-4-1-移动机器人SLAM与导航_第3页
《鸿蒙机器人编程》课件-4-1-移动机器人SLAM与导航_第4页
《鸿蒙机器人编程》课件-4-1-移动机器人SLAM与导航_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.ROS导航与定位课程内容移动机器人导航概述SLAM技术介绍移动机器人定位技术介绍移动机器人路径规划介绍代价地图全局路径规划局部路径规划行为恢复ROSNavigation功能包参数介绍©NXROBO20222移动机器人导航概述移动机器人导航©NXROBO20224移动机器人导航:机器人能自主地从当前位置无碰撞地运动到指定的目标位置。导航模块的输入和输出分别是:目标位置、运动速度(运动指令)设置目标位置输入:目标位置输出:运动速度底盘控制器控制指令导航模块导航要解决3个问题:我在哪?我将要去哪?我如何到达?©NXROBO20225Navigation是ROS中最常用的子系统,是移动机器人导航相关包的集合,实现定位规划避障等相关功能Navigation提供了诸多功能包ROS中的Navigation导航系统ROS中的Navigation导航系统©NXROBO20226Navigation导航包总体框架地图定位路径规划ROS中的Navigation导航系统©NXROBO20227ROS中的Navigation导航系统©NXROBO20228Navigation这个导航系统的架构设计比较复杂,但是却非常经典以至于后来出现的其他机器人系统,在导航部分都基本借鉴了Navigation这个经典架构该架构将导航功能分为三大块:地图构建(SLAM)机器人定位路径规划导航要解决3个问题:我在哪?我将要去哪?我如何到达?SLAM技术SLAM的核心思想©NXROBO202210SLAM:叫同步定位与构图(SimultaeousLocalizationAndMapping),即在机器人移动时,同时估计机器人的位姿和环境地图©NXROBO202211SLAM的输入和输出输入输出©NXROBO202212按传感器类型分:SLAM的分类©NXROBO202213按所采用的方法分:SLAM的分类©NXROBO202214基于图优化的SLAM处理的数学模型©NXROBO202215SLAM的一般框架©NXROBO202216SLAM的一般处理流程©NXROBO202217ROS中流行的SLAM功能包Gmapping:最为常用和成熟的slam功能包,其集成了Rao-Blackwellized粒子滤波算法,订阅机器人的深度信息、IMU信息和里程计信息,同时完成一些必要参数配置,即可创建并输出基于概率的二维格栅地图hector_slam:使用高斯牛顿方法,不需要里程计数据,只根据激光信息进行地图构建,该算法对雷达帧率要求较高,一般要求高于20HZ。若雷达帧率较低,就要调低机器人运行速度小于0.3m/s,如果不降低机器人行驶速度,建图效果会非常差,甚至无法完成建图Cartographer:可以实现机器人在二维和三维条件下的定位及建图功能。目前该算法采用基于图网络的优化方法,主要基于激光雷达来实现SLAMRTAB-Map:是具有实时约束的全局闭环检测的RGB-DSLAM方法……©NXROBO202218GmappingGmapping概述©NXROBO202219GmappingGmapping的相关话题©NXROBO202220CartographerCartographer的总体框架移动机器人定位©NXROBO202222蒙特卡洛定位方法蒙特卡洛方法简介©NXROBO202223蒙特卡洛定位方法蒙特卡洛定位(MCL,MonteCarloLocalization)©NXROBO202224蒙特卡洛定位方法自适应蒙特卡洛方法简介移动机器人路径规划©NXROBO202226回顾:navigation总体框架路径规划全局路径规划局部路径规划代价地图©NXROBO202227代价地图costmap:分类与构成©NXROBO202228代价地图costmap:分类与构成局部代价地图全局代价地图全局地图©NXROBO202229全局路径规划主要任务:从外部获得导航的目标点,然后在全局代价地图里找出“代价最小”的那条路线,这条路线就是我们苦苦寻找的导航路线输入:目标点和全局代价地图输出:全局导航路径点,作为局部路径规划的输入全局路径规划算法基于搜索的规划算法A*、Dijkstra算法、D*、D*Lite、Floyd算法、BellmanFord算法、……基于采样的规划算法概率路图算法(ProbabilisticRoadMap,PRM)、快速随机扩展树算法(Rapidly-exploringRandomTree,RRT)、PRM和RRT的变种、……©NXROBO202230Navigation中全局路径规划的实现©NXROBO202231局部路径规划有了全局路径,按理说直接循线走即可,无奈世界变化太快,需要个机灵点的老司机去应对路上可能的突发情况,这位老司机就是局部规划器主要任务:从全局规划器获得导航路线,根据这个路线向机器人发送速度,驱动机器人“尽可能”按照路线去行走输入:全局路径和局部代价地图输出:机器人的速度局部路径规划算法基于采样的算法:动态窗口法(dwa)基于数值优化的算法:mpc、teb基于曲线拟合的算法:贝塞尔曲线、多项式曲线、B样条曲线©NXROBO202232Navigation中局部路径规划的实现©NXROBO202233动态窗口法(dwa)的思路基本思路:一定程度上采用了粒子滤波的思想,在速度空间(v,w)中采样多组速度,并模拟出这些速度在一定时间内的运动轨迹,并通过评价函数对这些轨迹进行评价,选取最优轨迹对应的速度驱动机器人运动主要步骤:1)采样机器人当前的状态(dx,dy,dtheta);2)针对每个采样的速度,计算机器人以该速度行驶一段时间后的状态,得出一条行驶的路线;3)利用一些评价标准为多条路线打分;4)根据打分,选择最优路径;5)重复上面过程。©NXROBO202234动态窗口法(dwa)的算法流程©NXROBO202235恢复行为Navigation导航包参数配置©NXROBO202237Navigation导航包中的参数amcl_demo_rviz.launch文件(1)启动机器人导航功能,可以在终端上运行如下命令:$roslaunchspark_navigationamcl_demo_rviz.launch©NXROBO202238Navigation导航包中的参数amcl_demo_rviz.launch文件(2)©NXROBO202239Navigation导航包中的参数move_base.launch.xml文件©NXROBO202240Navigation导航包中的参数costmap_common_params.yaml文件©NXROBO202241Navigation导航包中的参数global_costmap_common_params.yaml文件©NXROBO202242Navigation导航包中的参数local_costmap_common_params.yaml文件©NXROBO202243Navigation导航包中的参数move_base_params.yaml文件©NXROBO202244Navigation导航包中的参数dwa_local_planner_params.yaml文件小结©NXROBO202245简要介绍了ROSNavigation的总体框架讲解了SLAM的基本工作原理及分类简要介绍了AMCL移动机器人定位方法讲解了代价地图、全局路径规划、局部路径规划、行为恢复等移动机器人路径规划相关内容介绍了ROSNavigation功能包参数©NXROBO202246代价地图costmap:初始化2.实践课-房间建图课程内容测试SLAM用到的传感器操控spark机器人进行地图构建(运行SLAM程序)让spark室内导航©NXROBO202248启动spark机器人在终端运行一键脚本,启动Spark:选择1让机器人动起来然后根据提示,按“回车”键启动机器人49$cd~/spark_noetic$./onekey.sh©NXROBO2022测试深度视觉自动启动rviz可视化工具可以看到深度视觉的RGB和深度图像程序还将深度图像信息转化为点云信息和激光雷达信息,这些信息将用于地图构建。50©NXROBO2022里程计数据可视化启动Spark后,可以在rviz观测里程计数据首先在Displays面板的左下角点击Add,然后在对话框的Bytopic页面中选择/odom,最后点击OK这样就可以看到里程计信息了51©NXROBO2022里程计数据可视化可以在rviz中,看到红色箭头。52©NXROBO2022键盘遥控把控制终端窗口设为当前窗口,通过WASD键控制机器人移动。53©NXROBO2022手机遥控重新运行一键脚本,选择2根据提示,事先到指定网址下载手机远程遥控App(安卓),并安装好在手机App上进行相应配置按提示操作即可手机控制SPARK机器人了54©NXROBO2022地图构建Spark机器人实现了多种SLAM算法:gmapping、hector、karto、rtab_map等重新运行一键脚本,选择5,可以看到各类SLAM算法,可根据需要选择若选择1,则以gmapping方式构建地图55©NXROBO2022地图构建这时,使用键盘,手机或者其他方式控制spark就可以建立室内地图当然如果需要建立较好的地图,需要阅读源码并依据机器人情况认真调整参数56©NXROBO2022地图构建57©NXROBO2022在地图绘制完成后,选择之前弹出的保存地图终端窗口,进行地图保存,以备下一步导航之用。室内导航使用上一步建好的图即可实现室内导航,可自主避障运动运动指定位置在一键脚本中输入7,再选择1接着在rviz中使用2DPoseEstimate估计初始位姿然后使用2DNavGoal设置目标点这样机器人即可避开障碍物运动到目标点处。58©NXROBO2022室内导航并且可以通过rostopic查看相关主题数据,移动前后的数据变化和位姿如下所示:59$rostopicecho/move_base/goalgoal:pose:position:x:1.07281732559y:0.118636846542z:0.0orientation:x:0.0y:0.0z:0.056415118308w:0.998407399024©NXROBO20223DSLAM可进一步尝试使用rtabmap实现3DSLAM(/rtabmap)。运行一键脚本,选择5,再选择5,就可以通过WASD键进行3D建图。60©NXROBO20223DSLAM地图建完后可以直接使用2DNavGoal进行导航61©NXROBO2022Spark一键脚本Spark一键脚本其实就是一些Linux及ROS指令的集合,其目的是为了大家更方便地使用我们的机器人Spark。在学习过程中,建议大家打开这个脚本文件,查看这个脚本里的功能具体都执行了哪些指令,以巩固和提高学习的成果。目前SPARK的源码在GITHUB上托管并开源,一些新的功能会

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论