版权声明:本文为博主原创文章,转载请联系博主。https://mp.youkuaiyun.com/mdeditor/84305617
DWA算法流程图如下:
1.读入地图
base_planner_.setPlan(orig_global_traj);
std::vector<geometry_msgs::PoseStamped> global_plan_;//头文件里定义 global_plan_变量
bool setPlan(const std::vector<geometry_msgs::PoseStamped>& orig_global_plan) {
global_plan_.clear();//reset the global plan
global_plan_ = orig_global_plan;
return true;
}
2.截取本地地图(local_plan)
/****
将参考路径根据costmap大小进行截取,获得适配costmap大小的参考路径地图
****/
base_planner_.getLocalPlan(pose1, transformed_plan);
3.根据获得的地图更新costmap参数
dwa_planner_->updatePlanAndLocalCosts(pose1, transformed_plan);
4.寻找最优轨迹
/**
* @brief find best trajectory in the generated trajectories
* @pose1 current position of vehicle, including x,y,orientation(yaw/heading)
* @pose2 curr