dwa的区别 teb_ROS与navigation教程-dwa_local_planner(DWA)

本文档详细介绍了ROS中的dwa_local_planner包,它使用DWA算法实现平面移动机器人的局部导航。DWA通过在控制空间中采样并评估不同速度轨迹来规划路径,考虑接近障碍物、目标和全局路径的情况。DWAPlannerROS是其ROS接口,支持多种参数定制,包括机器人配置、目标公差、前向模拟等,可用于动态调整路径规划行为。
摘要由CSDN通过智能技术生成

ROS与navigation教程-dwa_local_planner(DWA)

说明:

介绍dwa_local_planner(DWA)的概念和相关知识。

代码库

概要

该包使用DWA(Dynamic Window Approach)算法实现了平面上移动机器人局部导航功能。

给定一个全局路径规划和代价地图,局部路径规划器生成的速度命令发送到移动基座。

该包支持任何footprint表示为凸多边形或圆形的机器人,同时将其配置公开为可在启动文件中设置的ROS参数。 该规划器的参数也可重新动态配置。

该包的ROS封装继承了BaseLocalPlanner接口。

dwa_local_planner包提供了一个驱动平面中移动基座的控制器,其将路径规划器和机器人连接到一起。

移动过程中,路径规划器会在机器人周围创建可以表示为栅格地图的评价函数。其中控制器的主要任务就是利用评价函数确定发送给基座的速度(dx,dy,dtheta)。

DWA(Dynamic Window Approach)算法的基本思路如下:

在机器人控制空间(dx,dy,dta)中离散采样。

对于每个采样速度,从机器人的当前状态执行正向移动模拟,以预测如果在一些(短)时间段内应用采样速度将会发生什么。

从以下方面来评价正向移动模拟产生的每个轨迹:接近障碍物,接近目标,接近全局路径和速度。 放弃非法轨迹(与障碍物相撞的轨迹)。

选择最高得分的轨迹,并将相关速度发送到移动基座。

冲洗并重复。

DWAPlannerROS

dwa_local_planner::DWAPlannerROS对象是dwa_local_planner::DWAPlanner对象的ROS封装,在初始化时指定的ROS命名空间使用,继承了nav_core::BaseLocalPlanner接口。

创建dwa_local_planner::DWAPlannerROS对象的例子:

#include

#include

#include

...

tf::TransformListener tf(ros::Duration(10));

costmap_2d::Costmap2DROS costmap("my_costmap", tf);

dwa_local_planner::DWAPlannerROS dp;

dp.initialize("my_dwa_planner", &tf, &costmap);

( 1 ) API Stability

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值