build details

Show: section status errors & todos local changes recent changes last change in-page changes feedback controls

Drone Localization

Modified 5 days ago by Dev Ramesh

Modified 5 days ago by Dev Ramesh

Student version

Hardware -

  • Basestation
  • Completed Build Part 4

Previous lesson - Comparing Images

Knowledge - Definition and purpose of localization


  • Make a map for the drone to localize over
  • Move the drone to global positions within the map

Drone Localization

STANDARDS: Next Generation Science Standards (NGSS) and International Society for Technology in Education (ISTE)

Modified 2020-04-16 by Garrett Warren

Assessments and Evidence of Understanding

Modified 5 days ago by Dev Ramesh

By the end of this lesson, students should be able to …

AGENDA (Brief Summary of Activities)

Modified 5 days ago by Dev Ramesh

X min:

X min:

X min:

Differentiation (strategies for grouping, ELL, and inclusion)

Modified 2020-04-16 by Garrett Warren

Advanced preparation/Materials/Set Up (Including Misconceptions)

Modified 5 days ago by Dev Ramesh

Teacher Materials:

Classroom Setup:

Teachers can write a DO NOW on the board for students to …


Modified 2020-04-16 by Garrett Warren

Introducing The Lesson

Modified 4 days ago by Cesar


In autonomous mobile robotics estimate of position is crucial. If you covered your eyes while standing in a room your other four senses in your body would help you to survey your surroundings. Robots how ever do not pocess senses like humans but we can simulate them with sensors and cameras. For example a self driving car has sensors and mounted cameras as an essential component that collect data to let the computer know a rough estimation of the machines surroundings, like if another car were infront of it. This process is also known as localization.

Main Lesson

Modified 2 days ago by Dev Ramesh

In order for the drone to use localization you will be using two algorithms on the PiDrone Monte Carlo and Fast S.L.A.M.. These two algorithms are desgined to target specific drone flying scanrios; scenario one (Monte Carlo) the drone is provided with a map like the one implemented into this lesson, and scenario two where the drone would use its sensors to simultaniously develope a map of its enviroment (Fast Slam).

For the purpose of this course we will be using the Monte Carlo localization (M.C.localization) which refers to the priniciple of using random sampling to model a complicated unavoidable process. In a more in depth analysis the M.C. localization is a very popular particle filter algorithm. In every new frame captured by the drones camera the filter will apply a motion prediction to adjust each possible position of the drone. At each movement correction the motion predictions will be resampled until it finds a match.Do not worry if you still feel uneasy on the concept, we recomend doing the localization activities for better understanding

Exercise: if a jigsaw puzzle is available, otherwise with pictures of one, give students a few pieces and let them try to figure out where their pieces come from by looking at the finished puzzle picture on the box.

The drones primary sensor is the pi camera facing downward. To complete understanding of how the particle filters allow localization we will take a closer look at the process the camera extracts features and shapes to determine its position. To process information from the camera we will use a open source computer vision library callled OpenVC. From a computers perspective a feature is a point of interest. Unlike humans that are able to identify a point of interest on a picture like; texture, patterns, color, or what ever may call our attention, a computer needs a precise definition of the point of interest. Features can also be defined as areas in an image where the pixel intensities change rapidly. Once a feauture is extracted the OpenCV will give us a keypoint and descriptor for each feature with its corresponding (x,y) coordinates.

Getting Set Up

Modified 2 days ago by Dev Ramesh

  1. place your directory in the /ws/src folder on your drone.

  2. you should find “package.xml” and “CMakeLists.txt” which you need to modify your package.

  3. On line 3 of “package.xml” you need to replace the default github name with your github name so it matches the nam in your directory. Do the same on line 2 of “CMakeLists.txt”.

  4. navigate to the /ws folder and run the following line of code.

catkin –pkg project-localization-slam-2019-yourGithubName

(this allows your package to be ros-runnable from the pidrone_pkg. This is a one time step)

Using the Localization

Modified 2 days ago by Dev Ramesh

Coming Soon


Modified today by Dev Ramesh

Localization: the fact of being or becoming located or fixed in a particular place.

S.L.A.M. (acronym): simultaneous localization and mapping problem

Ending The Lesson

Modified today by Dev Ramesh

Exercise: Have the drone use it to localize and fly to different targets.

Useful Resources and References

  1. Oxford Dictionary - Definition of localization