Wander Algorithm
Assumptions
- The laser and camera have powered on.
- The robot must be in its predefined starting position for localization.
Algorithm Description
The wander module is fairly simple to follow. It calculates a random X, Y position
in the room. The psuedo formula is:
if(rand() % 2 ==0)
X=(((rand()*rand()) % (lower x_bound))*-1)
else
X=((rand()*rand()) % (maximum x_bound))
if(rand() % 2 ==0)
Y=(((rand()*rand()) % (lower x_bound))*-1)
else
Y=((rand()*rand()) % (maximum x_bound))
These formulas calculate a global X, Y position for the EB 2029 based on our
laser map. The gradient then takes this X, Y making it a goal for the robot.
If the goal X, Y is inside an object that is defined by our laser map, the gradient
will fail to find a path and look for another goal. When seeking a goal, the
wander module uses gradient path finding and laser localization to go from its
current position to the next goal position. These Saphira classes give us dynamic
obstacle avoidance needed to get from point A to point B.