模拟移动机器人控制(二)

MATLAB模拟移动机器人控制 
程序:
clc;close all;clear;
PI = [3;7;0]%PI = [xi;yi;ci]
PT = [120;81;pi/2]%PT = [xt;yt;ct]
VW = [7;pi/50]%VW = [v;w]
P = PI; %P = [x;y;c]
[xi,yi,ci,xt,yt,ct,x,y,c,v,w] = df(PI,PT,P,VW);
D = ((x-xt).^2+(y-yt).^2).^0.5;
i = 1;
L(:,i) = P;
while (D>v)
    C = atan((yt-y)*(xt-x).^(-1));
    if (c>C)
        n = -1;
    else
        n = 1;
    end
    T = [0 0;0 0;0 n];
    P = P+T*VW;
    [xi,yi,ci,xt,yt,ct,x,y,c,v,w] = df(PI,PT,P,VW);
    i = i+1;
    L(:,i) = P;
    T = [cos(c) 0;sin(c) 0;0 0];
    P = P+T*VW;
    [xi,yi,ci,xt,yt,ct,x,y,c,v,w] = df(PI,PT,P,VW);
    D = ((x-xt).^2+(y-yt).^2).^0.5;
end
while(c>(ct+0.5*w)||c<(ct-0.5*w))
     if (c>ct)
        n = -1;
    else
        n = 1;
    end
    T = [0 0;0 0;0 n];
    P = P+T*VW;
    [xi,yi,ci,xt,yt,ct,x,y,c,v,w] = df(PI,PT,P,VW);
end
i = i+1;
L(:,i) = P
hold
plot(L(1,:),L(2,:),'ro')
plot(L(1,:),L(2,:))    
调用函数df:
function [xi,yi,ci,xt,yt,ct,x,y,c,v,w]=df(PI,PT,P,VW)
xi = PI(1,1);
yi = PI(2,1);
ci = PI(3,1);
xt = PT(1,1);
yt = PT(2,1);
ct = PT(3,1);
x = P(1,1);
y = P(2,1);
c = P(3,1);
v = VW(1,1);
w = VW(2,1);

结果:


PI =


     3
     7
     0




PT =


  120.0000
   81.0000
    1.5708




VW =


    9.0000
    0.0628




L =


  Columns 1 through 9


    3.0000    3.0000   11.9822   20.9113   29.7519   38.4691   47.0286   55.3966   63.5400
    7.0000    7.0000    7.5651    8.6931   10.3795   12.6178   15.3989   18.7120   22.5440
         0    0.0628    0.1257    0.1885    0.2513    0.3142    0.3770    0.4398    0.5027


  Columns 10 through 18


   71.4268   79.0258   86.3069   93.2415   99.8022  105.9632  111.7000  116.9901  121.8125
   26.8798   31.7023   36.9923   42.7291   48.8901   55.4508   62.3854   69.6666   77.2655
    0.5655    0.6283    0.6912    0.7540    0.8168    0.8796    0.9425    1.0053    1.5708

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值