# ND2 - Project 2 - localization - ruby

Abstract - Give a high-level overview of work. (5-10 sentences)

## Introduction - concept of the project and what is trying to be achieved.

In our daily life, we need to go to different places to complete tasks. For example, I need to take a bus to my office every working day. To complete this simple task, from human perspective, there are several things that I already knew. I know where is the bus stop, where to get off, and which building is my office. If I didn't know where I am or where target locations are, it is impossible for me to reach it.

This is the same for a moving-based robot. Imaging that a robot is in the living room, and a user asks it to go to kitchen to fetch a sandwich. The robot need to know how to move from the living room to kitchen and come back. Otherwise, it will take a very long time, that the user decide to go to a restaurant.

A localization problem is to know where a robot is, and it also knows the goal location when a user requires it to go.

A localization problem: given a map, receive sensor measurements, odom & hokuya, know where the robot is.

When my first travel in Paris, I didn't know how to speak French, and what I have is a map. I was looking for a famous restaurant, but now idea where it is because I didn't know where I am. The second time when I was in Paris, I know how to reach it: just take a metro to Hotel de Ville and 10 minutes walk.

* measurement impact by noise env, wind, slip....

Here are tasks we need to solve:

\[1] Kalman filter & Particle filter

<http://bilgin.esme.org/BitsAndBytes/KalmanFilterforDummies>

<http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/>

[http://www.cl.cam.ac.uk/\~rmf25/papers/Understanding the Basis of the Kalman Filter.pdf](http://www.cl.cam.ac.uk/~rmf25/papers/Understanding%20the%20Basis%20of%20the%20Kalman%20Filter.pdf)

\[2] build ROS world / launch / urdf / rviz / gezebo

\[3] tune amcl parameters

In the beginning, green arrows point to anywhere.

In the end, they point to same direction.

Higher probabilities arrows are kept, and the robot is located in a good position.

Measurements error. slip. noise.

## Background - Explain the importance of localization for a robot. **Kalman and Particle filters.**

<https://www.sas.upenn.edu/~jesusfv/filters_format.pdf>

<https://pdfs.semanticscholar.org/891b/5ced061c8437328b1f78ccc369b878617c0f.pdf>

partical filter =

<https://www.youtube.com/watch?v=aUkBa1zMKv4>

Kalman = sensor fusion

<https://www.youtube.com/watch?v=mwn8xhgNpFY&list=PLn8PRpmsu08pzi6EMiYnR-076Mh-q3tWr>

[https://www.researchgate.net/publication/236897001\_The\_Kalman\_Filter\_and\_Related\_Algorithms\_A\_Literature\_Review](https://legacy.gitbook.com/book/jasonychuang/ros/edit#)

Model Configuration - Justify your choice of parameters

1. understanding of the impact of these parameters (for example, how do more/fewer particles impact the results?)

Results - Show tthe robots' performances. charts, graphs, and tables.

1. image of RViz with the robot at goal position and the PoseArray displayed.
2. For this, the student should submit the results for both the Classroom robot and the robot they developed???

<https://u.cs.biu.ac.il/~yehoshr1/89-685/Fall2015/ROS_Lesson8.pdf>

Discussion

\[1] justifies their stance with facts.

\[2] whether AMCL would work well for the kidnapped robot problem and what kind of scenarios would need to be accounted for it.

\=> Not well, since there is no map. To build a map, we need SLAM.

\[3 ]brief discussions on where they would use MCL/AMCL in an industry domain.

\=> warehouse robots to pick and fetch: Amazon has big warehouses, and robot need to get items and return them to post

BMW need components to build cars.

The layout of the factory is known. Location of items & post are known.

\=> self-driving car: they have google map

\=> airplane / drone

Future Work - What types of enhancements could be made to the model to increase accuracy and/or decrease processing time?

\[Optional] deploy this project on actual hardware

## Situations - control loop missed.

```
[ WARN] [1531771417.499926828, 1553.296000000]: Control loop missed its desired rate of 20.0000Hz... the loop actually took 0.0530 seconds
```

amcl\_params.yaml

laser\_max\_beams > 500

`base_local_planner_params.yaml`

update params to \[1]increase velocity \[2]better turn at corner, smooth, without multiple-turn, sizzle turn


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://huang-jason.gitbook.io/ros/nd2-project-2-localization-ruby.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
