资源简介
此文件详细介绍了在matlab环境下dubins路径的生成,起始圆,结束圆,转弯点
代码片段和文件信息
R=1;
x0=8;
y0=10;
phi0=90;
x=x0+R*cos((phi0+90)/57.3) %逆时针圆圆心--起始圆
y=y0+R*sin((phi0+90)/57.3)
plot([x][y]‘*‘)
hold on
x1=x0+R*cos((phi0-90)/57.3) %顺时针圆圆心--起始圆
y1=y0+R*sin((phi0-90)/57.3)
plot([x1][y1]‘*‘)
a0=0;
b0=9;
theta0=90;
a=a0+R*cos((theta0+90)/57.3) %逆时针圆圆心--终止圆
b=b0+R*sin((theta0+90)/57.3)
plot([a][b]‘*‘)
a1=a0+R*cos((theta0-90)/57.3) %顺时针圆圆心--终止圆
b1=b0+R*sin((theta0-90)/57.3)
plot([a1][b1]‘*‘)
huayuan(xyR);
huayuan(x1y1R);
huayuan(abR);
huayuan(a1b1R)
quiver(x0y0R*cos(phi0/57.3)R*sin(phi0/57.3))
quiver(a0b0R*cos(theta0/57.3)R*sin(theta0/57.3))
%圆心距
L1=sqrt((x-a)*(x-a)+(y-b)*(y-b))
L2=sqrt((x-a1)*(x-a1)+(y-b1)*(y-b1))
L3=sqrt((x1-a)*(x1-a)+(y1-b)*(y1-b))
L4=sqrt((x1-a1)*(x1-a1)+(y1-b1)*(y1-b1))
alpa=-pi/2+atan(2*R/L2);
F=[a1;b1]+[cos(alpa) -sin(alpa);sin(alpa) cos(alpa)]*[x-a1;y-b1]*R/L2;
xb=F(1) %切点坐标
yb=F(2)
I=[x;y]+[cos(alpa) -sin(alpa);sin(alpa) cos(alpa)]*[a1-x;b1-y]*R/L2;
xa=I(1) %起点坐标
ya=I(2)
qiexian=sqrt((xa-xb)*(xa-xb)+(ya-yb)*(ya-yb)) %切线长度
k=(yb-ya)/(xb-xa) %画切线
%u=xa:0.01:xb
u=xb:0.01:xa
g=k*(u-xa)+ya
plot(ug)
axis equal
d1=sqrt((x0-xa)*(x0-xa)+(y0-ya)*(y0-ya)) %求弧长
beta1=2*asin(d1/2/R)
huchang1=beta1*R
d2=sqrt((a0-xb)*(a0-xb)+(b0-yb)*(b0-yb)) %求弧长
beta2=2*asin(d2/2/R)
huchang2=beta2*R
zongchang=qiexian+huchang1+huchang2 %dubins曲线长度
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1502 2013-07-02 16:49 dubins\dubins.asv
文件 1516 2013-07-02 16:49 dubins\dubins.m
文件 96 2013-06-26 20:22 dubins\huayuan.m
目录 0 2014-01-23 15:12 dubins\
评论
共有 条评论