---
# System prepended metadata

title: Nagivation Quick Note
tags: [Docs]

---

###### 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

![](https://i.imgur.com/hDsA8GI.png)

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]
  ![](https://i.imgur.com/9r9Jlew.png)

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

![](https://i.imgur.com/ZeXDdDQ.png)


### [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
![arch](https://ros-planning.github.io/navigation2/_images/architectural_diagram.png)

### Execution Flow
![exec](https://github.com/ros-planning/navigation2/blob/master/doc/design/NavigationSystemTasks.png?raw=true)

[^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