## Potential Field Path Planning Simulation

Instructions
Left mouse click on the map to drop the green ball
Move the obstacle using the <g> key
<w> increase sphere of influence of an obstacle
<s> decrease sphere of influence of an obstacle

Potential Field Obstacle Avoidance
Robots need to be able to avoid obstacles and one such method is Potential Fields. Potential Fields Obstacle Avoidance is an adaptation of the movement of charged particles into the field of robotics where obstacles generate a 'rejecting' field and the goal generates an 'attractive' field. When these two fields are added together you get a field, indicating the robot's motion at that specific position on the map.

Mobile robots generally need to move from a START position (0) to a GOAL position (1) in order to accomplish tasks.

The simulator makes use of the Quad Tree method to create a distance graph and then this distance graph is used by the A* (A-star) path finding algorithm to find the best path.

##### Instructions

Click on the map to create an obstacle (Pink square = obstacle, Green square = no obstacle)
Use the 'g' key to change the GOAL position
Use the 's' key to change the START position

##### Note:

The map's grid can be expanded to accommodate a larger map. For this simulation, however, it is fixed to an 8x8 array.

Although the Quad Tree method is applied using a grid, the robot can move freely around inside each grid and is not bound by the center point of any quad.

The numbers next to each Node ID is the values used by the A-star algorithm to determine the best path. The tutorial will follow soon explaining all the detail.

## Particle Filter Localization Simulation

Let us assume the following: You want a robot that will fetch something from somewhere or should take something to someplace. In order for this mobile robot to know if it reached the goal, or to plan a path to the goal, it needs to know where it is.

This 'knowing where it is' is known as localization. One method used for localization is Particle Filters (Monte Carlo Localization) and this simulation implements particle filter localization.

The simulation consists of RED particles, a GREEN robot and BLUE landmarks (add landmarks by LEFT clicking on the map). By moving the robot around using the w,a,d keys you will see how the particles cluster around the robot, essentially showing where the robot is. (NOTE: If you do not add any landmarks the robot will not be able to localize.)

## Fitting a Linear Line to Data Points

A line of best fit is a line that is the best approximation of a given set of data. This line can be linear, exponential, logarithmic, polynomial, a power average or a moving average and will depend on the type of data you have and the purpose of the approximated line. Your dataset can even be in 3 dimensions.

I'm only going to look at 2D data (ordered pairs) and the Least Square Method to find a straight line ($y=mx+c$) that best fit the given data points.