当前位置:网站首页>[ros2 basics] Introduction to navigation2 navigation system
[ros2 basics] Introduction to navigation2 navigation system
2022-06-21 17:17:00 【First flight loves playing with robots】
Navigation2 The overall architecture
Be careful : The following explanation is based on Navigation2 v1.0.12 To carry out . Their corresponding ROS2 Version is Galactic.

Nav2 The following tools are available :
● load 、 Tools for providing and storing maps ( Map server Map Server)
● A tool for locating robots on a map (AMCL)
● Avoid obstacles from A Point to move to B Point path planning tool (Nav2 Planner)
● A tool that controls a robot while following a path (Nav2 Controller)
● A tool for converting sensor data into cost map representation in the robot world (Nav2 Costmap 2D)
● Tools for building complex robot behaviors using behavior trees (Nav2 Behavior trees and BT Navigator)
● A tool for calculating recovery behavior in the event of a failure (Nav2 Recoveries)
● Tools to follow sequential waypoints (Nav2 Waypoint Follower)
● Tools and watchdog for managing the server lifecycle (Nav2 Lifecycle Manager)
● A plug-in that enables user-defined algorithms and behaviors (Nav2 Core)
Navigation2 Compare with Navigation1 There have been great changes . One of the most significant changes is the use of behavior trees to combine various functional modules , To achieve the development effect of Lego building blocks .
Navigation1 The implementation of the navigation function in is pipelined , Mainly by move_base To combine the functions of each module . stay move_base A state machine is implemented in , Both the global path planner and the local path planner are called in the corresponding state in the form of plug-ins . A point-to-point navigation process is , First, call the global path planner in a state , Then it enters another state and passes the path to the local path planner , And make it execute the path .
stay Navigation2 in , The organization of each function is different . The global path planning function is implemented by each global path planning plug-in , These plug-ins are loaded into Planer Server in . Through the corresponding action towards Planer Server Request global planning path .
Empathy , The local path planner is also implemented in the form of plug-ins . They have a unified interface , Can be loaded into Controller Server in . When a path needs to be executed , Just go through the corresponding action Send the path to execute to Controller Server that will do .
Smart you , I should have thought of .Recovery Server It also works with the same logic .
Planer Server 、 Controller Server and Recovery Server Realized their respective functions , Global path planning , Local path planning and recovery operations . But their functions are independent , non-interfering . To achieve a complete navigation function requires the cooperation of each module .BT Navigator Server The one who assembled Lego blocks .
Each function is a behavior tree . The nodes in this tree will be linked to Planer Server 、 Controller Server and Recovery Server signal communication , Put each server The functions of . For example, the single point navigation function , The corresponding node in the behavior tree will be directed to Planer Server Request a planned path to the target point . Then another node in the tree is connected to Controller Server signal communication , Send the planned path to Controller Server To carry out . Of course, this is just a brief description of the process , More functions can be combined in actual use .
When BT Navigator Server The function of single point navigation is realized in , It is logical to realize multi-point navigation .Waypoint Follower Through continuous BT Navigator Server Multi point navigation can be realized by requesting the single point navigation function . When the previously requested single point navigation is completed , Then send the next single point navigation request . Until all points have been issued .
On the periphery of the above block diagram map、Sensor Data and Tf Is the common data . Each functional module can obtain , Just use it as needed .
Navigation2 First experience
- install
Navigation2
You can refer to my previous article to operate .
https://shoufei.blog.csdn.net/article/details/124394203
- start-up gazebo
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
- Start navigation
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True
Navigation2 Relevant introduction materials
Official documents :
https://navigation.ros.org/getting_started/index.html
Navigation2 official github:
Among them issue The discussion is worth watching
https://github.com/ros-planning/navigation2
Navigation2 Corresponding papers :
https://arxiv.org/pdf/2003.00368.pdf
Navigation 2 Series of tutorials :
https://zhuanlan.zhihu.com/p/384099348
at present Navigation2 Plug in provided :
https://navigation.ros.org/plugins/index.html#plugins
If you think it's useful, just praise it !
It's me , One to help everyone Filling pit Robot development siege lion .
In addition, the official account. 《 First flight 》 Internal reply “ robot ” Get carefully recommended C/C++,Python,Docker,Qt,ROS1/2 And other commonly used technical data in the robot industry .
边栏推荐
- Overseas new things | software developer "dynaboard" seed round raised US $6.6 million to develop low code platform to connect design, products and developers
- The release of autok3s v0.5.0 continues to be simple and friendly
- [observation] Microsoft's "cloud + end" comprehensive innovation makes hybrid cloud simpler, more flexible and more secure
- 既不是研发顶尖高手,也不是销售大牛,为何偏偏获得 2 万 RMB 的首个涛思文化奖?
- In 2021 database market, aerospike competes with top manufacturers
- Show you how to distinguish several kinds of parallelism
- 之前的装机记录
- Concept drift in machine learning (Apria)
- 未定义的函数或变量【一文讲透】(Matlab)
- Ares Ares I pledged LP mining crowdfunding model DAPP smart contract customization
猜你喜欢

Pytest框架实现前后置的处理

In 2021 database market, aerospike competes with top manufacturers

面向流动人口管理的人脸验证系统设计及实现 论文+答辩PPT+项目工程文件

强化学习入门项目spinning up(1)安装

Postman基本操作

招募令|数据可视化开发平台“FlyFish”「超级体验官」招募啦!

Come and watch – tpt18 new report

Overseas new things | software developer "dynaboard" seed round raised US $6.6 million to develop low code platform to connect design, products and developers

Reinforcement learning introductory project spinning up (1) installation
![Undefined functions or variables [explained in one article] (matlab)](/img/fe/54272b8efce87ed7a78ac43b1fc189.png)
Undefined functions or variables [explained in one article] (matlab)
随机推荐
Unittest框架
4. 构造【LR(1)分析表(包含构建项目规范族)】
7 tips for writing effective help documents
Circular of the State Council on regulating the management of the rental of housing with common property rights (for Trial Implementation)
Elegant request retry using guzzle Middleware
In 2021 database market, aerospike competes with top manufacturers
Come and watch – tpt18 new report
Disruptor本地线程队列_WorkProcessor异常_FatalExceptionHandler---线程间通信工作笔记004
使用unittest框架生成测试报告
D improve translation
Fisher信息量检测对抗样本代码详解
d改进翻译
招募令|数据可视化开发平台“FlyFish”「超级体验官」招募啦!
[理论]--接口测试
一个好产品应该具备的特征
Unittest框架的测试日志
Google Earth Engine(GEE)——用sentinel-2数据获取获取一个月前归一化植被指数NDVI差异(危地马拉为例)
qtcreator報錯解决
Cisco(59)——Hub&Spoke MPLS
How to open an account for futures agricultural products? How much is the handling charge?