Final Project Presentation on autonomous mobile robot
Submitted toProf, Jaebyung Park
Robotics LabSubmitted by
Ansu Man SinghStudent ID (201150875)
Outline
• Title• Objective• Procedure• Binary Image• Attractive Potential field• Repulsive Potential field• Total field• Gradient descent• Navigation function
Title
• Path planning using attractive and Reflective potential field
Objective
• To generate a path for mobile robot using attractive and repulsive potential field
Procedure
Binary Image
Attractive Potential field
Repulsive Potential field
Gradient Descent Algorithm
Required Path
Goal Position
Start Position
Binary Image
– Binary Image of 200 by 200 pixel is taken– 1’ will represent free space, 0’s will represent
obstacle space– example
Obstacles
Attractive Potential Field
• The Attractive Potential field is generated using conic and quadratic functions
QuadraticConic
Attractive Potential Field
• Attractive Potential function
Goal Position
Attractive Potential Field
• Code Sectiongoal_pos = [180 180];Uatt = zeros(wSpace_Size);d_xtrix_goal =3;K=0.06;const1 = 0.5*K*d_xtrix_goal^2;for i=1:wSpace_Size(1) for j=1:wSpace_Size(2); A=(goal_pos(1)-i)^2+(goal_pos(2)-j)^2; distance=sqrt(A); if(distance > d_xtrix_goal) Uatt(i,j)=d_xtrix_goal*K*distance -const1; else Uatt(i,j)=0.5*d_xtrix_goal*K*distance^2 ; end endend
Repulsive Potential Field
• Repulsive function used
• Repulsive function is generated by the help of binary image.
• Steps used in generating Repulsive function– Find the obstacle position in the binary image– Generate field using the equation for the distance
Q* above and below the obstacle pixel position
Repulsive Potential Field
• Repulsive Potential Field
Repulsive Potential Field• Code section
for i=1:wSpace_Size(1) for j=1:wSpace_Size(2); if(wSpace_Bin(i,j)==0) Uref(i,j)=8; for k= -xtrix_OBS:xtrix_OBS for p =-xtrix_OBS:xtrix_OBS if((i+k)>wSpace_Size(1)||(i+k)<1||(j+p)>wSpace_Size(2)||(j+p)<1) else if(wSpace_Bin(i+k,j+p)~= 0) distance2 = sqrt((k)^2+(p)^2); Uref(i+k,j+p)=Uref(i+k,j+p)+ 0.5*2*(1/distance2 - 1/xtrix_OBS)^2; else Uref(i+k,j+p)= 8; end end end end else Uref(i,j) = Uref(i,j) +0; end endend
Total Field• Total Potential field is addition of attractive
and Repulsive field
+
Gradient Descent• Algorithms used to find the path in the field• Gradient descent always follows negative
slopeInput: A means to compute the gradient ∇U (q)at a point q Output: A sequence of points {q(0), q(1), ..., q(i)} 1: q(0) = qstart 2: i = 0 3: while ∇U (q(i)) ≠= 0 do 4: q(i + 1) = q(i) + α(i)∇U (q(i)) 5: i = i + 1 6: end while
Gradient Descent• Code section
while(flag) position(iteration+1,:) = [pos_x pos_y U_tot(pos_y,pos_x)]; pos_x = ceil(pos_x+ alpha*grad_x); pos_y = ceil(pos_y+ alpha*grad_y); if((grad_x==0&&grad_y==0)||iteration >1000) flag = 0; end if (pos_x>=200||pos_y>=200) flag =0; else grad_x=-fx(pos_y,pos_x); grad_y=-fy(pos_y,pos_x); iteration= iteration+1; end end
Gradient Descent• Contour map of field with path
Start point = (0,80)
Gradient Descent• Path 2
Gradient Descent• Local Minima problem
Gradient Descent• Local Minima problem can be using
navigation function• Navigation function definition
A function is called a navigation function if it1.is smooth (or at least Ck for k ≥ 2),2.has a unique minimum at qgoal in the connected component of the free space that contains qgoal,3.is uniformly maximal on the boundary of the free space, and4.is Morse.
Navigation function • Navigation function on sphere world• Obstacle functions
• Distance to goal function
Navigation function • Switch function which is used to map from (0
to infinity) to [0 1]
• Sharpening function to make critical points non-degenerate
Navigation function • Final navigation function on sphere world
Navigation function • Implementation of navigation function on
sphere world
Navigation function • Code section
clear all ;x= -10:0.1:10;y= -10:0.1:10; x_goal = 8;y_goal = 8;K= 4;nav_fxn = zeros(length(x),length(y));lambda = 2;for i = 1 :length(x) for j = 1:length(y) beta = beta_function(x(i),y(j)); dist_goal = norm([x(i)-x_goal y(j)-y_goal],2); radius = norm([x(i) y(j)],2); if(radius>10) nav_fxn(i,j) = 1; else nav_fxn(i,j) = dist_goal^2/(dist_goal^(2*K) + lambda*abs(beta))^(1/K); end endend
Navigation function
• Conversion from star-shaped set to sphere shaped set
• This conversion is essential for representation of object in real world.
References
• [1] Howie Choset et al, Principle of robot Motion-Theory, Algorithms and Implementation,
• [2]Elon Rimon, Daniel E Koditschek, Exact Robot Navigation Using Artificial Potential Functions
Thank You