Car-Like小车移动机器人控制实验(Car-Like)
下载链接https://download.csdn.net/download/yjw0911/85677358
下载点击链接
实验目的:把移动机器人运动看成单纯控制问题,提升学生的移动机器人基础理论水平和专业技能。在构建Car-Like小车运动曲线规划、运动学、动力学、控制器模型的基础上,完成Car-Like小车跟踪曲线仿真。
Car-Like小车,由直流电机通过减速齿轮带动后轮旋 转驱动小车以速度V前进;由舵机驱动前轮转向,转向角为。
实验要求:
在理解基本原理基础上,使用Matlab和Simulink,编制各功能模块,实现移动机器人运动控制仿真,包括路径曲线规划、运动学模型、动力学模型、控制算法设计。
一、平面曲线规划:N个控制点的B样条曲线
规划一条由起点到终点,合乎要求光滑曲线。给定一组控制点而得到一条曲线,曲线大致形状由这些 点予以控制。一般用得多是三次B样条曲线。
如小车移库问题:规划一条由起点出发 到达终点的光滑曲线
过控制点的B样条曲线
平面曲线规划,机器人位置可以用其二维组坐标(x,y)的参数方程描述。
给定四个控制点[C1,C2,C3,C4],则样条曲线为P(s),参数s满足0≤s≤1,可以看成是归一化路程。
(1)四个控制点:
四个样条函数:f1 s, f2 s, f3 s, f4 s
给定四个控制点[C1,C2,C3,C4],则样条曲线为P(s),参数s满足0≤s≤1,可以看成是归一化的路程。
P(s) =f1(s)C1 +f2(s)C2 +f3(s)C3 +f4(s)C4
Matlab程序文件:demomooc1.m
(2)五个控制点的B样条曲线
如果给定五个控制点[C1,C2,C3,C4,C5],则决定了两条样条曲线为P1(s),P2(s)。
P1(s)=f1 (s)C1 +f2 (s)C2 +f3 (s)C3 +f4 (s)C4 (0≤s≤1)
P2(s) =f1 (s)C2 +f2 (s )C3 +f3 (s)C4 +f4 (s)C5 (0≤s≤1)
控制点:
程序片段:
P1s=C(:,1)*f1s+C(:,2)*f2s+C(:,3)*f3s+C(:,4)*f4s;
P2s=C(:,2)*f1s+C(:,3)*f2s+C(:,4)*f3s+C(:,5)f4s;
%绘制控制点及B样条曲线
figure(1)
plot(C(1,:),C(2,:),'r’,P1s(1,:),P1s(2,:),‘b’,P2s(1,:),P2s(2,:),‘c’);
legend(‘控制点’,‘第一段’,‘第二段’)
(3)N个控制点的B样条曲线
如果给定N 个控制点[C1,C2,C3,…,CN],则决定了(N-3)条样条曲线为P1(s),P2(s),…,P(N-3)(s)
P1(s)=f1 (s)C1 +f2 (s)C2 +f3 (s)C3 +f4 (s)C4
P2(s) =f1 (s)C2 +f2 (s )C3 +f3 (s)C4 +f4 (s)C5
⋮
PN -3 (s) =f1 (s)CN -3+f2 (s)CN -2 +f3 (s)CN -1+ f4 (s)CN
Matlab程序文件:demomooc3.m
(4)过起点和终点的B样条曲线
过起点的B样条曲线:通过增加额外控制点来保证P(s)过起点C1
过终点的B样条曲线:通过增加额外控制点来保证P(s)过终点CN
V1,VN表示小车过C1,CN速度方向的单位向量;L为合适正常数,可以取为小车车长一半。
原来的控制点:
增广后的控制点:
Matlab程序文件:demomooc4.m
(5)轨迹曲线的曲率
曲线曲率K是曲线弯曲程度一种度量,曲率K越大曲线 越弯曲,小车跟踪更为困难,可以用曲线曲率K评价轨迹曲线的好坏。
fmax前轮的最大转向角,轨迹曲率越大,表示小车轨迹越弯曲,跟踪更为困难。
实验:demoexp7.m,改变控制点减小曲线曲率,鼠标左键改变控制点,鼠标右键退出得到新控制点P,得到合理的曲线规划。
二、Car-Like小车运动学仿真
(1)Car-Like小车运动学模型
a为重心到前轮中心距离,b为重心到后轮中心距离,L为前轮中心与后轮中心的距离,显然L=a+b,设小车重心坐标为(x,y),则后轮中心坐标为(x1,y1),前轮中心坐标为(x2,y2)。
后轮位置、速度关系:
轮子运动特性,后轮没有侧滑