一起自学SLAM算法:12.1 ros-navigation导航系统

连载文章,长期更新,欢迎关注:


写在前面

第1章-ROS入门必备知识

第2章-C++编程范式

第3章-OpenCV图像处理

第4章-机器人传感器

第5章-机器人主机

第6章-机器人底盘

第7章-SLAM中的数学基础

第8章-激光SLAM系统

第9章-视觉SLAM系统

第10章-其他SLAM系统

第11章-自主导航中的数学基础

第12章-典型自主导航系统

        12.1 ros-navigation导航系统

        12.2 riskrrt导航系统

        12.3 autoware导航系统

        12.4 导航系统面临的一些挑战

第13章-机器人SLAM导航综合实战


可以说ros-navigation是ROS系统中最重要的组件之一,绝大部分自主移动机器人的导航功能都是基于ros-navigation导航系统实现的。下面将从原理分析、源码解读和安装与运行这3个方面展开讲解ros-navigation导航系统。

12.1.1 ros-navigation原理分析

从图11-24来看,导航系统就是以导航目标、定位信息和地图信息为输入,以操控机器人的实际控制量为输出。首先要知道机器人在哪,然后要知道机器人需要到达的目标在哪,最后就是寻找路径并利用控制策略开始导航。导航目标通常人为指定或者特定程序触发,这其实回答了问题“我将到何处去”。定位信息通常由SLAM或者其他定位算法提供,这其实回答了问题“我在哪”。而地图信息为导航起点和终点之间提供了障碍物描述,那么在此基础上就可以利用路径规划寻找路径并利用控制策略输出实际线速度和角速度控制量进行导航了。而ros-navigation导航系统的实现也遵循了这样的基本思路,其中所涉及的很多理论知识已经在第11章中讨论过了,这里就主要对其中比较特别的AMCL定位和Costmap代价地图两个概念进行介绍吧。

1.AMCL定位

在ros-navigation中提供了一种比SLAM定位更轻量级的方案,即AMCL[1](Adaptive Monte Carlo Localization,自适应蒙特卡洛定位)定位方案。AMCL包含两种代码实现,即用于二维地图定位的代码实现amcl和用于三维地图定位的代码实现amcl3d,其中ros-navigation中已经默认集成了二维地图定位的amcl代码包。从图7-5就能看出单独定位问题P(x_{k}|Z_{0:k},U_{0:k},m)比SLAM问题P(x_{k},m|Z_{0:k},U_{0:k},x_{0})要简单,因为单独的定位问题是在环境地图m已知的情况下估计机器人位姿x_{k},而SLAM问题在地图m未知的情况下同时估计机器人位姿x_{k}和地图

  • 4
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值