我是靠谱客的博主 包容黑猫,最近开发中收集的这篇文章主要介绍ROS学习笔记(9)---ros-navigation的应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这篇文章用于记录如何理解及调用ROS中的导航功能包ros-navigation,对机器人做导航。

1. 框架

在这里插入图片描述

move_base

定位:核心节点,是导航过程运动控制的最终执行机构。通过订阅move_base_simple/goal来获取目标点
插件:

  1. global_planner:用于全局路径规划
  2. local_planner:用于局部路径规划
  3. golobal_costmap:全局代价地图用于描述全局环境信息
  4. local_costmap:局部代价地图用于描述局部环境信息
  5. recovery_behaviors:恢复策略用于机器人碰到障碍后自动进行逃离恢复

amcl

定位:利用粒子滤波算法实现机器人的全局定位,为机器人导航提供全局位置信息。

map_server

定位:通过调用前面SLAM建图得到的地图为导航提供环境地图信息。

状态信息

  1. 坐标系变换信息:tf
  2. 里程计信息:odom
  3. 激光雷达信息:scan

2. 动态参数的获取(速度, 加速度)

主要涉及到 local planners

  1. dynamic window approach (DWA)
  2. timed elastic band (TEB).

3. Glabal Planner

carrot_planner

方式:若目标点是障碍,则将目标点沿着机器人与目标点构成的向量,向机器人方向移动。

优点:在目标点不可达的情况下也可以靠近目标点

缺点:复杂地形不可靠

navfn

方式:使用Dijkstra算法

参考资料:https://blog.csdn.net/qq_35644234/article/details/60870719

global_planner

支持A*, toggling quadratic approximation, toggling grid path

参数详解:

保持默认设置的参数:

  1. allow unknown(true)
  2. use dijkstra(true),
  3. use quadratic(true)
  4. use grid path(false)
  5. old navfn behavior(false)

需修改参数:

  1. visualize potential->true 使用rviz显示可视化界面
  2. cost factor
  3. neutral cost
  4. lethal cost
    代价计算: cost = neutral cost + cost factor * lethal cost

4. Local Planner

(1)Dynamic Window Approach(DWA)

步骤:

  1. 速度采样(x,y,w)
  2. Froward Simulation
    参数:
    sim_time:预测时长,2-5s较好,推荐4s
    veclocity samples:x,y方向以及转向角的采样点个数,推荐vx_sample = 20, vth_samples = 40
    simulation granularity:表示轨迹的取点频率,默认值为0.025够用了
  3. Trajactory Scoring
    在这里插入图片描述目标:选择最低的cost的路径
    path_distance_bias:逼近global_path的代价权重 (参考值:32)
    goal_distance_bias:达到goal的代价权重(参考值:20)
    occdist_scale:防止碰撞的代价权重(参考值:0.02)
  4. 选择高分路径
  5. 重复

其他参数
在这里插入图片描述

5. Costmap Parameters

(1)footprint

定义:机器人的轮廓,用于计算机器人模型的内切和外切圆。
应用:存储形式为二维数组的形式,一个个点构成了轮廓。一般定义footprint略微大于机器人的实际尺寸。

(2)inflation

参数:

  1. inflation radius
    定义了零代价点与障碍之间的距离。
  2. cost scaling factor
    比例因子,数值越大表示cost下降曲线越陡峭

(3)costmap resolution

定义:local costmap和global costmap都有对应的分辨率(resolution),如果分辨率过低,在一些狭窄入口可能会过不去。

(4)voxel layer

定义:三维数据,记录了障碍的位置,表现形式为有确定位置的一个个三维像素块。
参数:
在这里插入图片描述在这里插入图片描述

6. ACML

两个模型

  1. motion model:依赖里程计(odometry model)的信息
  2. measurement model:依赖雷达(laser scan)的信息

LaserScan

参数
在这里插入图片描述

两种模型的参数设置

在这里插入图片描述
在这里插入图片描述

7. Recovery Behavior

两种方式:

  1. clear costmap recovery
  2. rotate recovery

参数设置:

行为的参数一般保持默认值。对于触发recovery的参数:sim_time和reset_distance,前者相对较高的状态下,后者也最好拉高,这样子可以去掉很多无用的路径,方便local planner找到更优的路径。

最后

以上就是包容黑猫为你收集整理的ROS学习笔记(9)---ros-navigation的应用的全部内容,希望文章能够帮你解决ROS学习笔记(9)---ros-navigation的应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部