原创文章,转载请注明: 转载自慢慢的回味
本文链接地址: 局部规划器-TebLocalPlannerROS
由于Teb算法能很好的支持阿克曼小车,即模型类似于汽车一样的机器人,这儿使用TebLocalPlannerROS进行局部规划。Teb局部规划器包(teb_local_planner)是作为一个局部规划器(base_local_planner)插件的形式融入2D导航栈的。它基于时间的弹性算法来优化局部轨迹,满足:轨迹的时间尽量短即速度和加速度尽量大;和障碍物能明显分离;以及必须满足机器人动力学约束。
在Move Base初始化中通过参数指定base_local_planner为teb_local_planner/TebLocalPlannerROS
//默认的局部规划器为TrajectoryPlannerROS private_nh.param("base_local_planner", local_planner, std::string("base_local_planner/TrajectoryPlannerROS")); //create a local planner try { tc_ = blp_loader_.createInstance(local_planner); ROS_INFO("Created local_planner %s", local_planner.c_str()); //初始化局部规划器 tc_->initialize(blp_loader_.getName(local_planner), &tf_, controller_costmap_ros_); } catch (const pluginlib::PluginlibException& ex) { ROS_FATAL("Failed to create the %s planner, are you sure it is properly registered and that the containing library is built? Exception: %s", local_planner.c_str(), ex.what()); exit(1); } |
Move Base中通过调用tc_->computeVelocityCommands(cmd_vel)完成速度命令计算。
继续阅读“局部规划器-TebLocalPlannerROS”本作品采用知识共享署名 4.0 国际许可协议进行许可。