movebase导航和地图数据的使用 - 3 movebase的初始化分析

该博客详细介绍了ROS中的MoveBase节点如何初始化,包括其构造函数的各个参数和组件,如全局和局部规划器的选择、成本地图的配置、目标设定和反馈机制。通过解析配置参数,MoveBase能够结合全局和局部规划器为机器人规划并执行导航路径。
摘要由CSDN通过智能技术生成



MoveBase::MoveBase(tf::TransformListener& tf) :

tf_(tf),

as_(NULL),

planner_costmap_ros_(NULL), controller_costmap_ros_(NULL),

bgp_loader_("nav_core","nav_core::BaseGlobalPlanner"),

blp_loader_("nav_core","nav_core::BaseLocalPlanner"),

recovery_loader_("nav_core","nav_core::RecoveryBehavior"),

planner_plan_(NULL), latest_plan_(NULL),controller_plan_(NULL),

runPlanner_(false), setup_(false), p_freq_change_(false),c_freq_change_(false), new_global_plan_(false) {



//这个actionserver使用了actionlib中的逻辑,actionlib提供了一套框架,可以建立一个server,client可以发送可抢断的taskrequest, 可以将之前的taskrequest取消,覆盖。并且可以不断得到反馈的框架。,基于此框架,每当有新的targetgoal被设定时,会执行executeCb函数。

as_ = newMoveBaseActionServer(ros::NodeHandle(), "move_base",boost::bind(&MoveBase::executeCb, this, _1), false);



ros::NodeHandleprivate_nh("~"); 使用privatenamespacehandle,也就是使用move_base作为nshandle.

ros::NodeHandle nh;



recovery_trigger_ = PLANNING_R;



//get some parameters that will be global to the move basenode

std::string global_planner, local_planner;

private_nh.param("base_global_planner",global_planner, std::string("navfn/NavfnROS"));

private_nh.param("base_local_planner",local_planner,std::string("base_local_planner/TrajectoryPlannerROS"));

//实际使用的global/localplanner

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值