rahul kala, department of information technology indian institute of information technology and...
TRANSCRIPT
![Page 1: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/1.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/2.jpg)
A* Algorithm
Genetic Algorithm
Artificial Neural Networks
![Page 3: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/3.jpg)
There is a region of static and dynamic obstacles
Guide the robot from source o destination
![Page 4: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/4.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/5.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/6.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/7.jpg)
Various Movements Possible
![Page 8: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/8.jpg)
![Page 9: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/9.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/10.jpg)
The values of R(n) at various places
12
3
4
Goal Position
Region 1: 0Region 2: 2Region 3: 1Region 4: 1
![Page 11: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/11.jpg)
Step 1: while(CurrentPosition <> FinalPosition)
BeginStep 2: m ←
getNextRobotMove(CurrentPosition)
Step 3: moveRobot(m)
![Page 12: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/12.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/13.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/14.jpg)
![Page 15: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/15.jpg)
![Page 16: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/16.jpg)
![Page 17: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/17.jpg)
![Page 18: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/18.jpg)
![Page 19: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/19.jpg)
We consider a graphical representation of chromosome
Each chromosome a collection of graphical nodes
Crossover operation by graph mixing
![Page 20: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/20.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/21.jpg)
Full
Left
Left
Right
Right
![Page 22: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/22.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/23.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/24.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/25.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/26.jpg)
![Page 27: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/27.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/28.jpg)
![Page 29: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/29.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/30.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/31.jpg)
![Page 32: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/32.jpg)
![Page 33: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/33.jpg)
![Page 34: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/34.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/35.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/36.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/37.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/38.jpg)
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: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/39.jpg)
![Page 40: Rahul Kala, Department of Information Technology Indian Institute of Information Technology and Management Gwalior ipg_200545](https://reader034.vdocuments.us/reader034/viewer/2022051113/56649ceb5503460f949b6233/html5/thumbnails/40.jpg)