final project presentation on autonomous mobile robot submitted to prof, jaebyung park robotics lab...
TRANSCRIPT
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
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
• 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• 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
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• 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 • 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