Mobile Robotic Navigation Control in Moving Obstacle Environment

40
Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior http://students.iiitm.ac.in/~ipg_200545/ [email protected], [email protected] Paper: Kala, Rahul, et al (2009), Mobile Robot Navigation Control in Moving Obstacle Environment using Genetic Algorithm, Artificial Neural Networks and A* Algorithm, Proceedings of the IEEE World Congress on Computer Science and Information Engineering (CSIE 2009), ieeexplore, DOI 10.1109/CSIE.2009.854, pp 705-713, April 2009, Los Angeles/Anaheim, USA (Conference) (Download Paper)

description

Mobile Robotic Navigation Control in Moving Obstacle Environment. Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior http://students.iiitm.ac.in/~ipg_200545/ [email protected], [email protected]. - PowerPoint PPT Presentation

Transcript of Mobile Robotic Navigation Control in Moving Obstacle Environment

Page 1: Mobile Robotic Navigation Control in Moving Obstacle Environment

Rahul Kala,Department of Information Technology

Indian Institute of Information Technology and Management Gwalior

http://students.iiitm.ac.in/~ipg_200545/[email protected], [email protected]

Paper: Kala, Rahul, et al (2009), Mobile Robot Navigation Control in Moving Obstacle Environment using Genetic Algorithm, Artificial Neural Networks and A* Algorithm, Proceedings of the IEEE World Congress on Computer Science and Information Engineering (CSIE 2009), ieeexplore, DOI 10.1109/CSIE.2009.854, pp 705-713, April 2009, Los Angeles/Anaheim, USA (Conference) (Download Paper)

Page 2: Mobile Robotic Navigation Control in Moving Obstacle Environment

A* Algorithm

Genetic Algorithm

Artificial Neural Networks

Page 3: Mobile Robotic Navigation Control in Moving Obstacle Environment

There is a region of static and dynamic obstacles

Guide the robot from source o destination

Page 4: Mobile Robotic Navigation Control in Moving Obstacle Environment

The entire region divided in grid on size M X N

Each dynamic element can move not more than a unit distance in threshold time

Page 5: Mobile Robotic Navigation Control in Moving Obstacle Environment

Various directions the robot can move in

N 0

NE 1

E 2

SE 3

S 4

SW 5

W 6

NW 7

The representation of various directions

Page 6: Mobile Robotic Navigation Control in Moving Obstacle Environment

The robotic movements

Move forward (unit step) Move at an angle of 45 degrees forward

(unit step) from the current direction Move clockwise/anti-clockwise (45

degrees) Move clockwise/anti-clockwise (90

degrees)

Page 7: Mobile Robotic Navigation Control in Moving Obstacle Environment

Various Movements Possible

Page 8: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 9: Mobile Robotic Navigation Control in Moving Obstacle Environment

g(n) = depth from the initial node, increases by 1 in every step

h(n) = square of the distance of the current position and the final position + R(n)

R(n) = minimum time required for the robot to rotate in its entire journey assuming no obstacles

f(n) = g(n)+h(n)

Page 10: Mobile Robotic Navigation Control in Moving Obstacle Environment

The values of R(n) at various places

12

3

4

Goal Position

Region 1: 0Region 2: 2Region 3: 1Region 4: 1

Page 11: Mobile Robotic Navigation Control in Moving Obstacle Environment

Step 1: while(CurrentPosition <> FinalPosition)

BeginStep 2: m ←

getNextRobotMove(CurrentPosition)

Step 3: moveRobot(m)

Page 12: Mobile Robotic Navigation Control in Moving Obstacle Environment

Step 1: closed ← empty listStep 2: add a node n in open such that position(n) = CurrentPositionStep 3: while open is not empty

BeginStep 4: extract the node n from open with the least priorityStep 5: if n = final position then breakStep 6: elseStep 7: moves ← all possible moves from the position nStep 8: for each move m in moves

BeginStep 9: if m leads us to a point which can be the point of any obstacle in the

next unit time then discard move m and continueStep 10 if m is already in open list and is equally good or better then discard

this moveStep 11: if m is already in closed list and is equally good or better then

discard this moveStep 12 delete m from open and closed listsStep 13: make m as new node with parent nStep 14: Add node m to open Step 15: Add n to closedStep 16: Remove n from open

Page 13: Mobile Robotic Navigation Control in Moving Obstacle Environment

The representation of obstacles in various directions

0(N) 1(NE) 2(E) 3(SE)

4(S) 5(SW) 6(W) 7(NW)

Page 14: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 15: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 16: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 17: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 18: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 19: Mobile Robotic Navigation Control in Moving Obstacle Environment

We consider a graphical representation of chromosome

Each chromosome a collection of graphical nodes

Crossover operation by graph mixing

Page 20: Mobile Robotic Navigation Control in Moving Obstacle Environment

Full: They are complete solution and fully connect source to destination

Left: The start from the source but are unable to reach to the destination

Right: They do not start from the source but reach the destination

Page 21: Mobile Robotic Navigation Control in Moving Obstacle Environment

Full

Left

Left

Right

Right

Page 22: Mobile Robotic Navigation Control in Moving Obstacle Environment

Full Solution: f(S)=No of steps needed to traverse from source to destination

Left Solution: Number of steps needed to traverse from source to the last point traversed + (Square of the distance of this point to the final destination + R(n))

Right Solution: (Square of the distance of source point to the first point traversed + R(n)) + Number of steps needed to traverse from this point to the final solution

Page 23: Mobile Robotic Navigation Control in Moving Obstacle Environment

Try to find a straight path solution between source and destination

Try to find random left solution between source and destination

Try to find random right solution between source and destination.

Find Full Solutions from fusion of left and right

