11.8-ros-navigation解析

ros-move-base

前言

  • 整体性介绍ROS二维导航包

参考

global_planner整体解析
拿ROS玩移动机器人自主导航攻略(二) --by 西工大一小学生
对Navigation基础的了解

学习记录

接收move_base/goal时到底有没有使用全局规划器

  • 看源码,有!

以前笔记-局部规划器

概述

  • 局部规划器使用地图,产生一个运动学轨迹使得机器人从起点到终点运动,沿着这条路,局部规划器在机器人本体附近产生一个值函数,用Grid Map 来表示,这个栅格地图上表示到某一个网格的损失,整个算法使用这个值函数来产生速度。
  • 算法基本思想
    • 在机器人控制域内取样
    • 对每一个样本,根据当前机器人的状态来预测未来某一个短时间内,机器人会发生什么变化
    • 对第二步进行模拟和评分,使用一些度量:与障碍的接近程度,与目标的接近,与全局规划的接近程度,速度。抛弃非法的轨迹(如,与障碍碰撞的轨迹)
    • 选择得分最高的那条轨迹,发送至机器人
    • 循环

栅格地图

对于某一个控制循环(control cycle),算法都会对每个网格进行评分,使用迈哈顿距离,即街区距离
这个网格地图用来对轨迹评分
在此持的目标goal是局部的goal,与终点最近的局部goal,叫做local goal,符合要求的点,是在局部区域内,是第一个与区域外部点相连的点,局部区域的尺寸由move_base来决定
震荡抑制
通用局部规划
概述
局部规划的目的是,在每一个控制循环中找到合适的局部规划。
可以以dwa_local_planner为模板制定自己的局部规划器,或者只是简单地添加损失计算函数或轨迹生成器
轨迹生成器
The SimpleTrajectoryGenerator class can generate trajectories described in the overview, using either the trajectory rollout or the DWA principle.
轨迹损失函数
A negative score means the trajectory is invalid. For positive value, the semantics are that a trajectory with a lower score is preferrable to one with a higher score with respect to this cost function.
SimpleScoredSamplingPlanner
帮助类
LocalPlannerUtil
LatchedStopRotateController
到终点后彻底停止
OdometryHelperRos
损失函数
障碍损失函数
根据检测到的障碍物来对计算出的轨迹进行评分,如果该轨迹从障碍物上通过,会产生负值或零值
栅格地图损失函数
根据该轨迹与全局规划的靠近程度对轨迹进行评分
震荡损失函数
帮助减少震荡
前向优先损失函数
这种函数的目的在于鼓励机器人前向运动
相关的类
整理相关参数

猜你喜欢

转载自www.cnblogs.com/lizhensheng/p/11117697.html
今日推荐