本文章重点在 第二部分类图解析,第四部分代码解析
文章目录
1. move_base_flex主体代码结构树
├── mbf_abstract_core (抽象父类,提供控制-局部规划,全局规划,脱困行为基础功能接口)
├── mbf_abstract_nav (抽象导航类,提供控制,规划,脱困执行行为虚函数接口和action对应的状态机以及插件管理器)
├── mbf_costmap_core (子类,基于代价地图costmap实现父类abstract_core的功能接口)
├── mbf_costmap_nav (子类,基于代价地图实现导航功能的接口的设置,action初始化,各接口执行器Execution算法绑定)
├── mbf_msgs (提供局部规划,全局规划,脱困,点到点move_base的action,以及检查路径点代价值等srv)
├── mbf_simple_nav (基于mbf实现简单的导航服务,但是局限性在于没有地图描述。可用于对costmap_nav简化剥离)
└── mbf_utility (mbf框架工具箱,包含速度,里程计获取,坐标变换等)
总结: 这里面的costmap_core,costmap_nav,simple_nav都是属于子类的实现,父类已经把整体流转框架思维写好了。
后续结合mbf类图的参照,就可以实现基于各种不同地图类型的2D,3D导航(如mbf框架

文章详细介绍了move_base_flex的代码结构,包括mbf_abstract_core和mbf_abstract_nav等抽象类,以及costmap_core和costmap_nav的具体实现。重点讨论了类图解析,强调了其与ROS2navigation的相似性和解耦特性,允许根据不同地图类型实现2D、3D导航。此外,文章还探讨了mbf的可编辑性、复用性和可移植性,并推荐了基于mbf框架的导航代码示例。
最低0.47元/天 解锁文章
2458

被折叠的 条评论
为什么被折叠?



