###### tags: `Docs`
# Nagivation Quick Note
https://pojenlai.wordpress.com/2015/07/16/ros-navigation-stack-%E7%B0%A1%E4%BB%8B/
機器人導航幾個重要的元件
- Global Planner
- Local Planner
- ACML
- Costmap
$P(x|u, x')$
### [AMCL](https://roboticsknowledgebase.com/wiki/state-estimation/adaptive-monte-carlo-localization/) (Adaptive Monte Carlo Localization)
計算出機器人在環境的位置,基本的 MCL 會給出在一張地圖中,一個機器人位置的機率分布
基本流程為 Measurement -> Motion

related paper:
- [Monte Carlo Localization for Mobile Robots](http://www.ri.cmu.edu/pub_files/pub1/dellaert_frank_1999_2/dellaert_frank_1999_2.pdf)
- [Monte Carlo Localization: Efficient Position Estimation for Mobile Robots](https://www.ri.cmu.edu/pub_files/pub1/fox_dieter_1999_1/fox_dieter_1999_1.pdf)
### Local Planner: **DWA** (Dynamic Window Approach)[^dwa]
> The goal of a local planner is to take the global plan and local costmap and produce the command velocities that will presumably move the robot to the goal.[^dwa_local_planner]
改寫版本叫 [dwb_local_planner](https://github.com/locusrobotics/robot_navigation/tree/master/dwb_local_planner)[^dwb]

> 一種常用的避障規劃方法。這是一種選擇速度的方法,該速度可以快速到達目標點,同時避免在速度搜索空間中可能與機器人發生碰撞的障礙物。該方法直接在速度空間中搜索機器人最優控制速度,將搜索空間減小到在動態約束下可達的速度,從而將機器人的動力學特性融入到該方法中。[^dwaref]

### [Global Planner](http://wiki.ros.org/global_planner)
A*, Dijkstra
### Sensing
Inertial Measurement Unit (**IMU**): attitude of the robot based on the acceleration and gyro sensor
**Odometry**: robot location based on encoder and IMU
## Navigation 2
### Architecture

### Execution Flow

[^dwa]: http://wiki.ros.org/dwa_local_planner
[^dwa_local_planner]: https://github.com/locusrobotics/robot_navigation/tree/master/dwb_local_planner
[^dwb]: https://github.com/ros-planning/navigation2/tree/master/nav2_dwb_controller
[^dwaref]: https://zhuanlan.zhihu.com/p/67335058