290 likes | 563 Views
Final Project Presentation on autonomous mobile robot. Submitted to Prof, Jaebyung Park Robotics Lab. Submitted by Ansu Man Singh Student ID (201150875). Outline. Title Objective Procedure Binary Image Attractive Potential field Repulsive Potential field Total field
E N D
Final Project Presentation on autonomous mobile robot Submitted to Prof, Jaebyung Park Robotics Lab Submitted by Ansu Man Singh Student 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 Goal Position Attractive Potential field Binary Image Repulsive Potential field Start Position Gradient Descent Algorithm Required Path
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 Quadratic Conic
Attractive Potential Field • Attractive Potential function Goal Position
Attractive Potential Field • Code Section goal_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 end end
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 end end
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 slope Input: 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_xpos_yU_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 it • is smooth (or at least Ck for k ≥ 2), • has a unique minimum at qgoal in the connected component of the free space that contains qgoal, • is uniformly maximal on the boundary of the free space, and • 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 end end
Navigation function • Conversion from star-shaped set to sphere shaped set • This conversion is essential for representation of object in real world.
References • [1] HowieChoset et al, Principle of robot Motion-Theory, Algorithms and Implementation, • [2]ElonRimon, Daniel E Koditschek, Exact Robot Navigation Using Artificial Potential Functions