版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
移动机器人的建图、导航与避障实现分析案例目录TOC\o"1-3"\h\u19794移动机器人的建图、导航与避障实现分析案例 192851.1基于Gmapping的建图与导航 1299821.1.1使用Gmapping建图 134351.1.2基于二维地图的导航 5164241.1.3导航过程中避障与路径规划 783081.1.4多点导航 850441.2基于RTAB-Map的建图与导航 10175261.2.1回环与邻近检测模块 12322211.2.2使用RTAM-Map建图 13279211.2.3导航结果分析 15基于以上的硬件平台和模型,机器人具备了从硬件底层上获知了自身运动和位姿信息。接下来需要将环境传感器数据收集到以机器人移动所建立的地图上,并再地图上使用SLAM技术找到机器人位于地图上的位姿。机器人想要完成导航要知道“我在哪里?”“目标在哪?”“怎样达到目标?”三个问题。机器人自身位姿信息和目标位置信息依靠环境传感器和自生信息完成。最后一问是导航问题的关键。因此,机器人导航可以概况为地图创建、在地图上定位和在地图中规划路线。1.1基于Gmapping的建图与导航1.1.1使用Gmapping建图激光雷达的SLAM算法常用的目前有:基于滤波的Gmapping算法、基于图优化的Cartographer算法和Hector算法ADDINNE.Ref.{7C247646-B47C-4EB7-84F2-B632F5EAF262}[13]。根据本文中使用的机器人的情况以及在室内等使用场景下,选择使用依赖里程计信息、IMU信息与激光雷达信息Gmapping算法。粒子滤波算法是Gmapping算法的基础,在建图时需要雷达的深度信息ADDINNE.Ref.{8B0B2B55-EA94-4E7F-900D-986CDD6E909F}[14]。在ROS中使用该算法话题和服务如图4-1所示图4-1Gmapping节点通信图Gmapping运行时需要订阅激光雷达数据和TF坐标转换话题。Gmapping算法会实时接收动态地图用于对比和维护之前的地图,同时会根据订阅数据发布如下内容地图与里程计关系,这样就可以描述机器人在当前地图上处于什么位置。地图元数据meta数据,使用灰度描述,哪里是障碍物哪里是空地可以通过。地图栅格数据,栅格数据包括地图长宽,地图分辨率等信息。在使用给mapping算法时,需要接收TF坐标转换关系。TF是ROS为机器人提供坐标系转换包,TF可以随时记录各种坐标系之间的变换关系。由于激光雷达和摄像头等设备并不与机器人底盘中心重合,所以在运动的时候需要实时转换设备与机器人底盘直接的坐标关系。这些位置关系需要在搭建完机器人后进行测量,获得与机器人底盘中心的位置关系,并写入URDF文件中。机器人在运行时,存在如图4-2所示的转换坐标系关系图4-2机器人TF坐标系转换关系图其中odom_combined到base_footprint的坐标转换由ROS的robot_pose_ekf包计算转换关系。ROS提供的导航功能包中的robot_pose_ekf来估计地图上机器人的位姿信息。odom_combined消息通过robot_pose_ekf使用扩展卡尔曼滤波器对阿克曼小车的陀螺仪和霍尔编码器数据进行融合。TF通过将里程计推算机器人位姿与机器人在地图上的投影位姿,是主要转换关系。通过两种关系可以获知里程计和机器人感知环境信息之间存在的误差。进行建图时需要机器人环顾周边环境,这时需要控制端命令机器人移动进行建图。为了能够一边控制机器人移动,一边实时查看机器人的建图效果。本文主要由键盘控制节点控制机器人移动,并通过RVIZ工具查看机器人创建的地图。控制流程如图4-3所示。图4-3键盘控制通信图键盘控制节点使用了ROS官方的turtlebot_teleop_keyboard,通过指定线速度和角速度由键盘按钮给出移动方向的方式发送控制命令。这种命令以Twist这一数据结构进行传递,该结构中包含三轴的线速度和角速度等六个变量。为了更加安全和平滑的控制小车,这里使用了yocs(YujinOpenControlSystem)的速度平滑控制功能包(yosc_velocity_smoother),平滑控制包使用预设的极限速度来平滑速度曲线。根据电机最大允许加速度产生平滑的速度指令,从而产生较小的速度步长ADDINNE.Ref.{CC47CBB7-C7A8-4332-BAFF-51EE73F480E0}[15]。将机器人放置在宿舍的中间,通过键盘控制机器人运动,环顾宿舍一圈通过Gmapping算法实时读取动态地图。在运动一段距离以后获得如图4-4所示的宿舍二维地图。图4-4Gmapping建图效果图当机器人完成地图构建后,使用map_server将获得的地图栅格数据和二维地图的元数据。1.1.2基于二维地图的导航本文机器人所用到的ROS导航框架原理图,如图4-5所示图4-5机器导航结构图由框架图可以知道,导航主要依靠move_base这一框架为中心。move_base获取定位、传感器、地图信息和导航目标信息等信息,通过内部规划器和代价地图等处理,最后规划出控制指令让机器底盘执行命令。AMCL(AdaptiveMonteCarlolocalization)是自主移动机器人在二维环境下的一种基于概率的定位系统,它采用自适应蒙特卡洛定位,并且使用粒子滤波对机器人在已知地图中进行位姿跟踪ADDINNE.Ref.{D0D790AE-5BB6-4A18-833E-4D89E1C2BFAA}[16]。本文使用的里程计类型是自定义的模型,在使用ACML的时候需要选用omni里程计模型进行定位推算。如果使用ACML的差分模型,这个模型是根据《概率机器人》中的sample_motion_model_odometry算法,使用的参数是odom_alpha1throughodom_alpha4。而机器人定位模型需要使用的参数是odom_alpha1throughodom_alpha5ADDINNE.Ref.{5AFCA7B2-DF5D-48F8-8D6E-D2DC162C0F7F}[17]。参数说明:odom_alpha1里程计旋转导致旋转的估计中指定预期噪声,考虑里程计只有旋转累计误差odom_alpha4里程计旋转导致平移的平移估计中指定预期噪声odom_alpha5捕获所述机器人的垂直于行进方向的平移,只适用于全方向模型导航需要在地图开始,为了方便机器人在地图上进行移动需要基于地图信息处理出适合机器人移动的信息。代价地图(costmap)是导航路径的选择依据,通过处理传感器数据在原有的二维地图的基础上生产新的栅格地图,这张地图会更据传感器数据进行更新和存储环境信息。在机器导航的时候需要进行以下操作维护代价地图:地图障碍标记和清除标记。通过订阅传感器数据,在代价地图上标记环境中的障碍物以及原本不在地图上的新障碍物,也会移除当前不存在的障碍物信息。权值分配。代价地图中每个栅格有三种情况:存在障碍、空地可以通过、未感知的未知区域。栅格状态需要由权值进行控制。地图更新。按照一定频率定时对地图进行更新。将上面两个步骤新的信息更新到代价地图中,这样就可以动态获知当前环境信息以及消除动态障碍物。膨胀。膨胀是一种保护机器人的方式,膨胀方法是根据障碍物在障碍物外层提高成本代价。这样可以让机器人尽量不靠近障碍物运行,从而减少撞上障碍物的风险。通过以上操作会生成两种代价地图:全局代价地图:主要基于原有的地图信息,以及被传感器更新过的信息。以全局的视角给目标点提供基于原有和较旧地图信息。局部代价地图:主要依靠当前传感器信息。以局部的视角提供一张更具当前传感器信息提供的动态地图,这个地图将一直出现在机器人的附近。不在原先地图上的障碍物和新出现的动态障碍物依靠局部代价地图进行避障路线规划。1.1.3导航过程中避障与路径规划机器人导航路径规划(move_base),机器导航主要依靠两个规划器:全局路径规划器(globalplanner):在全局代价地图上使用全局图搜索算法规划出由机器人当前位置到达目标点的合理路线。全局规划线路将作为局部的参考依据。局部路径规划器(localplanner):按照全局规划器的指引,在局部代价和膨胀等信息基础上。在全局规划器给出的路线上因动态障碍和新出现障碍而不合理的部分,并予以纠正从而规划新的行进路线。并基于局部规划的路线给出机器人当前需要进行的操作。两个规划器从宏观和微观的视角上规划线路,由全局规划器给出大致线路,再由局部规划器纠正全局规划忽略的细节和动态的信息,很好的让机器人规避了障碍物。基于以上导航框架就可以在上文建立的二维地图中进行导航了。导航效果如图4-6所示图4-6Gmapping导航效果图在地图下方粗圆柱体是导航目标点,使用RVIZ的2d目标的工具在地图上给出机器人需要到达的地点和朝向。在地图上放置了一个圆桶作为新出现的障碍物,这个障碍物在原先的地图上并不存在。机器人周围灰色的像素是局部代价地图进行膨胀后的结果。机器人根据导航给出的路线,尝试绕行障碍物如图4-7所示图4-7Gmapping导航效果图从图可以获知,规划器给出了避让路线,机器人朝着圆桶旁边的空间前进。地图上的细线是规划器给出的导航路径。1.1.4多点导航多点导航是在单个导航目标的基础上一次增加多个导航点。让机器人在完成一个动态增加导航点队列,在完成整个时进行巡航回到第一个导航点,重复以上动作。多点导航流程如图4-8所示图4-8多点导航流程图通过RVIZ工具在地图上发布导航点,具体效果如图4-9所示图4-9多点导航效果图地图上红色的数字是导航点的标记也是导航点建立的顺序,机器人会根据导航点的顺序逐个到达目标点位。1.2基于RTAB-Map的建图与导航前面的小节介绍了基于Gmapping的二维地图建立与导航方式。而Gmapping方法仅依赖于里程计和激光雷达等数据,在建图时会因为里程计的误差累计而导致建图错误。如果长距离行驶时里程计误差在建图时不断累计,所获得的地图将无法与原有的地图信息重合将导致地图与实际情况严重不符合,这会让导航也出现严重的误差甚至无法让机器人在地图上找到自己的位置。为了处理这种致命问题,机器人需要利用深度摄像头信息在建图和导航时提供必要的信息,利用视觉的深度信息纠正里程计的误差。因此本文选用了RTAB-Map算法修正这种误差。RTAB-Map算法是一中基于图优化的SLAM方法。RTAB-Map的目的在于提供一个与时间和尺度无关的基于外观的定位与构图解决方案,该方案针对解决大型环境中的在线闭环检测问题ADDINNE.Ref.{5BCFFD5F-4091-4CB6-91CC-11CB4AB380A2}[18]。主要包含以下五个环节:同步(Synchronization)、STM(Short-termmemory)、闭环于近邻检测(Loopclosureandproximitydetection)以及全局地图构建(Globalmapassembling)ADDINNE.Ref.{18842257-B3A8-4AD2-961D-B94982B49944}[19]。RTAB-Map算法结构框图如图4-10所示。图4-10RTAB-Map技术框架图其中激光雷达是可选模块,机器人使用了激光雷达所以选择接入这个信息。RTAB-Map具有两个内存管理机制:WM(workingmemory)工作内存和LTM(Long-termmemory)长期内存。这两种内存管理机制,共同管理着RTAB-Map的五个工作环节。当环境中的特征点达到阈值时,工作内存中不太可能形成闭环的特征点转移到LTM中。只有在工作内存中的特征点参与闭环检测。当一个闭环被检测到时,邻接特征点会重新从LTM中取回到工作内存中,用于下一个闭环的检测。在WM中存在五个环节同步器,在数据传入的时候,因为不同数据存在不一样的传输频率,而且传输延迟也不同。需要通过同步器根据时间戳获得同一时间内传入的数据。这样防止因为数据不在同一时间导致推理错误和找不到对于的特征。STM(Short-termmemory)短期记忆模块,传感器的原始数据将会保存在这里。这些数据就回环和邻近检测的基础,只有这里的数据才会参与检测。回环与邻近检测。模块会将STM数据提取建立节点,然后过程中进行对比上一个节点检查邻近的信息,再对比STM中最后一个节点是否存在回环。如果存在回环会将LTM中的节点取回再进行回环比较。图优化,当检测到回环、邻近检测、内存管理转移或取回节点时,应用图优化方法来最小化图中的错误。RTAB-Map使用的是GTSAM策略,这种策略收敛速度较快,建立六自由度的图质量较好ADDINNE.Ref.{4456802F-7672-476D-AA5B-D1E42A82FC18}[19]。当回环检测被错误触发时,会往图中添加错误。为了避免无线回环和邻近检测,如果经过优化后链接的转换改变超过转换方差因子,就取消新节点添加的所有回环和邻近链接。这样就消除了错误维护了图的稳定性。全局地图构建,经过图优化后,根据局部地图构建全局地图。为了在节点中保存三维局部占据栅格,使用了位姿图保持每个局部占据栅格的位姿。新节点会与全局栅格地图融合,增删障碍物。回环检测触发时,将姿态图中所有节点最新优化位姿进行全局图重构。全局地图将以三维占据栅格形式存在,按照ROS信息格式发布,提供给导航规划器使用。1.2.1回环与邻近检测模块想要对比不同深度图像之间的区别,需要先进行特征点创建。RTAB-Map图像签名由词袋方法创建。视觉词典为了泛化使用于各种场景,选择不需要预训练过程的增量式的创建的视觉词典。其中视觉单词的提取依靠OpenCV中的SpeededUpRobustFeatures(SURF,加速稳健特征)方法,每一个单词就是一个SURF特征描述。回环检测形成了视觉词典的特征不需要重复提取,就可以用少量的特征进行回环检测。当必须计算回环检测时,其他特征依然保留再节点中。从STM中新创建的节点与WM中的节点进行比较,通过权重更新和贝叶斯滤波器,以检测环路闭合。STM可以看作是在节点移动到WM之前缓冲区。当环路闭合假设到达固定阈值时,检测环路闭合并计算变化。运动估计方法与视觉里程计相同,如果回环检测成功,将向图中添加新的链接。闭环检测完成后,形成闭环概率最高的特征点并且不在工作内存中的特征点,会重新从LTM取回WM中。邻近检测邻近检测用于定位靠近当前位置的节点。当机器人处于相似环节时,可以依靠特征进行定位,同时无法查找回环。为了构建好的签名,新检测点找到与词典已有单词之间进行匹配,用最近邻和次近邻比率进行比较。如果最邻近距离与次邻近距离倍率小,那么这个特征就能够被其最近邻的特征单词表示。1.2.2使用RTAM-Map建图这里与Gmapping建图类似,也需要打开Gmapping维护二维地图,并给RTAB-Map提供初始坐标关联二维地图。依然选择使用简单的键盘进行控制,环顾宿舍环境一周获得如图4-11和图4-12所示效果图4-11RTAB-Map建图效果图图4-12RTAB-Map建图效果图可以看到通过RVIZ中可视化点云信息,在原本的二维地图上出现了三维的彩色点云数据。这些数据是根据深度摄像头数据进行全局地图构建关联到在二维地图上的。地图数据将会保存在指定路径下,存储并生成一个db文件。可以通过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东深圳市规划和自然资源局光明管理局劳务派遣人员招聘1人笔试题库及答案详解【名师系列】
- 2025-2026学年美术手牵手教案
- 2025-2026学年平面设计图纸教学楼
- 老年人社区护理与居家护理
- 2025-2026学年青蛙卖泥塘教学设计
- 国际贸易法大会2026年试题及答案
- 癫痫患者驾驶与出行建议
- 远程会诊:护理人员的培训工具
- 绩效评估标准统一确保公平公正指导书
- 文明的火炬传递仪仗的是文化的光芒-小学主题班会课件
- 2025山东菏泽郓城县人民医院招聘合同制护理人员60人笔试历年典型考题及考点剖析附带答案详解试卷2套
- 公租房培训教学课件
- 货车更换闸瓦课件
- GB/T 70.4-2025紧固件内六角螺钉第4部分:降低承载能力内六角平圆头凸缘螺钉
- 拍卖公司企业介绍
- 2025年教育系统校级后备干部选拔考试题及答案
- 2025年深圳辅警招聘考试题库及答案详解(全优)
- 司法协理员考试试题及答案
- 2025年南师附中特长试卷及答案
- 专利代理人考试真题及答案2025年
- 《红星照耀中国》名著领读-统编版语文八年级上册
评论
0/150
提交评论