Page 24: Mobile Robotic Navigation Control in Moving Obstacle Environment

Step1: for i ← 1 to noIterationsInitial

Begin

Step2: for j ← 1 to (3/2)*perimeter of board (Maximum moves per solution being tried)

Begin

Step3: if p ← destinationPoint

Step4: add p to current solution set and break

Step5: find the move m in moves which makes the robot closest to destination

Step6: if point p we reach after m is already in the current solution set then delete earlier points and add this point.

Step7: if no move takes the robot closer to target

Step 8: make randomMoves number of random moves in any direction

Step9: for each move m in these moves, if point p we reach after m is already in the current solution set then delete earlier points and add this point.

Step10: if destinationPoint is reached then add this solution set to fullSolution

Step11: else add this solution set to leftSolution

Page 25: Mobile Robotic Navigation Control in Moving Obstacle Environment

The crossover can occur between any of the following pairs of solutions

◦ Full Solution and Full Solution◦ Left Solution and Full Solution◦ Full Solution and Right Solution◦ Left Solution and Right solution

Page 26: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 27: Mobile Robotic Navigation Control in Moving Obstacle Environment

Step 1: points ← find common points in parent1 and parent2 that have same x and y coordinate

Step 2: if points <> null Step 3: for each common point p in points

BeginStep4: sol1 ← all points in parent1 till p +

rotations necessary to transform direction of p to the one of point p of parent2 + all points in parent2 after p

Step5: Add sol1 to fullSolution set

Page 28: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 29: Mobile Robotic Navigation Control in Moving Obstacle Environment

Step 1: if no of solutions in full solution set > 0 thenStep 2: r1,r2 ← any two random points on a random solution from

fullSolution set set with r1 on the left of r2 Step 3: find solutions as found in initial solution with start point as r1

and goal point as r2Step 4: if full results generated > 0Step 5: newSolution ← most fit solution in this generated solution

setStep 7: sol1 ← all points in solution till r1 + rotations necessary to

transform direction of r1 to the one of first point of newSolution + all points in newSolution + rotations necessary to transform direction of last point in newSolution to r2 + all points in solution after r2

Step 8: add sol1 to solutionFull

Page 30: Mobile Robotic Navigation Control in Moving Obstacle Environment

With a probability of 2/3, select the most fit chromosome from the full solution set and any one randomly from the left/right/full solution set

With a probability 1/3 select any random chromosome from full solution set and any one randomly from left/right/full solution set

Page 31: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 32: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 33: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 34: Mobile Robotic Navigation Control in Moving Obstacle Environment

There are total 26 inputs to the neural network (I0-I25)

  The I0 and I1 denote the rotations

◦ (I0,I1)=(0 0) represents +2 or -2◦ (I0,I1)=(0 1) represents +1◦ (I0,I1)=(1 1) represents 0◦ (I0,I1)=(1 0) represents -1

These are numbered according to gray codes

Page 35: Mobile Robotic Navigation Control in Moving Obstacle Environment

I2 (m-2,n-2) I3 (m-2,n-1) I4 (m-2,n) I5 (m-2,n+1) I6 (m-2,n+2)

I7 (m-1,n-2) I8 (m-1,n-2) I9 (m-1,n) I10 (m-1,n+1) I11 (m-1,n+2)

I12 (m,n-2) I13 (m,n-1) Robot (mXn) I14 (m,n+1) I15 (m,n+2)

I16 (m+1, n-2) I17 (m+1,n-1) I18 (m+1,n) I19 (m+1,n+1) I20 (m+1,n+2)

I21 (m+2,n-2) I22 (m+2,n-1) I23 (m+2,n) I24 (m+2,n+1) I25 (m+2,n+2)

Page 36: Mobile Robotic Navigation Control in Moving Obstacle Environment

3 Outputs

(O0,O1,O2)=(0,0,0) Rotate left 90 degrees.(O0,O1,O2)=(0,0,1) Rotate left 45 degrees.(O0,O1,O2)=(0,1,0) Move forward.(O0,O1,O2)=(0,1,1) Rotate left 45 degrees and move

forward.(O0,O1,O2)=(1,0,0) Do not move.(O0,O1,O2)=(1,0,1) Rotate right 90 degrees.(O0,O1,O2)=(1,1,0) Rotate right 45 degrees and move

forward.(O0,O1,O2)=(1,1,1) Move right 45 degrees.

Page 37: Mobile Robotic Navigation Control in Moving Obstacle Environment

Step 1: initialize map and generate N obstacles at positions (xi,yi,di)Step 2: while(noTestCaseGenerated <> noTestCasesDesired)

BeginStep 3: Generate the robot at random position (xi,yi,di)Step 4: I ← Input sequenceStep 5: m ← getNextRobotMoveUsingAStar(CurrentPosition)

Step 6: moveRobot(m)Step7: O ← Output SequenceStep 8: Add (I,O) to training data

Page 38: Mobile Robotic Navigation Control in Moving Obstacle Environment

Step 1: n ← Generate Neural NetworkStep 2: n ← TrainNeuralNetwork()Step 3: while(CurrentPosition <> FinalPosition)

BeginStep 4: I ← generateInputSequence()Step 5: O ← generateOutputSequence(I)Step6: if O gives valid moveStep 7: moveRobot(O)Step 8: if robot not changed position in last 5 stepsStep 9: makeRandomMove()Step10: if distance of robot decreasing in last 5 steps

(excluding rotations)Step11: move next move only if the next move

decreases distance or is of equal distance

Page 39: Mobile Robotic Navigation Control in Moving Obstacle Environment
Page 40: Mobile Robotic Navigation Control in Moving Obstacle Environment