a=0;
xm=0;ym=0;xma=0;yma=0;xmi=0;ymi=0;
xmax=0;ymax=0;
xmin=0;ymin=0;
x=0;y=0;
n=1;

while n<20
    
r.setDriveVelocity(2);
Bump=r.getBumpers;
B(1)=Bump.left; B(2)=Bump.front; B(3)=Bump.right;

 if mean(B)~=0
        r.stop
        n=n+1;
        d(n)=r.getDistance;
        a(n)=r.getAngle+a(n-1);
        x(n)=(d(n).*cosd(a(n)))+x(n-1);
        y(n)=(d(n).*sind(a(n)))+y(n-1);
        
    if xm~=1
        if x(n)>=(x(n-1)*.9)&&x(n)<=(x(n-1)*1.1)
            if x(n-1) <=0
                if xmi==0
                xmin=x(n-1);
                xmi=xmi+1;
                end
            else
                if xma==0
                xmax=x(n-1);
                xma=xma+1;
                end
            end
        xm=xm+1;
        end
    end
    if ym~=1
        if y(n)>=(y(n-1)*.9)&&y(n)<=(y(n-1)*1.1)
            if y(n-1)<=0
                if ymi==0
                ymin=y(n-1);
                ymi=ymi+1;
                end
            else
                if yma==0  
                ymax=y(n-1);
                yma=yma+1;
                end
            end
        ym=ym+1;
        end
    end
    
    if xma~=0
        if x(n)>xmax
            x(n)=xmax;
        end
    end
    if xmi~=0
        if x(n)<xmin
            x(n)=xmin;
        end
    end
    
    if yma~=0
        if y(n)>ymax
            y(n)=ymax;
        end
    end
    if ymi~=0
        if y(n)<ymin
            y(n)=ymin
        end
    end
    
    
    scatter(x(n),y(n))
    hold on
       
    r.turnAngle(20,0.5);
    r.setDriveVelocity(2);
    
 end
end

od=sqrt(x(n)^2+y(n)^2);
oa=atand(y(n)/x(n));
oa=oa+a(n);

while oa<0
    oa=oa+360;
end
while oa>360
    oa=oa-360;
end

oa=360-oa;

r.turnAngle(oa,0.5)
r.moveDistance(od,1)