
SLAM&Navigation
月黑风高云游诗人
uestclqy@foxmail.com
展开
-
激光SLAM系列之启程
现在开始陆续更新最近在ROS下利用激光雷达进行SLAM建图,并用ROS提供的move_base和amcl等包进行导航的研究。主要是对SLAM和导航的源代码的剖析,以及一些平时调试的心得和案例。^ ^原创 2017-05-03 23:02:38 · 1996 阅读 · 0 评论 -
激光SLAM导航系列(一)SLAM与导航基本原理
激光SLAM基本原理基本原理原创 2017-05-04 10:01:47 · 65342 阅读 · 0 评论 -
激光SLAM导航系列(二)SLAM与导航系统框架
激光SLAM系统框架在激光SLAM系统中,Gmapping获取扫描的激光雷达信息以及里程计数据可动态的生成2D栅格地图。导航包则利用这个栅格地图,里程计数据和激光雷达数据做出适合的路径规划和定位,最后转换为机器人的速度指令。原创 2017-05-04 10:12:55 · 17302 阅读 · 0 评论 -
激光SLAM导航系列(三)Costmap(代价地图)(上)
Costmap(代价地图)(上) Costmap是机器人收集传感器信息建立和更新的二维或三维地图,可以从下图简要了解。 上图中,红色部分代表costmap中的障碍物,蓝色部分表示通过机器人内切圆半径膨胀出的障碍,红色多边形是footprint(机器人轮廓的垂直投影)。为了避免碰撞,footprint不应该和红色部分有交叉,机器人中心不应该与蓝色部分有交叉。 ROS的代价地图(cos原创 2017-05-04 19:13:30 · 16865 阅读 · 3 评论 -
激光SLAM导航系列(三)Costmap(代价地图)(下)
costmap程序架构 接上一期,通过阅读indigo版本的costmap源码包,简单整理了下costmap的程序架构。 在move_base刚启动时就建立了两个costmap,而这两个costmap都加载了三个Layer插件,它们的初始化过程如上图所示。 StaticLayer主要为处理gmapping或者amcl等产生的静态地图。 ObstacLayer主要处理机器人移动过程原创 2017-05-06 16:17:06 · 6573 阅读 · 1 评论 -
激光SLAM导航系列(四)全局路径规划
全局路径规划简介 机器人移动到目的地需要在做出具体移动策略之前先进行全局路径规划,ROS的navigation中使用global_planner包提供的一系列全局规划的算法接口(包括A*,Dijkstra)。 在本文中我们主要使用A*算法来进行全局路径规划。 A算法* A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距原创 2017-05-08 09:25:39 · 7630 阅读 · 1 评论 -
激光SLAM导航系列(五)局部路径规划
局部路径规划 局部路径规划简介 机器人在获得目的地信息后,首先经过全局路径规划规划出一条大致可行的路线,然后调用局部路径规划器根据这条路线及costmap的信息规划出机器人在局部时做出具体行动策略,ROS中主要是使用了DWA算法。在ROS中每当move_base处于规划状态就调用DWA算法计算出一条最佳的速度指令,发送给机器人运动底盘执行。DWA算法 DWA算法全称为dynamic wi原创 2017-06-04 21:05:00 · 23876 阅读 · 3 评论 -
ROS导航小车无故倒退问题分析
之前用ROS+激光雷达做小车室内导航时,遇到个问题,就是在RVIZ中给定目的地后小车总是会倒退行走,这个行走速度就是base_local_planner_params.yaml里配置的escape_vel逃逸速度,调整了其他参数无用,看看源代码 在trajectory_planner.cpp中 //and finally, if we can't do anything else, we want原创 2017-06-25 13:33:25 · 7458 阅读 · 2 评论