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

原创 2012年03月27日 23:27:58
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

扫地机器人算法的一些想法和测试

这几年扫地机器人越来越火,其路径规划由最初随机算法,到简单规划算法,再到激光slam以及视觉slam算法等,代表机器人国外有irobot等几家公司,国内有科沃斯等,最近尝试了一下最基本的仿真,其他功能...

一个简单的多机器人编队算法实现--PID

用PID进行领航跟随法机器人编队控制 课题2:多机器人编队控制 研究对象:两轮差动的移动机器人或车式移动机器人 研究内容:平坦地形,编队的保持和避障,以及避障和队形切换算法等;起伏地形,还要考虑地形情...

模拟移动机器人控制(四)(修改)

解决了大于360°时机器人无限调整角度的问题; clc;close all;clear hold on axis([0,200,0,200]); t= 0.01; [X,Y] = ginput(1...

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

MATLAB模拟移动机器人控制 程序: clc;close all;clear; PI = [3;7;0]%PI = [xi;yi;ci] PT = [120;81;pi/2]%PT = [xt;...

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

MATLAB模拟移动机器人跟踪轨迹的控制 代码: clc,close all;clear X = 1:0.1:10;; P = rand(1,4)*10; Y = P(1,1)*X+P(1,2...

模拟移动机器人控制(四)(再次修改)

环境:WIN7;MATLAB2010 加入了模拟光电编码器的计数显示 clc;close all;clear subplot(121);title('模拟机器人坐标'); hold on a...

轮式移动机器人基础及滑模控制仿真

一、机器人坐标系 全局参考坐标系:以点o为原点,相互正交的x、y轴建立全局参考坐标系 局部参考坐标系:为确定机器人位置,选择C点为位置参考点,{Xr,Yr}定义机器人底盘相对于C的两个轴。 机器人姿...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模拟移动机器人控制(二)
举报原因:
原因补充:

(最多只允许输入30个字)