继ros里面A*全局规划之后,再解析局部路径算法dwa的整个算法调用过程,至于细节放到后面的章节去写

dwa的整体思路网上有很多相关的资料了

https://blog.csdn.net/heyijia0327/article/details/44983551具体的可以参看这一篇博客

本篇文章的话只要是说navigation包里面的调用过程,不关心整体思路

前期将局部路径设置为DWA算法也比较简单

ros局部路径算法调用函数接口为computeVelocityCommands(geometry_msgs::Twist& cmd_vel)

在dwa算法里面为dwa_planner_ros.cpp里面的

bool DWAPlannerROS::computeVelocityCommands(geometry_msgs::Twist& cmd_vel)

整体的核心就是下图

核心函数就是dwaComputeVelocityCommands(current_pose_, cmd_vel)

该函数主要就是根据当前位置和目标位置计算需要下发的速度指令。核心如下

核心函数为findBestPath,而该函数的核心如下

先将local planner生成器初始化,然后在调用scored_sampling_planner_的 findBestTrajectory,

该函数所在文件为base_local_planner/src/simple_scored_sampling_planner.cpp,其的核心内容为:

上面是轨迹生成,下面是对轨迹进行评分。

轨迹生成函数主要的是在base_local_planner/src/simple_trajectory_generator.cpp里面

可见轨迹生成算法的核心函数是generateTrajectory,这些内容以后再介绍。

而评分函数主要就是调用各种score函数

具体的函数内容以后再介绍

ros navigation 局部路径算法dwa解析(一)相关推荐

  1. 【硬核】 ROS Navigation 局部路径规划常见算法

    简介 ​ 最近,作者参加了关于RMUS 高校 SimReal挑战赛,首次接触到了机器人导航领域,这里记录一下这段时间的收货.sim2real的全称是simulation to reality,是强化学 ...

  2. ROS常用局部路径规划算法比较

    本博文主要讨论ROS导航包中集成的局部路径规划算法,DWA.TEB.MPC等算法在使用过程中的各自的优缺点.以下均为自己在使用过程中总结的经验及查阅资料得来,如有理解不到位的地方,还希望在评论区多多讨 ...

  3. 机器人局部动态避障算法dwa解析

    机器人局部动态避障算法dwa解析 简介 dwa算法全称叫动态窗口法(dynamic window approach),其算法过程主要分为仿真获取机器人的运动轨迹.对轨迹进行评价选择最优轨迹两个主要过程 ...

  4. ROS Navigation之amcl源码解析(完全详解)

    转载于:https://haoqchen.site/2018/05/06/amcl-code/ 0. 写在最前面 本文持续更新地址:https://haoqchen.site/2018/05/06/a ...

  5. NML(Non-Local Mean)非局部平均算法 完全解析与积分图加速 (附代码)

    最近开始学习在Denoise方面的内容,在这方面比较重要的传统算法当然是BM3D这种到目前比较fancy的,效果也是目前最好的算法.但是BM3D的一个致命缺点就是速度很慢,所以BM3D我们以后再说吧, ...

  6. 局部路径规划算法——实现DWA(dynamic window approach)控制空间采样

    DWA算法是局部路径规划算法,在全局路径规划算法完成后,DWA算法能够根据当前小车(机器人)位置.障碍物.终点的位置进行控制空间(速度.角速度)的采用,从而完成局部路径规划. DWA算法流程: 初始化 ...

  7. ros自己写避障算法_基于ROS系统自主路径规划与避障小车的研究

    龙源期刊网 http://www.qikan.com.cn 基于 ROS 系统自主路径规划与避障小车的 研究 作者:李阳 卢健 何耀帧 来源:<科技风> 2018 年第 04 期 摘 要: ...

  8. teb局部路径规划算法

    起点和目标点 首先在路径中插入n个点(控制点),每个点都包括小车的pose,就是模拟姿态点,用姿态点模拟路径,点雨点之间的时间间隔相等,有了这两个条件就可以算出两点之间的距离,再根据时间差就可以求v, ...

  9. dwa算法实现局部路径规划——基于python

    dwa算法简介 动态窗口法(dynamic window approach, dwa),用于实现机器人的局部路径规划 实现原理: 在速度空间(v,w)中不断采样,模拟机器人在采样得到的速度下的运行轨迹 ...

最新文章

  1. 【Docker】Docker的三大核心组件
  2. 做管理必须避开的六个坑
  3. with as递归调用
  4. Laravel5.4重新登陆跳转到登陆前页面的原理和实现
  5. android ndk常见的问题及解决的方法
  6. 【JETSON-NANO】SD卡系统备份克隆
  7. Ubuntu下基于Virtualenv构建Python开发环境
  8. 在vmware虚拟机器上安装1000gwall(原创)
  9. 给MM修电脑的三个步骤
  10. java 基础知识2
  11. 如何测一个纸杯_阿薇塔罗——4个吊坠,凭直觉选一个,测你这辈子婚姻状况如何?...
  12. python矩阵计算器心得_NumPy入门攻略:手把手带你玩转这款强大的数据分析和计算工具...
  13. Longhorn 企业级云原生分布式容器存储-券(Volume)和节点(Node)
  14. Fragstats景观分析研究
  15. 使用Glide加载圆角矩形图片、圆形图片
  16. spaCy 2.1 中文NLP模型
  17. python中对数字降序和升序_该程序查找在Python中按升序或降序排列数字的最低成本...
  18. 北漂去帝都大医院求医到底有多难?我的真实经历,真的是一路坎坷与辛酸~
  19. RFI_2016_12_18
  20. 实战十三:基于BPR算法实现个性化排名推荐 代码+数据

热门文章

  1. 实现滚动轴承仿真信号
  2. (原創) 為什麼要學C/C++? (C/C++)
  3. BP神经网络算法推导及代码实现笔记
  4. share.weiyun.com微云网页链接无法打开 解决办法
  5. 关于微信名称特殊字符存数据库出问题; Incorrect string value: ‘\xF0\x9F\x90\xAF’ for column ‘nickName’ at row 1
  6. java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x90\xB1\xF0\x9F...‘解决
  7. 数项级数——(一)级数的收敛性
  8. Velocity开发指南-内容
  9. CSS实现的阴影的3D立体文字动画网页源码
  10. Linux下的ISCIS服务