< >
Home » ROS与navigation教程 » ROS与navigation教程-navfn

ROS与navigation教程-navfn

ROS与navigation教程-navfn

说明:

  • 列表项目

代码库

概要

  • navfn提供了一个快速内插值的导航功能,用于为移动基座创建路径规划。

  • 规划器假设机器人为圆形并利用代价地图来进行操作,以从栅格的起点到终点找到代价最小的路径规划。

  • 导航功能使用Dijkstra算法计算,未来亦会加入A *算法。

  • navfn提供了ROS封装接口供调用,也继承了nav_core::BaseGlobalPlanner接口。

  • navfn::NavfnROS 对象在move_base中被作为全局路径规划器插件使用。

NavfnROS

  • navfn::NavfnROS是navfn::NavFn的ROS封装,导出了可用的ROS接口。

  • 其可以在初始化时指定的ROS命名空间使用,继承了nav_core::BaseGlobalPlanner接口。

  • 以下是创建navfn::NavfnROS 对象的一个例子:

#include <tf/transform_listener.h>
#include <costmap_2d/costmap_2d_ros.h>
#include <navfn/navfn_ros.h>

...

tf::TransformListener tf(ros::Duration(10));
costmap_2d::Costmap2DROS costmap("my_costmap", tf);

navfn::NavfnROS navfn;
navfn.initialize("my_navfn_planner", &costmap);

( 1 ) API Stability

  • ROS API 是稳定的。

  • C++ API 是稳定的。

( 2 ) ROS API

( 2.1 ) Published Topics

~<name>/plan ([nav_msgs/Path][2])
  • 通过navfn计算的上一个最新规划, 规划器每次都会计算一条新路径并发布。

  • 主要用于可视化。

( 2.2 ) Parameters

~<name>/allow_unknown (bool, default: true) 
  • 指定是否允许navfn在unknown空间创建路径规划。

  • 注意:如果你使用带有体素或障碍层的分层 costmap_2d 代价地图,那么需将该图层的track_unknown_space参数设置为true,否则所有未知空间将转换为自由空间(which navfn will then happily go right through)。

~<name>/planner_window_x (double, default: 0.0)
  • 指定可选窗口的x大小以限定规划器工作空间。

  • 其有利于限定NavFn在大型代价地图的小窗口下工作。

~<name>/planner_window_y (double, default: 0.0) 
  • 指定可选窗口的y大小以限定规划器工作空间。

  • 其有利于限定NavFn在大型代价地图的小窗口下工作。

~<name>/default_tolerance (double, default: 0.0) 
  • 定义路径规划器目标点的公差范围。

  • NavFn将试图创建尽可能接近指定目标的路径规划,但不会超过 default_tolerance 。New in navigation 1.3.0

~<name>/visualize_potential (bool, default: false) 
  • 指定是否通过PointCloud2来可视化由navfn计算的潜在区域。 New in navigation 1.3.1.

( 2.3 ) C++ API

NavFN

  • navfn::NavFn 额提供了上述导航功能,且可以免费使用,但是请记住我们不保证其API是稳定的。

( 1 ) API Stability

  • C++ API是不稳定的。

  • It is subject to change at any time.

( 2 ) C++ API

  • 关于navfn :: NavFn类的C ++ API的文档可参阅:NavFn Documentation

  • 再次强调,C ++ API不能保证稳定。

Reference

参考资料

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros与navigation教程