1写在前面
之前笔者一直使用的是ROS1,还没正式上手ROS2,正好来了一个契机:
最近这段时间和几位小伙伴一起在校准翻译ROS NAV2的中文文档,以便于国内爱好者快速学习了解NAV2设计改进的精要和实战使用方法,同时自己也学习了NAV2的架构和实现。
本文是摘自NAV2中文文档的部分内容,正好也是笔者校准的部分,索性就先分享出来了。更具体的内容请见原文:
http://dev.nav2.fishros.com/doc/
2Navigation 2的变化
move_base 已被分割成多个组件。navigation 2不是一个单一的单体状态机,而是利用行动服务器(action server)和ROS 2的低延迟、可靠的通信来分离概念。行为树被用来协调这些任务。这允许Navigation 2具有高度可配置的导航行为,而无需通过在行为树xml文件中重新排列任务进行编程。
nav2_bt_navigator取代了顶层的move_base,用一个Action接口来完成基于树的动作模型的导航任务。它使用Behavior Trees,使其有可能拥有更复杂的状态机,并作为额外的Action Servers加入恢复行为。这些行为树是可配置的XMLs,并且我们提供了几个上手示例。
规划、恢复和控制器服务器也是BT导航器可以调用的行动服务器,以进行计算。所有3个服务器都可以托管许多算法的插件,并单独从导航行为树中调用特定行为。提供的默认插件是从ROS 1移植过来的,即:DWB、NavFn,以及类似的恢复,如旋转和清除成本地图。还增加了一个新的等待固定时间的恢复。这些服务器通过其动作服务器从BT navigator调用,以计算结果或完成任务。状态由BT导航器行为树维护。
所有这些变化使得在启动/运行时用任何其他实现相同接口的算法替换这些节点成为可能。更多细节见每个软件包的README.md。
注: nav2_simple_navigator 已不复存在,已被 nav2_bt_navigator 取代。
总结
移植的软件包:
-
amcl: 移植到nav2_amcl
-
map_server: 移植到nav2_map_server
-
nav2 _ planner: 取代global_planner,托管 N 规划器插件
-
Nav2 _ controller: 替换local_planner,托管 N 控制器插件
-
Navfn: 移植到nav2_navfn _ planner
-
DWB: 替换DWA,并在nav2_dwb_controller元包下移植到ROS 2
-
nav_core: 移植为nav2_core,更新接口
-
costmap_2d: 移植为nav2_costmap_2d
新的软件包:
-
nav2_bt_navigator: 替换 move_base 状态机
-
Nav2_lifeycle_manager: 处理服务器程序生命周期
-
nav2_waypoint_follower: 可以通过采取许多航点来执行一个复杂的任务
-
nav2_system_tests: 一套用于CI的集成测试和模拟的基本教程
-
nav2_rviz_plugins: 用于控制Navigation2服务器、命令、取消和导航的rviz插件
-
nav2_experimental: 深度强化学习控制器的实验性(和不完整)工作
-
navigation2_behavior_trees: 行为树库的包装器,用于调用ROS动作服务器
ROS NAV2 (CN)中还包含了很多教程,比如:规划、控制等行为插件的编写及加载demo,NAV2的行为树介绍等,更详细情况请参考:
http://dev.nav2.fishros.com/doc/
希望更多志同道合的小伙伴一起参与NAV2中文网站建设(翻译有不妥之处,请联系作者修改),把ROS2玩起来!
机器人空间采样算法研究现状简述
](https://mp.weixin.qq.com/s?__biz=MzI3MTIyMjQwNQ==&mid=2247484191&idx=1&sn=9f8f21b2775a9e446c71765b6c91f47d&chksm=eac450f5ddb3d9e37ebfa08b9a27f3a9dae1bf77e20a190528c3f7d6e1a695574a3daac2230e&scene=21#wechat_redirect)[
机器人图规划算法研究现状简述
](https://mp.weixin.qq.com/s?__biz=MzI3MTIyMjQwNQ==&mid=2247484115&idx=1&sn=422bc7ec6bef4fa10b5aca4c676f757c&chksm=eac45139ddb3d82f3b3eaf1b3d817512498d3167cc8afd94a721da48089f259c8394a63016c9&scene=21#wechat_redirect)